Java WebSphere Liberty中包括哪些跨语言消息传递协议?

Java WebSphere Liberty中包括哪些跨语言消息传递协议?,java,jms,websphere,mqtt,websphere-liberty,Java,Jms,Websphere,Mqtt,Websphere Liberty,本文讨论通过rtcomm库上的MQTT对IBM WebSphere Liberty WebRTC的支持 我感兴趣的是在WebSphereLiberty上的JavaEEJMS(队列/主题)目的地和用其他语言编写的客户端之间交换消息 是否可以通过MQTT从客户端连接到WebSphereLiberty,并与JMS目的地交换消息 WebSphere Liberty是否支持其他跨语言消息传递协议,如AMQP或STOMP?在消息传递方面,WebSphere Liberty支持JMS,如文档所述: Liber

本文讨论通过rtcomm库上的MQTT对IBM WebSphere Liberty WebRTC的支持

我感兴趣的是在WebSphereLiberty上的JavaEEJMS(队列/主题)目的地和用其他语言编写的客户端之间交换消息

是否可以通过MQTT从客户端连接到WebSphereLiberty,并与JMS目的地交换消息


WebSphere Liberty是否支持其他跨语言消息传递协议,如AMQP或STOMP?

在消息传递方面,WebSphere Liberty支持JMS,如文档所述:

Liberty支持异步消息传递作为一种基于Java的通信方法™ 消息服务(JMS)编程接口。JMS接口为Java程序(客户机和JavaEE应用程序)提供了一种通用的方式来创建、发送、接收和读取作为JMS消息的异步请求

因此,Liberty本身并不实现MQTT协议(或任何其他消息传递协议)。它利用了使用中介的协议。以类似的方式,任何消息传递协议都可以由Liberty实现,前提是有一个JMS接口来访问和操作使用所述协议传输的消息

在作为问题一部分的链接文章中,这是由“MQTT Message Broker”组件完成的。本文中的两个例子是:

  • IBM MessageSight—一个基于设备的消息服务器
  • WebSphere MQ Telemetry—在WebSphere MQ服务器上运行的服务
  • IBM红皮书:

    MQTT协议本身被设计为支持受约束的设备。引述:

    MQTT消息传递协议是为受限环境中的设备而设计的,例如处理能力有限的嵌入式系统和内存或连接到不可靠网络的系统

    此外,MQTT依赖于发布/订阅模型,不提供点对点消息传递

    对于在该问题中提到的与语言无关的消息传递需求,可以考虑基于产品的解决方案,即企业服务总线(ESB)。ESB用于在通信系统之间传送、转换和操作消息


    商业ESB的例子有IBM集成总线、Oracle企业服务总线和SAP流程集成。开源替代方案包括Apache Camel、JBoss ESB和Mule ESB。

    每个JMS连接都需要一个JMS提供程序—您的JMS代码所连接的东西

    根据该提供程序是什么,您可以从其他语言连接到该提供程序。JMS提供程序必须为这些其他语言提供非JMS接口

    例如,您可以使用IBM MQ或AMQP或etc作为JMS提供程序,然后使用MQ或AMQP或etc提供的接口从其他语言(如python或ruby)或JMS提供程序支持的任何语言进行连接


    据我所知,唯一具有JMS接口的MQTT协议服务器是IBM IOT MessageSight。它为您提供基于发布/订阅和队列的支持。但是基于队列的支持只能从MessageSight JMS接口获得

    1)MQTT是一种用于受约束设备(如传感器)的协议。我怀疑它对点对点消息传递是否有用。2) Liberty支持JMS。只要目标协议和JMS之间有接口,就应该能够使用该协议。3)如果你可以考虑一个基于产品的解决方案,尝试,它可以即时转换消息。@ XSurgent多谢!这回答了我的问题:1:none 2:only with extra coding 3:no;)很乐意帮忙。我应该把我的评论扩展成一个答案吗?