精彩的人生

          好好工作,好好生活

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            147 Posts :: 0 Stories :: 250 Comments :: 0 Trackbacks

          #

          本文意譯自TSS的“BPEL and Java”,為的是更深入地理解這篇好文章,也算是我的一篇學習筆記。

          簡介

          在企業應用開發領域,每一種新技術和平臺背后的動力和思想,無一例外的是提供一個能夠更有效的開發企業商務應用的環境-商務應用和業務過程更為緊密地保持一致,不能太復雜,而且能做到隨著業務過程的變化而輕松地改變。

          Java提供了一個極好的企業應用開發平臺,但仍然不能做到分離業務過程。在一個公司內部,業務過程需要相互協作和集成,公司之間也一樣。因為存在著不同的技術和功能,集成不同的應用總是一項艱難的任務。

          應用集成方面的最新進展,來自Service Oriented Architecture(SOA)和Web服務技術。從SOA的觀點來看,不同的應用系統以Web服務的形式來發布它們的業務功能。因此,我們使用統一的標準方式(通過Web服務)來訪問遺留系統和新開發應用的功能。這種標準方式很重要,因為通常大多數公司存在著很多需要集成的應用。

          如果僅僅是開發Web服務并把這些功能發布出來還不夠。我們也需要一種把這些功能按正確的順序組合起來的方法-定義使用這些Web服務的業務過程。我們顯然需要一個簡單直接的方式來定義這些業務過程,尤其是我們都知道業務過程通常易于變化,因此我們需要很容易地修改這些業務過程。

          這正是BPEL(Business Process Execution Language for Web Service,也稱作WS-BPEL或BPEL4WS)如此重要的原因。BPEL用于組合這些Web服務,因此可以算是SOA的一種實現方式。
          我們將在本文討論BPEL的作用及其與Java的關系,尤其集中在如何擴展BPEL,使它不但可以組合Web服務,也可以組合其他資源(如EJB,JMS等)。BPEL和Java結合的可能性,打開了一個有趣的新視野。

          BPEL的作用
          面向業務過程的SOA需要使用一個相對簡單的方式來描述如何把Web服務組合成業務過程。當然,如果描述的方式最好能夠執行,這樣我們不但可以定義一個抽象的業務過程,而且完成了一個可執行的業務過程規范。BPEL正是這樣的語言。實際上,它是第一個擁有以下特征的語言:
          1、允許我們同時定義抽象的業務過程和可執行的業務過程
          2、受到大多數公司的支持
          3、存在可執行這些業務過程語言的軟件(BPEL服務器)和開發工具(BPEL設計工具)

          在深入了解BPEL之前,讓我們討論一下如何組合Web服務。有兩種方式:Orchestration和Choreography。使用Orchestration,需要一個總控過程來控制涉及到的Web服務,并協調Web服務不同操作的執行。所涉及到的Web服務并不知道(也不必知道)它們是組合過程的一部分。只有中央的總控過程知道它們如何組合和協調。

          相比之下,Choreography并不依賴中央的總控協調過程。相反,每個涉及其中的Web服務都知道何時執行自己的操作,和誰交互。Choreography方式集中在消息的交換。所有的Choreography參與者都需要知道業務流程,要執行的操作,要交互的消息,和交換消息的時機。

          從組合Web服務來執行業務流程的角度來看,Orchestration比Choreography更靈活:
          1、我們知道誰負責執行整個業務流程。
          2、及時Web服務并不知道它們是業務流程的一部分,我們仍然可以把它們組合起來。
          3、當錯誤發生時,我們可以提供一個備選的Scenario。

          BPEL遵循Orchestration范式。其他的標準則使用Choreography范式,如 WSCI(Web Services Choreography Interface)和WS-CDL(Web Services Choreography Description Language)。和BPEL相比,Choreography沒有獲得業界的支持。
          2002年8月,BEA,IBM和微軟公司開發出BPEL的第一個版本。2003年4月,BPEL提交給OASIS標準化。

          BPEL既可以在公司內部使用,也可以在公司之間使用。在公司內部,BPEL用于標準化企業應用集成,并集成遺留的孤立系統。在公司之間,BPEL使業務伙伴之間的集成更加容易和高效。BPEL定義的業務流程并不會影響已有的系統。在功能已經存在或要發布成Web服務的環境,BPEL是關鍵的技術。隨著Web服務技術應用的日益廣泛,BPEL的重要性也在上升。

          BPEL語言
          BPEL語言被設計來描述業務流程。它支持兩種不同類型的業務流程:
          1、可執行的流程-允許我們定義一個業務流程的確切細節。它可以在Choreography引擎種執行。多數情況下,BPEL都用于可執行的流程。
          2、抽象的業務協議-允許我們定義參與方之間的公開消息交換協議。它不包括業務流程的內部細節,也不能執行。

          BPEL構建在XML和Web服務的基礎上。它是一個以XML為基礎的語言,支持Web服務技術的協議群,包括SOAP,WSDL,UDDI,WS-Reliable Message,WS-Addressing,WS-Coordination和WS-Transaction。BPEL是早期兩個工作流語言(WSFL和XLANG)的綜合。WSFL由IBM設計,基于有向圖的概念。XLANG有微軟設計,是一種塊結構語言。BPEL綜合了兩者的特點,為描述業務流程提供了豐富的語義詞匯。

          BPEL流程定義了參與流程的Web服務執行的確切次序。它可以按順序執行,也可以并行執行。使用BPEL,我們可以表達條件行為,例如,是否執行一個Web服務取決于前一個執行結果;也可以創建循環,聲明變量,復制和為變量賦值,定義錯誤處理Handler等等。綜合使用這些結構,我們可以用算法的方式定義復雜的業務流程。

          因此,BPEL可以和通用的編程語言,比如Java相比較,但它沒有Java強大。另一方面,它更簡單,更適合業務流程的定義。因此,BPEL并不是現代語言(如Java)的替代,而是它們的補充。

          讓我們更仔細地看看典型的BPEL流程。首先,BPEL業務流程收到一個請求。為相應請求,BPEL執行相關的Web服務,最后相應請求者。因為BPEL流程需要和其他的Web服務協作,它依賴于被調用的Web服務的WSDL描述。

          BPEL流程包含幾個步驟。每個步驟稱為活動。BPEL支持簡單的和結構化的活動。簡單的活動代表基本的結構,用于普通的任務,如下列表所示:
          1、調用其他Web服務,使用
          2、等待客戶端通過發送一個消息調用業務過程,使用
          3、為同步操作創建一個響應,使用
          4、為一個數據變量賦值,使用
          5、指出錯誤和例外發生,使用
          6、等待若干時間,使用
          7、終止整個流程,使用,等等

          我們可以組合這些基本的簡單活動來定義復雜的算法,用于定義業務流程的執行步驟。為組合這些基本活動,BPEL支持幾個結構化的活動。最重要的是:
          ,用于定義按次序執行的一系列活動
          ,用于定義并行執行活動的集合
          ,用于創建條件分支
          ,用于定義循環
          ,用于從多個可選的路徑中選擇其一

          每個BPEL流程都可以使用聲明變量,使用定義partner link。我們將在后面的小節討論

          BPEL流程可以是同步也可以是異步的。同步的BPEL流程阻塞客戶端(使用該流程的客戶端)直到流程結束并返回結果。異步的BPEL流程并不阻塞客戶端。它使用一個回調來返回結果(如果有)。通常,我們在耗時較長的流程使用異步流程,把同步流程用于處理在短時間內返回結果的流程。假如一個BPEL流程使用異步的Web服務,通常情況下它自己也是異步的(雖然不是必要的)。

          對于客戶端來說,一個BPEL流程看起來就像其他的Web服務。當我們定義一個BPEL流程時,我們實際上定義了一個組合現存Web服務的新Web服務。這個新的BPELWeb服務使用一系列portType,通過這些portType,它提供了類似于其他Web服務的操作。為調用一個在BPEL定義的業務流程,我們必須調用這些Web服務的組合。下圖是一個BPEL流程的示意圖:

          點擊查看原始大小 545 x 301



          Partner Link

          BPEL示例

          BPEL vs Java

          BPEL服務器和開發工具

          PPEL + Java

          總結

          資源

          關于作者

          待續......


          原文地址:http://starrynight.blogdriver.com/starrynight/637103.html


          posted @ 2006-03-09 10:23 hopeshared 閱讀(499) | 評論 (0)編輯 收藏

          來自:TechTarget Michael Meehan  


                  盡管關于如何把必要的企業服務總線轉化為面向服務的架構存在激烈的爭論,但是就在最近Forrester Research公司在報告中說他們認為持續采用SOA能很好的體現ESB的思想,他們把它稱為“SOA的主要切入點”。

            該報告的細節分析了兩種獨立ESB市場、處于領導地位的公司以及使ESB對有集成問題的公司價格上的吸引力。Forrester公司總共調查了116家公司,報告顯示77%的大企業、51%的中型企業和46%的小企業將主動在今年年底前實現SOA。評估認為三分之一的“基礎設施決策者”在未來12個月中會增加他們的ESB部署。

            Forrester公司分析師Mike Gilpin說:“盡管人們還不十分確定如何構建出一個完整的SOA,但他們已經知道要解決集成問題,而ESB正好能幫助他們解決該問題。”

            報告把客戶市場分成兩個獨立的群體。一個被稱為“保持簡單”群體,另一個被成為“即刻整體部署”群體。

            “保持簡單”群體想要一種低廉的、基于標準的Web服務編排工具并在此之上構建健壯的SOA。Gilpin認為價格正在成為ESB的一大賣點,它使得公司用相對少的投資就能啟動Web服務,于是他們就可依靠必要的技術去構建完整的SOA。

            Cape Clear Software、Sonic Software以及Fiorano Software等公司就是采用了以上這種做法。

            他說:“實際上,ESB的成功為導致集成軟件方面費用的降低。因此盡管公司遷移了更多的單元,但費用卻降低了。”

            而“即刻整體部署”群體則希望能一次性解決集成方面的所有問題,希望得到在服務證明周期中負責細粒度控制和服務過程管理的工具。

            Gilpin相信這兩種不同的市場會導致對兩種不同類型ESB產品的需求,即一種輕量級的產品以及一種全面的SOA集成與控制產品。報告顯示,所有ESB倡導者以及企業應用集成的推崇者都有目光投向了全面產品市場,于是把輕量級產品的市場留給了IBM不久將要發布的WebSphere ESB。

            Forrester公司高興的發現經常被分析師團體稱為遺留中間件的EAI廠商正在發生轉變。他們在Web服務基礎設施的服務仲裁以及控制/變更方面變得很有競爭力。根據報告顯示,EAI的推崇者對擴展市場貢獻巨大,但只有Oracle Corp和webMethods公司有能力在價格上取得有競爭力的地位。

            處于領導地位的公司包括Cape Clear,、Sonic、Fiorano、Iona Technologies、 Oracle、webMethods、Tibco Software以及收購了SeeBeyond 公司的Sun Microsystems。今年夏天,BEA Systems公司作出了兩次領導者的舉動,一次是發布AquaLogic ESB,另一次則是推出WebLogic Integration suite。IBM由于最近才剛推出ESB產品所以沒有參加調研。

            Gilpin并不認為像BEA、Oracle以及IBM這樣的平臺提供商能夠引起市場兩極分化,因為集成問題不應該與應用程序運行在SOA內部哪個地方緊密耦合在一起。

            他確信與產品缺少結合會對市場造成挑戰。

            他說:“人們都認為ESB并沒有被標準良好的定義。它還處于一種類似于J2EE之前的應用服務器市場的狀態。”

            他看好像Apache Synapse這樣的項目,該項目被認為會為Web服務仲裁定義標準的方法,而那會是解決問題的潛在手段。

            Gilpin認為控制已經是ESB市場沒有解決的最大問題。SOA注冊提供商早已注視著該領域,而他希望這兩個領域能夠通過融合或協作的方式走到一起,也可能是通過XML網絡的方式。

            他說:“SOA太大,以致于已經不可能靠一個提供商來實現全部的內容,即使是IBM。今后很可能會靠很多提供商的團隊工作才能形成一種生態系統。”

          posted @ 2006-03-09 10:21 hopeshared 閱讀(324) | 評論 (0)編輯 收藏

          作者: Hub Vandervoort 和 Matt Rothera∣來源:BEA dev2dev


          ?

          復雜性的簡單管理

          由于其業務可見性、靈活性及知識管理方面帶來的高額利潤,門戶技術成為了用于對整個企業的商業活動進行監控、查找和管理的流行選擇。對于構建高度動態的能夠聚集、組織和表示來自多個后端系統的信息的企業門戶來說,BEA WebLogic Platform具有很大的吸引力。不論門戶是用功能豐富的WebLogic Portal Server環境實現,還是通過像Jakarta Struts這樣的MVC框架實現,最新版的BEA WebLogic Platform 8.1提供了大量新特性用于創建功能強大的門戶環境。

          但是由于企業門戶開始聚合數量不斷增長的跨越不同技術領域、地理界限,甚至是組織界限的服務,所以門戶架構師將需要找到管理環境復雜性的方法。無疑,在門戶與每一個服務之間構建一次性、可靠、點到點的集成不能從開發、部署或運行時方面進行伸縮。所以需要一種“服務網絡”的概念,它提供可靠傳輸、智能路由、高級服務管理特性,以及提供在高度分布式的聯合環境下運作的能力。

          幸運的是,一種稱為企業服務總線(ESB;參見側欄“ESB:您的Web 服務網絡”)的新型基礎結構提供了甚至最苛求的門戶環境所要求的復雜級別。ESB是一種基于標準的面向服務的骨干,它能夠進行可靠連接和協調數百個應用程序端點。

          ESB為需要連接跨越不同數據中心分布的各種異構系統的企業提供了一種理想的體系結構,同時還保持了絕對的事務完整性。此外,它還提供幾個通過部署時構造進行最初配置的高級服務,從而保護了門戶應用程序,即不必經常對它進行修訂和重新部署來管理后端上的更改。

          即使是計劃部署一個門戶以將同構環境中的系統與許多后端服務集成,將ESB合并為集成網絡也有明顯的好處。綜合性的ESB供應商將會提供out-of-the-box管理、安全性、可靠性、高性能的服務請求、本機XML處理、復雜路由和轉換,以作為總線中的增殖特性。另外,作為面向服務體系結構(SOA)的一種基于標準的實現,ESB提供必要的抽象層來履行SOA的全部承諾。在不犧牲同構環境的傳統價值(即管理、安全性、可靠性、伸縮性和性能)的情況下,ESB提供了將底層服務實現無縫地重新部署到其他技術、地理或組織領域的能力。

          本文中,我們將通過兩個關鍵用例來演示,使用BEA WebLogic Platform 8.1,將高度分布式的服務與門戶及Web應用程序相集成時ESB的威力和靈活性。在兩部分系列的下一部分中,將展示ESB如何通過操作感知、業務活動監控(BAM)和面向服務的業務過程管理來向組織提供附加值,從而讓門戶可以充分利用擴展企業中的服務的全部價值。

          Avitek Medical Records:擴充其業務模型
          WebLogic Platform 8.1
          配帶一個綜合的J2EE指南,稱作“Avitek Medical RecordsAvitek醫療記錄)”,用來說明J2EE平臺的所有核心特性。該指南建模的基本思想圍繞這樣一種門戶(一種J2EE Struts應用程序),它為病人、醫生和管理者提供查看整個醫療記錄集合的能力。另外,該應用程序展示了通過Web Services接口連接外部客戶機的能力,它提供了不通過表示層直接與Avitek服務交互的能力。

          作為本文的前提,我們假設Avitek上的“業務量在急劇增長”并且已經獲得醫療記錄的三個新的來源以集成到門戶中。為了使情況復雜一點,新的來源在地理上跨越不可靠的網絡分布,并且包含混合的技術環境(多種J2EE應用程序服務器供應商、Microsoft .NET和定制的解決方案)。實際上,Avitek類似一種能適應變化的體系結構,因為它們很可能會增量地獲得信息的新來源,并會隨著時間慢慢地將這些來源遷移到最新最好的技術上。

          盡管Avitek Medical Records的體系結構宣稱能夠使用HTTP/Web服務來集成新的醫療記錄來源,但是本文將通過一些關鍵用例來解釋僅僅使用Web Services環境是不夠的。

          1

          在談到純HTTP/Web服務方法的生存能力時,還存在一些與通信模型(請求/響應模型、單向通信模型和異步服務模型等)的可靠性、性能、豐富性以及服務質量、性能、管理和安全性相關的問題。為此,我們建議修改Avitek的體系結構以與ESB的概念相結合(見圖1)。

          ESB是基于工業標準的JMS,將會提供一種企業級的骨干,以便可靠地將服務一起鏈接到內聚性操作單元中,它能夠服務于大多數門戶所需的全范圍的集成場景。本文將會介紹ESB就位后可用的許多場景中的幾個場景:

          1.??? 前向緩存Forward Cache:為了低延遲、只讀訪問數據而將數據從分布式系統移動到靠近表示層的能力。

          2.??? 聯合查詢Federated Query:在表示層有效地查詢多系統并異步地聚集響應的能力。

          前向緩存服務

          “前向緩存服務”用例解決需要把數據從back-office系統暴露到表示層這樣的問題。盡管表示層可以容易地通過請求/響應模型與back-office系統交互,但仍有一些原因使得這樣做行不通:

          1.? back-office系統不能維持支持前端表示層所需要的負載。
          2.?
          請求/響應模型的延遲超出了表示層容許的范圍。
          3.?
          back-office系統直接暴露給表示層會有風險——穩定性或是對現有服務級別的沖擊。
          4.? back-office
          系統可能與表示層處于不同的地域;在兩個數據中心之間連接斷了的情況下,數據對于終端用戶來說應該仍然可用。

          ESB可用于可靠地將變化轉發到表示層中的緩存中。這里的關鍵單詞是“可靠地”。在分布式基于SOA的環境中,需要將注意力集中到系統之間如何互操作以及在發生故障和停機時會發生什么事情上。很多時候,系統不能為這種類型的可靠性提供必要的消息重發和“未確定解決方案”。ESB可以消除系統中的這種復雜性(見圖2)。

          2

          從定義來看,ESB是一種可以在任意兩個實體間可靠通信的分布式服務網絡。ESB實現模塊提供的部署選項允許將服務質量調整成剛好滿足應用程序的需求。基于工業標準的JMS,兩個實體使用標準接口可靠地進行通信;ESB處理路由的復雜性并保證更改通知的傳遞。

          幸運的是,Avitek演示不需要徹底地改變以利用ESB。給定ESB的基于標準的方法,ESB實現模塊通過JMS接口連接進來。Avitek演示中包含了一個MDB,該MDBJMS連接進行偵聽,以將XML記錄“上載”到MedRec數據庫。一旦記錄被加載到數據庫中,這些數據就對使用標準技術對數據庫進行查詢的前端門戶可用。當然,這種模式還有待加強,以適應記錄刪除請求,或者甚至適應部分記錄更新(參見圖3)。

          3

          但這與標準的JMS實現程序的區別何在呢?JMS實現程序能在單一域中確保信息異步的傳遞。試圖連接多個JMS消息傳遞域通常需要某種定制的橋接,使得消息可以在多個域之間進行可靠的轉發。然而ESB實現模塊在分布式聯合環境中提供本地的端到端JMS通信,這消除了對定制橋接的依賴。另外,ESB還提供附加的基于標準的連接,例如Web servicesJCA適配器(參考側欄“ESB提供商:附加值服務”),這允許在ESB上的任何地方靈活地部署服務。

          另外需要考慮的是在表示層中數據如何進行緩存。Avitek演示依賴于將標準XML Schema存放在關系數據庫中。可是在有各種各樣信息單元的不同服務環境中,則更傾向于在不必定義關系結構的情況下存儲和處理不同格式的XML

          ESB實現模塊也許會提供嵌入式XML數據庫,采用一種“無schema”的方法來存儲、恢復以及查詢XML文檔,徹底的減少了為適應后端服務數據中的變化所需的數據庫管理時間。

          也應該討論一些替代方法來與ESB進行比較和對比。BEA WebLogic 8.1也提供一些不同的方法,來滿足在不同域之間的這種松耦合和可靠的消息傳遞。

          可靠的Web服務
          ?BEA WebLogic 8.1提供一種稱為“可靠SOAP消息傳遞”的新特性。該特性允許兩個不同的WebLogic服務器之間進行異步可靠的消息傳遞。雖然SOAP/Web服務是一種基于標準的方法,目前WebLogic 8.1通過專有的SOAP報頭和交互協議來實現可靠性。也許將來的能夠用像“WSReliability”這樣的基于標準的方法來實現。即使是使用象“WSReliability”這樣的基于HTTP的標準方法,需要高吞吐量和低延遲的特定用例將通過真正的“端到端”JMS解決方案來獲得更好的服務。

          為了可靠的連接兩個跨越不同網絡和地理界限的系統,必須在每一個域中都駐留某種基礎結構,用以在發生故障時提供必要的“存儲和轉發”功能。ESB基礎結構通常是“輕量級”、易管理并且重點只放在集成服務上。此外,將ESB基礎結構部署到.NET 環境或甚至是另外的J2EE基礎結構,可能會得到更好的組織結構。預先計劃ESB當然可以避免以后可能出現的很多問題。

          JMS消息橋
          BEA WebLogic 8.1
          提供能夠在兩個不同的JMS實現之間轉發消息的JMS消息橋。這種方法當然提供了相對HTTP/Web服務方法的優勢,但ESB的基礎結構能在本地總線上提供必要的轉發、路由和消息優化功能。ESB也提供內聚管理和安全環境,簡化了部署。

          聯合查詢
          這種“聯合查詢”用例解決了在表示層中需要對多種后端系統進行查詢的問題。與“轉發服務緩存”用例不同的是,后端系統中的數據不能合理地得到緩存。這是因為:
          1.?
          后端系統中數據的變化速率使得數據無法合理地得到緩存:查詢緩存的數據可能會造成數據不一致和結果錯誤。
          2.?
          數據量太大:緩存轉發的數據在技術上和經濟上都不可行。

          聯合服務查詢模式的另一方面是:請求花費的時間太長以至于無法完成(某些情況下,需要幾天)。例如,一個獨立系統可能會包含某種人工干預(例如確認)來完成工作流。因為其固有的異步特性,ESB能夠為這種模式提供強大的基礎。

          聯合查詢模式至少有兩種變體。這里討論的變體根據查詢的持續時間進行變化。

          對于表1中討論的兩種聯合查詢模式,ESB使用JMS的基本“發布—訂閱”消息傳遞模式來將請求有效地散播到多個后端系統(在本例中是訂閱者)。這些模式說明了實現功能的非常簡單的方法,ESB提供了實現大量技術所需的核心工具。ESB提供了一組豐富的通信模型,它們可以采用最有效的方式來適應門戶與后端系統之間的各種交互。

          1

          為了闡明這個觀點,讓我們考慮對三個后端服務上的查詢。如果每個服務需要三秒鐘進行處理,連續地調用這些服務將至少耗費九秒鐘。ESB允許以并行的方式執行服務,使得全部的服務執行時間等于最長的服務的運行時間(在本例中是三秒鐘)。雖然這可以使用集中式多線程技術來實現,但ESB允許并發處理跨總線進行分布,這樣就消除了集中式的瓶頸,并提供了更大的可伸縮性潛力。

          聯合查詢:實時請求
          針對本例,我們增強Avitek,為醫生提供在多后端系統中查詢的能力,以便確定在某個時間段內得到輸血的患者的名單。

          為了實現這種新特性,必須使用WebLogic Server 8.1中新的“JMS包裝”支持。這種特性能直接從EJB或者servlet中有效地發送或接收JMS消息。WebLogic Server 8.1能夠有效的管理JMS連接池,以確保消息能夠在門戶應用程序和JMS實現程序(或在我們例子中是ESB)之間進行快速路由。下面給出它的工作原理:

          無狀態的會話bean包含了一個方法,它實現了已被廣泛接受的“JMSReplyTo”模式。當客戶端(servletJSP等)調用無狀態會話bean上的方法時,該方法將請求發布給ESBESB再將請求分發到在配置主題上偵聽的服務。這類服務的例子是JMS客戶端、Web服務或甚至是與應用程序交互的JCA適配器。

          無狀態會話bean定義了一種方法,使得客戶端可以發送任意字符串請求。在XML中可以對它進行格式化。

          public boolean sendRequest(String requestData, ArrayList a) {

          JMS對象一旦建立,標準的“JMSReplyTo”模型就用于將請求與“返回地址”一起發布。所有響應都會返回到這個無狀態會話bean的實例上(參見清單1)。

          最后,這個例子將等待來自ESB上的服務的特定數量的響應,或者直到超時發生為止(參見清單2)。

          聯合查詢:長持續時間請求
          對于本例,我們建立在前一個例子的基礎上,只是假定來自總線上的服務的響應將以更加不可預知的方式返回。這種模式使門戶用戶可以瀏覽到Web 站點的其它區域,同時響應也以異步方式聚合在用戶的會話中。用戶甚至可以注銷,然后重新登錄以檢查請求的狀態(參見圖4)。

          4

          對于本例,消息驅動bean用于異步收集響應,并將其保存在數據庫中。另一種情況是本地XML數據庫可以派上用場。如果系統用變化中的XML響應信息響應,也許將整個XML響應簡單地存儲到“無schema”數據庫中是最好不過的了。

          ESB的一個主要特征是:所有的服務都通過一個“松耦合”的通信接口聯系在一起。與本例有關的好處是:新系統可以聯機進來,并立即被包括到聯合查詢中。由于基礎機制是“發布—訂閱”模式,所以新服務可以簡單地訂閱相關的主題并從門戶接收查詢請求。由于ESB允許在部署時動態發現和智能配置驅動的路由(基于內容和基于上下文等),所以可以保證門戶不受ESB上的服務變化的影響。

          聯合查詢:實時請求與長持續時間請求的組合。有時候,可能值得在某個時間幀內收集來自總線上不同系統的結果(實時請求),但在初始時間幀過期后以異步方式收集響應(長持續時間請求)。為此,我們引入單獨的“通知主題”概念,以便當MDB成功地將響應保存到緩存時,允許無狀態會話beanSSB)接收通知。SSB可以使用任意的業務邏輯來決定何時停止等待,允許門戶應用程序從緩存中讀取數據并將結果顯示給用戶(參見圖5)。

          5

          小結
          雖然BEA WebLogic Platform 8.1是一種能處理多種應用程序方案(包括門戶)的強大平臺,但也有某些類型的門戶集成方案,它們是作為企業服務總線需要的。完全基于標準的基礎分布式網絡——ESB能夠創建敏捷、可互操作及可靠的面向服務網絡,以便把企業內外的服務鏈接在一起。由于今天Web服務標準發展到合并JMS提供程序的許多可用語義,所以ESB實現模塊將繼續實現標準并創建可互操作的網絡,使JMS應用程序能夠和Web 服務應用程序對話,反之亦然。同時,ESB將給某些門戶和Web應用程序開發者添加重大的價值,他們嘗試解決涉及異構系統、地理位置和組織的復雜集成方案。

          下一部分中,我們將討論操作感知、業務活動監控以及集成工作流如何可以給這些應用程序增加附加值。

          ESB:你的Web服務網絡

          到現在,你可能會問,“Web服務怎樣?”。Web服務的承諾當然是跨完全不同技術、地域以及組織界限的集成能力。把ESB看作是Web Services的健壯網絡。ESB建立在Java Message Service(JMS)基礎上,它提供所需的關鍵特性,以便為相互連接的服務建立可靠、安全、可管理及高度執行的骨干。實際上,在許多可用的Web服務工具包中,ESB的基礎骨干已經變成可以識別的SOAP傳輸。針對新出現的許多Web Services標準,ESB提供了自己的解釋與實現,使門戶開發人員看不到不同服務間的網絡級互操作細節。許多復雜的Web服務主題,比如路由、工作流、事務、單用戶注冊安全、審計、高級監控和管理,都可以通過ESB基礎結構處理。

          ESB實現模塊:增值服務

          如前所述,許多ESB 廠商提供增值服務以幫助建立健壯的集成環境。在“前向緩存”用例環境中,有一些需要考慮的其它問題:

          l連通性:JMS中的“J”代表“Java”,這是否意味著所有的系統必須符合Java?當然不是!ESB 充當SOA 環境下的“瑞士”,將完全不同技術集成到普通的可互操作網絡。尋找支持本地C/C++實現、MS/.NET、本地HTTP/SOAP支持及更高級別的適配器(JCA或定制)的ESB 實現模塊,以自動化集成過程。

          l轉換:Avitek演示合并了在表示層中嵌入的轉換,以便將醫療記錄的不同表示轉換成Avitek形式。然而,在聯合開發環境中,系統某各部分的開發者可以建立到這種XML規范形式的轉換。在本例中,將轉換重新部署在接近初始點(和開發人員)不是更好嗎?尋找在ESB中任何位置都可以配置轉換的ESB實現模塊。

          關于作者:Hub Vandervoort Sonic Software專業服務部門的副總裁。他具有20多年的顧問和高級技術主管的經驗,其中涉及網絡、通信軟件和Internet產業。在以前,Hub與人共同創建了三個創業風險投資公司,其中包括早期的面向消息中間件(MOM)領先廠商Horizon Strategies, Inc.

          Matt RotheraSonic Softwarewww.sonicsoftware.com)的見習經理,同客戶一起工作,幫助規劃、設計和部署實時、面向服務的體系結構。在超過15年的技術工作中,Matt已經同100個客戶一起工作,把它們的服務與內部應用程序、商業合作伙伴和企業門戶集成。




          posted @ 2006-03-09 10:20 hopeshared 閱讀(1044) | 評論 (0)編輯 收藏

          作者: CWEEK
          2006-01-12 06:19 PM

          作為近兩年軟件領域最熱門的詞匯之一,SOA(面向服務的架構)的概念以及SOA帶來的好處,正在被越來越廣泛的用戶所接受,Gartner的數據就表明,到2007年,全球將有70%以上的大企業會將他們的應用轉到SOA。但是目前人們最關心的是,如何才能真正實現基于SOA的應用?是否有具體的產品?IONA公司大中國區總裁薛志勇表示,采用IONA公司的ESB(企業服務總線)產品Artix作為SOA的切入點,將可以使企業以最小的投入將已有系統納入SOA架構。



          薛志勇表示,目前ESB是SOA集成中最普遍采用的方法,最新統計數據顯示,在美國有1/3的架構師計劃在12個月內部署ESB。傳統的EAI和平臺廠商是以“服務器”為中心、以“Hub”為形式的解決方案,這種方法雖然解決了信息孤島問題,但投資大,見效慢,而且也不靈活。而作為SOA的核心和基礎架構,未來ESB將扮演著日益重要的角色。ESB是傳統中間件技術與XML、Web服務等技術結合的產物,可提供比傳統中間件產品更為廉價的解決方案。對企業而言,采用ESB中間件系統作為企業級信息系統整合方案中的中樞技術,可以無須添加任何軟硬件設備,就可把過去、現有和未來的IT系統整合在企業級的信息應用框架下,并且能為企業提供實時、大容量的信息通信和實時控制、管理和分配消息傳遞的能力。目前,除了IONA、Tibco等專業的ESB公司外,SOA的兩大領導廠商IBM和BEA也加入了ESB的陣營。

          IONA公司是誕生在都柏林三一學院計算機科學系的愛爾蘭公司,該公司在兩年前就推出了基于Web服務架構的ESB產品——Artix,它是 Web 服務集成產品,該產品能夠在復雜的異構環境中起到“中間件的中間件” 的作用。Artix 利用組織中現有中間件的功能將企業級的服務 (包括安全、路由、事務處理、會話管理以及多傳送綁定等) 擴展到了基于 Web 服務的集成產品,從而降低了使高度異構企業 IT 環境具有服務功能的復雜程度。Artix 支持各種UNIX操作系統以及大型主機在內的許多平臺,支持各種編程語言和圖形工具。

          目前,在國內包括北京移動、中國網通在內的企業已經或正在部署IONA的Artix,薛志勇表示,經過兩年的實踐經驗表明,Artix已經經過實際環境的考驗,可以幫助國內的用戶從小規模、少投資做起,使已有系統轉向SOA,并且風險小、見效快。另外,為了能讓中小企業用戶和研發人員有更多的實踐機會,IONA還于今年6月發布了開源的ESB產品——Celtix,中小企業用戶可以采用Celtix作為切入點去構造SOA,未來可以無縫遷移到Artix架構。薛志勇表示,希望Celtix能為國內的廣大開發人員提供SOA實踐機會。

          IONA公司在2001 年分別在北京和上海設立了辦事處,并于 2003 年在中關村上地軟件園建立了研發中心。目前,中國已成為 IONA公司發展最快的地區。薛志勇還表示,未來IONA將進一步豐富ESB產品線,使用戶得到更多的服務,例如明年第一季度將推出的Artix4.0產品,就將集成Web服務管理、流程管理、注冊管理、安全管理等功能。


          原文地址:http://www.builder.com.cn/developer/news/story/0,3800066930,39435717,00.htm
          posted @ 2006-03-09 10:18 hopeshared 閱讀(268) | 評論 (0)編輯 收藏

          來源:軟件世界 作者:Rick Robinson

            本文將 ESB(企業服務總線) 描述為由中間件技術實現并支持 SOA 的一組基礎架構功能。ESB 支持異構環境中的服務、消息,以及基于事件的交互,并且具有適當的服務級別和可管理性。為了達到此目的,需要將多種功能集中起來并加以分類。然而,并不是 ESB 能夠傳遞值的每一種情形都需要所有的功能。

            IBM認為,為了實現 SOA,應用程序和基礎架構都必須支持 SOA 原則。啟用 SOA 應用程序涉及到創建服務接口,服務接口可以直接也可以間接地通過使用適配器用于現有的或新的功能。從最基本的級別來看,啟用該基礎架構涉及到規劃功能來將服務請求路由和傳遞給正確的服務提供者。然而,基礎架構支持在不影響服務的客戶端的情況下由另一個服務實現替代原有的服務實現也是至關重要的。這不僅需要根據 SOA 原則指定服務接口,而且需要基礎架構允許客戶端代碼以獨立于所涉及的服務位置和通信協議的方式來調用服務。這樣的服務路由和替代是 ESB 的許多功能中的一部分。

            ESB 支持這些服務交互功能,并通過提供集成的通信、消息傳遞以及事件基礎架構來支持這些功能。因此,它將當今正在使用的主要企業集成模式組合成一個實體。ESB 為 SOA 提供與企業需要保持一致的基礎架構,從而提供合適的服務級別和可管理性、以及異構環境中的操作。

            本文剩余部分將討論 ESB 在 SOA 中的角色,包括除了基本的路由和傳輸以外,它所提供的的功能,如下面的 ESB 功能模型部分中所述。

            ESB 結構ESB 有時被描述為分布式基礎架構,這與其他的解決方案形成了對比,比如消息代理技術一般被描述為中心輻射型(hub-and-spoke)。然而,這并不是真正的差別。有兩個不同的問題正被研究:控制的集中和基礎架構的分布。ESB 和中心輻射型(hub-and-spoke)解決方案都集中控制配置,比如服務交互的路由、服務命名等等。同樣,這兩個解決方案可能部署在簡單的集中式基礎架構中,也可能采用更復雜的分布式方式進行部署。

            毫無疑問,不同的技術對它們所支持的物理部署模式有不同的約束--有些可能適合于非常廣泛的分布,以支持在很大的地理范圍內進行的集成,而其他的可能更適合于部署在本地群集中,以支持高可用性和擴展性。使物理分布需求與候選技術的功能相匹配是 ESB 設計的一個重要方面。另外的一種能力也是非常重要的,就是以增量方式擴展最初的部署來反映不斷變化的需求、集成附加的系統或擴展基礎架構的物理范圍。

            還應該在 SOA 基礎架構中 定位ESB 與其他組件之間的關系,特別是與 Service Directory、Business Service Choreography、以及 Business-to-Business (B2B) Gateway 這些組件之間的關系。由于上述 SOA 原則對這些組件并沒有嚴格的要求,所以可以將它們視為可選組件。

            ESB 需要某種形式的服務路由目錄(service routing directory)來路由服務請求。然而,SOA 可能還有單獨的業務服務目錄(business service directory),其最基本的形式可能是設計時(design-time)服務目錄,用于在組織的整個開發活動中實現服務的重用。Web 服務遠景在業務服務目錄和服務路由目錄的角色中都放置了一個 UDDI 目錄,因而使得可以動態發現和調用服務。這樣的目錄可以視為 ESB 的一部分;然而,在這樣的解決方案變得普遍之前,業務服務目錄可能與 ESB 是分離的。

            Business Service Choreographer 的作用是通過若干業務服務來組合業務流程;因此,它將通過 ESB 調用服務,然后再次通過 ESB 將業務流程公開為客戶端可用的其他服務。然而,Business Service Choreographer 在編排業務流程和服務中所扮演的角色確定了這種業務工作流技術是一種與基礎架構技術 ESB 分離的技術。

            最后,B2B Gateway 組件的作用是使兩個或多個組織的服務在受控且安全的方式下對彼此可用。這有助于查看這些連接到 ESB 的組件,但它們并不是 ESB 的一部分。雖然有一些網關技術可以提供適合于實現 B2B Gateway 組件和 ESB 的功能,但是 B2B Gateway 組件的用途是將其與 ESB 分離。事實上,這種用途可能需要附加的功能(如合作伙伴關系管理),這些功能不是 ESB 的一部分,并且不一定受到 ESB 技術的支持。
          posted @ 2006-03-09 10:16 hopeshared 閱讀(250) | 評論 (0)編輯 收藏

          僅列出標題
          共30頁: First 上一頁 18 19 20 21 22 23 24 25 26 下一頁 Last 
          主站蜘蛛池模板: 获嘉县| 蒙山县| 台南县| 鄂托克前旗| 华阴市| 乌拉特中旗| 思茅市| 汾阳市| 丁青县| 清水县| 沁源县| 邢台县| 尉氏县| 龙南县| 铜鼓县| 温州市| 乌兰浩特市| 枞阳县| 镇江市| 霍山县| 永安市| 阿拉善右旗| 巩义市| 柳林县| 读书| 马边| 定边县| 辽宁省| 和平县| 广西| 成武县| 油尖旺区| 施秉县| 闸北区| 宾阳县| 沽源县| 富锦市| 巴塘县| 班戈县| 建水县| 冕宁县|