Niemal 20 lat po 1. warsztatach Agent Theories, Architectures, and Languages (ATAL’94) na ECAI’94, które wielu uważa za punkt wyjścia do intensywnych badań nad systemami agentowymi, poprosiliśmy niektórych z najbardziej znanych i aktywnych badaczy w tej dziedzinie o podzielenie się swoimi poglądami na kilka fundamentalnych pytań dotyczących agentów programowych.
Odpowiedzi Costina Badicy, Larsa Braubacha, Giancarlo Fortino i Giovanniego Rimassy dają dość złożony obraz stanu i perspektyw badań nad agentami i systemami wieloagentowymi, a także ich przyszłych zastosowań.
- Bios
- Pytania
- Odpowiedzi
- Pytanie 1: Gdzie obecnie prowadzone są badania nad systemami agentowymi i dokąd zmierzają? Jakie są największe dotychczasowe sukcesy i porażki, i jakie są najważniejsze wyciągnięte wnioski?
- Giovanni Rimassa
- Costin Badica
- Giancarlo Fortino
- Lars Braubach
- Pytanie 2: Jakie są najbardziej udane zastosowania agentów programowych w świecie rzeczywistym? Jakie są kolejne obszary ich zastosowań i czy ludzie są gotowi na interakcję z agentami programowymi w ich codziennym życiu?
- Lars Braubach
- Giancarlo Fortino
- Costin Badica
- Giovanni Rimassa
- Pytanie 3: Jakie jest Twoje spojrzenie na standardy agentów? Czy obecny status FIPA jako ciała IEEE jest zadowalający, czy też potrzebujemy czegoś innego?
- Giovanni Rimassa
- Costin Badica
- Giancarlo Fortino
- Lars Braubach
- Pytanie 4: Czego jeszcze brakuje w obszarze platform, języków i narzędzi agentów?
- Giancarlo Fortino
- Lars Braubach
- Costin Badica
- Giovanni Rimassa
Bios
Costin Badica jest profesorem na Wydziale Komputerów i Technologii Informacyjnych na Uniwersytecie w Craiova w Rumunii. Ma tytuł doktora w dziedzinie systemów sterowania na Uniwersytecie w Craiova. Jego zainteresowania badawcze leżą na przecięciu sztucznej inteligencji, systemów rozproszonych i inżynierii oprogramowania. Ma na swoim koncie ponad 100 publikacji w czasopismach, rozdziałach książek i referatach konferencyjnych, ponad 10 gościnnie redagowanych numerów specjalnych czasopism, a także kilka wydanych książek. Skontaktuj się z nim pod adresem [email protected].
Lars Braubach jest starszym pracownikiem naukowym i liderem projektu w Distributed Systems Group na Uniwersytecie w Hamburgu. Ma doktorat z informatyki na Uniwersytecie w Hamburgu. Jego badania mają na celu ulepszenie technicznych środków oprogramowania dla rozwoju aplikacji rozproszonych i ukierunkowane są na transfer technologii z badań do przemysłu. Jest współtwórcą podejścia aktywnych komponentów, które łączy agentów z komponentami i usługami, a od 2003 roku jest jednym z głównych architektów platformy agentowej Jadex. Wspierał kilka projektów transferu technologii z partnerami przemysłowymi takimi jak Daimler i Uniique AG i opublikował ponad 80 prac na międzynarodowych warsztatach, konferencjach i w czasopismach. Skontaktuj się z nim pod adresem [email protected].
Giancarlo Fortino jest profesorem nadzwyczajnym inżynierii komputerowej na Wydziale Informatyki, Modelowania, Elektroniki i Systemów (DIMES), Uniwersytetu Kalabryjskiego (Unical), Rende, Włochy. Posiada tytuł doktora inżynierii komputerowej uzyskany w Unical. Jego zainteresowania badawcze obejmują obliczenia rozproszone, bezprzewodowe sieci sensoryczne, agenty programowe, przetwarzanie w chmurze i sieci multimedialne. Jest autorem ponad 200 publikacji w czasopismach, na konferencjach i w książkach. Obecnie zasiada w radach redakcyjnych czasopism Journal of Networks and Computer Applications, Engineering Applications of Artificial Intelligence, Information Fusion oraz Multi Agent and GRID Systems. Jest współzałożycielem i dyrektorem generalnym SenSysCal, spin-offu firmy Unical, rozwijającego innowacyjne systemy oparte na czujnikach dla e-zdrowia i domotyki. Jest starszym członkiem IEEE. Skontaktuj się z nim pod adresem [email protected].
Giovanni Rimassa jest menedżerem produktu w firmie Whitestein Technologies. Ma tytuł doktora inżynierii informacyjnej z Università degli Studi di Parma. Jego zainteresowania zawodowe obejmują inteligentne zarządzanie procesami biznesowymi, agentowe oprogramowanie pośredniczące, innowacje produktowe i transfer technologii. Aktywny na scenie agentowej od 1997 r., kiedy to rozpoczął pracę nad platformą JADE, opublikował ponad 60 artykułów w czasopismach i na konferencjach. Jest członkiem IEEE i IEEE Computer Society. Skontaktuj się z nim pod adresem [email protected].
Pytania
- Gdzie obecnie prowadzone są badania nad systemami agentowymi i dokąd zmierzają? Jakie są największe dotychczasowe sukcesy i porażki oraz jakie są najważniejsze wyciągnięte wnioski?
- Jakie są najbardziej udane zastosowania agentów programowych w świecie rzeczywistym? Jakie są kolejne obszary ich zastosowań i czy ludzie są gotowi na interakcję z agentami programowymi w życiu codziennym?
- Jakie jest Twoje spojrzenie na standardy agentów? Czy obecny status FIPA jako ciała IEEE jest zadowalający, czy też potrzebujemy czegoś innego?
- Czego wciąż brakuje w obszarze platform, języków i narzędzi agentowych?
Odpowiedzi
Pytanie 1: Gdzie obecnie prowadzone są badania nad systemami agentowymi i dokąd zmierzają? Jakie są największe dotychczasowe sukcesy i porażki, i jakie są najważniejsze wyciągnięte wnioski?
Giovanni Rimassa
Zważywszy na moją trajektorię zawodową w ciągu tych 20 lat, podczas których przeszedłem od środowiska akademickiego do badań przemysłowych, a następnie do zarządzania produktami i innowacjami, nie będę się zagłębiał w szczegółową ocenę badań nad systemami agentowymi w ogóle, co może być zrobione o wiele bardziej autorytatywnie przez innych. Skupię się raczej na kwestiach takich jak ogólny wpływ badań w tej dziedzinie, czy transfer technologii i ostateczne przyjęcie na dużej arenie budowy oprogramowania.
Z mojego konkretnego punktu obserwacyjnego, badania w systemach wieloagentowych wyraźnie stały się całkiem dojrzałą dziedziną. Po boomie lat 90-tych, dyscyplina ta wydaje się być ustabilizowana. Prawdopodobnie nie jest dziś tak wygodnie wybrać temat doktoratu dotyczący ogólnych zasad działania agentów, ani nie jest łatwo uzyskać, powiedzmy, fundusze UE na projekt badawczy dotyczący infrastruktury technologii agentowej lub systemów otwartych. Biorąc pod uwagę ten poziom dojrzałości, spodziewam się, że przyszły rozwój badań nad systemami agentowymi będzie kontynuacją badań teoretycznych, stosujących matematykę i podstawową informatykę do schematycznych problemów związanych z systemami wieloagentowymi, ale bardziej stosowane i inżynierskie obszary będą musiały stać się bardziej wyspecjalizowane i skoncentrowane na domenie. Przykładem, zainspirowanym niedawną sytuacją na świecie, jest zastosowanie symulacji opartej na agentach do oceny ryzyka gospodarczego i finansowego oraz podejmowania decyzji. Ponadto, w związku z ostatnimi skandalami związanymi z globalnym szpiegowaniem przez amerykańską Agencję Bezpieczeństwa Narodowego (NSA), ludzie mogą zacząć sobie przypominać, że Internet miał być zdecentralizowanym systemem peer-to-peer, a nie wielką piramidą finansową, w której użytkownicy przekazują swoje dane – a teraz nawet obliczenia – niewielkiej liczbie ogromnych korporacji informatycznych o wątpliwej odpowiedzialności. Jest więc możliwe, a nawet prawdopodobne, że podstawowe tematy informatyczne dotyczące sieci (dla prawdziwego peer-to-peer) i języków programowania (dla łatwiejszego programowania współbieżnego na procesorach wielordzeniowych) zbliżą się jeszcze bardziej do idei systemów agentowych z bardzo pragmatycznych powodów.
Nie mogę powiedzieć, że badania nad agentami w oprogramowaniu były całkowicie udane, a w ciągu ostatnich kilku lat słyszałem nawet wiele wypowiedzi o ostatecznej porażce systemów wieloagentowych – choć zwykle bez jasnych motywacji (najzabawniejszy przypadek pochodził od głównego mówcy na konferencji poświęconej autonomicznemu przetwarzaniu). Uważam, że rezultat jest w rzeczywistości mieszany i wymaga pewnego rozwinięcia. Największe sukcesy technologii agentów to niektóre z jej centralnych koncepcji i to, jak antycypowały, a w niektórych przypadkach nawet napędzały ewolucję głównego nurtu informatyki. Jeśli porównamy dzisiejszy typowy krajobraz IT z tym, jak wyglądał on w 1994 roku, zauważymy, że wiele cech, które badacze zalecali wtedy w systemach wieloagentowych, są teraz powszechne:
- Asynchroniczna komunikacja oparta na komunikatach;
- Złożone, ustrukturyzowane schematy dla ładunków wiadomości;
- Wszechobecna współbieżność;
- Rozmieszczone urządzenia mobilne z mnóstwem informacji wrażliwych na kontekst;
- Kod mobilny; oraz
- Większe wykorzystanie idei nauk społecznych do projektowania oprogramowania (modele organizacji, sieci społeczne, wspólne rozwiązywanie problemów, grywalizacja).
W obszarze, w którym działam – czyli w oprogramowaniu do zarządzania projektami biznesowymi dla przedsiębiorstw z różnych branż – ewolucja przebiegała od tradycyjnych poglądów na oprogramowanie pośredniczące do zarządzania procesami biznesowymi skoncentrowanego na człowieku (w którym zestawy BPM dostarczają artefaktów w celu poprawy współpracy między agentami ludzkimi) do obecnych trendów, które uznają i podkreślają, że oprogramowanie BPM musi przynieść pewną inteligencję i adaptacyjność własną, aby wspierać pracowników wiedzy. Przewidywany rezultat to nic innego jak systemy wieloagentowe, w których część ludzi i część oprogramowania współpracuje w celu przyspieszenia procesów biznesowych.
Prawdopodobnie najbardziej interesującym punktem awarii jest to, że technologia agentów nigdy nie stała się „następnym OOP” (innymi słowy, dominującym stylem programowania). Uważam za szczególnie ironiczne to, że wielu teraz wzywa programowanie funkcyjne na ratunek, gdy wskazuje na ograniczenia podejścia obiektowego. Systemy agentowe – biorąc ruchy z modelu programowania aktorów – powinny być oczywistym krokiem naprzód z OOP w środowiskach współbieżnych i rozproszonych (podstawowe „projektowanie przez umowę” jest unieważnione, gdy zaangażowanych jest więcej wątków wykonawczych).
W moim przekonaniu dwa główne czynniki przyczyniły się do tego, że technologia agentów nie stała się akceptowaną ewolucją OOP w głównym nurcie. Po pierwsze, społeczność badawcza nie była szczególnie skoncentrowana na programistach; będąc głównie zainteresowana algorytmami, protokołami i formalnymi ramami, inżynieria oprogramowania skupiała się na metodologiach i oprogramowaniu pośredniczącym. W porównaniu ze społecznością OOP, niewiele zrobiono w dziedzinie języków programowania i narzędzi programistycznych. Po drugie, i być może ważniejsze, nastąpiło znaczne upośledzenie transferu technologii w kierunku praktyków przemysłowych lub przypadkowych programistów. Nawet dzisiaj, większość osób zaznajomionych z systemami wieloagentowymi była zaangażowana w badania akademickie lub (w przypadku młodszych osób) otrzymała kursy uniwersyteckie na ten temat. Porównaj to z orientacją obiektową, w której wiele poziomów ludzi i instytucji przekazuje, powtarza, a czasami zniekształca podstawowe wyniki badań. Programista stosujący wzorzec Factory Method, na przykład, często nie będzie nawet wiedział o oryginalnym wpisie w książce Gang of Four (E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994). Nie sądzę, by to samo można było powiedzieć o, na przykład, protokole Contract Net. 4508>
Costin Badica
Większość obecnych badań jest rozproszona w obszarach formalnego modelowania i logiki dla systemów wieloagentowych, teorii gier (z pokrewnymi tematami, takimi jak projektowanie mechanizmów) i uczenia się. Istnieje również zainteresowanie w przyległych obszarach, takich jak robotyka i symulacja.
Myślę, że najbardziej obiecujące obszary to teoria gier i uczenie się. Logika formalna jest fajna, ale rzeczywiste zastosowania są ograniczone. Robotyka i symulacja również wykazują zainteresowanie zastosowaniami.
Prawdopodobnie programowanie zorientowane na agenta jest bardzo dalekie od tego, czego się początkowo spodziewano. Inżynieria oprogramowania zorientowana na agenta jest również dość odległa od głównego nurtu inżynierii oprogramowania.
Ważne jest, aby oceniać wyniki badań nad autonomicznymi agentami (AA) i systemami wieloagentowymi (MAS) w kontekście solidnej informatyki. Nie powinniśmy traktować ich jak coś „egzotycznego”, ale raczej oceniać je zgodnie z regułami informatyki. Agentów nie należy traktować jedynie jako nowego paradygmatu technologicznego, ale także jako metodę analizy i projektowania złożonych systemów. W końcu system zaprojektowany w paradygmacie agenta może być zaimplementowany przy użyciu najnowocześniejszych technologii, niekoniecznie agentowego middleware czy platformy. Niemniej jednak, platformy agentowe mogą być bardzo przydatne do symulacji i prototypowania.
Giancarlo Fortino
Badacze skupiają się głównie na tych samych zagadnieniach, co 10 lat temu: dostarczaniu metod i algorytmów do radzenia sobie z modelowaniem i analizą (naturalnych i sztucznych) systemów złożonych z różnych perspektyw. Oczywiście, domeny zastosowań agentów nieco się zmieniły, ponieważ pojawiły się nowe technologie i domeny zastosowań.
Trudno powiedzieć, dokąd zmierza ta dziedzina. Rzeczywiście, myślę, że nie ma jednego kierunku. Naukowcy skupiają się na tych samych ważnych kontekstach teoretycznych (języki formalne, metodologie inżynierskie, algorytmy negocjacyjne, teoria gier, analiza zachowań emergentnych napędzana symulacją i tak dalej), a czasami przenoszą się do nowych domen zastosowań – Internet Rzeczy jest aktualnym przykładem – aby zająć się konkretnymi problemami poprzez wykorzystanie „agentów.”
Po 20 latach nadal nie mamy zunifikowanego modelu agenta – fakt ten zmniejszył atrakcyjność podejścia zorientowanego na agenta, szczególnie w kontekstach pozaakademickich. Z drugiej strony, przeprowadzono znaczną ilość badań (i trochę rozwoju), a wiele algorytmów i metod jest faktycznie dostępnych do użycia w szerokim zakresie (nawet niezorientowanych na agenta) domen aplikacyjnych. Co więcej, skuteczność paradygmatu agenta w modelowaniu rozproszonych i złożonych systemów jest prawdopodobnie jego największym sukcesem.
Paradygmat agenta jest skuteczny w radzeniu sobie z otwartymi dynamicznymi rozproszonymi systemami złożonymi. Nie jest to jednak „zabójczy paradygmat”, mimo że badacze z powodzeniem zaproponowali metody, algorytmy i systemy na różnych poziomach abstrakcji. Niektóre z nich, takie jak Java Agents Development framework (JADE), zostały nawet wykorzystane w rzeczywistych zastosowaniach przemysłowych, a nie tylko w kontekstach akademickich.
Lars Braubach
Badania nad systemami agentowymi pochodzą z wielu różnych kierunków. Stąd wiele różnych rodzajów definicji terminu agent, które pojawiły się od początku badań nad agentami, a które skupiały się na przykład na sztucznej inteligencji, inżynierii oprogramowania, osobistych asystentach i pojęciach mentalistycznych (ludzkich właściwościach, takich jak przekonania i cele, używanych do opisywania agentów programowych). Co więcej, badania nad agentami obejmują wiele różnych obszarów tematycznych. To szerokie spektrum badań jest jedną z największych zalet systemów wieloagentowych, ale jest to również podstawowy problem. Jest to mocna strona, ponieważ społeczność wspierająca jest szeroka i postęp w wielu różnych subdziedzinach jest osiągany niezależnie od siebie. Z drugiej strony, ta rozległość w naturalny sposób prowadzi do heterogeniczności w dziedzinie, włączając w to artefakty takie jak języki programowania i narzędzia, a wszystko to sprawia, że wyniki są trudniejsze do oceny. W moim odczuciu, punkt ciężkości badań znacznie się przesunął od samego początku.
W pierwszych latach, inżynieria oprogramowania oparta na agentach była bardzo aktywnym obszarem badań (zainspirowanym, na przykład, przez przełomowy artykuł Yoava Shohama o programowaniu zorientowanym na agenta), a badacze zaproponowali wiele języków programowania agentów, narzędzi i metodologii. Ale w miarę jak podstawy SE ustabilizowały się, a implikacje w praktyce pozostały niskie, relatywne znaczenie w społeczności badawczej zmalało. Obecnie dostrzegam nacisk na formalne podstawy i techniki planowania, uczenia się i koordynacji pracy wielu agentów (patrząc, na przykład, na zaakceptowane prace z 12 Międzynarodowej Konferencji na temat Autonomicznych Agentów i Systemów Multiagentowych jako wskaźnik).
Ważnym sukcesem systemów wieloagentowych jest zmiana sposobu myślenia o tym, jak patrzeć na złożone systemy. Zachęca on do tworzenia zdecentralizowanych architektur i stanowi pierwszy dedykowany paradygmat dla systemów rozproszonych. Jedną z wielkich porażek badań nad agentami jest niezdolność do ustanowienia agentów jako akceptowanego paradygmatu rozwoju SE. Pomimo znacznych początkowych wysiłków, technologia ta w dużej mierze nie dotarła do ludzi zajmujących się oprogramowaniem poza samą społecznością agentów. Moim zdaniem, ta porażka jest w dużej mierze spowodowana stosunkowo dużym dystansem koncepcyjnym pomiędzy inżynierią oprogramowania opartą na agentach i dobrze ugruntowanymi paradygmatami o orientacji obiektowej i komponentowej.
Ten dystans przejawia się na różnych poziomach w językach programowania pojedynczych agentów i technikach organizacji i koordynacji agentów. Moja główna krytyka dotyczy jednak założenia, że agenci powinni komunikować się wyłącznie za pomocą asynchronicznych komunikatów opartych na mowie-aktach. To sprawia, że technologia agentowa jest nie do przyjęcia dla wielu praktyków, którzy wymagają wyraźnych interfejsów systemowych i sygnatur metod. W tym przypadku, konceptualny wymóg utrzymania autonomii agenta jest błędnie interpretowany w zbyt techniczny sposób. Kilku uznanych badaczy zauważyło problem komunikacji opartej na komunikatach, a praca nad alternatywami doprowadziła do kilku różnych propozycji, w tym interakcji opartych na zobowiązaniach i celach, artefaktach i aktywnych komponentach.
W kwestii wyciągniętych wniosków, moja odpowiedź pochodzi z bardzo osobistej perspektywy inżynierii oprogramowania, po aktywnym rozwijaniu aplikacji agentowych i platformy od 2003 roku. Dla mnie ważną lekcją jest to, że technologia agentów musi zostać uproszczona i zbliżona do orientacji obiektowej i SOA, aby stała się użyteczna w praktyce. Oznacza to, że badacze powinni dążyć do zmniejszenia heterogeniczności i złożoności, zamiast stale je zwiększać poprzez wymyślanie nowych podejść na wszystkich poziomach. Obecnie oprogramowanie agentowe nie jest dobrze przystosowane do szybkiego prototypowania złożonych systemów, ponieważ wymaga zbyt wielu czynności przygotowawczych, takich jak projektowanie protokołów i ontologii.
Pytanie 2: Jakie są najbardziej udane zastosowania agentów programowych w świecie rzeczywistym? Jakie są kolejne obszary ich zastosowań i czy ludzie są gotowi na interakcję z agentami programowymi w ich codziennym życiu?
Lars Braubach
W przeciwieństwie do prognozy mapy drogowej technologii agentów z 2005 r., która przewidywała powolne, ale stale poprawiające się wdrażanie technologii agentów (osiągnięcie głównego nurtu w 2010 r.), rzeczywiste wdrożenia nie zwiększyły się w widoczny sposób i nadal zainstalowano tylko kilka aplikacji w świecie rzeczywistym. Dobrą wiadomością jest to, że wiele z oryginalnych firm zajmujących się agentami, w tym Intelligent Automation (Cybele), Whitestein (Living Systems), TILAB (JADE), AOS (JACK), Cougaar Software i SOAR Tech, nadal z powodzeniem stosuje technologię agenta w wyspecjalizowanych segmentach rynku, takich jak telekomunikacja, logistyka, przepływy pracy, kontrola pojazdów autonomicznych, kontrola satelitów i inteligentne systemy wsparcia.
System Rozumowania Proceduralnego (PRS) – źródło systemów BDI – został opracowany w NASA i z powodzeniem zastosowany w kilku aplikacjach kosmicznych, w tym w systemie wykrywania błędów w systemie kontroli reakcji promu kosmicznego. Oprogramowanie kontroli misji NASA zostało również zaimplementowane w sposób zorientowany na agenta przy użyciu ram Brahms.
Symulacja jest kolejnym silnym obszarem zastosowania systemów wieloagentowych. Na przykład, stworzenie przez Massive Software scen filmowych ze sztucznymi aktorami we Władcy Pierścieni było imponującym pokazem zastosowania technologii symulacji agentowej.
Użycie architektury kognitywnej SOAR w aplikacjach szkoleniowych (wojskowych) jest również godne uwagi, ponieważ pokazuje, jak agenci mogą efektywnie symulować ludzkie zachowanie w rzeczywistych scenariuszach. W dziedzinie wojskowości znajdujemy kilka dalszych zastosowań technologii agentowej. Jednym z wyjątkowych przykładów jest bardzo złożone oprogramowanie do zarządzania logistyką w finansowanym przez DARPA projekcie UltraLog, który doprowadził do rozwoju platformy agentowej Cougaar.
Autonomia i przetwarzanie w chmurze, scenariusze big data i robotyka wydają się być bardzo obiecującymi obszarami. Wierzę, że inteligentna chmura Infrastructure-as-a-service (IaaS) i oprogramowanie sterujące Platform-as-a-service (PaaS) mogłyby w znacznym stopniu skorzystać z technologii agentowej – na przykład dla w pełni zdecentralizowanej koordynacji. Jednak pomimo tej możliwości, wielcy dostawcy chmury, tacy jak Google i Amazon, wykorzystują w swoich rozwiązaniach inne alternatywy dla agentów.
Scenariusze big data, które zazwyczaj obejmują rozproszone przetwarzanie danych, oferują inne możliwości. W robotyce, problemy coraz częściej przechodzą z perspektywy pojedynczego robota na perspektywę wielu robotów. Tutaj technologia multiagentowa ma duże szanse na owocne połączenie z oprogramowaniem systemów operacyjnych robotów.
Interakcja z systemami autonomicznymi będzie coraz bardziej ugruntowana. Na przykład, kilka stron internetowych już posiada awatary, które imitują ludzkich doradców. Oczywiście, interakcja z wirtualnymi postaciami nie musi oznaczać, że technologia agenta jest wykorzystywana za kulisami.
Giancarlo Fortino
Czy istnieje jakieś udane zastosowanie oparte na agencie (w ścisłym sensie)? Być może możemy wskazać na crawlery internetowe, które nie są programowymi agentami w ścisłym sensie, lub JADE, który jest w istocie platformą do budowania aplikacji. Wiele aplikacji opartych na agentach istnieje w różnych domenach, ale trudno jest zidentyfikować „udane” aplikacje. Kolejnymi obszarami zastosowań dla agentów będą prawdopodobnie inteligentne miasta i Internet Rzeczy. Jeśli chodzi o interakcję z agentami programowymi, myślę, że użytkownicy przyzwyczają się do nich, jeśli zostaną one zintegrowane z interaktywnymi GUI. Ludzie już korzystają z Facebooka, Twittera i wielu innych aplikacji. Wszystko zależy od użyteczności i częstotliwości użytkowania.
Costin Badica
Symulacja i bezpieczeństwo to prawdopodobne obszary zastosowań agentów. Jednak ludzie prawdopodobnie nie są jeszcze gotowi na interakcję z agentami w życiu codziennym. Powinniśmy również przyjrzeć się temu, do czego nawołują tradycyjne badania nad interfejsem człowiek-komputer (HCI) i spróbować zrozumieć, które wyniki pasowałyby lub mogłyby być zastosowane w interakcji człowiek-agent.
Giovanni Rimassa
Agenty programowe zostały zastosowane w praktyce w wielu dziedzinach. Z mojego osobistego doświadczenia mogę wskazać na rozwiązanie logistyczne firmy Whitestein, które DHL wdrożył w 27 krajach; uważam, że jest to największy system multiagentowy, jaki kiedykolwiek został wdrożony do użytku produkcyjnego, pod względem liczby użytkowników. Uzyskujemy również bardzo dobry odzew na nasz zorientowany na agenta pakiet do zarządzania procesami biznesowymi (BPM) w usługach finansowych i przemyśle wytwórczym.
Ale nasz pakiet już odniósł sukces, dziedzina oprogramowania BPM jako całość nie przyjęła jeszcze wyraźnie idei agenta. Gartner zmienił w zeszłym roku swój Magic Quadrant dla pakietów BPM, wprowadzając pojęcie inteligentnego BPMS (w skrócie iBPMS), a od września 2013 roku wiadomo, że Jim Sinur (który kierował pomysłami iBPMS w Gartnerze), Jim Odell (były przewodniczący FIPA) i inni mają książkę na temat następnej fali BPM, która, według ich słów, będzie BPM zorientowanym na agenta. Umieściłbym zarządzanie procesami biznesowymi na czele następnych obszarów zastosowania technologii agentowej. Inne obszary wynikają z zastosowania symulacji opartej na agentach ze względu na nacisk na big data i szybkie podejmowanie decyzji adaptacyjnych: w ciągu ostatnich dwóch do trzech lat otrzymaliśmy zapytania od firm energetycznych, lotniczych i finansowych, które poszukiwały złożonych systemów wspomagania decyzji ze znacznymi możliwościami symulacji.
Bardzo trudno jest ocenić, na ile użytkownicy są gotowi na daną technologię. Z jednej strony, jeśli technologia przynosi prawdziwą innowację, użytkownicy z definicji nie mogą być gotowi. Niemniej jednak, sposoby, w jakie ludzie konkretnie stosują nowe narzędzia, dostarczą informacji zwrotnej, która z kolei ukształtuje te narzędzia: niewłaściwe użycie i nadużycie są cechami sukcesu. Jestem ostrożnym optymistą, ponieważ widzę złożony scenariusz z wieloma możliwościami, w którym największe znaczenie będą miały trendy polityczne i społeczne, a nie podstawowe cechy technologii. Co ciekawe, tegoroczny Gartner Emerging Technologies Hype Cycle koncentruje się na ewoluujących relacjach człowiek-maszyna.
Pytanie 3: Jakie jest Twoje spojrzenie na standardy agentów? Czy obecny status FIPA jako ciała IEEE jest zadowalający, czy też potrzebujemy czegoś innego?
Giovanni Rimassa
Standardy dla technologii agentów, ogólnie rzecz biorąc, są tak samo użyteczne jak te w innych częściach informatyki i IT. Ich skuteczność zależy od czegoś więcej niż tylko jakości specyfikacji technicznych, w tym od konsorcjów wspierających, efektów sieciowych i łatwości łączenia się z innymi dominującymi praktykami i technologiami. W przypadku oprogramowania pośredniczącego ten ostatni punkt jest jeszcze ważniejszy.
Większość specyfikacji z Foundation for Intelligent Physical Agents (FIPA) miała sens w 2000 roku, kiedy główny nurt IT tak naprawdę nie pojmował koncepcji wymaganych przez infrastrukturę agenta; obecnie świat nie tylko poszedł do przodu, ale rozwinął się dokładnie w kierunku, za którym opowiadała się FIPA. Dlatego nie ma sensu nie tylko używać starych standardów, ale nawet próbować je aktualizować, aby stworzyć nasz własny smak tego, co wszyscy inni i tak już robią.
Umieszczenie FIPA w IEEE jest bardzo dobrym posunięciem z punktu widzenia organizacji i wiarygodności, ale chciałbym, aby FIPA przekształciła swoją oryginalną misję (interoperacyjność) w świecie, w którym podstawowe usługi platform i środowisk agentowych są już czymś oczywistym. Pierwszym krokiem powinna być analiza luk: czego jeszcze nie ma, co uczyniłoby systemy wieloagentowe wygodniejszymi do realizacji w konkretnych zastosowaniach? Jakie elementy z tej listy skorzystałyby na standaryzacji przez stronę trzecią? Z drugiej strony, ostatnia i najbardziej aktywna grupa robocza FIPA, jaką pamiętam, skupiała się na metodologii i procesie projektowania, co wydaje się być postawieniem wózka przed koniem.
Costin Badica
Niekoniecznie musimy podążać za standardami, takimi jak FIPA. Ich rozpowszechnienie było popularne w „erze interoperacyjności”. Myślę, że FIPA jest OK, ale nie sądzę, że potrzeba więcej standardów.
Giancarlo Fortino
Mamy, powiedzmy, „standardy”, ale agenci nie są mocno zanurzeni w świecie komercyjnym lub przemysłowym – więc, czy naprawdę potrzebujemy standardów w tym przypadku? FIPA została zamrożona od czasu decyzji z 2005 roku w Budapeszcie o przeniesieniu jej do IEEE. Uważałem – i nadal uważam – że FIPA i sama technologia agentów nie były wystarczająco dojrzałe, aby przenieść je do IEEE. Myślę, że musimy ponownie uruchomić organizację (być może z inną nazwą, chociaż FIPA jest już znana w społeczności agentów) jako (prawie) dobrowolny wysiłek, jeśli chcielibyśmy stworzyć masę krytyczną w standaryzacji agentów – ale może nikogo to nie obchodzi!
Lars Braubach
Standardy są zawsze ważne, aby wspierać akceptację technologii i uwolnić klientów od potencjalnego uzależnienia od dostawcy. W przypadku technologii agentów, standardy FIPA dotyczą przede wszystkim komunikacji między agentami i zapewniają możliwość komunikacji między różnymi platformami agentów. W 2013 r. świat po prostu nie ma tego problemu, ponieważ tylko kilka aplikacji agentów jest wdrożonych i nie istnieje światowa sieć wdrożonych platform agentów w duchu AgentCities. Tak więc, standardy te są w większości nieistotne dla praktyki. Co więcej, technologia usług sieciowych z powodzeniem osiągnęła interoperacyjność w systemach rozproszonych. W związku z tym, umożliwienie platformom agentowym bezproblemowej eksternalizacji funkcjonalności jako usług sieciowych oraz wykorzystanie istniejących usług sieciowych do integracji z innymi systemami ma ogromne znaczenie praktyczne. Obejmuje to standardowy język definicji usług internetowych (WSDL), jak również rosnącą liczbę usług internetowych typu RESTful, ponieważ wielcy gracze, tacy jak Google i Yahoo, oferują więcej interfejsów API poprzez REST. Moim zdaniem, nowa inicjatywa dla standardów czystego agenta nie przyczyni się zbytnio do przyjęcia tej technologii, ponieważ zajmuje się nieistotnym problemem. Zamiast tego potrzebujemy przede wszystkim standardów, które proponują integrację z ustalonymi technologiami.
Pytanie 4: Czego jeszcze brakuje w obszarze platform, języków i narzędzi agentów?
Giancarlo Fortino
Mamy wiele rzeczy. Myślę, że musimy je zastosować i ocenić. Oczywiście, w świecie przemysłu musimy skupić się na (ograniczonym) zestawie modeli referencyjnych i powiązanych narzędzi CASE (w tym metodologii referencyjnej). Myślę, że jest to klucz do szerszej akceptacji technologii agentów.
Lars Braubach
Myślę, że brakuje kilku rzeczy – począwszy od języków programowania agentów, które ściśle integrują się z głównymi językami zorientowanymi obiektowo. Powinniśmy również dysponować przemysłowymi infrastrukturami rozproszonymi w obszarach sieci i chmur, które wykorzystują technologie agentowe. Szczególnie w obszarze platforma-jako-usługa (PaaS) potrzebne są nowe podejścia programistyczne do tworzenia aplikacji rozproszonych. Podejścia wieloagentowe mogą pomóc wypełnić tę lukę. Z tym aspektem wiąże się fakt, że wciąż brakuje nam kompleksowych metod i narzędzi do debugowania i testowania systemów rozproszonych.
Costin Badica
Potrzebujemy powiązania z bardziej tradycyjnymi badaniami i metodami CS oraz unikania niepotrzebnego wymyślania rzeczy na nowo pod parasolem agenta – jak to czasami próbują robić AOSE lub AOP.
Giovanni Rimassa
Platformy agentowe powinny być przeprojektowane z dodatkowym ograniczeniem, by nie zanieczyszczać standardowej infrastruktury IT: być błyszczące ze względu na zaawansowane funkcje, ale bardzo nudne pod względem mechanizmów. Nie powinny wykazywać żadnej trwałości, z wyjątkiem relacyjnych systemów zarządzania bazami danych lub baz NoSQL, i nie powinny przekazywać żadnych komunikatów, z wyjątkiem usług Java Message Service, SOAP lub RESTful web services. Jeśli chodzi o języki i narzędzia, obecna fala badań próbująca połączyć języki programowania aktorów i agentów powinna nabrać na sile, w celu stworzenia jednego lub więcej kompletnych środowisk programistycznych, które naprawdę nadają się do masowej adopcji. Moim osobistym życzeniem byłoby mieć język aktora/agenta z nowoczesnym systemem typów, który rozróżnia agenta, artefakty/usługi i wiedzę/dane.
.