下一代軟件架構--SOA

Web服務作爲炙手可熱的技術,如何應用到企業的IT系統和商業流程之中、並給企業帶來直接的經濟效益,一直備受國內外企業管理者的高度關注和推崇。而在近兩年,出現了一種技術架構被譽爲下一代Web服務的基礎架構,它就是SOA(Service-oriented architecture,面向服務架構)。1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"現代應用開發領域最重要的課題",還預計到2008年,SOA將成爲佔有絕對優勢的軟件工程實踐方法,主流企業現在就應該在理解和應用SOA開發技能方面進行投資。

更好支持商業流程
SOA並不是一個新事物,IT組織已經成功建立並實施SOA應用軟件很多年了,BEA、IBM、等廠商看到了它的價值,紛紛跟進。SOA的目標在於讓IT變得更有彈性,以更快地響應業務單位的需求,實現實時企業(Real-Time Enterprise,這是Gartner爲SOA描述的願景目標)。而BEA的CIO Rhonda早在2001年6月就提出要將BEA的IT基礎架構轉變爲SOA,並且從對整個企業架構的控制能力、提升開發效率、加快開發速度、降低在客戶化和人員技能的投入等方面取得了不錯的成績。

SOA是在計算環境下設計、開發、應用、管理分散的邏輯(服務)單元的一種規範。這個定義決定了SOA的廣泛性。SOA要求開發者從服務集成的角度來設計應用軟件,即使這麼做的利益不會馬上顯現。SOA要求開發者超越應用軟件來思考,並考慮複用現有的服務,或者檢查如何讓服務被重複利用。SOA鼓勵使用可替代的技術和方法(例如消息機制),通過把服務聯繫在一起而非編寫新代碼來構架應用。經過適當構架後,這種消息機制的應用允許公司僅通過調整原有服務模式而非被迫進行大規模新的應用代碼的開發,使得在商業環境許可的時間內對變化的市場條件做出快速的響應。

SOA也不僅僅是一種開發的方法論--它還包含管理。例如,應用SOA後,管理者可以方便的管理這些搭建在服務平臺上的企業應用,而不是管理單一的應用模塊。其原理是,通過分析服務之間的相互調用,SOA使得公司管理人員方便的拿到什麼時候、什麼原因、哪些商業邏輯被執行的數據信息,這樣就幫助了企業管理人員或應用架構師迭代地優化他們的企業業務流程、應用系統。

SOA的一箇中心思想就是使得企業應用擺脫面向技術的解決方案的束縛,輕鬆應對企業商業服務變化、發展的需要。
企業環境中單個應用程序是無法包容業務用戶的(各種)需求的,即使是一個大型的ERP解決方案,仍然不能滿足這個需求在不斷膨脹、變化的缺口,對市場快速做出反應,商業用戶只能通過不斷開發新應用、擴展現有應用程序來艱難的支撐其現有的業務需求。通過將注意力放在服務上,應用程序能夠集中起來提供更加豐富、目的性更強的商業流程。其結果就是,基於SOA的企業應用系統通常會更加真實地反映出與業務模型的結合。服務是從業務流程的角度來看待技術的--這是從上向下看的。這種角度同一般的從可用技術所驅動的商業視角是相反的。服務的優勢很清楚:它們會同業務流程結合在一起,因此能夠更加精確地表示業務模型、更好地支持業務流程。相反我們可以看到以應用程序爲中心的企業應用模型迫使業務用戶將其能力侷限爲應用程序的能力。

企業流程(enterprise process)是流經企業框架的空氣,它賦予業務模型裏的組件以生命,並更加清晰地定義了它們之間的關係。流程定義了同業務模型進行交互操作的專門方法。例如,會計可能是企業服務系統的一個組件--但是將發票寄給客戶卻是一個業務流程。服務被定義用來支持業務流程,因而貫穿整個流程始終的是:各種服務組件在流程和邏輯實現過程中的裝配操作。理解業務流程是定製服務的關鍵所在。

有利於企業業務的集成
傳統的應用集成方法(點對點集成、企業消息總線或中間件的集成(EAI)、基於業務流程的集成)都很複雜、昂貴,並且不靈活。這些集成方法難於快速適應基於企業現代業務變化不斷產生的需求。基於面向服務架構 (SOA) 的應用開發和集成可以很好的解決其中的許多問題。

SOA 描述了一套完善的開發模式來幫助客戶端應用連接到服務上。這些模式定製了系列機制用於描述服務、通知及發現服務、與服務進行通信。

不同於傳統的應用集成方法,在 SOA 中,圍繞服務的所有模式都是以基於標準的技術實現的。大部分的通信中間件系統,如 RPC、CORBA、DCOM、EJB 和 RMI,也同樣如此。可是它們的實現都不是很完美的,在權衡交互性以及標準定製的可接受性方面總是存在問題。SOA 試圖排除這些缺陷。因爲幾乎所有的通信中間件系統都有固定的處理模式,如RPC 的功能、CORBA 的對象等等。然而,服務既可以定義爲功能,又可同時對外定義爲對象、應用等等。這使得 SOA 可適應於任何現有系統,並使得系統在集成時不必刻意遵循任何特殊定製。

SOA 幫助企業信息系統遷移到"leave-and-layer"架構之上,這意味着在不用對現有的企業系統做修改的前提下,系統可對外提供 Web 服務接口,這是因爲它們已經被可以提供 Web 服務接口的應用層做了一層封裝,所以在不用修改現有系統架構的情況下,SOA 可以將系統和應用迅速轉換爲服務。SOA 不僅覆蓋來自於打包應用、定製應用和遺留系統中的信息,而且還覆蓋來自於如安全、內容管理、搜索等 IT 架構中的功能和數據。因爲基於 SOA 的應用能很容易地從這些基礎服務架構中添加功能,所以基於SOA的應用能更快地應對市場變化,爲使企業業務部門設計開發出新的功能應用。

下圖提供了使用基於服務集成的企業應用的高級視圖。與傳統的企業應用集成架構的主要區別在於該系統使用基於標準的服務,幷包括過程/數據服務、編排和組合。基於標準的服務成了應用間的集成點。服務的編排和組合增加了服務的靈活性、重用性和集成性。

圖示:使用基於服務集成的企業應用

SOA服務粒度
可以按基於服務的功能及發送和接收的數據數量來定義服務,如細粒度服務、粗粒度服務或組合服務。

在 SOA 中服務粒度有兩種相關的意思:服務是如何實現的,服務使用和返回了多少數據或多少消息。細粒度服務執行了最小的功能,發送和接收少量的數據。粗粒度服務執行了較大的業務功能,並交換了更多的數據。

細粒度服務是供粗粒度服務或組合服務使用的,而不是由終端應用直接使用的。如果應用是使用細粒度服務建立的,則應用將不得不調用網絡上多個服務,並且發生在每個服務上的數據量較少,因而會對對系統整體性帶來影響。所以粗粒度服務的用戶不能直接調用他所使用的細粒度服務。然而,由於粗粒度服務可能使用多個細粒度服務,因此它們不能提供粒度級的安全和訪問控制。

組合服務可以使用粗粒度服務和細粒度服務進行組裝。數據數量數量不是粗粒度服務和組合服務之間的區別。粗粒度服務例子,如創建新客戶,在這一過程的操作是:需要通過一些外部服務驗證對客戶進行驗證,並在 CRM 應用系統中創建客戶記錄。組合服務例子可以是提供一個新的DSL線,這需要一個服務調用來驗證定單、創建或驗證客戶,確認產品庫存及爲數據線分配資源。
下圖描述了服務粒度的不同級別及它們之間的關係。

圖示:服務粒度

通過一組有效設計和組合的粗粒度服務,業務專家就能夠有效地組合出新的業務流程和應用程序了。

SOA與Web服務
SOA不是一定需要 Web 服務來實現,並且一個基於Web 服務開發出來的應用也不代表就是一個基於 SOA 構架應用。Web 服務只是服務實現的一個典型,是實現企業 SOA的一個組件(非必需組件)。SOA 爲基於服務的分佈式系統提供了概念上的設計模式。Web 服務則是基於標準的、可經濟實惠地實現 SOA的一項技術。

SOA將IT資源透過服務這樣一個在業務上有重要涵義的概念來提供、共享,把IT與業務的距離更加拉近了一步。服務在涉及的層次上要比組件、函數、流程等更高,而且往往在業務上可以找到與之直接對應的概念或實體,例如報價、訂單。服務打破了IT系統間的藩籬,就像一家公司的各個部門,平常各自扮演特定對內或對外服務的角色,但彼此間如果能有效地通過共通的語言及文字,進行良好的溝通,便能協力達成更大、更高的目標。

隨着SOA和Web服務的潮流,帶來了組合式應用(composite application)的開發方式和觀念,開始逐漸被大量應用在Portal(門戶)和Integration(集成)上。組合式Portal的做法,就是通過Portal界面所提供的應用,往往不是真的在Portal服務器上執行,而是將Web服務即時抓過來,再加以呈現,同時彙總給Portal的使用者。在整合方面也是採用組合式的方式。通過高級工具來設定,使系統得以靈活地配合任務的調整,對各項以Web服務方式提供的服務進行不同形式的串聯和協作,同時快速地加以部署。2004年3月,BEA發佈了一個企業門戶合理化(enterprise portal rationalization,EPR)戰略,這個戰略用來平衡BEA WebLogic Platform的SOA能力,憑藉最好的行業實踐和行業專家,幫助客戶解決多年來形成的散亂的portal和Web應用程序開發。

如果說Web服務等技術是SOA的血肉,那麼正確的服務設計理念及系統運行平臺則是SOA的靈魂。SOA試圖讓IT能更快和業務同步,在規劃上以提供彈性的業務服務爲目標。從CIO到負責規劃的系統分析人員,需要和業務單位、策略夥伴間有充分的溝通。CIO必須認識到,SOA的建立將是一個爲期數年的承諾,基礎建設需要按部就班地進行,資助的模式也必須在IT和各個業務部門間建立,來陸續支援基礎建設及各項業務服務的開發。

在中間件領域,SOA架構日益成爲中間件軟件供應商爭奪的新焦點。誰都希望自己能夠先於競爭對手提供最優的SOA技術實現平臺,BEA也不例外。從技術上來說,Web服務、組件技術的採用將有助於SOA的進一步普及,從業務上來說,企業用戶要求性價比更高的應用系統,SOA恰恰適應了這樣的趨勢。

5月底,在美國舊金山舉辦的BEA 第九屆技術年會eWorld 2004上,來自全球的BEA技術精英將會在現場盡情體驗到BEA的技術專家在現場帶來的在BEA WebLogic Platform 8.1上的SOA系統設計模式和最佳實踐,即有關如何構建SOA系統的技術準則,隨後這些最佳技術實踐將陸續借助BEA公司的開發人員站點(總部:http://dev2dev.bea.com,中國開發人員站點:http://dev2dev.bea.com.cn)等媒體分享給全球技術用戶,最終目標是使得不僅是BEA的客戶,而且是全球的企業用戶的信息系統最大化地享受到SOA帶來的商業價值。

 作者簡介
  李巍是(dev2dev ID:Hilaser)BEA BS Dept. 技術推廣人
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章