RPC是由Sun发明的远程过程调用协议,是第一种真正的分布式应用模型。Windows上使用的R PC是DCERPC的扩展。严格地说,RPC是一种逻辑上的协议,它可以使用Socket、Named Pipe等更低级的协议完成通信任务。现在Windows系统本身的大多数涉及通信和分布式应用 的服务程序都在使用RPC协议。这也就是为什么前一段时间RPC漏洞会给Windows带来那么大麻烦的原因所在了。

CORBA从概念上扩展了RPC。用RPC开发的分布式应用是面向过程的,而CORBA是完全面向对象的。CORBA协议在许多大型企业级应用中使用得很多。因此,CORBA对RPC的扩展就像C++语言 对C语言的扩展一样。 DCOM是微软自己开发的,面向对象的分布式应用模型。它的设计目标和CORBA一样,但它远 没有CORBA那么健壮和丰富,因此,真正在企业级应用系统中使用DCOM协议的并不太多。

在企业级软件开发中,还经常使用一种类似于e-mail的异步通信方式——消息队列。微软、 IBM等公司都由相应的消息队列产品,IBM的MQ Series是目前业界比较成熟的一种,应用很广。

Web Service是在开放的HTTP协议和XML语言的基础上构建的,类似于CORBA或RPC的一种新的分布式应用模型。与传统的RPC和CORBA相比,Web Service因为使用XML来描述所有数据,具有 通用、可交互的优势,因为使用HTTP协议来传输数据,具有跨平台、跨网络的特点。微软 的.NET平台和Sun的J2EE平台都支持Web Service。

因此,总地说来,可以使用的分布式技术很多,我们可以根据需要选用。比如说,最简单的 通信,可以直接用Socket编程来实现;对分布式要求较高的应用,可以考虑使用RPC;在面 向对象的环境下,可以选用CORBA或DCOM;当我们要在不同的网络和平台之间搭建开放的分 布式应用系统时,Web Service就是最好的选择了。 我觉得,学习这些技术要遵循一定的顺序,循序渐进地学习。必须先掌握网络通信和TCP/IP 协议的基础知识,这是前提条件。然后可以学习Socket这样最基本的通信编程技术,接着可 以选择学习RPC、CORBA、DCOM中的一种,然后,在充分了解XML语言和HTTP协议的基础上, 掌握Web Service就非常容易了。你可以按照这样的思路去找每个领域里的书来看——我一时也想不出什么具体的书名。

[转]RPC、CORBA、WebService之区别的更多相关文章

  1. RPC和WebService的区别

    最近分析的这个系统,逻辑架构中有一层是RPC interface.之前对RPC不熟悉,就上网搜索了一下资料,在此总结一下: RPC是Remote Procedure Calling,远程过程调用的缩写 ...

  2. 远程通信(RPC,Webservice,RMI,JMS、EJB、JNDI的区别)对比

    总结这些概念都是易混淆,最基本概念定义复习和深入理解,同时也是架构师必备课程 RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到 ...

  3. 软件架构设计学习总结(15):远程通信(RPC,Webservice,RMI,JMS、EJB、JNDI的区别)对比

    总结这些概念都是易混淆,最基本概念定义复习和深入理解,同时也是架构师必备课程   RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请 ...

  4. SOA,Webservice,SOAP,REST,RPC,RMI的区别与联系

    SOA,Webservice,SOAP,REST,RPC,RMI的区别与联系 SOA面向服务的软件架构(Service Oriented Architecture) 是一种计算机软件的设计模式,主要应 ...

  5. RPC与RMI的区别

    分布式项目按照以下发展经历了以下技术: CORBA: RMI:基于远程接口的调用 RMI-RROP:这是RMI与CORBA的结合,用在了EJB技术上,EJB留给世界上是优秀的理论和糟糕的架构. WEB ...

  6. RPC和RMI的区别(Difference Between RPC and RMI)

    RPC和RMI的区别(Difference Between RPC and RMI) RPC vs RMI RPC (Remote Procedure Call) and RMI (Remote Me ...

  7. WebAPI和WebService的区别

    WebAPI和WebService的区别 WebAPI用的是http协议,WebService用的是soap协议 WebAPI无状态,相对WebService更轻量级.WebAPI支持如get,pos ...

  8. 几种常用远程通信技术(RPC,Webservice,RMI,JMS)的区别

    原文链接:http://blog.csdn.net/shan9liang/article/details/8995023 RPC(Remote Procedure Call Protocol) RPC ...

  9. 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

    RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果.这个请求包括一个参数集和一个文本集,通常形成&qu ...

随机推荐

  1. java常用命令行

    1.javac(编译java源文件) javac是用来编译.java文件的. 例子: package com.fjassa.domain;  public class Human.public cla ...

  2. centos7 安装python3和pip3

    centos7默认是安装的python2.7以及对于的pip 如果要使用python3并且保留python2请看以下步骤 sudo yum -y install epel-release sudo y ...

  3. cpu gpu数据同步

    https://developer.apple.com/documentation/metal/advanced_command_setup/cpu_and_gpu_synchronization d ...

  4. 2018年3月python传智播客人工智能基础就业班全套视频教程

    2018年3月python传智播客人工智能基础就业班全套视频教程 有需要的可以留言留下邮箱.

  5. poj3592 Instantaneous Transference tarjan缩点+建图

    //给一个n*m的地图.坦克从(0 , 0)開始走 //#表示墙不能走,*表示传送门能够传送到指定地方,能够选择也能够选择不传送 //数字表示该格的矿石数, //坦克从(0,0)開始走.仅仅能往右和往 ...

  6. SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)

    Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql ...

  7. Telnet服务配置

    telnet:远程连接,使用未加密的用户/密码组进行验证,由xinetd服务管理.配置文件为/etc/xinetd.d/telnet Telnet服务的配置步骤如下: 一.安装telnet软件包 #r ...

  8. 常用HTML标签的全称及描述

    常用HTML标签的英文全称及简单描述   HTML标签 英文全称 中文释义 a Anchor 锚 abbr Abbreviation 缩写词 acronym Acronym 取首字母的缩写词 addr ...

  9. gcc编译选项汇集

    gcc -g 调试选项(DEBUGGING OPTION)GNU CC拥有许多特别选项,既可以调试用户的程序,也可以对GCC排错: -g 以操作系统的本地格式(stabs, COFF, XCOFF,或 ...

  10. JDBC:数据库操作:BLOB数据处理

    CLOB主要保存海量文字,而BLOB是专门保存二进制数据:包括,图片,音乐,影片.等. 在MYSQL中,BLOB类型使用LONGBLOB声明,最高可存储4G内容. 创建一个表: create tabl ...