法律状态公告日
法律状态信息
法律状态
2013-08-21
未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20090617 终止日期:20120628 申请日:20040628
专利权的终止
2009-06-17
授权
授权
2005-05-11
实质审查的生效
实质审查的生效
2005-03-16
公开
公开
技术领域
本发明涉及一种使用互联网络的通用数据处理设备及其计算、实现方法,特别是涉及一种基于OGSA规范的网格计算过程表示系统及其实现方法。
背景技术
网格是构筑在互联网上的新兴技术,它将高速互联网、高性能计算机、大型数据库、传感器、远程设备等融为一体,为科技人员和普通使用者提供更多的资源、功能和交互性。互联网主要为人们提供电子邮件、网页浏览等通信功能,而网格功能则更多更强,能让人们透明地使用计算、存储等其他资源。网格已经成为下一代互联网的重要的发展方向。目前,网格浪潮正酝酿涌动的时刻,各国政府纷纷投下巨资,进行网格理论、技术、标准以及应用的研究、开发、实施工作。网格的具体应用已经成为当今网络计算领域关注的焦点,通过广域网络或Internet把若干个超级计算机系统或计算机网络资源以及其它一切可用资源连接在一起构成超级计算环境,提供高性能价格比的超级服务资源环境是网格研究的主要目的。目前,已经有一些网格系统在各个领域成功应用,如Globus、legion、Condor、CERN DataGrid、VEGA、ChinaGrid等。网格的体系结构一直是该领域的焦点,因为它决定着网格的计算方式和发展模式。重要的网格体系结构目前有两个:一个是Foster在早些时候提出的五层沙漏结构,一个是结合Web service技术的开放网格服务结构OGSA,后者是当前学术界和工业界公认的标准,是Global GridForum4的重要标准建议。仅仅有了规范的体系结构,还不能就实现网格的计算,需要研究该体系结构上的计算实现方法。对五层砂漏结构而言,该结构是一个以协议为中心的体系结构,其计算过程涉及到多层协议,所以很难用建模表示一个有效的网格计算过程。对OGSA规范而言,其是一个以服务为中心的模型,通过虚拟的网格服务构建不同规模的服务资源,甚至是更广阔的虚拟组织,应用空间非常广阔,但OGSA仅仅是一个规范框架,其中大部分工作留给各个研究机构、实践机构去完成,又因为网格的广域性带来了网络延迟和异构性等一系列复杂的问题,所以自OGSA框架初步形成以来,还没有一个完整的基于OGSA规范的网格计算过程表示系统及其实现方法。
发明内容
本发明的目的在于结合OGSA规范、Web Service开发技术,对基于OGSA规范的网格过程表示系统进行结构建模,提供一种基于OGSA规范的网格计算过程表示系统;本发明的另外一个目的在于提供一种基于上述系统的实现方法。
为了实现上述目的,所采用的技术方案:一种基于OGSA规范的网格计算过程表示系统,包括通过网络互连的下列部件:
过程服务器PS,管理、收集、协调、存储网格中的过程信息;
过程信息库PIB,储存网络服务树GST数据;
全局时钟GTS,统一整个网格的时间;
网格服务节点GSN,完成特定的服务;
过程服务代理PSA,收集所述网格服务节点GSN的服务过程信息,同时完成和所述过程服务器PS的信息互达;
过程信息管理系统PIMS,提供网格计算过程的存储管理、语义表示、过程监控和可视化界面;
应用代理AA,负责接收用户的应用网格服务请求。
一种基于上述网格计算过程表示系统,按照如下的步骤进行网格计算、并表示网格计算的过程:
(1)应用代理AA向网格PG提交网格服务树GST;
(2)GPS并发地做(3)、(4);
(3)GPS广播GST到所有的LPSi(1≤i≤m);
(4)GPS通知网格PG驱动GST根服务,GST被并发驱动执行;
(5)所有的LPSi(1≤i≤m)并发广播GST到其所属PSA;
(6)所有PSA启动监视其管辖的网格服务节点GSN的进程;
(7)所有网格服务节点GSN并行执行网格计算的三个过程:服务驱动过程DP、服务节点本地服务执行过程CP和服务结果回收过程RP,并把每个过程的起始时间、资源使用、服务时间信息发送给其所对应得PSA;
(8)所有的PSAi(1≤i≤p)并发地收集其所辖网格服务节点的服务过程信息,并把收集到的过程信息发送给其所对应的LPS;
(9)所有的LPSi(1≤i≤m)并发地收集其所辖PSA提供的过程信息,并把收集到的过程信息发送给GPS,把过程信息存放本地数据库PIBi;
(10)GPS收集、监控所有LPSi(1≤i≤m)的过程信息并存放过程信息到数据库PIB,同时监测GST根节点的RP结果,在整个GST被驱动执行过程中,PIMS提取PIB过程信息并显示GST执行过程;当GST根节点的RP结果信息收到后,GPS把服务结果发送给AA,完成GST计算过程。
本发明采用的技术方案具有以下优点和积极效果:本发明为下一代互联网络的核心技术网格计算提供一套可行的计算过程表示系统和实现方法。本发明所述网格计算过程表示系统采用构建在现有的计算机系统之上的应用层来协同工作,属于一种粗粒度并行的网格系统,适合广域网络上的网格计算。本发明采用的多级分布的过程服务器PS、分布的PSA机制以及全局Web时钟体系,使网格计算系统更适合WAN和Internet,具有良好的可扩展性。本发明的网格计算过程表示系统及其方法是基于以上优点,非常适合于基于WAN或Internet的网格系统的监测、计算过程分析和服务性能质量分析等方面,还可以用于互联网络上的Web service的QOS分析、监测等方面。
附图说明
图1网格计算过程表示系统的体系结构示意图;
图2网格计算过程示意图。
具体实施方式
1、网格计算过程表示系统的体系结构描述
下面结合附图,对本发明进一步详细描述:如图1所示,一种基于OGSA规范的网格计算过程表示系统的体系结构包括通过WAN或Internet网络连接的如下主要部件:
(1)过程服务器PS(Process Server)
过程服务器是负责管理、收集、协调、存储网格中的过程信息的计算机。在一个网格上,过程服务器可以采用集中式和分布式两种实现模式。本模型是基于多级分布机制的过程服务器模型。设网格并行环境由n台计算机C1,C2,…,Cn通过m个物理网络N1,N2,…,Nm连接而成,每个物理网络中设置一台计算机为区域过程服务器LPSi(LocalProcess Server)(1≤i≤m),整个网格上有一个全局过程服务器GPS(Grid ProcessServer)。
(2)过程信息库PIB(process information Base)
PIB是过程服务器存放GST的数据库。最初把GST的初始框架存放在PIB中,在GST被执行完毕后,PIB存放的是带有网格计算全过程信息的GST。为了适合网格环境的扩展性,我们对每个LPSi(1≤i≤m)和GPS都配置一个过程信息库,分别记为PIBi(1≤i≤m)、PIB。
(3)全局时钟GTS(global time system)
为了有效支持网格计算过程的表示,需要在网格建立一个全局时钟体系GTS。有关GTS我们可以借鉴时钟同步协议。
(4)网格服务节点GSN(grid service node)
在网格中完成特定服务的计算机或服务资源。
(5)过程服务代理PSA(process service agent)
PSA负责收集各个网格服务节点的服务过程信息,同时完成和LPS的信息互达功能。
(6)过程信息管理系统PIMS(process information management system)提供网格计算过程的过程信息的存储管理、语义表示、过程监控、可视化表示等功能。
(7)应用代理AA,负责接收用户的应用网格服务请求。
2、系统涉及的形式化定义
定义1(网格服务树)一棵网格服务树(Grid Service Tree)是一个三元组GST(GS,GS_SET,R),其中GS为高级网格服务,GS_SET={GS1,GS2,…,GSn}一组低级服务,R为规则集。GS由一组低级服务GS1,GS2,…,GSn按照规则集R实现。我们以GS为根结点,以GS1、GS2、…、GSn为子孙节点,规则集R为连接关系构造网格服务树GST;如果一个低级服务GSi在树种的不同位置出现两次以上,则把它当作两次独立的服务,每次服务在GST中有一个树节点与之对应,第二次以后的服务采用虚拟节点表示。
定义2(网格计算过程)一个网格计算过程GCP(Grid Computing Process)就是按照先根顺序访问网格服务树GST所有节点的并发驱动、实现过程。全过程分三个过程:(1)服务驱动过程,父节点服务驱动子节点服务的过程,我们简记DP(DrivingProcess);(2)节点本地服务执行过程,本节点完成本地服务的逻辑功能,并且承担同步所有子服务工作,我们简记CP(Computing Process)。(3)服务结果回收过程,子节点服务向父节点服务返回服务结果的过程,我们简记RP(Receiving Process)。三个过程DP、RP、CP之间是异步并行进行,并且需要一定的同步机制。
定义3(网格服务树节点)
一棵网格服务树GST的树节点(GST NODE)可以表示一个四元组GSTN(GSTI,DL,RL,CL)。其中GSTI为网格服务树信息(GST Information);DL是本服务节点所驱动的其它子服务的列表(Drive List),即该服务节点的所有子服务有序集合。CL是本服务节点所完成的本地服务的进程列表(Computing List),即该服务节点所有本地服务的有序集合。RL为该服务节点接收其所有子服务的服务结果列表(Receive List)。DL可以表示为DL(SID,DST),其中SID(Service ID)表示服务标志符,DST(Drive StartTime)表示服务SID的驱动起始时间;CL可以表示为CL(CID,CST,CFT,RSL),其中CID(Computing process ID)表示本地计算进程标志符,CST(Computing Start Time)表示CID计算的起始时间;CFT(Computing Finished Time)表示CID计算的结束时间;RSL是资源列表。RL可以表示为RL(SID,RFT,RSL),其中SID(Service ID)表示服务标志符,RFT(Receive Finish Time)表示服务SID的服务结果回收结束时间;RSL是资源列表。RSL的主要属性是:序号、资源类型、资源标志符、资源数量、使用时间;资源类型包括:CPU、Disk I/O、Communication、Memory、Disk。
定义4(网格计算过程表示系统GCPPS)
一个网格计算过程表示系统(grid computing process presentation system)可以表示为一个七元组GCPPS(GPS,LPSS,PIB,PIBS,GTS,PSAS,PIMS),其中GPS为全局过程服务器,LPSS是区域过程服务器集合{LPSi|(1≤i≤m)};PIB是全局过程信息库;PIBS区域过程信息库集合{PIBi|(1≤i≤m)};GTS全局时钟体系;PSAS是过程服务代理集合{PSAi|(1≤i≤p)};PIMS是过程管理系统。一个GCPPS的体系结构图如图1所示。
定义5(过程网格PG)一个过程网格(process grid)可以表示为一个二元组PG(GS,GCPPS),其中GS表示网格PG的所有网格服务节点的集合{GSN1,GSN2,…,GSNk},GCPPS表示网格PG的网格计算过程环境。假设GS中的每个GSNi(1≤i≤k)可以提供多个网格服务。
3、网格计算过程表示系统工作原理
如图2所示,已知一个过程网格PG(S,GCPPS),一个GST在PG上被执行的过程是一个并发、异步驱动的过程。具体执行过程如下:
(1)应用代理AA(applications agent)向网格PG提交网格服务树GST,图2的<1>表示这一过程;
(2)GPS并发地做(3)、(4);
(3)GPS广播GST到所有的LPSi(1≤i≤m),图2的<2>表示这一过程;
(4)GPS通知网格PG驱动GST根服务,GST被并发驱动执行,图2的<4>表示这一过程;
(5)所有的LPSi(1≤i≤m)并发广播GST到其所属PSA,图2的<3>表示这一过程;
(6)所有PSA启动监视其管辖的网格服务节点(GSN)的进程;
(7)所有网格服务节点,并行执行网格计算的三个过程:DP、CP、RP,并把每个过程的起始时间、资源使用、服务时间信息发送给其所对应得PSA,图2的PartC和<5>表示这一过程;
(8)所有的PSAi(1≤i≤p)并发地收集其所辖网格服务节点的服务过程信息,并把收集到的过程信息发送给其所对应的LPS,图2的<6>表示这一过程;
(9)所有的LPSi(1≤i≤m)并发地收集其所辖PSA提供的过程信息,并把收集到的过程信息发送给GPS;把过程信息存放本地数据库PIBi。,图2的<7>表示这一过程;
(10)GPS收集、监控所有LPS的过程信息并存放过程信息到数据库PIB;同时监测GST根节点的RP结果;如果GST根节点的RP信息收到,则把服务结果发送给AA;结束GST计算过程。在整个GST被驱动执行过程中,PIMS提取PIB信息并过程显示GST过程。
4、具体实现方法描述
下面给出实现该系统的四个主要算法:
已知一个过程网格PG(GS,GCPPS),GST_READY_QUEEN是PG的网格服务树就绪队列;GST_STARTING_QUEEN网格服务树启动队列;过程Driving(GSTN)表示驱动一个以GSTN为根节点的网格服务树的计算过程;过程Receiving(GSTN)表示异步接收以GSTN为根节点的网格服务树的服务结果。过程Computing(GSTN)表示计算GST服务。finished(GSTN)表示判别以GSTN为根节点的网格服务树是否完成。Start(p)启动进程p;MSG网格服务过程消息。
算法1(GPS算法)
在GPS上运行的四个并发进程:网格服务接受进程、网格服务驱动进程、网格服务结果接收进程、接收服务过程信息。下面分别给出主要步骤。
a.网格服务接受进程
(1)重复执行(2)~(4)步;
(2)接收应用代理AA提交的一个高级服务;
(3根据服务信息构建网格服务树GST;
(4)把新的GST加入网格服务树就绪队列GST READY_QUEEN;
b.网格服务驱动进程
(1)重复执行(2)~(5)步;
(2)取GST_READY_QUEEN的一个网格服务树GST;
(3)执行Driving(GST)和Receiving(GST);
(4)把GST加入GST_STARTING_QUEEN对列;
(5)广播GST到所有的LPS;
c.网格服务结果接收进程
(1)对GST_STARTING_QUEEN的每个GST执行(2)步;
(2)如果finished(GST)为真,则执行(3)~(5)步;
(3)发送GST的网格服务结果到AA;
(4)从GST_STARTING_QUEEN中删除GST;
(5)广播“Delete GST”命令到所有的LPS;
d.接收服务过程信息
(1)重复执行(2)~(5)步;
(2)从所有LPS接受MSG;
(3)根据MSG确定GST;
(4)存储GST到PIB;
(5)通知PIMS刷新GST的可视化显示过程;
算法2(LPS算法)
LPS算法在PG的所有LPS上运行。在每个LPSi(1≤i≤m)上都运行的两个并发进程:传播网格服务树进程、接收服务过程信息进程。下面分别给出主要步骤。
a.传播网格服务树进程
(1)重复执行(2)~(10)步;
(2)接收来自GPS的MSG;
(3)If MSG是“NEW GST”Then
(4)存储GST到PIBi;
(5)选播GST到LPSi所属的PSP;
(6)End if;
(7)If MSG是“Delete GST”Then
(8)删除本地GST缓冲;
(9)选播“Delete GST”到LPSi所属的PSP;
(10)End if
b.接收服务过程信息进程
(1)重复执行(2)~(5)步;
(2)从LPSi的所有PSA接收MSG;
(3)根据MSG确定GST;
(4)存储GST到PIBi;
(5)发送MSG到GPS;
算法3(PSA算法)
PSA算法在PG的所有PSA上运行。
(1)重复执行(2)~(15)步;
(2)接收所有来自其对应的LPSi、GSN的MSG;
(3)If MSG来自GSN Then
(4)根据MSG确定GST;
(5)刷新本地缓冲的GST信息;
(6)发送MSG到该PSA的LPS;
(7)End if;
(8)If MSG来自LPS Then
(9)根据MSG确定GST;
(10)If GST是一个新服务then
(11)本地缓冲GST;
(12)End if;
(11)If MSG是“Delete GST”Then
(13)删除本地GST缓冲;
(14)End if
(15)End if
算法4(GSN算法)
已知网格PG(GS,GCPPS),假设一个GST(GS,GS_SET,R)可以由网格PG提供的网格服务集实现。PG中的GSNi(1≤i≤k)完成GST的GSTN所描述的网格服务,其过程由五个系统进程完成。这五个进程分别是:a.远程子服务驱动进程RSDP(Remote Service DrivingDrocess);b.本地子服务驱动进程LSDP(Local Service Driving Drocess);c.远程子服务监控进程RSMP(Remote Service Monitor Process);d.本地子服务监控进程LSMP(Local service Monitor process);e.同步监控进程SMP(Synchronous Monitorprocess)。
a.远程子服务驱动进程RSDP(Remote Service Driving Drocess)输入:GSTN的DL和RL列表;
(1)Count=0;/*成功驱动的远程子服务数目*/
(2)DLSet={Dl1,Dl2,…,DLn};/*DLi表示DL的第i个服务*/
(3)While DLSet≠φdo/*驱动所有远程子服务*/
(4)从DLSet取一个服务VDL(SID,DST);
(5)If启动Driving(VDL.SID)成功Then
(6)从GTS获取启动时间StartTime;
(7)VDL.DST=StartTime;/*赋驱动时间*/
(8)启动Receiving(VDL.SID);
(9)count++;
(10)申请一个回收列表节点RLcount;
(11)RLcount.SID=VDL.SID;
(12)RLcount.RST=VDL.SID;
(13)根据VDL,RLcount更新GSTN;
(14)MSG=(GSTN,VDL,RLcount);/*构造消息*/
(15)发送MSG到其PSA;
(16)DLSet=DLSet-{VDL};
(17)End if
(18)End while;
b.本地子服务驱动进程LSDP(Local Service Driving Drocess)输入:GSTN的CL列表;
(1)CLSet={Cl1,Cl2,…,CLn};/*CLi表示CL的第i个服务*/
(2)While CLSet≠φdo/*驱动所有本地子服务*/
(3)从CLSet取一个服务VCL(CID,CST,CFT,RSL)
(4)If启动Computing(VCL.CID)成功Then
(5)从GTS获取启动时间StartTime;
(6)VCL.CST=StartTime;/*赋驱动时间*/
(7)根据VCL更新GSTN;
(8)MSG=(GSTN,VCL);/*构造消息*/
(9)发送MSG到其PSA;
(10)CLSet=CLSet-{VCL};
(11)End if
(12)End while;
c.远程子服务监控进程RSMP(Remote Service Moni tor Process)输入:GSTN的RL列表;
(1)RLSet={Rl1,Rl2,…,RLn};/*RLi表示RL的第i个服务*/
(2)While RLSet≠φdo/*监控所有本地子服务*/
(3)从RLSet取一个服务VRL(SID,RFT,RSL);
(4)If进程Receiving(VRL.SID)结束Then
(5)从GTS获取结束时间FinishedTime;
(6)VCL.RFT=FinishedTime;/*赋结束时间*/
(7)把VRL.SID花费的远程资源存储到VRL.RSL;
(8)根据VRL更新GSTN;
(9)MSG=(GSTN,VRL);/*构造消息*/
(10)发送MSG到其PSA;
(11)发送VRL.SID的“服务结果”到进程SMP;
(12)RLSet=RLSet-{VRL};
(13)End if
(14)End while;
d.本地子服务监控进程LSMP(Local service Monitor process)输入;GSTN的CL列表;
(1)CLSet={CL1,CL2,…,CLn};/*CLi表示CL的第i个服务*/
(2)While CLSet≠φdo/*监控所有本地子服务*/
(3)从CLSet取一个服务VCL(CID,CST,CFT,RSL)
(4)If进程Computing(VCL.CID)结束Then
(5)从GTS获取结束时间FinishedTime;
(6)VCL.CFT=FinishedTime;/*赋结束时间*/
(7)计算VCL.CID所需本地资源并记入VCL.RSL;
(8)根据VCL更新GSTN;
(9)MSG=(GSTN,VCL);/*构造消息*/
(10)发送MSG到其PSA;
(11)发送VCL.SID的“服务结果”到进程SMP;
(12)CLSet=CLSet-{VCL};
(13)End if
(14)End while;
e.同步监控进程SMP(Synchronous Monitor process)输入:GSTN的CL列表;
(1)CLSet={CL1,CL2,…,CLn};/*CLi表示CL的第i个服务*/
(2)RLSet={Rl1,Rl2,…,RLn};/*RLi表示RL的第i个服务*/
(3)While CLSet≠φand RLSet≠φdo/*监控所有本地、远程子服务*/
(4)MSG=ReceiveMassage(LSMP,RSMP);/*接收LSMP、RSMP进程发来的消息*/
(5)把MSG输入同步区,并通知等待该MSG的本地子服务;
(6)If MSG来自LSMP Then
(7)根据MSG确定CLi;
(8)CLSet=CLSet-{CLi};
(9)End if
(10)If MSG来自RSMP Then
(11)根据MSG确定RLi;
(12)RLSet=RLSet-{RLi};
(13)End if
(14)End while
(15)得到GSTN最终服务结果GSTNResult;
(16)MSG=(GSTN,GSTNResult);/*构造消息*/
(17)If GSTN是GST的根节点Then
(18)发送MSG到GPS;
(19)Else
(20)发送MSG到其GSTN的父网格服务节点;
(21)End if
(22)发送“GSTN执行结束”到其PSA;
(23)GSTN执行结束;
5、实施例
构建由10台PC机和三个物理网络A、B、C构成的广域网络来模拟一个实验网格。A物理网络由4台pc构成,其中一台作GPS,B、C物理网由三台pc构成。A物理网络由固定IP地址的局域网络联入Internet,B、C网络由FTTB拨号联入Internet。A、B、C分别处于城市的三个不同的行政区,也就是说A、B、C由WAN连接构成。WAN的通信数度在128K/s~512K/s范围内变化。每个物理网络上选一台pc当作LPS,所有pc都运行一个PSA。每台pc都是网格服务节点(GSN)。
网格服务示例:设一共有n个基本网格服务{GS1,GS2,…,GSk},对每个服务GSi(1≤i≤k)执行算法如下:
Int GS(int i)
{
Wait_Random(i);表示网络延迟;
Sleep(i);等待i个时间段(秒),代表本地计算时间,;
Return i;返回的服务结果;
}
忽略了服务使用的其它资源,仅仅探讨服务过程的时间因素。模拟由{GS1,GS2,…,GSk}运用加(+)、减(-)、乘(*)、除(/)运算构成的复合算数运算服务。例:一个高级网格服务是:GS=GS1+(GS2+GS3*(GS6/GS8)*7)-GS7。显然可以用GST表示GS。当服务的个数K大于网格服务节点的个数时,我们采用轮转法在网络A、B、C的计算机上分配服务。实验分别对k=3、7、15、31、63、127时进行。实验是针对一个均衡蛇型GST进行的,均衡蛇形GST构造如下:首先构造一个K(k=3、7、15、31、63、127)个节点的均衡二叉树,然后把k个GS1,GS2,…,GSk按先根顺序蛇型分布在二叉树上。
Web Service技术已经成为开发下一代互联网络的主要技术之一,其基于服务的思想恰好与OGSA规范相吻合。因此,Web Service技术在网格系统的建设中将起到重要的作用。我们利用Microsoft.net的C#和Web service框架实现了本文描述的实现方法。同时,我们应用一个免费软件WebTime模拟了GTS,在模拟网格的每个计算机上安装WebTime完成时钟同步软件。试验结果表明本发明所述的网格计算过程表示系统及其实现方法能够胜任网格计算及其过程表示的需要。
机译: 一种基于BD-J规范的内容提供方法和一种计算机可读介质,该介质记录有用于实现相同内容的程序
机译: 基于新型规范化字符串编辑距离实现的手持式设备基于嗡嗡声的音乐信息检索方法和系统
机译: 由计算机实现的用于在机器执行一类或多类方法的过程中管理可伸缩异常的过程,一种使程序运行时电池在操作时间内所需的时间最小化的方法,以及一种由每台计算机实现以管理的系统在一台或多台计算机上执行方法时启动的异常