樓 丹
(浙江廣廈建設(shè)職業(yè)技術(shù)學(xué)院,浙江 東陽(yáng) 322100)
?
基于SOA軟件架構(gòu)的應(yīng)用與研究
樓 丹
(浙江廣廈建設(shè)職業(yè)技術(shù)學(xué)院,浙江 東陽(yáng) 322100)
摘 要:SOA(Service Oriented Architecture,面向服務(wù)的軟件體系架構(gòu))拋棄了傳統(tǒng)的面向?qū)ο螅约夹g(shù)為中心的架構(gòu)體系,轉(zhuǎn)向面向服務(wù)的架構(gòu)體系。SOA表示的是為某項(xiàng)特定的業(yè)務(wù)架構(gòu)一套軟件體系。文章圍繞著SOA的架構(gòu),分析了目前SOA架構(gòu)體系的狀況,并闡述了一種基于SOA的企業(yè)級(jí)應(yīng)用的軟件架構(gòu)體系。
關(guān)鍵詞:面向服務(wù)架構(gòu)SOA;企業(yè)級(jí)應(yīng)用;應(yīng)用研究
隨著改革開(kāi)放中國(guó)特色社會(huì)主義市場(chǎng)經(jīng)濟(jì)制度的完善,企業(yè)成為市場(chǎng)的主導(dǎo)力量,企業(yè)的發(fā)展催生了企業(yè)信息化方向的改革。越來(lái)越多的企業(yè)開(kāi)始重視公司軟件體系的架構(gòu)。良好的軟件架構(gòu)體系能夠有效地提高企業(yè)的運(yùn)營(yíng)效率,健全企業(yè)的管理制度,因此企業(yè)應(yīng)該重視和信息系統(tǒng)的建設(shè)工作。隨著市場(chǎng)化的推進(jìn),我國(guó)企業(yè)經(jīng)營(yíng)管理越來(lái)越復(fù)雜,傳統(tǒng)的面向?qū)ο蟮能浖軜?gòu)體系造成軟件之間的接口混亂,網(wǎng)絡(luò)協(xié)議不清晰等等問(wèn)題。當(dāng)企業(yè)軟件需要做出修改時(shí),為了兼顧其他系統(tǒng)的軟件和服務(wù)應(yīng)用,修改周期就會(huì)加長(zhǎng),修改困難度也相當(dāng)大。傳統(tǒng)的面向?qū)ο蟮能浖軜?gòu)體系已經(jīng)不能滿足市場(chǎng)的需求,因此管理者順應(yīng)時(shí)代的需求,開(kāi)始將企業(yè)的軟件結(jié)構(gòu)體系轉(zhuǎn)變?yōu)槊嫦蚍?wù)的架構(gòu)體系。SOA架構(gòu)將單個(gè)程序細(xì)分成各種組件或者功能,這些組件作為搭建所有軟件的基石去創(chuàng)建其他各種應(yīng)用程序。基于SOA架構(gòu)的軟件架構(gòu)體系具有靈活、易于擴(kuò)展的優(yōu)勢(shì),是企業(yè)面對(duì)復(fù)雜環(huán)境下的良好的信息化解決方案。但是SOA架構(gòu)僅僅是理論模型,在實(shí)現(xiàn)過(guò)程中還要借助于具體技術(shù)才能實(shí)現(xiàn)。本文圍繞著SOA架構(gòu),闡述了企業(yè)級(jí)應(yīng)用架構(gòu)方案和架構(gòu)模型。
1.1 企業(yè)SOA架構(gòu)應(yīng)用
SOA是Service Oriented Architecture的縮寫,即面向服務(wù)的軟件體架構(gòu)體系。SOA根據(jù)軟件系統(tǒng)的不同功能細(xì)分為行使不同功效的組件,各組件之間由接口相連,接口的定義具有一致性和可擴(kuò)展性。各軟件由組件創(chuàng)建而成,因此就確保了軟件的可遷移性和通用性。同時(shí)SOA屬于客戶/服務(wù)模型,SOA應(yīng)用包含客戶端和服務(wù)端,并且將復(fù)雜的數(shù)據(jù)處理放在服務(wù)端進(jìn)行處理,這樣不僅增強(qiáng)了客服端的便攜性和普及率。SOA采用客戶/服務(wù)模型使得接口變得標(biāo)準(zhǔn),同時(shí)各軟件組件耦合性降低內(nèi)聚性增加。但同時(shí)要認(rèn)識(shí)到SOA僅僅是個(gè)概念模式,企業(yè)級(jí)應(yīng)用的創(chuàng)建還是需要具體技術(shù)才能實(shí)現(xiàn)。這些技術(shù)包括Web Services、企業(yè)服務(wù)總線、XML以及涉及的標(biāo)準(zhǔn)接口技術(shù)和消息協(xié)議。
1.2 建立模型應(yīng)用SOA
SOA通過(guò)建立標(biāo)準(zhǔn)的功用接口實(shí)現(xiàn)較低的軟件組件耦合性,各軟件遷移性大大增加。但是SOA架構(gòu)體系不是平地起高樓,而是建立在現(xiàn)有的技術(shù)和模型上。SOA架構(gòu)涉及的組成元素有服務(wù)(servicer)、客戶(client)、服務(wù)接口(service description)、服務(wù)協(xié)議(service protocol)和傳輸協(xié)議(transport protocol)。服務(wù)(servicer)就是客戶端請(qǐng)求服務(wù)器遠(yuǎn)程處理的一套業(yè)務(wù)。基于組件的并發(fā)性,服務(wù)器的狀態(tài)只有停止和運(yùn)行。服務(wù)器的并發(fā)性要求服務(wù)器同時(shí)可以響應(yīng)多個(gè)客服端請(qǐng)求的服務(wù)。客戶(client)就是服務(wù)的請(qǐng)求者,為了提高客戶端的便攜性和降低終端設(shè)備的費(fèi)用,開(kāi)發(fā)者將很多功能集成在服務(wù)器一段。服務(wù)接口(service description)就是各組件使用標(biāo)準(zhǔn)的接口來(lái)進(jìn)行軟件之間的通信。服務(wù)協(xié)議(service protocol)是指?jìng)鬟f消息時(shí)必須根據(jù)協(xié)議要求對(duì)信息做進(jìn)一步的處理之后才能被接收方處理。服務(wù)協(xié)議有簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議、XML等。傳輸協(xié)議(transport protocol)用來(lái)進(jìn)行數(shù)據(jù)鏈路層的消息傳遞,目前的傳輸協(xié)議有HTTP、SMTP等。
1.3 企業(yè)應(yīng)用SOA技術(shù)的實(shí)現(xiàn)
SOA是一種概念模型,SOA的實(shí)現(xiàn)需要具體技術(shù)支撐,比如Web Services。Web Services借助于服務(wù)器云端服務(wù),能夠使軟件并發(fā)執(zhí)行,同時(shí)降低軟件的耦合性提升軟件的內(nèi)聚性。Web Services借助于消息協(xié)議中的XML(extensible Markup Language)協(xié)議可以實(shí)現(xiàn)強(qiáng)大的可擴(kuò)展性和可遷移性[1]。SOA技術(shù)的實(shí)現(xiàn)還需要借助于BPEL確定了Web Services的流程,BPEL確定了SOA應(yīng)用組件執(zhí)行的順序和流程。避免了進(jìn)程互鎖現(xiàn)象或進(jìn)程假死現(xiàn)象。BPEL首先讓BPEL進(jìn)程收到Web Services請(qǐng)求并及時(shí)進(jìn)行回復(fù),從而使BPEL中多個(gè)活動(dòng)能及時(shí)的響應(yīng),順暢的執(zhí)行。BPEL“活動(dòng)”就是BPEL被細(xì)分的執(zhí)行步驟。同時(shí)由于BPEL基于XML語(yǔ)言編寫,因此BPEL支持基元活動(dòng)[5]。
1.4 Web Services實(shí)現(xiàn)SOA架構(gòu)模型
Web Services成熟的一套協(xié)議和標(biāo)準(zhǔn)的接口技術(shù)是SOA架構(gòu)從理論落到實(shí)處的重要保障。Web Services采用XML協(xié)議,而XML協(xié)議具有強(qiáng)大的描述能力,從而降低軟件之間的耦合性,通過(guò)標(biāo)準(zhǔn)的接口技術(shù),可以實(shí)現(xiàn)軟件靈活的擴(kuò)展[2]。
總線就是信息傳遞的物理支撐,在SOA架構(gòu)中,面向服務(wù)的架構(gòu)需要的總線不再是計(jì)算機(jī)里簡(jiǎn)單的總線設(shè)計(jì),而是要?jiǎng)?chuàng)建企業(yè)服務(wù)總線(Enterprise Service Bus,ESB)。企業(yè)服務(wù)總線提供了企業(yè)內(nèi)部或者企業(yè)之間軟件通信的功能。企業(yè)服務(wù)總線改變了傳統(tǒng)的面向?qū)ο蟮能浖軜?gòu)體系。通過(guò)企業(yè)服務(wù)總線,SOA架構(gòu)才能得以實(shí)現(xiàn),總之企業(yè)服務(wù)總線明顯了降低了企業(yè)軟件架構(gòu)的費(fèi)用,同時(shí)企業(yè)級(jí)服務(wù)總線充分考慮了應(yīng)用傳遞和處理消息速率不一致導(dǎo)致的服務(wù)器空載現(xiàn)象,方便了不同服務(wù)之間的信息交流。
企業(yè)服務(wù)總線的誕生是由于SOA架構(gòu)采用了Web Services和XML之后順其自然的必經(jīng)選擇。對(duì)企業(yè)而言,采用企業(yè)服務(wù)總線可以有效地整合系統(tǒng)信息,將具有明顯差異的應(yīng)用整合在SOA框架之下[3]。另外,企業(yè)服務(wù)總線有著強(qiáng)大的信息傳遞能力和實(shí)時(shí)通信監(jiān)管能力,是企業(yè)級(jí)應(yīng)用有效運(yùn)行的重要保障。企業(yè)服務(wù)總線的出現(xiàn)消弭了不同應(yīng)用之間的技術(shù)和硬件差異,通過(guò)通信間整合,做出最佳通信線路。同時(shí)企業(yè)服務(wù)總線上的管理總線能夠?qū)崟r(shí)監(jiān)管總線數(shù)據(jù)傳遞,分配應(yīng)用執(zhí)行的優(yōu)先級(jí)。通過(guò)采用企業(yè)服務(wù)總線,企業(yè)可以在不增加任何服務(wù)設(shè)備的情況下,就可以將信息整合在不同技術(shù)差異的大系統(tǒng)之下。企業(yè)服務(wù)總線因其強(qiáng)大的信息吞吐量和實(shí)時(shí)控制管理確保企業(yè)級(jí)應(yīng)用良好的執(zhí)行。
基于SOA構(gòu)建的企業(yè)級(jí)應(yīng)用不僅要求應(yīng)用能通過(guò)標(biāo)準(zhǔn)接口進(jìn)行通信,同時(shí)還要求企業(yè)級(jí)應(yīng)用能夠處理復(fù)雜的交互。BPEL(Web Services Business Process Execution Language)是專門定制的集成標(biāo)準(zhǔn)接口技術(shù)和協(xié)議。所有的標(biāo)準(zhǔn)接口和協(xié)議都被集成在BPEL中,這樣,應(yīng)用之間的通信更加高效和簡(jiǎn)易,應(yīng)用處理復(fù)雜交互能力得到有效提升。BPEL是一個(gè)建立在XML基礎(chǔ)之上的計(jì)算機(jī)語(yǔ)言。BPEL確定了Web Services執(zhí)行的流程。使用BPEL可以有效減少組件為爭(zhēng)奪同一有限資源而引起的服務(wù)器互鎖現(xiàn)象。BPEL語(yǔ)言的實(shí)現(xiàn)要輔助與其他基礎(chǔ)語(yǔ)言(C語(yǔ)言、C++等)的使用[4]。BPEL類似于C語(yǔ)言,在使用過(guò)程中,需要定義變量、編寫函數(shù)、創(chuàng)建錯(cuò)誤處理等。
BPEL確定了Web Services的流程,首先是BPEL進(jìn)程收到Web Services請(qǐng)求并及時(shí)做出響應(yīng)。BPEL的各個(gè)流程是相互依賴,層層推進(jìn)關(guān)系。如果中間某一流程響應(yīng)緩慢就會(huì)造成其后的流程無(wú)法按時(shí)響應(yīng)。BPEL流程不能獨(dú)立運(yùn)行,其運(yùn)行需要借助于Web Services的調(diào)用。一個(gè)BPEL流程被細(xì)分為多步執(zhí)行,每一步被稱為“活動(dòng)”。同時(shí)由于BPEL基于XML語(yǔ)言編寫,因此BPEL支持不可在分割活動(dòng)[5]。
隨著我國(guó)經(jīng)濟(jì)的發(fā)展,企業(yè)規(guī)模越來(lái)越大,企業(yè)管理和運(yùn)營(yíng)面對(duì)著更加復(fù)雜的局面,傳統(tǒng)的面向?qū)ο蠛兔嫦蜻^(guò)程的軟件架構(gòu)體系逐漸不能勝任新時(shí)代企業(yè)的需求,因此開(kāi)發(fā)者提出了基于SOA的軟件架構(gòu)模型。SOA架構(gòu)僅僅是個(gè)理論模型,付諸實(shí)踐還需要具體技術(shù)的支撐。SOA涉及的技術(shù)包括Web Services、企業(yè)服務(wù)總線、BPEL實(shí)現(xiàn)SOA靈活擴(kuò)展。筆者希望更多的專業(yè)人士能投入到該課題研究中,針對(duì)文中存在的不足,提出指正建議,為提高企業(yè)級(jí)應(yīng)用架構(gòu)做出重要的共享。
[參考文獻(xiàn)]
[1]高哲.基于SOA軟件架構(gòu)的研究與應(yīng)用[D].武漢:武漢理工大學(xué),2007.
[2]王偉.SOA軟件架構(gòu)及其在醫(yī)療信息系統(tǒng)中的應(yīng)用研究[D].南京:南京郵電大學(xué),2013.
[3]付穎.基于SOA架構(gòu)的ERP軟件在汽配行業(yè)的應(yīng)用研究[D].長(zhǎng)春:吉林大學(xué),2011.
[4]龐娜.基于SOA雙總線軟件架構(gòu)在大型企業(yè)中的應(yīng)用[J].機(jī)械工程與自動(dòng)化,2011(3):62-64.
[5]王守禮,名世京,邱瑞波.基于SOA技術(shù)的炮兵作戰(zhàn)指揮信息系統(tǒng)應(yīng)用軟件架構(gòu)[J].火力與指揮控制,2013(9):95-96,100.
The Application and Research of Software Architecture Based on SOA
Lou Dan
(ZheJiang Guangsha College of Applied Construction Technology,Dongyang 322100,China)
Abstract:Service (Oriented Architecture SOA,service oriented software architecture)abandoned the traditional object-oriented,techn ology centric architecture system,turning to service- oriented architecture. SOA represents a software architecture for a particular busine ss architecture. This paper revolves around the SOA architecture,analyzes the current status of the SOA architecture,and describes a SO A based enterprise application software architecture.
Key words:service oriented architecture SOA;enterprise application;application research
作者簡(jiǎn)介:樓丹(1980-),女,浙江永康,本科,講師;研究方向:計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)軟件工程,數(shù)據(jù)處理。