nab*_*lex 6 c# java messaging jms
我们使用一个专注于Java的工具,它在内部使用JMS并与外部Java软件通信.我们现在必须为C#应用程序设置一个新接口.我们的JMS提供程序提供了一个应该可以工作的C#实现,但我不完全确定JMS是这种情况下的方法.它将在C#应用程序中引入新的特定于供应商的依赖关系,以用于实现的细节和客户端的支持.
一些谷歌搜索引导我到STOMP,这似乎是一个由多个支持JMS的消息代理(hornetq,activemq,...)支持的已建立的线级协议,但在C#中似乎明显缺乏实际的客户端(和java到在某种程度上).如果不深入研究,我也不能完全确定"文本"的重点在哪里发挥作用?它不支持二进制对象吗?
另一种解决方案可能是AMQP,这是另一种线级协议,但1.0规范尚未发布,我们厌倦了实施4年前的0.9.1规范,因为它似乎在1.0中发生了很大变化.
考虑到安全性,支持,事务性,标准合规性,可移植性等,哪种解决方案最适合语言间异步消息传递...请注意,具有适当WS-*的soap不适用于此特定接口.
编辑1:我见过跨平台,跨语言邮件系统等问题?但他们似乎专注于一种适用于多种语言的特定工具.我实际上正在寻找一个符合标准的协议,该协议可由多个供应商实施或由多个供应商实施.
一种选择是将 C# 客户端从底层特定通知协议中抽象出来,并让它在输入端口和输出端口级别工作,其中输入端口和输出端口是使用常见的互操作适配器(关系数据库、 Web 服务,特定文件夹中的 xml 文件。
您有责任提供适配器以及适配器与消息传递子系统之间的桥梁,但这样做有明显的好处:企业环境之间的相互义务是在非常通用的级别上定义的。您甚至可以有一天更换消息传递子系统并保留所有输入和输出端口。换句话说,C# 客户端甚至不会注意到您用另一个消息传递基础结构替换了 JMS,因为它仍然从同一组适配器发送/接收数据。