TMS[維護觸發器訊息池]

Trigger Management System,也叫觸發管理系統,它提供了註冊、刪除、更新、分發觸發器訊息的方法。

Trigger Management System,過濾然後分發觸發器訊息的類。它提供了註冊、刪除、更新、分發觸發器訊息的方法。

(1)觸發器訊息結構定義

根據Agent之間通信的需要,定義了包含傳送、接受ID、訊息類型、附加變數在內的結構體。附加變數主要包括最新速度、通用布爾變數、Agent分組信息等內容。

(2)註冊觸發器訊息

訊息能夠通過TMS提供的註冊函式RegisterMessge()註冊到系統中。TMS負責創建一個新的觸發器訊息並且設定其屬性,完成後會將訊息實例的指針返回,將訊息壓人訊息池。

(3)刪除觸發器訊息

當訊息失效後,Agent調用TMS提供的刪除函式RemoveMessage()刪除訊息池中的無用訊息。

(4)更新觸發器訊息

觸發器訊息系統的核心是Update()函式。這個函式可以刪除過期的觸發器訊息,刷新動態位置的觸發器訊息,並通知與某個觸發器訊息有關的所有智慧型體。Update()函式在每個時鐘周期內均會被調用一次。

(5) TMS負責維護的觸發器訊息池

Agent message在TMS註冊後,壓入訊息池(TMS MessagePool)進行保存。為了提高查找效率,訊息池會按照訊息類型對Message進行分組管理。

(6)觸發器訊息分發模組

觸發器訊息分發模組是TMS中較為獨立的一個部分,它負責過濾訊息和建立Agent和該Agent獨有訊息的映射表。是保證Multi-Agent進行高效通信與事件同步的基礎。

系統在每個運算周期中均會調用觸發器訊息類中訊息分發函式DistributeMessage()來分發訊息池中的訊息,創建訊息映射表,提高Agent獲得訊息的速度,進而確保系統的實時性。DistributeMessage()函式首先獲取訊息池中的訊息,然後根據訊息的接收ID將訊息壓入訊息映射表中。各個Agent在下個運算周期中訪問相應的訊息映射表,取出訊息從而進行操作。

訊息的分發實現了每個Agent只要對它感興趣的事件Event做出反應即可,同時兩個運算周期的配合也保證了系統的實時性。

(7) TMS分發訊息後產生的Agent對應訊息映射表

為了避免輪詢,從而進一步提高效率設計了這個映射表。每個Agent ID對應一組經過分發模組檢測後生成的訊息指針。Agent對象只需要根據自己的類型和ID查詢該表就可以快速的得到自己在新的時鐘周期所應處理的訊息。

(8)觸發器的邏輯概念

觸發器( Trigger ) 是負責觸發器訊息產生的邏輯運算機,當滿足了觸發條件時, Agent就會產生並註冊觸發器訊息。

熱門詞條

聯絡我們