泛型定义为一种模式例子或模型。今天和大家共同学习一下分布式计算泛型,分布式计算泛型总共可划分为五大类共九种常见泛型,接下来一一介绍。
一、消息相关
消息相关的泛型包括消息传递泛型和消息系统泛型。
1.消息传递泛型
消息传递是进程之间互相通信的基本途径。两个进程间传递消息,一个为发送者,一个为接收者。发送者发送一条请求消息,该消息被传送到接收者,由接收着处理后返回一条应答消息。
2.消息系统泛型
消息系统泛型或面向对象的中间件(MOM)是在基本的消息传递泛型的基础上扩展来的。该消息系统可以理解成独立与进程间的中介,这样两个互相通信的进程之间就没有了请耦合关系。由发送者发送一条消息,消息被存入消息系统,然后由消息系统转发的对应的接收者,发送者一旦将消息发送出去,就可以执行其他任务了,剩下的转发工作有消息系统完成。
消息系统泛型可以进一步划分为两种子类型:点对点消息泛型和发布/订阅消息泛型。
1)点对点消息泛型
这种泛型是发送者和接收者一一对应的泛型,由发送者发送一条消息到消息系统,消息系统再转发到接收者的消息队列中,消息系统可以提供暂存机制,将消息的发送和接收分离。接收者从自己的消息队列中提取消息,然后加以处理。
2)发布/订阅消息泛型
这种泛型是多对多的泛型,多个订阅者可以有多个订阅,由发送者发送一条消息到消息系统,消息系统根据订阅者的订阅类型和消息类型将该消息转发到每一个订阅该类型消息的订阅者。这种泛型可以提供一个进程向一组进程组播消息。
二、服务器相关
服务器相关的泛型包括客户/服务器泛型和P2P泛型。
3.客户/服务器泛型
客户/服务器泛型由客户端和服务器组成,将非对称角色分配各两个协作进程,客户进程向服务器发起请求,并等待服务器响应,服务器等待来自客户的请求,处理并给出回应。
4.P2P泛型
P2P泛型源于P2P网络(又称为对等计算机网络)。这是一种无中心服务器,依赖用户群交换的互联网体系,每个用户既是一个节点,又充当服务器职责。可以说是没有服务器,也可以说每个用户端都是一台服务器。
三、远程调用相关
远程调用相关的泛型包括远程过程调用泛型、分布式对象泛型和网络服务泛型。
5.远程过程调用泛型
提供了一种能使开发人员可以像编写在单处理器上运行的传统应用程序一样,编写分布式软件系统的泛型。可以采用与本地过程调用类似的思想与概念,以进行进程间通信。
6.分布式对象泛型
分布式对象泛型将面向对象应用到分布式系统中,是面向对象软件开发技术的自然扩展。可以使应用程序访问分布于网络上的各个对象,通过调用对象的方法,应用层序可以获取对服务的访问。
1)远程方法调用
远程方法调用(RMI)是面向对象版本的RPC。进程可以调用对象方法,该对象可以驻留于某远程主机中。
2)对象请求代理
对象请求代理泛型有对象请求者、对象提供者和对象请求代理组成。进程向对象请求代理发出请求,对象请求代理将请求转发到能提供预期服务的对象。
7.网络服务泛型
网络服务泛型有服务请求者、服务提供者(对象)和目录服务三者组成。首先服务提供者将自身注册到网络上的目录服务器上,当服务请求者需要访问服务时,直接与服务器目录联系,如果请求的服务可用,则由目录服务器返回一个该服务的引用或地址,进程利用该引用与所需的服务进行交互。
四、移动代理
8.移动代理泛型
移动代理泛型是一种可移动的程序或对象。一个代理从源主机出发,然后根据其自身携带的执行路线,自动地在网上主机间移动。在每一台主机上代理访问所需的资源或服务,并执行必要的任务来完成使命。
五、云服务
9.云服务泛型
美国国家标准与技术研究院定义了云计算的三种服务模型:IaaS、PaaS和SaaS。
1)基础实施即服务(IaaS)
以服务的形式提供虚拟硬件资源、用户无需购买服务器、网络设备、存储设备,只需通过互联网租赁即可搭建自己的应用系统。
2)平台即服务(PaaS)
提供应用服务引擎,如互联网应用编程接口、运行平台等。用户基于该应用服务引擎可以构建该类应用。
3)软件即服务(SaaS)
用户通过Internet来使用软件,用户不必购买软件,只需按需租赁软件。