摘 要 近幾年來,信息化技術的發展極大推動了軟件工程領域的發展,各種軟件產品也紛紛被各個領域所引入,極大推動了各行各業的發展。在軟件工程領域中,SOA是一種面向對象的開發模式,通過在軟件開發中以SOA程序開發模式來構建面向服務的開發框架,能夠使軟件具備強大的操作功能、并且能夠實現不同軟件體系與架構的數據共享。鑒于此,本文通過對SOA的概念進行闡述,并對SOA程序開發框架的研究進展進行了明確,以此探討SOA程序開發框架在軟件工程中的相關應用策略。
【關鍵詞】SOA程序 開發框架 軟件工程 松耦合 應用策略
近些年來,軟件工程領域實現了迅猛的發展,這也使軟件的研發規模越來越大,軟件的種類越來越多樣化,并在教育領域、物流領域、電子商務領域等諸多領域中得到了非常廣泛的應用。在過去的十幾年里,軟件工程領域先后經歷了多個發展時期,并在各個時期中取得了卓越的成就,但卻在軟件開發模式中始終難以實現可復用模式與松耦合模式,這也使軟件工程領域的軟件產品研發周期較長,軟件產品的適用能力較弱。經過諸多軟件工程師對經驗的總結,并歷經多年的研究,以一種面向服務的SOA程序開發框架應運而生,SOA程序開發框架在軟件工程中的應用極大程度的縮短了軟件產品的研發周期,提高了軟件成品的適用性,相比于傳統的軟件工程產品來說,采用SOA程序開發框架的軟件產品無疑能夠為人們提供更加優質的信息化服務。
1 SOA的概念
SOA屬于一種面向服務架構而形成的組件,它能夠為軟件產品提供具備不同功能不同種類的應用服務,利用事先約定的協議與接口將這些應用服務進行集成,從而使系統能夠在具備良好的中立性與可擴展性的基礎上,實現操作系統、硬件服務平臺、編程語言與接口的相互獨立,進而實現對眾多功能不同的應用軟件進行兼容,它包含VisualSTudio、Eclipse及Qt等,并且能夠支持C#語言、C++語言、Java語言及C語言,這些語言及軟件能夠通過通用的模式來實現消息的交互。SOA程序屬于一種動態可擴展、松散耦合、優化復用的服務架構與體系,它具備結構化程序設計、過程調用的優勢,并且能夠對構建化改造、組件化與集成理念進行高度融入,人們還能夠利用SOA來對軟件進行持續改進與完善。SOA程序作為一種分布式、開放式的軟件研發平臺,它能夠為用戶提供強大的信息服務,從而使軟件的適用性更強,使其在互聯網應用環境中變得更加適用。SOA開發框架中,UDDI、WSDL、SOAP是其基礎構件,UDDI能夠使軟件具備查找與服務注冊功能,而WSDL能夠對軟件的服務內容進行描述,SOAP則能夠在軟件中充當傳輸層,進而實現軟件自身的消息傳輸。在SOA程序開發框架中,SOAP屬于Web服務中的一種默認機制,這也使眾多其他技術能夠通過服務的形式來進行集成與綁定。
2 SOA程序開發框架的研究進展
2.1 SOA程序開發框架理論模型的研究進展
SOA程序開發框架的理論模型主要包括參考模型、服務接口模型、面向服務的體系結構形式化描述模型。參考模型是為了實現不同系統的互聯互通而建立的,利用參考模型能夠為SOA的軟件開發進行指導與規范,而這也正是SOA參考模型構建的核心意義。軟件工程領域中對參考模型研究出了許多種類,以此來對面向服務的體系結構進行指導。在2006年,OASISI參考模型便是在SOA參考模型的基礎上被提出的,它是SOA的一種標準化參考模型,它的目標是通過對SOA程序開發框架中最小的一組核心概念進行定義,來明確框架中各個組的關系,以此構建細致化的SOA共同語義,OASIS參考模型介乎于概念關聯與概念定義之間,它能夠為人們對SOA程序開發框架提供共同理解。服務模型也是理論模型中的一部分,服務模型的構建能夠對接口進行準確的形式化描述,它是軟件進行測試或驗證的前提條件。有學者通過建立一種服務接口模型來對接口信息中的三個抽象層面進行描述,并給出了對三個層面接品的規范化建議與驗證方法。在面向服務的SOA程序開發框架軟件中,事務性是這類軟件中的一項關鍵特點,這類軟件的SOA程序開發框架的事務模型和以往的原子事務模型的區別很大,面向服務的事務模型自身不具備原子性與可回滾性,并且執行時間較長,而長事務模型的構建則又需要利用錯誤與補償機制來進行處理,這也使學者從事物模型中關注到錯誤與補償機制當中,有學者利用補償通信順序來建立錯誤與補償機制,它能夠通過補償進程來對補償行為進行描述,并能夠描述中斷處理、中斷進程等錯誤處理行為,此外他還能夠對獨立子事務進行表示。不過,該機制卻沒有討論分支進程在產生錯誤時的進程同步策略,而這對于事務服務模型的處理性能來說尤為重要。面向服務的結構形式化描述也是理論模型中的內容,有學者利用Z語言來對SOA程序開發框架的理論模型進行形式化描述,并對SOA服務組件及其匹配與組合進行了形式化定義,并對體系結構的可替換性進行了分析。還有學者提出一種輕量級的面向服務的形式化框架,該框架能夠對SOA的重要組件進行捕獲,并對SOA程序結構進行了分析,該形式化框架對于推動SOA程序的形式化驗證與準確性具有非常明顯的作用。
2.2 SOA程序開發框架服務源的研究進展
SOA程序開發框架服務源的研究目的是將復雜軟件中的問題進行關注點與組件的分解,從而使問題能夠被分解成相應的片段集合,并由每個片段對相應的關注點進行處理。有學者采用粗粒度來實現服務源的分解,不過,分解后的對象粒度太小,這就造成軟件的靈活性與復用性較低。而通過將業務作為服務來利用粗料度進行表示,能夠使軟件的復用性顯著增強,并且服務與服務之間是以松耦合關系呈現的,這就使其在需求變更時的變化成本降到最低。SOA程序開發框架的服務源的研究主要包括服務建模、服務設計、服務發現與服務組合。當前對服務建模的研究主要包括基于自定義語言進行服務行為建模、基于體系結構對語言的描述來進行服務建模、基于UML進行服務建模,并研究出較為理想的WSMO服務模型與OWL-S服務模型。服務設計的研究進展主要集中在大量遺留構件所產生的復用問題,并已經取得了一定的突破性進展,可以將當前所有非面向服務的構件進行擴展,使其成為服務組件,以此達到提高復用性的目的,研發成果主要有SDO規范、SCA規范與JBI規范。服務發現主要是指Web服務發現,當前在服務發現的研究進展成果主要包括基于服務質量的Qos服務匹配算法、基于Web服務發現形成的starWSDS原型系統等。服務組合的研究目前已經形成了許多效果良好的方法,主要包括基于規劃的方法、基于流程的方法、基于形式化的方法、基于語義的方法、基于AOP的方法等諸多方法。
2.3 SOA程序開發框架的開發方法研究進展
目前,我國在SOA程序開發框架中的研究仍舊處理起步階段,在開發方法上還尚未形成較為有效的方法。有學者通過對面向服務的特征及編程思想進行分析,并提出了相應的開發方法。還有學者提出了一種具備較高適應能力的開發方法,這種方法通過構建結構框架CAFISE,然后利用CAFISE將異構資源進行業務化與服務化,從而使軟件結構能夠更好的支持服務。這種開發方法通過對軟件的相關影響要素及質量屬性驅動要素進行分析,并側重于適用性來進行的結構設計,并以結構作為基礎來構建業務端編程。這些開發方法也為SOA程序開發框架在后續中的應用創造了良好的環境。
2.4 SOA程序開發框架的結合與交叉研究進展
SOA程序開發框架中業務是其核心所在,通過對SOA業務流程的開發及組合進行應用,能夠實現在業務流程中通過服務組件的方式來進行服務與活動,這也使業務流程模型發生了巨大的改變。通過這種方式能夠對業務流程進行建模,從而改善業務流程的靈活性與響應效率,而這也使BPM成為業務流程模型構建的重要組成部分。基于服務的設計能夠對流程進行靈活的更改,并且能夠將流程服務進行靈活而又快速的組合,從而使其能夠編排成規模更大的端至端流程。因此,BPM與SOA這兩者之間的關系十分密切,能夠通過相互結合的方式共同促進發展,這也使SOA與BPM結合后在軟件工程中的應用研究越來越受到人們關注。SOA程序開發框架的交叉研究目前也已成為非常熱門的研究熱點,交叉研究主要集中在通過將Web技術的語義與SOA語義進行結合、將MDA技術與SOA程序進行結合來對模型驅動、將Agent技術與SOA程序開發框架進行結合。
3 SOA程序開發框架在軟件工程中的應用策略
3.1 松耦合的應用
綜上所述,人們對SOA程序開發框架的研究已經使軟件工程領域的軟件開發方面逐漸向著松耦合的境界進行發展,在傳統的軟件開發過程中,開發人員需要將軟件進行三個核心部分的劃分,即數據轉換部分、網絡連接部分與業務邏輯部門,通過將這三個部分的相關內容進行整合與集成,能夠使系統的完整性較強。但這種傳統的開發方法一旦發生變更,就會造成這三個核心部分的內容的變更量較大,進而造成變更成本大大超出計劃,這也使以傳統開發方法研發出來的軟件的適用性較差,難以有效適應環境的變化。而通過SOA程序開發框架的應用,以面向對象的技術做為研發基礎來構建軟件開發方法,能夠將軟件中的所有邏輯組件進行分離,并利用消息中間件將軟件中的所有組成部分采取異步通信操作來進行處理,從而極大程度的提高了軟件的靈活性。采用消息代理能夠對SOA程序開發框架中的服務業務進行封裝,進而使軟件框架中的三大核心部分實現完全解耦。
3.2 組件復用模式的應用
SOA程序開發架構是以服務為核心的,SOA程序開發架構中應用了組件復用模式,這也使其能夠為不同類型、不同功能的軟件提供強大支撐,組件復用模式的核心內容在于對組件對象進行高效化的管理,不過組件復用模式的組件是呈現分布式的,這也使其對計算環境較為依賴,因此組件支撐與運行技術大多為異構性,為了確保這些組件能夠具備良好的復用性,SOA程序開發框架可以通過SDO、SCA、Webservice等諸多服務模式來對構建一個具備高層次的復用、互操作、解耦模型,進而實現對SOA程序開發架構的應用來對組件進行標準封裝,完成對架構中各個服務組件的編提成、安裝與重組,實現了對服務組件、程序語言及不同開發架構的復用,并能夠對不同廠家所研發的軟件開發工具進行兼容。
3.3 消息機制的應用
對于傳統的組件來說,是通過CORBA、COM技術的應用來實現服務器商與客戶端的對象調用的,但這種對象調用方法在開放性的網絡環境中,需要對不同余元與平臺數據進行分別定義,只有這樣才能確保不同組件間實現對象的調用與信息的組合。
3.4 Web服務和SOA程序開發框架的結合應用
對于SOA程序開發框架的軟件開發,應將Web服務結合到SOA程序開發框架當中去,通過這種結合能夠使軟件具備網絡通信反饋、處理與封裝功能,同時,利用SOA程序開發框架與Web服務進行結合,還能夠使軟件的功能更加強大和豐富,從而使軟件能夠兼具安全保障功能、腳 本交互功能、通信功能、描述功能、服務建模功能與描述功能,并通過先進方法及理念在服務編程、集成、建模等方面的應用,使軟件的操作處理性能得到進一步的提升。
4 結語
SOA程序開發框架的界面模式并不是固定不變的,這也使其在進行交換時只是對數據進行交換,而并不涉及到邏輯業務信息。SOA程序服務框架自身所具備的遠程調用功能能夠對子程序及本地函數進行使用,而這也為程序員在進行軟件開發時提供了全新的服務模式,由于SOA程序是利用的XML來進行數據的同步交換的,這也使軟件的開發周期大大縮短。
參考文獻
[1]何珍祥,董逸生.基于Web服務的SOA設計與傳統軟件設計方法的關系[J].計算機系統應用,2008(10):56-59+14.
[2]邢少敏,周伯生.SOA研究進展[J].計算機科學,2008(09):13-20.
[3]尹鋒.軟件工程的若干熱點技術發展現狀與展望[J].長沙大學學報,2006(05):45-49.
[4]李永紅.SOA在軟件工程開發中的應用[J].電子技術與軟件工程,2017(07):52.
作者簡介
李燕梅(1970-),女,白族,云南省大理市人。大學本科學歷。副教授。研究方向為信息化管理。
作者單位
滇西科技師范學院信息工程學院 云南省臨滄市 677000