本文简短地阐述了即将到来的与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提供商基于自己的SOA提议来开放标准和技术,包括多种Web服务标准和协议。他们提供多种调用服务的传输绑定,包括HTTP、FTP以及JMS等等。大部分ESB用户利用WS-BPEL(Web服务的业务流程执行语言)来了解已部署服务之间是如何实现业务流程的。ESB提供商同时也提供服务质量特性,包括容错、故障转移、负载平衡、消息缓冲等等。
[1][2][3]