我正在研究架构模式,企业服务总线(ESB)。在阅读本文Enterprise Integration时,几乎没有经验,我想知道BizTalk是ESB还是EAI(Hub / Spokes或Bus)?
我找到了这个NServiceBus and Biztalk,将BizTalk描述为一个中央消息代理。
考虑其他ESB框架(NServiceBus和Rhino Service Bus)。这些框架没有处理消息的中心点。
Biztalk是EAI而不是ESB吗?
非常感谢
答案 0 :(得分:18)
BizTalk被微软视为拥有ESB功能 - 请参阅BTS ESB toolkit
然而,术语“ESB”涵盖了非常broad field,并且关于ESB的确切定义存在很多主观性。恕我直言,BizTalk声称自己作为一个ESB是全面的(在> 2010年的术语定义中)存在弱点。
FWIW我们发现BTS非常适合:
更新,带来一些进一步的比较经验
答案 1 :(得分:9)
BizTalk是一个消息传递和工作流程编排平台,您可以在其上构建ESB行为和功能。为了简化和标准化BizTalk上的ESB实现,Microsoft发布了BizTalk ESB Toolkit - 一套指南,模式和代码。
EAI和BPM的概念已经存在了一段时间,因此有许多公司利用BizTalk为这些问题创建解决方案。在BizTalk服务器上托管完整ESB的公司要少得多,并且在WCF / WF / NServiceBus,当然还有Azure Service Bus的出现时,采用率肯定会降低。
总而言之,BizTalk开箱即用的是更糟糕的EAI或ESB,但是可以同时应对这个问题的许多开发人员。
答案 2 :(得分:4)
通过“ EAI或ESB ”我假设您想知道BizTalk是否遵循Hub& Spoke或总线架构。
从架构模式的角度来看,集成解决方案大致属于两种模式中的一种 -
Hub and spoke : 这涉及集中式消息代理向各种接收者发送消息,而所有发送者仅将消息发送给该代理。 因此,发送者和接收者都不需要彼此了解。 这通常是许多人称之为EAI的内容(尽管绝对有可能实现遵循BUS模式的EAI解决方案)。 遵循此模式的解决方案易于开发和管理。所有路由逻辑都集中在一个地方进行管理 - 在集线器中。 但正如你所猜测的那样,这有一个明显的缺点 - 单点故障。如果集线器崩溃,一切都会停止。此外,这种模式不能很好地扩展。
<强> BUS 强>: 围绕此模式开发的企业集成解决方案通常称为ESB。这里没有智能的中央权威。所有发件人都在公交车上发布消息。接收器需要足够智能,以确定哪些消息是针对它们的,并将它们从总线上取下。 因此,发送者和接收者只需要知道总线。但是这里的路由逻辑分布在接收器上,所以没有单点故障。此模型也具有高度可扩展性。然而,这些解决方案非常复杂且难以管理。
关于BizTalk遵循哪种模式的问题 - 它是这两种模式的混合。
集中式消息传递引擎以及中央 MessageBox数据库,其外观非常明显。这给人一种简单易用的管理方式,这是集线器方法的典型特征。
但是,如果你看一下BizTalk架构,可以将主机与主机实例分布在多个服务器上。也可以在不同的服务器上配置不同的BizTalk数据库,如MessageBox,Tracking,Ent SSO等。这使得BizTalk解决方案比普通的集线器实现更具可扩展性和容错性 - 这种行为通常归因于总线方法。
希望这能回答你的问题。
答案 3 :(得分:2)
BizTalk肯定是ESB。 EAI更像是一个松散的概念 - 当然可以部署BizTalk来支持EAI,它也可以做更多的事情。
答案 4 :(得分:2)
BizTalk不仅仅是一个ESB,但肯定符合要求。 This link有点老了,但回答了你的确切问题。
编辑:这是a more-recent MS link,其中涉及实施细节。
答案 5 :(得分:1)
BizTalk既可以用作EAI,也可以用作ESB。
对于ESB,BizTalk服务器体系结构是发布 - 订阅的,可以将单个消息发布到充当消息传递主干总线的消息框中。该消息可以由订阅该消息的一个或多个目标系统接收。当然,使用BizTalk服务器可以获得更多功能和功能,例如映射器工具和管道组件的使用。
作为EAI使用,BizTalk为您提供管理业务逻辑的业务流程,LOB(业务线)adatpers以连接到系统(也是旧版),映射工具,规则引擎以及您需要的大量内容将公司内外的不同系统集成在一起。
答案 6 :(得分:1)
绝对! Biztalk来自EIS背景,这使得ESB成为跨越混合技术平台的面向服务架构的基础架构背板非常有意义。
在之前的公司,出于功能和低成本的原因,我们选择Biztalk优先于IBM ESB产品。
这是微软,所以你得到你付出的代价,但仍然值得研究。
答案 7 :(得分:1)
Biztalk Server withot“ESB Toolkit”不是ESB。 由于以下原因:
关于你的qustion,是的BizTalk Server是EAI产品
答案 8 :(得分:1)
我同意这里所说的大部分内容。即使使用EBS工具包,BizTalk也可以作为一个全包的EBS解决方案。
要解决这里提出的几点......
•BTS比同步更适合异步过程 进程 - 延迟将根据系统负载而变化, 节流状态等。
默认情况下未更改的BizTalk主机不适合低延迟。但是那些主机应该被调整。开箱即用配置不适用于需要吞吐量的任何情况。在我进入BizTalk被避开的组织的经历中,总是有一个未经调整的单个主机设置位于其中间。这有点类似于在没有索引的dbms中生成表,遇到性能问题并说dbms本身很糟糕。
•对于易于版本化的服务而言,BTS很麻烦 模式(需要新部署)
与任何开发平台一样,您需要拥有部署策略。如果模式在命名空间中有版本,则无需重新部署任何内容。可以部署新版本而不会失去任何东西。
就服务端点而言,BizTalk可以在不使用IIS的情况下托管Web服务(BizTalk可以像IIS一样使用HTTP.SYS进行托管)。在BizTalk中托管进程服务只是导入绑定的问题,可以在不停止BizTalk中的任何操作的情况下完成。在这些端点中,您也可以实现版本控制(例如http:... / thing / v1,http:... / thing / v2等)。
无论如何〜5年过去了我确定你之前已经得出结论:)
答案 9 :(得分:0)
BizTalk可以同时进行ESB和EAI,这取决于您如何设计biztalk应用程序。