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