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