Agent w sieci

Wzrastająca liczba serwisów online sprawia, że coraz łatwiej jest znaleźć w Internecie produkt lub usługę z interesującej nas dziedziny, coraz trudniej natomiast znaleźć taką, o którą dokładnie nam chodziło.

Wzrastająca liczba serwisów online sprawia, że coraz łatwiej jest znaleźć w Internecie produkt lub usługę z interesującej nas dziedziny, coraz trudniej natomiast znaleźć taką, o którą dokładnie nam chodziło.

Przypuśćmy, że szukamy niedrogich wakacji w krajach basenu Morza Śródziemnego. Tylko polsko- języcznych serwisów oferujących takie wycieczki jest kilkadziesiąt. Jak w tym gąszczu znaleźć taką, która oferuje ciekawe miejsce pobytu, dobry standard wypoczynku i atrakcyjny program za najrozsądniejszą cenę?

Dosłownie z każdą minutą wzrasta liczba użytkowników i serwisów. Miliony klientów co dzień przemierzają wirtualne przestrzenie w poszukiwaniu informacji, usług i towarów. Członkowie tak dużej i tak zróżnicowanej grupy muszą mieć różne potrzeby i przyzwyczajenia. W efekcie powstają różnorodne serwisy, a jedną z podstawowych usług udostępnianych przez te powszechnie używane staje się personalizacja. To, co ułatwia pracę człowiekowi, jest zabójcze dla automatycznych serwisów przeszukujących i indeksujących. Różny dostęp do serwisów utrudnia jednorodne i automatyczne wyszukiwanie w nich informacji.

Istotnym ograniczeniem jest przepustowość sieci. Załóżmy, że mamy do sprawdzenia jedynie po sto ofert z pięciu serwisów. Ich obejrzenie w przeglądarce może oznaczać konieczność ściągnięcia wielu megabajtów, co może kosztować majątek, nie wspominając o czasie, który bezproduktywnie spędziliśmy w oczekiwaniu na pojawienie się wszystkich uroczych zdjęć na stronie.

Dodajmy do tego, że możemy podróżować z naszym komputerem przenośnym i telefonem komórkowym i nie być cały czas online. Logujemy się z różnych miejsc i różnych komputerów, ale chcielibyśmy, aby podczas naszej nieobecności w sieci ktoś (lub coś) na bieżąco śledził nowe oferty biur podróży, kontaktując się z nami, aby nie przeoczyć szczególnie atrakcyjnej oferty last minute.

Wszystko to sprawia, że chcielibyśmy zatrudnić "prywatnego detektywa", któremu wystarczyłoby podać tylko kilka parametrów (takich jak miejsce, termin, maksymalna cena i standard zamieszkania). "w specjalista będzie zawsze obecny w sieci, nawet wtedy gdy my będziemy odłączeni od Internetu. Zamiast ściągać informacje ze zdalnych serwisów, trwoniąc czas i zwiększając ruch w sieci, sam "przemieści się" do serwisu, zbierze potrzebne nam informacje i "pójdzie" szukać dalej. Pewna doza wbudowanej inteligencji pozwoli mu dopasować się do interfejsu oferowanego przez serwis.

Właśnie zdefiniowaliśmy naszego pierwszego agenta mobilnego (mobile agent). Proste, prawda?

Po czym poznać agenta, czyli technologia migrującego kodu

Agenta wywiadu, jak wiadomo, można poznać po długim płaszczu, kapeluszu nasuniętym na czoło i spojrzeniach nerwowo rzucanych na boki. A czym jest agent mobilny? Mówiąc najprościej, jest aplikacją o ściśle zdefiniowanej odpowiedzialności, która potrafi zatrzymać swoje działanie, przenieść się na inny serwer, gdzie odtworzy swój stan i będzie kontynuowała działanie. Po zakończeniu działania agenta na danym serwisie, nie zostaje po nim istotny ślad (może poza informacjami w logach). A po wykonaniu swojego zadania, użytkownik inicjujący agenta może skorzystać z efektów jego "pracy".

Takie zadanie wymaga kilku istotnych założeń technicznych. Po pierwsze, agent powinien być napisany w przenośnym języku programowania, który będzie "rozumiany" przez różne komputery i systemy operacyjne. Musi to być więc albo język interpretowany, albo prekompilowany. Java wydaje się więc idealnym wyborem i nic dziwnego, że największa liczba agentów jest tworzona właśnie w Javie.

Przenośny, uniwersalny język to tylko z pozoru wystarczający warunek do tworzenia kodu, który może "podróżować po sieci". Równie ważna jest technologia utrwalania stanu wykonywania jakiegoś procesu na jednym komputerze i przenoszenia go na drugi. Agenci to programy przemieszczające się w Internecie, w związku z tym najczęściej stosowane są internetowe protokoły RMI, IIOP, SMTP i HTTP, a czasami nawet czyste TCP/IP. Wraz z programem musi być przeniesiony jego stan. Ograniczenia technologii Java nie pozwalają na przenoszenie zawartości stosu procesu i uruchomienie go w nowym miejscu wraz z całym "dobrodziejstwem inwentarza" (czyli zawartością wszystkich zmiennych programu). Istniejące środowiska agentów mobilnych stosują własne rekomendacje dla programistów albo dodatkowe rozwiązania techniczne.

IBM oferuje narzędzie do tworzenia i uruchamiania agentów, którego rdzeniem jest środowisko języka Java. Tworzenie agentów mobilnych, nazywanych aglets (od połączenia słów agent i applet), przy użyciu tego pakietu to obecnie najprostsza możliwość sprawdzenia tej technologii w działaniu. Program udostępniany jest za darmo, na zasadach open source.

Wirtualne i rzeczywiste zastosowania agentów

Trudno wymienić dziedziny, w których technologia mobile agents nie byłaby już stosowana. Dość znanym zastosowaniem agentów w sieci jest technologia push dla serwisów WWW. W uproszczeniu została ona opisana na początku tego artykułu: "wpuszczamy" do sieci agenta, który ma za zadanie monitorować zadaną grupę serwisów online i informować nas o zmianach w nich.

Wiele zastosowań technologii agentów mobilnych można znaleźć w przemyśle. System ARCHON stanowi platformę dla agentów optymalizujących zasilanie w fabryce w Hiszpanii. W innym zakładzie proces produkcji podzielono na komórki robocze (workcells), np. taką komórką jest lakierowanie. Każda z komórek jest odpowiedzialna za część pracy i jest z jednej strony dostawcą usługi dla procesu jako całości (np. montowania samochodu), z drugiej zaś - konsumentem zasobów fabryki (siły roboczej, lakieru, energii, przestrzeni). Agent jest odpowiedzialny za zarządzanie "dostawą usług" oraz "konsumpcję zasobów", a także za zamawianie elementów produkcji, planowanie, raportowanie błędów itd.

W systemie OASIS, stosowanym w kontroli lotów w Sydney, agent reprezentuje obiekt, znajdujący się w powietrzu. W momencie gdy samolot wchodzi w przestrzeń monitorowaną przez Sydney, w komputerze sterującym tworzony jest agent go reprezentujący. Skupia on wiedzę o rodzaju samolotu, liniach lotniczych obsługujących rejs, trasie lotu i innych jego parametrach istotnych z punktu widzenia kontroli lotów.

Zarządzanie informacją to kolejna popularna dziedzina zastosowania agentów mobilnych. Zuno Digital Library to system zarządzania wiedzą, w którym agent może reprezentować jeden z trzech podmiotów: dostawcę informacji, konsumenta i łącznika (facilitator) między nimi. Agenci konsumentów znają potrzeby osób korzystających z biblioteki cyfrowej, agenci dostawców - zasoby udostępniane przez każde źródło, agent łączący zaś pomaga dopasować jedno do drugiego.

Z pojęciem agentów wiąże się pośrednio pojęcie sieci tworzonych ad hoc. To szczególnie istotne zastosowanie dla firm telekomunikacyjnych. Wyobraźmy sobie użytkownika, który przemieszcza się między lokalizacjami fizycznymi, np. pracuje w biurze, w domu albo podróżuje pociągiem TGV z Paryża do Lyonu. W każdym z tych miejsc chce mieć - o ile to możliwe - połączenie online z Internetem i korporacyjnym intranetem. Chce też bez manipulowania kablami podłączyć się do właściwej drukarki i faksu. Agent mobilny powinien zadbać o zestawienie mu w każdym z wymienionych miejsc sieci ad hoc niezbędną autoryzację, a jeśli trzeba, to i płatności.

Nie ma tu miejsca, aby wymienić wszystkie ani nawet najbardziej interesujące zastosowania mobilnych agentów. Wystarczy powiedzieć, że są one stosowane także w handlu elektronicznym, opiece medycznej, grach komputerowych, systemach multimedialnych, a nawet... zarządzaniu procesami biznesowymi. W tej ostatniej dziedzinie, w projekcie ADEPT stworzono infrastrukturę odzwierciedlającą organizację jako grupę agentów, reprezentujących role biznesowe (np. dział księgowości) i w ramach tych ról negocjujących zadania z innymi agentami i świadczących im usługi.

Agent w mundurze, agent w kosmosie

Szczególnie ciekawe są tzw. zastosowania specjalne agentów mobilnych. Choć w sieci znajduje się niewiele informacji na ten temat, lista jednostek prowadzących badania nad tą technologią wska-zuje, że bardzo interesuje się nią woj- sko i agencje rządowe (CIA, FBI, NSA, NASA). Trudno się dziwić, bo możliwość umieszczenia w sieci autonomicznych programów przemieszczających się i zbierających dane to dla tych organizacji wręcz wymarzone rozwiązanie.

W przypadku wojska, CIA czy FBI słowo "agent" ma znaczenie zbliżone do tradycyjnego. Oprogramowanie zostaje użyte, aby zebrać konkretne informacje z urządzeń i instalacji. Przykładowo, specjalizowany agent może "podróżować" po stacjach radarowych rozmieszczonych wzdłuż kursu statku, który przewozi podejrzany ładunek. Innym przykładem "zastosowań specjalnych" mógłby być agent działający w wozie łączności albo na samolocie zwiadowczym i satelicie szpiegowskim, monitorujący stale to samo pole walki z najbardziej korzystnej lokalizacji i swobodnie przemieszczający się między nimi.

Dalekie loty kosmiczne to kolejny przykład szczególnie obiecującego pola zastosowań agentów mobilnych. Trzy zasadnicze problemy w kosmosie to niska przepustowość, łączność zależna od zmiennych warunków (np. aktywności Słońca), a także du- że opóźnienia. Z tych powodów ręczne sterowanie sondą prowadzącą badania na orbicie Jowisza nie wchodzi w grę. Znacznie lepiej jest po prostu stworzyć specjalizowanego agenta, który zostanie przesłany do sondy, a tam wykona on interesujące badania, zbierze ich wyniki i powróci do macierzystego laboratorium, gdzie naukowcy będą mogli skorzystać z rezultatów jego działań.

Bezpieczeństwo i płatności

Jeżeli zastanowić się, jak nazwać program, który uruchamia się na różnych serwisach, zbiera z nich informacje i jest obdarzony pewną inteligencją, ciśnie się na usta określenie "wirus". Przecież tak właśnie nazywamy programy, które mnożą się na zainfekowanym komputerze i rozprzestrzeniają przez sieć. "Złośliwość działania" nie jest kryterium odróżniającym wirusa od agenta, ponieważ niektóre wirusy są prawie nieszkodliwe, np. ograniczają działanie do rozsyłania swojego kodu do osób z książki adresowej.

Serwery agentów mobilnych przypominają więc fortece wewnątrz komputerów. Programy działają w zamkniętym środowisku wirtualnej maszyny, ściśle monitorowane przez aplikacje zabezpieczające, gotowe w każdej chwili do bezwarunkowego usunięcia agenta, który zaczyna szukać dziur w zabezpieczeniach albo żądać zbyt dużo zasobów. Wymyślono także łowców agentów, o wdzięcznej nazwie killer applications, które mogą odnaleźć i przerwać pracę agenta, wtedy gdy np. użytkownik już nie potrzebuje wyników jego działania.

Zasadnicze pytanie brzmi: dlaczego właściwie w ogóle usługodawcy mieliby udostępniać środowiska, w których działają agenci? Co mogłoby skłonić kogoś, aby pozwalał obcym programom "przybywać" na swój komputer i udostępniał im zasoby? Odpowiedź na to pytanie jest złożona. Oczywiście firmy oferujące różne usługi przez Internet są zainteresowane, aby ich oferta dotarła do usługodawców, którzy korzystają z technologii mobile agents do zbierania danych. Ale czy otwarcie swojego komputera na sieciowych "komiwojażerów informacji" to na pewno bezpieczny i skuteczny sposób zaprezentowania swojej oferty?

Czasami problemu tego nie ma - najczęściej w intranetach. Wewnątrz korporacyjnych sieci agenci mogą podróżować swobodnie, bo stale korzystają z zaplecza jednej organizacji. Na przykład firmy telekomunikacyjne, zamiast wysyłać ekipy techniczne samochodami, do diagnozowania problemów w swoich sieciach używają małych programów przemieszczających się między centralami. Diagnostyka sieci telekomunikacyjnych i teleinformatycznych to zresztą bodaj najszersza dziedzina zastosowań agentów mobilnych. War- to dodać, że Centrum Bezpieczeństwa Komputerowego w amerykańskim Narodowym Instytucie Standardów i Techniki (National Institute of Standards and Technology, Computer Security Resource Center) prowadzi zaawansowane badania nad zastosowaniem agentów mobilnych w autoryzacji dostępu w sieci, diagnozowaniu zagrożeń i reagowaniu na nie.

Odpowiedź na pytanie "po co gościć agentów na serwerach" może być łatwa. Na udostępnianiu swoich komputerów agentom można zarabiać. Przykładowo, operator telefonii komórkowej jest w stanie tworzyć wydajne połączenia wewnątrz swojej sieci, ale rozmaite utrudnienia i ograniczenia istnieją przy wejściu i wyjściu do sieci (firewalle, filtry treści, monitory aktywności itd.). Wyobraźmy sobie, że reprezentujemy przedsiębiorstwo, które chce zbierać dane od abonentów tej sieci i oferować im usługi. Zapewne chętnie i dużo zapłacimy operatorowi za uprzejme udostępnienie przestrzeni działania dla naszego agenta na komputerach wewnątrz jego sieci.

Agenci dnia dzisiejszego i jutra

Mobile agents to technologia obecna od dość dawna. Pierwsze konferencje na jej temat odbywały się już w pierwszej połowie lat 90., a idea kodu przemieszczającego się w sieci pochodzi jeszcze z lat 80. Mimo wszystkich swoich zalet, technologia nadal jednak nie jest powszechnie stosowana. Częściowo powodem są nie rozwiązane kwestie bezpieczeństwa i płatności w Internecie. Nie da się też ukryć, że agenci mobilni to zagadnienie trudne z technicznego punktu widzenia. Każdy, kto pisał programy przenośne albo kod współbieżny, wie, że nie są to zagadnienia banalne.

Prawdziwa przyczyna tkwi chyba w bardzo skąpym zainteresowaniu potentatów świata komputerów technologią mobile agents. Szanse na to, że to się zmieni, są dziś większe niż kiedykolwiek. IBM udostępnia wspomniane środowisko aglets, Sun stawia na rozwój technologii Jini (pokrewnej agentom mobilnym). Microsoft rozwija inicjatywę .NET, a w swoim centrum badawczo-rozwojowym w Cambridge prowadzi badania nad systemami mobilnymi i kodem mobilnym, które nadzoruje naukowiec światowej klasy prof. Luca Cardelli. Wydaje się więc, że technologia agentów mobilnych znalazła się u progu skokowego wzrostu zainteresowania.

Agent ante portas

Technologia mobile agents obiecuje wiele. I choć jej dopracowanie jeszcze potrwa, to pewnego dnia pierwszy agent zagości na naszym komputerze domowym lub w telefonie komórkowym. Czy zamkniemy przed nim drzwi, jak przed niepożądanym intruzem, czy - świadomi możliwości tej technologii - potraktujemy go jako pomocnika mogącego pomóc w wyszukiwaniu informacji albo zakupach online?

Użyteczne adresy dotyczące technologii agentów mobilnych

http://agents.umbc.edu/introduction/jennings98.pdf - tekst o charakterze bardziej naukowym niż popularnym, ale zawiera znakomity wstęp do technologii i opis jej zastosowań

http://www.infosys.tuwien.ac.at/cetus/oo_mobile _agents.html - centrum odsyłaczy, prowadzących do stron, poświęconych tej technologii

http://www.infosys.tuwien.ac.at/Research/Agents/ - wiele użytecznych informacji zebranych w jednym miejscu, strona czytelna i dobrze skomponowana

http://choices.cs.uiuc.edu/Security/cherubim/ - projekt Cherubim - architektura bezpieczeństwa stworzona przy użyciu agentów mobilnych

http://www.lab.nttdocomo.co.jp/english/kenkyu/ mobairu_e_main.html - przykład badań nad agentami mobilnymi, prowadzonych w jednej z największych firm telekomunikacyjnych świata: NTT DoCoMo

http://csrc.nist.gov/mobileagents/ - badania nad zastosowaniem agentów mobilnych w diagnostyce zagrożeń w sieciach komputerowych; bardzo użyteczna strona, ponieważ temat należy do "gorących", szczególnie po ostatnich atakach hakerskich w sieci i wojnie z terroryzmem

http://agents.umbc.edu/ - AgentWeb - wirtualna biblioteka wiedzy na temat agentów sieciowych na Uniwersytecie stanu Maryland w Baltimore

http://www.trl.ibm.com/aglets/ - strona domowa środowiska Aglets, można z niej pobrać narzędzia do tworzenia agentów mobilnych

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200