ESB核心功能及使用场合

    ESB是达到终点的手段,而不是终点本身。

1. ESB核心功能:

    (1) 协议适配器

    也被称作组件或服务,让ESB可以轻松地与基于HTTP,FTP,POP3/SMTP(电子邮件)和文件系统等通信协议的

    传输方式对接。ESB适配器通常要么用作服务器端,要么用作客户端。例如,可以设置好一个HTTP监听器/消费

    者来接受传入的请求或是作为客户端向外发送HTTP请求。下面给ServiceMix定义一个HTTP客户端适配器的

    XML配置文件示例:

              role="provider" locationURI="https://localhost:8193/Service/">
         
               
         

   

    (2) 面向消息的中间件

    基于Java的ESB使用JMS,而通常JMS被直接嵌入到ESB应用程序当中。JMS支持两种消息传递模型或通道:发布

    /订阅(pub/sub),以及点对点。两者的区别是:

    A. 在pub/sub模型中,多个消费者(订阅者)可以订阅并接受发布出来的消息;

    B. 在点对点模型中,队列的方式使用更加普遍,因为通常不希望给定消息被多次处理。

    (3) 基于XML的消息传递

    (4) 智能路由和分发

    ESB使用的路由规则根据消息的内容而有所不同(即动态的),或者也可以使用固定管线模式静态的建立路由。常

    见的实现ESB路由的不同方法:

    A. 处理管线

    B. 路由票

    C. 中央路由器

    D. 基于内容的路由

    E. 基于组件的路由

    分发:是将消息拆分到多个消息通道或挂起时基于某种条件聚合消息。

    (5) 消息转换

    (6) 任务/定时器

    (7) 服务质量/Web中介

    (8) 监控和管理

    (9) 可扩展的API

2. 适用ESB的场合:

    (1) 服务化:有明确的业务需要,需要整合应用程序;

    (2) 服务虚拟化:指的是能够逻辑定义抽象的服务端点,而不是使用实际物理地址的能力;

    (3) 异步通信: 应用程序位于不同主机或不在同一个Domain时;

    (4) 协议桥接: 应用程序采用不同的协议进行访问。

3. 不适用个ESB的场合:

    (1) 服务编写:至按照某种特定的协议来编写服务,然后让ESB去操心可能存在的协议桥接问题;

    (2) 协同与ESB:BPM的协同旨在传达一种视觉上可以理解的,甚至领域专家可以修改的业务流程;而ESB的数据

    流转是一种供开发人员使用的工具,用来简化创建多步操作的工作。因此,ESB的数据流转功能应该只用在简单的

    系列 步骤上,而不用作为BOM协同的替代。

    (3) 同步的高通量分布式处理

    总之,ESB是实现SOA的有一个技术工具,不过SOA不只是技术,还包括治理,流程甚至文化!

4. EAI与ESB的区别

    (1) 架构思想

    EAI产品是基于hub-and-spoke的model,而ESB是bus-based的model.

    Hub-and-spoke是Centralized的架构,所有数据的搅浑有一个hub或者broker处理;而bus model使用的是

    分布式的架构思想,ESB的功能可以由若干戈不同的的功能合作实现。

    (2) 实现标准

    EAI产品,如:WebSphere Message Broker, TIBCO BusinessWorks, and Sonic XQ都是基于专利技术实

    现消息功能和转换逻辑(不过新版的这些产品也已经采用了bus model);ESB基于开放标准:JMS,XML,JCA,

    Web Service.

你可能感兴趣的:(SOA/SCA/SDO)