服务契约在网格计算中的应用

时间:2022-07-16 07:32:47

服务契约在网格计算中的应用

摘 要:从市场经济模式下的网格服务模型出发,研究满足基于市场需求的网格计算为目的,先后讨论了服务契约的三个内容,首先给出粒度的概念,其次描述服务粒度化的必要性,然后阐述了服务契约的产生,最后按照企业建议的内容提出一种格式化契约的形式。该服务契约适用于作为市场模式下网格计算的服务供需双方的电子交易凭证。关键词:网格计算;服务粒度; 服务契约; 电子交易凭证

中图分类号:TN915-34文献标识码:A

文章编号:1004-373X(2010)18-0087-04

Application of Service Contract in Grid Computation

ZHU Hui1,2

(1.Department of Computer Science and Technology, Xi’an University of Post & Telecommunications, Xi’an 710121, China;

2.School of Computer Science & Technology, Xidian University, Xi’an 710071, China)

Abstract: With the development of grid computation technology, the distributed resource scheduling and user certification become an important subject of network service. Service contract as a solution of resource certification and distribution, which is accepted by more and more network service systems. Proceeding from the grid service model under the market economy, aiming at the grid computation based on the market requirement, three contents of service contract are discussed in this paper. At first, the concept of granulation and service granularity are offered. Secondly, it describes what is service contrast. Finally, the form of a contract format is suggested in accordance with the recommendations of the enterprise. The concept of service contract can be applied to be the E-commerce proof between the service providers and service consumers in the grid computation of the market economy.Keywords: grid computer; service granularity; service contract; electronic trade evidence

0 引 言

网格计算(grid computing,GC)[1]作为分布式计算的一个分支,与传统的分布式计算技术相比,网格计算的特点主要体现在三个方面,即协调非集中控制资源,网格整合各种资源,协调各种使用者;使用标准,开放,通用的协议和界面解决认证、授权、资源发现和资源存取等基本问题;网格允许它的资源被协调使用,以得到多种服务质量,满足不同使用者需求,如系统响应时间,流通量,有效性,安全性,及资源重定位,使得联合系统的功效比其各部分的功效总和要大得多。正由于它有如上特点,网格计算已经广泛地被企业和政府用于IT优化、分析加速、信息访问、工程设计、设计协作和信息存取等领域。成功的网格应用主要有:美国的Globus[2],Legion[3],Condor,IPG等;欧洲的CERN DataGrid[4],UNICORE,MOL等;澳大利亚的Nimrod/G[5],EcoGrid等;日本的Ninf[6],Bricks等。最新的欧洲电子对撞机的数据处理系统就是按照网格计算模式建立的三层数据处理交换机构。

网格计算本质上利用互联网技术,形成一个巨大的的资源和作业池。然而,大多数的网格服务都是在可信任的内部网络之上的,而不是与外部的合作者之间进行资源调度,所以它存在着一定的局限性。网格服务商业化的需求将会随着技术进步而扩大,当企业把服务看作一个在商业中能够发挥实际影响时,它会将本地服务资源进行分割,并且提供给任何经授权的作业使用。

1 粒度和服务粒度

粒度[7]即取不同大小的对象,将原来“粗粒度”的大对象分割为若干“细粒度”的小对象,或把若干小对象合并成一个大的粗粒度对象来进行研讨。人们在思考问题时,或者是先从总体进行观察,然后再逐步深入地研究各个部分的情况;或先从各个方面对同一问题进行不同侧面的了解,然后对它们进行综合;或是上面两种方法的组合,即时而从各侧面对事物进行了解,然后进行综合观察,时而综合观察后,对不甚了解的部分再进行观察。根据需要从不同侧面、不同角度反复对事物进行了解、分析、综合、推理,最后得出事物本质的性质和结论。

Zadeh在讨论模糊信息粒度理论时,提出人类认知的3个主要概念,即粒度(granulation)、组织(organization)、因果(causation)。其中,粒度包括将全体分解为部分;组织包括从部分集成为全体;因果包括因果的关联[8-9]。他还进一步提出对粒度的计算,认为粒度计算是一把大伞,它覆盖了对所有有关粒度理论、方法论、技术和工具的研究,指出:“粗略地说,粒度计算是模糊信息粒度理论的超集,而粗糙集理论和区间计算是粒度数学的子集”。

在网计算中, 粒度是指人们处理的文件或记录的规模,即操作的规模和范围,通过粒度组合可以解决一个复杂的作业。例如,一个在数百个处理器上运行的大型仿真程序可能会将整个仿真内容作为一个┦百GB的文件进行读/写,也可能会让各进程只读/写代表其各自负责那部分仿真数据的文件。这样的应用通常由GridFTP(网格文件传输协议)来承担,在网格上提供并行文件系统必须要克服两个主要的挑战:其一是身份验证和用户身份映射;其二是在重负载的情况下提供高性能的处理能力,此时可能会有数千台机器同时访问同一个文件系统。一般可采用统一的身份标识和服务粒度化解决这两个挑战。

服务是公开的一组功能的集合,服务粒度指的是服务所公开功能的范围。随着网络服务市场化和商业化,为数众多的小型企业没有充足资金构建私有的信息处理平台,必定会产生大量的小服务需求,这种需求对以提供服务而盈利的企业非常重要。当Web服务在商业合作伙伴之间创建时,提供服务的企业可以将整块资源进行划分,为每个请求创建单独的服务,使得公司销售服务非常的容易,即服务的粒度化。例如,企业可能提供一个服务,为更快地响应一个用户,需要对他收取更多的费用;或者他也许会为更好的稳定性而收取更多的费用。因此企业可以与诸多消费者之间为这个服务的公司签订两类不同的协议:一是为那些需要更高层次服务签订原意付出多费用的协议;二是为那些满足于更低层次服务的公司签订不愿意付出过多费用的协议。。

随着公司的发展,业务模式不断变化,以及对数据处理的不同需求,表明:“服务是动态的,须要根据需求相对频繁地更新或者替代专项服务”。而服务功能和数据库、操作系统、服务器与存储绑定,这种紧耦合方式缺乏与其他系统的互操作性,初期需要大量的资金投入,往往会导致用户对某个厂商的依赖。如何灵活地构建这些服务粒度以满足各类不同的需要,一般存在以下3种类型,如图1所示。

图1 网络服务组合

基本服务 基本服务即是系统提供的最小粒度服务,或者说是原子服务。这类服务考虑的是利用它们的可重用性,它们是组成一些较大粒度服务的基础。基本服务可以说是原有系统跟业务需求细分的中间结合点,它既是原有系统能够提供的最细粒度服务,同时也是要设计的系统最细粒度服务。

合成服务 合成服务是基本服务的简单组合,只是为了把具有相同功能,但操作不同业务对象的基本服务组合到一起,形成一个对外提供相同功能的服务。它类似设计模式里面的工厂模式,只要告诉服务接口传进来的是哪一个业务对象,那么服务就能自动识别应该调用哪一个基本服务。

组合服务 组合服务是系统里面最复杂的部分,它不是将基本服务简单地堆积到一块,而是最大粒度的服务,里面各个基本服务的关系受到工作流程的控制。它是基本服务与工作流程的结合。

实现服务间松耦合的一个最重要思想就是服务粒度化,它可以降低服务的复杂性,提高服务的重用性,使服务能够更好地适应需求的变化。当用户需要更低成本的服务解决方案时,可以满足他们从小规模的数据处理请求,并随着业务的增长逐步扩大规模,同时根据自身的需求增加服务质量和其他功能等。与此同时,用户可以使用点到点的通信方式,避免新增加昂贵的服务器。服务粒度划分的本质是通过重组、松耦合的方式来实现服务的重用。分布式服务的提供则把松耦合的优势发挥得淋漓尽致。它可以帮助用户摆脱紧耦合的束缚,以较少的投资开始得到数据处理需求,用户只配置需要的功能,并根据需要以渐进的方式扩大整合的规模。

2 服务契约

在WCF(Windows communiction foundation)中,一个服务契约是逻辑相关的操作组合。在网格服务中,最基本的交互是在服务提供者与服务用户之间进行的,服务契约是用于描述服务交互情况的一组规则。对于这两者之间的每一次交互,其中一方提供数据和功能的某一组合,而另一方则使用它。在提供者能够向用户提供所有由该服务提供的数据功能之前,无论采用何种方法,这两者必须达成共识,形成协议或者说建立契约,以此来指定提供者正在执行的这个服务的详细信息。就像是建立任何好的合法契约一样,这两者处于“正常交易关系”,它们仍然是相互独立的个体,双方不会互相干扰彼此的事务处理,除非契约明确规定需要这样做。从本质上而言,这个契约使提供者与用户之间的关联关系满足松散耦合,松散耦合要求交互的双方应该含有尽量少的控制它们之间关联关系的必要信息。软件满足松散耦合的全部原因在于:可以完全独立地创建和控制每┮桓霆IT环境下的组件。选择实现松散耦合的方法是:通过实现系统的契约接口,以及当允许交互双方的每一方都可以独立改变它们实现契约的方式时,确保仍然保持那些已被契约约定的关联关系。

在网格应用中,契约是介于任何的Web服务提供者和任何的服务消费者之间的,它是对服务内容的描述,是对一系列的技术数据和可能的商业信息进行了具体的规范。对于最简单的情况,契约提供了关于一个服务被提供者创建的一些细节,通过同意契约,双方都能够在实际编码进行之前就确定知道什么东西将被提供。所以,契约是对服务行为的可见内容的表示,因此在契约中绝对不会包含提供者和用户实际交换的数据,或者任何关于提供者和用户是如何满足契约要求的说明。另外,由于用户是随着提供者的变化而变化的,那么对于一个简单的服务就可能存在多个契约。既然,契约是使服务起作用的关键,因此它应该包括的内容是:

描述功能需求。提供者将向任何选择遵守契约内容的用户提供的功能。契约应该定义提供者所提供的函数,返回数据或者是这两者的组合。

提供非功能需求。不仅是服务做什么,而是它针对业务如何做的详细信息。这包括两方面的信息,提供者为提供其功能以及数据的责任,同样用户提供其功能以及数据的期望责任,以及他们需要提供的返回,例如有效性、安全性和基于服务考虑的其他性能。

指定在用户与提供者之间的约定规则,这就是通常所说的策略,控制谁可以访问提供者,使用者必须遵守的安全规程,以及其他所有适用于这个交换的规则。

实际上,在服务交互过程中存在两种不同性质的契约。第一种,在两个业务实体之间有合法的约定;第二种是这两者之间旨在共同协作的技术关系。为了简化这个技术关系,可以在契约中使用一个代表某些简化的抽象,这些简化是针对服务如何像个体一样工作而言的。正像合法的契约是对一系列可执行规则和约定进行概述的文档,这些规则和约定是由双方都理解的语言编写的,在IT业也需要以用户和提供者都理解的标准化方式来定义一个保证IT“约定的规则”的契约,为每个使用者提供其相互交流所需要的信息。

3 契约的定义

如上所述,网格中的服务契约不是法律条文,它具备商业作用。这些契约通常涉及到商业牵连,而不只是技术牵连。例如,一个契约包括一个服务如何被认证的细节,具有关于认证、加密和授权的细节;它也可以包含服务层次协议(SLAs);同时它也可以包含商业信息,包括计帐、测量和监管将如何开展。所以,契约包括的是服务信息而不是服务本身,服务只需要被创建1次。当另一个不同的合作者使用这个服务,只需要修改契约。这使得可以用一种轻松有效的方法快速地布置服务。例如,一个电讯提供商想要通过使用一个能够产生麻烦的票据接口,订购进入、记账以及综合的方式为广泛的消费者提供网络服务,它可以通过创建一个服务来做这些,同时为不同的消费者基于每一个消费者的商业和技术的需求来创建不同的契约。

企业推荐执行服务契约定义流程有3点:

(1) 定义服务:包括定义用户类型和描述服务的功能,叙述服务品质和适用性的约束条件,定义服务所提供给预期用户的价值,以及其他使用要求的约束条件。

(2) 定义如何使用服务:定义请求的消息和语义格式,识别特殊结果和行为的条件,确定产生结果的处理、活动和步骤的流程。

(3) 定义服务间如何交互:定义用户如何与服务通信,描述可接受的通信协议,选定适合的调用风格(请求/响应、通知、事件驱动等等),设置你为服务预计的生命期。

完成上述步骤之后,将得到基于定义明确的契约,并且满足松散耦合的服务。该契约是一个关于服务的元数据的集合,包含了很多可以操作的层次,从而表达如何交流和交流的期望目标。结合Ian Foster于2001年提出了网格计算协议体系结构,设计格式化的契约,使服务双方达成以契约方式作为凭证,如图2所示。在这个结构中,各域描述如下:

契约版本:为了保证随着技术的发展,保证契约的兼容性而设定。

契约生命期:表示服务请求者和服务双方达成服务的最长有效时间,这里不是和服务提供者达成的协议,原因在于服务内容在不同服务资源上的开始和截至时间是不同的。

图2 结构化的契约格式

用户信息:通常为用户标识ID。它有两个作用,首先,作业可能会需要多个基础服务设施的项目,为了避免用户多重注册录多个服务而引发的信任危机,采用单点登录和委托,方便于管理,支持便利安全的通信。其次,可以通过这个用户ID允许契约的持有者可以到用户目录进行查询。它和信任路径由可信第三方提供。

信任路径:该域描述用户到服务者之间的信任传递关系,它利用网格中安全通信与认证授权控制的核心协议,同本地安全策略的整合和基于用户的信任策略等功能,实现授权认证和安全控制的描述。

作业描述和业务流程:该域根据定义请求的消息和语义格式描述了作业内容和业务流程,描述实现协调各种资源之间的交互。它将分配的受控资源汇集在一起,形成粒度服务环,供虚拟组织的应用程序共享和调用,识别特殊结果和行为的条件,确定产生结果的处理、活动和步骤的流程。作业定义和业务流程由作业所有者提供。

服务描述:由资源所有者提供的服务单位,用于某个作业所提供的服务内容的描述,包括:定义服务类型和描述服务的功能,叙述服务品质和适用性的约束条件,定义服务所提供给预期用户的价值,以及其他使用要求的约束条件。它起到控制局部资源的作用,它与服务实体从资源池目录中获得。

服务实体:网络所能提供的服务分两类,物理资源包括计算资源、存储系统、目录、网络资源等;逻辑资源包括分布式文件系统、分布计算池、计算机群等。它们均由物理或逻辑实体组成,可以提供计算、带宽、数据、知识、存储、软件、信息的服务内容。

该格式化契约用于描述服务交互情况的一组规则,为作业调度提供了一种作业资源管理依据,它的目的在于:

(1) 利用网格资源管理机制隐藏异构性,为用户提供统一的访问接口;

(2) 屏蔽资源的动态性,保证用户使用的质量;

(3) 尊重资源的本地管理机制和策略;

(4) 提供了作业网格用户信任的审查机制,确保网格资源的安全和资源拥有者的权益。最后将网格提供给作业的各种分散资源联系起来,协作完成作业要求。

4 结 语

随着网络服务市场化商品化的进步,以契约为规范服务提供者与作业所有者之间合约关系的形式必将成为资源分配的首选。本文从分析网格计算应用入手,并结合网格体系结构,先后介绍了粒度、服务粒度、服务契约等概念,随后提出一个结构化契约格式的设计方案以供讨论。由于目前对于服务契约的定义和结构还没有达成一个统一标准,所以本文提出的结构化契约模型具有一定现实意义,笔者将在后续的文章中做进一步的阐述,以实现该结构化的契约。

参考文献

[1]FOSTERI, KESSELMAN C, TUECKE S. The anatomy of the grid: enabling scalable virtual organizations[J]. International Supercomputer Applications, 2001, 21(3): 1-4.

[2]FOSTERI, KESSELMAN C. Globus: a metacomputing infrastructure toolkit[J]. Intl. Supercomputer Applications, 1997, 11(2):115-128.

[3]GRIMSHAW A S, WULF W A, Legion Team. The Legion vision of a worldwide virtual computer[J]. Communications of the ACM, 1997, 40(1): 39-45.

[4]SEGAL B. Grid computing: the European data project[C]//IEEE Nuclear Science Symposium and Medical Imaging Conference. Lyon: IEEE, 2000:15-20.

[5]BUYYA R, ABRAMSON D, GIDDY J. Nimrod/G: an architecture for a resource management and scheduling system in a global computational grid[C]//Proc. of 4th Int. Conf. on High Performance Computing in Asia-Pacific Region. Beijing: HPCAPR, 2000: 283-289.

[6]SATO M, NAKADA H, SEKIGUCHIS, et al. Ninf: a network based Information library for a global world-wide computing infrastructure[C]//Proceedings of HPCN'97.[S.l.]: HPCN, 1997: 491-502.

[7]Z PAWLAK. Rough sets theoretical aspects of reasoning about data[M]. Dordrecht: Kluwer Academic Publishers, 1991.

[8]ZADEH L A. Fuzzy logic=computing with words[J]. IEEE Transactions on Fuzzy Systems, 1996, 4: 103-111.

[9]ZADEH L A. Towards a theory of fuzzy information granulation and its centrality in human reasoning and fuzzy logic[J]. Fuzzy Sets and Systems, 1997,19:111-127.

上一篇:实验室开放管理系统设计与实现 下一篇:一种Logistic密钥及其性能分析