我的公司即将实施一种新架构,我们在其中提出BizTalk(我们是微软商店)作为SOA中的企业服务总线(ESB)(请不要引用面向服务的歧义)环境。
我们的业务是通过我们的新订单捕获GUI获取订单,该GUI必须连接到我们的客户数据库,产品目录,订购系统和一些其他辅助系统,每个系统都将作为WCF服务公开,订单随后传递给我们的订单管理和其他下游系统的实现,最后到我们的计费系统开发票。目前,每个系统都有自己的GUI,并使用手动过程在它们之间传递信息,以便自动化和集成自然思想,引入ESB来连接它们。
我对ESB的一些理由是,总线会担心如何连接系统(每个系统都是不可知的,对任何其他系统一无所知)以及如何格式化/翻译信息。很有可能在未来,一些现有系统将换成我们公司家族中的新系统或系统。
这似乎对我有意义,但我现在遇到了一些阻力,为什么在点对点解决方案足够时引入它。
不幸的是,在公司历史上(在我预约之前),引入BizTalk的初步尝试失败了,但我确信它有一个地方,我可以提供它。
我的问题可能不是关于BizTalk,而是在我描述的场景中ESB是否是一个好主意,何时引入ESB是有意义的?
答案 0 :(得分:6)
好。来自初级建筑组织的ESB指导Biztalk - http://msdn.microsoft.com/en-us/library/cc487894.aspx
我们使用BizTalk来做很多事情。他有一些简单的点插值。我们有一些更复杂的点集成与高质量的定制adpaters和管道。我们为客户掌握,产品信息和价格以及报价订单提供部门企业系统集成。这些都是单独的BizTalk应用程序。有些很小,有些很大。我们主要使用BizTalk来执行点对点/多点放置而不使用ESB模式。 ESB的实现意味着总线本身的治理水平以及将在总线上允许的企业消息标准。如果您将与大量具有大量不同格式的系统连接 - ESB很有意义。如果您想要实现的集成不那么雄心勃勃,那么ESB可能会过度。话虽如此,它是一个干净,可扩展的架构。您必须做出成本价值决定。
BizTalk也是一个复杂的野兽,但所有移动部件都具有很高的灵活性。但要为学习曲线或一些顾问费用做好准备。答案 1 :(得分:4)
我刚刚被同事问了同样的问题,这就是我对他说的话:
在大多数集成方案中,您都可以 在使用之前走得很远 像BizTalk一样。我会确定的 我不能更多地进行整合 在使用BizTalk之前。
只有看起来是整合 解决方案需要扩展到高 低延迟的卷(它有一个 奇妙的异步 发布 - 订阅机制),和你 需要容错(它有 冗余,缩放和消息重试 特色)和治理 解决方案(它有业务活动 监控)你真的有 考虑使用的强烈论据 的BizTalk。如果你知道那里 是多个未来的集成 将需要然后真的 强迫使用BizTalk。
另一方面,你需要做 确保技能可用 经营这件事。这需要一段时间 学习和范式的转变 系统的开发人员。然而 它是在.NET中从头开始构建的 和SQL Server这么有很多 熟悉工具和 概念
我认为关键是得到了 概念架构的解决方案 考虑到了这一点 非功能性要求 性能,可用性, 可扩展性,弹性,稳健性, 和可扩展性,并确保他们 正确地解决了 技术设计。你可能会找到它 更便宜的支付每CPU 35k $ BizTalk为您提供的许可证 这个盒子比开发所有这些 NFRs的。
此外,我最近在客户端实施了新的ESB Toolkit 2.0,并对此非常满意。行程(请参阅路由滑动模式http://www.enterpriseintegrationpatterns.com/RoutingTable.html)处理功能确实使组合Web服务变得简单,灵活和快速。
答案 2 :(得分:2)
我认为根据您描述的要求建立数据代理是有意义的,但我个人认为BizTalk不是您情况下的最佳选择。 对于您所描述的集成类型,我将介绍硬件数据代理设备。我见过的一些效果很好的是IBM DataPower,Vordel的设备和Layer7的设备。对于您将使用此类型的呼叫,设备是理想的选择。它们提供路由,转换和转换,并且它们可以防止模式中毒等问题。他们还会通过将其链接到您的用户存储来处理授权,身份验证和审核(我猜您根据您描述的环境拥有Active Directory用户存储,但它也适用于LDAP)
设备将成为BizTalk或任何其他软件解决方案的拥有成本(无支持成本),任何设备的性能都可能超过BizTalk一个数量级。
答案 3 :(得分:2)
我倾向于避免ESB术语,因为我认为它严重超载;在一天结束时,在我听过的所有各种描述中,它只是一种模式,BizTalk支持的模式非常好。
那么 - 我认为BizTalk是否适合你想做的事情?断然是。 我认为你是正确的避免点对点连接 - 同样是的,但是,与任何重构的重构练习一样,包括任何SOA计划,你必须考虑你有多大的改变,现在你需要多少重用来决定多远你带着你“脱钩”的运动。
答案 4 :(得分:1)
您需要谈论延迟和吞吐量。其他一切都只是bla-bla。
答案 5 :(得分:0)
这是一个非常独特的模式。通常,当您从系统A向系统B发送消息时,您可以从系统A的格式直接转换为系统B想要的格式。当您有ESB时,您将系统A的消息转换为ESB格式(即,通用PO,订单等),然后转换为系统B所需的格式。这是两次转换而不是1,并且总线模式还需要每个消息都有一个动词(即添加,删除,更新等)。这是一个真正重要的区别,也是使ESB与许多参与系统集成非常有用的原因。