李永紅
摘 要 隨著軟件工程的應(yīng)用和普及,許多行業(yè)引入了先進(jìn)的分布式管理系統(tǒng),這些應(yīng)用軟件的功能越來越多,因此開發(fā)工作規(guī)模也迅速增加。軟件工程開發(fā)過程中,已經(jīng)誕生了許多模式,比如快捷程序模式、組件開發(fā)模式、MVC模式等,隨著面向?qū)ο筌浖幊趟枷氲恼Q生,軟件開發(fā)也逐漸提出了一個面向?qū)ο箝_發(fā)模式SOA,SOA是一個松耦合、面向服務(wù)的程序開發(fā)框架,其可以為用戶提供強(qiáng)大的操作管理規(guī)程,便于實(shí)現(xiàn)軟件工程各個架構(gòu)、體系之間的異構(gòu)框架數(shù)據(jù)共享,具有重要的作用和意義。
【關(guān)鍵詞】SOA 軟件工程 面向服務(wù) 松耦合
1 引言
隨著軟件工程的發(fā)展和進(jìn)步,分布式管理系統(tǒng)已經(jīng)在電子政務(wù)、電子商務(wù)、物流倉儲、智能旅游、在線學(xué)習(xí)、金融證券等多個領(lǐng)域得到廣泛普及和使用,取得了顯著的應(yīng)用成效。應(yīng)用軟件開發(fā)經(jīng)歷了面向過程、面向結(jié)構(gòu)、面向?qū)ο蟮榷鄠€時期,但是這些開發(fā)模式都無法實(shí)現(xiàn)松耦合模式、可復(fù)用模式的軟件開發(fā),因此經(jīng)過多年的研究,人們提出了一種新型面向服務(wù)架構(gòu)的SOA開發(fā)模式,該模式采用松耦合、遠(yuǎn)程功能呼叫功能、消息使用XML數(shù)據(jù),這樣就可以促進(jìn)了軟件工程開發(fā)的快速性和高效性,縮短軟件工程的開發(fā)周期,更快的滿足人們信息化需求。
2 SOA概念簡述
SOA是一個面向服務(wù)架構(gòu)的組件,其可以為軟件開發(fā)提供不同功能的應(yīng)用服務(wù)單元,這些服務(wù)之間可以通過定義好的接口和協(xié)議集成在一起,接口定義的原則是保持可擴(kuò)展和中立性,這樣就可以確保接口獨(dú)立于硬件服務(wù)平臺、操作系統(tǒng)和編程語言,能夠兼容各類型的應(yīng)用軟件,包括Eclipse、VisualStudio、Qt等,同時可以支持Java語言、C#語言、C語言和C++語言,采用一種通用的模式進(jìn)行消息交互。SOA作為一種松散耦合、優(yōu)化復(fù)用、動態(tài)擴(kuò)展的服務(wù)體系和架構(gòu),其吸收了傳統(tǒng)的過程調(diào)用、結(jié)構(gòu)化程序設(shè)計、面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn),同時接收了組件化、構(gòu)建化改造和集成的理念,并且SOA在軟件開發(fā)過程中一直得到持續(xù)研究和改進(jìn)。SOA是一個開放的、異構(gòu)的分布式軟件開發(fā)平臺,這個平臺可以為用戶提供強(qiáng)大的服務(wù)支撐,更加適用于當(dāng)前互聯(lián)網(wǎng)應(yīng)用環(huán)境。SOA開發(fā)框架的基礎(chǔ)部件包括WSDL、UDDI和SOAP,WSDL可以描述服務(wù)內(nèi)容、UDDI可以實(shí)現(xiàn)服務(wù)注冊和查找,SOAP作為傳輸層可以實(shí)現(xiàn)消費(fèi)者、服務(wù)提供者之間的消息傳輸,SOAP是Web服務(wù)的默認(rèn)機(jī)制,其他的技術(shù)為可以服務(wù)實(shí)現(xiàn)其他類型的綁定。
3 SOA在軟件工程開發(fā)中的應(yīng)用
SOA在軟件工程開發(fā)過程中,其可以采用共享服務(wù)模式提供應(yīng)用軟件通信,也即是能夠?qū)⒏鱾€應(yīng)用程序從各個底層硬件中分離出來,這樣就可以調(diào)資源使用操作效率,并且能夠重復(fù)使用軟件組件,簡化定制應(yīng)用程序的開發(fā)流程,從而可以更加有效地滿足用戶需求,SOA已經(jīng)在軟件開發(fā)中應(yīng)用很長時間,SOA在軟件工程開發(fā)中得到了較多的實(shí)踐,具體應(yīng)用包括以下幾個方面:
3.1 松耦合
SOA架構(gòu)使的軟件開發(fā)已經(jīng)發(fā)展到了一種最高的松耦合境界,傳統(tǒng)軟件開發(fā)模式可以將軟件劃分為三個關(guān)鍵部分,分別是網(wǎng)絡(luò)連接、數(shù)據(jù)轉(zhuǎn)換、業(yè)務(wù)邏輯,這三個部分內(nèi)容整合在一起系統(tǒng)中,形成了鐵板一塊的軟件模式,牽一發(fā)而動全身,這樣就造成應(yīng)用軟件無法適應(yīng)環(huán)境變化,不能夠?yàn)閼?yīng)用軟件提供強(qiáng)大的支撐服務(wù)。SOA利用面向?qū)ο蠹夹g(shù),可以將各個邏輯組件進(jìn)行分離,并且使用消息中間件將各個組成部分進(jìn)行異步通信操作處理,增大了軟件的靈活性。消息代理促進(jìn)了SOA架構(gòu)服務(wù)業(yè)務(wù)的封裝,實(shí)現(xiàn)了邏輯業(yè)務(wù)、網(wǎng)絡(luò)連接和數(shù)據(jù)轉(zhuǎn)換的完全解耦。
3.2 組件復(fù)用
SOA是以服務(wù)為中心的軟件開發(fā)架構(gòu),該架構(gòu)采用了組件復(fù)用模式,其可以為各類型的軟件計算平臺提供強(qiáng)大的支撐,核心內(nèi)容為組件對象的管理,但是由于分布式組件依賴計算環(huán)境,因此組件運(yùn)行和支撐技術(shù)之間存在很多的異構(gòu)性,為了保證不同技術(shù)組件的復(fù)用性,SOA采用了Webservice、SCA、SDO等服務(wù)模式,通過這些服務(wù)模式,可以建立一個更高層次的解耦、復(fù)用和互操作,也即是利用SOA實(shí)現(xiàn)標(biāo)準(zhǔn)封裝,實(shí)現(xiàn)各個服務(wù)組件之間的安裝、編排、重組,實(shí)現(xiàn)各個服務(wù)組件的復(fù)用,能夠?qū)崿F(xiàn)不同開發(fā)架構(gòu)、程序語言之間的復(fù)用,并且可以兼容各個廠家的軟件開發(fā)工具,實(shí)現(xiàn)動態(tài)可配置的復(fù)用。
3.3 消息機(jī)制
傳統(tǒng)的組件利用COM、CORBA等,這些組件模型從服務(wù)器端可以傳輸?shù)娇蛻舳艘粋€二進(jìn)制編碼對象,這樣客戶端調(diào)用這個對象方法能夠完成某些功能,但是在開放網(wǎng)絡(luò)環(huán)境下,不同的余元和不同的平臺數(shù)據(jù)都需要不同的類型定義,只有這樣才可以在不同服務(wù)之間傳輸消息對象,并且實(shí)現(xiàn)信息組合。
3.4 SOA與Web服務(wù)結(jié)合
基于SOA的軟件開發(fā)過程中,SOA需要與Web服務(wù)實(shí)現(xiàn)一個良好的結(jié)合,只有這樣才可以完成網(wǎng)絡(luò)通信處理、封裝和反饋功能,SOA與Web服務(wù)結(jié)合時,可以構(gòu)建一個強(qiáng)大的服務(wù)建模、描述、發(fā)布、通信、腳本交互、安全保障功能,并且引入先進(jìn)的服務(wù)編程、領(lǐng)域建模、應(yīng)用集成等先進(jìn)的方法和理念,進(jìn)一步提升服務(wù)的操作處理。
4 結(jié)束語
SOA軟件開發(fā)沒有采用固定的界面模式,每一次被交換的僅僅是數(shù)據(jù),不是隱藏在服務(wù)背后的邏輯業(yè)務(wù)信息。SOA利用遠(yuǎn)程調(diào)用功能可以實(shí)現(xiàn)本地函數(shù)、子程序的使用,這樣就可以為程序員提供一個完全透明的服務(wù)模式,基于信息界面?zhèn)鬏擡SB程序,并且采用XML交換數(shù)據(jù),不是采用各類型的文件或二進(jìn)制語言,因此這些消息傳輸服務(wù)是同步的,可以更好的縮短軟件開發(fā)周期。
參考文獻(xiàn)
[1]谷玉奎.基于SOA的企業(yè)應(yīng)用集成分析與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2016(16):71-71.
[2]秦方鈺,劉冬梅,徐棟.一種面向SOA架構(gòu)的數(shù)據(jù)業(yè)務(wù)總線應(yīng)用研究[J].電子技術(shù)與軟件工程,2015(09):203-204.
[3]谷玉奎.SOA在科技資源數(shù)據(jù)庫系統(tǒng)中的應(yīng)用研究與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2015(12):193-193.
作者單位
河南省外貿(mào)學(xué)校 河南省鄭州市 450002