位于服务器的程序需要在Web页面上显示一个订单列表,它需要访问业务对象服务器上的程序,通过它读取订单列表,业务对象服务器又要访问数据库服务器。当一台计算机上的程序调用另一台计算机上的程序时,就称之为一次远程过程调用(Remote Procedure Call)RPC。

不同的组织定义了不同的RPC协议:

(1)DCOM

COM对象与语言无关,可以使用任何一种语言来设计COM对象,这些COM对象被设计用来被其他程序调用,但是COM对象必须和调用程序位于同一台计算机上。为此微软扩展了COM模型来解决这一问题。但是一个最严重的缺点就是,也是所有微软产品的通病:不能跨平台。

(2)IIOP

与DCOM的功能相同,与语言无关,并且支持跨平台(COM底层功能是由操作系统来提供的,所以不跨平台,而IIOP则是由对象请求代理ORB提供的)。

但是DCOM和IIOP技术太复杂了,这大大影响了他们的推广。

(3)Java RMI

Java在诞生时就许诺“一次编译,到处运行”,并且Java为远程计算提供了远程方法调用或者RMI系统。比其他语言都省事,并且Java RMI还有一个特有的功能:每次调用时,可以转移代码,即,如果你准备调用的远程计算机上没有你需要的代码,可以把自己的代码传上去让远程计算机执行你的代码。它的缺点是,程序员只能使用Java语言了。

那么有没有一种新的RPC继承它们的有点,但又克服它们的缺点呢?

那就是Web ServiceWeb Service常识Web Service常识Web Service常识

2 Web Service

2.1 Web Service定义

一个Web服务是指接受一个请求,返回数据或执行一项处理活动。

广义上讲的Web Service与一个XML Web Service不一样。这里主要讨论XML Web Service。

2.2 XML Web Service的设计方法

根据发送请求的方式的不同可以分为两种:

XML-RPC:把方法名和参数封装在一个XML格式里;

网络传输:这种方法只说明Web服务采用XML文档作为其输入参数,XML文档的格式是预先定义好的,通常才会用XML Schema模式,然后该服务处理文档并执行请求的任务。

2.2.1 XML-RPC

客户端向服务器发送一个编码成XML格式的命令,由它执行远程过程调用,并返回以编码为XML格式的响应。

例如我们需要调用如下API接口程序:

Web Service常识 struct topicExchange.getChannels()

返回一个频道列表,不需要参数。

Web Service常识 struct topicExchange.ping(string topicName,struct details)

把新记录添加到topicName主题里。

Web Service常识 struct topicExchange.getChannelInfo(string topicName)

返回tiopcName频道的内容。

下面我们就用XML-RPC方式请求调用方法:

对于topicExchange.getChannels

1 <methodCall>
2     <methodName>topicExchange.getChannels</methodName>
3 </methodCall>
View Code

相关文章:

  • 2021-10-31
  • 2022-12-23
  • 2022-02-27
  • 2021-07-06
  • 2022-02-07
  • 2022-01-15
  • 2021-04-10
猜你喜欢
  • 2021-06-17
  • 2021-06-14
  • 2021-06-03
  • 2021-06-04
  • 2022-12-23
  • 2021-07-10
相关资源
相似解决方案