soap RMI RPC WebService REST CORBA JMS这几者的区别和联系是什么?

ALuLLL

这几个概念通常都是做分布式开发的程序员比较熟悉的,下面简单的描述一下这几个概念,同时给出对应的应用场景分析。


SOAP


SOAP称为简单对象访问协议,核心是基于XML的数据交换。主要作用是通过HTTP来完成应用程序之间的通信,从而避免了很多安全性问题。SOAP由于使用的是XML文件,所以能够在不同操作系统、不同开发语言实现的程序间进行信息交换,这是它一个非常重要的特点。

SOAP是Web Service中的重要组成部分。


RMI


RMI是Java进行分布式编程的基础协议,通过RMI能让Java完成远程对象的访问以及方法的调用。RMI应用分成三个部分:远程接口、远程对象定义、客户端调用。每一个部分都有对应的语法要求,详细内容可以参考我之前在头条上写的关于RMI的文章。

关于RMI的应用还可以看一下我在头条上录制的一个小视频。


RPC


RPC即远程过程调用。RPC 技术能够提供跨平台的应用,客户端、服务端都可以构建比较丰富的重量级应用,但是RPC本身并不支持对象的概念。

在应用方面,RPC采用的封装方式属于目的地寻址的方式,也就是说请求到达服务端之后再做功能匹配,这多少存在一些问题,比如校验问题以及安全问题,而RMI再这方面做的相对RPC来说要好很多,但是RMI只支持Java语言,而RPC则支持多语言操作。


Web Service


Web Service事实上是一个标准,一个针对Web服务的接口定义。Web Service可以让不同物理位置的不同应用直接进行数据交换。Web Service包含三个重要的元素:SOAP、UDDI、WSDL,它使用XML来封装数据,使用SOAP来传输数据,通过它能让异质异构系统间进行业务操作。

通过Web Service能够使现有的应用加入到整个Web服务体系中,只需要进行简单的编程就能够实现。要想深入细致的了解Web Service要了解SOAP、UDDI和WSDL都分别完成了哪些操作,简单的说,UDDI是一个目录服务,可以通过它完成Web Service的注册和搜索,WSDL是基于XML的用于描述Web Servcie的服务。


REST


REST是一种设计风格, 简单的说REST是为了让网络设计更简单、扩展性更强。REST本身定义了一组规则,在这组规则下来定义以资源为中心的应用模式(Web服务)。

在REST风格下,通过使用HTTP中的动词来完成对资源的一系列操作,包括添加、删除、修改,使用GET获取资源、POST新建资源、PUT更新资源、DELETE来删除资源,所以很多人说REST实际上是一种设计回归,让复杂的Web设计回归到一种更简单直接的方式上来。


CORBA


CORBA是做分布式开发的常规解决方案,在早期很多分布式操作都是基于CORBA创建的。CORBA是基于面向对象的,但是CORBA过于复杂,需要较长的学习时间才能掌握,所以这为CORBA的使用埋下了障碍。

国内在04年左右有企业曾经做过基于CORBA的大型应用,但是最终结果却并不尽如人意,后来开发人员得出一个结论:CORBA不太适合做大型的复杂应用。


JMS


JMS是Java中构建消息中间件的API,是Java中的核心技术之一。JMS的设计目的是构建一种机制,能够完成应用程序之间、应用程序跟组件之间的消息传递。

JMS分成两种方式,一种是队列方式,另一种是主题订阅方式。

JavaEE中的MDB(消息驱动Bean)就是基于JMS构建的。

关于JMS技术的内容细节我将在后续的文章中详细描述,并会给出针对性的实验,欢迎大家关注并一起交流。

以上就是对这几个技术的一个概括描述,如果大家有细节问题需要讨论可以给我留言,谢谢!


分享到:


相關文章: