第贰章分布式计算范型

第2章分布式计算范型

2.1 消息传递范型消息传递是进程间通信的基本途径。

在消息传递范型中,表示消息的数据在两个进程(进程A和进程B)间交换:一个是发送者,另一个是接收者。消息传递是分布式应用的最基本范型。一个进程发送代表请求的消息,该消息被传送到接收者;接收者处理该请求,并发送一.条应答消息。随后,该应答消息可能触发下一个请求,并引起下一个应答消息。如此不断反复传递消息,实现两个进程间的数据交换。

2.2客户/服务器范型

客户/服务器范型(简称C/S范型)是网络应用中使用最多的一一种分布式计算范型,该模型将非对称角色分配给两个协作进程。其中,服务器进程(server process)扮演服务提供者角色,被动地等待请求的到达;客户进程(client process)向服务器发起请求,并等待服务器响应。

2.3 P2P 范型

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

2.4消息系统范型

消息系统范型或面向对象的中间件(Message-Oriented Middleware,MOM)是在基本的消息传递范型的基础上扩展而来的。如图2-5所示,在这种范型中,消息系统充当–些相当独立的进程之间的中介。不同的进程以非耦合的方式,通过消息系统异步地交换消息。消息发送者(进程)在发送消息时,将一条消息放入消息系统中,后者接着将该消息转发到与各个接收者
(进程)相应的消息接收队列中,一旦消息发送出去,发送者即可执行其他任务了
1.点对点消息范型
在点对点消息范型中,消息系统将来自发送者的一条消息转发到接收者的消息队列中。
与基本的消息传递模型不同的是,这种中间件模型提供了消息暂存的功能,从而可以将消息的发送和接收分离。通过中间件消息系统,发送者可将消息存人接收进程的消息队列中。接收进程则从自己的消息队列中提取消息,并加以处理。
与基本的消息传递范型相比,点对点消息范型为实现异步消息操作提供了额外的一-层抽象。如果要在基本的消息传递范型中达到同样的结果,必须借助于线程或者子进程技术。
2.发布/订阅消息范型
在发布/订阅消息范型中,每条消息都与某一主体或事件相关。对某个事件感兴趣的应用程序可以订阅与该事件相关的消息。当订阅者等待的事件发生时,触发该事件的进程将发布一条消息来宣布该事件或主题。中间件消息系统将这条消息分发给该消息的所有订阅者。发布/订阅消息范型提供了一种用于组播或组通信的强大抽象机制。发布操作使一个进程可以向一组进程组播消息,订阅操作则使–个进程能够监听这样的组播消息。
消息系统范型或MOM模型在分布式应用中的应用已经有相当长的一段历史了。消息队列服务(Message Queue Services,MQS)的应用始于20世纪80年代,直到现在仍然有大量的应用使用该范型:IBM公司的MQ Series应用、Microsoft 公司的Microsoft’s Message Queue、Sun公司的Java Message Service 等。
JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于MOM的API,用于在两个应用程序之间或分布式系统中发送消息,进行异步通信。JMS是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

2.5远程过程调用范型

对于基本的网络协议和基本的网络应用程序来说,消息传递范型是适用的。但是,随着应用程序变得越来越复杂,需要为网络编程提供进一-步的抽象。最好有一-种范型能使开发人员可以像编写在单处理器上运行的传统应用程序–样,编写分布式软件系统。远程过程调用(Remote Procedure Call,RPC)范型就提供了这种抽象。

2.6分布式对象范型

分布式对象范型将面向对象应用到分布式系统中,是面向对象软件开发技术的自然扩展。
该范型使应用程序可访问分布于网络上的各个对象。通过调用对象的方法,应用程序可获取对服务的访问。

2.7网络服务范型

2.8移动代理范型

移动代理范型为可移动的程序或对家提供了抽象。这种范型不进行消息互换,而是当程序/对象在各个参与结点间移动时,携带并传递数据。支持移动代理范型的商业软件包有Concordia系统和IBM公司的Aglet系统。

2.9云服务范型

美国国家标准与技术研究院(NIST)定义了云计算的三种服务模型:基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)。3种类型云服务对应不同的抽象层次:
1)基础设施即服务:云供应处理、存储、网络以及其他基础性的计算资源,以供用户部署或运行自己的软件,包括操作系统或应用。用户并不管理或控制底层的云基础设施,但是拥有对操作系统、存储和部署的应用的控制,以及-一-些网络组件的有限控制。
2)平台即服务:用户可在云基础设施之上部署用户创建或采购的应用,这些应用使用服务商支持的编程语言或工具开发,用户并不管理或控制底层的云基础设施,包括网络、服务器、操作系统、或存储等,但是可以控制部署的应用,以及应用主机的某个环境配置。
3)软件即服务:用户可使用服务商运行在云基础设施之上的应用。用户使用各种客户端设备通过“瘦”客户界面(例如浏览器)等来访问应用(例如基于浏览器的邮件)。用户并不管理或控制底层的云基础设施,例如网络、服务器、操作系统、存储甚至其中的单个应用,除了某些有限用户的特殊应用配置项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值