JBI及相关组件理论
1. Java Business Integration(JBI)
???? JBI定义了集成系统的一种架构,基于面向服务的思想,通过Router在组件之间交换Normalized Message.
???? Application分成松散耦合的功能单元,这些功能单元被部署至拥有JBI环境的JBI组件中。JBI环境提供了在
???? JBI组件之间的消息规范化和Mediation. 主要有下面关键部分组成:
???? The Component Framework???? The Normalized Message Router???? Management Structure2. The Component Framework
???? The Component Framework是JBI组件插入ESB的基础结构。The Component Framework将JBI组件按照
???? 各自的功能分成两种类型的组件:Service Engine, Binding Component.The Component Framework也定
???? 义了一个打包机制用于部署Functional Unit至JBI组件中。
?
???? JBI定义的打包模型中的每种类型那个的Package是一个ZIP归档文件,该文件包含一个JBI描述符位于:
???? META-INF/jbi.xml.每个Package之间的区分是通过JBI描述符中的Root Element来实现的。JBI提供了四种
???? 类型的的Package用于安装和部署,常见的两种是:
???? (1) Service Asssembly
???? Service Unit的集合。JBI描述符的Root Element是service-assembly元素。Package的内容是包含Service
???? Unit的ZIP格式归档文件的集合。JBI描述符指定每个绑定的Service Unit的目标JBI组件。
???? (2) Service Unit
???? 包含部署至JBI组件的一个功能包。
???? Service Unit在没有组织进Service Assembly时是不能被安装的。
?
???? 当多个Service Unit被配置后,JBI组件将实现Service Unit中描述的功能,此时JBI组件有以下的角色:
???? Service Provider???? Service Consumer3. The normalized message route
???? The normalized message route是一个Bus,用于在部署至ESB 上的Endpoint之间穿梭Message. JBI组件彼
???? 此之间不发送消息,而是将消息传输给NMR, NMR负责分发消息至正确的Endpoint.
?
???? NMR使用基于WSDL的消息模型调停JBI组件之间的消息交互。使用基于WSDL的模型提供了必要的层次抽象
???? 可以确保JBI组件完全松耦合。有四种消息交互的模式:
???? in-out???? in-optional-out???? in-only???? robust-in-only???? Normalized messages: 为了完全松耦合消息的交互,JBI使用Normalized messages。一个Normalized
???? messages用于展示在NMR上传输的所有消息数据,包含:
???? meta-data, properties
???? payload
???? attachments
???? security Subject
???? JBI binding components负责规范化所有的消息,然后放至在NMR中;Binding components 规范化来自外
???? 部源的消息然后传递给NMR,同时Binding components也反“规范化”消息为适合的格式被外部源使用。
4.? Management Structure
???? JBI环境通过JMX进行管理,提供了许多Ant Task进行自动化管理常见管理任务。
???? 有四种类型的组件可被安装至JBI环境:
???? JBI components???? Shared libraries???? Service assemblies???? Service units???