首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >协议转换/标准化: Biztalk,备选方案?

协议转换/标准化: Biztalk,备选方案?
EN

Stack Overflow用户
提问于 2008-10-23 11:40:51
回答 4查看 1.8K关注 0票数 3

我们需要从安全系统、火灾警报、摄像系统等系统中获取数十种不同的协议。并将它们集成到一个单一的公共协议中。

我希望这是一个消息服务器,许多系统可以订阅和或通过通信。

  • 轮询和非轮询“驱动程序”(协议转换器)
  • 处理RS232 / RS485 / tcp
  • 像Java或C#这样的托管语言中可编程的“驱动程序”
  • 规则引擎能力

biztalk适合这个吗?

是否有开放源码的替代方案?

是否有一种Java / Java的方法来做到这一点?

在一端,该系统将是一个SCADA系统,而另一端则是一种中间件/消息服务器。

如能就最佳的处理方式提出任何意见,将不胜感激。我知道在驱动程序端将涉及大量的编程,不过,尽管我很想从零开始构建整个系统,这是不合适的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-23 13:53:09

如果您不介意在Java上工作,那么在一个名为企业集成模式的开源项目中有一个轻量级协议转换程序和实现阿帕奇骆驼

Camel已经可以说出大多数共同协议和技术,如文件电子邮件JMSXMPP等等,因此不需要对这些东西进行实际编码。

要添加新的自定义协议,最简单的方法是构建在MINA元件之上,它负责所有的网络、套接字处理、线程等(例如,NIO与BIO等)。

然后,您只需扩展它以添加您自己的协议编解码器(如何在套接字上封送/解封送消息,并可能使用框架等)。

HL7组件就是这样做的一个例子。更多的关于在这里编写MINA编解码器的详细信息

然后,一旦您获得了骆驼组件(让我们称之为foo),您就可以使用简单的URI将任何协议从任何协议桥接到任何其他协议,以实现任何企业集成模式,如基于内容的路由器接受者名单选路滑等。

例如在Java代码中

代码语言:javascript
复制
// route all messages from foo
// to a single queue on JMS
from("foo://somehost:1234").
  to("jms:MyQueue");

// route all messages from foo component
// to a queue using a header
from("foo://somehost:1234").
  recipientList().
    simple("activemq:MyPrefix.${headers.cheese}");
票数 3
EN

Stack Overflow用户

发布于 2008-10-23 14:30:59

我会避免BizTalk的SCADA和at 232/at 485,因为这些通常需要实时(或至少低延迟)解决方案。BizTalk是为高吞吐量而优化的,但默认情况下具有高延迟的缺点。

您可以调整BizTalk以获得较低的延迟,但此时您将发现您绕过了BizTalk内置的几乎所有东西,它可能会妨碍您,而不是帮助您。

票数 6
EN

Stack Overflow用户

发布于 2010-06-16 04:31:07

www.livedata.com

它有点昂贵,但它是一个基于python的引擎,它可以获取一个协议,然后吐出另一个协议,它已经为ICCP、modbus、OPC和DNP等多个scada协议做了现成的设置。然后你就可以随心所欲地说下去了。

  • 约翰
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/229423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档