摘要:提出了一個集成通信服務器模型,應用多智能主體結構支持多并發和高效率的信道連接與管理,通信服務器系統亦具有擴展性和通用性,并在一個實際的物流監控與調度系統中得到了良好的應用。
關鍵詞:多智能主體;集成通信服務器;規則推理
中圖分類號:TN919.5文獻標志碼:A
文章編號:1001-3695(2007)05-0283-04
0引言
隨著越來越多的各類企業將業務向外擴張,其眾多的下屬單位分布在不同的地理區域,需要與企業總部隨時保持信息溝通;企業也要隨時監控其下屬單位的業務運營情況[1]。很多下屬單位由于地理空間的限制或者位置的實時移動,有線通信不能圓滿解決這些企業的通信問題。無線通信成為被廣泛采用的技術方案。以物流企業為例,下屬的眾多倉庫、運輸車隊、港口辦等單位分布在不同的地理區域,企業總部一般都設有監控中心,它是物流企業的信息處理和業務調度中心,下屬單位需要定期上傳自己的業務數據,由它根據自身的商業邏輯下發控制指令給下屬單位,從而監控整個物流過程。企業的規模不斷擴大,通信模式也會變化,通信設備的數量和型號不斷增多,通信量和通信頻度迅速增長,通信環境異常復雜,如何保證海量信息流動狀況下信息的完整性和傳遞的正確性、快捷性,已經成為企業越來越突出的問題,為此人們提出了集成通信服務器的概念來解決這個問題。
集成通信服務器(Integrated Communication Server, ICS)負責與企業下屬部門或關聯單位的移動終端(Mobile Terminal, MT)的數據通信。它是企業總部對外的通信門戶,可以將各種無線通信模式(GSM、CDMA等)、各種通信方式(短消息、IP數據包等)集成在一起,屏蔽了底層通信的多樣性和復雜性,使企業的應用系統不需要考慮底層通信的變化,提高了企業的信息處理能力。針對不同的行業應用,人們開發了各種ICS,除了可以與固定終端通過Internet進行通信外,ICS還可以與各種MT(如GPS終端、手提電腦、手機等)通信。軟件實現上都是采用模塊封裝、Socket通信、多線程、消息排隊等編程技術[2]。
面對企業復雜的通信環境,ICS必須能夠長時間為大量的MT提供通信服務,采用上述編程技術實現的ICS在實際應用中主要存在以下兩個問題:①單臺通信服務器并發服務容量小,峰值時刻信息延時嚴重,信息丟失頻發,存在性能瓶頸;如果配置多個通信服務器,采用路由器來進行負載平衡,勢必提高硬件成本和系統的復雜性[3]。②靈活性差,系統模型僵化,無法實現對環境變化的自適應。總之,不能隨通信環境的變化而改變處理策略,是導致企業通信服務器存在性能瓶頸的主要原因。主體(Agent)有自主推理、自主決策能力,由其組成的多主體系統(Multi-Agent System, MAS)具有自適應、自組織和良好的協調性能,采用多主體技術來設計和開發ICS可以較好地解決上述問題。
1企業通信模式及實現機理
1.1通信模式
移動無線通信系統有多種分類方法。例如按信號性質可分為模擬、數字;按調制方式可分為調頻、調相、調幅;按多址連接方式可分為頻分多址(FDMA)、時分多址(TDMA)和碼分多址(CDMA)。目前中國移動所使用的GSM移動電話網采用的便是FDMA和TDMA兩種方式的結合。中國聯通所使用的CDMA移動電話網是在數字技術的分支——擴頻通信技術上發展起來的一種嶄新而成熟的無線通信技術。目前這兩種無線通信網絡都能提供語音、短消息和數據業務。
短消息服務(Short Message Service, SMS)適合傳輸間斷、簡短的數據,但其存儲轉發方式使傳輸的延遲可能因負載變化而無法接受;其計費方式也不利于大規模系統的應用。通用分組無線服務(General Packet Radio Service, GPRS)是一種基于GSM系統的無線分組交換技術,提供端到端的、廣域的無線IP連接。IP協議傳輸數據使其易與Internet互連;按流量計費、接入時間短、傳輸速率高(在19.2~170kbps之間)。GPRS通信模式得到越來越廣泛的運用,但GPRS覆蓋范圍不如SMS[1,2]。為了達到理想的通信效果,企業通信需要采取SMS和GPRS兩種模式相結合的辦法,其MT支持SMS和GPRS兩種數據傳輸方式并能自動切換[1];以GPRS為主,SMS短信方式只是在GPRS方式失常時才工作。
GSM是以語音業務為主,以數據業務為輔;CDMA是第三代移動通信系統所采用的主流技術,其最大的優點是保留了GSM語音業務,發展了數據業務,通過手機可以直接上網。CDMA技術是先進的,GPRS的最終發展目標也是WCDMA,但目前市場規模、用戶數量遠不如GSM網絡,因此主要以SMS/GPRS技術作為企業的無線通信模式。對于采用CDMA技術的MT,該通信服務器軟件只添加相應的軟件模塊,可以很方便地進行集成。
1.2實現機理
如圖1所示,ICS位于企業監控中心。它與監控中心數據庫服務器、監控管理終端處于同一個內部局域網內,連通Internet且有一個固定的IP地址。它是各種MT與監控中心信息交換的樞紐,通過Internet與移動的GPRS網絡的GGSN(GPRS網關支持節點)連接;通過串行口外接短信Modem以無線方式與短消息服務中心連接[2]。按照功能劃分,通信服務器一般需要由GPRS通信模塊、SMS通信模塊、協議解析模塊、安全管理模塊組成,經過安全性檢查、信息解碼、數據保存等步驟接收上傳信息,通過指令獲取、協議封裝、發送等步驟下發信息。
2基于多主體系統的集成通信服務器模型
通信服務器出現性能問題一般有以下幾個原因:①移動網關本身就會出現堵塞;②MT沒有通信信號;③不能對于MT短時間內反復連接又斷開的情況作出處理,導致通信服務器耗費大量系統資源;④不能隨業務對象的變動調整通信范圍,盲目處理一些不需要處理的MT通信;⑤消息按排隊順序處理,沒有考慮消息的緊急程度。其中,①和②是外部因素,無法控制;對于③~⑤,可以通過MAS中主體知識庫中的規則結合推理機制進行優化處理,從而解決性能問題。
2.1體系結構設計
(1)體系結構
多主體系統(MAS)的研究涉及主體的知識、目標、技能和規劃以及如何使主體協同地采取行動解決問題等。MAS的目標是將一個大的復雜的系統建造成小的彼此相互通信及協調的系統。MAS中的每個主體都是一個具有問題求解方法的自治系統,能利用局部信息進行自主規劃并能通過規劃推理解決局部沖突實現協作,從而完成與自身相關的局部目標[4]。
從軟件的角度來看,ICS各個功能模塊的地位平等,并沒有邏輯上的隸屬關系,它們協作完成整體的共同目標。如果將各個功能模塊看做是完全自治的主體,那么ICS可以看做是一個MAS。這個MAS中主要包括監視主體、通信主體、安全主體、接口主體、系統管理主體五類;主體之間采用KQML語言進行通信。主體以獨立線程的形式存在,采用Java技術實現MAS即可使得ICS具有跨平臺能力,能適應不同的應用環境[5]。系統結構如圖2所示。該系統具有下述優點:①靈活、集成、擴充方便,可以集成不同的MT。對于新類型的設備,只要將通信協議寫成文本,作為規則導入相關主體的知識庫即可,方便使用。②對于系統故障,如某些主體不能正常工作時,系統的性能也不會顯著下降或引起系統崩潰。因而系統具有很強的魯棒性和可靠性。
(2)關鍵數據結構
數據庫表結構主要有以下五個:①合法終端用戶表Usercheck(device_num, user_id, permituse);②接收原文表Recmessage(device_num, message, used, storetime, gettime,id);③發送原文表Sendmessage(device_num, message, used, storetime, sendtime);④業務數據表Misproc(id, type, rors, contents, device_num, priority);⑤在線用戶表communicationusers(soc-ketid,username)。
接口主體處理的報文數據結構如圖3所示。
報文類型可分為警報報文、數據(文件)報文和監控報文三類,通過優先級來區分。通信主體和接口主體進行報文交換。根據目的地址/源地址(與設備有對應關系)以及知識庫中的規則對數據進行解析或封裝。
(3)功能
①監視主體。感知MT的連接請求,提取此MT的身份特征和安全主體通信,判斷此MT的合法性,驗證后通知系統管理主體生成一個新的通信主體;由此通信主體啟動接收和發送線程,負責與此MT進行通信。
②通信主體。負責與MT進行一對一的通信;將接收到的數據按照結合規則進行推理,對信息解碼;同時將下發指令按照規則進行協議封裝,然后發送。當與MT的通信終止時,此通信主體通知系統管理主體進行注銷。
③安全主體。對外部MT的合法性進行判別,響應通信主體的查詢消息,同時將此MT的合法性知識反饋給通信主體。
④接口主體。它是通信服務器和上層應用系統的接口;與通信主體以及上層應用系統之間的消息傳遞以報文的形式進行;負責將應用系統的各類指令轉換成通信主體可以理解的形式存放在數據庫中,同時將收到的通信數據翻譯成應用系統可以理解的形式存放。
⑤系統管理主體。主要管理系統中各主體的注冊、生成、注銷等,負責提供系統正常工作所需的必要服務,如名字服務、安全服務、尋址服務等。
2.2主體結構設計
(1)內部結構
主體是能持續自主運行、掌握一定知識、有自己的目標和解決問題的能力的個體軟件,它通過傳感器感知環境,通過效應器作用于環境。主體結構如圖4所示。主體的主要特點是自主性、反應性、社會性、交互性和智能性;自主性是其根本特征。可以根據知識庫中的知識分析現有狀態信息,推導出隱含的知識信息,并將這些結論信息發送至相關主體進行協商討論[5]。
(2)推理機制
基于規則系統是人工智能的一個重要分支,可以模擬人類的思維過程,根據一組已定義的規則對目前存在的事實進行推理,得出新的結論。本文設計的主體采用產生式規則作為基本的知識表達模式,采用正向推理(Forward Chaining)的工作模式。其WHEN-IF-THEN的代理規則格式為
{NANE rule name規則名
WHEN Message Condition(s)
//針對從外部環境接收到的消息設定的條件
IF Mental Condition(s)//針對主體的內部狀態設定的條件
THEN
Private Action(s)//條件滿足時執行的私有方法列表
Mental Change(s)//條件滿足時改變內部狀態的方法列表
Message Action(s)//條件滿足時向外發送消息的方法列表
}
主體的工作過程描述如下:主體通過感應器接收外部消息,通過推理機對接收到的消息進行檢查,判斷其是否滿足規則中WHEN項的條件。如果滿足,則進一步檢查代理自己的內部狀態集,判斷其是否滿足規則中IF項的條件。如果滿足,則執行規則中THEN項內容。只有WHEN和IF項中的條件都滿足時,代理才執行THEN項中的內容。
以下是監視主體和通信主體的推理規則舉例。監視主體通過存放在其知識庫中的通信對象范圍判別規則和防死連判別規則(防止同一MT短時間內反復連接的不正常現象)可以提高通信服務器的性能表現。避免因為處理與它們的通信而浪費系統資源,提高了系統的響應速度。
通信對象范圍差別規則如下:
Rule Name:CheckCommScope //X是代表MT的對象
WHEN
%X.longitude>=D1 and %X.longitude<=D2
//D1和D2是一個經度浮點數
%X.latitude>=G1 and %X.latitude<=G2
//G1和G2是一個緯度浮點數
IF %X.id IN(ValidCommSet)
//X.id是表示此設備的SIM卡號,如果是有效通信對象
THEN
DO CreatNewComm(%X)//通知系統管理生成新的通信Agent
DO PassCommHandel(Ag,%X.handle)
//通知新的通信Agent Ag接收X的通信句柄
防死連判別規則如下:
Rule Name:AvoidFrequentConn //X是代表MT的對象
WHEN
%X.conncount>=3
//X的累計連接次數達到3次,3是參數,可修改
IF %X.id IN(ValidCommSet) and GetTime()-%X.time0+%X.t1>3
/*X的記錄累計連接的時間為t1,上次連接的時刻為time0,3 min內已有3次連接的MT將被拒絕通信*/
THEN
%X.time0=GetTime();%X.t1=0;
//更新Agent內存中相關事實
DO GrateNewComm(%X) //通知系統管理生成新的通信Agent
DO PassCommHandle(Ag,%X.handle)
//通知新的通信Agent Ag接收X的通信句柄
通信主體的知識庫中已經存放各類MT的通信協議知識。以GPS終端為例,由于各類MT都將業務數據,如GPS定位、報警、呼叫、監聽等進行了封裝,如上傳的“*HQ…”串代表MT是某公司GPS產品,“*HQ201AA…”代表劫警信息。有時候通信主體的接收緩沖區會同時包含上述信息,如前兩條是定位信息,后面是一條劫警信息。按照常規排隊處理,需要先處理前兩條,然后才處理劫警信息。顯然這會造成延時,不能令人滿意。通信主體存放在其知識庫中的優先級判別規則可以更快地處理緊急情況下的報警類信息,提高服務器性能表現。
優先級判別規則如下所示:
Rule Name:UrgencyInfoProc //X是代表MT的對象
WHEN
%X.recordCount>=1 //X緩沖區中待接收的記錄多于1條
%X.buffer.Find(′*HQ201AA′)>=1
//X緩沖區中有緊急記錄,X是華強設備
3.%X.buffer.Find(′*MP999′)>=1
//X緩沖區中有緊急記錄,假設X是MP公司設備
…//如果有新類型設備,照樣添加即可
IF … //不需要IF條件
THEN
DO ProcessInfo(%X.GetSubStr(Buff,Str)
//取出報警子串進行信息解碼,忽略定位信息
還可以添加很多規則用于提高主體智能和環境適應能力,優化性能。限于篇幅,就不一一列舉。
2.3多主體協同
(1)通信機制
主體之間的通信很重要。單個主體需要經常與其他主體合作才能達到預期目的,通信是合作的基礎。主要有三種通信機制:①基于CORBA的遠程方法調用;②消息傳遞;③基于元組空間(Tuple Space)的通信。從本質上說,消息傳遞允許不同的主體之間對等地收發消息,擺脫了遠程方法調用中客戶/服務器模式的約束,適合異步、松耦合的主體系統。消息傳遞靈活、自由,受到的限制少,主體發送一條消息后,可繼續執行其他任務;當收到返回的消息時再作相應的處理。這種通信機制已被當前大多數主體系統所采用[6],如圖5所示。
本文的MAS通信服務器系統采用消息傳遞的通信機制,采用基于Socket的KQML(Knowledge Query and Manipulation Language)作為主體之間的通信語言。自定義通信語言中的行為源語作為消息頭,具體的通信內容作為消息體,利用本體來理解消息的語義,以便采取正確的動作處理消息。若需要增加額外的服務設施,通過集中式服務來解決主體通信中的定位問題。集中式服務主要由系統管理主體負責。主體創建時,會得到一個全局唯一的標志符,并向它注冊其名字、能力和位置等信息;當主體之間需要合作時,可把消息發送給系統管理主體,由它充當消息緩沖區,找到相應的主體并把消息傳遞過去或由系統管理主體提供另一方主體的當前地址,雙方主體直接通信[6]。
如果MAS系統只部署在一臺機器上,上述方法是很有效的;如果需要部署在多臺機器上,可以再設計一類本地協調主體運行在每臺機器上,各臺機器上的主體都向本地協調主體注冊。主服務器上運行全局唯一的系統管理主體。當主體之間需要合作時,先查找本地協調主體,看是否有中意的合作伙伴,若有則在本地通信,沒有則本地協調主體通過Socket通信向系統管理主體查詢。由于本地協調主體承擔了本地主體的管理,減輕了全局管理的壓力,而且本地主體的通信不必查詢系統管理主體,加快了本地主體通信的速度。
(2)任務協調
主體內部的任務觸發機制是源于一個目標(Goal)的生成。一個Goal生成之后,主體自動檢查自身是否能夠完成該任務以及是否占有完成該任務所需的全部資源。若沒有,則把所缺少的資源以子目標(SubGoal)的形式向相關主體發出詢問,尋求合作。模型中任意兩個主體A 和B 之間的交互行為執行算法為:① A 向B 發送請求服務的消息;②B 收到之后向A 發送Accept消息,并在自己的任務集中尋找與之相吻合的操作;③如果沒有相吻合的計劃,則向A 發送一個Reject消息,否則執行其操作。④完成之后,用Result操作將結果信息發送給A。因此在確定Agent內部的任務處理之后,要描述整合以本體為信息流的任務之間的相互關系,明確子目標,從而反映出代理之間的任務協調關系。圖6是監視主體接到一個MT的連接請求時所做的任務協調過程。
3結束語
本文提出并在多智能主體的通信服務器上開發了一整套面向物流服務的車輛監控與指揮調度系統。在網GPS車輛有600多臺,GPS型號有四種,經過五礦貨運廣東公司的反復測試,與其原有的車輛監控系統對比,丟包率由原來的15%~20%減為3%~5%,處理一條消息的平均延時由原來的386 ms縮短為平均117 ms。特別是對報警類緊急信息,系統響應時間大幅度縮短,取得了良好的運行效果。
參考文獻:
[1]原倉周,柳重堪,張其善. 大規模車輛監控通信服務器的設計與實現[J]. 北京航空航天大學學報,2004,30(3):232-235.
[2]陳斌,李德華,姚迅. 一種基于GPRS技術的可擴展車輛監控系統的設計與實現[J]. 計算機應用研究,2005,22(6):175-178.
[3]原倉周,柳重堪,張其善.大規模車輛監控SMS/GPRS通信服務器參數分析[J]. 小型微型計算機系統,2005,26(5):775-778.
[4]劉小明,王飛躍.基于Agent 的單路口交通流控制的研究[J]. 系統仿真學報,2004,16(4):853-855.
[5]WOOLDRIDGE M. 多Agent系統引論[M].石純一,等譯. 北京:電子工業出版社,2003.
[6]郭中,王惠芳,黃永忠,等. 軟件Agent的通信模型[J]. 計算機工程與設計,2002,23(11):9-11.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”