2014-04-12 92 views
2

我正在開發一個項目,在該項目中,我將交通信號控制器表示爲(主)代理,並且它們彼此進行通信。我打算用這個JADE,但後來我遇到了AKKA。現在我有點困惑,因爲我所讀到的關於AKKA的信息顯示,有1位大師,而且大師首先創造了工人;那是對的嗎?如果是的話,我該如何執行(所有主人)代理人代表?AKKA vs JADE代表代理系統

+0

能否請您詳細說明您的項目規格?考慮你如何放置它,你可以以任何方式實現它。 – darlinton

+1

所以你試圖建立一個系統,你有一個真正的對等系統,沒有定義的主人,但會相互協作。類似於JXTA系統http://en.wikipedia.org/wiki/JXTA –

+0

聽起來您可能對「主」這個詞有兩個含義。在Akka中,代理產生於一個層次中,即即使只有一個根及其所有子代,也需要有一棵樹。交通信號控制器的「主」代理有些不同。 –

回答

1

那麼你最終在哪?我所確定的是演員模型與代理模型不同,爲了讓代理在AKKA中有意義,你需要自己做很多事情。

  • 因爲AKKA要通過路由器發送所有請求,所以需要在消息本身存儲狀態。

  • 爲了模擬代理對等體的無主機行爲,您將必須構建一個路由主機,該主機將知道哪些代理髮送什麼。此外,如果您有「重複平均」問題(例如團體意見),則該主人需要監視問題的狀態/在下一次迭代中將其他代理的結果發送給每個代理。

我想你可能需要問你在框架中尋找什麼。如果你在尋找耐用性,AKKA可能是一個好的選擇(它受ErLang啓發),如果你正在尋找一個可以運行模擬的代理平臺,JADE或RePast可能是一個更好的選擇。

至少對於代理系統,AKKA與ActiveMQ或ZeroMQ大致相當(即它處理分佈式系統的一些通信問題,但它不是基於代理的框架)。