我们有一个系统使用MLLP HL7加速器向BizTalk发送HL7消息。然后我们有几个目标系统,它们都需要自己的HL7消息格式,因此我们使用每个目标的编排,每个目标都涉及不同的转换。每个orchestrationi都使用过滤器来订阅接收端口。此订阅模型运行良好,但如果我们需要停止或取消部署其中一个业务流程,该怎么办呢。订阅模型的缺点是推送模型没有内置排队,因此如果删除业务流程,接收端口接收的消息不会为该系统排队。或者这是一个问题?如何处理业务流程等的升级?是否有更好的设计模式?
答案 0 :(得分:4)
我认为稍微好一点的设计是将转换(地图)直接放在发送端口上。然后,您可以在不同的发送端口上安装过滤器以路由到目标系统。
此设计会使更新变得更容易,因为首先不需要删除业务流程来部署新版本的地图。然后你要做的就是停止端口(使订阅保持活动状态,消息将排队等待其订阅端口)。在端口停止后,您只需使用新版本的映射修改资源(程序集),然后开始端口以开始转换和发送排队的消息。
当您需要控制更复杂的工作流程时, 仅 使用编排通常是一个好主意 - 而不仅仅是像您一样应用地图。