1 引言
鐵路車站信號計(jì)算機(jī)聯(lián)鎖系統(tǒng),是鐵路信號的基礎(chǔ)設(shè)備,同時也是鐵路運(yùn)輸領(lǐng)域中重要的控制系統(tǒng),它是以現(xiàn)代計(jì)算機(jī)技術(shù)、控制技術(shù)和通信技術(shù)為基礎(chǔ)來實(shí)現(xiàn)對車站信號設(shè)備的聯(lián)鎖控制。計(jì)算機(jī)聯(lián)鎖軟件成為了計(jì)算機(jī)聯(lián)鎖系統(tǒng)的核心,因此必須確保它對聯(lián)鎖邏輯的描述和安全控制的實(shí)現(xiàn)準(zhǔn)確無誤。而隨著我國高速鐵路的快速發(fā)展,對聯(lián)鎖軟件在技術(shù)和功能上提出了新的要求。傳統(tǒng)軟件開發(fā)方法在靈活性、可維護(hù)性、軟件安全性以及開發(fā)效率上都顯露出不足。
計(jì)算機(jī)聯(lián)鎖是以計(jì)算機(jī)為主要技術(shù)手段實(shí)現(xiàn)車站聯(lián)鎖的實(shí)時控制系統(tǒng)。其基本任務(wù)是對車站值班員的操作命令及現(xiàn)場各種表示信息通過計(jì)算機(jī)進(jìn)行邏輯運(yùn)算,并輔以各種“故障-安全”措施。聯(lián)鎖系統(tǒng)各主要部分的功能和設(shè)置地點(diǎn)的劃分層次結(jié)構(gòu),如圖1所示。
圖1 計(jì)算機(jī)聯(lián)鎖系統(tǒng)
聯(lián)鎖層是聯(lián)鎖控制系統(tǒng)的核心,聯(lián)鎖機(jī)構(gòu)除了接收來自人機(jī)會話層的操作信息外,還接收i/o接口層的反映信號機(jī)、動力轉(zhuǎn)轍機(jī)和軌道電路狀態(tài)的信息,即信號控制命令和道岔控制命令。i/o接口層接收來自聯(lián)鎖層的控制命令,經(jīng)過信號機(jī)控制電路,改變信號顯示;接收來自聯(lián)鎖層的道岔控制命令,驅(qū)動道岔轉(zhuǎn)換。室外設(shè)備是聯(lián)鎖系統(tǒng)的控制對象,它包括信號機(jī)、轉(zhuǎn)轍機(jī)和軌道電路。
本文針對安全苛求軟件的特點(diǎn),面向我國高速鐵路計(jì)算機(jī)聯(lián)鎖軟件的應(yīng)用需求,基于目前主流的SOA思想的實(shí)現(xiàn)規(guī)范,即服務(wù)組件體系結(jié)構(gòu)sca,提出并實(shí)現(xiàn)了一個完整的服務(wù)組件開發(fā)模型,掙脫web service框架對sOA思想的束縛,并能根據(jù)服務(wù)組件模型生成代碼框架。
2 soa和sca
面向服務(wù)的體系架構(gòu)soa(service oriented architecture)是1996年gartner公司描述實(shí)施企業(yè)“v英文”時第一次提出來的。w3c將soa定義為:“一套可以被調(diào)用的組件,用戶可以發(fā)布并發(fā)現(xiàn)其接口!眘oa是一種軟件設(shè)計(jì)開發(fā)思想,它超越并包含所有的具體技術(shù)和所有的具體架構(gòu)。服務(wù)組件框架sca(service component architecture)的java標(biāo)準(zhǔn)來自ibm。sca是一套面向服務(wù)的soa編程模型或者說編程架構(gòu),也是一種soa思想的實(shí)現(xiàn)方式。sca通過模塊 (composite) 將sca的組件集成在一起的。模型開發(fā)應(yīng)用中,總是期望能提高軟件開發(fā)效率,增強(qiáng)軟件安全性。因此,本文針對聯(lián)鎖軟件安全性高的特性,提出一種面向聯(lián)鎖的soa服務(wù)組件開發(fā)模型。
3 聯(lián)鎖邏輯服務(wù)組件的開發(fā)模型
聯(lián)鎖軟件主要由兩大部分構(gòu)成,一是聯(lián)鎖功能程序,二是聯(lián)鎖數(shù)據(jù)。聯(lián)鎖功能程序主要是對聯(lián)鎖數(shù)據(jù)進(jìn)行邏輯運(yùn)算以完成聯(lián)鎖功能;聯(lián)鎖數(shù)據(jù)主要用于反映監(jiān)控車站各個設(shè)備的區(qū)動采集對象的特征和狀態(tài)。聯(lián)鎖軟件的核心部分是關(guān)于基本進(jìn)路過程的處理,包括進(jìn)路選排、進(jìn)路鎖閉、進(jìn)路信號開放、進(jìn)路信號保持和進(jìn)路解鎖等過程。由此,基本進(jìn)路可以看成聯(lián)鎖軟件提供的流程服務(wù),對應(yīng)人機(jī)會話層操作員辦理進(jìn)路的業(yè)務(wù)需求。對于操作人員來說,基本進(jìn)路處理流程作為一個整體服務(wù)被調(diào)用。這個流程服務(wù)包括以下幾個任務(wù):進(jìn)路選排、進(jìn)路鎖閉、進(jìn)路信號開放、進(jìn)路信號保持和進(jìn)路解鎖,每個任務(wù)通過調(diào)用相應(yīng)的服務(wù)來完成聯(lián)鎖軟件的功能。在業(yè)務(wù)流程進(jìn)路辦理的過程中,進(jìn)路選排服務(wù)、進(jìn)路鎖閉服務(wù)調(diào)用成功,但是進(jìn)路信號開放服務(wù)因?yàn)樾盘枱艄收喜荒荛_燈,此時對于聯(lián)鎖系統(tǒng)軟件的人機(jī)會話層來說,業(yè)務(wù)流程進(jìn)路辦理調(diào)用已經(jīng)失敗。而進(jìn)路選排服務(wù)、進(jìn)路鎖閉服務(wù)的調(diào)用已經(jīng)成功完成,相關(guān)的驅(qū)動采集對象如信號機(jī)、道岔和區(qū)段等設(shè)備狀態(tài)和特性已經(jīng)被這些成功調(diào)用的服務(wù)修改了。這就有可能導(dǎo)致不可控的命令下發(fā)到室外設(shè)備,導(dǎo)致安全隱患。因此,在進(jìn)路辦理的執(zhí)行過程中出現(xiàn)了業(yè)務(wù)流程服務(wù)未成功調(diào)用,但卻對設(shè)備對象數(shù)據(jù)產(chǎn)生影響的場景。
基于上述問題,本文的服務(wù)模塊開發(fā)模型定義了一種被稱為“補(bǔ)償”的服務(wù)機(jī)制來完善服務(wù)的模型,以解決業(yè)務(wù)流程服務(wù)的執(zhí)行原子性和數(shù)據(jù)一致性的問題。例如流程服務(wù)逐個調(diào)用兩個服務(wù),如果只有一個基本服務(wù)調(diào)用成功,可以通過適當(dāng)?shù)氖虑閬硌a(bǔ)償前一個服務(wù)調(diào)用成功所產(chǎn)生的影響。每個基本服務(wù)都有一個相應(yīng)的補(bǔ)償處理服務(wù),用于消除對應(yīng)基本服務(wù)的調(diào)用產(chǎn)生的影響。一旦進(jìn)行補(bǔ)償,流程服務(wù)中已經(jīng)運(yùn)行完成的所有服務(wù)都會依照特定的邏輯進(jìn)行補(bǔ)償。補(bǔ)償服務(wù)機(jī)制致力于維護(hù)業(yè)務(wù)流程的執(zhí)行原子性,即業(yè)務(wù)流程的執(zhí)行結(jié)果只能是以下兩種情形之一:流程服務(wù)執(zhí)行成功或流程服務(wù)執(zhí)行失敗但不產(chǎn)生任何影響。當(dāng)執(zhí)行特定的流程服務(wù)時,相關(guān)聯(lián)的用于補(bǔ)償調(diào)用的就是補(bǔ)償服務(wù)。補(bǔ)償服務(wù)僅在流程服務(wù)完成時才能夠被調(diào)用,當(dāng)流程執(zhí)行過程中出現(xiàn)故障時,執(zhí)行預(yù)先關(guān)聯(lián)的補(bǔ)償服務(wù)來補(bǔ)償業(yè)務(wù)流程服務(wù)的行為。在一個業(yè)務(wù)流程執(zhí)行過程中,如果定義了關(guān)聯(lián)的補(bǔ)償服務(wù),就應(yīng)該記錄業(yè)務(wù)流程各個服務(wù)的執(zhí)行順序,注冊關(guān)聯(lián)的補(bǔ)償服務(wù)及輸入數(shù)據(jù)到補(bǔ)償服務(wù)處理隊(duì)列。如果業(yè)務(wù)流程正常完成,則不需要任何補(bǔ)償。因此基于以上補(bǔ)償機(jī)制,完善的服務(wù)組件補(bǔ)償模型應(yīng)該滿足這樣的條件:對任意一個業(yè)務(wù)流程服務(wù),每次調(diào)用的結(jié)構(gòu)要么是成功執(zhí)行,要么不產(chǎn)生任何影響。即實(shí)現(xiàn)了業(yè)務(wù)流程的執(zhí)行原子性;谝陨侠碚摚梢缘贸鰏ca構(gòu)架下補(bǔ)償服務(wù)處理機(jī)制的通用模型如圖2所示。
圖2 補(bǔ)償服務(wù)處理機(jī)制模型
如圖2所示,基本服務(wù)1和基本服務(wù)2屬于同一個組合服務(wù),且都成功的完成了調(diào)用(第1,2步)。而屬于流程服務(wù)的基本服務(wù)3的調(diào)用(第3步)也成功完成。若此時基本服務(wù)4調(diào)用(第4步)失敗,被業(yè)務(wù)流程服務(wù)關(guān)聯(lián)的補(bǔ)償服務(wù)捕捉到,觸發(fā)了補(bǔ)償服務(wù)(第5步)。補(bǔ)償服務(wù)開始執(zhí)行,通過調(diào)用后進(jìn)先出的補(bǔ)償服務(wù)隊(duì)列(與業(yè)務(wù)流程完成的次序相反),依次調(diào)用補(bǔ)償處理服務(wù)(第6-10步)來補(bǔ)償之前操作產(chǎn)生的影響。
實(shí)際的聯(lián)鎖軟件應(yīng)用中,用戶的需求經(jīng)常是比較復(fù)雜的。聯(lián)鎖軟件服務(wù)組件除了調(diào)用基本的服務(wù)組件之外,也需要調(diào)用一些優(yōu)先級較高的緊急操作服務(wù),而這些服務(wù)組件往往是依賴外部設(shè)備驅(qū)動采集的狀態(tài)。因此,在服務(wù)模型中引入了兩個特殊的端點(diǎn),一個是“導(dǎo)入”(import),使得模塊中的服務(wù)組件可以調(diào)用模塊外部的服務(wù)。另一個是“導(dǎo)出”(export),它使得模塊外部的應(yīng)用可以調(diào)用模塊中的服務(wù)組件。導(dǎo)入和導(dǎo)出的引入增加了服務(wù)組件的靈活性,使得此模型的服務(wù)調(diào)用能夠跨越服務(wù)模塊的限制。
4 模型在計(jì)算機(jī)聯(lián)鎖軟件中的應(yīng)用
為了驗(yàn)證和測試上述模型的有效性,基于以上服務(wù)模塊模型,在linux平臺上開發(fā)了一個計(jì)算機(jī)聯(lián)鎖軟件系統(tǒng)。此聯(lián)鎖邏輯補(bǔ)償模型可以獲得計(jì)算機(jī)聯(lián)鎖軟件系統(tǒng)的服務(wù)組件補(bǔ)償模型如圖3所示。
圖3 計(jì)算機(jī)聯(lián)鎖軟件系統(tǒng)的補(bǔ)償模型
聯(lián)鎖軟件實(shí)時監(jiān)測人機(jī)交互層操作人員的操作命令,調(diào)用相應(yīng)的業(yè)務(wù)流程服務(wù)執(zhí)行相應(yīng)的軟件功能。在執(zhí)行流程服務(wù)的同時,聯(lián)鎖軟件監(jiān)測是否有來自外部的高優(yōu)先級服務(wù)調(diào)用,以保證緊急情況下聯(lián)鎖軟件的安全性需求。在以往的聯(lián)鎖軟件進(jìn)路辦理過程中,進(jìn)路辦理的進(jìn)路選排、進(jìn)路鎖閉、進(jìn)路信號開放、進(jìn)路信號關(guān)閉和進(jìn)路解鎖等過程在程序執(zhí)行時,除了對聯(lián)鎖數(shù)據(jù)進(jìn)行邏輯運(yùn)算,還需要檢測各個執(zhí)行過程是否成功完成。這提高了聯(lián)鎖軟件業(yè)務(wù)流程各個服務(wù)模塊的耦合度。每個服務(wù)子模塊都應(yīng)包含補(bǔ)償處理,以消除業(yè)務(wù)流程執(zhí)行過程中當(dāng)前所有已經(jīng)成功執(zhí)行的子模塊所產(chǎn)生的影響。因此,此服務(wù)模型的業(yè)務(wù)流程子服務(wù)模塊的補(bǔ)償處理只關(guān)心當(dāng)前子模塊成功調(diào)用產(chǎn)生影響,而不會關(guān)聯(lián)到業(yè)務(wù)流程執(zhí)行的上下文環(huán)境。因此,本文提出的服務(wù)組件開發(fā)模型能在相當(dāng)大的程度上減少軟件設(shè)計(jì)開發(fā)的冗余,提高軟件開發(fā)的效率,同時這也限制了各個子模塊的功能邊界,減少了因?yàn)槟K之間高度耦合而帶來的安全性問題。
5 結(jié)束語
本文基于soa思想,針對安全苛求軟件的特點(diǎn),設(shè)計(jì)了在sca標(biāo)準(zhǔn)下一種完整的服務(wù)組件開發(fā)模型,通過在北京地鐵試驗(yàn)線計(jì)算機(jī)聯(lián)鎖系統(tǒng)的應(yīng)用驗(yàn)證了該模型的正確性。由此模型驅(qū)動生成服務(wù)組件代碼框架,不僅提高了軟件的安全,還大大提高了軟件的開發(fā)效率。此服務(wù)組件模型的業(yè)務(wù)流程服務(wù)依賴補(bǔ)償服務(wù),這種補(bǔ)償服務(wù)機(jī)制雖然能提高軟件開發(fā)效率,但其與業(yè)務(wù)流程關(guān)聯(lián)度還比較高,提高了服務(wù)模塊的耦合程度。因此,將來的方向是改進(jìn)當(dāng)前補(bǔ)償服務(wù)的執(zhí)行機(jī)制,降低與具體業(yè)務(wù)流程之間的耦合程度。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SOA架構(gòu)下補(bǔ)償模型驅(qū)動的安全苛求軟件開發(fā)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083963082.html