繁体   English   中英

JMS / JAXM / JAX RPC / Web服务/ JAX-WS有什么区别?

[英]What is the difference between JMS / JAXM / JAX RPC / Web Service / JAX-WS?

我正在尝试学习不同的Web服务,以了解它们的用途。 但是,由于这些术语经常重叠,我感到困惑。 如果有人能简短地告诉我这些术语之间的区别,我将不胜感激。 我遇到了一些资源,例如http://java.sun.com/developer/Books/j2ee/jws/ch07.pdf ,但是我无法区分它们。

Web服务:符合标准的可调用服务,可以用Java编写,也可以用其他一些技术(例如.NET编写。 关键是存在描述服务的标准语言WSDL。 WSDL包含有关传输,协议,服务在何处运行,可用的操作以及往返的有效载荷的信息。

您将遇到的大多数Web服务都通过HTTP协议使用SOAP消息(一种特定的XML格式),因此WSDL将包含在何处调用该服务的URL。 一般而言,其他消息格式和协议也是可能的-我们稍后再讨论。

假设您具有要从Java程序调用的服务的WSDL,则原则上您可以编写Java来格式化合适的XML有效负载,并通过HTTP连接发送消息。 完全可行,但非常乏味,几乎所有代码都是样板代码,可以从WSDL生成。

同样,如果要使用Java创建Web服务,则可以从编写WSDL开始,但是再次有很多标准样板代码可用于读取HTTP,解析XML等。因此,在两种情况下,您都可以从标准Ja​​va API中受益所有的工作。 已经有几种这样的API,JAX / RPC和JAX / WS就是其中两种,而JAX / WS是更新的且更易于使用。

另一种可选的集成技术是使用消息传递,有许多供应商提供消息排队产品,因此完全有可能将消息从(例如Java)发送到(例如)C ++,您只需要就消息格式达成一致(无需标准WSDL)告诉你)。

JMS是Java编程API,它提供有关特定供应商的消息传递产品的抽象。 如果使用Java,JMS可为您提供跨消息传递产品的可移植性。 Java EE标准要求Java EE App Server供应商提供消息传递基础结构-我相信随着业务系统的发展,他们几乎总是需要一些异步消息传递功能。

将类似WSDL的方法应用于消息传递有多种可能性。 例如,可以使用SOAP / JMS而不是SOAP / HTTP来编写Web服务。 JAXM是这个领域中新兴的API。 坦白地说,我不清楚它与SOAP / JMS和诸如WS-ReliableMessaging之类的标准之间的关系。

暂无
暂无

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

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