李 娜
(南京高達(dá)軟件有限公司,南京 210012)
與普通移動通信系統(tǒng)相比,集群通信主要用于專用移動通信領(lǐng)域,如大型企業(yè)、港口、軌道交通、出租車行業(yè)、應(yīng)急通信等;通過功能整合,提供了多種功能選擇和創(chuàng)新融合,為生產(chǎn)和指揮提供專業(yè)的指揮和協(xié)調(diào)。集群通信系統(tǒng)中,行業(yè)應(yīng)用作為重要發(fā)展方向,受到了越來越多的關(guān)注。集群應(yīng)用服務(wù)給用戶提供了方便靈活和專業(yè)化的服務(wù),充分發(fā)揮了集群通信系統(tǒng)快捷、高效的特點(diǎn)。但是,眾多的功能應(yīng)用服務(wù)直接作用于調(diào)度系統(tǒng),造成了集群調(diào)度系統(tǒng)的龐大和繁雜,也帶來的部署和選擇的不靈活,因此應(yīng)用服務(wù)的實(shí)現(xiàn)需要得到改進(jìn)。
集群通信的應(yīng)用,除基本的通話外,還包括地圖定位、視頻功能、門禁業(yè)務(wù)、警務(wù)綜合業(yè)務(wù)、加密服務(wù)等等,業(yè)務(wù)類別的不斷增加,系體積日益龐大。為了降低系統(tǒng)內(nèi)多功能的耦合度,首先需要分治的獨(dú)立應(yīng)用服務(wù)程序,每個業(yè)務(wù)程序?qū)崿F(xiàn)一種功能,如劃分為短信服務(wù),定位服務(wù),門禁、視頻業(yè)務(wù)服務(wù)等,分別獨(dú)立的和集群通信系統(tǒng)協(xié)同工作完成其主要的業(yè)務(wù)流程和功能。以多個獨(dú)立應(yīng)用服務(wù)為基礎(chǔ),提供可裁剪和定制的應(yīng)用服務(wù)的合集。通過選配應(yīng)用服務(wù)程序,為集群用戶提供定制化服務(wù)和特色功能。
在獨(dú)立的應(yīng)用服務(wù)的基礎(chǔ)上,第二階段考慮將獨(dú)立的應(yīng)用組裝起來滿足各有不同的行業(yè)應(yīng)用,即增加透明通道化的接入中轉(zhuǎn)服務(wù)。
接入中轉(zhuǎn)服務(wù)一個必須具備的基礎(chǔ)能力是完成在各個具體應(yīng)用服務(wù)間的轉(zhuǎn)發(fā)需要。如果對這個轉(zhuǎn)發(fā)基礎(chǔ)的能力進(jìn)行細(xì)分,那么消息會需要處理請求和與請求相對應(yīng)的響應(yīng)對或與某條請求消息對應(yīng)通知、上報(bào)消息,這么幾大類的消息。集群通信系統(tǒng)中,不同的業(yè)務(wù)邏輯目前是以消息驅(qū)動的方式觸發(fā)流程進(jìn)行,因此接入中轉(zhuǎn)服務(wù),保持對外統(tǒng)一的接口消息定義方式;通過制定不同的消息處理策略,應(yīng)對不同的中轉(zhuǎn)流程。接入中轉(zhuǎn)服務(wù)的接口轉(zhuǎn)發(fā)策略,目前有以下幾種:一是端點(diǎn)處理策略。比如心跳消息,比如認(rèn)證消息,由接入服務(wù)進(jìn)行管理和維護(hù)接入服務(wù)作為端點(diǎn)不需要進(jìn)行下級轉(zhuǎn)發(fā),自身處理完畢后返回結(jié)果。二是固定端點(diǎn)轉(zhuǎn)發(fā)策略。比如按照消息中指定的端點(diǎn)標(biāo)志,往既定的端點(diǎn)應(yīng)用轉(zhuǎn)發(fā),不需要校驗(yàn)業(yè)務(wù)處理單元和消息匹配。比如接收短信發(fā)給目標(biāo)方的消息等。異步的通知類消息,我們可以將其看作特殊的響應(yīng)類消息,是由于前期流程的請求消息的最終響應(yīng)。三是請求響應(yīng)匹配策略。此種策略是最常用策略,在處理需要同步或者異步等待結(jié)果的消息時使用,比如定位請求。同時也在處理一次業(yè)務(wù)邏輯結(jié)束時和業(yè)務(wù)處理單元匹配時使用通道化的應(yīng)用接入服務(wù)為多定制化的行業(yè)應(yīng)用提供了便捷、靈活、可擴(kuò)展的方式接入集群服務(wù),為其在多行業(yè)中的應(yīng)用提供了基礎(chǔ)。
應(yīng)用服務(wù)的日漸增加,服務(wù)之間的交互的增加對集群應(yīng)用服務(wù)提出了新的要求,比如按照內(nèi)容路由、數(shù)據(jù)可靠性支持、以及基本的安全驗(yàn)證和流量控制等功能。第三階段在透明接入服務(wù)的基礎(chǔ)上提供服務(wù)總線的框架。
服務(wù)總線按照邏輯劃分為如下幾個分層:
端點(diǎn)服務(wù)接入層:端點(diǎn)服務(wù)可以通過配置文件新增或者修改,注冊在接入服務(wù)器中。各活動端點(diǎn)應(yīng)用信息,通過心跳信息和配置文件得知。接入服務(wù)保持和其他應(yīng)用的心跳,并且將其他端點(diǎn)應(yīng)用的服務(wù)狀態(tài)通知到所有其他端點(diǎn)。
路由轉(zhuǎn)發(fā)層:消息中含有端點(diǎn)標(biāo)志。消息中的端點(diǎn)標(biāo)志代表了消息的來源和去向,通過節(jié)點(diǎn)標(biāo)志找到下游處理單元。動態(tài)模塊化模型,提供了不同的行業(yè)應(yīng)用的組合和分離。作為一個通用的行業(yè)應(yīng)用業(yè)務(wù)通道,不能因?yàn)橛行碌男袠I(yè)應(yīng)用就頻繁修改接口,同時新接口的應(yīng)用也需要兼容舊接口。盡量做到可擴(kuò)展和兼容性,實(shí)現(xiàn)統(tǒng)一管理,統(tǒng)一驗(yàn)證,靈活配置。
安全保護(hù)層:作為對外的接入服務(wù)器,對于消息的安全性和完整性需要進(jìn)行校驗(yàn)。安全驗(yàn)證信息不需要在各端點(diǎn)服務(wù)見互相配置,而在端點(diǎn)服務(wù)和接入服務(wù)中互配。消息中含有安全驗(yàn)證碼,提供消息的有效性驗(yàn)證,可以通過通用的MD5算法對原始消息進(jìn)行加密,接入服務(wù)器校驗(yàn)有效性后才進(jìn)行轉(zhuǎn)發(fā)。同時接入層提供服務(wù)中節(jié)本元素,如集群用戶、群組的鑒權(quán),提供初級的數(shù)據(jù)安全驗(yàn)證。
業(yè)務(wù)處理層:消息中含有唯一消息索引和業(yè)務(wù)單元索引。消息唯一索引ID標(biāo)志一條消息,而業(yè)務(wù)處理單元索引作為一次業(yè)務(wù)邏輯的處理單位將多次交互組織和整合起來,并且區(qū)分與其他的業(yè)務(wù)處理單元。這種異步消息處理機(jī)制,可以實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)之間真正的松耦合的結(jié)構(gòu)。
監(jiān)控和流量控制層:統(tǒng)一服務(wù)接入總線可以監(jiān)控所有應(yīng)用服務(wù)的消息流通和業(yè)務(wù)頻度可以形成流量控制和告警等統(tǒng)計(jì)類業(yè)務(wù)。
以一個圈選攝像頭發(fā)起視頻功能為例進(jìn)行說明:集群客戶端首先通過服務(wù)總線發(fā)起定位圈選業(yè)務(wù),定位服務(wù)器處理該業(yè)務(wù)并將圈選的結(jié)果返回給服務(wù)總線,回送客戶端。集群客戶端再次通過結(jié)果中的位置信息和攝像頭信息發(fā)起視頻上拉,結(jié)果通過服務(wù)總線返回客戶端,即完成一次交互。
不同行業(yè)通過選配應(yīng)用服務(wù),統(tǒng)一接入服務(wù)總線,配合完成行業(yè)特色應(yīng)用。
集群應(yīng)用服務(wù)在集群系統(tǒng)中提供了多功能的整合使用,將應(yīng)用服務(wù)獨(dú)立劃分并通過服務(wù)總線接入集群系統(tǒng)中,為集群系統(tǒng)中的多種特色行業(yè)應(yīng)用提供了靈活的框架,在實(shí)際應(yīng)用特別是行業(yè)應(yīng)用中得到了好評。