2013-03-08 10 views

Odpowiedz

15

Nie wiedziałem wcześniej o JADE, a ja jestem liderem technologii Akka, więc przyjmij moją odpowiedź z przymrużeniem oka.

Przeskakiwanie ich strony (która prawdopodobnie ma być oglądana na znacznie mniejszym ekranie) wygląda na to, że ich agenci wykonują część przetwarzania aktorów z serii komunikatów, ale brakuje im nadzoru, a zatem odporności na błędy, i wydaje się, że zachęcać do blokowania lub odpytywania, podczas gdy aktorzy Akki są w pełni sterowani zdarzeniami, a zatem zużywają mniej zasobów (wątków). Patrząc na Przewodnik programisty wydaje się, że koncepcja została opracowana głównie w celu użycia GUI, podczas gdy aktorzy Akki nie są specyficzni i mogą być wykorzystywani do modelowania wszelkiego rodzaju obliczeń lub interakcji.

Jedna bardzo duża różnica, w której natknąłem się na moje powierzchowne przeszukanie, to rozmiar udostępnionego interfejsu dla agentów i aktorów: być może abstrakcja Akki jest prostsza, a przez to potężniejsza.

Możliwość przenoszenia agentów między hostami wygląda interesująco, nadal musimy to zaimplementować (patrz: roadmap).

Jeśli nie brakuje mi czegoś po stronie JADE, to Akka ma znacznie lepsze wsparcie dla programowania reaktywnego z całkowicie niezablokowanymi aktorami, wzór zapytań połączony z composable Futures (tj. Nie blokujące z java.util.concurrent, ale z metodami transformacji dla kompozycji asynchronicznej), STM support i więcej.

Nie wiem, jak JADE to robi, ale w Akce można elastycznie powiększać i zmniejszać swoich aktorów, zmieniając jedynie konfigurację, patrz routing.

Wreszcie, w Akka jest dostępne wsparcie cluster, dla którego nie mogłem znaleźć odpowiadającej mu funkcji w JADE, ale znowu nie kopnąłem bardzo głęboko.

Jedno Właśnie zauważyłem: Akka nie wymaga logowania do wypróbowania jej ;-)

+1

Mój umysł zostaje rozerwany na kawałki. Nie spodziewał się bezpośredniego wglądu. Dziękuję Ci! – atok

+0

Mogę się mylić, ale poszedłem na wykład o AMUSE (jest to bardziej szczegółowe ramy dla społecznej gry wideo opartej na JADE) przez jednego z liderów projektu JADE. Powiedział nam, że agent JADE bardzo reaguje na zmiany i niepowodzenia, dlatego jest odporny na awarie. – Pievis

+0

Inna sprawa: W moim uniwersytecie zachęcały one do znaczenia agenta jako czegoś bardziej rozwiniętego od aktora. Nauczyli nas, że aktor jest po prostu czymś, co zamyka jego wątek kontroli, w rzeczywistości nadal nie rozumiem aktorów akka, ponieważ dla wizji uczono mnie, że są bardziej agresywni. – Pievis

6

Wiem, że to pytanie jest kilka lat, ale ze względu na kompletność (dla tych, którzy szukają informacji na ten temat, tak jak ja) Chciałbym dodać punkt widzenia w pozycji przeciwnej do Ronalda (wiedząc lepiej JADE niż Akka). Nie jestem współpracownikiem JADE, ale pracowałem nad tym (kilka lat temu) i badałem (dużo) o agentach oprogramowania mobilnego.

Paradygmat agentów oprogramowania istnieje od wielu lat, dobrym wprowadzeniem do tematu jest the paper of Jeffrey M. Bradshaw. Ma o wiele więcej pojęć niż zwykli aktorzy.

Nie przedstawię paradygmatu (możesz zajrzeć do artykułu, jeśli jesteś zainteresowany), ale porównywanie ram bez wiedzy na ten temat wydaje się niesprawiedliwe. Wystarczy wspomnieć, że JADE implementuje wiele (nie wszystkie, od czasu ostatniego sprawdzenia) koncepcji paradygmatu, nie tylko część, którą można porównać z aktorami, ale także ma pojęcia takie jak: BDI model, Ontologies itp.Również JADE implementuje FIPA specification, który ma kilka części.

Tak jak powiedziałem, minęło kilka lat odkąd ostatnio sprawdzałem implementację JADE, więc nie będę porównywać technologii punkt po punkcie. Tak jak powiedział Ronald, JADE nie realizuje takich pojęć jak reaktywna czy elastyczna skala, ale należy wziąć pod uwagę, że koncepcje te są dziś szeroko obecne, ale nie były zbyt popularne wiele lat temu (kiedy JADE zaczął). Chcę wyjaśnić, że JADE ma odporność na uszkodzenia, skalowalność i niezablokowany sposób pracy włączony do niej (być może nie jest to jasne na stronie internetowej). Książka Developing Multi-Agent Systems with JADE jest doskonałym wprowadzeniem do frameworka.

Podsumowując, jeśli model aktora wystarczy do twoich wymagań, pójdę z Akka, ponieważ jest czystsza (prawdopodobnie szczuplejsza) i bardziej nowoczesna niż JADE. Jeśli potrzebujesz/chcesz korzystać z bardziej zaawansowanych/specyficznych funkcjonalności związanych z agentami oprogramowania (mobilnego), JADE jest dla tej platformy szerzej używaną platformą + (a przynajmniej tak było w przypadku moich badań).

Tylko moje dwa centy!

2

Znów rok później ... Potwierdzam, że przełączenie awaryjne jest kluczem do Jade, wspominając o kilku mechanizmach: platformach zapasowych, koncepcji wirtualnych replikowanych agentach, statycznych kontenerów mediatora (dotyczy rozłączenia i ip zmień), trwałe dostarczanie wiadomości. Wade dodaje więcej do odporności na uszkodzenia: http://jade.tilab.com/wade/doc/WADE-User-Guide.pdf.

Jade nie koncentruje się głównie na tworzeniu GUI.

Inną ważną cechą Jade, o której chciałbym wspomnieć, jest to, że agenty nie wymagają otwartych portów do dwukierunkowej komunikacji przez sieć, tylko platforma i kopie zapasowe wymagają otwartych portów.

Ponadto STM (skończony automat stanowy) jest ważną częścią Jade, modele konwersacji FIPA są implementowane za pomocą STM. Nefrytowi agenci nie tyle wysyłają i otrzymują wiadomości, ale wykonują rozmowy w przepływach pracy.

Tworzenie klastrów nie jest dostępne w Jade, ale Wade udostępnia konfigurowalne pule agentów, w których pula agentów rozproszonych zajmuje się określonym zadaniem.

Co do elastycznego skalowania i Jade'a, niektóre badania zostały wykonane, nie znam ich statusu. Być może lepiej jest zaadresować elastyczne skalowanie na poziomie jvm.

Motywem, który wymaga uwagi zarówno w Jade, jak i Akka, jest bezpieczeństwo (tożsamość, uwierzytelnienie, autoryzacja) w rozwiązaniu opartym na rozproszonym komunikacie.

Podsumowując: Jade jest znacznie potężniejsza i bogata, niż na pierwszy rzut oka. Jade potrzebuje modernizacji.

Interesujące byłoby zbadanie, w jaki sposób Akka i Jade mogą czerpać korzyści, AkkaAgent.

Powiązane problemy