我们的一些合作伙伴告诉我们,我们的软件需要与企业服务总线进行交互。经过一些研究后,我的直觉告诉我,这只是说我们需要一种平台无关的方式来传递消息而已,这些合作伙伴可能只是想让我们的软件更符合潮流,你认为我正确地忽略了合作伙伴的要求吗?还是他们告诉了我们应该倾听的东西(即使编码成流行语)?
我们的一些合作伙伴告诉我们,我们的软件需要与企业服务总线进行交互。经过一些研究后,我的直觉告诉我,这只是说我们需要一种平台无关的方式来传递消息而已,这些合作伙伴可能只是想让我们的软件更符合潮流,你认为我正确地忽略了合作伙伴的要求吗?还是他们告诉了我们应该倾听的东西(即使编码成流行语)?
虽然ESB基于消息传递,但它不仅仅是“聊天”,也不只是一个流行词。
因此,如果您从普通异步消息开始,早期网络往往非常点对点。每个连接和每对目标都必须手动配置(即通过某些管理界面),如果您敢于移动任何东西,那么肯定会出现问题。由于连接点是手工连接的,所以这些网络从未实现高连接密度。增量成本太高,没有扩展性。拓扑结构中还嵌入了很多访问控制和策略。尽管缺乏连接密度有利于这种安全性方法,但它却抑制了灵活性。
ESB试图解决这些问题,包括:
因此,当您的客户要求ESB兼容性时,他们想要上述功能。从应用程序角度来看,这也意味着...
另一方面,如果您的客户无法表达这些内容,则他们可能只想勾选一个标签,表示“与ESB兼容”。
我会尽量避免使用流行术语(但可能会出现流行缩写)。
当服务/应用程序/主机等希望集成(因此彼此发送消息)时,可能会出现混乱。ESB将这种混乱隐藏在其内部,使组织可以假装没有混乱,并且拥有可管理的东西。然后,它包装了一系列特性,使这个盒子更具吸引力,让组织中的高级人员做出购买这种昂贵产品的决定。这些人通常希望引入一个耗资巨大的大型计划,以证明他们正在“做些什么”,并且知道如何花费大量的钱。如果这是一个面向服务体系结构(SOA)的计划,那么各种供应商将告诉他们需要一个ESB才能使供应商对SOA的愿景产生作用(一旦他们想要的服务数量超过微不足道的数量)。
因此,ESB 是:
企业服务总线以标准化的方式处理系统之间的消息传递。这使您可以在所有平台上以完全相同的方式与总线通信,总线会处理实际的翻译工作,以满足特定端点所需的个别通信机制。这意味着您编写所有代码以使用常见的消息方案与总线进行通信,总线负责将您的通用方案转换为端点可以理解的格式。
最简单的解释就是解释它提供了什么:
多年来,公司为了实现业务功能,从财务到人力资源,收购了不同的平台和技术。这些系统需要相互通信以共享数据,因此中间件成为连接它们的粘合剂。在企业意识到之前,他们正在为每个系统和中间件支付支持和维护费用。随着业务需求的变化,部门决定创建自己的定制解决方案来解决特殊需求,而不是尝试使老化的解决方案足够灵活以满足他们的需求。在他们意识到之前,他们正在支付遗留系统、中间件和定制解决方案的支持和维护费用。随着像萨班斯·奥克斯利这样的新法律的出台,公司需要有更好的信息可用于报告目的。单一视图要求他们从所有系统中捕获数据。此外,首席信息官现在面临降低成本和提高客户服务的压力。一个明显的解决方案是消除冗余系统、昂贵的支持和维护合同以及需要专家支持的高成本遗留解决方案。转移到新平台可以实现这一点,但需要进行过渡。没有现成的解决方案可以复制业务所做的事情。为了解决信息传递的需求,他们选择SOA,因为它允许通过通用实体访问信息。如果我从服务总线请求所有员工,它会获取它们,无论是来自15个人力资源系统还是1个系统。当15个人力资源系统变成1个系统时,调用和结果不会改变,只是在幕后完成的方式有所不同。服务总线概念标准化了信息流,并允许IT经理在总线后面进行过渡,对上游用户没有长期影响。