要注意:為什么我們在調(diào)用web服務或者其他應用服務的時候,推薦使用agent來做代理。這個問題是否明白是解決多agent之間交互的關(guān)鍵。
要知道,agent之間的通信采用異步信息傳輸機制。這一點十分重要。比如,你所接收不同消息模板的消息可能會在不同的時間到達,并不一定是先發(fā)送的消息先接收到。又比如,你聲明了一個AID的數(shù)組,用于存放所搜索到的能提供不同服務的agent的AID身份。然而,這樣做,你就無法準確定位你獲取的服務agent是在數(shù)組中的哪一個位置。因為你利用DF進行搜索的過程中,并不一定先來搜索的服務就會放在數(shù)組的首地址中,因為可能這個服務暫時沒有被搜索到,而把另外一個容易發(fā)現(xiàn)的服務agent先搜索到了。這就是不用數(shù)組的原因。但我們可以考慮利用鍵值對的集合定義,來確保不同搜索結(jié)果存放的是不同的agent.也就是,不能用索引來定位agent的地址。
總之,一句話:agent的通信采用異步通信。
要知道,agent之間的通信采用異步信息傳輸機制。這一點十分重要。比如,你所接收不同消息模板的消息可能會在不同的時間到達,并不一定是先發(fā)送的消息先接收到。又比如,你聲明了一個AID的數(shù)組,用于存放所搜索到的能提供不同服務的agent的AID身份。然而,這樣做,你就無法準確定位你獲取的服務agent是在數(shù)組中的哪一個位置。因為你利用DF進行搜索的過程中,并不一定先來搜索的服務就會放在數(shù)組的首地址中,因為可能這個服務暫時沒有被搜索到,而把另外一個容易發(fā)現(xiàn)的服務agent先搜索到了。這就是不用數(shù)組的原因。但我們可以考慮利用鍵值對的集合定義,來確保不同搜索結(jié)果存放的是不同的agent.也就是,不能用索引來定位agent的地址。
總之,一句話:agent的通信采用異步通信。