在ESB中选择路由还是编配?

介绍

如今,企业服务总线是一个有用的解决方案,这一点毋庸置疑。它和一组工具相结合一起解决了应用与服务集成领域的实际问题。但是,它们给不熟悉它们的使用者所带来的轻微不便却和工具箱一样。那些使用者知道问题的解决办法肯定在箱子内,但却不知道解决问题的工具是哪个!

从企业服务总线到路由问题

ESB涉及多个应用领域,包括实现信息系统范畴的面向服务架构(SOA)。但它们的基本目的都是为了简化应用和服务的集成——简而言之就是让一个应用或服务去调用另一个应用或服务。这种非常简单和平凡的事业有各种额外的复杂级别:

“路由”,发生在不止有一个服务、而是存在多个发出调用的源服务及多个供选的目标服务时;

“协议桥”,发生在服务被暴露于另一个协议之上、属于其他服务器、或甚至属于其他信息系统时;

“转换”,发生在服务消息没有相同数据格式的时候——这是惯例而非意外。

它们三个:路由、协议和转换都有不少近亲,虽然如此,但是它们三个仍被认为是主要的ESB概念。在本文中,我们将关注第一个,以及它如何关联到它的一个近亲:编配。在此先对它们进行一个简短介绍,我们认为路由从根本上说是低级别的,它在ESB核心之中或附近,且依赖技术配置(如服务部署描述符)来提供与消息必须被发到的目的地相关的技术决策。编配可被看成是将多个服务调用组合为高级、更有用的组合服务的过程,但它也通常被打上了“业务级”的印记,此时它代表了跨应用和信息系统实现结合了特定业务服务的业务级流程的缩写。

路由与编配的对决:既不是“一边倒”,也不是“黑白”世界

那么,在ESB中是如何处理编配需求的呢?看上去使用一个配备有中间件解决方案的编配引擎更符合逻辑。可是,这是个没法简单回答的复杂问题。让我们考虑如下例子。

显示一个项目(item)列表

“ItemManager”应用用于通过创建、更新、删除等操作对项目进行管理。一个“ItemManagementListener”服务连接到了这个应用上,它负责在项目被更新时发布通知。

另一个应用:“HammerMonitor”是一个监测工具,用于显示锤子相关项目的更新信息。这个应用暴露了一个“HammerMonitor”服务,它包含了一个接收这些通知的“显示(display)”操作。

这两个服务都暴露给了一个ESB。我们的目的是想让HammerMonitor显示ItemManagement应用知道的锤子相关的项目信息。

为了让ItemManagementService连上HammerMonitorService,我们需要配置若干ESB连接器(connectors)(所谓的“绑定组件”)。一个连接器被链接到ItemManager应用,另一个被链接到HammerMonitor应用。

此外,跟HammerMonitor链接的连接器被配置成在ESB内部暴露一个名字为“hammerMonitorService”的端点(endpoint)。于是,实现我们目标的一种简单方法就是对ItemManager所链接的连接器加以配置,使它在每次收到来自 ItemManager的消息时就在ESB内部调用端点“hammerMonitorService”。


可是,正如现实世界经常发生的那样,我们假设这两个服务拥有不同数据的格式。这对SOA并不构成障碍,因为SOA定义了一个松耦合的架构(即,服务消费者并不必须符合服务提供者定义)。

ItemManagement应用向ItemManagementListenerService提供了以下消息:

<items>
  <item type="Hammer" name="hammer1"/>
</item>

而ItemMonitorService的“显示(display)”操作使用以下格式:

<hammers>
  <hammer hammerName="hammer1"/>
</hammers>

这时,只是简单地进行调用并不能把两个服务链接起来。ItemManagement应用提供的数据必须首先经过转换。这实际上是一个非常简单、局部的编配需求,跟业务级没有任何关系。

解决这个问题的第一种方法是,使用一种常见、知名的编配解决方案,如成熟、外部部署、支持BPEL的编配引擎[2]。这种方法可以行得通,但是用在这个例子中就好比杀鸡用牛刀:要么所有被转换消息必须经过一个集中、远程的编配引擎,这种方式类似过时的“集线器(hub)”集成架构;要么就必须在每个节点都部署一个编配引擎——对于这个简单问题来说,这种解决方案显然过于复杂了。

时间: 2024-09-28 11:31:04

在ESB中选择路由还是编配?的相关文章

【ASP.NET Web API教程】4.1 ASP.NET Web API中的路由

原文:[ASP.NET Web API教程]4.1 ASP.NET Web API中的路由 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 4.1 Routing in ASP.NET Web API 4.1 ASP.NET Web API中的路由 本文引自:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api

使用准则进行条件查询--1.4.从窗体中选择查询的条件

4.从窗体中选择查询的条件 前面的方法虽然简单,但对用户来说操作不够方便,对设计者来说也难以控制,如果通过窗体来实现,这些问题就可以解决了. 如下面的窗体,运行时用户可以在组合框中选择要查询司机的姓名,按下查询按钮就可以看到查询的结果. 下面详细地列出设计的步骤: 创建一个窗体,按下控件向导按钮,在窗体上添加一个组合框.在第一个对话框中选择"我想让组合框在一个表或查询中查找这些值",下一步. 选择一个为组合框提供数据的表或查询.下一步. 选择组合框中要显示的数据,通常除了选择要显示在组

DataGrid常见解决方案(三)--在DataGrid中选择,确认,删除多行复选框列表

datagrid|复选框|解决 在DataGrid中选择,确认,删除多行复选框列表 Selecting, Confirming & Deleting Multiple Checkbox Items In A DataGrid (i.e. HotMail & Yahoo) Introduction Although I don't have either a Hotmail or Yahoo email account, I do have friends that do, and I ha

如何在Word 2013中选择打印机

如果用户的电脑中安装有多台打印机,在打印Word2013文档时就需要选择合适的打印机,操作步骤如下所述: 第1步,打开Word2013文档窗口,依次单击"文件"→"打印"命令,如图2013080701所示. 图2013080701 单击"打印"命令 第2步,在打开的"打印"窗口中,单击"打印机"下拉三角按钮.在打印机列表中选择准备使用的打印机即可,如图2013080702所示. 图2013080702 选择

如何在Word 2013的“样式”任务窗格中选择样式

在Word2013文档中,"样式"任务窗格中可以显示出全部的样式列表,并可以对样式进行比较全面的操作.在Word2013"样式"任务窗格中选择样式的步骤如下所述: 第1步,打开Word2013文档窗口,选中需要应用样式的段落或文本.在"开始"功能区的"样式"分组中单击样式按钮,如图2013081005所示. 图2013081005 单击显示样式窗口按钮 第2步,在打开的"样式"任务窗格中单击"选项

在Excel下拉列表中选择汇总方式

  在Excel下拉列表中选择汇总方式         在Excel下拉列表中选择汇总方式使用下拉列表选择计算方式究竟是个啥样呢?看动画: 早就知道是如何设置的?请按返回键. 还不知道这样的效果是如何设置的?继续往下看. 先展示一下咱们用到的数据源: 1.首先将数据区域转换为表格单击数据区域任意单元格,依次单击[插入],[表格].弹出[创建表]对话框,保留默认选项,单击[确定].创建列表完成. 数据表变成了下面这个样子.单击列表区域任意单元格,功能区还会多出一个[表格工具]选项卡. 2.设置汇总

在Excel工作表中选择单元格及其内容

在工作表 (工作表:在 Excel 中用于存储和处理数据的主要文档.也称为电子表格.工作表由排列成行或列的单元格组成.工作表总是存储在工作簿中.)中,您可以选择单元格.区域 (区域:工作表上的两个或多个单元格.区域中的单元格可以相邻或不相邻.).行或列.还可以使单元格处于编辑模式并选择该单元格的所有或部分内容. 您可以在 Microsoft Office Excel 表格中选择单元格和区域,就像在工作表中选择它们一样,但是选择表格的行和列不同于选择工作表的行和列. 注释 如果工作表处于受保护状态

在word2007中选择文本技巧大全

在word2007文档中在对文本进行操作的时候,大多数都需先选择要操作文本,才能进行相应的操作.选择文本的时候,我们通常使用按住鼠标拖动的方法选择文本.下面再列举一些选择文本的技巧 ★选择文档中的一句话:按住Ctrl键,并在这句话任意地方单击鼠标左键,即可选中该句话.不过需要注意的是,这里说的一句话指的是句号.分号.冒号.感叹号等两者之间的文字,但不包括逗号.引号.顿号等 ★选择文档中的多句话:按住Shift键不放,并在你要选择的起始处单击鼠标左键,然后在你要选择的结尾处单击鼠标左键. ★选择文

excel中选择单元格出现批注设置

大家在平时使用Excel处理表格数据时,有时需要对重要数据的单元格添加内容注释,Excel提供了批注的操作可轻松达到这个效果,下面详讲操作方法: 插入批注: 单击选中需要添加批注的单元格或单元格区域. 选择"插入"菜单的"批注"命令,或在需要添加批注的单元格内单击鼠标右键,在弹出的快捷菜单中选择"插入批注"命令. 在弹出的"批注"对话框输入批注内容,如下图所示: 完成文本内容输入后,单击"批注"框外部的工作