◆田立軍丁 楠
(1.中國(guó)人民解放軍91413部隊(duì) 河北 066000; 2.河北建材職業(yè)技術(shù)學(xué)院機(jī)電工程系 河北 066000)
基于云計(jì)算的服務(wù)性行業(yè)系統(tǒng)開(kāi)發(fā)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
◆田立軍1丁 楠2
(1.中國(guó)人民解放軍91413部隊(duì) 河北 066000; 2.河北建材職業(yè)技術(shù)學(xué)院機(jī)電工程系 河北 066000)
現(xiàn)代服務(wù)業(yè)的發(fā)展必須由以信息與通信技術(shù)為核心的高技術(shù)來(lái)支持,云計(jì)算是新興的基于互聯(lián)網(wǎng)的資源共享與利用方式,核心是將大量計(jì)算機(jī)(服務(wù)器集群)構(gòu)成的資源,為不同用戶(hù)的計(jì)算需求提供服務(wù),本文主要通過(guò)分析現(xiàn)代服務(wù)業(yè)的現(xiàn)狀,提出了一種服務(wù)型行業(yè)開(kāi)發(fā)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)方案。
現(xiàn)代服務(wù)業(yè); 云計(jì)算; 互聯(lián)網(wǎng); 平臺(tái)
現(xiàn)代服務(wù)業(yè)是從工業(yè)、農(nóng)業(yè)、服務(wù)業(yè)三個(gè)產(chǎn)業(yè)角度抽出的,它是一種利用高新技術(shù),特別是信息通信技術(shù)和現(xiàn)代管理理念的一種新的服務(wù)業(yè)態(tài),云計(jì)算正是上述所提的新的業(yè)態(tài)。云計(jì)算是新興的基于互聯(lián)網(wǎng)的資源共享與利用方式,隨著網(wǎng)絡(luò)尤其是寬帶網(wǎng)絡(luò)的發(fā)展,以及“虛擬化軟件”技術(shù)的實(shí)現(xiàn),人們意識(shí)到“網(wǎng)絡(luò)即是計(jì)算機(jī)”,云計(jì)算使我們可以把計(jì)算能力、存儲(chǔ)能力集中起來(lái),放在“網(wǎng)絡(luò)”中去,以SOA框架和Web服務(wù)模型為基礎(chǔ)的企業(yè)業(yè)務(wù)集成,與傳統(tǒng)的集成機(jī)制相結(jié)合,實(shí)現(xiàn)了業(yè)務(wù)應(yīng)用軟件系統(tǒng)間的通信和連接。本論文研究開(kāi)發(fā)面向應(yīng)用的業(yè)務(wù)適配器組件,實(shí)現(xiàn)各集成應(yīng)用之間可管理的接口透明,為企業(yè)應(yīng)用提供了便捷、一致、安全并符合標(biāo)準(zhǔn)的豐富接口,保證服務(wù)之間信息的可靠傳送,進(jìn)而實(shí)現(xiàn)不同廠家的數(shù)據(jù)庫(kù)、中間件運(yùn)行平臺(tái)及其基于這些平臺(tái)之上開(kāi)發(fā)的應(yīng)用軟件的服務(wù)集成。
目前,SOA(Service Oriented Architecture)在國(guó)內(nèi)外已經(jīng)迅速成為技術(shù)主流。在微軟、IBM 等業(yè)界領(lǐng)軍企業(yè)的推動(dòng)下,第二代WEB 服務(wù)擴(kuò)展形成了WS-Referral、WS-Routing、WS-C oordination、WS-Transaction、WS-Attachments、WS-Inspection、DIME等標(biāo)準(zhǔn),用以解決諸如服務(wù)事務(wù)處理、文件附件、二進(jìn)制信息處理等問(wèn)題。自世界上最大的在線(xiàn)零售商Amazon公司200 6年3月發(fā)布簡(jiǎn)單存儲(chǔ)服務(wù)(Simple Storage Service,S3)尤其是2008年10月推出彈性計(jì)算云(Elastic Computer Cloud——E C2)服務(wù)正式版以來(lái),Google、IBM與微軟等互聯(lián)網(wǎng)與IT巨頭紛紛把“云計(jì)算”作為自己未來(lái)的核心戰(zhàn)略。
國(guó)內(nèi),隨著SOA技術(shù)的不斷成熟,中國(guó)的SOA架構(gòu)模型和應(yīng)用推廣已經(jīng)有了良好的需求環(huán)境。為了進(jìn)一步推進(jìn)SOA在中國(guó)的發(fā)展,形成中國(guó)特色的SOA架構(gòu)模型和規(guī)則規(guī)范。2005年4月成立了“長(zhǎng)風(fēng)聯(lián)盟”,在“長(zhǎng)風(fēng)聯(lián)盟技術(shù)發(fā)展藍(lán)圖”中將SOA確立為了聯(lián)盟技術(shù)戰(zhàn)略方向。該聯(lián)盟是在國(guó)家各部委和北京市科委、北京市信息辦、中關(guān)村科技園區(qū)管委會(huì)等部門(mén)的支持和指導(dǎo)下,由一批立志振興中國(guó)自主軟件產(chǎn)業(yè)的軟件企業(yè)和第三方機(jī)構(gòu)自愿發(fā)起籌建。2006年12月20日,“長(zhǎng)風(fēng)聯(lián)盟”加入國(guó)際標(biāo)準(zhǔn)組織OASIS并正式成為SOA標(biāo)準(zhǔn)制訂的重要參與者。此外,普元、東方通科技等一批國(guó)內(nèi)IT企業(yè)也都針對(duì)SOA進(jìn)行了研究,開(kāi)發(fā)了自己的產(chǎn)品。
2.1 流程服務(wù)的生命周期
流程服務(wù)的生命周期繼承自業(yè)務(wù)流程的生命周期,其狀態(tài)也繼承自業(yè)務(wù)流程的狀態(tài),添加了Web服務(wù)需要的部分特性。流程服務(wù)的狀態(tài)包括:
準(zhǔn)備狀態(tài):服務(wù)請(qǐng)求者在發(fā)起服務(wù)請(qǐng)求之前,流程服務(wù)處于準(zhǔn)備狀態(tài);
啟動(dòng)狀態(tài):經(jīng)過(guò)準(zhǔn)備狀態(tài)之后,服務(wù)請(qǐng)求者根據(jù)服務(wù)描述文件和服務(wù)執(zhí)行的參數(shù)信息提供必須的信息后,開(kāi)始請(qǐng)求啟動(dòng)流程服務(wù);
運(yùn)行狀態(tài):流程服務(wù)啟動(dòng)后,進(jìn)入運(yùn)行中狀態(tài);
終止?fàn)顟B(tài):流程服務(wù)執(zhí)行到結(jié)束節(jié)點(diǎn)時(shí),自動(dòng)進(jìn)入終止?fàn)顟B(tài),該狀態(tài)下,流程服務(wù)需要處理流程執(zhí)行完畢的會(huì)話(huà)信息以及向服務(wù)調(diào)用者發(fā)送流程結(jié)束確認(rèn)消息和返回值消息。
2.2 狀態(tài)的轉(zhuǎn)換
流程服務(wù)的狀態(tài)性本身帶有Web服務(wù)的特性,所以不同于流程的狀態(tài)性。流程服務(wù)的狀態(tài)轉(zhuǎn)換過(guò)程如下:
圖1 流程服務(wù)狀態(tài)轉(zhuǎn)換圖
2.3 服務(wù)狀態(tài)的管理
服務(wù)管理系統(tǒng)定義了訪(fǎng)問(wèn)服務(wù)所需要的SOAP消息結(jié)構(gòu),所有對(duì)于流程服務(wù)的訪(fǎng)問(wèn)都通過(guò)一個(gè)統(tǒng)一的通用的SOAP結(jié)構(gòu)進(jìn)行訪(fǎng)問(wèn)。另外一個(gè)重要功能是對(duì)于流程服務(wù)狀態(tài)的通用性管理,系統(tǒng)提供了一個(gè)服務(wù)代理,該代理控制,管理流程服務(wù)的狀態(tài)轉(zhuǎn)換。由于流程服務(wù)的狀態(tài)是有限性和固定性,服務(wù)代理提供了對(duì)于流程服務(wù)所有狀態(tài)的控制,包括啟動(dòng)流程服務(wù),中止流程服務(wù),重啟流程服務(wù),發(fā)送通知服務(wù),異步消息更新服務(wù),同步參數(shù)更新服務(wù),終止服務(wù)等。服務(wù)代理將這些狀態(tài)分為兩種,同步消息狀態(tài)請(qǐng)求,異步消息請(qǐng)求。同步消息狀態(tài)請(qǐng)求包括:啟動(dòng),終止,中止,重啟。異步消息請(qǐng)求包括:通知服務(wù),異步消息更新,同步消息更新等。
3.1 系統(tǒng)結(jié)構(gòu)描述
圖2 管理系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)主要是利用修改后的BTP協(xié)議來(lái)控制和協(xié)調(diào)分布式環(huán)境中的Web服務(wù)的事務(wù)性操作。Web服務(wù)本身的業(yè)務(wù)邏輯不需要進(jìn)行任何的更改。同時(shí)本系統(tǒng)對(duì)于撤銷(xiāo)的事務(wù)都是利用補(bǔ)償操作來(lái)完成的,為了增加系統(tǒng)的靈活性,補(bǔ)償?shù)木唧w操作由開(kāi)發(fā)人員按照具體的服務(wù)來(lái)進(jìn)行編寫(xiě)。本系統(tǒng)能夠解決分布式環(huán)境下長(zhǎng)事務(wù)控制和管理,提高系統(tǒng)的資源利用率。系統(tǒng)結(jié)構(gòu)圖如圖2。
3.2 SOAP消息的傳遞機(jī)制實(shí)現(xiàn)
3.2.1 SOAP消息編碼
SOAP消息的封裝其實(shí)是根據(jù)服務(wù)描述文件,把客戶(hù)請(qǐng)求的服務(wù)功能,該服務(wù)功能所需要的參數(shù)封裝進(jìn)SOAP消息里。設(shè)計(jì)了一個(gè)可嵌套迭代的SOAP消息中數(shù)據(jù)結(jié)構(gòu)。部分代碼如下:
這個(gè)XML Schema是SOAP消息中編碼部分需要的Schema,其中messageParameter代表的是簡(jiǎn)單類(lèi)型參數(shù),messageParamet ers代表的是復(fù)雜類(lèi)型參數(shù)。
3.2.2 SOAP消息的封裝和解封
這部分工作的實(shí)質(zhì)是SOAP消息編碼和MsgTree數(shù)據(jù)結(jié)構(gòu)之間的轉(zhuǎn)換工作,SOAP消息封裝是指從MsgTree對(duì)象到SOAP消息實(shí)例的過(guò)程; SOAP消息解封是指從SOAP消息實(shí)例到MsgTree對(duì)象的過(guò)程。SOAP消息的封裝和解封概念是從序列化(MarShal)和反序列化(UnMarShal)來(lái)的,利用通用性的數(shù)據(jù)結(jié)構(gòu)和消息結(jié)構(gòu)傳遞所有流程服務(wù)的消息,簡(jiǎn)單,高效,提高了系統(tǒng)的效率,降低了開(kāi)發(fā)周期和開(kāi)發(fā)的復(fù)雜性。
3.3 服務(wù)狀態(tài)的管理實(shí)現(xiàn)
在實(shí)現(xiàn)有狀態(tài)的服務(wù)時(shí),把整個(gè)流程以服務(wù)的形式發(fā)布,把服務(wù)狀態(tài)以服務(wù)功能接口的形式提供給客戶(hù),客戶(hù)可以在服務(wù)描述文件中明確的看到有狀態(tài)服務(wù)的各個(gè)狀態(tài)和并可利用我們提供的功能查詢(xún)服務(wù)當(dāng)前的狀態(tài)。
3.3.1 準(zhǔn)備狀態(tài)
該狀態(tài)是為第一次訪(fǎng)問(wèn)流程服務(wù)的客戶(hù)或者流程準(zhǔn)備的,在客戶(hù)端第一次訪(fǎng)問(wèn)流程服務(wù)時(shí),由于我們的WSDL描述文件的特殊性,無(wú)法得到流程服務(wù)所需要的全部參數(shù)信息。該狀態(tài)是由客戶(hù)端后臺(tái)程序自動(dòng)啟動(dòng),自動(dòng)執(zhí)行,流程服務(wù)為服務(wù)調(diào)用者準(zhǔn)備參數(shù)信息并以表單的形式把參數(shù)信息呈現(xiàn)給客戶(hù),以供服務(wù)調(diào)用者輸入。
3.3.2 啟動(dòng)狀態(tài)
服務(wù)調(diào)用者輸入?yún)?shù)信息并確定進(jìn)行服務(wù)調(diào)用后,客戶(hù)端將服務(wù)調(diào)用者的請(qǐng)求和參數(shù)信息發(fā)送到ESB(企業(yè)服務(wù)總線(xiàn)),ESB轉(zhuǎn)發(fā)到目的服務(wù)端,服務(wù)提供者檢查請(qǐng)求服務(wù)的有效性,參數(shù)信息的有效性,在二者都有效的情況下,啟動(dòng)流程引擎,產(chǎn)生流程服務(wù)實(shí)例,使其進(jìn)入啟動(dòng)狀態(tài),返回一個(gè)流程服務(wù)實(shí)例給用戶(hù)。
3.3.3 交互狀態(tài)
該狀態(tài)提供了服務(wù)請(qǐng)求者和服務(wù)提供者交流的渠道,該狀態(tài)不是一個(gè)特定存在的狀態(tài),而是存在于流程服務(wù)的其他狀態(tài)中,交互狀態(tài)可以和除準(zhǔn)備狀態(tài)之外的任何狀態(tài)共存。交互狀態(tài)的這種特性使得服務(wù)請(qǐng)求者可以隨時(shí)監(jiān)控流程服務(wù)運(yùn)行過(guò)程,以便于及時(shí)做出調(diào)整,并把這種調(diào)整直接反饋到流程服務(wù)實(shí)例上。
3.3.4 終止?fàn)顟B(tài)
當(dāng)流程服務(wù)執(zhí)行到結(jié)束節(jié)點(diǎn)時(shí),流程服務(wù)自動(dòng)由運(yùn)行狀態(tài)進(jìn)入到終止?fàn)顟B(tài),該狀態(tài)下,流程服務(wù)把終止消息反饋給服務(wù)請(qǐng)求者,這也是交互狀態(tài)的利用。
“十二五”的規(guī)劃中,我國(guó)政府已經(jīng)把加快發(fā)展高技術(shù)服務(wù)業(yè)作為國(guó)民經(jīng)濟(jì)的重要增長(zhǎng)點(diǎn),要求到2020年,形成較為完善的高技術(shù)服務(wù)產(chǎn)業(yè)體系,成為服務(wù)業(yè)發(fā)展的主導(dǎo)力量。同時(shí),“十二五”規(guī)劃也將大力發(fā)展包括新一代信息技術(shù)在內(nèi)的戰(zhàn)略性新型產(chǎn)業(yè)。這兩者有著密切的內(nèi)在聯(lián)系,云計(jì)算等新一代信息技術(shù)將為發(fā)展高端信息服務(wù)創(chuàng)造難得的機(jī)遇。