佟敏 徐鳳全 許韋達
【摘要】 面向服務架構(SOA)已經逐漸成為軟件產品開發和系統建設的主導方法,基于SOA的信息化工程項目已逐步在各相關行業得到越來越廣泛的實施。梳理了SOA的定義、關鍵技術等,分析了SOA的優點,并肯定了SOA將成為解決當前信息化建設中普遍面臨的信息資源共享難、IT系統間難以協作,以及IT系統難以支撐業務變化等難題的有效途徑,最后提出了下步發展的思路和重點。
【關鍵詞】 SOA 體系結構 關鍵技術
一、SOA的定義
SOA(Service-Oriented Architecture)面向服務的體系結構是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種各樣的系統中的服務可以使用一種統一和通用的方式進行交互。
這種具有中立的接口定義的特征稱為服務之間的松耦合。松耦合系統的好處有兩點,一點是它的靈活性,另一點是,當組成整個應用程序的每個服務的內部結構和實現逐漸地發生改變時,它能夠繼續存在。
1、體系結構角度。從體系結構的角度,SOA是一種軟件體系結構和軟件構造方法。在軟件的基礎架構上,SOA架構能夠實現服務部署環境和服務實現之間的松散耦合,有利于提高分布式系統的可伸縮性,有利于實現對資源的動態優化配置,最大程度地資源共享。在軟件的構造方法上,SOA打破了傳統的分布式組件容器的界限,以服務作為基本構造計算單元,通過服務的組合和組裝完成系統整體功能。
2、實現技術角度。從實現技術的角度,SOA是指以松散耦合方式實現業務層面各種服務能力的共享、供給和重用的方法學。SOA包含了編程模型及軟件工程方法學等在內的一整套系統構造方法和環境。SOA的技術實現也體現了在軟件使用模式的深刻變革,軟件將以服務的形式通過互聯網向用戶提供,目前的軟件授權、開發、維護方式將發生巨大變化,軟件應用模式和商業模式也隨之發生改變。雖然SOA技術與軟件服務化的使用模式并沒有必然的聯系,但SOA軟件構造技術所帶來的松散耦合和軟件的可組合等特性,都有助于軟件的使用方式逐漸演化為“定制化使用”、“托管部署和運維”的服務化使用方式。
二、引言
隨著信息化建設的深入,許多企業都開始建立計算機信息系統,由于各個信息系統都是獨立開發的,所采用的開發方式和平臺各不相同。因此,系統之間獨立性很強而溝通性嚴重缺乏,而以此系統為基礎的企業職能部門,相互之間無法進行有效的通信,從而形成孤立的信息系統。而現代企業為了適應客戶需求的不斷變更以及激烈的市場競爭,迫切需求各個部門以及商業伙伴之間能夠及時獲取實時信息,信息孤島的存在嚴重制約著企業的進一步拓展,容易導致企業IT投資的成本居高不下,因此遺留程序和信息孤島,已成為企業必須面對的當務之急。
而基于SOA(面向服務的架構)的應用集成開發方案可以很好地解決這些問題,尤其是針對多個不同技術開發,運行在不同平臺的應用程序的相互通信。
三、SOA的組成元素
面向服務的體系結構中的角色包括:如下圖所示:
(1)服務請求者:服務請求者是一個應用程序、一個軟件模塊或需要一個服務的另一個服務。它發起對注冊中心中的服務的查詢,通過傳輸綁定服務,并且執行服務功能。服務請求者根據接口契約來執行服務。
(2)服務提供者:服務提供者是一個可通過網絡尋址的實體,它接受和執行來自請求者的請求。它將自己的服務和接口契約發布到服務注冊中心,以便服務請求者可以發現和訪問該服務
(3)服務注冊中心:服務注冊中心是服務發現的支持者。它包含一個可用服務的存儲庫,并允許感興趣的服務請求者查找服務提供者接口。
(4)面向服務的體系結構中的每個實體都扮演著服務提供者、請求者和注冊中心這三種角色中的某一種(或多種)。面向服務的體系結構中的操作包括:1)發布:為了使服務可訪問.需要發布服務描述以使服務請求者可以發現和調用它。2)查詢:服務請求者定位服務.方法是查詢服務注冊中心來找到滿足其標準的服務。3)綁定和調用:在檢索完服務描述之后,服務請求者繼續根據服務描述中的信息來調用服務。
面向服務的體系結構中的構件包括:1)服務:可以通過已發布接口使用服務,并且允許服務使用者調用服務。2)服務描述:服務描述指定服務使用者與服務提供者交互的方式。它指定來自服務的請求和響應的格式。服務描述可以指定一組前提條件、后置條件和/或服務質量(Q0S)級別。
四、SOA的優勢
(1)實現企業IT閑置資產的重用。實施SOA,企業必然需要對自身所用的信息系統進行重新的分類,這勢必會使企業全面的了解自身的信息系統,然后針對企業的服務尋找適合的IT支持。以前由于種種原因被閑置的企業IT資產,企業必然會重新考慮,挖掘到閑置資產的價值,從而使閑置的IT資產得以重用。另外,SOA可以將舊的系統封裝起來,成為Web Services得以重新利用。
(2)降低企業的IT投資成本。以往多數企業在建設企業的IT系統時是從項目的角度出發的,事后等企業的IT系統越來越多的時候,才會考慮系統的集成問題,但這時候往往集成的難度就很大了。而SOA要求企業在建設IT系統之初就要考慮這些問題,也就是要考慮服務之間的接口問題。這樣就會使企業的IT的成本大大縮減。同時,SOA將改變以往的軟件購買模式,目前的多數企業在購買軟件時往往是成熟性軟件,往往無法將那些企業不需要的功能剔除出去,這樣,企業就不得不為此付出資金成本等許多不必要的成本,而SOA則可以幫助企業實現真正的按需購買,幫助企業避免不必要的支出。
(3)實現企業的動態變革。SOA使企業的IT人員不必太多的關心企業IT系統的底層技術,而更多的去考慮企業的業務以及業務與IT的接合。SOA面對的是一個個獨立的服務,服務之間可以通過標準接口來相互調用,這樣企業在重復功能上就可以直接通過接口調用,而不必去重新開發。企業的業務發生變化時,只需要修改相對應的服務即可,降低了修改的難度與復雜度,保證了企業的IT系統的動態變化。
五、SOA的關鍵技術
隨著SOA技術應用范圍的擴展、應用程度的加深,以及SOA技術與其他新技術的融合,SOA技術體系已經變得較為復雜,掌握SOA技術體系的難度較大,對實施SOA的技術人員和業務人員提出了很高的要求。如何將技術簡化為更實用、更可靠的工具,以方便和推進SOA的實施,也是SOA下步發展的重要方向。總結SOA的關鍵技術,從工程角度看主要包含三方面。
(1)與Web服務相關的一組技術。包括:Web服務建模、Web服務的描述、發布與發現技術、Web服務通信技術、Web服務交互技術、Web服務組合技術、Web服務安全和QoS保障技術、Web服務的事務管理技術等。
(2)與SOA工程相關的一組技術。包括SOA構造方法學、領域建模、需求分析、服務編程與開發技術, 以及基于服務的信息集成、應用集成等服務集成技術等。
(3)與分布式系統共性問題相關的一組基礎技術,包括SOA系統的體系結構、可伸縮性、可靠性及可用性保障技術等。這里每一個方面都有相應的技術產品和商業產品出臺,一些老牌的供應商也都有重量級的產占領市場。此外,面向開放式網絡計算環境,軟件發展還在探索新興的云計算、軟件即服務(SaaS)、平臺即服務(PaaS)等一系列技術下步可能的應用模式。面對如此龐大的SOA技術體系和繁雜的SOA產品市場和應用模式,用戶其實更需要的是針對不同的應用需求提供更加簡單、易用的、可選配的SOA平臺解決方案,來屏蔽復雜的技術細節,建立規范化的服務接入“窗口”,向下能夠選擇裝配不同廠家的SOA基礎產品,向上又能夠根據行業應用需求快速接入不同的業務應用服務,方便技術人員和業務人員的實施,真正提高 SOA 應用系統開發、整合的效率、降低實施SOA的成本。
六、SOA下一步發展方向
SOA 的理念和技術經過多年的發展,目前正在走向平穩發展階段。我認為在總體發展思路上應重點把握以下幾點:
(1)在標準規范建設上,構造和完善SOA國際和國內直至行業標準規范的總體布局,將標準規范與技術實現、業務應用相結合,推進更多的國內和行業標準國際化,提升我國自主軟件產業在國際標準陣營的主動權和話語權。
(2)在技術上,重點發展和建立重業務、可選配、輕量級的SOA產品平臺,推動集約化應用與管控模式下的核心技術積累,在相應的體系結構、保障和優化技術等方面形成特色核心技術。促進軟件服務化轉型,優化產業結構,促進國內供應商基于現有SOA平臺聯合協作,促進成功的SOA成果應用落地。
(3)在SOA應用和市場方面,發揮國內供應商產品輕量級、可選配的技術特點,結合熟悉業務需求的特長優勢,協作開展咨詢和服務工作,為行業用戶提供咨詢和工程實施服務,在項目支持上重點突破與廣泛應用相結合,選擇重點領域,進行聯合攻關,解決用戶重大工程需求問題。在具體技術產品方面,重點發展以下產品套件和平臺產品。
SOA 應用集成框架,SOA工具集產品,SOA基礎產品,SOA通用業務服務產品及面向行業的SOA應用服務產品。這樣既可以為用戶提供實施和開發SOA應用的工具和基礎產品支撐,又可以為不同行業領域的SOA應用集成商和服務商提供規范化、易實施的常用模式/模板及應用加工軟件,有效縮短SOA技術與業務應用的距離,降低SOA的實施難度,提升SOA應用的規范化程度。
七、結束語
SOA是目前在開放式網絡環境下,構建大型信息系統的有效指導思想和配套的方法路子,SOA目前還有很大的發展空間,隨著SOA的逐步實現和使用,我們可以更好地發現它的不足,揚長避短,發揮貼近業務優勢,更好地理解和使用SOA,促進SOA的發展和成熟。
參 考 文 獻
[1]喻堅,韓燕波.面向服務的計算[M]. 北京 :清華大學出版社,2006
[2]Shawn X. K. Hu. Interoperability at the SOAP message level(aWS-DL design case study), IBM DW站點, 2006,7.
[3] Jeremy Caine, Joe Hardman. Design strategies for legacy system in-volvement in SOA solutions. IBM DW站點, 2007,4.
[4]唐秀良,SOA的發展探索與研究,中國軟件與技術服務股份有限公司,2009.
[5]凌曉東,SOA的綜述,上海科學院,2007.
[6] (美)Thomas Erl著,王滿紅,陳榮華譯以概念、技術與設計北京機械工業出版