基本信息
- 项目名称:
- 网格环境下Web服务发现与监控系统研究
- 来源:
- 第十二届“挑战杯”省赛作品
- 小类:
- 信息技术
- 大类:
- 科技发明制作B类
- 简介:
- 网格中任务监控是网格任务完成的保障,而目前开发的网格监控系统或组件很少注意到这一点。基于此,本研究设计了一个基于网格监控标准体系结构的同时具有资源监控和任务监控功能的网格环境下Web服务发现和监控系统。该系统能够实现对网格环境中Web服务信息的管理,Web服务相关的资源的发现与监控及任务的分配与跟踪,增强了网格监控系统的全面性、可视性和实时性,保证每个任务都能顺利完成,为用户提供可靠、高效的服务。
- 详细介绍:
- 一、系统研究概述 网格作为一个集成的计算与资源环境,能够吸收各种计算资源,将它们转化成一种随处可得的、可靠的、标准的且相对经济的计算能力。随着网格技术的不断成熟,网格环境下的各种应用开发正逐渐深入,网格监控问题也受到越来越多的关注。网格监控主要包括资源监控和任务监控两个方面:资源监控,主要指对计算节点的动静态信息、可用性情况等信息的监控;任务监控,指的是监控任务执行的整个过程。 目前相关研究主要集中在对网格资源的监控上,而较少考虑监控网格中运行的任务及任务对资源消耗的情况。作为网格中任务顺利完成的保障,网格环境中任务跟踪的研究是非常必要的。基于此,本研究设计了一个基于网格监控标准体系结构GMA的同时具有资源监控和任务跟踪功能的网格环境下Web服务发现和监控系统WSDMS。该系统能够实现对网格环境中Web服务信息的管理,Web服务相关资源的发现与监控及任务的分配与跟踪,提供网格计算环境一个真实、实时的动态反映,为用户提供可靠、高效的应用服务。系统主要实现以下几项功能: 1.服务信息管理。主要实现服务信息的注册、更新、删除及查询等管理工作,这些操作主要是子节点完成的,服务信息存储在主节点上,主节点在分配任务时以这些数据为依据发现可用的服务。 2.资源发现与监控。一是实现网格中新加入节点的发现,二是实现网格中子节点硬件资源、网络通信带宽等动静态信息的实时监控,为主节点的任务分配决策提供参考依据。 3.任务分配与跟踪。分配是指任务的分配和重分配,跟踪主要是指监测任务从分配到执行完毕的状态及子节点硬件资源占用情况。任务跟踪主要是为任务的分配与重分配提供决策依据。 二、系统设计过程 WSDMS系统的一个实际应用就是为天津大学计算机学院网络实验室Billion Grid在线数据挖掘平台研制的IDMS(Information Discovery and Monitoring System)系统。Billion Grid就是利用网格上的丰富的数据资源、安全共享、高性能计算、以及分布的协调能力以Globus Toolkit 4为中间件构建符合开放网格服务体系架构(open grid services architecture:OGSA)标准的网格数据挖掘平台,把数据挖掘算法包装成有状态Web服务的形式部署到网格环境中。 Billion Grid挖掘平台的体系结构如图1所示,信息发现与监控系统IDMS是为Billion Grid平台开发一个子系统。IDMS系统主要负责搜集各子节点上的信息,包括子节点上部署的服务和子节点的资源、带宽、通信延迟等动静态信息,并将这些信息传递给主节点,然后在主节点对接收到的子节点信息进行分析,找出适合的分配特定任务的节点。可以说IDMS既是Billion Grid平台主子节点之间通信的纽带,又是主节点进行任务分配与重分配的决策中心。 (一)系统体系结构 IDMS系统的体系结构图如图2所示。由图可得,该系统中主节点与所有子节点之间通信主要是搜集各子节点上的服务信息和硬件资源信息,而当主节点将某个Web服务任务分配给特定子节点后,主节点与这个执行任务的子节点又建立起任务跟踪的关系。 (二)系统功能模块 IDMS系统主要包含四个主要功能模块,分别是服务信息管理模块、资源发现与监控模块、任务跟踪模块以及任务分配模块,各模块的功能描述如下: 1.服务信息管理模块,负责服务信息的注册、更新、删除及查询,这些操作主要是子节点通过Web页面访问主节点而完成的,服务信息存储在主节点的数据库中,主节点在分配任务时通过查询数据库中的记录来发现可用的服务及服务部署的节点; 2.网格资源监控与发现模块,负责发现和监控子节点上可用的硬件资源、网络带宽、通信延迟等情况,并可将信息实时反馈给主节点,为主节点的任务分配决策提供依据; 3.任务跟踪模块,负责监测任务从分配到执行完毕整个过程中的状态,当某个任务占用计算节点资源过多而导致该节点负载过重会杀死该任务,保证每个任务能在最短的时间内顺利完成; 4.任务分配模块,负责任务的分配与重分配,根据子节点的可用服务信息和硬件资源利用情况分配任务,如果有任务在执行中被任务跟踪模块杀死则会按任务分配原则重新分配该任务。 系统中各功能模块之间的联系参见图3,其中的任务分配模块是整个系统的核心部分,该模块通过与其他三个模块进行通信来决策任务如何分配,进而为web服务任务的顺利执行提供保证。 (三)各模块详细设计 1.服务信息管理模块 服务信息管理模块负责管理各计算节点上已部署的服务信息,系统通过维护建立在主节点上的服务注册表来实现该功能。服务该注册表的功能与UDDI中的注册薄相似,子节点上的每个服务都需要注册,主节点在分配任务时即可根据该表来发现需要的服务和可用节点。服务信息管理模块是IDMS系统完成工作的基础,该模块的功能包括服务信息的注册、查询、修改、删除和发现。该模块的设计模式采用的是MVC架构,该模式可以将模型、视图和控制器三部分分开,有利于进一步的修改和维护。模块具体功能及实现函数如下: 服务信息注册:当子节点上部署了新服务,子节点管理员将通过web页面将新服务在主节点上进行注册,这样主节点就可以在需要时发现此服务。 服务信息查询:主节点可以查询所有已部署服务的注册信息,该功能可以让主节点管理员了解平台可用服务的情况。 服务信息修改:子节点管理员可以根据子节点服务的实际情况对服务注册信息进行修改。 服务信息删除:当子节点上删除某个已部署的服务,则需要删除其在主节点上的注册信息,以免主节点在分配任务时判断错误。 服务信息发现:服务信息管理模块设计的最终目标是实现服务信息的发现,即当主节点分配任务时根据注册表发现需要的服务,再通过比较存在服务的子节点资源利用情况决定如何分配任务。 2.资源发现与监控模块 IDMS系统的资源发现与监控模块负责监控计算节点的资源利用情况,本研究目前只监控硬件的利用情况。此功能是实时的,即主节点在需要时即可查询任意子节点硬件的利用情况。当用户选择某个服务后,主节点查询此服务并定位它所在的子节点,然后主节点将开始对这些子节点的硬件利用率进行监控,将监控到的信息传递给任务分配模块。可以说资源发现与监控模块是为任务分配模块而服务的。 以监控CPU利用率为例介绍主节点监控子节点硬件资源的过程需及使用的RMI技术,其详细设计过程如下所述: 子节点需要做的工作:为用java RMI技术实现远程CPU信息监控,子节点上必须首先在定义一个远程读取计算机CPU信息的接口,RMI构架基于一个重要的原理就是:定义接口和定义接口的具体实现是分开的;首先编写并编译接口文件,然后编写并编译接口类的实现类文件,CPU利用率获取过程其实是先读取proc下的stat文件中的信息再进行计算的过程,stat文件包含了CPU活动的所有信息,该文件中的所有值都是从系统启动开始累计到当前时刻,而且每隔5秒写一次,因此能保证信息的准确性;最后编写并编译远程服务的主运行程序,此时子节点可以看做是RMI中的服务器。 主节点需要做的工作:主节点相当于RMI中的客户端,在主节点上首先要编写并且编译接口文件,内容与子节点上接口文件内容相同;然后要编写并且编译客户端程序。 运行RMI:运行RMI首先要在主子节点上运行rmiregistry命令,使监听服务注册到RMI服务器上,然后子节点运行服务主程序,主节点运行客户端程序,即可实现CPU利用率的读取。 3.任务分配模块 任务分配模块是IDMS系统功能的核心,负责系统任务的分配与重分配工作,为任务的顺利完成提供保障。该模块的任务分配功能包括任务初次分配和任务再重配,详细设计过程如下: 任务初次分配:当用户在客户端提交任务后,任务分配模块将接收任务所需服务的名字和该服务所属算法库两个参数,并在服务信息管理模块与资源发现与监控模块的协助下发现该服务及可执行任务的计算节点,通过比较各可用节点的硬件资源利用情况(如CPU利用率等)决策出最佳的子节点(此处最佳的子节点指的是负荷最小的计算节点),将任务分配给此节点。 任务重分配:如果某个运算节点负荷过高,将降低该节点上任务的速度,严重时甚至会让用户遥遥无期的等待下去,这是绝对不可以的,因此当出现类似问题时任务的重分配显得十分重要。任务重分配设计过程为:在任务跟踪模块的协助下,如果监测到计算节点的CPU利用率过高并且某任务对该节点CPU占用率过高,则任务跟踪模块会杀死该任务,再由主节点进行重新分配。 4.任务跟踪模块 任务跟踪功能是本系统的一大特色,该模块可实现对任务状态(是否完成)及其消耗的硬件资源进行简单的监控。本研究任务跟踪的内容包括任务的状态和任务占用节点CPU的利用率,为任务重分配提供了重要的依据。该模块具体设计如下: 对于java语言编写的服务,IDMS系统调用java虚拟机自带的查看线程资源利用的函数来监控指定任务线程的硬件资源利用率。 对于非java语言(C或C++)编写的服务,利用java JNI技术监控指定任务线程的CPU利用率。其过程为(以C++为例):首先用C++来编写服务的监控程序,构建并编译此监控程序的java接口类,然后利用javah命令生成此接口类的.h文件,编译监控程序生成动态链接库.so文件,如果用java程序查看使用C++语言编写的服务的任务硬件资源利用率只需加载动态链接库,如同调用java类的方法一样。 模块中的一个程序每隔30秒会监测一次子节点的硬件资源利用率和任务对节点的硬件资源的占用率,如果能够查询到该任务线程的硬件资源占用率则说明任务尚未完成,如果监测到计算节点的硬件资源利用率达到设定阀值以上且某一任务占该节点当前硬件资源利用率的设定阀值以上,将杀死该任务。该模块监控的信息是任务分配模块的任务重分配的依据。 为了防止子节点因负载过重进入宕机状态,本系统在跟踪模块中添加了一个子节点管理员查看功能。用JDOM编写的java文件把监控的信息自动生成指定线程的XML文件,每个任务对应一个文件,文件名以主节点分配给任务的ID命名。通过Xpath查询语言构建子节点管理员查询接口,子节点管理员可通过该接口查询该节点上正在运行的任务以及任务的资源利用情况,还可以手动杀死系统无法杀死的任务线程。 三、系统工作流程 系统工作流程如图4所示。具体工作流程描述如下:如果客户端有任务请求,则系统首先根据用户所选服务名称查询数据库中的服务信息注册表,发现需要的服务及部署服务的子节点。如果没有可用服务系统将告知用户并结束此次工作,如果服务存在,系统将综合比较各子节点的动静态信息,选择适合执行任务的子节点。如果部署服务的子节点目前比较繁忙,系统将延迟一段时间后重新计算。找到可执行任务的节点后,系统将任务分配给该节点,同时开始跟踪该任务。系统根据子节点的负载情况及任务的资源占用情况周期性的判断任务是否能顺利完成。如果发现任务占用资源过多,且系统负载过重,杀死该任务同时提交给主节点一个空文件。主节点在跟踪任务的同时也周期性的读取存放结果的指定文件,当发现结果文件时系统将判断该文件是否为空,为空说明任务没有完成,系将重新分配该任务,如果文件不为空说明任务已经完成,系统将结果返回给用户。 四、课题研究成果 1.系统已应用于天津大学计算机学院计算机网络实验室Billion Grid数据挖掘平台; 2.发表国际会议论文两篇,均为EI和ISTP检索; 3.入围第十一届“挑战杯”天津市大学生课外学术科技作品竞赛决赛。
作品专业信息
设计、发明的目的和基本思路、创新点、技术关键和主要技术指标
- 网格中任务的监控是网格中任务完成的保障,而目前开发的网格监控系统或组件很少注意到这一点。针对目前网格监控系统功能的不健全,本课题设计并实现了网格环境下Web服务发现和监控系统WSDMS,来管理网格环境中web服务信息,发现和监控网格资源,分配和跟踪网格环境中web服务任务。 基本思路: 在资源监控方面,系统参考目前广泛使用的网格监控系统MDS4的设计思想,实现对计算字节点动静态信息、可用性情况的监控;在服务管理方面,采用了UDDI的设计思想,各子节点部署的服务都将在主节点上进行注册,便于主节点发现和监控子节点上存在的服务;在任务监控方面,综合运用了一系列技术,实现对任务的分配、跟踪、撤销及重分配等管理工作。 作品创新点: 1.针对目前网格环境中只监控子节点资源而忽视对任务监控的研究现状,提出了具有Web服务任务跟踪功能的WSDMS系统,设计了系统的系统结构和功能框架。 2.结合相关平台的实际应用需求,详细分析并设计了系统功能模块,理清了各模块自身的工作流程及彼此间的关系,综合运用相关的技术实现了系统设计的功能,具有较强的借鉴性。 关键技术: UDDI;数据库技术;Java RMI技术;Xpath技术;Java JNI技术;JODM技术。
科学性、先进性
- 完整的网格监控应包括资源监控和任务监控两个方面。资源监控主要指对计算节点的动静态信息、可用性情况等信息的监控,任务监控指的是监控任务执行的整个过程。课题针对目前网格监控研究中忽略了任务监控的问题,提出并设计了WSDMS系统,为网格中任务的顺利完成提供了保障,提高了网格服务的可靠性。
获奖情况及鉴定结果
- 1.系统已于2009年9月应用于天津大学计算机学院计算机网络实验室Billion Grid数据挖掘平台; 2.至今已发表国际会议论文两篇,均为EI和ISTP检索; 3.入围第十一届“挑战杯”天津市大学生课外学术科技作品竞赛决赛。
作品所处阶段
- 中试阶段
技术转让方式
- 系统设计报告,系统软件
作品可展示的形式
- 图片,视频,现场展示
使用说明,技术特点和优势,适应范围,推广前景的技术性说明,市场分析,经济效益预测
- 使用说明: 该系统可用于网格环境下节点资源和web服务的监控, 既可作为应用平台主子节点之间通信的纽带,又可作为主节点进行web服务任务管理的决策中心。 技术特点和优势: 1、目前尚未发现与本课题提出的网格环境下web服务发现与监控系统功能类似的系统或功能组件; 2、针对网格环境下数据挖掘web服务平台Billion Grid的实际应用,采用一系列相关技术并利用Java语言实现了系统的各个模块,系统具有跨平台和易部署等特点。 适用范围: 系统主要用于网格监控领域,一般作为相关应用平台的辅助系统,可以根据平台实际应用需求,进行快速改造。 市场分析及经济效益预测: 该作品能够在网格监控领域具有一定的研究意义和推广价值,市场前景良好。
同类课题研究水平概述
- 网格资源监控与发现主要是针对计算节点的动静态信息、可用性情况和网络通信带宽及延迟等。目前,国内外一些研究机构已经根据实际应用开发出一些对网格资源进行监控和发现的系统或组件。这些系统或组件都是基于网格监控标准体系结构GMA构建的。 Globus项目是目前国际上最有影响的网格计算项目之一。目前,Globus项目已经把商业计算领域中Web Service技术融合在一起,将不仅仅局限于科学计算领域,而且能够对各种商业应用进行广泛的、基础性的网格环境支持。Globus项目主要组成部分之一是MDS(Metacomputing Directory Service :MDS),它主要完成对网格计算环境中资源的发现与监视工作,提供对网格计算环境一个真实、实时的动态反映。 myGrid是一个生物信息学领域的信息环境建设项目,用于发现资源、发现服务,以及在其上开发面向研究人员个人生物信息学应用的开源软件中间件。myGrid项目的研究分项目原型开发和技术研究两部分,其核心服务层由动态服务发现管理组件、元数据管理组件、工作流支持组件三部分组成。动态服务发现组件解决什么服务可用和服务唯一标识问题,目前的主要组件是LSIDs。 Eurogrid项目是由IST(Information Society Technologies Programme)支持开发的项目,旨在统一欧洲各科研院所的高性能计算资源。Euro-Biogrid是欧洲Eurogrid的一部分,Euro-Biogrid的网格中间件是Unicore(Uniform Interface to Computing Resources),它允许用户向远程的高性能计算资源提交工作,而且并不需要知道目标操作系统的细节、数据存储的协定与技术、管理策略以及在目标站点的处理过程。Unicore的体系结构分三层,即用户层、服务层和目标系统层。其中作业监视控制器是用来对作业的执行过程进行监视和控制的部分,它完成作业状态显示、作业控制、作业刷新以及作业结果获取等一系列工作。 以上项目组所开发的MDS、LSIDs和Unicore的网格资源发现与监控功能已经比较完善,但都没有考虑到监控网格中运行的任务及任务对资源消耗的信息。网格中任务的监控是网格中任务完成的保障,而现今开发的网格监控系统很少注意到这一点,因此任务监控有待于进一步研究和探索。