[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 编程技术 > Java > 正文
 

重造Java ESB:细述JBI与ServiceMix (1)

作者:Daniel Rubio 来源:IT专家Java技术 (2005-11-25 10:51:47)

Java的进展都是围绕着JSR形式的规格说明书进行的。最近,这个家族中又新添了一个成员,那就是JBI(Java Business Integration)。它是一种企业服务总线(Enterprise Service Bus,ESB),用于形成一种关键基础设施片段,使我们能够用Java实现面向服务的架构。我们将在本文中探讨JBI有关概念以及一种名为SeviceMix的开源实现。

JBI的主要目的是提供一个基于服务的平台作为对现有Java/J2EE平台功能的扩展。由于Web services已经实际应用于J2EE中,而且ESB和SOA等术语与其说是技术推动力倒不如说更是市场概念,所以让我们一起来深究一下到底什么是Java/J2EE中所谓的“基于服务的平台”。

当前的J2EE部署都运行在一个基础上,那就是应用服务器。应用服务器本身由两个独立的部分组成——Servlet容器和EJB容器,它们分别用于部署JSP/Servlets和EJB构件。在它们中的任何一个,你都能使用Web services。但是,在任何环境中以分散的方式使用services是很困难的工作,而JBI的目的就是为完成这个任务提供一个专门的环境。

JBI的最底层是一个容器,它与J2EE中的容器一样定义了自身的部署构件。在我们深入之前,让我们先详细了解一下JBI的主要构想。

首先,它关注了Web services的核心部分:在终端之间传输的SOAP 消息/信封。这种数据段或标记能够包含被服务于很多应用的信息。不仅如此,根据发送端或接受端的不同,它还能协助把某个业务逻辑与数据适配。

现在,回过头来看看今天的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。它很适合企业级应用,因为它通过一种总线型架构的基于消息的手段到达了适应大范围的消费者和提供者的目的。现在,让我们看看除了NMR还有什么构成了JBI。

和JBI环境直接交互的是两个部分,JBI machine和JBI binding。JBI machine定义了部署构件以及在环境中管理它们的方式。本质上,它是提供商设计的黑盒,用于在JBI中支持他们自己的模型。另一方面,JBI binding则被环境通过专门的业务协议与外部世界进行通信。
(http://www.fanqiang.com)



 
 相关文章
Solaris 8 新增功能一览--(1)IPv6,LDAP,Java增强 2001-06-13 10:08:01
JAVA入门教程: 第 一 章  Java概述 2001-04-16 15:07:00
JAVA入门教程: 第 二 章 数 据 类 型 2001-04-16 15:08:15
JAVA入门教程: 第 三 章 运算符和表达式 2001-04-16 15:09:16
JAVA入门教程: 第 四 章 流 控 制 2001-04-16 15:10:00
JAVA入门教程: 第 五 章 数 组 2001-04-16 15:10:37
JAVA入门教程: 第 六 章 对 象、类、包和接口 2001-04-16 15:11:52
JAVA初学常见问题 2001-04-16 15:13:54
Java及Web应用(一) 2001-04-21 17:19:33
Java及Web应用(二) 2001-04-21 17:22:26
基于java servlet技术的留言簿 2001-04-21 17:36:45
Javascript源码:计算器 2001-05-19 08:42:55
Javascript源码:时间按钮 2001-05-17 14:26:12
Javascript源码:只显示当前日期 2001-05-17 14:28:10
Javascript源码:显示当前日期与时间 2001-05-14 16:45:08
JAVA Servlets简介 2001-05-30 12:10:00
很棒的JavaScript!!(弹性) 2001-06-03 10:08:00
Forte for Java简介与基础安装 2001-06-07 14:08:00
Java编程技巧(信号量,管道) 2001-06-08 15:00:00
JAVA的网络功能与编程 2001-06-26 14:08:00
 

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com