(武汉理工大学计算机学院 武汉 430063)
校园网是学校教学、科研及管理的重要基础平台.但由于现有网络的异构性、资源地理分布性、动态性和系统权限等诸多原因,各种教学资源不能充分共享和利用,重复开发现象比较严重.从目前来看,现有的校园网存在的问题有:异构系统间的数据共享和互操作性;异构资源的有效管理;某些地方资源闲置造成浪费而其他基础设施较差的地方确有缺乏这种资源.网格技术的出现极大的改善了这种状况.
随着网格服务逐渐渗透到社会的各个行业,网格也已经从最初的五层沙漏模型发展到开放网格服务体系(OGSA),再到 Web服务资源框架(WSRF),网格的研究走向了面向服务的轨道.本文通过对 WSRF的研究,提出了基于 WSRF的教学资源共享的体系结构.
Ian Foster等人首先提出的是五层沙漏模型[1],建立在互联网协议之上,强调协议在网格的资源共享和互操作中的地位,侧重于对网格各部分功能的定性描述.这种结构虽然简单,但是在许多情况下,复杂的服务和应用很难分解成标准而低级的基本协议,而且人们在解决问题时不习惯按照协议的方式来进行.
全球网格论坛组织GGF提出的开放网格服务体系结构OGSA(open grid services architecture),它以服务为中心,充分利用现有的解决方案,遵循现有的 Web服务框架,利用诸如XML(extensible markup language)、SOAP(simple object access protocol)、UDDI与 WSDL(web service describe language)同等现有的 Web service机制,并具有良好的扩展性,可以更好地支持临时服务[2].OGSA提出后,GGF开始着手研究开放网格服务基础设施OGSI草案,但是Web服务支持者认为OGSI有如下4个不利于其发展的弊病:(1)在一个协议中包含了过多的内容,协议对不同内容的规定详细程度也各不相同,使得协议的实现难于搭建;(2)由于过多的使用XML Schema及其扩展,OGSI与现有的 Web服务和XML工具不能很好的联系起来;(3)在编程模式的设计上过于面向对象化,要求Web Service对象一样能够支持实例内部状态的维护,这一点得不到Web服务技术拥护者的支持,同时也难于在基于HTTP的 Web上实现;(4)对 WSDL做了过多的扩展,使得OGSI难以无缝集成到以WSDL为基础的Web服务协议栈之中,使OGSI与Web服务不能很好地结合在一起[3].为了解决OGSI和 Web服务之间存在的矛盾,2004年1月,IBM,Globus和HP共同提出了WSRF协议.WSRF采用了与网格服务完全不同的定义,它规定了资源是有状态的,服务时无状态的.
WSRF的规范是针对OGSI规范的主要接口和操作而定义的,它保留了OGSI中规定的所有基本功能,只是改变了某些语法,并且使用了不同的术语进行表达,WSRF定义了使用Web服务来访问有状态资源的一系列规范,包括Web服务资源生命周期(WS-ResourceLifetime)、Web服务资源属性(WS-ResourceProperties)、Web服务服务组(WSServiceGroup)和 Web服 务 基 本 错 误 (WS-Base-Faults)规范.基于 WSRF的网格环境见图1[4].
图1 基于WSRF的网格环境
信息处理器负责与外界的信息交换,Web服务将自身提供的功能通过 WSDL(Web service description language)定义成一组操作的集合,这些操作可以被分布式系统中的其他组件(服务请求者)调用.WSRF的目的是使资源成为 Web服务框架下的有状态资源,WSRF框架见图2.
WS基本错误定义了被WSRF服务抛出的SOAP格式的错误,WS服务组指定了如何聚合WS资源,WS资源属性定义了同WS资源进行交互的方式,WS资源生命周期定义了如何管理和销毁WS资源,WS可更新引用在端点引用无效的时候来检索所需要的更新版本.
图2 WSRF框架
模型的设计面向的是多个学科之间甚至是不同地域的多个学校之间,因此对各种资源的封装非常重要,模型的设计思路如下:(1)采用一种有效的方法进行资源的封装,屏蔽资源内部的方法和机制,使异构分布的资源能够以统一的方式调用和管理,实现底层模型对用户的透明性;(2)采用已用的或可用的标准化规范,这样有利于模型的推广,在模型升级和替换的过程中不受非标准的约束,能够完全兼容其他的产品;(3)采用基于QoS的资源调度算法,提高资源调度的效率和可靠性.使得服务请求者能准确的获得自己所需要的各种资源并整合起来;(4)系统能够充分提高资源的利用率,通过该模型设计的系统应该能充分发挥闲置资源的作用,这些资源主要是指一些特殊的物理资源,使一些基础设施条件较差的部门能使用这些资源,有效提高资源的利用率.
基于上述的设计思路,设计的模型应能达到如下目标:
1)对教学资源有统一的描述和传输标准,能够实现异构资源标准集成,对用户使用标准的、开放的和通用的协议与接口,提供统一的方式供用户进行访问.
2)根据QoS的要求,基于该模型的系统必须能够提供无缝透明的服务质量.首先,用户可以在任何时间、地点访问各种网格教学资源,网格计算能力可以通过网格系统输送到任何角落,即资源随处可得.支持大量访问及并发访问.并且操作界面友好,便于交互操作.
3)支持主体之间的安全通信,防止主体假冒和数据泄密;需要支持跨虚拟组织VO边界的安全,应避免采用传统的集中管理安全系统;需要支持网格用户的“单一登录”,包括跨多个资源和站点的计算所进行的信任委托和信任转移等.安全性是实现服务质量的基础.
该共享模型的体系结构见图3.主要由3部分组成,最底层为网格资源层,中间层为网格服务层,最上层为网格应用层.该模型最底层提供网格的各种物理和逻辑资源,它是教学资源共享平台的基础,这里的物理资源指的是教学的一些硬件资源,包括多媒体资源、网络教室资源、大型计算资源、存储资源、实验仪器、服务器及其他一些基础设施资源.逻辑资源主要指软件资源,如应用软件和系统软件.这些资源率属于不同的学院或者学校,分布在不同的区域但必须通过网络设备连接起来,即物理上是连通的.
图3 基于WSRF的教学资源共享模型
网格服务层整合底层资源并向用户提供应用接口.由于网格资源具有很强的动态性,它们可能随时加入或离开网格系统,而且,它们可能存在于不同的操作系统中,即资源之间的异构性很强,因此需要将资源通过Web服务定义语言来描述,使其成为一种虚拟化资源,从而屏蔽资源的异构性.虚拟化的资源就可以经由网格中间件统一调度和管理.信息服务包括资源信息收集,将动态资源存储到资源数据库中;周期性更改资源信息;资源发现等内容,资源是这个系统的基础,需要网格节点自治管理,又需要这个共享环境系统对资源进行统一管理,因此必须提供通用的资源管理机制.网络监控和QoS约束模块对各类资源进行实时的性能监控并获得状态数据,为系统管理及资源调度提供依据,由于网格环境中基础设施个体差异较大,分布地域广,所以数据传输中的错误及系统故障在所难免,另外资源所有者随意开关机等都会严重降低系统可用性.资源调度模块包括资源查找、资源定位、统一调度和资源分配,在统一调度的过程中结合QoS约束,为用户提供可靠精确的服务.目录服务是基于网格计算环境的信息服务框架,主要完成信息的发现、注册、查询、修改等工作,允许虚拟组织参加者通过轻量目录管理协议[5](lightweight directory access protocol,LDAP)在由LDAP服务器组合构成的分布目录中对信息/数据进行访问和存储.
网格应用层是面向用户的核心部分,该层为用户设计透明、安全的应用程序和服务,用户不需要知道这些服务时怎么实现的.他们只需要通过用户注册成为合法的网格用户,然后通过网格服务注册中心搜索所需的网格服务,获得该服务的调度方式,就可以使用所需的资源.
1)资源的QoS属性包括资源费用、完成时间、带宽、完成率等,这里我们考虑资源费用和完成时间两个因素.QoS的属性向量可以表示为Q={q1,q2,…,ql},由此统一描述资源,完成资源调度的时间表示为FTij(表示第i个任务对第j个资源的调度时间),任务i使用的资源j的花费表示为RCij.
2)用效用函数[7]表示用户从完成任务中获得的QoS满意程度,效用函数用ui表示,任务集中所有的任务总效用为系统目标是最大化总效用,即能够达到.式中:t为用户规定的完成时间.3)用T= (t1,t2,…,tn)表示所要完成的调度任务,R = (r1,r2,…,rm)为网格资源,则任务与资源的绑定可以用矩阵来表示.式中:amn为任务tm使用资源rn的数量.决策矩阵用B= (ajk)m*d表示.式中:d为用户关心的资源的QoS属性维数,这里d=2.
4)完成时间属于成本型属性,数值越小越好,资源花费也属于成本属性,数值越小越好.我们对可用决策矩阵B进行规范化就可以得到规范化矩阵R.
用户的满意度和完成时间、资源花费2个因素的关系见图4.
图4 用户的满意度和完成时间、资源花费的关系
根据以上对资源的描述,给出一种基于QoS的资源调度的算法描述:
1)遍历任务T,对于每个ti再遍历资源库R,判定是否为所需资源,若是,令资源任务矩阵A的aij为1,否则为0.
2)若矩阵A的第i行全部为0,说明任务ti没有符合的资源,程序结束.
这位导事,在念诵《指路经》(死者入棺时念诵)之后,就不再参与仪式的其他环节。剩下的祭奠活动,交给其他的人完成。
3)若aij≠0,则将资源rj加入资源队列R.
4)用户输入自己的资源属性权重,并给出完成时间约束.
5)遍历资源R,对rj请求QoS指标,即资源rj能提供的QoS值,根据完成时间约束,不符合条件的资源从资源队列中移除.
6)根据资源效用函数,对资源队列中的资源进行排序,计算出每个资源节点的综合效用,根据节点的最大综合效用,得出任务的决策矩阵.
7)给拥有最大综合效用的资源节点分配任务,执行任务调度,直至整个任务结束.
算法的伪代码如下:
MQResSche(T,w)
{
While任务队列非空
for(每个等待调度的任务ti)
f
or(每个可供调度资源rj)
then aij++,生成可用矩阵A
end for
if(矩阵A的第i行都为零)
将ti从任务队列中删除,标记ti调度失败
else
根据效用函数进行排序得到资源队列rj
将其加入到资源-任务队列RT(资源任务对)
end if
end for
从资源-任务队列找出选出最大的综合效用U
将资源rj分配给任务ti
……
将ti从任务队列中删除,标记ti调度成功,清空资源任务队列
endwhile
}
该算法需要用户输入任务T和QoS权重w,然后为用户生成可用资源矩阵,根据可用矩阵得到最大综合效用的资源任务队列.
分析了当前教学资源共享的现状,针对教育资源存在的异构性和分布性方面的难题,提出了一种基于WSRF的教学资源共享模型,通过对资源的描述,屏蔽资源的异构性,分布性等问题.通过基于QoS的资源调度算法,有效实现对资源的全局调度.本文还存在以下问题有待进一步提高:(1)对资源的封装没有给出具体的模型,在 WSRF模型中,资源是有状态的,因此它与传统的基于无状态的资源封装会有很大的差别;(2)共享模型中用户处于一种自主管理的模式,如何对用户行为和操作进行约束是需要解决的问题;(3)资源调度算法中仅仅考虑完成时间和资源花费两个QoS属性,这在实际应用中还有所欠缺,如CPU、网络带宽和完成率等因素.
[1]FOSTER I,KESSELMAN S,TUECKE S.The anatomy of the grid:enabling scalable virtual organizations[J].International J.Supercomputer Applications,2001,15(3):5-6.
[2]刘会斌,都志辉.网格与 Web服务的融合-WSRF和WS-Notification[J].计算机科学,2005,32(2):76-79.
[3]吴 雷.基于WSRF的服务网格实现框架及其应用的研究[D].合肥:合肥工业大学,2006.
[4]沈 彬,刘丽兰,俞涛.制造网格中基于 WSRF的资源共享架构的研究[J].管理技术,2005(2):99-102.
[5]JAMHOUR E.Distribute security management using LDAP directories[C]∥Los Alamitors:IEEE Com-puter Society Press,2001:144-153.
[6]李春林,郑 辉.网格计算中基于QoS的资源调度优化[J].武汉理工大学学报:交通科学与工程版,2008,32(2):199-202.
[7]王 进,解 福.基于效益函数驱动的网格资源调度算法研究[J].计算机工程与设计,2009,30(23):5311-5313.