分布式计算范型

2.1 消息传递范型

消息传递是进程间通信的基本途径。在消息传递范型中,表示消息数据在两个进程(进程A和进程B)间交换:一个是发送者,另一个是接收者。
消息传递是分布式应用的最基本范型。一个进程发送代表请求的消息,该消息被传送到接收者;接收者处理该请求,并发送一条应答消息。随后,改应答消息可能触发下一个请求,并引起下一个应答消息。如此不断反复传递消息,实现两个进程间的数据交换。
消息传递范型所需的基本操作为send和receive。对于面向连接的通信来说,还需要connect操作和disconnect操作。利用该模式型提供的抽象,互连进程在彼此之间执行输入操作和输出操作,操作方式类似于文件的输入操作和输出操作。和文件 I / 0 相似,这些操作封装了操作系统层的网络通信细节,因此,程序员可以使用这些操作发送和接收消息,而不必关注操作系统底层的通信细节。

2.2 客户 / 服务器范型

客户 / 服务器范型(简称 C/S范型)是网络应用中使用最多的一种分布式计算范型,该模型将非对称角色分配给两个协作进程。其中,服务器进程(server process)扮演服务提供者角色,被动地等待请求的到达;客户进程(client process)向服务器发起请求,并等待服务器响应。
当前最流行的互联网应用WWW(或称为Web)是基于客户 / 服务器范型的一个典型分布式应用。它由Web服务器进程和浏览器客户进程构成。Web服务器进程不断侦听从Web浏览器进程发出的请求,服务器处理请求并发送响应。一旦收到应答后,浏览器进程解释收到的响应,并将文档显示出来。浏览器客户进程负责发送请求和接收响应。Web应用的原理是基于HTTP协议的客户 / 服务器应用,在后面的内容将更具体地介绍HTTP协议。

2.3 P2P范型

P2P(Peer-to-Peer)范型源于P2P网络(又称为对等计算网络)。P2P网络是无中心服务器,依赖用户群交换的互联网体系。与客户 / 服务器结构的系统不同,在P2P网络中,每个用户端既是一个结点,又有服务器的功能,任何一个结点无法直接找到其他结点,必须依靠其用户群进行信息交流。

2.4 消息系统范型

消息系统范型或面向对象的中间件(Message-Oriented Middleware, MOM)是在基本的消息传递范型的基础上扩展而来的。在这种范型中,消息系统充当一些相当独立的进程之间的中介。不同的进程以非耦合的方式,通过消息系统异步地交换消息。消息发送者(进程)在发送消息时,将一条消息放入消息系统中,后者接着将该消息转发到与各个接收者(进程)相应的消息接收队列中,一旦消息发送出去,发送者即可执行其他任务了。

  1. 点对点消息范型
  2. 发布 / 订阅消息范型

2.5 远程过程调用范型

远程过程调用涉及两个独立的进程,它们可以分别位于两台独立的计算机上。RPC机制使得编程人员可以采用一种类似于本地过程调用的程序设计机构,以构建网络应用程序。这种机制为进程间通信和事件同步提供了一种方便的抽象。因此,RPC模型使得程序员们能够采用类似于本地过程调用的编程方法,以构建网络应用程序。
DCOM(Distributed COM,分布式COM)是可以在网络上通信的COM组件,又可以称为Network OLE,依据RPC的规范来发展的,它将COM组件的功能扩展及网络上。DCOM及分布式组件对象模型是一系列Microsoft的概念和程序接口,利用这个接口,客户端程序对象能够请求来自于网络中另一台计算机上的服务器程序对象。DCOM处理网络协议的低层次的细节问题,从而使用户能够集中精力解决所要求的问题。
Microsoft公司的ActiveX是基本标准COM接口实现对象链接与嵌入的一种技术,可以运行在一些浏览器上,使得网页可以通过脚本和ActiveX控件交互以产生更加丰富的效果。ActiveX组件也可以运行在服务器进程之间,例如:ADO(ActiveX Data Objects)是一个访问数据源的COM组件,允许开发人员编写代码来访问不同的数据源。

2.6 分布式对象范型

2.6.1 远程方法调用

远程方法调用(Remote Method Invocation,RMI)是面向对象的版本的RPC。在该范型中,进程可以调用进程方法,而该对象可驻留于某远程主机中。与RPC一样,参数可随方法调用传递,也可提供返回值。

2.6.2 对象请求代理

对象请求代理范型由对象请求者(object requestor)、对象提供者(boject)和对象请求代理(Object Request Broker,ORB)组成。在对象请求代理范型中,进程面向对象请求代理发出请求,对象请求代理将请求转发给能提供预期服务的适应对象。对象请求代理范型与RMI范型非常相似。两者的主要区别在于,对象请求代理范型多了一个对象请求代理,对象请求代理充当中间件角色,作为对象请求者的应用程序可访问多个远程(或本地)对象。对象代理还可以作为异构对象之间的协调者,允许由不同API实现的对象及运行于不同平台上的对象进行交互。

2.7 网络服务范型

网络服务范型由服务请求者、服务提供者(对象)和目录服务三者组成。网络服务范型的工作原理:服务提供者将自身注册到网络上的目录服务器上;当服务器请求者(进程)需访问服务时,则在运行时与目录服务器联系;然后,如果请求的服务可用,则目录服务器将向目录服务器进程提供一个有关该服务的引用;最后,进程利用该引用来与所需的服务进行交互。
Java的JINI(Java Intelligent Netword Infrastructure)和Web Service都是属于该范型的网络设施。

2.8 移动代理范型

移动代理是一种可移动的程序或对象。在移动代理范型中,一个代理从源主机出发,然后根据其自身携带的执行路线,自动地在网络上主机间移动。在每一主机上,代理访问所需的资源或服务,并执行必要的任务来完成其使命。
移动代理范型为可以动的程序或对象提供了抽象。
一个移动代理的典型应用系统实例为Agent Tel(Tool Command Language)。

2.9 云服务范型

美国国家标准与技术研究院(NIST)定义了云计算的三种服务模型:基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)。3种类型云服务对应不同的抽象层次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值