程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JBI-Java 實現 SOA 的標准途徑

JBI-Java 實現 SOA 的標准途徑

編輯:關於JAVA
  本文簡短地闡述了即將到來的與 SOA (面向服務體系)規范及 ESB (企業服務總線)基礎架構有關的 JBI ( Java 業務集成)標准。業界正在廣泛尋求解決 B2B 以及 EAI (企業應用集成)所存在問題的方案。這些方案不同於基於 JMS 手段的面向消息中間件技術和 Web 服務技術。

  面向服務體系

  SOA (面向服務體系)是近期推動應用和業務集成領域產生巨大飛躍的新技術之一。 SOA 定義了一系列詳盡的體系規范、范例和實現應用程序間進行松散耦合交互的最佳准則。

  SOA 基於定義明確的接口,促進多個應用程序間的松散耦合交互。服務的實現是獨立的,且不依賴上下文信息以及其他服務的狀態。服務間數據交換主要基於文本類型的格式,使用基於標准的消息模型。服務自身並不知道服務提供者和服務消費者之間傳輸級的通訊交互。

  盡管不是強制要求,當今大部分流行的基於 SOA 的系統都利用了 Web 服務以及近似技術為服務間交互提供必要的管道管理。 WSDL ( Web 服務定義語言)扮演了主要的通訊模型角色; SOAP 扮演了消息承載協議、 HTTP 扮演了網絡傳輸協議。當然,這並不意味著你必須利用上述技術實現基於 SOA 的系統。另外,有些術語之前就已經存在了,所以很多企業已利用類似的體系實現了系統的松散耦合交互。不管怎樣,主要的不同點在於我們現在已經有標准協議、工具集和軟件了,使面向服務體系更健全。

  SOA 原則與面向對象范式、原則有著顯著不同。主要不同在於服務間交互的接口被定義了更多面向數據的行為。一個孤立的服務也許會采用面向對象原則和技術,但是,服務之間的交互很少采用這些手段。相反,這些接口更適合於基於文檔的交換。面向對象的行為是綁定數據,而面向服務從行為中分離數據。

  企業服務總線

  ESB (企業服務總線)為面向服務體系提供了基礎架構。通過設計工具定義服務間交互和規則, ESB 為部署和發現服務提供了運行時環境。

  esb

  在 ESB 的世界中,服務不會直接彼此交互。“ ESB 運行時”作為一個仲裁者在服務間松散的耦合它們。“ ESB 運行時”將實現協議綁定、消息傳輸、消息處理,等等。

  一個服務總線將包括下列關鍵項:

  ·為服務提供傳輸綁定

  ·定義和發現已部署服務

  ·在服務間基於規則的路由和編排消息

  ·包括文檔傳遞在內的增值服務等

  大部分的 ESB 提供商基於自己的 SOA 提議來開放標准和技術,包括多種 Web 服務標准和協議。他們提供多種調用服務的傳輸綁定,包括 HTTP 、 FTP 以及 JMS 等等。大部分 ESB 用戶利用 WS-BPEL ( Web 服務的業務流程執行語言)來了解已部署服務之間是如何實現業務流程的。 ESB 提供商同時也提供服務質量特性,包括容錯、故障轉移、負載平衡、消息緩沖等等。

  Java 業務集成

  JBI ( Java 業務集成)的提出是基於面向服務體系提倡的方法和原則,為了解決 EAI 和 B2B 若干問題的 Java 標准。當前版本( 1.0 )是 2005 年 8 月通過的 JSR ( Java 規范需求) 208 定案。商業和開源界都歡迎 JBI 成為他們 ESB 產品的集成標准。

  基於仲裁者體系

  JBI 定義了基於插件方式的架構,以便服務能融入“ JBI 運行時”環境。 JBI 提供了詳細的接口,使服務能與“ JBI 運行時”環境交互。這些服務要為“ JBI 運行時”環境暴露接口,以便“ JBI 運行時”環境為服務路由消息。“ JBI 運行時”環境在部署在 SOA 環境中的服務間扮演仲裁者的角色。

  jbi

  在同一 JVM 中,“ JBI 運行時”核心主要包括如下組件:

  ·組件框架:組件框架把不同類型的組件部署到“ JBI 運行時”。

  ·歸一化消息路由器:歸一化消息路由器利用標准機制實現服務間消息交換。

  ·管理框架:管理框架基於 JMX 進行部署、管理以及監控“ JBI 運行時”中的組件。

  組件模型

  JBI 在“ JBI 運行時”環境中定義了兩種組件:

  服務引擎組件:該組件負責實現業務邏輯和其他服務。服務引擎組件在其內部可使用多種技術和設計模式。服務引擎組件可提供數據傳輸和轉換這種簡單的基礎服務,也可實現像 WS-BPEL 實例一樣復雜的業務處理。

  綁定組件:綁定組件主要為已部署服務提供傳輸級綁定。綁定組件有多種類型:

  ·利用標准傳輸協議與外部系統進行遠程通訊。

  ·使已部署服務能在同一個 JVM 內部相互調用。

  ·服務間可使用標准的 WS-I ( Web 服務協同工作組織)規范通訊。

  JBI 的關鍵是分離服務引擎和綁定組件,以便業務邏輯不被下面的具體細節所干擾。這種方式促進了體系的靈活性和可擴展性。綁定組件和服務引擎組件在 JBI 內部都可以是服務提供者和 / 或服務消費者。

  綁定組件和服務引擎組件為“ JBI 運行時”提供接口以便從“ JBI 運行時”接收消息。同樣的,它們也利用 JBI 提供的接口來和“ JBI 運行時”通訊。

  消息傳輸模型

  JBI 利用消息傳輸模型分離服務提供者和服務消費者之間的耦合。消息傳輸模型利用了 WSDL 。 WSDL 用於描述暴露的服務引擎組件和綁定組件的業務處理。另外, WSDL 也用於定義抽象服務處理的傳輸級綁定。

  JBI 架構中一個關鍵組件是 NMR (歸一化消息路由器,也譯作“正規消息路由器”)。 NMR 基於 WSDL 提供了主要的消息傳輸中樞, NMR 為部署在“ JBI 運行時”中的服務引擎組件和綁定組件間的消息傳遞提供松散耦合。服務需要有聚合業務處理的接口,每個業務處理由零個或多個消息組成。而一個接口有一個或多個傳輸級綁定。

  “ JBI 運行時”利用歸一化格式描述消息。一個歸一化消息由以下部分組成:

  ·消息屬性

  ·消息有效載荷

  ·消息附件

  利用 NMR , JBI 規范為服務提供者和消費者的消息交換提供標准接口。 NMR 支持服務生產者和消費者之間單向模式和服務響應模式的調用。

  管理

  JBI 利用 JMX 實現運行時的服務安裝、配置和監控。服務必須實現 JBI 接口集,以便這些服務在 JBI 環境中是可管理的。 JBI 環境必須提供一套 JMX MBeans 實現“ JBI 運行時”的管理。

  “ JBI 運行時”環境允許服務引擎組件和綁定組件的相關操作如下:

  ·安裝組件:使組件接口可使用歸一化消息路由器。

  ·安裝 artefact 組件:這將允許已部署的 artefacts 組件獲得與已安裝組件同樣的機能。例如,可以部署一個“連接服務”來提供具體的數據庫連接。

  啟動、停止服務以及進行相關服務分組。

  JBI 為組件及 artefact 組件定義了標准的部署描述符以及打包模型。

  角色

  JBI 為基於 JBI 的端到端 EAI 解決方案定義了如下角色:

  ·引擎開發者:引擎開發者提供遵循 NMR 和管理約束的服務引擎組件。

  ·綁定開發者:綁定開發者提供遵循 NMR 和管理約束的綁定組件。

  ·JBI 環境提供者: JBI 環境提供者為“ JBI 運行時”使用 J2EE 1.4 或 J2SE 1.4 或更新的平台提供支持。

  ·J2EE 平台提供者: J2EE 平台提供者把“ JBI 運行時”作為提供應用程序服務的一部分。

  ·JBI 應用程序開發者: JBI 應用程序開發者利用服務引擎組件、綁定組件以及 JBI 環境構建 JBI 應用程序。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved