网格环境内面向代理编程计算任务的自适应方法

文档序号:6464996阅读:179来源:国知局
专利名称:网格环境内面向代理编程计算任务的自适应方法
技术领域
本发明涉及通过移动代理解决计算任务自适应网格环境的方法,属于网格与 移动代理的交叉领域。
背景技术
网格和代理是从不同的角度解决分布式系统中协调、协商、协作的问题。网 格是通过一系列工具为动态的地理上分布的虚拟组织提供安全可靠的资源共享 基础架构,因此网格可以认为是分布式计算环境的"骨架"。而代理是一种能够 适应动态环境的自治的实体,通过自治的行为实现它们的设计目标,其中移动代 理不仅具有代理的自治性还具有移动性,因此代理可以认为是分布式计算环境的
"大脑"。网格缺乏智能但其安全可靠,而代理则相反,因此结合网格和代理各 自的优势能够更好的解决大规模的分布式计算问题。
目前已有将代理技术应用到网格环境中解决若干问题的方案,如利用代理调 度网格任务,利用代理对网格资源和任务的属性预测,利用移动代理获取网格资 源信息等,然而在这些方案中,网格和代理并没有互相弥补各自的缺陷,代理的 安全性问题,资源监控,数据传输方案依然是自成一体,网格平台和代理平台完 全独立运行。因此需要结合两者优势提出新的、整合的平台。现有的平台如 DEINF/UFMA的MAG项目提出在网格中间件InteGrade和代理中间件Jade的基础上 再开发一个中间件MAG来支持任务的错误容忍,然而该方案中任务代理本身并不 具备智能性,任务错误的侦测、移动行为的决策都是通过其他代理来完成的。
此外,网格调度一直是网格研究的热点。目前网格中任务的调度算法大多来 源于集群,然而网格环境与集群环境差异巨大,如网格资源高度动态和不可预测 而集群资源变化较小和可预测,网格环境需要考虑网络环境而集群则可以忽略 等。因此,除了调度算法以外,使任务能够产生自适应网格环境变化的行为是确 保任务稳定、快速执行的关键。

发明内容
技术问题本发明的目的是提供一种网格环境内面向代理编程计算任务的自 适应方法,解决网格环境与移动代理的高效的融合问题,解决任务代理能在网格 环境下的自适应问题。
技术方案本发明提出的网格环境内面向代理编程计算任务的自适应方法, 其特征在于该方法增加新的作业类型"AGENT",使得任务代理的创建过程与现 有网格任务的创建过程完全兼容;通过部署G-A容器,该容器提供满足FIPA规 范和WSRF规范的代理管理服务和代理消息服务,支持任务代理的移动和定位过 程,使得任务代理能够自适应网格环境的变化,智能的移动决策,其具体的过程 如下-
第一步:面向代理编程的计算程序设计
11. 编写计算行为,它包含计算任务的代码,
12. 编写移动策略行为,它在独立于代理的线程中执行,感知环境的变化和选 择移动的目标,
13. 编写序列化中间数据行为,定义程序中需要序列化的数据,定期或者移动 前调度该行为执行,
第二步:创建任务代理
21. 编写作业描述文件,
22. 任务调度,
23. 任务提交
i. 网格客户端程序将作业提交给资源的作业管理工厂服务;
ii. 作业管理工厂服务验证用户代理证书,并对该用户的行为授权, 如果验证和授权成功则转到下一步,否则通过客户端安全验证失
败;
iii. 作业管理工厂服务解析作业描述文件,如需准备数据,则调用网 格数据传输服务将需要的数据传到指定的目录;
iv. 作业管理工厂服务发现作业的类型为"AGENT",将控制转移到代 理管理服务;
v. 代理管理服务载入代理的代码,如果载入成功则返回全局的代理 标识,否则返回创建代理失败;vi. 代理管理服务更新代理信息表,并与主代理管理服务同步信息; vii. 任务代理创建完成; 第三步:移动任务代理
31. 代理的移动策略行为触发移动,
32. 代理中断当前执行,并执行序列化中间数据行为,
33. 代理通知本地代理管理服务需要移动,
34. 本地代理管理服务通过代理消息传输服务告知远程代理管理服务将要向他 移动一个代理,同时调用网格数据传输服务将与代理相关数据传输到远程资源,
35. 当本地代理服务收到传输成功的消息后,发送启动代理的ACL命令消息给 远程代理管理服务,
36. 远程代理管理服务根据传输过来的代理信息重建代理,如果成功则返回成 功消息,并更新代理信息表;否则,返回失败,
37. 本地代理管理服务收到成功的消息,则将本地代理的信息删除,同时更新 本地代理信息表;否则重新选择资源并转到步骤34, 第四步:任务代理的定位
41. 用户根据任务代理标识,首先向用户所在主机的代理信息表缓存査询代理 位置,如果查询成功则转到44;否则转到下一步;
42. 用户根据任务代理标识向主G-A容器中的代理管理服务请求该任务代理 的位置;
43. 主代理管理服务査询代理信息表,如果查询成功则返回给用户该任务代理 的位置,否则返回失败消息;
44. 用户根据获取的任务代理位置,向该任务代理发出请求服务信息,如请求 成功,则更新用户所在主机的代理信息表缓存。否则转到步骤42。
FIPA规范和WSRF规范的代理管理服务和代理消息服务的实现和部署的步 骤如下
①代理管理服务该服务的特性是其功能满足FIPA规范,其实现满足WSRF规 范,需要实现的功能如下 A.支持代理创建,包括
Al.支持作业管理中间件的调用,根据任务属性创建任务代理; A2.支持从备份的中间数据恢复代理;A3.支持移动的任务代理的重建;
B. 支持代理删除;
Bl.失败代理数据的删除;
B2.代理移动成功后,将本地的代理数据删除;
C. 支持自动维护代理信息表;
Cl.创建代理后的代理信息的更新, C2.删除代理后的代理信息的更新,
D. 支持代理位置査询;
② 部署主G-A容器,它作为主资源监控和发现服务和主代理管理服务的宿主容 器;
③ 部署子G-A容器,它们必须指出主资源监控和发现服务和主代理管理服务的
宿主容器。
有益效果本发明提出的网格环境内面向代理编程计算任务的自适应方法与 现有的通过移动代理解决计算任务自适应网格环境的方法相比有如下优点
1. 本发明提出的G-A容器将网格和代理技术更为紧密的结合,表现为代理将直 接利用现有的网格安全基础设施、网格数据传输服务、网格资源监控与发现 服务,为代理的安全、数据传输、调度和决策提供直接支持。
2. 通过实现同时满足FIPA规范和WSRF规范的代理管理服务和代理消息传输服 务,与目前通过多层的中间件实现两者结合相比,简化了网格对代理技术支 持的复杂度。
3. 通过面向代理编程的方法设计网格任务,让编程人员确定数据保存行为和移 动决策行为,使得任务不仅能够智能的决策移动的时机而且在移动到目标容 器后能够恢复到前一个较为接近的执行状态,保证任务的稳定,有效的执行。
4. 通过新定义的任务类型"AGENT",确定提交的任务将是一个移动代理。任务 描述文档的定义以及任务的提交过程与网格中现有其他类型的任务如
"F0RK"、 "MPI"、 "MULT"的提交过程完全兼容,这样保持在现有客户端的与 服务端程序少量修改的情况下,支持新的代理任务的管理。


图1是G-A容器体系结构图;图2是创建任务代理流程图; 图3是移动任务代理流程图; 图4是定位任务代理流程图。
具体实施例方式
为了更好的解释上述技术方案产生的原因及其实现细节,现对各步骤详细说 明如下
步骤l: G-A容器(Grid-Agent Container)的实现和部署
网格容器如Globus Toolkit4通过实现基于WSRF标准的WEB服务提供各种 资源共享的功能,包括网格安全基础设施(GSI),网格数据传输,网格资源监 控和发现,网格作业管理,其他功能仍在不断完善。基于此开放的网格服务框架, 将支持移动代理的服务加入到该框架中,直接支持代理的管理和交互是可行的。 考虑到这里只关心多个移动代理解决大规模分布式计算的自适应问题,需要裁减 多代理系统的功能。开发的G-A容器是一个基于开放的网格服务框架,能够容纳 移动代理的网格容器。具体的开发和部署步骤如下
④开发代理管理服务,该服务的功能满足FIPA规范,其实现方式满足WSRF规 范,具体需要实现如下功能
A. 支持代理创建,包括
a) 支持作业管理中间件的调用,根据任务属性创建任务代理;
b) 支持从备份的中间数据恢复代理;
c) 支持移动的任务代理的重建;
B. 支持代理删除;
a) 失败代理数据的删除;
b) 代理移动成功后,将本地的代理数据删除;
C. 支持自动维护代理信息表;
a) 创建代理后的代理信息的更新
b) 删除代理后的代理信息的更新
D. 支持代理位置査询;
开发代理消息传输服务,该服务的功能满足FIPA规范,其实现方式满足WSRF 规范,实现支持ACL消息的处理过程;⑥ 部署主G-A容器。它作为主资源监控和发现服务和主代理管理服务的宿主容 器;
⑦ 部署子G-A容器。它们必须指出主资源监控和发现服务和主代理管理服务的 宿主容器。
步骤2:面向代理编程的计算程序设计
基于面向对象方法的程序在网格环境内执行的一个缺点在于其缺乏有效的 迁移手段。通常进程或线程的迁移代价高昂,如JAVA中可以通过使用Brakers 框架来支持线程的迁移。由于程序的开发人员通常清楚什么数据对程序恢复执行 是必要的,因此可以通过让程序员自己指定哪些数据需要序列化,基于这些数据 不能完全恢复代理中断执行前的瞬间状态,但可以恢复到"上一个"一致的状态。
借鉴Jade中代理行为的概念,Jade是一个开源的基于JAVA的代理开发框架。 编写任务代理的步骤如下
⑧ 编写计算行为。它包含计算任务的代码。
⑨ 编写移动策略行为。它在独立于代理的线程中执行,感知环境的变化和选择 移动的目标。
⑩ 编写序列化中间数据行为。定义程序中需要序列化的数据,定期或者移动前 调度该行为执行。
步骤3:创建任务代理
为保持与现有网格作业管理中间件的兼容,任务代理的创建过程保持与作业 提交的过程相同,作业的类型除了 "F0RK"、 "MULTI"和"MPI"外,另外还需要 支持"AGENT"。当作业管理工厂服务发现提交的作业类型是"AGENT",则将该 作业的实例化过程交给代理管理服务,具体的步骤如下 编写作业描述文件。该文件需要明确两类作业信息
A. 作业属性作业类型、程序语言、执行程序、程序执行参数、上传数据 文件地址、结果输出地址、错误输出地址、代理证书等;
B. 作业执行需求体系结构、CPU理速度、CPU个数、可用内存大小、可用
硬盘空间等;
任务调度。调度器从网格资源监测和发现服务获得网格环境内所有资源的信 息,并根据作业执行需求根据最佳匹配算法(即匹配性能最高的资源)选择 执行的资源。 任务提交。
A. 网格客户端程序将作业提交给资源的作业管理工厂服务;
B. 作业管理工厂服务验证用户代理证书,并对该用户的行为授权,如果验 证和授权成功则转到下一步,否则通过客户端安全验证失败;
C. 作业管理工厂服务解析作业描述文件,如需准备数据,则调用网格数据 传输服务将需要的数据传到指定的目录;
D. 作业管理工厂服务发现作业的类型为"AGENT",将控制转移到代理管理 服务;
E. 代理管理服务载入代理的代码,如果载入成功则返回全局的代理标识
(AID),否则返回创建代理失败;
F. 代理管理服务更新代理信息表,并与主代理管理服务同步信息;
G. 任务代理创建完成。
步骤4:移动任务代理
代理的移动策略触发代理的移动。而代理管理包含在网格容器中使得代理可 以方便的访问本地资源监测与发现服务收集的本地资源信息,为代理移动的决策
提供支持。代理移动的步骤如下
⑩代理的移动策略行为触发移动
⑩代理中断当前执行,并执行序列化中间数据行为 代理通知本地代理管理服务需要移动
本地代理管理服务通过代理消息传输服务告知远程代理管理服务将要向他 移动一个代理,同时调用网格数据传输服务将与代理相关数据传输到远程资 源。
当本地代理服务收到传输成功的消息后,发送启动代理的ACL命令消息给远
程代理管理服务。
远程代理管理服务根据传输过来的代理信息重建代理,如果成功则返回成功
消息,并更新代理信息表;否则,返回失败。 逸本地代理管理服务收到成功的消息,则将本地代理的信息删除,同时更新本
地代理信息表;否则重新选择资源并转到④。 步骤5:任务代理的定位
由于任务代理会随环境的变化移动,因此跟踪任务代理位置是确保能够获得任务代理的执行状态和执行结果的关键。任务代理的定位过程与域名服务器寻找 IP地址的过程相似,具体的步骤如下
21用户根据任务代理标识(AID),首先向用户所在主机的代理信息表缓存查询
代理位置,如果査询成功则转到④;否则转到下一步; 22用户根据任务代理标识(AID)向主G-A容器中的代理管理服务请求该任务
代理的位置;
23主代理管理服务査询代理信息表,如果査询成功则返回给用户该任务代理的
位置,否则返回失败消息; 24用户根据获取的任务代理位置,向该任务代理发出请求服务信息,如请求成
功,则更新用户所在主机的代理信息表缓存。否则转到②。 步骤6:任务结果的获取
任务代理最终会将结果以文件的形式传输到作业属性定义的结果输出地址 中,用户可以直接根据该地址下载数据。
权利要求
1.一种网格环境内面向代理编程计算任务的自适应方法,其特征在于该方法增加新的作业类型“AGENT”,使得任务代理的创建过程与现有网格任务的创建过程完全兼容;通过部署G-A容器,该容器提供满足FIPA规范和WSRF规范的代理管理服务和代理消息服务,支持任务代理的移动和定位过程,使得任务代理能够自适应网格环境的变化,智能的移动决策,其具体的过程如下第一步面向代理编程的计算程序设计11.编写计算行为,它包含计算任务的代码,12.编写移动策略行为,它在独立于代理的线程中执行,感知环境的变化和选择移动的目标,13.编写序列化中间数据行为,定义程序中需要序列化的数据,定期或者移动前调度该行为执行,第二步创建任务代理23.编写作业描述文件,24.任务调度,23.任务提交i.网格客户端程序将作业提交给资源的作业管理工厂服务;ii.作业管理工厂服务验证用户代理证书,并对该用户的行为授权,如果验证和授权成功则转到下一步,否则通过客户端安全验证失败;iii.作业管理工厂服务解析作业描述文件,如需准备数据,则调用网格数据传输服务将需要的数据传到指定的目录;iv.作业管理工厂服务发现作业的类型为“AGENT”,将控制转移到代理管理服务;v.代理管理服务载入代理的代码,如果载入成功则返回全局的代理标识,否则返回创建代理失败;vi.代理管理服务更新代理信息表,并与主代理管理服务同步信息;vii.任务代理创建完成;第三步移动任务代理31.代理的移动策略行为触发移动,33.代理中断当前执行,并执行序列化中间数据行为,33.代理通知本地代理管理服务需要移动,34.本地代理管理服务通过代理消息传输服务告知远程代理管理服务将要向他移动一个代理,同时调用网格数据传输服务将与代理相关数据传输到远程资源,35.当本地代理服务收到传输成功的消息后,发送启动代理的ACL命令消息给远程代理管理服务,36.远程代理管理服务根据传输过来的代理信息重建代理,如果成功则返回成功消息,并更新代理信息表;否则,返回失败,37.本地代理管理服务收到成功的消息,则将本地代理的信息删除,同时更新本地代理信息表;否则重新选择资源并转到步骤34,第四步任务代理的定位41.用户根据任务代理标识,首先向用户所在主机的代理信息表缓存查询代理位置,如果查询成功则转到44;否则转到下一步;42.用户根据任务代理标识向主G-A容器中的代理管理服务请求该任务代理的位置;43.主代理管理服务查询代理信息表,如果查询成功则返回给用户该任务代理的位置,否则返回失败消息;44.用户根据获取的任务代理位置,向该任务代理发出请求服务信息,如请求成功,则更新用户所在主机的代理信息表缓存。否则转到步骤42。
2.根据权利要求1所述的一种网格环境内面向代理编程计算任务的自适应 方法,其特征在于FIPA规范和WSRF规范的代理管理服务和代理消息服务的实 现和部署的步骤如下 代理管理服务该服务的特性是其功能满足FIPA规范,其实现满足WSRF规 范,需要实现的功能如下 A.支持代理创建,包括Al.支持作业管理中间件的调用,根据任务属性创建任务代理; A2.支持从备份的中间数据恢复代理; A3.支持移动的任务代理的重建;B. 支持代理删除;Bl.失败代理数据的删除;B2.代理移动成功后,将本地的代理数据删除;C. 支持自动维护代理信息表;Cl.创建代理后的代理信息的更新, C2.删除代理后的代理信息的更新,D. 支持代理位置查询;26部署主G-A容器,它作为主资源监控和发现服务和主代理管理服务的宿主容 器;27部署子G-A容器,它们必须指出主资源监控和发现服务和主代理管理服务的 宿主容器。
全文摘要
网格环境内面向代理编程计算任务的自适应方法基于现有的开放的网格体系结构,通过部署代理管理服务和代理消息服务这两个满足FIPA规范和WSRF规范的网格服务以及部署G-A容器,支持代理的管理和移动。通过扩展现有的网格作业类型,即增加新的作业类型“AGENT”,使得任务代理的创建过程与现有网格任务的创建过程完全兼容;同时通过定义面向代理编程的任务,以及代理的移动和定位过程,使得代理任务的能够自适应网格环境的变化,智能的移动决策。
文档编号G06F9/46GK101308463SQ20081012413
公开日2008年11月19日 申请日期2008年6月13日 优先权日2008年6月13日
发明者雄 付, 任勋益, 季一木, 琳 张, 侃 易, 杨明慧, 王汝传, 蒋凌云, 松 邓 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1