分布式作业--为什么网格在学术应用中很流行,而云计算统治了商业应用?

1.为什么网格在学术应用中很流行,而云计算统治了商业应用?请给出示例来比较它们的优缺点。

答:(1)网格计算:分布式计算的一种,由一群松散耦合的计算机组成的一个超级虚拟计算机,常用来执行一些大型任务。而网格的内涵包括两个方面,一个方面是所谓的效用计算或者随需计算,在这一点上面,网格计算跟云计算是非常相似的,都是通过一个资源池或者分布式的计算资源来提供在线的计算或者存储等服务;另外一个方面就是所谓的“虚拟超级计算机”,以松耦合的方式将大量的计算资源连接在一起提供单个计算资源所无法完成的超级计算能力,这也是狭义上的网格计算跟云计算概念上最大的差别。

资源在独立管理,并不是进行统一布置、统一安排的形态。网格这些资源都是异构的,不强调有什么统一的安排。另外网格的使用通常是让分布的用户构成虚拟组织(VO),在这样统一的网格基础平台上用虚拟组织形态从不同的自治域访问资源。此外,网格一般由所在地区、国家、国际公共组织资助的,支持的数据模型很广,从海量数据到专用数据以及到大小各异的临时数据集合,在网上传的数据,这是网格目前的基本形态。

网格计算非常适合那些有少量用户要访问大量数据的组织(或者数据访问次数较少,但是每次规模都很大的那种);网格很适合虚拟组织中复杂的科学任务;而学术应用正好符合网格的特点,所以网格在学术应用中很流行。

(2)云计算(cloud computing)是基于互联网的相关服务的增加、

使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT 和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。

云计算更适合于那些有大量用户要访问小量数据的环境(或数据访问规模比较小,但是访问次数很大的那种)。如果计算需求比较小,或比较大但是偶尔发生,或不定时发生和突然发生,或不可预测,或呈现出快速而不规则的增长率,那么使用云计算比较好,因为这些类型的计算需求会让你的数据中心有时处于闲置状态,或者不能给你足够的规模经济来分摊数据中心运行的投资。所以云计算适合商业应用。

云计算是一种宽泛的概念,它允许用户通过互联网访问各种基于IT资源的服务,这种服务允许用户无需了解底层IT基础设施架构就能够享受到作为服务的“IT相关资源”。

综上可得,云计算是以相对集中的资源,运行分散的应用(大量分散的应用在若干大的中心执行);而网格计算则是聚合分散的资源,支持大型集中式应用(一个大的应用分到多处执行)。但从根本上来说,从应对Internet 的应用的特征特点来说,它们是一致的,为了完

成在Internet情况下支持应用,解决异构性、资源共享等等问题。

网格计算和云计算的意义就在于,无论是用户还是企业开发者,都能够通过互联网来获得数据或者进行计算,尽管本地资源有限,但是能够通过网络进行复杂的运算,其数据的计算过程对于用户来说就像互联网网络对于本地网络用户一样,正如大家所记得那个网络云,后端的实现是透明的。

(3)云计算与网格计算相同点

云计算和网格计算都是可伸缩的,可伸缩性是通过独立运行在通过Web服务连接的各种操作系统上的应用程序实例的负载平衡实现的;CPU和网络带宽根据需要分配和回收,系统存储能力根据特定时间的用户数量、实例的数量和传输的数据量进行调整。

两种计算类型都涉及到多承租和多任务,即很多用户可以执行不同的任务。访问一个或多个应用程序实例,通过大型的用户池共享资源来降低基础设施成本,提高峰值负荷能力。云计算和网格计算都提供了服务水平协议(SLA)以保证可用性,如果服务达不到承诺的正常运行时间,消费者将由于数据延迟而得到服务补偿。

(4)云计算与网格计算不同点

第一,网格计算的思路是聚合分布资源,支持虚拟组织,提供高层次的服务,例如分布协同科学研究等。而云计算的资源相对集中,主要以数据中心的形式提供底层资源的使用,并不强调虚拟组织(VO)的概念。

第二,网格计算用聚合资源来支持挑战性的应用,因为高性能计

算的资源不够用,要把分散的资源聚合起来;后来到了2004年以后,逐渐强调适应普遍的信息化应用,特别在中国,做的网格跟国外不太一样,就是强调支持信息化的应用。但云计算从一开始就支持广泛企业计算、Web应用,普适性更强。

第三,在对待异构性方面,二者理念上有所不同。网格计算用中间件屏蔽异构系统,力图使用户面向同样的环境,把困难留在中间件,让中间件完成任务。而云计算实际上承认异构,用镜像执行,或者提供服务的机制来解决异构性的问题。当然不同的云计算系统还不太一样,像Google一般用比较专用的自己的内部的平台来支持。

第四,网格计算强调资源共享,任何人都可以做为请求者使用其它节点的资源,任何人都需要贡献一定资源给其他节点。网格计算强调将工作量转移到远程的可用计算资源上。云计算强调专有,任何人都可以获取自己的专有资源,并且这些资源是由少数团体提供的,使用者不需要贡献自己的资源。在云计算中,计算资源被转换形式去适应工作负载,它支持网格类型应用,也支持非网格环境,比如运行传统或Web2.0应用的三层网络架构。网格计算侧重并行的计算集中性需求,并且难以自动扩展。云计算侧重事务性应用,大量的单独的请求,可以实现自动或半自动的扩展。

第五,网格计算用执行作业形式使用,在一个阶段内完成作用产生数据。而云计算支持持久服务,用户可以利用云计算作为其部分IT 基础设施,实现业务的托管和外包。

第六,网格计算更多地面向科研应用,商业模型不清晰。而云计

算从诞生开始就是针对企业商业应用,商业模型比较清晰。

综上可得,云计算是以相对集中的资源,运行分散的应用(大量分散的应用在若干大的中心执行);而网格计算则是聚合分散的资源,支持大型集中式应用(一个大的应用分到多处执行)。但从根本上来说,从应对Internet的应用的特征特点来说,它们是一致的,为了完成在Internet情况下支持应用,解决异构性、资源共享等等问题。

虽然现在云计算的技术还不够成熟,但当今各种所需技术已经成形,而且市场也需要大规模的可扩展IT资源,所以云计算的前景一片大好。云计算预示着我们储存信息和运行应用程序的方式将发生重大变化,它能够让你从世界上的任何地方访问你所需要的应用程序和文件,你将不再受到桌面的限制,因而使得异地群组成员之间的协作变得更加容易。

(5)云计算与网格计算的优缺点:

云计算的四个显著优点是:云计算提供了最可靠、最安全的数据存储中心,用户不用担心数据丢失、病毒入侵等麻烦;云计算对用户端的设备要求最低,使用起来也最方便;云计算可以轻松实现不同设备间的数据与应用共享;云计算为我们使用网络提供了几乎无限多的可能。

缺点主要有两个方面:

1.安全,因为云计算计算能力和数据都在云里,如何保证客户数据的安全就是比较重要的了。安全有两个方面,一个是数据不会丢失,这个一般服务商都会有备份能力解决,但是也是偶尔会发生丢失的;

另外一个就是你的数据不会泄漏,这个虽然服务商也会采取一些措施,不让外部人员,例如黑客等攻击获取数据,但是服务商内部人员的问题也是很大的,例如前一阶段暴露的某国有大型移动运营商内部员工非法销售客户通话列表一事。当然服务商都会说数据放在他们那里是安全的,但是都是他们自说自的,没有一个第三方的权威机构统一认证和评判。

2.网络延迟或者中断。云计算一般都是远程通过网络访问的,虽然现在网速提高很快,但是和局域网相比,速度还是有所延迟的,而如果一旦网络终端,服务也就无法访问,例如前几年海底电缆断了,那么你根本无法访问到国外的云计算服务了。

网格计算的优、缺点:

1.计算网格系统能使企业通过相应的软件将其中大块的任务分

割成众多小的部分,再将各个子任务分配给底层的处理单元。

2.无需在用户端配全套计算机系统和复杂软件,就可以简便地得到网格提供的各种服务。

网格计算的缺点:如果软件的一个节点发生故障,该软件的其他部分在其他节点也同样崩溃。如果该组件在另一个节点上转移组件故障,可以起到缓解作用。如果组件依赖于其他部分的软件来完成一个或多个网格计算任务,那么问题仍然会出现。

2.开发一个应用,并在实体之间使用“发布-订阅”来进行通信。若应用不同语言开发的实体之间进行“发布-订阅”来进行通信,应如何实现?

答:Internet 技术的广泛应用和移动计算、网格计算以及普适计算平台的快速发展,要求分布式系统能够满足大规模、分散控制和动态改变的要求.这就要求系统的各参与者之间,采用一种具有动态性和松散耦合特性的灵活通信范型和交互机制.发布/订阅(Pub/Sub)通信范型

与传统的通信范型(消息传递、RPC/RMI 和共享空间)相比,具有异步、多点通信的特点,使通信的参与者在空间、时间和控制流上完全解耦,能够很好地满足大型分布式系统松散通信的需求.

分布对象通信中间件以解决异构网络环境下分布应用系统之间

的互操作为目标,可以屏蔽网络通信的实现细节,提高系统的可移植性,因而在诸多领域得到了广泛应用,成为分布计算的主流技术之一。

应用:

服务端:

package com.xjd.service;

//Generated by MyEclipse

//定义接口类

public interface ISayHello {

public String sayHaha(String message);

}

package com.xjd.service;

//Generated by MyEclipse

//接口类的实现

public class SayHelloImpl implements ISayHello {

public String sayHaha(String message){

return “hello,”+message+”!”;

}

}

客户端:

package com.client;

import https://www.360docs.net/doc/f02044992.html,.*;

import java.util.*;

import org.codehaus.xfire.client.Client;

public class HelloWebService {

public static void main(String[] args) throws Exception {

Client client = new Client(new

URL("http://localhost:8080/ServerTest1/services/SayHello?wsd

l"));

Object[] results = client.invoke("sayHaha ", new Object[] {"jixiaoxiao"});

System.out.println((String) results[0]);

}

}

若应用不同语言开发的实体之间进行“发布-订阅”来进行通信,应如何实现:

答:

信息的生产者将“事件”发送给发布/订阅中间件;发布者向代理网络发布事件,通过代理网络将事件路由给适当的订阅者。

事件代理间的逻辑连接构成覆盖于物理网络之上的事件代理网络。订阅者向代理网络注册订阅信息,表明希望接收事件的特征;

信息的消费者则向发布/订阅中间件发出一个“订阅”条件,表示对系统中的哪些事件感兴趣;而发布/订阅中间件则保证将所发布的事件及时、可靠地传送给所有对之感兴趣的信息消费者。

相关文档
最新文档