◆馬成前 熊 楓
(武漢理工大學(xué)計算機(jī)學(xué)院 湖北 430070)
動態(tài)服務(wù)路由在合成作戰(zhàn)平臺中的研究
◆馬成前 熊 楓
(武漢理工大學(xué)計算機(jī)學(xué)院 湖北 430070)
企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)作為面向服務(wù)架構(gòu)的核心組成部分,為面向服務(wù)架構(gòu)提供服務(wù)集成的主要功能,如消息路由,服務(wù)質(zhì)量(QoS)管理,數(shù)據(jù)格式轉(zhuǎn)換等。面向服務(wù)的應(yīng)用強(qiáng)調(diào)動態(tài)和松耦合的集成,要求ESB提供動態(tài)的、可靠的路由方法,同時支持基于服務(wù)路由的服務(wù)選擇和適配,從而達(dá)到提供更方便、快捷、靈活的業(yè)務(wù)流程處理的目的。通過對服務(wù)總線中服務(wù)路由的動態(tài)性、可靠性,組合服務(wù)中的關(guān)鍵服務(wù)路由等關(guān)鍵技術(shù)進(jìn)行分析研究,并根據(jù)合成作戰(zhàn)平臺的實際情況加以應(yīng)用,來確保服務(wù)的可靠執(zhí)行,提高服務(wù)組合的有效性等。
企業(yè)服務(wù)總線; 服務(wù)路由; 合成作戰(zhàn)
隨著科學(xué)技術(shù)的發(fā)展,智慧警務(wù)在智慧城市中的應(yīng)用也越來越廣,各大城市都建設(shè)了適合本城市的警務(wù)管理體系,以達(dá)到科技強(qiáng)警和保障市民安全的目的。目前大多數(shù)的警務(wù)系統(tǒng)都是基于SOA(SOA,Service-Oriented Architecture)體系模型建立,因為SOA考慮了業(yè)務(wù)的長期發(fā)展的特性。服務(wù)總線是SOA體系的一個框架,同時也是基于消息傳輸和協(xié)議轉(zhuǎn)換的框架,通過服務(wù)總線將軟件體系間各子系統(tǒng)、各服務(wù)和各數(shù)據(jù)進(jìn)行了聯(lián)接。因此,一個穩(wěn)定可靠和高效的總線技術(shù)在整個警務(wù)系統(tǒng)中起到一個舉足輕重的作用,關(guān)系到整個警務(wù)系統(tǒng)運(yùn)行的效率。本文的意義,在于針對本次的合成作戰(zhàn)項目,基于對服務(wù)總線中動態(tài)路由的研究方法來提高合成作戰(zhàn)的指揮效率。
希望通過提出一種動態(tài)服務(wù)路由模型,實現(xiàn)物理服務(wù)的虛擬化封裝,來達(dá)到服務(wù)交互松耦合的目的。此模型旨在強(qiáng)調(diào)服務(wù)路由的動態(tài)性和可靠性,實現(xiàn)對服務(wù)組合流程高效的解釋和執(zhí)行,模型結(jié)構(gòu)圖如圖1。

圖1 模型結(jié)構(gòu)圖
1.1 服務(wù)虛擬化層
服務(wù)虛擬化是服務(wù)集成領(lǐng)域的一項重要技術(shù),能夠在保留服務(wù)原有功能不變的條件下,通過各種手段,使之成為虛擬的服務(wù),實現(xiàn)服務(wù)請求者和服務(wù)提供者的解耦合。

圖2 虛擬化過程圖
1.2 動態(tài)路由層
服務(wù)路由層是本系統(tǒng)的核心內(nèi)容,它從服務(wù)請求者接收到服務(wù)請求,經(jīng)過多策略,多模式的路由方法,將服務(wù)請求信息傳遞給服務(wù)提供者。動態(tài)服務(wù)路由依靠多種的路由組件,實現(xiàn)服務(wù)的動態(tài)訪問和消息傳遞。
服務(wù)路由通過執(zhí)行多策略的路由方法,動態(tài)的調(diào)用匹配的服務(wù)單元,服務(wù)單元通過服務(wù)綁定(針對物理服務(wù)),來調(diào)用物理服務(wù)完成對應(yīng)的業(yè)務(wù)功能。本模型通過動態(tài)服務(wù)路由,實現(xiàn)對服務(wù)組合的解釋和執(zhí)行。同時動態(tài)路由通過可靠的動態(tài)路由方法,在完成對服務(wù)流程執(zhí)行的同時,對服務(wù)節(jié)點提供合理的容錯機(jī)制,提高了服務(wù)的可靠性和組合服務(wù)的有效性。
該方法在保證原有服務(wù)的前提下,實現(xiàn)服務(wù)的動態(tài)組合。針對本次的合成作戰(zhàn)項目,在可能出現(xiàn)的應(yīng)急情況事件下,能夠具有良好的適應(yīng)性。靈活集成已經(jīng)存在的服務(wù),綜合各個服務(wù)的優(yōu)勢,能夠快速智能的組建功能更加強(qiáng)大的服務(wù),以應(yīng)對復(fù)雜的服務(wù)需求和需要快速反應(yīng)的需求變更。
1.3 邏輯服務(wù)層
這里的邏輯服務(wù)層本身并不具備實際的業(yè)務(wù)處理能力,它是通過動態(tài)的對物理服務(wù)進(jìn)行綁定來完成業(yè)務(wù)功能。
邏輯服務(wù)的實現(xiàn)主要是通過服務(wù)單元對物理服務(wù)的動態(tài)綁定,實現(xiàn)物理服務(wù)的組合,來滿足業(yè)務(wù)的需求。此方法能夠靈活的適應(yīng)多變的復(fù)雜的需求,面對某些物理服務(wù)異常或者發(fā)生改變的情況,動態(tài)服務(wù)綁定能夠選擇功能相似的其他物理服務(wù)代替,保證邏輯服務(wù)的可執(zhí)行性、穩(wěn)定性和可靠性。
提出一種基于服務(wù)置換的可靠路由方法,來提高服務(wù)組合執(zhí)行時候的服務(wù)安全性和可靠性。通過各種消息組件的協(xié)同作用,來實現(xiàn)服務(wù)的動態(tài)選擇,同時當(dāng)服務(wù)出現(xiàn)異常或者錯誤的時候,能夠迅速的做出反應(yīng),對失效服務(wù)進(jìn)行動態(tài)置換,以此來提高服務(wù)路由的可靠性和完整性。
消息路由組件:
(1)消息標(biāo)識器:在這里的消息標(biāo)識器主要的功能是在接收服務(wù)請求時,在不改變服務(wù)請求的前提下,將此消息添加一個標(biāo)識信息,為后面的一系列操作提供支持。這里標(biāo)識碼具有唯一性,以此來區(qū)別不同的服務(wù)請求,對后續(xù)的消息傳遞、分離、聚合等過程提供支持。
(2)動態(tài)過濾器:它的作用是接收服務(wù)消息,然后對此服務(wù)消息進(jìn)行分析,選擇服務(wù)列表中的第一個服務(wù)單元作為訪問的服務(wù)目標(biāo)。同時,動態(tài)過濾器存儲剩余的服務(wù)列表,并在服務(wù)消息中添加對應(yīng)的服務(wù)監(jiān)聽器的訪問信息。最后,將服務(wù)消息繼續(xù)向下發(fā)送。
(3)消息分離器:接收到了一條服務(wù)消息后,通過某種特定的消息分離策略,將其分解為相互存在一定關(guān)聯(lián)的子消息,并根據(jù)消息的內(nèi)容,將每一個子消息分別發(fā)送到指定的服務(wù)。
(4)消息聚合器:將分散的子消息從各服務(wù)中收集回來,然后將他們整合成為一條新的服務(wù)消息。消息聚合器能夠接收來自不同服務(wù)提供者的響應(yīng)結(jié)果,并將多條子消息整合成為一條完整的服務(wù)消息。在此過程中需要考慮:服務(wù)消息之間的關(guān)聯(lián)問題; 如何實現(xiàn)服務(wù)結(jié)果的異步接收。
(5)服務(wù)狀態(tài)監(jiān)聽器:它的目的是為了檢測目標(biāo)服務(wù)的工作狀態(tài),并對異常狀態(tài)進(jìn)行分析和處理。

圖3 動態(tài)服務(wù)路由示意圖
3.1 服務(wù)動態(tài)驗證
服務(wù)請求者首先訪問邏輯服務(wù),服務(wù)選擇器根據(jù)邏輯服務(wù)中的業(yè)務(wù)流程對服務(wù)節(jié)點的要求和描述進(jìn)行服務(wù)選擇。在第一次服務(wù)選擇的時候,選擇三個服務(wù)的執(zhí)行者(這里默認(rèn)為三個,可以根據(jù)要求進(jìn)行修改),按照順序參加服務(wù)的調(diào)用。如果第一個服務(wù)就能夠在有效的時間內(nèi)返回結(jié)果,則算此次的服務(wù)調(diào)用成功,服務(wù)監(jiān)測也隨之結(jié)束; 如果第一個服務(wù)沒有按時返回結(jié)果,則判定為此次服務(wù)調(diào)用失效,這時動態(tài)的啟用第二個服務(wù),啟用服務(wù)調(diào)用。以此類推,直到三個服務(wù)全部調(diào)用完成。如果這三個服務(wù)全部出現(xiàn)異常,則判定為此服務(wù)節(jié)點訪問失敗; 相反,如果三個中至少有一個服務(wù)能夠正常返回,則判定為此服務(wù)節(jié)點訪問成功,此時可以繼續(xù)下一個服務(wù)節(jié)點的調(diào)用工作。
如上述所說的,如果第一次服務(wù)選擇的三個服務(wù)全部調(diào)用完成后,還是沒有得到返回結(jié)果,則服務(wù)選擇器將會對這三個服務(wù)進(jìn)行第二次的服務(wù)調(diào)用,重復(fù)上面的操作,對上次未正確返回請求響應(yīng)的服務(wù)進(jìn)行驗證,避免因為服務(wù)阻塞或者是其他原因?qū)е碌奈捶祷仨憫?yīng)的情況發(fā)生。如果第二次驗證的時候,服務(wù)請求者得到了響應(yīng)的結(jié)果,服務(wù)調(diào)用立即停止。如果在第二次驗證后,依然無法得到正確的響應(yīng)結(jié)果,則將這三個服務(wù)視為無效服務(wù),此時將會重新選擇新的三個服務(wù)進(jìn)行服務(wù)調(diào)用。
在服務(wù)驗證中,這里只提到了對服務(wù)是否響應(yīng)進(jìn)行了驗證,這顯然是不夠的。公安合成作戰(zhàn)系統(tǒng)不僅需要響應(yīng)的速率,同時也必須保證響應(yīng)的正確性,后者的重要性明顯要高于前者的。所以,對于某些特殊必須做到嚴(yán)格執(zhí)行的服務(wù),還需要對其正確結(jié)果進(jìn)行驗證,即第一次驗證已經(jīng)返回響應(yīng)的前提下對此服務(wù)單獨進(jìn)行再次的服務(wù)調(diào)用,判斷兩次的調(diào)用響應(yīng)結(jié)果是否一致,如果不一致則重新選擇服務(wù)進(jìn)行調(diào)用,做到準(zhǔn)確性的驗證。

圖4 服務(wù)動態(tài)驗證
3.2 服務(wù)動態(tài)置換
服務(wù)請求者首先訪問邏輯服務(wù),服務(wù)選擇器根據(jù)邏輯服務(wù)中的業(yè)務(wù)流程對服務(wù)節(jié)點的要求和描述進(jìn)行服務(wù)選擇。如果選擇的三個服務(wù)請求都不能返回正確請求的時候?qū)?zhí)行此服務(wù)置換方法。具體流程如圖5。

圖5 服務(wù)置換流程示意圖
在第一次服務(wù)選擇的時候,選擇三個服務(wù)的執(zhí)行者,按照順序參加服務(wù)的調(diào)用。如果第一個服務(wù)就能夠在有效的時間內(nèi)返回結(jié)果,則算此次的服務(wù)調(diào)用成功,服務(wù)監(jiān)測也隨之結(jié)束; 如果第一個服務(wù)沒有按時返回結(jié)果,則判定為此次服務(wù)調(diào)用失效,這時動態(tài)的啟用第二個服務(wù),啟用服務(wù)調(diào)用。以此類推,直到三個服務(wù)全部調(diào)用完成。如果這三個服務(wù)全部出現(xiàn)異常,則判定為此服務(wù)節(jié)點訪問失敗; 相反,如果三個中至少有一個服務(wù)能夠正常返回,則判定為此服務(wù)節(jié)點訪問成功,此時可以繼續(xù)下一個服務(wù)節(jié)點的調(diào)用工作。
如上述所說的,如果第一次服務(wù)選擇的三個服務(wù)全部調(diào)用完成后,還是沒有得到返回結(jié)果,則服務(wù)選擇器將會進(jìn)行第二次的服務(wù)選擇,同樣選擇新的三個服務(wù),重復(fù)上面的操作。如此反復(fù),直到服務(wù)請求者得到了響應(yīng)的結(jié)果,服務(wù)調(diào)用才停止。如果發(fā)來的服務(wù)請求,服務(wù)選擇器無法提供服務(wù),則說明針對此服務(wù)請求,沒有能夠處理的服務(wù)提供者,說明此服務(wù)無效,服務(wù)路由也就此停止。
3.3 動態(tài)服務(wù)組
服務(wù)組合是面向服務(wù)領(lǐng)域中的一個重要組成部分,其意義在于通過多個服務(wù)的組合能夠?qū)崿F(xiàn)更加高級的服務(wù)功能。基于可靠路由的組合服務(wù)執(zhí)行實現(xiàn)了對服務(wù)中組合流程的解釋和執(zhí)行,并完成服務(wù)組合執(zhí)行操作。
首先,通過分析組合流程的構(gòu)成,查找關(guān)鍵服務(wù)節(jié)點(如果將服務(wù)流程看成一個有向圖,關(guān)鍵節(jié)點則是有向圖中出度或者入度為0的節(jié)點),根據(jù)關(guān)鍵節(jié)點將服務(wù)分解為多個流程片段,達(dá)到將流程簡化的目的。再通過路由策略的描述來對每個流程片段進(jìn)行解釋,將服務(wù)內(nèi)容翻譯為路由系統(tǒng)能夠理解和執(zhí)行的路由策略。同時,為了保證服務(wù)組合的可靠性和有效性,實現(xiàn)服務(wù)的動態(tài)綁定,并體現(xiàn)服務(wù)請求者和服務(wù)提供者之間的松耦合,并對服務(wù)流程中的節(jié)點提供服務(wù)容錯,在驗證其實簡單的體現(xiàn)了一點服務(wù)容錯的思想,但是還很片面,這個需要后續(xù)階段的加強(qiáng)和完善。
4.1 場景描述
近年來,各種復(fù)雜案件的頻繁發(fā)生,對人民的生活帶來了極大的影響,同時對人民生命造成極大威脅,促使著目前警務(wù)系統(tǒng)從各警種或各部門的辦案向各警種部門之間無縫合成作戰(zhàn)發(fā)展。現(xiàn)在瞬息萬變的案件需求促使智慧警務(wù)中的合成作戰(zhàn)平臺必須快速的應(yīng)對各種臨時、突發(fā)的復(fù)雜情況。合成作戰(zhàn)平臺將成為智慧警務(wù)的產(chǎn)業(yè)結(jié)構(gòu),也是平安城市建設(shè)的重要組成部分,能夠成為快速應(yīng)對突發(fā)狀況的有效途徑。合成作戰(zhàn)平臺的實施需要多方的數(shù)據(jù)共享、信息共享和業(yè)務(wù)協(xié)同,傳統(tǒng)的警務(wù)系統(tǒng)已經(jīng)不足以支撐這種跨部門、跨警種、跨地區(qū)、分布式異構(gòu)環(huán)境下的協(xié)同作戰(zhàn)。因此,松耦合、支持異構(gòu)通訊的面向服務(wù)的架構(gòu)SOA成為合成作戰(zhàn)平臺的理想軟件架構(gòu)。
4.2 可靠的動態(tài)路由在合成作戰(zhàn)中的意義
目前的服務(wù)路由大多處于靜態(tài)配置型的靜態(tài)路由,使得服務(wù)提供者和服務(wù)請求者在某種程度上來說是一種緊耦合的關(guān)系。所以,一旦服務(wù)調(diào)用失敗,同時又沒有及時的發(fā)現(xiàn)問題,此時就會影響到與之相關(guān)聯(lián)的業(yè)務(wù)。而合成作戰(zhàn)平臺的意義就在于當(dāng)某一警種發(fā)現(xiàn)問題,需要處理某些業(yè)務(wù)邏輯的時候,一定要盡可能準(zhǔn)確,高效的處理請求來進(jìn)行對案件的分析和處理。這時如果采用原有的靜態(tài)路由方式,某一環(huán)節(jié)出現(xiàn)了異常,則很可能導(dǎo)致整體的業(yè)務(wù)無法進(jìn)行,影響了辦案的效率,與合成作戰(zhàn)的宗旨背道而馳。而提出的動態(tài)服務(wù)替換方法,可以實現(xiàn)服務(wù)的動態(tài)綁定和路由的動態(tài)調(diào)整。對于失效的服務(wù),能夠及時的進(jìn)行動態(tài)的替換,保證了路由的完整性和高效性。同時,服務(wù)動態(tài)驗證的方法又可以在保證路由完整性和高效性的前提下,保證服務(wù)調(diào)用的準(zhǔn)確性,最后,在動態(tài)服務(wù)組合的協(xié)調(diào)工作下,實現(xiàn)復(fù)雜的服務(wù)請求,實現(xiàn)復(fù)雜需求的簡單化、高效化、準(zhǔn)確化的處理。基于這樣一種服務(wù)替換方法的路由方式,可以大大的提高合成作戰(zhàn)平臺的工作效率。
通過對服務(wù)總線中的動態(tài)路由方法進(jìn)行分析,針對其動態(tài)性、可靠性、穩(wěn)定性進(jìn)行分析,同時結(jié)合可靠的組合服務(wù)執(zhí)行,并能夠結(jié)合實際的合成作戰(zhàn)項目進(jìn)行研究,旨在實現(xiàn)合成作戰(zhàn)平臺在針對臨時的、復(fù)雜的的案情能夠動態(tài)的、快速的、精準(zhǔn)的進(jìn)行分析并提出解決方案。但是,對于服務(wù)可靠性的問題還需要進(jìn)一步的研究,需要得到一種更加完善的可靠性保障機(jī)制。同時,在針對服務(wù)動態(tài)置換方法中如何為其增加一種服務(wù)容錯的機(jī)制,避免在服務(wù)替換時出現(xiàn)異常和錯誤,最終提高服務(wù)系統(tǒng)的運(yùn)行效率。
[1]張曉麗,徐飛飛.基于企業(yè)服務(wù)總線的統(tǒng)一數(shù)據(jù)展現(xiàn)平臺設(shè)計與實現(xiàn).河南理工大學(xué)學(xué)報,2016.
[2]陳偉,顧思思.基于企業(yè)服務(wù)總線的信息管理系統(tǒng)可靠性分析.計算機(jī)應(yīng)用與軟件,2016.
[3]孔祥瑞,鄭洪源.基于企業(yè)服務(wù)總線的業(yè)務(wù)集成方法[J].計算機(jī)工程,2009.
[4]馮培培,王輝.基于 ESB 技術(shù)的系統(tǒng)集成框架的研究[J].通信技術(shù),2010.
[5]郭文越,陳虹,劉萬軍.基于 SOA 的數(shù)據(jù)共享與交換平臺[J].計算機(jī)工程,2010.
[6]范菁,熊麗榮,徐聰.分布式企業(yè)服務(wù)總線平臺數(shù)據(jù)集成研究及應(yīng)用,2014.
[7]LRONID STOIMENOV,MILO BOGDANOVIC, SANJ-A BOGDANOVIC-DINIC.ESB-based sensor web integratio-n for the prediction of electric power supply system vulnerability [J].Sensors,2013.