用于企业服务总线的类 USB 通用端口类型,第 3 部分: 通用端口的优势

了解用于 ESB 的通用端口的诸多优势

在第一期(本系列的第 1 部分)中,我们了解了当前可用的企业服务总线 (ESB) 的基本功能。在第 1 部分中,还了解了目前可用的 ESB 在使用中的一些难题。在第二期(本系列的第 2 部分)中,我们了解了用于 ESB 的通用端口类型的一些新概念,以及如何实现通用端口。通用端口为当前 ESB 用户遇到的许多问题提供了解决方案。通用端口的工作原理类似于计算机的 USB 端口,USB 将各种类型的设备连接到计算机。类似地,通用端口可用于将任何应用程序连接到 ESB,并间接地连接到其他应用程序。这些应用程序可以采用不同形式的服务来公开其部分或全部功能,并且仍然保持使用单一端口类型。在这一期(本系列的第 3 部分)中,我们将了解通用端口的诸多优势。

Dr. Waseem Roshen, IT 架构师, IBM

Waseem Roshen 博士是俄亥俄州哥伦布市 IBM Global Business Services Enterprise Architecture and Technology Center of Excellence 的一位 IT 架构师。他致力于企业体系架构和集成方面的工作。他还是一位 Sun 认证的 J2EE 架构师,已经发表了 60 篇文章,并获得了 24 项专利。



2012 年 3 月 19 日

简介

企业服务总线 (ESB) 提供了有效的途径来彼此连接应用程序,并共享数据和功能。这些应用程序可以采用不同形式的服务来公开其部分或全部功能。图 1 展示了当前可用的 ESB 的这种特点。在这张图片中,需要注意的最重要的一点是,每个应用程序都使用一种特定的端口类型连接到 ESB。换句话说,每种端口类型都适用于一种特定类型的应用程序,此类应用程序将使用特定的通信协议和消息/数据格式类型来公开其功能。

图 1. 应用程序使用特定端口类型连接传统 ESB
应用程序使用特定端口类型连接传统 ESB

在第一期(本系列的第 1 部分)中,我们了解了当前可用的、使用特定端口类型的 ESB 的部分常见问题。这些问题和难题包括一个应用程序使用多种通信协议、一个应用程序切换应用程序、将 ESB 的用途扩展到新通信协议、针对大量应用程序的可伸缩性,以及 ESB 的一般维护和更新。

为了克服当今 ESB 的这些缺陷,第二期(本系列的第 2 部分)中介绍了一种新的 ESB 类型。这种新的 ESB 类型采用单独一种适合大多数或全部应用程序类型的通用端口类型,如图 2 所示。这能消除为每种新类型的应用程序开发和部署新端口类型的需求,并能促成更出色的代码重用。

图 2. 应用程序使用单独一种端口类型(通用端口)连接到 ESB
应用程序使用单独一种端口类型(通用端口)连接到 ESB

为了理解通用端口类型的概念,采用同一种计算机硬件(例如 PC)进行类比将大有裨益。在 USB 端口出现之前,为了将各种不同的设备(例如打印机、闪存或移动硬盘)连接到计算机,计算机需要具备不同的端口类型。每种端口类型都适用于一种特定的设备类型。因此,要将打印机连接到计算机,则必须在计算机中构建一种特定的端口类型。类似地,计算机必须提供不同的端口类型来连接额外的硬盘驱动器。然而,随着近来 USB 端口的出现,为每种设备类型使用独立端口类型的需求已经不复存在,如今,几乎任何设备均可使用一种称为 USB 端口的端口类型连接到计算机。

这种采用通用接口的新型 ESB 提供了超越传统 ESB 的诸多优势。部分此类优势非常注重 ESB 方面,而其他一些优势则注重连接应用程序方面。在下一节中,我们会先探讨 ESB 方面的优势。

ESB 方面的优势

在 ESB 方面,使用通用端口的最重要的优势如下:

简单性

在 ESB 中实现了通用端口之后,大多数 ESB 用户均将看到在 ESB 使用方面的显著简化。这种简单性主要源于通用端口 配置的简化。由于各端口背后的代码都可能是相同的,因此惟一重要的配置要素就是将通用端口与运行 ESB 的机器或计算机上的端口相关联。当前几乎所有端口都是自定义端口,而且端口类型的增长是无序的,与这种情况相比,使用通用端口是一种非常明显的改进。还有必要注意的是,与现有 ESB 端口组件相比,通用端口 是一种极为轻量级的组件。通用端口的惟一目标就是确定连接应用程序所用的通信协议,随后将请求转发至 ESB 主体内恰当的协议处理程序,如图 3 所示。

图 3. 作为一种轻量级的组件,通用端口的大部分处理均在 ESB 主体内完成
通用端口是一种轻量级组件

易扩展性

可以轻松扩展 ESB 来服务新通信协议。实际上,它使您可以通过下载代码、向 ESB 注册新协议来安装新的协议处理程序。为了理解这种可扩展性,请考虑通过 USB 端口连接一个新硬件设备的类比。称为驱动程序的代码通常是从一个网站中下载并进行注册的。类似地,这就是使用 ESB 端口时开始使用一种新协议所需具备的一切。

代码重用性和易于维护与更新

在新模式中,各协议都有一份代码副本位于 ESB 主体之中。这与当前的 ESB 实现形成了鲜明对比,当前 ESB 实现中,针对每种协议的代码属于单独的 ESB 端口,相同代码的多份副本可存在于不同 ESB 端口之中。因此,通用端口能够提供更高的代码重用性。这样的代码重用将带来更为一致的 ESB 行为。此外,由于代码只存在于单独一个位置,因此更易于维护和更新。

可伸缩性

由于在 ESB 上配置端口的过程得到了极大的简化,因此可以轻松快捷地配置大量端口。这将允许大量多种类型的应用程序连接到 ESB,从而在可集成的应用程序的类型和数量方面实现极高的可伸缩性。通用端口的使用也在对 ESB 的调用数量方面带来了运行时可伸缩性。这种类型的可伸缩性之所以能够实现,是由于各协议处理程序将作为 ESB 主体的一部分,每种协议处理程序可以有多个实例,每个此类协议处理程序都可被多个通用端口重用。

应用程序方面的优势

(在连接应用程序方面)使用通用端口的最重要的优势如下:

无需更改代码

引入通用端口时,不需要对当前连接到 ESB 的应用程序做出任何重大修改,甚至完全不需要修改。这是一项非常显著的优势,因为从传统 ESB 过渡到采用通用端口的新 ESB 类型时,可以在应用程序注意不到变化的情况下完成过渡。

使用任何协议的自由

通常情况下,应用程序的运行时环境仅允许应用程序单向/使用一种协议连接到 ESB,而这种协议必须与 ESB 给定端口上可用的协议匹配。举例来说,为了使一个应用程序能够使用 MQ 作为传输机制,必须在运行应用程序的机器上安装某个版本的 MQ。使用通用端口将允许一个应用程序使用运行时环境允许的任何协议,应用程序协议与 ESB 端的协议相匹配的问题不复存在。这也能减少应用程序端的部分运行时需求。

切换协议的便捷性

在 IT 世界中,需求可能会频繁发生变化。此外,还有可能出现新的需求。具体来说,变化的需求可能要求更改应用程序用于连接至 ESB 的通信协议。此类新增或变化的需求的示例包括:有关事务、安全性、可靠性和持久的新需求。通过使用通用端口,可以让应用程序能够极为轻松地随时切换协议,因为 ESB 端不需要任何更改(或者仅需更少的更改)。

应用程序使用多种协议

一个应用程序的不同组件/部分使用不同的协议与 ESB 和其他应用程序进行通信并不少见。例如,大型机上运行的遗留 (COBOL) 应用程序的不同部分常常会使用不同的协议,例如 Web 服务、MQ 或网关等。通用端口的使用允许应用程序的不同部分使用相同的计算机端口连接到 ESB。这有助于简化此类连接的配置。

结束语

在这一期(本系列的第 3 部分)中,我们已了解到,与采用特定于通信协议和消息格式类型的端口的传统 ESB 相比,采用通用端口的新型 ESB 有着许多的优势。部分此类优势注重 ESB 方面,而其他一些优势则注重连接应用程序方面。

有关采用通用端口的新型 ESB 的系列文章至此结束。在本系列的第 1 部分中,我们了解到,当前可用的 ESB 采用了特定于通信协议和消息格式类型的端口,这样做存在许多相关问题。在本系列的第 2 部分中,您学习了通用端口的概念以及如何实现这些通用端口。最后,在本系列的第 3 部分中,我们了解了使用通用端口类型有着诸多优势,无论是在 ESB 方面还是在连接应用程序方面。有必要说明的是,IBM 在这个领域拥有正在申请的专利,您可以在这些专利申请中找到有关本文所述概念的更多细节。

参考资料

学习

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services
ArticleID=806135
ArticleTitle=用于企业服务总线的类 USB 通用端口类型,第 3 部分: 通用端口的优势
publish-date=03192012