微编译网格服务构建器的制作方法

文档序号:6639380阅读:178来源:国知局
专利名称:微编译网格服务构建器的制作方法
技术领域
本发明是一种用于网格计算应用服务自动生成的构建器。主要用于解决网格服务开发复杂性的问题,属于网格计算自动化技术领域。
背景技术
网格计算技术是随着Internet(因特网)的发展而出现的一种新兴技术,它是高性能计算技术与分布式计算技术相结合的产物。一般来讲,网络计算就是指通过高速网络把分散在各处的硬件、软件、信息资源连结成一个巨大的整体,从而使得人们能够利用地理上分散于各处的资源,完成各种大规模的、复杂的计算和数据处理的任务。与以前的协同工作(Cooperative work)、分布式计算(Distributed Computing)等概念相比较,网络计算的集成程度更高、使用更加方便、资源的利用更加充分和有效。
网格计算是一个分布式和并行计算的支持平台,是一种无缝、集成计算和协同环境。它可以作为虚拟的整体使用在地理上分散的计算资源,如高速互连的异构计算机、数据库、科学仪器、文件和超级计算系统等。基于Internet的网格计算系统不但能使人们聚集分散的计算能力、形成超级计算的能力,解决诸如高能物理、大气、天文、生物信息和石油地质等许多重大应用领域中的问题(诸如虚拟核爆炸、新药研制、气象预报和环境监测等),而且还能使人们共享和充分利用网络中的各种资源。
由于网格计算的诸多优点极其诱人的应用前景,网格技术的研究和开发热潮吸引了越来越多的关注。但是各个研究者在开发网格服务的时候不得不花费大量的时间在安装、配置、调试等方面,甚至利用像GlobusToolkit(网格开发工具箱)这种工具搭建一个小型的网格计算实验环境都不是一件容易的事情,网格开发的复杂性制约网格技术普遍使用。因此研究网格计算应用开发的自动代码生成方法具有重要意义。
Globus Toolkit 3.0(GT3,当前版本的网格开发工具箱)是第一个基于OGSI1.0(开放网格服务基础结构)标准而实现的用于开发网格服务的工具包。在GT3上实现网格服务的编程、实现和部署流程主要包括几个方面(1)编写Web Service描述语言(WSDL),WSDL是一种特殊的XML语言(可扩展标记语言),用来指定一个Web Service(Web服务)可以提供什么操作,定义服务接口。我们需要确定我们的服务将要向外界提供什么。有两种方法可以编写WSDL直接写WDSL或通过接口语言产生WDSL。无论哪种方法,由于WDSL是一个相当繁琐的语言,所以它不是很友好的。(2)修饰WSDL文件,得到准确描述网格服务的WSDL文件。(3)产生所需要的Stub。(3)编写实现所需的网格服务了。(4)编写部署描述器(the deployment descriptor)。这个文件告诉Web服务器如何发布我们的网格服务(例如,告诉Web服务器网格服务的URL是什么)。部署描述器被写成WSDD(Web Service Deployment Descriptor,Web服务部署描述器)格式。(5)编译Stub以及实现部分(6)创建称为GAR(Grid Archive,网格存档文件)的特殊JAR(Java归档文件)。(7)部署网格服务了。从上面可以看出,网格服务程序的开发部署是一个繁琐的过程,需要很高的专业技能,不利用网格计算技术的推广和普及。

发明内容
技术问题本发明的目的是提供一种基于微编译网格服务构建器,来解决网格服务开发的复杂性问题。通过使用本发明提出的方法可以在网格开发工具箱GT3的基础上方便地开发部署网格服务系统。
技术方案本发明的方法是在符合OGSA(开放网格服务架构)标准网格中间件GT3的基础上,利用代码生成技术大大加速软件的开发进度,提高软件的质量一种方法,网格服务构建器与一般的代码自动生成器有所不同,因为网格计算本身是一个复杂的过程,因此网格计算应用自动生成器除了上面要素,还包括了“自动部署”部分。该方法屏蔽了中间件GT3,从友好的人机交互界面根据提示输入构建网格服务所需要的参数,自动部署网格服务,为网格技术的普及提供便利。
本发明的构建器由自定义的微编译器、定制的X解析引擎、以及自动生成部署构建文件组成,通过图形界面输入复合微编译器的定义文件,选择合适的模板,进行解析流程;解析后的文件作为X解析引擎的输入,通过自动生成部署构建文件的任务自动部署网格服务;其中,网格服务构建器是一种复合的代码自动生成引擎和网格自动部署相结合的代码生成框架;其方法如下1).用户通过图形化界面选择合适的模板,得到模板文件,然后填写图形化界面中网格计算所需要的参数提交给后台程序,产生定义文件;1a).模板文件由4块组成,类文件块的内容用来描述网格服务;属性文件块所包含的内容为映射文件块;注释块所包含的内容为注释部分;每部分都包括静态内容和动态内容;动态内容的标签有“${}”标签,$之后的一对花括号“{}”之间是需要替换的参数名,实现参数替换功能;“判断标签”实现简单的判断功能;“循环标签”实现简单的循环功能;1b).定义书的文法规则如下以起符“@”符号作为开始符号后的标符为模板文件中需要替换的部分,其值为等符“=”右边的左符和右符中间的标符;“##”开始的行为注释;2).微编译器是由定义书的解析和模板文件的解析组成,对符合其文法规则的定义书和模板文件进行解析,定义书解析后作为模板文件解析的输入,生成含有X解析引擎标签的符合网格规范的初始源代码;3).用户根据需求调整初始源代码;4).以源文件驱动的定制的X解析引擎对源代码进行修饰,生成各种所需要的文件,这些文件包括“Java”源代码文件、服务接口描述文件、部署描述文件;定制的X解析引擎对开源的代码自动生成工具XDoclet进行扩展定制,定制了网格服务描述语言模板文件、Web服务部署描述器模板文件,生成部署网格服务所需要的网格服务描述语言文件、Web服务部署描述器文件;4a).定制网格服务描述语言文件模板,对模板中所需要的内容标签进行扩展,添加内容标签处理器,编写启动网格服务描述语言文件模板任务;4b).定制Web服务部署描述器模板,Web服务部署描述器告诉Web服务器如何发布网格服务,对开源的代码自动生成工具XDoclet中用来实现简单对象访问协议的项目中的部署描述器模板进行简单修改,编写启动Web服务部署描述器模板任务;5).自动生成部署构建文件把步骤1)和步骤2)的过程与网格服务的自动部署结合,定制任务;自动生成部署构建文件把网格计算代码自动生成过程与网格自动部署过程结合起来,构建文件由如下任务组成生成Stub文件、生成网格存档文件、部署网格服务、构建网格服务任务一、构建网格服务任务二。
有益效果本发明方法提出了一种高性能网格服务自动构建器,主要用于解决网格服务生成部署中的复杂性问题,通过使用本发明提出的方法可以避免过去在GT3基础上构建网格服务的复杂性和低效性,良好的人机界面降低使用者对专业知识的要求,提高了构建网格服务的速度,用户可对模板库,具有良好的可扩展性有利于网格技术的广泛推广。下面我们给出具体的说明良好的交互性和简易性在GT3下构建网格服务,需要在命令行方式下输入大量命令,用户需要对每一步骤都了如指掌,而且很多步骤的顺序也不能搞错,因而对用户的专业知识要求很高。我们在实际设计时采用了良好的人机交互界面,屏蔽了底层操作,给出了友好提示,使用户能够很快掌握使用该方法构建网格服务,丰富的应用模板库,用户甚至可以不编写任何代码,轻松构建网格服务,即使没有完全适用的模板文件,用户也只需简单修改服务的方法即可。
高效性本发明方法中引入了针对网格服务的微编译器。利用该方法,可在一定程度上(与程序的运行环境有关,包括软件环境如操作系统,硬件环境如CPU,内存等)提高网格服务代码的生成效率。
可扩展性本方法提供模板库编写接口,可以随时编写新的模板保存在模板库中,具有良好的可扩展性。
通过使用本发明提出的方法可以在网格开发工具箱GT3的基础上方便地开发部署网格服务系统。


图1是网格服务构建器总体结构。
图2是微编译器处理流程。
图3是模板块标签处理流程。
图4是X解析引擎总体结构图5是自动生成部署构建文件的组成。
图6是应用构建器构建网格服务的具体实施方式

具体实施例方式
一、体系结构网格服务构建器是一种代码自动生成引擎和网格自动部署相结合的代码生成框架,提高数据描述的灵活性、综合多种技术。定义书和模板文件的生成可以通过文本编辑的方式,也可以通过可视化编辑的方式完成。
下面我们给出几个具体部分的说明定义书在定义文件中,指定一组用来描述网格服务性质的特征,是整个系统的输入源,该语言非常简单,但是功能强大,定义书的语法很简单,定义如下(1)词法由标符、左符、右符、起符、等符、结符以及非记号组成。标符表示以字母或空格开始的字符串;左符“{”表示表达式右边开始符号;右符“}”表示表达式右边结束符号;起符“@”表示表达式左边开始符号;等符“=”表示连接左边表达式和右边表达式;结符“;”表示一条表达式的结束。非记号包括注释,空格,跳转和回车。
(2)语法定义如下该语法由多个表达式组成;每个表达式由表达式左边、等符、表达式右边、结符组成;表达式左边由起符、标符组成;表达式右边由左符、标符、右符组成。
模板文件库模板文件的语法比较复杂,根据网格服务,把它主要分为4块,用块标签分隔(1)类文件块,类文件块的内容用来描述网格服务。
(2)属性文件块的内容用来描述自动构建网格服务所需要的属性文件。
(3)映射文件块的内容用来描述部署网格服务所需要的映射文件。
(4)注释文件含的内容为注释部分。
每一块的内容包括静态对象和动态对象●静态对象静态对象表示静态内容,模板解析时只是简单的将静态内容输出到目标文件中。该对象是经严格测试后的Java部分源代码以及属性文件、映射文件等,是所有使用该模板生成源代码公共的代码。
●动态对象动态对象描述模板中的数据内容和流程控制部分,由特殊的模板标签进行引入,在模板解析时需要借助定义书完成动态对象到源代码的转化。
动态对象控制标签有以下几种(1)${}标签实现参数替换功能,$之后的一对花括号“{}”之间是需要替换的参数名;(2)If Else ENDIf标签(判断标签)实现简单的判断功能;](3)For EndFor标签(循环标签)实现循环控制功能。
微编译器引擎微编译器具有完整的词法、语法和语义动作,微编译器对符合其文法规则的定义书和模板文件进行解析,生成含有X解析引擎标签的符合网格规范的源代码。
X解析引擎对XDoclet(一种开源的代码自动生成工具)进行符合网格服务规范的扩展,生成部署网格服务所需要的所有文件,如WSDD、GWSDL(网格服务描述语言)等。
自动生成部署构建文件对X解析引擎产生的所有文件进行自动部署,实现网格服务。
二、方法流程从图形界面输入参数(生成符合微编译器文法的定义书文件),解析定义书,选择合适的模板,通过模板解析流程,读取模板文件,进行解析流程。解析后的文件作为X解析引擎的输入,通过自动生成部署构建文件的任务自动部署网格服务。
微编译器的模板解析程序和定义书解析程序配合使用,其作用是读取指定的模板文件以定义书为输入参数,处理模板文档中的标记及变量,从而产生源代码输出。微编译器处理流程如下(1)模板解析程序读取指定的模板文件,把模板文件导入到字符串缓冲区,(2)定义书解析程序对输入的定义书进行词法分析,语法分析,确定定义书为符合文法标准的定义书,并对其参数进行提取,获得定义书有用参数,(3)进行模板动态对象控制标签的处理,先对${}标签进行处理,进行参数替换,然后分别对If Else ENDIf标签和For EndFor标签进行处理,(5)进行模板块标签的处理,完成模板分析处理。块标签处理流程是预处理缓冲区用来存放块控制标签开始标志和结束标志之间的处理后的模板内容,根据标志符的类型将缓冲区的内容存入到相应的文件中,完成模板标签的处理,
(6)可以根据需求调整初始源代码,作为X解析引擎的输入。
微编译器处理后的各种文件进入到X解析引擎,通过自动生成部署构建文件的任务部署网格服务。X解析引擎是对XDoclet进行网格服务方面的定制。XDoclet的内置任务功能非常简单而强大,包含当今开发领域各个方面,如EJB(Java中的商业应用组件技术)、Web开发等等。但是,对于复杂的现实应用开发,XDoclet提供的内置任务是远远不够的。幸运的是,XDoclet提供了稳定、成熟的代码生成框架满足定制的任务。为了满足网格计算的要求,我们定制了GWSDL模板、WSDD模板文件,生成部署网格计算所需要的GWSDL文件、WSDD文件。为了生成满足网格计算的这些文件,必须创建自己template tag(模板标签)。因为XDoclet提供的Method方法不能够满足我们的需要,所以要新增一个content tag(内容标签)。这个content tag命名为methodUpperName,通过它获得大写开头的method的名字。为了启动定制的模板,必须用Ant(一种开源的自动构建工具)构建工具启动。X解析引擎具有良好的可扩展性,随着功能的增加,可相应地扩展模板、扩展任务、定制标签。
Ant自动构建工具功能强大,从上面看出,不仅仅网格自动部署过程中需要Ant构建工具,在网格计算代码自动生成过程中,Ant构建工具也是必不可少的。为此要把网格计算代码自动生成过程与网格自动部署过程结合起来。自动生成部署构建文件的组成为(1)获取微编译器处理后的属性文件;(2)由属性文件判断是否直接编写WSDL文件;(3)如果是直接编写,调用“启动GWSDL模板”任务,由GWSDL模板产生WSDL文件;如果不直接编写,则由接口文件产生WSDL文件;(4)修饰WSDL文件;(5)产生Stub文件;编译Stub文件;打包成JAR文件;(6)获取微编译器处理后的源代码;(7)判断是否提供了WSDD文件;(8)如果没有提供WSDD文件,调用“启动WSDD模板任务”,产生WSDD文件;否则,直接获取给定的WSDD文件;(9)将源文件进行编译,打包成JAR文件;(10)将(4)产生的WSDL文件、(5)生成的JAR文件、(8)获得的WSDD文件、
(9)生成的JAR文件打包成GAR文件;(11)部署网格服务。
上面的流程非常复杂,我们把它归结成几个任务(1)生成Stub文件;(2)生成网格存档文件;(3)部署网格服务;(4)构建网格服务任务一(如果用户自己编辑WSDD文件,则选择该任务);(5)构建网格服务任务二(如果需要自动生成WSDD文件,则选择该任务)。为了方便描述,我们假定有如下应用实例网格服务开发者要开发一个MathService网格服务。该服务在网格服务端提供工厂服务,可响应客户端创建服务实例的请求。创建的服务实例对客户端提交的两个参数进行加、减、乘、除数学计算并返回计算结果。现采用GT3.0.2网格底层平台的服务端。
用户应用该构建器构建网格服务的具体实施方式
为(1)创建一个新的网格服务,选择工厂服务模板;(2)根据提示输入相应信息例如该网格服务项目保存路径、包名、网格服务的名字、网格服务的描述、网格实例的描述、GWSDL名、目标命名空间、PortType(端口类型)名,类名等,产生定义文件;(3)微编译器解析定义文件和模板文件,自动生成了网格服务实现所需要Java代码、映射文件、属性文件;(4)同编写普通接口实现程序一样,开发者在生成的Java程序体内修改编写所有操作的具体实现代码根据;(5)利用X模板解析引擎,生成部署网格服务所需要的所有文件。如果用户自己编辑WSDD文件,则选择自动部署网格任务“构建网格服务任务一”任务,如果用户需要自动生成WSDD文件,则选择“构建网格服务任务二”任务。
(6)选择自动部署网格任务“生成Stub文件”任务,“生成Gar”任务,“部署网格服务”任务,将Math.gar网格档案文件发布到平台服务端上,完成网格服务构建。全过程结束。
权利要求
1.一种微编译网格服务构建器,其特征在于该构建器由自定义的微编译器、定制的X解析引擎、以及自动生成部署构建文件组成,通过图形界面输入复合微编译器的定义文件,选择合适的模板,进行解析流程;解析后的文件作为X解析引擎的输入,通过自动生成部署构建文件的任务自动部署网格服务;其中,网格服务构建器是一种复合的代码自动生成引擎和网格自动部署相结合的代码生成框架;其方法如下1).用户通过图形化界面选择合适的模板,得到模板文件,然后填写图形化界面中网格计算所需要的参数提交给后台程序,产生定义文件;1a).模板文件由4块组成,类文件块的内容用来描述网格服务;属性文件块所包含的内容为映射文件块;注释块所包含的内容为注释部分;每部分都包括静态内容和动态内容;动态内容的标签有“${}”标签,$之后的一对花括号“{}”之间是需要替换的参数名,实现参数替换功能;“判断标签”实现简单的判断功能;“循环标签”实现简单的循环功能;1b).定义书的文法规则如下以起符“@”符号作为开始符号后的标符为模板文件中需要替换的部分,其值为等符“=”右边的左符和右符中间的标符;“##”开始的行为注释;2).微编译器是由定义书的解析和模板文件的解析组成,对符合其文法规则的定义书和模板文件进行解析,定义书解析后作为模板文件解析的输入,生成含有X解析引擎标签的符合网格规范的初始源代码;3).用户根据需求调整初始源代码;4).以源文件驱动的定制的X解析引擎对源代码进行修饰,生成各种所需要的文件,这些文件包括“Java”源代码文件、服务接口描述文件、部署描述文件;定制的X解析引擎对开源的代码自动生成工具XDoclet进行扩展定制,定制了网格服务描述语言模板文件、Web服务部署描述器模板文件,生成部署网格服务所需要的网格服务描述语言文件、Web服务部署描述器文件;4a).定制网格服务描述语言文件模板,对模板中所需要的内容标签进行扩展,添加内容标签处理器,编写启动网格服务描述语言文件模板任务;4b).定制Web服务部署描述器模板,Web服务部署描述器告诉Web服务器如何发布网格服务,对开源的代码自动生成工具XDoclet中用来实现简单对象访问协议的项目中的部署描述器模板进行简单修改,编写启动Web服务部署描述器模板任务;5).自动生成部署构建文件把步骤1)和步骤2)的过程与网格服务的自动部署结合,定制任务;自动生成部署构建文件把网格计算代码自动生成过程与网格自动部署过程结合起来,构建文件由如下任务组成生成Stub文件、生成网格存档文件、部署网格服务、构建网格服务任务一、构建网格服务任务二。
全文摘要
微编译网格服务构建器是一种用于网格计算应用服务自动生成的构建器,主要用于解决网格服务开发复杂性的问题,通过使用本发明提出的网格服务构建器可以在网格开发工具箱GT3的基础上方便地开发部署网格服务服务系统。在符合OGSA标准网格中间件GT3的基础上,基于微编译的定义书和模板输出产生的源代码,作为X解析引擎的输入产生网格部署所需要的目标代码,这种微编译网格服务构建器是一种加速软件的开发进度,提高软件质量的方法,该方法屏蔽了网格中间件GT3,从友好的人机交互界面根据提示输入构建网格服务所需要的参数,自动部署网格服务,为网格技术的普及提供便利。
文档编号G06F9/44GK1731352SQ20051009403
公开日2006年2月8日 申请日期2005年8月26日 优先权日2005年8月26日
发明者王汝传, 蒋凌云 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1