简体   繁体   English

BizTalk用于实时消息传递

[英]BizTalk for Real-Time Messaging

My company is exploring using BizTalk for our messaging infrastructure and I was just curious if it would be a good candidate. 我的公司正在探索将BizTalk用于我们的消息传递基础结构,我只是好奇它是否会是一个不错的选择。

First off we are a .NET shop and do process medical transaction processing. 首先,我们是.NET商店,并进行医疗交易处理。 Currently all of our products are written to do their purpose with really no common code. 目前,我们所有产品的编写都是为了实现它们的目的,而实际上没有通用代码。 Most of these transactions come over a standard TCP socket (think HL7 using MLLP as a model). 这些事务大多数都是通过标准TCP套接字来进行的(请以ML7作为模型的HL7)。 We then process these and may send them off to one or more 3rd parties for processing over a socket as well. 然后,我们会处理这些信息,并可能将它们发送给一个或多个第三方,以便通过套接字进行处理。 Lastly we send the transaction response back to the customer. 最后,我们将交易响应发送回客户。 We have quite a few applications that operate like this we are looking to put on a uniform platform. 我们有很多这样运行的应用程序,我们希望将其放在统一的平台上。

We need this to operate very fast (<6 seconds on some things) as well as being very fault tolerant while scaling. 我们需要它能够非常快地运行(在某些情况下,不到6秒),并且在扩展时具有很高的容错能力。 I have been told that this is where BizTalk excels. 有人告诉我,这是BizTalk擅长的地方。

My question is for you BizTalk experts, does this sound like something BizTalk could do well? 我的问题是给您BizTalk专家的,这听起来像BizTalk可以做得很好吗? And any other advice you can give for a migration like this? 您还可以针对这种迁移提供其他建议吗?

FWIW, my take: FWIW,我的看法:

Biztalk Strengths wrt your requirements Biztalk的优势满足您的要求

  • Mapping of messages is straightforward and you have the choice of visual mapping or xslt. 消息映射非常简单,您可以选择可视化映射或xslt。
  • Uniformity of Development - once your dev team has overcome the learning curve, it does allow for a centralized platform for most types of EAI work (ie you can keep adding new applications to your Biztalk servers, which can leverage existing messages and processes). 开发的一致性-一旦您的开发团队克服了学习难题,就可以为大多数类型的EAI工作提供一个集中式平台(即,您可以继续向Biztalk服务器添加新的应用程序,从而可以利用现有的消息和流程)。
  • Transactional reliability - you can pretty much pull the plug on BizTalk and it does a good job of recovering state without losing data. 事务可靠性-您几乎可以拔掉BizTalk上的插头,并且它在恢复状态而不会丢失数据方面做得很好。
  • Protocol agnostic - internally everything is XML to Biztalk. 协议不可知-内部所有内容都是Biztalk的XML。 You can deal with 'special needs' customers with a wide range of adapters available out of the box without rewriting your app. 您可以使用各种开箱即用的适配器来应对“特殊需求”的客户,而无需重写您的应用程序。
  • Low maintenance operation - once you've deployed and debugged your apps, tuned your production environment, and set up the SQL and Monitoring (eg SCOM) maintenance tasks, BizTalk can tick away like an appliance. 低维护操作-部署和调试应用程序,调整生产环境并设置SQL和监视(例如SCOM)维护任务后,BizTalk可以像设备一样滴答作响。
  • Scalability (at a price) - BizTalk has plenty of knobs for scaling up, and multiple servers can be added for scale out. 可伸缩性(需要付出一定的代价)-BizTalk具有大量用于扩展的旋钮,并且可以添加多个服务器以进行扩展。 However, we've typically found the bottleneck to be the underlying SQL Server in most instances. 但是,在大多数情况下,我们通常会发现瓶颈是基础SQL Server。

Weaknesses 弱点

  • There will be some challenges to guarantee latencies / maximum processing time. 保证等待时间/最大处理时间将面临一些挑战。 eg Significant thought will need to be given when BizTalk is under extreme load to avoid throttling states which can cause a backlog of messages to queue up. 例如,当BizTalk处于极高的负载下时,需要做出重要的考虑,以避免可能导致消息积压排队的限制状态。
  • Dynamic routing is a bit patchy on certain protocols / adapters - you will typically need to blend in some of your own code, if you get to the point where it becomes unwieldy to manage large numbers of static send ports with filters. 动态路由在某些协议/适配器上有些零散-如果您发现使用过滤器管理大量静态发送端口变得不方便,通常将需要混合一些自己的代码。 eg if you have 100 3rd party destinations [say funds] - and 10 000 customers - [say doctors / hospitals], then routing message flows originating from funds to doctors isn't going to be fun. 例如,如果您有100个第三方目的地(例如资金)和10,000个客户(例如医生/医院),那么将资金来源的消息流路由到医生就不会很有趣。 If you can keep your message flows originated from the 'many' side, and using a synchronous protocol, you can avoid the routing issues. 如果可以使消息流源自“许多”端,并使用同步协议,则可以避免路由问题。

FWIW I have used BizTalk in a medical environment (but on the fund side, not a switch), without too many challenges (that said, we only needed to route to 3 different switches). FWIW我在医疗环境中使用过BizTalk(但是在资金方面,而不是交换机),没有太多挑战(也就是说,我们只需要路由到3个不同的交换机)。 I'm guessing that your <6 second requirement is for real time pharmacy auths etc. One thing I would do is split the real time processing and the batch processing (eg claims batches) onto different process hosts, or even different servers entirely. 我猜想您的<6秒要求是对实时药房身份验证等。我要做的一件事是将实时处理和批处理(例如,索赔批)拆分到不同的过程主机上,甚至完全在不同的服务器上。 This should avoid the potential for delays in synchronous processing (eg pharm auths) caused by the arrival of a large batch (eg of claims) which may not have the same low latency requirement. 这应避免可能由于不具有相同的低等待时间要求的大批产品(例如索赔)的到来而导致同步处理(例如pharm auths)中出现延迟的可能性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM