向服務(wù)架構(gòu)和企業(yè)服務(wù)總線(ESB)_第1頁(yè)
向服務(wù)架構(gòu)和企業(yè)服務(wù)總線(ESB)_第2頁(yè)
向服務(wù)架構(gòu)和企業(yè)服務(wù)總線(ESB)_第3頁(yè)
向服務(wù)架構(gòu)和企業(yè)服務(wù)總線(ESB)_第4頁(yè)
向服務(wù)架構(gòu)和企業(yè)服務(wù)總線(ESB)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)習(xí)和研究在企業(yè)中實(shí)施面向服務(wù)架構(gòu)(SOA),簡(jiǎn)單回顧SOA和ESB,重點(diǎn)關(guān) 注微軟在SOA領(lǐng)域的相關(guān)指導(dǎo)和.NET社區(qū)的相關(guān)開(kāi)源的解決方案,和大家一起 來(lái)探討如何在企業(yè)里實(shí)現(xiàn)SOA,期望有實(shí)施SOA經(jīng)驗(yàn)的同學(xué)發(fā)表意見(jiàn)。一、SOA的歷史1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是現(xiàn)代 應(yīng)用開(kāi)發(fā)領(lǐng)域最重要的課題,SOA并不是一個(gè)新事物,IT組織已經(jīng)成功建立并 實(shí)施SOA應(yīng)用軟件很多年了,BEA、IBM、等廠商看到了它的價(jià)值,紛紛跟進(jìn)。SOA 的目標(biāo)在于讓IT變得更有彈性,以更快地響應(yīng)業(yè)務(wù)單位的需求,實(shí)現(xiàn)實(shí)時(shí)企業(yè) (Real-Time Enterprise

2、,這是 Gartner 為 SOA 描述的愿景目標(biāo))。而 BEA 的 CIO Rhonda早在2001年6月就提出要將BEA的IT基礎(chǔ)架構(gòu)轉(zhuǎn)變?yōu)镾OA,并且從對(duì)整 個(gè)企業(yè)架構(gòu)的控制能力、提升開(kāi)發(fā)效率、加快開(kāi)發(fā)速度、降低在客戶(hù)化和人員技 能的投入等方面取得了不錯(cuò)的成績(jī)。SOA是在計(jì)算環(huán)境下設(shè)計(jì)、開(kāi)發(fā)、應(yīng)用、管理分散的邏輯(服務(wù))單元的一種 規(guī)范。這個(gè)定義決定了5。人的廣泛性。SOA要求開(kāi)發(fā)者從服務(wù)集成的角度來(lái)設(shè)計(jì) 應(yīng)用軟件,即使這么做的利益不會(huì)馬上顯現(xiàn)。SOA要求開(kāi)發(fā)者超越應(yīng)用軟件來(lái)思 考,并考慮復(fù)用現(xiàn)有的服務(wù),或者檢查如何讓服務(wù)被重復(fù)利用SOA鼓勵(lì)使用可 替代的技術(shù)和方法(例如消息機(jī)制),通過(guò)

3、把服務(wù)聯(lián)系在一起而非編寫(xiě)新代碼來(lái)構(gòu) 架應(yīng)用。經(jīng)過(guò)適當(dāng)構(gòu)架后,這種消息機(jī)制的應(yīng)用允許公司僅通過(guò)調(diào)整原有服務(wù)模 式而非被迫進(jìn)行大規(guī)模新的應(yīng)用代碼的開(kāi)發(fā),使得在商業(yè)環(huán)境許可的時(shí)間內(nèi)對(duì)變 化的市場(chǎng)條件做出快速的響應(yīng)。SOA也不僅僅是一種開(kāi)發(fā)的方法論一它還包含管理。例如,應(yīng)用SOA后,管 理者可以方便的管理這些搭建在服務(wù)平臺(tái)上的企業(yè)應(yīng)用,而不是管理單一的應(yīng)用 模塊。其原理是,通過(guò)分析服務(wù)之間的相互調(diào)用,SOA使得公司管理人員方便的 拿到什么時(shí)候、什么原因、哪些商業(yè)邏輯被執(zhí)行的數(shù)據(jù)信息,這樣就幫助了企業(yè) 管理人員或應(yīng)用架構(gòu)師迭代地優(yōu)化他們的企業(yè)業(yè)務(wù)流程、應(yīng)用系統(tǒng)。SOA的一個(gè)中心思想就是使得企業(yè)應(yīng)用擺脫面

4、向技術(shù)的解決方案的束 縛,輕松應(yīng)對(duì)企業(yè)商業(yè)服務(wù)變化、發(fā)展的需要。企業(yè)環(huán)境中單個(gè)應(yīng)用程序是無(wú)法 包容業(yè)務(wù)用戶(hù)的(各種)需求的,即使是一個(gè)大型的ERP解決方案,仍然不能滿(mǎn)足 這個(gè)需求在不斷膨脹、變化的缺口,對(duì)市場(chǎng)快速做出反應(yīng),商業(yè)用戶(hù)只能通過(guò)不 斷開(kāi)發(fā)新應(yīng)用、擴(kuò)展現(xiàn)有應(yīng)用程序來(lái)艱難的支撐其現(xiàn)有的業(yè)務(wù)需求。通過(guò)將注意 力放在服務(wù)上,應(yīng)用程序能夠集中起來(lái)提供更加豐富、目的性更強(qiáng)的商業(yè)流程。 其結(jié)果就是,基于SOA的企業(yè)應(yīng)用系統(tǒng)通常會(huì)更加真實(shí)地反映出與業(yè)務(wù)模型的結(jié) 合。服務(wù)是從業(yè)務(wù)流程的角度來(lái)看待技術(shù)的一這是從上向下看的。這種角度同一 般的從可用技術(shù)所驅(qū)動(dòng)的商業(yè)視角是相反的。服務(wù)的優(yōu)勢(shì)很清楚:它們會(huì)同業(yè)

5、務(wù) 流程結(jié)合在一起,因此能夠更加精確地表示業(yè)務(wù)模型、更好地支持業(yè)務(wù)流程。相 反我們可以看到以應(yīng)用程序?yàn)橹行牡钠髽I(yè)應(yīng)用模型迫使業(yè)務(wù)用戶(hù)將其能力局限 為應(yīng)用程序的能力。企業(yè)流程(enterprise process)是流經(jīng)企業(yè)框架的空氣,它賦予業(yè)務(wù)模 型里的組件以生命,并更加清晰地定義了它們之間的關(guān)系。流程定義了同業(yè)務(wù)模 型進(jìn)行交互操作的專(zhuān)門(mén)方法。例如,會(huì)計(jì)可能是企業(yè)服務(wù)系統(tǒng)的一個(gè)組件一但是 將發(fā)票寄給客戶(hù)卻是一個(gè)業(yè)務(wù)流程。服務(wù)被定義用來(lái)支持業(yè)務(wù)流程,因而貫穿整 個(gè)流程始終的是:各種服務(wù)組件在流程和邏輯實(shí)現(xiàn)過(guò)程中的裝配操作。理解業(yè)務(wù) 流程是定制服務(wù)的關(guān)鍵所在。二、SOA的描述所適用的原則利用顯式的

6、與實(shí)現(xiàn)無(wú)關(guān)的接口來(lái)定義服務(wù)。利用強(qiáng)調(diào)位置透明性和可互操作性的通信協(xié)議。封裝可重用業(yè)務(wù)功能的服務(wù)的定義。圖1說(shuō)明了這些原則。注意,雖然Web服務(wù)技術(shù)非常符合這些原則,但它 并不是唯一符合這些原則的技術(shù)。圖1: SOA的原則為了實(shí)現(xiàn)SOA,應(yīng)用程序和基礎(chǔ)架構(gòu)都必須支持SOA原則。啟用SOA應(yīng)用 程序涉及到創(chuàng)建服務(wù)接口,服務(wù)接口可以直接也可以間接地通過(guò)使用適配器用于 現(xiàn)有的或新的功能。從最基本的級(jí)別來(lái)看,啟用該基礎(chǔ)架構(gòu)涉及到規(guī)劃功能來(lái)將 服務(wù)請(qǐng)求路由和傳遞給正確的服務(wù)提供者。然而,基礎(chǔ)架構(gòu)支持在不影響服務(wù)的 客戶(hù)端的情況下由另一個(gè)服務(wù)實(shí)現(xiàn)替代原有的服務(wù)實(shí)現(xiàn)也是至關(guān)重要的。這不僅 需要根據(jù)SOA原則指

7、定服務(wù)接口,而且需要基礎(chǔ)架構(gòu)允許客戶(hù)端代碼以獨(dú)立于 所涉及的服務(wù)位置和通信協(xié)議的方式來(lái)調(diào)用服務(wù)。三、ESB是什么?根據(jù)維基百科的ESB定義,ESB有如下特性:它是面向服務(wù)架構(gòu)的實(shí)現(xiàn)。它通常是操作系統(tǒng)和編程語(yǔ)言無(wú)關(guān)的;它應(yīng)能在Java和.Net應(yīng)用程序之間 工作。它使用XML (可擴(kuò)展標(biāo)識(shí)語(yǔ)言)作為標(biāo)準(zhǔn)通信語(yǔ)言。它支持Web服務(wù)標(biāo)準(zhǔn)。它支持消息傳遞(同步、異步、點(diǎn)對(duì)點(diǎn)、發(fā)布-訂閱)。它包含基于標(biāo)準(zhǔn)的適配器(如J2C/JCA),用于集成傳統(tǒng)系統(tǒng)。它包含對(duì)服務(wù)編制(orchestration)和編排(choreography)的支持。它包含智能、基于內(nèi)容的路由服務(wù)(itenerary路由)。它包含標(biāo)

8、準(zhǔn)安全模型,用于ESB的認(rèn)證、授權(quán)和審計(jì)。它包含轉(zhuǎn)換服務(wù)(通常是使用XSLT),在發(fā)送應(yīng)用和接收應(yīng)用之間轉(zhuǎn)換格式, 簡(jiǎn)化數(shù)據(jù)格式和值的轉(zhuǎn)換。它包含基于模式(schema)的驗(yàn)證,用于發(fā)送和接收消息。它可以統(tǒng)一應(yīng)用業(yè)務(wù)規(guī)則,充實(shí)其它來(lái)源的消息,分拆和組合多個(gè)消息,以 及處理異常。它可以條件路由,或基于非集中策略的消息轉(zhuǎn)換,即不需要集中規(guī)則引擎。它可監(jiān)視不同SLA(服務(wù)級(jí)別合約)的消息響應(yīng)門(mén)限,以及在SLA中定義的 其它特性。它(常常)簡(jiǎn)化“服務(wù)類(lèi)別”,向更高或更低優(yōu)先級(jí)用戶(hù)做出適當(dāng)?shù)捻憫?yīng)。它支持隊(duì)列,在應(yīng)用臨時(shí)不可用時(shí)用來(lái)保存消息。它由(地理)分布式環(huán)境中的選擇性部署應(yīng)用適配器組成對(duì)于其中一些廠

9、商(IBM、微軟)來(lái)說(shuō),ESB是將一系列能力聯(lián)結(jié)在一起的 一種模式,而其他廠商認(rèn)為ESB是一種產(chǎn)品。在2005年,微軟Identity Platform 的產(chǎn)品經(jīng)理Rich Turner寫(xiě)道:ESB產(chǎn)品是一根聰明的管子,用來(lái)連接各個(gè)愚笨的節(jié)點(diǎn)。:WebService的途徑讓節(jié)點(diǎn)本身也變得聰明,減少了對(duì)底下聰明管道的需要,并確保 了跨越任何平臺(tái)與設(shè)備的開(kāi)放的通訊。四、如何用.NET技術(shù)建立完整的SOA環(huán)境微軟發(fā)布了一個(gè)名為“真實(shí)世界里的面向服務(wù)架構(gòu)(SOA)”的電子書(shū)。這本 書(shū)表達(dá)了微軟對(duì)面向服務(wù)架構(gòu)的觀點(diǎn),并包括了數(shù)個(gè)展示如何用微軟產(chǎn)品和技術(shù) 實(shí)現(xiàn)SOA的真實(shí)案例。書(shū)中解釋到,SOA的功能型架

10、構(gòu)本身是松散的,即每個(gè)服 務(wù)本身可以作為企業(yè)的IT資產(chǎn)存在、也可以作為生產(chǎn)流程中的處理環(huán)節(jié)存在, 但總體上他們提供了一個(gè)完整的視圖,而且與獨(dú)立應(yīng)用不同,這個(gè)視圖的內(nèi)容不 是分層的、而是平的,借助這個(gè)視圖可以提供如下可重用能力:消息機(jī)制服務(wù)工作處理流程服務(wù)數(shù)據(jù)服務(wù)用戶(hù)體驗(yàn)服務(wù)主體身份的識(shí)別、認(rèn)證、授權(quán)服務(wù)還有通盤(pán)的管理能力所有這些能力用微軟的產(chǎn)品描述就是下圖:加拍。悟,一 Too信 &Visual StudiointeradfofiCartfSpKOEnil 國(guó) $SvkAdwDrmryRotlha SpvjzWHnd IntagfalinOiltoW/HgjjIrMwmipn 如 wr心MID

11、Dyramca.Akfrtorizaiien MgWCrkBOw IgWjMl( Softer fi AthipiniK叫;牛棒以肝1 mcWvW Aswrer VAhrteME fRimSmarl d+rtn CflmpMJ rriim?w&rt 制i割叩浙如比9后(娉寸偈H曲折幅nt在Grov&manceMT.GtfitefFimil/Vrifidowrt Systa-ifiUptEto SnfVfceMessaging/ Services御秘知iview衲耳與強(qiáng)調(diào)SCA、SDO等公共標(biāo)準(zhǔn)的Java平臺(tái)不同,微軟平臺(tái)相應(yīng)的封裝也不是 通過(guò)商用服務(wù)器平臺(tái)完成,而是更多地借助WCF實(shí)現(xiàn);其中最

12、為重要的ESB角色 重則由BizTalk擔(dān)當(dāng),輕則由用戶(hù)通過(guò)擴(kuò)展WCF + WF完成;至于服務(wù)的治理, 相對(duì)更為統(tǒng)一,與Windows平臺(tái)其他產(chǎn)品無(wú)異,向下借助統(tǒng)一的WMI體系,配合 MOM和System Center對(duì)SOA的基礎(chǔ)平臺(tái)部分進(jìn)行治理,向上借助WS_Management 協(xié)議對(duì)服務(wù)進(jìn)行集中管理。實(shí)施SOA集成在所難免,各企業(yè)集成的方式大概主要有3種:購(gòu)買(mǎi)某廠商的SOA套件,這樣無(wú)論是組成上的兼容性還是技術(shù)支持都有保 證,代價(jià)就是花費(fèi)不菲;集成多種開(kāi)源的服務(wù)器產(chǎn)品和開(kāi)發(fā)框架,顯性成本上很劃算,但技術(shù)實(shí)施的 成敗的風(fēng)險(xiǎn)比較大;更多依賴(lài)操作系統(tǒng)自帶的產(chǎn)品,根據(jù)IT范圍的大小,選擇少量的

13、商業(yè)產(chǎn)品 或開(kāi)源服務(wù)器產(chǎn)品,兼容性風(fēng)險(xiǎn)比全部開(kāi)源產(chǎn)品要小,成本上也比全盤(pán)采購(gòu)商業(yè) 套件廉價(jià)。SOA in the Real World里更多倡導(dǎo)的就是這第三條道路。微軟還贊助了一個(gè)針對(duì)北美500家擁有1000名員工,或超過(guò)這個(gè)數(shù)字的企 業(yè)的綜合應(yīng)用平臺(tái)的研究。其目的旨在確定哪種軟件平臺(tái)被用于構(gòu)建關(guān)鍵任務(wù)的 應(yīng)用,以及什么是首選供應(yīng)商的關(guān)鍵組件平臺(tái)等。五、開(kāi)源的.NET ESB項(xiàng)目介紹ESB.NET企業(yè)級(jí)服務(wù)總線:ESB.NET是開(kāi)源的企業(yè)級(jí)服務(wù)總線,采用的協(xié)議是 MS-PL。ESB.NET主要包含了 MSMQ消息隊(duì)列機(jī)智,SOAP消息收發(fā),ROUTER服務(wù)路由,WCF,WSE消息擴(kuò)展(消息加解密,壓縮),還有WF工作流。開(kāi)源的通信框架NServiceBus :NServiceBus是一個(gè)用于構(gòu)建企業(yè)級(jí).NET 系統(tǒng)的開(kāi)源通訊框架。它在消息發(fā)布/訂閱支持、工作流集成和高度可擴(kuò)展性等 方面表現(xiàn)優(yōu)異,因此是很多分布式系統(tǒng)基礎(chǔ)平臺(tái)的理想選擇。,它能夠幫助開(kāi)發(fā) 人員在搭建企業(yè).NET系統(tǒng)時(shí)避免很多典型的常見(jiàn)問(wèn)題。同時(shí),該框架也提供了 一些可伸縮的關(guān)鍵特征,比如對(duì)發(fā)布/訂閱的支持、集成的長(zhǎng)時(shí)間工作流及深入 的擴(kuò)展能力等。據(jù)作者說(shuō),其本意是為構(gòu)建分布式應(yīng)用軟件創(chuàng)建一個(gè)理想

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論