當今社會,企業(yè)總是面臨著激烈的競爭和復雜多變的商業(yè)環(huán)境,企業(yè)需要對各種變化快速和有效地進行響應,并且利用變更來得到競爭優(yōu)勢。這就意味著企業(yè)需要一種業(yè)務敏捷性IT系統(tǒng)架構來應對這種復雜多變的需求。SOA(Service-Oriented Architecture,面向服務的體系結構)的出現(xiàn)為企業(yè)信息化提供了新的思路和方法。基于SOA架構的IT系統(tǒng),能夠更快、更靈活地部署,同時又具有良好的擴展性和伸縮性,能夠更好地將企業(yè)的信息資源進行整合,消除“信息孤島”,使IT系統(tǒng)與不斷變化的業(yè)務目標相一致,讓企業(yè)能夠隨需應變。
一 關于SOA的定義
SOA概念自被提出之后,不少國內外機構、企業(yè)均對SOA進行了定義和闡釋,但目前尚未有一個統(tǒng)一的、業(yè)界廣泛接受的定義。一般認為,SOA是一種架構模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構建在各種這樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。因此,本質上SOA不是一個產(chǎn)品,甚至算不上一項技術,而是一種構建以解決商業(yè)問題為中心的信息技術IT系統(tǒng)的思路。SOA的意義在于讓IT變得更有彈性,使業(yè)務與IT保持同步,從而更好適應變化。SOA的核心價值在于用新的思維方式將企業(yè)信息化解構為“組件化”業(yè)務模式,這些“組件”是可以重復使用的,然后如搭積木一般,將這些“組件”高效、靈活地拼接成企業(yè)的業(yè)務流程,以此推動商業(yè)創(chuàng)新。
二 SOA的基本特征
雖然SOA沒有標準的定義,但是SOA有以下幾個被廣泛認可的關鍵特性。
2.1 松耦合
SOA的一部分價值就在于它的服務的松耦合。服務是一個由服務提供者提供的、服務使用者請求的業(yè)務單元。松耦合指的是使用者能夠隨需應變將多種服務組合在一起來構建不同的組合服務,或者將組合服務進行解體,成為功能組件。同時,它要求這些服務之間保持一種相對獨立、無依賴的關系,當業(yè)務流程啟動時,這些服務彼此之間暫時地建立關聯(lián),并在整個流程中維系這種相關性,流程結束后又重新回到靜止狀態(tài),與之前相關聯(lián)的模塊不再保持相關性。這就像電話系統(tǒng),當按下“通話”鍵時流程開始,才可以和對方通話,建立一個松耦合連接;通話結束后,又重新回到了“靜止”狀態(tài),直到下一個連接再次建立。這樣電話服務商即使有一百萬個用戶,也不必提供一百萬個實時的電話鏈路,只要保證最高通話量就可以了。對松耦合系統(tǒng)的需求源于企業(yè)不斷變化的業(yè)務,業(yè)務應用程序需要變得更加靈活,以適應不斷變化的需求。盡管緊耦合的系統(tǒng)通常比較快,也安全,傳輸誤差的風險非常低,但是緊耦合意味著應用程序的不同組件之間的接口與其功能和結構是緊密相連的,因而當需要對部分應用或模塊進行某種形式的更改時,它們就顯得非常脆弱。而松耦合的系統(tǒng),由于服務(應用程序)是獨立的。這就減少了因部分應用或模塊的變化而引發(fā)其他應用或模塊變化的風險。因此,在這個層面上講,松耦合系統(tǒng)更為可靠、靈活。
2.2 可重用
所謂重用性,就是指服務能夠應用于不同應用和業(yè)務流程的能力。通過重用可以獲得降低開發(fā)維護成本、縮短應用交付周期和提升質量等種種好處。服務的可重用性受創(chuàng)建該服務的顆粒度的直接影響,顆粒度可以理解為一個服務所包含功能的數(shù)量。通常顆粒度越小,重用性越好,但是粒度太小,會導致性能問題。并且業(yè)務任務與支持其的服務之間的映射會變得非常復雜。服務的粒度大小需要根據(jù)企業(yè)實際需求來權衡。
2.3 明確定義的服務接口
SOA本身就是為互操作性而生的,要實現(xiàn)這種交互就需要明確定義的接口,稱作服務契約。這些契約定義了服務的使用方法及使用者期望的最終結果,還包含了服務質量指標要求、安全性要求等等。服務契約描述采用中立、基于標準的方式進行定義,它獨立于底層平臺和編程語言。Web服務是實現(xiàn)SOA的方式之一,隨著Web服務標準的成熟和應用的普及,SOA的實現(xiàn)一般都會包含Web服務,甚至可以說Web成就了今天的SOA。對于用Web服務實現(xiàn)的SOA,WSDL(Web Services Description Language,Web服務描述語言)為定義接口和服務契約提供了可擴展的框架,它描述了服務交互所需的所有細節(jié)。同時它又屏蔽了服務實現(xiàn)的任何技術細節(jié),這樣即使服務實現(xiàn)修改了也不會影響到服務請求者的邏輯,提高了業(yè)務流程的適應性。
2.4 基于開放標準
SOA的實現(xiàn)建立在大量的開放標準和協(xié)議之上。服務的互聯(lián)互通和互操作都存在相應標準,通過對標準的使用可以得到眾多好處,包括:
(1)減少對特定廠商的依賴;
(2)為服務請求者增加了使用不同服務提供者的機會;
(3)為服務提供者增加了被更多服務請求者使用的機會;
(4)增加了使用開放源代碼的標準實現(xiàn)以及參與這些實現(xiàn)的開發(fā)機會。目前在SOA系統(tǒng)中,除強調需要遵守技術標準(如SOAP、WSDL、UDDI)外,服務層的數(shù)據(jù)模型和流程模型也需盡可能基于一些成熟的業(yè)務領域標準或縱向的行業(yè)標準。
三 SOA對企業(yè)信息化需求的適應性
目前,很多企業(yè)的信息化面臨兩個困境,一是如何對各個應用系統(tǒng)進行整合,二是如何打造靈活的IT架構,以適應多變的業(yè)務需求。隨著國內企業(yè)信息化進程的不斷推進,早期以部門為導向的系統(tǒng)已經(jīng)難以支撐企業(yè)的發(fā)展。企業(yè)需要一個面向企業(yè)的、集成的系統(tǒng)來處理更為復雜的業(yè)務。以新員工人職來說,需要涉及人力資源、財務和他將要服務的業(yè)務部門。從招聘、面試、入職、培訓到薪資的整個過程,是一個多部門協(xié)作的業(yè)務流程,企業(yè)信息化目標就是將這個過程由人為干預轉向自動實現(xiàn)。而很多企業(yè)中人力、財務、業(yè)務部門都有各自的系統(tǒng),要實現(xiàn)企業(yè)的信息化目標,必須將這些建設在不同時期、與不同的廠商合作、應用不同技術、具有不同規(guī)模的應用系統(tǒng)集成起來。傳統(tǒng)的應用系統(tǒng)集成是垂直整合的,通常是采取建立系統(tǒng)間接口,然后實現(xiàn)系統(tǒng)對接,見圖1(a)。這種點對點的集成模式會造成邏輯關系隨著企業(yè)的應用增加成級數(shù)上漲,并且存在實施代價高、實施周期過長的問題。同時,系統(tǒng)接口之間必須遵循同樣的API(Application Programming Interface,應用程序編程接口)約束。當其中一個實體對象的代碼有了更改,那么訪問該對象的代碼也必須做出相應更改,從而約束了企業(yè)敏捷服務和自由擴充的實現(xiàn)。而SOA的設計思想是水平整合,對于SOA架構來說,應用系統(tǒng)暴露出來的業(yè)務功能就是服務。將各個系統(tǒng)的業(yè)務功能封裝成不同粒度的服務,通過定義明確的服務契約發(fā)布,然后利用企業(yè)服務總線(EntERPrise Service Bus,ESB)作為服務提供者和服務請求者之間的消息橋梁,對消息驅動和服務進行靈活的管理,使各應用系統(tǒng)實現(xiàn)互聯(lián)互動,見圖1(b)。

另一方面,目前很多企業(yè)都面臨結構轉型,業(yè)務創(chuàng)新和差異化競爭是企業(yè)保持競爭力和活力的必然選擇。傳統(tǒng)架構下的IT系統(tǒng)過于僵化,面對重大的業(yè)務和組織變更,常常需要花費很長的周期來調整系統(tǒng),或者根本無法滿足新的需求。企業(yè)需要一種新的更加靈活的IT架構來快速響應新業(yè)務、新流程、新組織結構。基于SOA架構的系統(tǒng),只需要對封裝好的服務進行重組,就可以快速部署新的業(yè)務流程。同時因為分離了業(yè)務邏輯和技術實現(xiàn),業(yè)務人員通過流程、服務、數(shù)據(jù)對象、事件這些與他們有切實聯(lián)系的詞,就可以描述業(yè)務模型和業(yè)務需求,IT系統(tǒng)也更貼近企業(yè)的需求。
四 實現(xiàn)SOA的重要基礎:ESB
企業(yè)服務總線(ESB)是邏輯上與SOA所遵循的基本原則保持一致的服務集成基礎架構,它就像人的中樞神經(jīng),管理著所有服務、消息以及基于事件的交互。IBM定義了ESB應具備的4個基本功能:
(1)服務之間的消息路由;
(2)請求者和服務之間的傳輸協(xié)議轉換;
(3)請求者和服務之問的消息格式轉換;
(4)處理各種來自不同業(yè)務的事件。可以通過4個物品來對應理解這些功能:“路由器”:根據(jù)信息內容,在不同應用和服務之間進行信息傳輸和路由;“轉換器”:進行應用之間的通信協(xié)議轉換;“翻譯機”:進行應用之間的消息格式轉換;“收發(fā)室”:處理來自不同渠道的業(yè)務事件(同步傳輸、異步傳輸、發(fā)布,訂閱等方式)。
SOA從根本上來說就是要解決兩個問題:重用和異構。ESB從底層架構上對解決這兩個問題提供了技術支持。對于服務的重用,ESB提供了服務倉庫和消息的路由來實現(xiàn)服務之問的彼此調用。任何符合標準的服務都可以在服務倉庫中注冊并發(fā)布,一個應用如果需要調用一個服務,可以通過瀏覽或者訂閱發(fā)現(xiàn)該服務,不用知道這個服務的物理位置及如何調用,只需要發(fā)送一個調用的請求,ESB就會將請求路由給最合適的服務提供者。而對于異構環(huán)境的連接,這是ESB天生就具備的能力。首先,由于SOA架構中的服務都是基于標準的,這樣就極大簡化了ESB在集成異構性上的考慮。其次,ESB明確強調消息(Message)處理在集成過程中的作用,這里的消息指的是應用環(huán)境中被集成對象之間的溝通。由于集成對象都是服務,消息在應用服務之間傳遞時的格式是標準的,直接面向消息的處理方式成為可能。ESB只要在底層支持現(xiàn)有的各種通訊協(xié)議,那么對消息的處理就完全不考慮底層的傳輸細節(jié),而直接通過消息的標準格式定義來進行。
如果把SOA比作一座城市,ESB就是其中的道路。ESB技術和產(chǎn)品的出現(xiàn)為SOA的落地找到了一條捷徑。
五 結語
SOA提供了一個從“服務”視角解決問題的思路和方法。這使得企業(yè)的IT資源能夠最大程度地重用,同時又滿足了IT系統(tǒng)對業(yè)務敏捷性的需求。SOA還指導企業(yè)信息資源的整合,讓企業(yè)更具活力。IBM、SAP、Oracle、Microsoft等大型IT公司正在不斷完善基于SOA的一些標準和構架,SOA已經(jīng)成為企業(yè)信息化建設的必然趨勢。
轉載請注明出處:拓步ERP資訊網(wǎng)http://m.sdyuan.com/
本文標題:淺析面向服務的IT架構
























