現在,回過頭來看看今天的Web services。在Web services出現之前,對于很多企業應用來說,使用面向消息的中間件系統或者MOM實現異構系統之間的通信已經足夠了。Web services的出現同樣是處于這個目的。用MOM的基于消息的架構和Web services很類似,被服務的數據也能在應用之間進行無縫操作。
這種場景可以被應用到典型的J2EE環境中,并通過JMS或JAX-RPC等技術進行服務。這種做法對簡單部署是可行的,但正如前面提到的,當進行很復雜的設計時,現有的容器則顯得很難用。于是JBI試圖解決這個問題。
JBI提供了一種正規消息路由器(Normalized Message Router,NMR),說白了,就是一個地點。在這個地點,所有基于消息的數據片段——SOAP片段、MOM消息、HTTP數據或其它信息——被聚合、集中、應用到業務邏輯、傳輸,如果有必要則被轉換成其它格式并隨后被分派到最終目的地。
先前的描述說明了為什么JBI被稱為ESB。它很適合企業級應用,因為它通過一種總線型架構的基于消息的手段到達了適應大范圍的消費者和提供者的目的,F在,讓我們看看除了NMR還有什么構成了JBI。
和JBI環境直接交互的是兩個部分,JBI machine和JBI binding。JBI machine定義了部署構件以及在環境中管理它們的方式。本質上,它是提供商設計的黑盒,用于在JBI中支持他們自己的模型。另一方面,JBI binding則被環境通過專門的業務協議與外部世界進行通信。