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