BizTalk 2009 ESB 混淆

5

我有一些BizTalk的经验,现在想要了解BizTalk 2009 ESB Toolkit 2,但不打算使用它。首先,我想知道以下几个概念的区别:

  1. "on-ramp"和"receive port"之间有什么区别?
  2. 为什么需要行程单?难道不能用端口和编排来创建相同的功能吗?显然我还缺乏某些知识。

另外还有几个更普遍的问题:

  1. 所有消息是否仍需通过Message Box处理?

感谢您提供的任何见解。

4个回答

5
我只回答你的第二个问题:
2)为什么需要行程,难道不能使用端口和编排来创建相同的内容吗?我显然在这里缺少了一些东西。
在我上一个工作地点,我们为我们的ESB工作了大约一年。行程的想法是当消息进入ESB时,它应该神奇地按正确的顺序到达适当的系统。
使用业务流程导向(BPM)系统,通常编写编排以指导逻辑流程。换句话说,您在编排中编写消息的行程或路径。在我们构建的ESB中,业务规则决定消息将去哪里。我们仍然有终点的编排,但它们通常很短,只进行映射和一些非常基本的功能。在其他地方工作过,编排可能会很大。
所以,关于如何处理消息的规则必须得有个地方。在ESB中,每个端点都应该是完全不知道其他端点的。ESB阵营认为系统需要更动态地变化而无需重新部署软件(即编排)。因此,在我们的ESB中,您只需更改业务规则并重新部署它们即可。
ESB存在一些棘手的问题,如处理事务、回滚和通常创建一个共同的错误处理过程。
Neal Walters http://BizTalk-Training.com

谢谢您的回复。行程单是否会附加到消息中,如果是,下一步行程由谁处理?我有点困惑了。 - Jon Archway
我们基于BizTalk开发了自己的定制ESB。所有传入数据都被映射到一个通用的(规范格式)中,其中包含一个标头,用于标识它是什么以及来自哪里。然后,我们有一个ESB编排,它会通过检查业务规则、更改标头,并根据规则动态地将消息发送到其他编排(由规则确定)通过直接绑定。当该编排完成时,它会再次调用规则,直到没有返回结果为止。我不确定Microsoft的ESB Guidance中的行程安排是如何工作的。 - NealWalters

4

入口

入口是基于Web服务的接收端口,但它们略有不同,因为它们接受通用的XML消息。然而,这些消息将具有非常特殊的SOAP头(如果您愿意,可以称之为“信封”),其中包含使消息行程表成为可能的所有必要属性。您可以通过查看“EsbEnvGeneric.xsd”中的所有可能的头文件来找到它们。

行程表

我喜欢NealWalter在此问题上的回复。但是,我想补充一下,消息行程表方法可以潜在地节省大量的时间和开发工作。它可以使组织更加敏捷,并且可以轻松更改其流程。如果我们不需要开发和部署全新的编排,而只需更改一些配置并使用现有的组件,那么当然可以节省很多时间。这就是我认为ESB和消息行程表的重要价值所在。

消息框

BizTalk中的消息始终必须经过消息框。在下一个版本中,微软暗示了BizTalk中的低延迟场景 - 也许那时我们可以获得更多控制权,但是目前在BizTalk中,消息在其通过过程中经常被持久化,这是无法避免的。


2

一些额外的观点 -

接收端口 / 入口 - 完全同意Riri的回答,只是补充一点 - 在BizTalk ESB应用程序的上下文中,入口是接收端口的一个特定实现;一个子集;一个私有案例。它使用接收端口来实现ESB世界中的模式;所以 - 它们本质上并不不同。

行程单 - 同样地 - 我同意Neal和Riri的看法,并回答您的问题 - BizTalk ESB可以以不同的方式使用行程单 - “明智”的客户端可以在请求消息中提供请求的行程单;一个不那么聪明的客户端可以简单地发送一个消息,而ESB基础架构(或者更确切地说 - 您的实现)可以为特定的请求解析相关的行程单(这可以使用解析器完成,内置或自定义,其将使用不同的方法来决定需要哪个行程单)。理论上,两者也可以结合起来,其中客户端提供行程单,但ESB入口替换/更改它。


0
对于一般的问题,据我记得,是的,所有的消息都通过消息框传递。但我使用的是BizTalk 2006 R2版本。看一下这张图片here
至于另外两个问题,我自己也没有完全弄明白。我现在没有时间进行调查,但如果没有人给我们启发的话,我可能会去研究一下 :)

我曾被告知,您可以通过使用2009和ESB来避免使用消息框,这就是我提出这个问题的原因。 - Jon Archway

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接