在Java中设计分布式应用程序时,似乎有一些技术可以解决相同的问题。我已经简要阅读了有关Java远程方法调用和Java消息服务的内容,但是很难真正看到它们之间的区别。Java RMI似乎比JMS更紧密地耦合,因为JMS使用异步通信,但是否则我看不出任何大的差异。
我还认为Web服务和CORBA解决了相同的问题。
您无法真正比较两者,即苹果和橙子。
RMI是远程过程调用(RPC)的一种形式。它是一种轻量级的,特定于Java的API,希望在通信时可以使用调用方和接收方。
JMS是可靠的消息传递API。存在用于各种消息传递系统的JMS提供程序。即使提供方实现了其中一方不可用的情况,也可以传递消息。我熟悉的两个是TIBCO和IBM MQ。
RMS不处理保证的交付或异步响应,JMS可能取决于提供者。
JMS允许在可用性方面进行松散耦合。“ Web服务”允许在协议和数据的意义上进行松散耦合,但是在可靠消息传递方面并没有指定太多,尽管某些实现确实包含此功能(Windows Communication Foundation),而有些则没有。
编辑:根据评论修改。当我在2010年撰写此答案时,我的经验实际上是只有一个JMS提供程序,而我实际上并不知道没有默认的JMS提供程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句