CN101876895A - 网格计算环境下应用软件的封装集成方法 - Google Patents

网格计算环境下应用软件的封装集成方法 Download PDF

Info

Publication number
CN101876895A
CN101876895A CN2009100827206A CN200910082720A CN101876895A CN 101876895 A CN101876895 A CN 101876895A CN 2009100827206 A CN2009100827206 A CN 2009100827206A CN 200910082720 A CN200910082720 A CN 200910082720A CN 101876895 A CN101876895 A CN 101876895A
Authority
CN
China
Prior art keywords
template
responsible
content
application software
xsd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2009100827206A
Other languages
English (en)
Inventor
刘杰
查礼
程伯群
乔健
许小亮
彭娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2009100827206A priority Critical patent/CN101876895A/zh
Publication of CN101876895A publication Critical patent/CN101876895A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种网格计算环境下应用软件的封装集成方法,所述网格计算环境包括网格操作系统,所述网格操作系统包括模块管理模块,该方法包括:在所述网格操作系统的模板管理模块中查找是否包含与所述应用软件相对应的模板;在所述模板管理模块未包含有所述模板时,提取所述应用软件中与作业提交与作业管理有关的公共逻辑,将所述公共逻辑进行描述以生成模板;将所生成的模板添加到所述的模板管理模块中;为所述模板生成模板实例。

Description

网格计算环境下应用软件的封装集成方法
技术领域
本发明涉及网格计算环境,特别涉及网格计算环境下应用软件的封装集成方法。
背景技术
网格计算是一种专门针对复杂科学计算的新型计算模式,它是伴随着互联网的发展而迅速发展起来的。具体的说,网格计算是要将互联网上分散在不同地理位置的计算机组织成一个“虚拟的超级计算机”,其中每一台参与计算的计算机被看作一个“节点”,一个复杂的计算操作由成千上万个“节点”所组成的“一张网格”实现。对于每一个作为网格节点的计算机而言,除了自身所具有的操作系统外(也被称为节点操作系统),还需要在节点操作系统上安装专门的网格操作系统,以用于在网格上共享该节点的资源并处理该节点在网格上的相关操作。
网格计算的一个突出优点是网格计算环境中的各个节点的资源可以在整个网格上共享。所能共享的资源按照类别可包括诸如处理器、内存在内的硬件资源以及诸如应用软件在内的软件资源。在网格计算环境内共享应用软件时,需要将多个节点上所安装的应用软件集成到网格操作系统中。但由于网格计算环境中各个节点的异构性,使得对应用软件的集成并不容易。
在现有技术中,本领域的技术人员已经提出了将应用软件集成到网格操作系统的相关方法。一种已知的典型方法是节点管理员在节点的操作系统上安装web应用,该web应用用于负责描述相应应用软件的显示界面以及提交作业的相关逻辑。一个web应用对应一种应用软件,即当节点上具有多种应用软件时,节点管理员需要开发并安装多个相应数量的web应用。在图1中给出了采用此类集成方法的节点的层次关系图。从图中可以看出,节点的最底层为计算机硬件层,在计算机硬件层上的第二层为节点操作系统以及通过节点操作系统安装的应用软件,在第二层之上的第三层为网格操作系统以及相应的web应用。在该图中,由于在第二层中安装的应用软件包括LSDYNA和FLUENT,因此需要在第三层中为LSDYNA和FLUENT软件分别配置相应的web应用。若一个用户在某一节点上需要调用某一应用软件(例如LSDYNA)且所调用的软件就在该节点上时,用户首先经由LSDYNA的web应用与网格操作系统进行交互,然后通过网格操作系统调用第二层中的LSDYNA应用软件。若所要调用的软件在其它节点上,用户采用LSDYNA的web应用与同一节点上的网格操作系统进行交互,然后通过该网格操作系统与其它节点上的网格操作进行交互,由其它节点上的网格操作系统调用该节点上的LSDYNA应用软件。
采用现有技术的上述方法实现应用软件的集成时,由各个节点的节点管理员在各自的节点上开发相应的web应用。在开发web应用时,一般采用JSP开发工具。开发web应用的基本实现步骤包括:
步骤1、新建一个web工程,并复制网格操作系统中的相关jar包以及第三方相关jar包到该工程的目录下。
步骤2、开发JSP代码。在JSP代码中处理的内容包括与应用软件相关的显示界面和提交作业、查询作业的相关逻辑,也包括对网格操作系统相关接口的调用,如用户登陆、创建网格进程调用网格操作系统的作业服务等。
步骤3、开发完相应的代码后,将开发的工程部署到web容器中(一般为tomcat)测试并上线。
结合web应用的上述开发过程可以看出,将应用软件集成到网格操作系统的实现过程是在各个节点上独立实现的。因此,对于单节点而言,节点管理员对应用的集成具有很大的权限,如果节点管理员足够优秀,他就可以开发出很好的应用。但在网格计算环境下,在网格中的所有节点是一个整体,因此,这样的集成方式存在着很多的问题和缺点。
首先,节点管理员工作量大。节点管理员除了需要熟悉应用本身的逻辑之外,还需要熟悉网格操作系统的先接口,否则无法实现web应用和网格操作系统间的交互。
其次,节点管理员需要做大量的重复劳动。若在一个节点上为多个应用软件创建web应用时,节点管理员需要为不同的应用软件处理很多相同的逻辑,如登陆网格,创建网程等。类似的,不同节点的节点管理员需要为不同节点上相同的应用软件做重复的web开发。
再次,web应用的部署方式和网格操作系统的部署方式是相同的,因此如果应用集成存在着未知的问题,如内存泄漏等,可能会导致网格操作系统的崩溃,造成整个网格环境的不稳定。
又次,由于每个节点的应用软件在集成时都是独立实现的,因此网格操作系统在进行资源调度时只有在为各个节点上相同应用软件的web应用额外添加用于表明软件名称、软件版本、节点信息等的统一信息后才能实现统一调度。为网格操作系统对资源的调度带来了困难。
最后,采用web应用的集成方式还具有调试麻烦、web应用的界面与整个系统的界面风格不一致等诸多问题。
发明内容
本发明的一个目的是克服现有的web应用方法在网格计算环境下集成应用软件时节点管理员工作量大、需要大量重复劳动等缺陷,从而提供一种高效的应用软件封装集成方法。
本发明的另一个目的是提供一种根据应用软件封装集成方法实现作业提交的方法。
本发明的又一个目的是提供一种根据应用软件封装集成方法实现作业管理的方法。
本发明的再一个目的是提供一种应用软件封装集成装置。
为了实现上述目的,本发明提供了一种网格计算环境下应用软件的封装集成方法,所述网格计算环境包括网格操作系统,所述网格操作系统包括模块管理模块,该方法包括:
步骤1)、在所述网格操作系统的模板管理模块中查找是否包含与所述应用软件相对应的模板;
步骤2)、在所述模板管理模块未包含有所述模板时,提取所述应用软件中与作业提交与作业管理有关的公共逻辑,将所述公共逻辑进行描述以生成模板;
步骤3)、将所生成的模板添加到所述的模板管理模块中;
步骤4)、为所述模板生成模板实例。
上述技术方案中,在所述的步骤1)后,在所述模板管理模块包含有所述模板时,为所述模板生成模板实例。
上述技术方案中,所述模板包括作业的提交与作业的管理;其中,
所述的作业的提交包括作业提交界面的描述和作业提交逻辑;
所述的作业的管理包括作业管理界面的描述和作业管理逻辑。
上述技术方案中,所述的作业提交界面的描述包括:用于负责存储将被显示成作业提交用户界面的HTML页面内容的HTMLContent元素。
上述技术方案中,所述的作业提交界面的描述还包括以下元素中的至少一种:用于负责存储作业提交用户界面中需要使用的某个图像的ImageContent元素、用于负责指定图像内容编码为文本内容的编码算法类型的CodingType元素、用于负责说明解析得到的图像文件的路径和名称的ImageFilePath元素、用于负责以文本形式存储图形文件的二进制内容的ImageCode元素。
上述技术方案中,所述的作业提交逻辑包括:负责描述作业在服务器上的执行脚本的ClaimExecutable元素、负责描述如何把作业从远端数据位置上传到作业管理服务工作目录中的ClaimStageIn元素、负责描述如何把作业执行结果从网格作业管理服务工作目录下传到远端数据存储位置上的ClaimStageOut元素、负责描述作业所申请的资源信息的ClaimResource元素、负责描述用户在提交作业时需要生成的文件内容和文件路径的generateFile元素。
上述技术方案中,所述的作业提交逻辑还包括以下元素中的至少一种:用来描述作业所属软件类型名称的ClaimSoftwareName元素、用来描述软件所属软件类型的版本的ClaimSoftwareVersion元素、负责描述作业名称的ClaimJobName元素、负责描述作业所属工程的ClaimJobProject、用于对作业进行描述的ClaimDescription元素、负责描述作业相关参数的ClaimArgument元素、负责描述作业的输出文件名的ClaimOutput元素、负责描述作业标准错误输出的ClaimError元素、负责描述该作业的标准输入的ClaimInput元素、负责指定作业的工作目录的ClaimHomeDirectory元素、负责描述上传和下传操作时源文件的位置的Source元素、负责描述StageIn和StageOut操作时目的文件位置的Target元素、负责描述用户触发作业提交时间后客户端程序需要马上生成的文件路径和文件名的TargetFilePath、负责描述用户触发作业提交时间后客户端程序需要马上生成的文件内容的Content元素、用来描述文件的属性以及是否在文件末尾追加内容的AppendMode元素、用来描述用户申请资源中节点数最大值的ClaimNODES元素、用来描述作业所需要每个节点的CPU数的ClaimNCPUS元素、用来描述各个资源所需要物理内存的总和的ClaimMemory元素、用来描述用户提交作业时各个资源所需虚拟内容总和的ClaimVirtualMemory元素、用来描述资源执行任务所需的全部CPU时间数的ClaimCPUTime元素、用来描述申请执行的时间限制的ClaimWallTime元素。
上述技术方案中,所述的作业管理界面的描述包括:负责存储将被显示在作业管理界面的HTML页面内容的HTMLContent元素。
上述技术方案中,所述的作业管理界面的描述还包括以下元素中的至少一种:用于负责存储作业管理用户界面中需要使用的某个图像的ImageContent元素、用于负责指定图像内容编码为文本内容的编码算法类型的CodingType元素、用于负责说明解析得到的图像文件的路径和名称的ImageFilePath元素、用于负责以文本形式存储图形文件的二进制内容的ImageCode元素。
上述技术方案中,所述的作业管理逻辑包括:用于描述有先后次序的一系列处理操作的OperationSequence元素。
上述技术方案中,所述的作业管理逻辑还包括以下元素中的至少一种:负责描述用户在作业管理时需要生成的文件内容和文件路径的GenerateFile元素、用于描述用户上传文件到服务端信息的UploadFile元素、响应界面操作的Invoker元素、负责描述用户触发作业提交时间之后客户端程序需要马上生成的文件路径和文件名的TargetFilePath元素、负责描述用户在作业管理时需生成的文件内容的Content元素、用来描述文件的属性以及是否在文件末尾追加内容的AppendMode元素、用来描述用户上传的源文件的路径的Source元素、用来描述用户上传的目的文件路径的Target元素。
本发明还提供了一种采用所述的应用软件封装集成方法实现作业提交的方法,包括:
步骤a)、网格操作系统在模板管理模块中根据用户选择的应用软件选择相应的模板;
步骤b)、解析所选择模板中与作业提交相关的内容,通过对模板中作业提交界面外观的描述,生成作业提交界面;
步骤c)、在作业提交界面上填写相应的参数;
步骤d)、模板管理模块根据所述参数、模板的实例信息和所述模板中与作业提交相关的逻辑生成JSDL文件或者bat shell脚本。
本发明又提供了一种采用所述的应用软件封装集成方法实现作业管理的方法,包括:
步骤A)、网格操作系统在模板管理模块中根据用户选择的应用软件选择相应的模板;
步骤B)、解析所选择模板中与作业管理相关的内容,通过对所述模板中作业管理界面外观的描述,生成作业管理界面;
步骤C)、在作业管理界面上填写相应的参数;
步骤D)、所述模板管理模块根据所述参数、模板的实例信息和所述模板中与作业管理相关的逻辑生成JSDL文件或者bat shell脚本。
本发明再提供了一种网格计算环境下应用软件的封装集成装置,所述网格计算环境包括网格操作系统,所述网格操作系统包括模块管理模块,该装置包括模板查找模块、模板生成模块、模板添加模块以及模板实例生成模块;其中,
所述的模板查找模块在所述网格操作系统的模板管理模块中查找是否包含与所述应用软件相对应的模板;
所述的模板生成模块在所述模板管理模块未包含有所述模板时,提取所述应用软件中与作业提交与作业管理有关的公共逻辑,将所述公共逻辑用规范的形式进行描述以生成模板;
所述的模板添加模块将所生成的模板添加到所述的模板管理模块中;
所述的模板实例生成模块为所述模板生成模板实例。
上述技术方案中,所述模板包括作业的提交与作业的管理;其中,
所述的作业的提交包括作业提交界面的描述和作业提交逻辑;
所述的作业的管理包括作业管理界面的描述和作业管理逻辑。
本发明的优点在于:
1、本发明能避免节点管理员的重复劳动,减少节点管理员的工作量。
2、本发明能降低管理员的开发难度。
附图说明
图1为网格计算环境中现有节点的应用部署层次图;
图2为网格计算环境中采用本发明方法的节点的应用部署层次图;
图3为本发明的应用软件封装集成方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步说明。
为了便于理解,以一个网格计算环境下的节点为例,对本发明如何实现节点上应用软件的封装集成进行说明。
如前所述,网格计算环境中的节点在计算机硬件层的基础上安装有节点操作系统,并通过节点操作系统安装应用软件。当这一节点需要接入到网格计算环境中时,基于网格计算环境的要求,如图2所示,需要在节点操作系统之上安装网格操作系统。网格操作系统可实现网格资源的管理分配、信息优化、任务调度、存储访问、安全控制、质量服务(QoS)等。但现有技术中的网格操作系统并不能克服节点操作系统上所安装的应用软件在网格计算环境下共享时由于所述应用软件在各个节点上的异构性所带来的问题。考虑到所有的应用软件都具有作业提交和作业管理的功能,且在所述的作业提交和作业管理中存在与具体节点无关的公共逻辑,因此,可以对这些公共逻辑做统一的描述,用模板表示这些描述规范,然后在网格操作系统中添加一个模板管理模块,由该模块实现对所述模板的创建和管理,从而实现应用软件在网格计算环境中的共享。
参考图3,以高性能计算节点上常见的LSDYNA应用软件为例,假设要将一个节点上所安装的这一应用软件集成到网格操作系统中,使得网格计算环境下的其它节点都能共享该节点上的这一应用软件,需要采用本发明的方法对该应用软件做封装集成。在封装集成过程中,首先在网格操作系统的模板管理模块中查找是否具有对应的模板。若在整个网格计算环境中,该应用软件为首次安装,则网格操作系统中的模板管理模块必然没有该应用软件所对应的模板,需要建立相应的模板。若在其它节点上已经安装有该应用软件,则网格操作系统中的模板管理模块应当已经具有与该应用软件所对应的模板,此时可利用现有的模板生成模板实例。在生成模板实例的过程中,标记出安装应用软件的节点具有该应用软件,并填写软件运行的环境信息。在模板管理模块中,一种类型的应用软件对应一个模板,例如,本实施例中所提到的LSDYNA应用软件对应与LSDYNA相关的模板,而其它的应用软件对应其它的模板。模板管理模块除了包含有模板外,还包括有模板与网格操作系统间的底层接口,使得各个模板能够方便地与网格操作系统进行通信。
当网格操作系统的模板管理模块中尚不存在LSDYNA应用软件的模板时,需要为其建立模板。模板主要表达了LSDYNA应用软件的作业提交界面和共有业务逻辑。具体的说,所建立的模板包含以下方面的内容。
一、关于作业的提交
由于对于应用软件而言,无论软件安装在哪一个节点上,都有将作业提交给应用软件,然后由应用软件做后续处理的操作。因此,需要将与作业提交的相关操作以模板的方式进行封装集成。模板中关于作业提交的内容可做进一步的划分,它包括对作业提交界面外观的描述以及对作业提交后处理逻辑的说明。
在现有技术中,某些应用软件(如高性能计算应用软件)通常采用命令行的控制方式,与用户习惯的图形界面相比,这种控制方式并不方便。因此,在创建模板时一并创建了应用软件的作业提交界面,以方便用户的使用。在对作业提交界面外观的描述中,包含有对界面中标签栏、下拉框、输入框、单选框、多选框、按钮等组件的描述,也有对界面中所含图片的介绍。具体的说,包括:用于负责存储将被显示成作业提交用户界面的HTML页面内容的HTMLContent元素、用于负责存储作业提交用户界面中需要使用的某个图像的ImageContent元素、用于负责指定图像内容编码为文本内容的编码算法类型的CodingType元素、用于负责说明解析得到的图像文件的路径和名称的ImageFilePath元素、用于负责以文本形式存储图形文件的二进制内容的ImageCode元素。
在对作业提交后处理逻辑的说明中,包含有如何根据用户输入的参数来生成指定内容的文件,以及如何根据用户输入的参数以及应用软件的业务逻辑来生成相应的JSDL作业描述文件的内容。具体的说,包括:用来描述作业所属软件类型名称的ClaimSoftwareName元素、用来描述软件所属软件类型的版本的ClaimSoftwareVersion元素、负责描述作业名称的ClaimJobName元素、负责描述作业所属工程的ClaimJobProject、用于对作业进行描述的ClaimDescription元素、负责描述作业在服务器上的执行脚本的ClaimExecutable元素、负责描述作业相关参数的ClaimArgument元素、负责描述作业的输出文件名的ClaimOutput元素、负责描述作业标准错误输出的ClaimError元素、负责描述该作业的标准输入的ClaimInput元素、负责描述如何把作业从远端数据位置Stage In(上传)到作业管理服务工作目录中的ClaimStageIn元素、负责描述如何把作业执行结果从网格作业管理服务工作目录Stage Out到远端数据存储位置上的ClaimStageOut元素、负责描述作业所申请的资源信息的ClaimResource元素、负责描述用户在提交作业时需要生成的文件内容和文件路径的generateFile元素、负责指定作业的工作目录的ClaimHomeDirectory元素、负责描述StageIn和StageOut操作时源文件的位置的Source元素、负责描述StageIn和StageOut操作时目的文件位置的Target元素、负责描述用户触发作业提交时间后客户端程序需要马上生成的文件路径和文件名的TargetFilePath、负责描述用户触发作业提交时间后客户端程序需要马上生成的文件内容的Content元素、用来描述文件的属性以及是否在文件末尾追加内容的AppendMode元素、用来描述用户申请资源中节点数最大值的ClaimNODES元素、用来描述作业所需要每个节点的CPU数的ClaimNCPUS元素、用来描述各个资源所需要物理内存的总和的ClaimMemory元素、用来描述用户提交作业时各个资源所需虚拟内容总和的ClaimVirtualMemory元素、用来描述资源执行任务所需的全部CPU时间数的ClaimCPUTime元素、用来描述申请执行的时间限制的ClaimWallTime元素。
二、关于作业的管理
与作业的提交相类似,应用软件无论在哪个节点上,都需要对用户所提交的作业进行管理。因此,需要将与作业的管理相关的操作封装集成到模板中。模板中关于作业管理的内容可作进一步的划分,它包括对作业管理界面的描述以及对作业管理相关逻辑的说明。
在对作业管理界面的描述中,包含有对图形化的提交界面中标签栏、下拉框、输入框、单选框、多选框、按钮等组件的描述,也包含有对图片的介绍。具体的说,包括:负责存储将被显示在作业管理界面的HTML页面内容的HTMLContent元素、用于负责存储作业管理用户界面中需要使用的某个图像的ImageContent元素、用于负责指定图像内容编码为文本内容的编码算法类型的CodingType元素、用于负责说明解析得到的图像文件的路径和名称的ImageFilePath元素、用于负责以文本形式存储图形文件的二进制内容的ImageCode元素。
在对作业管理相关逻辑的说明中,包含有用于描述当作业提交成功后,对正在运行的作业如何管理的内容。它应当能够处理包括作业中断、作业重执行等在内的典型作业管理。具体的说,它包括:用于描述有先后次序的一系列处理操作的OperationSequence元素、负责描述用户在作业管理时需要生成的文件内容和文件路径的GenerateFile元素、用于描述用户上传文件到服务端信息的UploadFile元素、响应界面操作的Invoker元素、负责描述用户触发作业提交时间之后客户端程序需要马上生成的文件路径和文件名的TargetFilePath元素、负责描述用户在作业管理时需生成的文件内容的Content元素、用来描述文件的属性以及是否在文件末尾追加内容的AppendMode元素、用来描述用户上传的源文件的路径(相对于客户端当前工作目录)的Source元素、用来描述用户上传的目的文件路径(相对于服务端批作业工作目录)的Target元素。
以上是对模板管理模块所建立模板的内容的说明,在本申请文件的附件中给出了上述模板的XML格式以及标准定义文档,附件中的内容将作为说明书的一部分用以说明模板。
上述说明中,给出了本发明所涉及的模板的一种最佳实现方式,在实际应用中,根据所要集成的应用软件的不同,可选择性地采用模板中的元素。一般来说,在一个模板中,关于作业提交界面的描述至少应当包括HTMLContent元素,而ImageContent元素、CodingType元素、ImageFilePath元素、ImageCode元素可根据需要加以选择。在一个模板中,作业提交逻辑至少应当包括ClaimExecutable元素、ClaimStageIn元素、ClaimStageOut元素、ClaimResource元素、generateFile元素,而其余的ClaimSoftwareName元素、ClaimSoftwareVersion元素、ClaimJobName元素、ClaimJobProject、ClaimDescription元素、ClaimArgument元素、ClaimOutput元素、ClaimError元素、ClaimInput元素、ClaimHomeDirectory元素、Source元素、Target元素、TargetFilePath元素、Content元素、AppendMode元素、ClaimNODES元素、ClaimNCPUS元素、ClaimMemory元素、ClaimVirtualMemory元素、ClaimCPUTime元素、ClaimWallTime元素可由用户选择。类似的,在一个模板中,关于作业管理界面的描述至少包括HTMLContent元素,其余的ImageContent元素、CodingType元素、ImageFilePath元素、ImageCode元素可由用户选择。作业管理逻辑至少应当包括OperationSequence元素,其余的GenerateFile元素、UploadFile元素、Invoker元素、TargetFilePath元素、Content元素、AppendMode元素、Source元素、Target元素可由用户选择。
在为应用软件生成相应的模板后,可以将所得到的模板添加到网格操作系统的模板管理模块中。在添加模板时应当避免新添加模板的名称与现有模板的名称相冲突。在添加模板后,还要生成模板实例,在生成模板实例的过程中标记出安装应用软件的节点具有该应用软件,并填写软件运行的环境信息。在生成模板实例后,标志着一节点上的LSDYNA应用软件已经完成在网格计算环境内的共享。
在网格计算环境内实现对LSDYNA应用软件的共享后,用户就可以在网格计算环境内的各个节点上调用该应用软件。在对应用软件的调用过程中,当涉及到提交作业或管理作业时,需要采用模板管理模块中的相关模块做相应操作。
仍以LSDYNA应用软件为例,对作业提交过程中的相关操作进行说明。
步骤a、用户选择LSDYNA应用软件后,网格操作系统在模板管理模块中根据所选择的应用软件选择相应的模板。
步骤b、解析模板中与作业提交相关的内容,通过对模板中作业提交界面外观的描述,生成作业提交界面。
步骤c、用户在作业提交界面上填写相应的参数,这些参数包括与应用相关的参数,如作业名等,也包括与应用无关的参数,如选择的计算资源机群、队列等。
步骤d、模板管理模块根据用户输入的参数、模板的实例信息和模板中与作业提交相关的逻辑生成JSDL文件或者bat shell脚本。
作业的管理过程与上述的作业提交过程相类似,只是在调用模板时,调用的是模板中与作业管理有关的内容。所生成的界面为作业管理界面,在作业管理界面上填写与作业管理有关的参数,通过这些参数和模板中与作业管理有关的逻辑生成相应的文件。
本发明的应用软件的封装集成方法将作业提交和作业管理过程中与具体节点无关的提交界面和共同业务逻辑集成封装到网格操作系统中,使得不同节点上的节点管理员无需为相同的应用软件做重复的web应用开发,避免了节点管理员的重复劳动。由于所述封装集成方法对不同应用软件的封装集成过程相类似,也能一定程度上减少节点管理员的工作量。
采用本发明的方法后,由于底层网格操作系统的相关接口已经被包含在模板管理模块中,因此管理员只需要了解应用软件的逻辑,降低了管理员的开发难度。
本发明的应用软件的封装集成方法所开发的模板需要导入网格操作系统,由于模板在导入过程中,网格操作系统会对模板的正确性进行检查,因此提高了整个网格计算环境的健壮性。
采用本发明方法所生成的模板可以应用到其它系统中,具有可扩展性。
本领域的技术人员应当了解,网格计算环境除了前述实施例中所提到的多点计算环境外,还包括单点计算环境。本发明的封装集成方法对于单点计算环境同样适用,
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
附件1:模板的XML描述
       <xsd:schema xmlns:xsd=″http://www.w3.org/2001/XMLSchema″>
        <xsd:element                                  name=″HPCGTemplate″
type=″HPCGTemplatetype″></xsd:element>
        <xsd:simpleType name=″booleantype″>
           <xsd:restriction base=″xsd:boolean″></xsd:restriction>
        </xsd:simpleType>
        <xsd:simpleType name=″stringtype″>
           <xsd:restriction base=″xsd:string″></xsd:restriction>
        </xsd:simpleType>
        <xsd:simpleType name=″CodingTypetype″>
           <xsd:restriction base=″xsd:string″>
              <xsd:enumeration value=″base64″/>
           </xsd:restriction>
        </xsd:simpleType>
        <xsd:simpleType name=″ClaimOutputtype″>
           <xsd:restriction base=″xsd:string″>
              <xsd:enumeration value=″stdout.txt″/>
           </xsd:restriction>
        </xsd:simpleType>
        <xsd:simpleType name=″ClaimErrortype″>
           <xsd:restriction base=″xsd:string″>
              <xsd:enumeration value=″stderr.txt″/>
           </xsd:restriction>
        </xsd:simpleType>
          <!--================================================
==========-->
          <xsd:complexType name=″HPCGTemplatetype″>
             <xsd:sequence>
                <xsd:element name=″JobSubmitTemplate″
                   type=″JobSubmitTemplatetype″           minOccurs=″1″
maxOccurs=″1″>
                </xsd:element>
                <xsd:element name=″JobManageTemplate″
                   type=″JobManageTemplatetype″           minOccurs=″1″
maxOccurs=″1″>
                </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″JobSubmitTemplatetype″>
             <xsd:sequence>
                <xsd:element name=″JobSubmitAppearance″
                   type=″JobSubmitAppearancetype″          minOccurs=″1″
maxOccurs=″1″>
                </xsd:element>
                <xsd:element name=″=JobSubmitOperation″
                   type=″JobSubmitOperationtype″           minOccurs=″1″
maxOccurs=″1″>
                </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″JobSubmitAppearancetype″>
             <xsd:sequence>
                 <xsd:element name=″HTMLContent″type=″stringtype″
                      minOccurs=″1″maxOccurs=″1″>
                  </xsd:element>
                  <xsd:element name=″ImageContent″type=″ImageContenttype″
                      minOccurs=″0″maxOccurs=″1″>
                  </xsd:element>
              </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″JobSubmitOperationtype″>
             <xsd:sequence>
                <xsd:element name=″ClaimSoftwareName″type=″stringtype″
                   maxOccurs=″1″minOccurs=″0″>
                </xsd:element>
                <xsd:element name=″ClaimSoftwareVersion″type=″stringtype″
                   maxOccurs=″1″minOccurs=″0″>
                </xsd:element>
                <xsd:element name=″ClaimJobName″type=″stringtype″
                   maxOccurs=″1″minOccurs=″0″>
                </xsd:element>
                <xsd:element name=″ClaimJobProject″type=″stringtype″
                   maxOccurs=″unbounded″minOccurs=″0″>
                </xsd:element>
                <xsd:element name=″ClaimDescription″type=″stringtype″
                   maxOccurs=″1″minOccurs=″0″>
                </xsd:element>
                <xsd:element name=″ClaimExecutable″type=″stringtype″
                   maxOccurs=″1″minOccurs=″1″>
                </xsd:element>
                <xsd:element name=″ClaimArgument″type=″stringtype″
                   maxOccurs=″1″minOccurs=″0″>
               </xsd:element>
               <xsd:element name=″ClaimOutput″type=″ClaimOutputtype″
                   maxOccurs=″1″minOccurs=″0″>
               </xsd:element>
               <xsd:element name=″ClaimError″type=″ClaimErrortype″
                   maxOccurs=″1″minOccurs=″0″>
               </xsd:element>
               <xsd:element name=″GenerateFile″type=″GenerateFiletype″
                   maxOccurs=″unbounded″minOccurs=″0″>
               </xsd:element>
               <xsd:element name=″ClaimStageIn″type=″ClaimStageIntype″
                   maxOccurs=″unbounded″minOccurs=″0″>
               </xsd:element>
               <xsd:element                       name=″ClaimStageOut″
type=″ClaimStageOuttype″
                  maxOccurs=″unbounded″minOccurs=″0″>
               </xsd:element>
               <xsd:element                       name=″ClaimResource″
type=″ClaimResourcetype″
                  maxOccurs=″1″minOccurs=″0″>
               </xsd:element>
               <xsd:element name=″ClaimJobWorkingDirectory″
                  type=″stringtype″maxOccurs=″1″minOccurs=″0″>
               </xsd:element>
               <xsd:element name=″PreProcess″type=″ProcessType″
                  maxOccurs=″1″minOccurs=″0″>
               </xsd:element>
               <xsd:element    name=″PostProcess″      type=″ProcessType″
maxOccurs=″1″minOccurs=″0″></xsd:element>
              </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″ImageContenttype″>
             <xsd:sequence>
                <xsd:element name=″CodingType″type=″CodingTypetype″
                   minOccurs=″1″maxOccurs=″1″>
                </xsd:element>
                <xsd:element name=″ImageFilePath″type=″stringtype″
                       minOccurs=″1″maxOccurs=″1″>
                </xsd:element>
                <xsd:element name=″ImageCode″type=″stringtype″
                   minOccurs=″1″maxOccurs=″1″>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
        <!--================================================
==========-->
        <xsd:complexType name=″GenerateFiletype″>
           <xsd:sequence>
              <xsd:element name=″TargetFilePath″type=″stringtype″
                 maxOccurs=″1″minOccurs=″1″>
              </xsd:element>
              <xsd:element       name=″Content″           type=″stringtype″
maxOccurs=″1″
                 minOccurs=″1″>
              </xsd:element>
              <xsd:element name=″AppendMode″type=″booleantype″
                 maxOccurs=″1″minOccurs=″1″>
              </xsd:element>
          </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″ClaimStageIntype″>
             <xsd:sequence>
                <xsd:element        name=″Source″       type=″stringtype″
maxOccurs=″1″
                   minOccurs=″1″>
               </xsd:element>
                <xsd:element name=″Target″type=″stringtype″maxOccurs=″1″
                   minOccurs=″1″>
                </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″ClaimStageOuttype″>
             <xsd:sequence>
                <xsd:element         name=″Source″          type=″stringtype″
maxOccurs=″1″
                   minOccurs=″1″>
                </xsd:element>
                <xsd:element name=″Target″type=″stringtype″maxOccurs=″1″
                   minOccurs=″1″>
                </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″ClaimResourcetype″>
             <xsd:sequence>
                <xsd:element name=″ClaimNODES″type=″stringtype″
                     maxOccurs=″1″minOccurs=″0″>
                 </xsd:element>
                 <xsd:element name=″ClaimNCPUS″type=″stringtype″
                     maxOccurs=″1″minOccurs=″0″>
                 </xsd:element>
                 <xsd:element name=″ClaimMemory″type=″stringtype″
                     maxOccurs=″1″minOccurs=″0″>
                 </xsd:element>
                 <xsd:element name=″ClaimVirtualMemory″type=″stringtype″
                     maxOccurs=″1″minOccurs=″0″>
                 </xsd:element>
                 <xsd:element name=″ClaimCPUTime″type=″stringtype″
                     maxOccurs=″1″minOccurs=″0″>
                 </xsd:element>
                 <xsd:element name=″ClaimWallTime″type=″stringtype″
                     maxOccurs=″1″minOccurs=″0″>
                 </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″JobManageTemplatetype″>
             <xsd:sequence>
                <xsd:element name=″JobManageAppearance″
                   type=″JobManageAppearancetype″           minOccurs=″1″
maxOccurs=″1″>
                </xsd:element>
                <xsd:element name=″JobManageOperation″
                   type=″JobManageOperationtype″            minOccurs=″l″
maxOccurs=″1″>
                </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″JobManageAppearancetype″>
             <xsd:sequence>
                <xsd:element name=″HTMLContent″type=″stringtype″
                   maxOccurs=″1″minOccurs=″0″>
                </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″JobManageOperationtype″>
             <xsd:sequence>
                <xsd:element  name=″OperationName″      type=″stringtype″
maxOccurs=″1″minOccurs=″0″></xsd:element>
                <xsd:element name=″OperationSequence″
                   type=″OperationSequencetype″maxOccurs=″unbounded″
minOccurs=″0″>
                </xsd:element>
             </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″OperationSequencetype″>
             <xsd:sequence>
                <xsd:element    name=″Invoker″         type=″stringtype″
maxOccurs=″1″
                   minOccurs=″0″>
                </xsd:element>
                <xsd:element name=″GenerateFile″type=″GenerateFiletype″
                   maxOccurs=″1″minOccurs=″0″>
                  </xsd:element>
                  <xsd:element name=″UploadFile″type=″UploadFiletype″
                      maxOccurs=″1″minOccurs=″0″>
                  </xsd:element>
                  <xsd:element name=″Executable″type=″xsd:string″
                      maxOccurs=″1″minOccurs=″0″>
                  </xsd:element>
              </xsd:sequence>
          </xsd:complexType>
          <!--================================================
==========-->
          <xsd:complexType name=″UploadFiletype″>
             <xsd:sequence>
                <xsd:element        name=″Source″     type=″stringtype″
maxOccurs=″1″
                   minOccurs=″1″>
                </xsd:element>
                <xsd:element name=″Target″type=″stringtype″maxOccurs=″1″
                   minOccurs=″1″>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
         <xsd:complexType name=″ProcessType″>
             <xsd:sequence>
                <xsd:element name=″Tag″type=″stringtype″></xsd:element>
                <xsd:element                                  name=″Executable″
type=″stringtype″></xsd:element>
             </xsd:sequence>
         </xsd:complexType>
       </xsd:schema>
附件2模板的语法定义
1概述
本文档描述HPCG软件类型模板的语法定义。
2术语
HSTT:HPCG软件类型模板(HPCG Software Type Template)。
3HSTT使用范围
HPCG中,对于软件资源接入,采用类型定义与软件实例接入相结合的方式进行。其中,软件类型的定义最后以软件类型模板的形式呈现。该模版的物理形态是一个xml文件,该文件的语法必须符合本文档中的HSTT的语法定义。
4HSTT文档结构
HSTT模板文档是一种XML文档,其Schema定义请参阅附录1。
一个HSTT模板文档将含有下列内容:
Figure B2009100827206D0000221
根元素为HPCGTemplate
Figure B2009100827206D0000222
根元素含有两个子元素:JobSubmitTemplate和JobManageTemplate,前者负责定义作业提交界面外观和逻辑,后者则描述作业管理界面外观和逻辑。二者都是为同一个软件类型服务的。
Figure B2009100827206D0000223
JobSubmitTemplate元素中含有两个子元素:
■JobSubmitAppearance:负责描述作业提交界面的外观
■JobSubmitOperation:描述如何根据用户输入和其他信息完成作业提交操作
Figure B2009100827206D0000224
JobManageTemplate元素中含有两个子元素:
■JobManageAppearance:负责描述作业管理界面的外观
■JobManageOperation:描述如何响应用户请求完成作业管理操作HSTT模板文档的总体结构为:
<HPCGTemplate>
    <JobSubmitTemplate>
        <JobSubmitAppearance>
              描述提交界面外观的类HTML字符串
        </JobSubmitAppearance>
        <JobSumitOperation>
              描述执行作业提交操作的逻辑
        </JobSumitOperation>
    </JobSubmitTemplate>
    <JobManageTemplate>
        <JobManageAppearance>
              描述作业管理页面的类HTML字符串
        </JobManageAppearance>
        <JobManageOperation>
              描述执行作业管理操作的逻辑
        </JobManageOperation>
    </JobManageTemplate>
 </HPCGTemplare>
5HSTT模板中的元素类型和变量
1、CodingTypeEnumeration类型:图像二进制内容转制为文本内容的编码方式。包括:
a)Ba se64
变量:
变量由${...}表达
保留变量包括:
Figure B2009100827206D0000225
${LineFeed}换行
Figure B2009100827206D0000226
${RandomID}随机数
Figure B2009100827206D0000231
${PertalBasePath}该类型作业在Portal端的临时目录路径
Figure B2009100827206D0000232
${JSDL_SAVE_DIR}jsdl文件以及提交作业时需生成的文件临时存放地址
${environment}机群的环境信息
Figure B2009100827206D0000234
${queueName}作业提交的队列
Figure B2009100827206D0000235
${templateFileName}模板文件名即作业类型
6HSTT模板元素
HSTT模板元素包括所有可能出现于标准HSTT模板文档中的元素。任何使用HSTT模板的高性能计算客户端应用程序都必需能处理这些模板元素。
6.1描述HSTT模板结构的元素
6.1.1HPCGTemplate元素
6.1.1.1.1定义
HPCGTemplate元素是HSTT模板文档的根元素,负责描述整个HSTT模板的内容。
它可含有两个子元素,分别为JobSubmitTemplate和JobManageTemplate。
6.1.1.1.2重复次数
有且仅有1次。
6.1.1.1.3类型
复杂类型,必须包含如下元素:
JobSubmitTemplate
Figure B2009100827206D0000237
JobManageTemplate
6.1.1.1.4属性
6.1.1.1.5伪Schema
<HPCGTemplate>
   <JobSubmitTemplate../>
   <JobManageTemplate.../>
</HPCGTemplate>
6.1.1.1.6示例
<HPCGTemplate>
   <JobSubmitTemplate>
       ..........
   </JobSubmitTemplate>
   <JobManageTemplate>
       ..........
   </JobManageTemplate>
</HPCGTemplate>
6.1.2JobSubmitTemplate元素
6.1.2.1.1定义
JobSubmitTemplate元素是负责描述该软件类型模板中有关作业提交的内容,涉及作业提交界面外观和作业提交处理逻辑。
6.1.2.1.2重复次数
有且仅有1次。
6.1.2.1.3类型
复杂类型,必须包含如下元素:
Figure B2009100827206D0000238
JobSubmitAppearance
JobSubmitOperation
6.1.2.1.4属性
6.1.2.1.5伪Schema
<JobSubmitTemplate>
   <JobSubmi tAppearance  .../>
   <JobSubmitOperation  .../>
</HPCGTemplate>
6.1.2.1.6示例
<JobSubmitTemplate>
   <JobSubmitAppearance>
       .........
   </JobSubmitAppearance>
   <JobSubmitOperation>
       ..........
   </JobSubmitOperation>
</ JobSubmitTemplate>
6.1.3JobManageTemplate元素
6.1.3.1.1定义
JobManageTemplate元素负责定义客户端应用程序的作业管理界面外观和处理逻辑。其典型用途包括定义“中断操作”功能等等。
6.1.3.1.2重复次数
有且仅有1次。
6.1.3.1.3类型
复杂类型,必须包含如下元素:
Figure B2009100827206D0000241
JobManageAppearance
Figure B2009100827206D0000242
JobManageOperation
6.1.3.1.4属性
6.1.3.1.5伪Schema
<JobManageTemplate>
   <JobManageAppearance  .../>
   <JobManageOperation  .../>
</JobManageTemplate>
6.1.3.1.6示例
<JobManageTemplate>
   <JobManageAppearance>
       .........
   </JobManageAppearance>
   <JobManageAppearance  >
       ..........
   </JobManageAppearance>
</JobManageTemplate>
6.2描述作业提交界面外观的元素
6.2.1JobSubmitAppearance元素
6.2.1.1.1定义
JobSubmitAppearance元素负责描述该HPCG软件类型应用在提交作业时的用户界面外观。
当用户在HPCG作业客户端Portal上尝试提交某HPCG软件类型的作业时,HPCG客户端软件将根据JobSubmitAppearance中定义的内容为用户提供图形化的提交界面,界面中将包括标签栏、下拉框、输入框、单选框、多选框、按钮等组件,也可能包含有少量图片介绍。
6.2.1.1.2重复次数
有且仅有1次。
6.2.1.1.3类型
复杂类型,必须包含如下元素:
Figure B2009100827206D0000243
HTMLContent
Figure B2009100827206D0000251
ImageContent
6.2.1.1.4属性
6.2.1.1.5伪Schema
<JobSubmitAppearance>
   <HTMLContent../>
   <ImageContent.../>
</JobSubmitAppearance>
6.2.1.1.6示例
< JobSubmitAppearance>
   <HTMLContent>
      ..........
   </HTMLContent>
   <ImageContent>
      ..........
   </ImageContent>
</ JobSubmitAppearance>
6.2.2HTMLContent元素
6.2.2.1.1定义
HTMLContent元素负责存储将被显示成作业提交用户界面的HTML页面内容。其内容是存储为CDATA字符串的HTML页面描述文本。
当载入HSTT模板文档时,HPCG作业客户端Portal会解析出HTMLContent的内容,并将其显示到作业提交用户界面上。
出现在HTMLContent元素中的HTML内容必须符合HTML元素的语法,并允许出现如下内容:
Figure B2009100827206D0000252
各种静态组件,譬如<table>、<tr>、<td>、<label>等
Figure B2009100827206D0000253
各种输入组件,譬如下拉框、单选框、复选框、输入框等
在位于HTMLContent元素内的HTML内容中不允许出现如下内容:
Figure B2009100827206D0000254
javascript、ASP、JSP等脚本
Figure B2009100827206D0000255
<Head>,<Body>等表示HTML文档结构的内容
Figure B2009100827206D0000256
<Form>表单标签
Figure B2009100827206D0000257
其他HTML高级特性
6.2.2.1.2重复次数
有且仅有1次。
6.2.2.1.3类型
内含一个CDATA型字符串。字符串的内容即为作业提交外观界面HTML文本。
6.2.2.1.4属性
6.2.2.1.5伪Schema
<HTMLContent>
    <![CDATA[
           .....HTML Content  ...
    ]]>
</HTMLContent>
6.2.2.1.6示例
<HTMLContent>
    <![CDATA[
         <table width=″100%″bgcolor=″#F1F8FF″>
           <tr>
                <td       width=″64%″ height=″30″   align=″center″
valign=″middle″>
                    <div align=″left″class=″al″>
                    <br>
                    The<b>BLAST</b>(Basic Local Alignment Search
                    Tool)programs are widely used tools for searching
                    DNA and protein databases for sequence similarity
                    to identify homologs to a query sequence.
                     <br>
                    </td>
               </tr>
            </table>
         ]]>
      </HTMLContent>
6.2.3ImageContent元素
6.2.3.1定义
ImageContent元素负责存储该软件类型作业提交用户界面中需要使用的某个图像。该图像可以是Web允许的任意格式。ImageContent元素中使用一个CDATA型字符串来保存该图像的文本编码。
由于模板的文件尺寸不应过大,因此ImageContent元素中保存的图像应当控制在50KB以下,以免给全局元信息系统带来负担。
对图像的文本化编码可采用各种通用的成熟编码机制,譬如广泛用户电子邮件附件编码的Base64编码等。
HPCG作业客户端程序在读取ImageContent元素中的编码字符串后,可根据其声明的编码算法对图像进行解码,并在指定位置生成图像文件,以供作业提交用户界面使用。
6.2.3.2重复次数
0次或者1次(n<3)。
6.2.3.3类型
内含三个元素:
Figure B2009100827206D0000261
CodingType:描述对图像进行文本化编码的方式
Figure B2009100827206D0000262
ImageFilepath:描述生成的图像文件位置
Figure B2009100827206D0000263
ImageCode:描述经过指定算法处理而得的图像文本编码
6.2.3.4属性
6.2.3.5伪Schema
<ImageContent>
    <CodingType.../>
    <ImageFilepath.../>
    <ImageCode.../>
</ImageContent>
6.2.4CodingType元素
6.2.4.1定义
CodingType元素负责指定图像内容编码为文本内容的编码算法类型。
6.2.4.2重复次数
对每个ImageContent元素有且仅有1次。
6.2.4.3类型
CodingTypeEnumeration类型
6.2.4.4属性
6.2.4.5伪Schema
<CodingType>      HSTT:CodeTypeEnumeration    </
CodingType>
6.2.4.6示例
         <CodingType>base64</CodingType>
6.2.5ImageFi lePath元素
6.2.5.1定义
ImageFilepath元素负责说明解析得到的图像文件的路径和名称。
6.2.5.2重复次数
对每个ImageContent元素有且仅有1次。
6.2.5.3类型
xsd:String类型。
6.2.5.4属性
6.2.5.5伪Schema
<ImageFilepath>  xsd:string  </ImageFilepath>
6.2.5.6示例
<ImageFilepath>    ${SoftwareType_Base}/1.jpg    </
ImageFilepath>
6.2.6ImageCode元素
6.2.6.1定义
ImageCode元素负责以文本形式存储图形文件的二进制内容。
6.2.6.2重复次数
对每个ImageContent元素有且仅有1次。
6.2.6.3类型
CDATA型字符串,其内容是图像二进制内容经过CodingType所指定编码算法进行编码后而得到的字符串。
6.2.6.4属性
6.2.6.5伪Schema
<ImageCode>
    <![CDATA[
           ....Image Coding Content...
    ]]>
</ImageCode>
6.3描述作业提交处理逻辑的元素
6.3.1JobSubmitOperation元素
6.3.1.1定义
JobSubmitOperation元素负责描述该HPCG软件类型客户端应用在提交作业时的处理逻辑。主要包括以下内容:
Figure B2009100827206D0000271
如何根据用户输入的参数来生成指定内容的文件;
如何根据用户输入的参数以及该类型软件的业务逻辑来生成相应的JSDL作业描述文件
6.3.1.2重复次数
有且仅有1次。
6.3.1.3类型
复杂类型,必需支持如下元素:
Figure B2009100827206D0000273
ClaimJobName
Figure B2009100827206D0000274
ClaimSoftwareName
ClaimSoftwareVersion
Figure B2009100827206D0000276
ClaimJobProject
Figure B2009100827206D0000277
ClaimDescription
Figure B2009100827206D0000278
ClaimExecutable
Figure B2009100827206D0000279
ClaimArgument
Figure B2009100827206D00002710
ClaimOutput
Figure B2009100827206D00002711
ClaimError
Figure B2009100827206D0000281
ClaimInput
Figure B2009100827206D0000282
ClaimStageIn
Figure B2009100827206D0000283
ClaimStageOut
Figure B2009100827206D0000284
ClaimResource
GenerateFile
Figure B2009100827206D0000286
ClaimJobWorkingDirectory
6.3.1.4属性
6.3.1.5伪Schcma
<JobSubmitOperation>
   <ClaimJobName../>
   <ClaimDescription  ../>
   <ClaimJobProject  ../>
   ....等等
</JobSubmitOperation>
6.3.2ClaimSoftwareName元素
6.3.2.1定义
ClaimSoftwareName元素主要是用来描述本作业所属软件类型名称。
6.3.2.2重复次数
零次或一次
6.3.2.3类型
xsd:string
6.3.2.4属性
6.3.2.5示例
<ClaimSoftwareName>blast</ClaimSoftwareName>
6.3.3ClaimSoftwareVersion元素
6.3.3.1定义
ClaimSoftwareVersion元素主要是描述本软件所属软件类型的版本,譬如1.0
6.3.3.2重复次数
零次或一次
6.3.3.3类型
Xsd:String
6.3.3.4属性
6.3.3.5示例
<ClaimSoftwareVersion>1.0</ClaimSoftwareVersion>
6.3.4ClaimJobName元素
6.3.4.1定义
ClaimJobName负责描述该作业的名称,是由用户确定的字符串,用户可能在多个j sdl文件里面使用同一个jobname。
6.3.4.2重复次数
零次或一次
6.3.4.3类型
Xsd:String
6.3.4.4属性
6.3.4.5伪Schema
<ClaimJobName>${jobname}</ClaimJobName>
6.3.5ClaimJobProject元素
6.3.5.1定义
ClaimJobProject负责描述作业所属工程
6.3.5.2重复次数
零次或n次
6.3.5.3类型
xsd:String
6.3.5.4属性
6.3.5.5伪Schema
<ClaimJobName>${jobproject}</ClaimJobName>
6.3.6ClaimDescription元素
6.3.6.1定义
ClaimDescription是作业的一个描述
6.3.6.2重复次数
零次或一次
6.3.6.3类型
Xsd:String
6.3.6.4属性
6.3.6.5伪Schema
<ClaimDescription>${description}</ClaimDescription>
6.3.7ClaimExecutable元素
6.3.7.1定义
ClaimExecutable负责描述该作业在服务器上的执行脚本
6.3.7.2重复次数
有且仅有一次
6.3.7.3类型
Xsd:String
6.3.7.4属性
6.3.7.5示例
<ClaimExecutable>export ENl=enl WWWBLAST_HOME=/home/gos2/wwwblast;
mkdi r${Random_ID};cd${Random_ID};
。。。
</ClaimExecutable>
6.3.8ClaimArgument元素
6.3.8.1定义
ClaimArgument负责描述该作业。
6.3.8.2重复次数
零次或一次
6.3.8.3类型
xsd:String
6.3.8.4属性
6.3.8.5示例
<ClaimArgument>${argument}</ClaimArgument>
6.3.9ClaimOutput元素
6.3.9.1定义
ClaimOutput负责描述该作业的输出文件名
6.3.9.2重复次数
零次或一次
6.3.9.3类型
xsd:String
6.3.9.4属性
6.3.9.5示例
<ClaimOutput>stdout.txt</ClaimOutput>
6.3.10ClaimError元素
6.3.10.1定义
ClaimError负责描述该作业标准错误输出
6.3.10.2重复次数
0次或者1次
6.3.10.3类型
xsd:String
6.3.10.4属性
6.3.10.5示例
<ClaimError>stderr.txt</ClaimError>
6.3.11ClaimInput元素
6.3.11.1定义
ClaimInput负责描述该作业的标准输入
6.3.11.2重复次数
零次或一次
6.3.11.3类型
Xsd:String
6.3.11.4属性
6.3.11.5伪Schema
<ClaimInput>stdin.txt</Claimlnput>
6.3.12ClaimStageIn元素
6.3.12.1定义
ClaimStageIn负责描述如何把作业从远端数据位置StageIn到作业管理服务工作目录中。
6.3.12.2重复次数
0次或者n次
6.3.12.3类型
复杂类型:
Figure B2009100827206D0000301
Source:文件的源地址
Figure B2009100827206D0000302
Target:文件名
Figure B2009100827206D0000303
6.3.12.4属性
6.3.12.5示例
<ClaimStageIn>
<Source>${Portal_base}/${Random_ID}/aa.seq${Random_ID}</Source>
    <Target>aa.seq${Random_ID}</Target>
  </ClaimStageIn>
6.3.13ClaimStageOut元素
6.3.13.1定义
ClaimStageOut负责描述如何把作业执行结果从网格作业管理服务工作目录Srage Out到远端数据存储位置上。
6.3.13.2重复次数
0次或多次
类型
复杂类型:
Figure B2009100827206D0000311
Source:描述输出文件的目的地
Figure B2009100827206D0000312
Target:输出文件名
6.3.13.3属性
6.3.13.4伪Schema
<ClaimStageOut>
<Source>${stageoutdir}/resultOfBLAST2_${Random_ID}.jsp</Source>
    <Target>resul tOfBLAST2_${Random_ID}.jsp</Target>
</ClaimStageOut>
6.3.14ClaimResource元素
6.3.14.1定义
ClaimResource负责描述该作业所申请的资源信息。如果模板含有该标签,则生成jsdl文件时以该标签中定义的CliamResource为主,此处CliamResource优先级最高。
6.3.14.2重复次数
零次或一次
6.3.14.3类型
复杂类型:
Figure B2009100827206D0000313
ClaimNODES:描述节点数
Figure B2009100827206D0000314
ClaimNCPUS:描述cpu数
Figure B2009100827206D0000315
ClaimMemory:描述内存数
Figure B2009100827206D0000316
ClaimVirtualMemory:描述虚拟内存数
Figure B2009100827206D0000317
ClaimCPUTime:描述cpu时间
Figure B2009100827206D0000318
ClaimWallTime:
6.3.14.4属性
6.3.14.5伪Schema
<ClaimResource>
    <ClaimNODES>${ClaimNODES}</ClaimNODES>
    <ClaimNCPUS>${ClaimNCPUS}</ClaimNCPUS>
    <ClaimMemory>${ClaimMemory}</ClaimMemory>
    <ClaimVirtualMemory>${ClaimVi rtualMemory}</ClaimVirtualMemory
>
    <ClaimCPUTime>${ClaimCPUTime}</ClaimCPUTime>
    <ClaimWallTime>${ClaimWallTime}</ClaimWallTime>
  </ClaimResource>
6.3.15GenerateFile元素
6.3.15.1定义
generateFile负责描述用户在提交作业时需要生成的文件内容和文件路径。
6.3.15.2重复次数
0次或n次
6.3.15.3类型
复杂类型:
Figure B2009100827206D0000321
TargetFilepath:描述生成文件源地址
Figure B2009100827206D0000322
Content:描述文件的内容
Figure B2009100827206D0000323
AppendMode:描述当文件存在时,生成文件是否在原文件后面追加内容
6.3.15.4属性
6.3.15.5伪Schema
<GenerateFile>
    <TargetFilepath>${Portal_ba se}/__HEAD${Random_ID}</TargetFilepath>
    <Content>-----------------------------
${LineFeed}Content-Disposition:                              form-data;
name=″PROGRAM″${LineFeed}${PROGRAM}
${LineFeed}-------------------------------${LineFeed}Content-Disposition:
form-data;                           name=″DATALIB″${LineFeed}${DATALIB}
${LineFeed}-------------------------------${LineFeed}Content-Disposition:
form-data;name=″SEQUENCE″${LineFeed}${SEQUENCE}${LineFeed}</Content>
    <AppendMode>true</AppendMode>
 </GenerateFile>
6.3.16ClaimJobWorkingDirectory元素
6.3.16.1定义
ClaimHomeDirectory负责指定作业的工作目录。如果模板中出现此标签,提交的作业会在该处指定的目录中运行。此处对jobWorkingDirectory指定的优先级最高。
6.3.16.2重复次数
0次或n次
6.3.16.3类型
Xsd:String
6.3.16.4属性
6.3.16.5伪Schema
<ClaimJobWorkingDirectory>/home/gos</ClaimJobWorkingDirectory>
6.3.17Source元素
6.3.17.1定义
Source负责描述StageIn和StageOut操作时源文件的位置
6.3.17.2重复次数
对于每个ClaimStageIn或ClaimStageOut元素,有且仅有一次
6.3.17.3类型
Xsd:String
6.3.17.4属性
6.3.17.5示例
<Source>${Pertal_base}/${Random_ID}/aa.seq</Source>
6.3.18Target元素
6.3.18.1定义
Target主要负责描述StageIn和StageOut操作时目的文件位置
6.3.18.2重复次数
对于每个ClaimStageIn或ClaimStageOut元素,有且仅有一次
6.3.18.3类型
String
6.3.18.4属性
6.3.18.5示例
<Target>aa.seq</Target>
6.3.19TargetFilePath元素
6.3.19.1定义
TargetFilepath负责描述用户触发作业提交时间之后,客户端程序需要马上生成的文件路径和文件名。
6.3.19.2重复次数
对每个GenerateFile元素,有且仅有一次
6.3.19.3类型
Xsd:String
6.3.19.4属性
6.3.19.5伪Schema
<TargetFilepath>${Portal_base}/__END${Random_ID}</TargetFilepath>
6.3.20Content元素
6.3.20.1定义
Content负责描述用户触发作业提交时间之后,客户端程序需要马上生成的文件内容
6.3.20.2重复次数
对每个GenerateFile元素,有且仅有一次
6.3.20.3类型
Xsd:String
6.3.20.4属性
6.3.20.5示例
<Content>
<![CDATA[
-----------------------------${LineFeed}Content-Disposition:form-data;
name=″PROGRAM″${LineFeed}${PROGRAM}
${LineFeed}-------------------------------${LineFeed}Content-DisDosition:
form-data;                           name=″DATALIB″${LineFeed}${DATALIB}
${LineFeed}-------------------------------${LineFeed}Content-DisDosition:
form-data;name=″SEQUENCE″${LineFeed}${SEQUENCE}${LineFeed}
   ]]>
</Content>
6.3.21AppendMode元素
6.3.21.1定义
AppendMode主要用来描述文件的属性,是否在文件末尾追加内容
6.3.21.2重复次数
对每个GenerateFile元素,有且仅有一次
6.3.21.3类型
xsd:boolean
6.3.21.4属性
6.3.21.5示例
<AppendMode>true</AppendMode>
6.3.22ClaimNODES:描述节点数
6.3.22.1定义
ClaimNODES元素表示的是一个最大值,主要用来描述用户申请资源中节点数最大值
6.3.22.2重复次数
对于每个ClaimResource元素,零次或一次
6.3.22.3类型
xsd:nonNegativeInteger
6.3.22.4属性
6.3.22.5伪Schema
<ClaimNODES>xsd:nonNegativeInteger</ClaimNODES>
6.3.23ClaimNCPUS元素
6.3.23.1定义
ClaimNCPuS元素表示的是一个最大值,主要用来描述作业所需要每个节点的cpu数
6.3.23.2重复次数
对于每个ClaimResource元素,零次或一次
6.3.23.3类型
xsd:nonNegativeInteger
6.3.23.4属性
6.3.23.5伪Schema
<ClaimNCPUS>xsd:nonNegativeInteger/ClaimNCPUS>
6.3.24ClaimMemory:描述内存数
6.3.24.1定义
ClaimMemory元素表示的是一个最大值,主要用来描述各个资源所需要物理内存的总和。如果不设此项,系统可能采用任意值。
6.3.24.2重复次数
对于每个ClaimResource元素,零次或一次
6.3.24.3类型
xsd:nonNegativeInteger
6.3.24.4属性
6.3.24.5伪Schema
<ClaimMemory>xsd:nonNegativeInteger</ClaimMemory>
6.3.25ClaimVirtualMemory:描述虚拟内存数
6.3.25.1定义
ClaimVirtualMemory元素表示的是一个最大值,主要用来描述用户提交作业时,各个资源所需虚拟内容的总和,如果不设置此项,系统可能采用任意值。
6.3.25.2重复次数
对于每个ClaimResource元素,零次或一次
6.3.25.3类型
xsd:nonNegativeInteger
6.3.25.4属性
6.3.25.5伪Schema
     <ClaimVirtualMemory>
xsd:nonNegativeInteger</ClaimVirtualMemory>
6.3.26ClaimCPUTime:描述cpu时间
6.3.26.1定义
ClaimCPUTime元素表示的是一个最大值,主要用来描述资源执行任务所需的全部cpu时间数,如果不设置此项,系统可能采用任意值。
6.3.26.2重复次数
对于每个ClaimResource元素,零次或一次
6.3.26.3类型
jsdl:RangeValue_Type
6.3.26.4属性
6.3.26.5伪Schema
<ClaimCPUTime>jsdl:RangeValue_Type</ClaimCPUTime>
6.3.26.6示例
<ClaimCPUTime>60.0</ClaimCPUTime>
6.3.27ClaimWallTime:
6.3.27.1定义
ClaimWallTime是一个正整数,主要用来描述申请执行的时间限制,单位为秒。如果不设置此项,则系统会使用默认值。
6.3.27.2重复次数
对于每个ClaimResource元素,零次或一次
6.3.27.3类型
xsd:nonNegativeInteger
6.3.27.4属性
6.3.27.5伪Schema
<ClaimWallTime>xsd:nonNegativeInteger</ClaimWallTime>
6.3.27.6示例
<ClaimWallTime>60</ClaimWallTime>
6.4描述作业管理界面外观的元素
作业管理界面外观元素模板语法定义与作业提交界面外观定义基本一样。
6.4.1JobManageAppearance元素
6.4.1.1定义
JobManageAppearance元素负责描述该HPCG软件类型应用在作业管理的用户界面外观。
当用户在HPCG作业客户端Portal上管理以前提交的某HPCG软件类型的作业时,HPCG客户端软件将根据JobManageAppearance中定义的内容为用户提供图形化的提交界面,界面中将包括标签栏、下拉框、输入框、单选框、多选框、按钮等组件,也可能包含有少量图片介绍。
6.4.1.2重复次数
有且仅有一次
6.4.1.3类型
复杂类型,必须包含以下元素
Figure B2009100827206D0000351
HTMLContent
Figure B2009100827206D0000352
ImageContent
6.4.1.4属性
6.4.1.5伪Schema
<JobManageAppearance>
   <HTMLContent../>
   <ImageContent.../>
</JobManageAppearance>
6.4.2HTMLContent
6.4.2.1定义
HTMLContent元素负责存储将被显示成用户在作业管理界面的HTML页面内容。其内容是存储为CDATA字符串的HTML页面描述文本。
当载入HSTT模板文档时,HPCG作业客户端Portal会解析出HTMLContent的内容,并将其显示到作业管理用户界面上。
出现在HTMLContent元素中的HTML内容必须符合HTML元素的语法,并允许出现如下内容:
Figure B2009100827206D0000361
各种静态组件,譬如<table>、<tr>、<td>、<label>等
Figure B2009100827206D0000362
各种输入组件,譬如下拉框、单选框、复选框、输入框等
在位于HTMLContent元素内的HTML内容中不允许出现如下内容:
Figure B2009100827206D0000363
javascript、ASP、JSP等脚本
<Head>,<Body>等表示HTML文档结构的内容
Figure B2009100827206D0000365
<Form>表单标签
Figure B2009100827206D0000366
其他HTML高级特性
6.4.2.2重复次数
有且仅有一次
6.4.2.3类型
内含一个CDATA型字符串。字符串的内容即为作业管理外观界面HTML文本。
6.4.2.4属性
6.4.2.5伪Schema
<HTMLContent>
    <![CDATA[
           .....HTML Content...
    ]]>
</HTMLContent>
6.4.3ImageContent
6.4.3.1定义
ImageContent元素负责存储该软件类型作业管理用户界面中需要使用的某个图像。该图像可以是Web允许的任意格式。ImageContent元素中使用一个CDATA型字符串来保存该图像的文本编码。
由于模板的文件尺寸不应过大,因此ImageContent元素中保存的图像应当控制在50KB以下,以免给全局元信息系统带来负担。
对图像的文本化编码可采用各种通用的成熟编码机制,譬如广泛用户电子邮件附件编码的Base64编码等。
HPCG作业客户端程序在读取ImageContent元素中的编码字符串后,可根据其声明的编码算法对图像进行解码,并在指定位置生成图像文件,以供作业管理用户界面使用。
6.4.3.2重复次数
0次或者n次(n<3)。
6.4.3.3类型
内含三个元素:
Figure B2009100827206D0000367
CodingType:描述对图像进行文本化编码的方式
Figure B2009100827206D0000368
ImageFilepath:描述生成的图像文件位置
Figure B2009100827206D0000369
ImageCode:描述经过指定算法处理而得的图像文本编码
6.4.3.4属性
6.4.3.5伪Schema
<ImageContent>
   <HTMLContent../>
   <ImageContent.../>
</ImageContent>
6.4.4CodingType
6.4.4.1定义
CodingType元素负责指定图像内容编码为文本内容的编码算法类型。
6.4.4.2重复次数
对每个ImageContent元素有且仅有1次。
6.4.4.3类型
CodingTypeEnumeration类型
6.4.4.4属性
6.4.4.5伪Schema
<CodingType>      HSTT:CodeTypeEnumeration    </
CodingType>
6.4.4.6示例
<CodingType>base64</CodingType>
6.4.5ImageFilepath
6.4.5.1定义
ImageFilepath元素负责说明解析得到的图像文件的路径和名称。
6.4.5.2重复次数
对每个ImageContent元素有且仅有1次。
6.4.5.3类型
xsd:String类型。
6.4.5.4属性
6.4.5.5伪Schema
<ImageFilepath>   xsd:string    </ImageFilepath>
6.4.5.6示例
<ImageFilepath>      ${SoftwareType_Base}/1.jpg    </
ImageFilepath>
6.4.6ImageCode
6.4.6.1定义
ImageCode元素负责以文本形式存储图形文件的二进制内容。
6.4.6.2重复次数
对每个ImageContent元素有且仅有1次。
6.4.6.3类型
CDATA型字符串,其内容是图像二进制内容经过CodingType所指定编码算法进行编码后而得到的字符串。
6.4.6.4属性
6.4.6.5伪Schema
<ImageCode>
   <![CDATA[
          ....Image Coding Content...
   ]]>
</Imageeode>
6.5描述作业管理处理逻辑的元素
6.5.1JobManageOperation元素
6.5.1.1定义
JobManageOperation负责描述当作业提交成功后,用户对正在运行的作业能执行怎样的操作。
一个典型的例子是对LSDyna作业执行中断操作。当用户按下由JobManageAppearance元素提供的作业管理界面上的“中断”按钮时,程序会根据JobManageOperation中规定的内容进行“中断”处理:首先根据用户选择的中断信号来生成中断文件,然后把该中断文件上传到本作业工作目录中。
JobManageOperation元素必须能处理典型的作业管理处理逻辑,包括作业中断、作业重执行、等等。
6.5.1.2重复次数
有且仅有一次
6.5.1.3类型
复杂类型:
Figure B2009100827206D0000381
Invoker
Figure B2009100827206D0000382
OperationSequence
6.5.1.4属性
6.5.1.5伪Schema
<JobManageOperation>
   <Invoker/>
   <OperationSequence/>
</JobManageOperation>
6.5.2OperationSequence元素
6.5.2.1定义
一系列处理操作,有先后次序
6.5.2.2重复次数
有且仅有一次
6.5.2.3类型
复杂类型:
Figure B2009100827206D0000383
Invoker
Figure B2009100827206D0000384
GenerateFile
Figure B2009100827206D0000385
UploadFile
6.5.2.4属性
6.5.2.5伪Schema
<OperationSequence>
   <GenerateFile/>
   <UploadFile/>
</OperationSequence>
6.5.3GenerateFile元素
6.5.5.1定义
GenerateFile负责描述用户在作业管理时需要生成的文件内容和文件路径。
6.5.5.2重复次数
0次或n次
6.5.5.3类型
复杂类型:
Figure B2009100827206D0000386
TargetFilePath:描述生成文件源地址
Figure B2009100827206D0000387
Content:描述文件的内容
Figure B2009100827206D0000388
AppendMode:描述当文件存在时,生成文件是否在原文件后面追加内容
6.5.5.4属性
6.5.5.5示例
<GenerateFile>
    <TargetFilepath>${Pertal_base}/__HEAD${Random_ID}</TargetFilepath>
    <Content>-----------------------------
${LineFeed}Content-Disposition:                              form-data;
name=″PROGRAM″${LineFeed}${PROGRAM}
${LineFeed}-------------------------------${LineFeed}Content-Disposition:
form-data;                           name=″DATALIB″${LineFeed}${DATALIB}
${LineFeed}-------------------------------${LineFeed}Content-Disposition:
form-data;name=″SEQUENCE″${LineFeed}${SEQUENCE}${LineFeed}</Content>
    <AppendMode>true</AppendMode>
  </GenerateFile>
6.5.4UploadFile元素
6.5.4.1定义
UploadFile主要用于描述用户上传文件到服务端信息
6.5.4.2重复次数
零次或n次
6.5.4.3类型
复杂类型:
Figure B2009100827206D0000391
Source
Figure B2009100827206D0000392
Target
6.5.4.4属性
6.5.4.5伪Schema
<UploadFile>
  <Source  />
  <Target  />
</UploadFile>
6.5.5Invoker元素
6.5.5.1定义
模板第三部分中触发该操作的组件名
6.5.5.2重复次数
有且仅有一次
6.5.5.3类型
Xsd:String
6.5.5.4属性
6.5.5.5伪Schema
<Invoker>SWl</Invoker>
6.5.6TargetFilePath
6.5.6.1定义
TargetFilepath负责描述用户触发作业提交时间之后,客户端程序需要马上生成的文件路径和文件名。
6.5.6.2重复次数
对每个GenerateFile元素,有且仅有一次
6.5.6.3类型
Xsd:String
6.5.6.4属性
6.5.6.5伪Schema
<TargetFilePath>${Portal_base}/__END${Random_ID}</TargetFilePath>
6.5.7Content
6.5.7.1定义
Content负责描述用户在作业管理时需生成的文件内容
6.5.7.2重复次数
对每个GenerateFile元素,有且仅有一次
6.5.7.3类型
Xsd:String
6.5.7.4属性
6.5.7.5示例
<Content>
<![CDATA[
-----------------------------${LineFeed}Content-Disposition:form-data;
name=″PROGRAM″${LineFeed}${PROGRAM}
${LineFeed}-------------------------------${LineFeed}Content-Disposition:
form-data;                           name=″DATALIB″${LineFeed}${DATALIB}
${LineFeed}-------------------------------${LineFeed}Content-Disposition:
form-data;name=″SEQUENCE″${LineFeed}${SEQUENCE}${LineFeed}
    ]]>
</Content>
6.5.8AppendMode
6.5.8.1定义
AppendMode主要用来描述文件的属性,是否在文件未尾追加内容
6.5.8.2重复次数
对每个GenerateFile元素,有且仅有一次
6.5.8.3类型
xsd:boolean
6.5.8.4属性
6.5.8.5示例
<AppendMode>true</AppendMode>
6.5.9Source元素
6.5.9.1定义
Source主要用来描述用户上传的源文件的路径{相对于客户端当前工作目录)
6.5.9.2重复次数
对每个uploadFile元素,有且仅有一次
6.5.9.3类型
Xsd:String
6.5.9.4属性
6.5.9.5示例
<Content>${pwd}/${filename}</Content>
6.5.10Target元素
6.5.10.1定义
Target元素用来描述用户上传的目的文件路径(相对于服务端批作业工作目录)
6.5.10.2重复次数
对于每个uploadFile元素,有且仅有一次
6.5.10.3类型
Xsd:String
6.5.10.4属性
6.5.10.5伪Schema
<Ta rget>${Portal_base}/${filename}${Random_ID}</Target>
7常用标签
JobSubmitOperation标签中常用标签包括
ClaimJobName
ClaimExecutable
ClaimStageIn
ClaimStageOut
GenerateFile
8高级功能使用
8.1Stagein多个文件
J s提供一个函数,可以在提交作业时,实时的增加一个stagein文件,代码示例如下:
JobSubmitAppearance:
    <div id=″stageInLocalList″>
        <input name=″stagein_file″type=″text″id=″uploadLocalFile″/>
    </div>
    <input                     type=″button″                   value=″addFile″
onClick=″HPCG.Template.clone(′uploadLocalFile′,true,′stageInLocalList′)″/>
JobSubmitOperation:
<ClaimStageIn>
    <Source>${Pertal_ba se}/${stagein}</Source>
    <Target>${stagein }</Target>
</ClaimStageIn>
此时一个ClaimStageIn支持同时上传多个文件并在生成的JSDL文件中有多个stagein文件。该高级功能仅支持ClaimStageIn标签。
8.2Stagein机群本地文件
在用户提交作业时,可以stagein机群本地的文件,代码示例如下:
JobSubmitAppearance:
    <input name=″stagein_file″type=″text″/>
    <input name=″stagein_file_name″type=″text″/>
JobSubmitOperatioi:
    <ClaimStageIn>
            <Source>file:///${stagein_file}</Source>
            <Target>${stagein_file_name}</Target>
    </ClaimStageIn>
9手工开发模板方法
根据例子模板修改模板
1,修改JobSubmitAppearance部分
a)修改HTMLContent,此部分主要是html文件
i.该html只需要<body>里面的内容,其他标签如<HTML>等请删除。
ii.该内容中不支持js
iii.该html文件中包含text输入框等,下拉框等
iv.这些控件的属性中name字段必须有,且必须和后面JobSubmitOperation对应。
2,修改JobSubmitOperation部分
a)该部分有很多字段,如不明白请先阅读HPCG Soft Type Template Specification_vO35.doc
b)修改相应的字段的变量,比如ClaimJobName中变量为jobname,如果在前面html文件中jobname对应的text输入框的属性hame=“JName”,此处改为JName即可
c)ClaimExecutable
i.该字段请使用<![CDATA[]]>
ii.可以直接定义一个变量,然后在html中让用户输入执行脚本(如通用模板)
iii.可以把脚本内容写上,其中有些用变量表示,接受用户在界面输入的参数(如blast模板)
iv.executable脚本中开头为命令的环境变量,比如blast中executable开始为:
export ENl=enl WWWBLAST_HOME=/opt/wwwblast;
d)Gene rateFile中Content字段
i.请使用<![CDATA[]]>,
ii.其具体内容和CDATA的外面不要有多余的回车和空格。
iii.其具体内容中如果有回车换行,请使用${LineFeed}代替
e)ClaimStageOut中Source字段
i.可以写成具体文件名,该文件必须在executable脚本中有生成(如blast模板);
f)可以写成变量,让用户在界面输入,该文件在executable脚本中必须有生成
3,保留关键字
以下保留关键字可以在模板中直接使用,请不要重复定义以下各字段变量。
●HPCG_CLAIM_NODES
描述用户申请资源中节点数最大值
●HPCG_CLAIM_NCPUS
描述作业所需要每个节点的cpu数
●HPCG_CLAIM_MEMORY
描述各个资源所需要物理内存的总和
●HPCG_CLAIM_VIRTUALMEMORY
描述用户提交作业时,各个资源所需虚拟内容的总和
●HPCG_CLAIM_CPUTIME
描述资源执行任务所需的全部cpu时间数
●HPCG_TEMPLATE_FILE_NAME
用户提交作业时选择使用的模板名
●HPCG_CLUSTER_NAME
用尸提交作业时选择的机群
●HPCG_QUEUE_NAME
用户提交作业时选择的队列
●HPCG_PORTAL_BASE
该目录位于前端机,是用于存放某个作业提交时的几个文件,包括JSDL文件,用户从自己机器上传的文件。该变量的值是以”http://${IP}:${port}/”开头的。
●HPCG_SUBMIT_TIME
该变量用于表示作业提交的时间
●HPCG_JSDL_SAVE_DIR
意义同HPCG_PORTAL_BASE。该变量是以前端机的绝对路径,如:/opt/GOS3/.../JSDL_SAVE_DIR
●Portal_base
与HPCG_PORTAL_BASE值相同,此变量是向前兼容
●HPCG_RANDOM_ID
此变量表示一个随机数,在一个作业中,所有使用该变量的地方,均为相同的一个随机数。
●Random_ID
同HPCG_RANDOM_ID,此变量是向前兼容
●HPCG_ENVIRONMENT
此变量表示软件实例里与机群有关系的环境变量。一般在模板中不需要使用此变量。

Claims (15)

1.一种网格计算环境下应用软件的封装集成方法,所述网格计算环境包括网格操作系统,所述网格操作系统包括模块管理模块,该方法包括:
步骤1)、在所述网格操作系统的模板管理模块中查找是否包含与所述应用软件相对应的模板;
步骤2)、在所述模板管理模块未包含有所述模板时,提取所述应用软件中与作业提交与作业管理有关的公共逻辑,将所述公共逻辑进行描述以生成模板;
步骤3)、将所生成的模板添加到所述的模板管理模块中;
步骤4)、为所述模板生成模板实例。
2.根据权利要求1所述的应用软件封装集成方法,其特征在于,在所述的步骤1)后,在所述模板管理模块包含有所述模板时,为所述模板生成模板实例。
3.根据权利要求1或2所述的应用软件封装集成方法,其特征在于,所述模板包括作业的提交与作业的管理;其中,
所述的作业的提交包括作业提交界面的描述和作业提交逻辑;
所述的作业的管理包括作业管理界面的描述和作业管理逻辑。
4.根据权利要求3所述的应用软件封装集成方法,其特征在于,所述的作业提交界面的描述包括:用于负责存储将被显示成作业提交用户界面的HTML页面内容的HTMLContent元素。
5.根据权利要求4所述的应用软件封装集成方法,其特征在于,所述的作业提交界面的描述还包括以下元素中的至少一种:用于负责存储作业提交用户界面中需要使用的某个图像的ImageContent元素、用于负责指定图像内容编码为文本内容的编码算法类型的CodingType元素、用于负责说明解析得到的图像文件的路径和名称的ImageFilePath元素、用于负责以文本形式存储图形文件的二进制内容的ImageCode元素。
6.根据权利要求3所述的应用软件封装集成方法,其特征在于,所述的作业提交逻辑包括:负责描述作业在服务器上的执行脚本的ClaimExecutable元素、负责描述如何把作业从远端数据位置上传到作业管理服务工作目录中的ClaimStageIn元素、负责描述如何把作业执行结果从网格作业管理服务工作目录下传到远端数据存储位置上的ClaimStageOut元素、负责描述作业所申请的资源信息的ClaimResource元素、负责描述用户在提交作业时需要生成的文件内容和文件路径的generateFile元素。
7.根据权利要求6所述的应用软件封装集成方法,其特征在于,所述的作业提交逻辑还包括以下元素中的至少一种:用来描述作业所属软件类型名称的ClaimSoftwareName元素、用来描述软件所属软件类型的版本的ClaimSoftwareVersion元素、负责描述作业名称的ClaimJobName元素、负责描述作业所属工程的ClaimJobProject、用于对作业进行描述的ClaimDescription元素、负责描述作业相关参数的ClaimArgument元素、负责描述作业的输出文件名的ClaimOutput元素、负责描述作业标准错误输出的CiaimError元素、负责描述该作业的标准输入的ClaimInput元素、负责指定作业的工作目录的ClaimHomeDirectory元素、负责描述上传和下传操作时源文件的位置的Source元素、负责描述StageIn和StageOut操作时目的文件位置的Target元素、负责描述用户触发作业提交时间后客户端程序需要马上生成的文件路径和文件名的TargetFilePath、负责描述用户触发作业提交时间后客户端程序需要马上生成的文件内容的Content元素、用来描述文件的属性以及是否在文件末尾追加内容的AppendMode元素、用来描述用户中请资源中节点数最大值的ClaimNODES元素、用来描述作业所需要每个节点的CPU数的ClaimNCPUS元素、用来描述各个资源所需要物理内存的总和的ClaimMemory元素、用来描述用户提交作业时各个资源所需虚拟内容总和的ClaimVirtualMemory元素、用来描述资源执行任务所需的全部CPU时间数的ClaimCPUTime元素、用来描述申请执行的时间限制的ClaimWallTime元素。
8.根据权利要求3所述的应用软件封装集成方法,其特征在于,所述的作业管理界面的描述包括:负责存储将被显示在作业管理界面的HTML页面内容的HTMLContent元素。
9.根据权利要求8所述的应用软件封装集成方法,其特征在于,所述的作业管理界面的描述还包括以下元素中的至少一种:用于负责存储作业管理用户界面中需要使用的某个图像的ImageContent元素、用于负责指定图像内容编码为文本内容的编码算法类型的CodingType元素、用于负责说明解析得到的图像文件的路径和名称的ImageFilePath元素、用于负责以文本形式存储图形文件的二进制内容的ImageCode元素。
10.根据权利要求3所述的应用软件封装集成方法,其特征在于,所述的作业管理逻辑包括:用于描述有先后次序的一系列处理操作的OperationSequence元素。
11.根据权利要求10所述的应用软件封装集成方法,其特征在于,所述的作业管理逻辑还包括以下元素中的至少一种:负责描述用户在作业管理时需要生成的文件内容和文件路径的GenerateFile元素、用于描述用户上传文件到服务端信息的UploadFile元素、响应界面操作的Invoker元素、负责描述用户触发作业提交时间之后客户端程序需要马上生成的文件路径和文件名的TargetFilePath元素、负责描述用户在作业管理时需生成的文件内容的Content元素、用来描述文件的属性以及是否在文件末尾追加内容的AppendMode元素、用来描述用户上传的源文件的路径的Source元素、用来描述用户上传的目的文件路径的Target元素。
12.一种采用权利要求1-11所述的应用软件封装集成方法实现作业提交的方法,包括:
步骤a)、网格操作系统在模板管理模块中根据用户选择的应用软件选择相应的模板;
步骤b)、解析所选择模板中与作业提交相关的内容,通过对模板中作业提交界面外观的描述,生成作业提交界面;
步骤c)、在作业提交界面上填写相应的参数;
步骤d)、模板管理模块根据所述参数、模板的实例信息和所述模板中与作业提交相关的逻辑生成JSDL文件或者bat shell脚本。
13.一种采用权利要求1-11所述的应用软件封装集成方法实现作业管理的方法,包括:
步骤A)、网格操作系统在模板管理模块中根据用户选择的应用软件选择相应的模板;
步骤B)、解析所选择模板中与作业管理相关的内容,通过对所述模板中作业管理界面外观的描述,生成作业管理界面;
步骤C)、在作业管理界面上填写相应的参数;
步骤D)、所述模板管理模块根据所述参数、模板的实例信息和所述模板中与作业管理相关的逻辑生成JSDL文件或者bat shell脚本。
14.一种网格计算环境下应用软件的封装集成装置,其特征在于,所述网格计算环境包括网格操作系统,所述网格操作系统包括模块管理模块,该装置包括模板查找模块、模板生成模块、模板添加模块以及模板实例生成模块;其中,
所述的模板查找模块在所述网格操作系统的模板管理模块中查找是否包含与所述应用软件相对应的模板;
所述的模板生成模块在所述模板管理模块未包含有所述模板时,提取所述应用软件中与作业提交与作业管理有关的公共逻辑,将所述公共逻辑用规范的形式进行描述以生成模板;
所述的模板添加模块将所生成的模板添加到所述的模板管理模块中;
所述的模板实例生成模块为所述模板生成模板实例。
15.根据权利要求14所述的封装集成装置,其特征在于,所述模板包括作业的提交与作业的管理;其中,
所述的作业的提交包括作业提交界面的描述和作业提交逻辑;
所述的作业的管理包括作业管理界面的描述和作业管理逻辑。
CN2009100827206A 2009-04-28 2009-04-28 网格计算环境下应用软件的封装集成方法 Pending CN101876895A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100827206A CN101876895A (zh) 2009-04-28 2009-04-28 网格计算环境下应用软件的封装集成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100827206A CN101876895A (zh) 2009-04-28 2009-04-28 网格计算环境下应用软件的封装集成方法

Publications (1)

Publication Number Publication Date
CN101876895A true CN101876895A (zh) 2010-11-03

Family

ID=43019457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100827206A Pending CN101876895A (zh) 2009-04-28 2009-04-28 网格计算环境下应用软件的封装集成方法

Country Status (1)

Country Link
CN (1) CN101876895A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075745A (zh) * 2010-12-02 2011-05-25 北京世纪鼎点软件有限公司 一种视频编转码器输入与输出动态配置装置及方法
CN102681841A (zh) * 2012-02-01 2012-09-19 中兴通讯(香港)有限公司 一种手机应用开发方法和系统
CN102999614A (zh) * 2012-11-29 2013-03-27 中兴通讯股份有限公司 新媒体文件生成方法和装置
CN103399752A (zh) * 2013-08-08 2013-11-20 天津大学 基于互联网服务的手机应用连锁反应系统及方法
CN106844040A (zh) * 2016-12-20 2017-06-13 北京并行科技股份有限公司 一种作业提交方法、系统及服务器
CN106909361A (zh) * 2015-12-23 2017-06-30 任子行网络技术股份有限公司 基于模版引擎的web开发方法和装置
CN107093055A (zh) * 2010-12-23 2017-08-25 微软技术许可有限责任公司 用于信息电子集聚的技术
CN107291438A (zh) * 2016-04-13 2017-10-24 阿里巴巴集团控股有限公司 自动化脚本的生成方法、装置及电子设备
CN107656741A (zh) * 2016-07-25 2018-02-02 中国科学院计算机网络信息中心 一种高性能计算环境中使用应用封装的方法及其系统
WO2018171587A1 (zh) * 2017-03-22 2018-09-27 大唐移动通信设备有限公司 一种网络切片模板生成、网络切片模板应用方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117317A1 (en) * 2004-11-12 2006-06-01 International Business Machines Corporation On-demand utility services utilizing yield management
CN101042648A (zh) * 2007-04-20 2007-09-26 北京航空航天大学 为多网格应用提供统一界面的插件、系统及方法
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
WO2008099776A1 (ja) * 2007-02-16 2008-08-21 Sharp Kabushiki Kaisha ユーザインタフェース生成装置、情報端末、ユーザインタフェース生成制御プログラム、記録媒体、およびユーザインタフェース生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117317A1 (en) * 2004-11-12 2006-06-01 International Business Machines Corporation On-demand utility services utilizing yield management
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
WO2008099776A1 (ja) * 2007-02-16 2008-08-21 Sharp Kabushiki Kaisha ユーザインタフェース生成装置、情報端末、ユーザインタフェース生成制御プログラム、記録媒体、およびユーザインタフェース生成方法
CN101042648A (zh) * 2007-04-20 2007-09-26 北京航空航天大学 为多网格应用提供统一界面的插件、系统及方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075745A (zh) * 2010-12-02 2011-05-25 北京世纪鼎点软件有限公司 一种视频编转码器输入与输出动态配置装置及方法
CN102075745B (zh) * 2010-12-02 2013-02-13 北京世纪鼎点软件有限公司 一种视频编转码器输入与输出动态配置装置及方法
CN107093055A (zh) * 2010-12-23 2017-08-25 微软技术许可有限责任公司 用于信息电子集聚的技术
CN102681841A (zh) * 2012-02-01 2012-09-19 中兴通讯(香港)有限公司 一种手机应用开发方法和系统
CN102999614A (zh) * 2012-11-29 2013-03-27 中兴通讯股份有限公司 新媒体文件生成方法和装置
CN103399752A (zh) * 2013-08-08 2013-11-20 天津大学 基于互联网服务的手机应用连锁反应系统及方法
CN106909361A (zh) * 2015-12-23 2017-06-30 任子行网络技术股份有限公司 基于模版引擎的web开发方法和装置
CN107291438A (zh) * 2016-04-13 2017-10-24 阿里巴巴集团控股有限公司 自动化脚本的生成方法、装置及电子设备
CN107656741A (zh) * 2016-07-25 2018-02-02 中国科学院计算机网络信息中心 一种高性能计算环境中使用应用封装的方法及其系统
CN107656741B (zh) * 2016-07-25 2020-07-28 中国科学院计算机网络信息中心 一种高性能计算环境中使用应用封装的方法及其系统
CN106844040A (zh) * 2016-12-20 2017-06-13 北京并行科技股份有限公司 一种作业提交方法、系统及服务器
WO2018171587A1 (zh) * 2017-03-22 2018-09-27 大唐移动通信设备有限公司 一种网络切片模板生成、网络切片模板应用方法和装置
CN108632068A (zh) * 2017-03-22 2018-10-09 大唐移动通信设备有限公司 一种网络切片模板生成、网络切片模板应用方法和装置
CN108632068B (zh) * 2017-03-22 2020-09-11 大唐移动通信设备有限公司 一种网络切片模板生成、网络切片模板应用方法和装置
US10958524B2 (en) 2017-03-22 2021-03-23 Datang Mobile Communications Equipment Co., Ltd. Method for generating network slice template and for applying network slice template, and apparatus

Similar Documents

Publication Publication Date Title
CN101876895A (zh) 网格计算环境下应用软件的封装集成方法
US9804837B2 (en) System and method for creating, managing, and reusing schema type definitions in services oriented architecture services, grouped in the form of libraries
US9146955B2 (en) In-memory, columnar database multidimensional analytical view integration
US10044522B1 (en) Tree-oriented configuration management service
US7765464B2 (en) Method and system for dynamically assembling presentations of web pages
US20070038658A1 (en) Communication optimization for parallel execution of user-defined table functions
US20090222467A1 (en) Method and Apparatus for Converting Legacy Programming Language Data Structures to Schema Definitions
JPH08339355A (ja) 分散形システムでの処理タスク実行呼び出し方法及び装置
US20090254881A1 (en) Code generation techniques for administrative tasks
US8301615B1 (en) Systems and methods for customizing behavior of multiple search engines
US8613007B2 (en) Server independent deployment of plug-ins
JP2018514012A (ja) ネットワーク上のデータソースへの照会
US9646103B2 (en) Client-side template engine and method for constructing a nested DOM module for a website
CN107622055B (zh) 一种快速实现数据服务发布的方法
US11200374B2 (en) Methods to create and use responsive forms with externalized configurations and artifacts
US10019473B2 (en) Accessing an external table in parallel to execute a query
US20180083980A1 (en) Sharing dynamically changing units of cloud-based content
CN107403110A (zh) Hdfs数据脱敏方法及装置
US20160012023A1 (en) Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules
Jackson et al. Distributed data management with ogsa–dai
Dunka et al. Simplifying Web Application Development Using-Mean Stack Technologies
US10114864B1 (en) List element query support and processing
Ogboada et al. A model for optimizing the runtime of GraphQL queries
Kao et al. Designing an XML-based context-aware transformation framework for mobile execution environments using CC/PP and XSLT
US11017032B1 (en) Document recovery utilizing serialized data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20101103