JBI
定义了一种通过插接组件间交互传递中间消息(Mediated Message Exchange)的方式构建应用系统集成的架构方案。JBI中定义的消息交换模型基于WSDL2.0规范。
图1 JBI插件系统
图1展示了抽象层次的JBI插接组件概念,JBI为插接组件提供了特定的交互接口,插接组件也为JBI环境提供了特定的交互接口,组件与组件之间并不直接进行交互,相反的,如图2所示,JBI成为组件与组件之间交互的媒介。参与数据交换的组件间的分离对于解耦服务提供者和服务消费者是至关重要的,这也是通用的SOA架构,特别是应用集成解决方案所期望的。这种方式因消费者和提供者之间最小程度的纠缠从而保持了最大程度的灵活性,同时为JBI实现中的消息处理和监控提供了一种关键。同时也应该注意到的是,因为这种处理模式中固有的异步特征使得提供者和消费者之间从不共享一个线程,从而有助于保持组件间的松耦合。
图2 消息序列图
在这种基于WSDL的面向服务的架构模型中,JBI插接组件负责提供和消费服务。通过提供服务,一个组件为其他组件甚至是他自己提供了一种或多种处理功能(function),这些功能在WSDL2.0模型中定义为操作(operation),参与一种或多种消息的交换。WSDL规范中定义的四种基本的消息交换模型(Message Exchange Patterns,简称MEPs)清楚地定义了上述操作运行过程中消息的交换顺序。JBI组件间的交互遵循这四种消息交换模型。
JBI组件提供的任何服务,都由组件使用WSDL1.1或2.0规范进行描述,WSDL为基于XML的消息交换提供了一重抽象的,独立于特定技术的模型。WSDL也为服务消费者和JBI环境本身提供了一种声明额外的服务元数据的机制,组件可以通过JBI环境查询可用的WSDL描述的服务。
承载JBI插接组件的JBI环境称为“JBI框架”。插接在JBI框架中的这些组件能够为终端用户在应用系统集成过程中面临的问题提供通用的或标准的解决方案。这些组件可以分为两种不同的类型:
服务引擎既为其他组件提供了业务逻辑和数据转换服务,同时也消费此类服务。服务引擎可以集成基于Java的应用(和其他资源)或提供了Java API接口的应用。
绑定组件为JBI环境以外的服务提供了连通性,这些外部的服务既可能是某种协议的通信服务也可能是企业信息系统提供的服务(EIS资源)。绑定组件可以集成Java环境不能提供的远程访问技术的应用实现或资源。
服务引擎和绑定组件可以是服务提供者,服务消费者甚至两者兼具。服务引擎和绑定组件根据架构设计原则定义,但两者之间的差别完全是根据实际应用来决定的。业务处理逻辑和通信逻辑的分离降低了实现的复杂度并提高了适应性。
JBI除了为消息系统提升了组件互用性,同时也定义了一个基于JMX的管理框架。JBI为以下功能提供了标准的管理机制:
还要提到的一点是,JBI组件也可以认为是一种功能操作的容器,通过部署不同的服务描述信息提供新的服务消费者或者服务提供者逻辑。例如,一个提供基于XSLT转换服务的服务引擎可以部署不同的XSLT样式表描述信息,从而提供不同的转换功能操作。这种为特定组件提供操作功能服务描述信息的过程称之为“部署”(Deployment),用于区分组件的安装。JBI将一组描述信息及其关联信息的部署的集合术语化为服务集合(Service Assembly)。这些服务描述信息及其关联数据集在一些文献中称之为合成服务描述符(Composite Service Description [CSD])。
JBI定义的不是一个传统的应用程序模型,相反地, JBI通过将插接组件抽象为服务提供者和服务消费者而与面向服务的架构紧密结合来构建企业应用。该规范中定义的APIs和SPIs供开发人员开发插接到JBI环境中的服务引擎和绑定组件使用。
服务引擎(SE)是指提供业务逻辑处理,数据转换服务等的插接组件。
服务引擎根据其提供的功能类型,其外延是广泛的。特别的,一些SE可以作为处理容器,为用户提供特定的开发模型,例如:
绑定组件通过提供通信协议处理功能,使得JBI组件可以访问JBI环境以外的外部系统提供的远程服务,同时外部远程服务消费者可以访问JBI环境内部提供的服务。通信协议可以根据系统集成需求的不同而不同,典型的例子包括:
分享到:
相关推荐
通过以上内容的详细介绍,我们可以看出JBI规范为实现企业级集成提供了一套完整的解决方案,它不仅定义了统一的消息格式,还提供了强大的路由和管理功能,极大地促进了不同系统之间的通信与协作。
**JBI规范1.0概述** JBI规范1.0定义了基于WSDL的中间消息交换模型,强调组件间的交互通过JBI中介进行,确保组件间的独立性和松耦合。这种设计允许组件异步处理消息,有助于维持系统的稳定性和扩展性。通过这种方式...
**JBI规范中文文档** Java Business Integration (JBI) 是一个由Java Community Process (JCP) 定义的标准,具体是JSR 208,它为构建企业服务总线(Enterprise Service Bus, ESB)提供了框架。ESB是SOA(面向服务的...
### JBI规范1.0详解 #### 一、前言 《JBI规范1.0》作为一项重要的标准文档,详细地介绍了Java Business Integration (JBI) 的各个方面,旨在为开发人员提供一个全面且深入的理解框架,以实现企业级集成解决方案。 ...
### JBI规范与ESB资料的关键知识点 #### 一、JBI规范概览 **1.1 定义** JBI(Java Business Integration)规范是由Java Community Process (JCP)组织发布的一套标准,旨在为Java平台上的业务集成提供统一的框架。...
JBI(Java Business Integration)是JSR 208规范定义的一种用于集成服务和服务之间的消息传递标准。它提供了一种标准化的方式,使得不同的服务能够通过消息交换来相互沟通。JBI的核心组件包括: - **NMR(Non-...
- **概述**:Apache Tuscany是一个开源项目,致力于实现SCA规范,支持多种编程模型和服务交互。 - **官网**:[http://tuscany.apache.org](http://tuscany.apache.org) 2. **OpenESB** - **概述**:OpenESB是...
3. **JBI容器**:实现JBI规范的服务总线,为整个ServiceMix架构提供核心支撑。 #### 五、安装配置ServiceMix 3.1 ServiceMix 3.1的安装配置相对简单,但需注意以下几点: - **环境准备**:ServiceMix 3.1需要Java...
- **规范化消息**:所有进入 ESB 的消息都必须转换成一种标准化格式,这有助于简化消息处理过程。 #### 六、ServiceMix ServiceMix 是 Apache 软件基金会下的一个开源项目,它实现了 JBI 规范,并提供了一系列的...
- **区别**:ESB通常指代的是实际的产品或解决方案,而JBI则更偏向于一种规范或者说是框架,用于指导如何构建和实现ESB系统。 ### 主流商业与开源ESB一览 在当前市场中,存在多种类型的ESB产品,既包括商业版也...
- **ServiceMix简介**:ServiceMix是一款开源的企业服务总线(ESB),基于Java Business Integration (JBI) 规范构建,用于实现企业级应用和服务的集成。它是Apache软件基金会的一个顶级项目。 - **安装步骤**: -...
- 遵循JAX-WS规范。 - **编程模型**: - 支持多种编程模型,包括JAX-WS API和Simple Frontend。 - 支持WSDL优先和代码优先开发模式。 - **易用性**: - 提供直观的API,便于快速构建代码优先的服务。 - 与Spring...
### CXF框架开发WebService概述及代码 #### WebService概念与CXF框架 WebService技术使得不同系统之间能够通过网络进行通信,而无需关心底层的具体实现细节。这种基于HTTP协议的组件服务,强调的是分布式应用程序...
- **SOAP 1.1/1.2, WS-I Basic Profile, WS-Security, WS-Addressing, WS-RM, WS-Policy**:这些是WebService的核心协议和规范。 - **WSDL 1.1**:WebService定义语言,用于描述服务的接口。 - **MTOM**:用于优化...