一种Web空间分析服务中空间分析方法包的部署和管理方法

文档序号:7748268阅读:123来源:国知局

专利名称::一种Web空间分析服务中空间分析方法包的部署和管理方法
技术领域
:本发明涉及一种Web空间分析服务中空间分析方法包的部署和管理方法,主要用于空间信息分析服务中。
背景技术
:OSGi服务平台(OSGiserviceplatform,其中OSGi为OpenServicesGatewayinitiative即开放服务网关发起者),是一个基于标准接口和开放的插件体系框架。是一个轻量级的、松耦合的、面向服务的应用程序开发框架。相对于其它体系框架而言,从需求实现方面,OSGi为系统动态扩充、修改系统功能和改变系统行为提供了支撑;从技术角度方面,OSGi带来了规范化的模块组织以及统一的开发方式。基于OSGi的系统能够获OSGi框架带来了许多好处,包括可动态改变系统行为,热插拔的插件体系结构,高可复用性,高效性等。OSGi服务平台是一个基于Java的技术平台,在OSGi服务平台上可以部署OSGi组件,即OSGIBundle。OSGi有规范化的机制来动态改变系统的行为,可以在系统运行时安装新的Bundle,更新或停止已有的Bundle。Web空间信息分析服务或空间信息处理服务英文定义为WPS(WebProcessingService),是由OGC标准化组织定义的GIS空间信息分析方法面向Web服务的规范。WPS可以用来描述任意的空间分析方法,包括空间分析方法的所有输入和输出,以及作为Web服务的调用方式。WPS服务支持HTTPGET、HTTPPOST和SOAP多种访问接口方式,WPS所支持的特定的地学分析方法由WPS的用户实现所定义。WPS支持三个操作GetCapabilities返回服务级别的元数据;DescribeProcess返回具体分析方法的描述信息,包括分析方法的输入和输出;Execute调用分析方法并返回分析结果。用户通过提交XML或者URL编码的用户请求给WPS服务的Execute调用具体的分析方法并返回结果。现有的WPS规范所支持的空间分析方法是静态的,完全取决于WPS服务实现,如需要增加、删除或更新空间信息服务中的空间分析方法,则需要重新修改WPS服务的源代码,这给WPS服务的扩展和软件维护都带来了很大的不便。
发明内容本发明的技术解决问题克服现有技术的不足,提供一种Web空间分析服务中空间分析方法包的部署和管理方法,该方法可以实现Web空间信息分析服务中空间分析方法的动态管理,从而可以灵活、动态地增加、删除或更新WPS服务中的空间分析方法。本发明的技术解决方案一种Web空间分析服务中空间分析方法包的部署和管理方法,实现如下(1)将Web空间分析服务,即WPS服务构建在OSGi服务平台上,WPS服务通过Web向用户提供各种类型的空间分析方法,所述WPS服务的接口功能由WPSBundle提供,WPS服务所提供的空间分析方法由空间分析Bundle提供;在WPSBundle中维护着一个空间分析方法表,该空间分析方法表的每一行定义一个WPS提供服务的空间分析方法,该空间分析方法表以持久存储的方式存储到存储介质中;在所述空间分析Bundle中,一个空间分析Bundle中可以提供多个空间分析方法,所述空间分析方法的根目录下包含一个命名为Process.XML文件;所述Process.XML文件以XML方式存储该空间分析方法中实现的空间分析方法的定义信息;(2)所述WPS服务在构建OSGi服务平台基础上,采用三个服务,即向WPS服务中部署新的空间分析方法包的服务、从WPS服务中卸载空间分析方法包的服务和从WPS服务中更新空间分析方法包的服务,分别实现空间分析方法包的部署、卸载和更新;所述向WPS服务中部署新的空间分析方法包的步骤如下首先根据提供的空间分析Bundle地址,获取待部署的空间分析方法;然后解析待部署空间分析方法中Process.XML内容,获取空间分析Bundle中所提供的空间分析方法;再将空间分析Bundle中所提供的空间分析方法信息添加到WPS服务的空间分析方法表中;最后将当前空间分析Bundle部署到OSGi平台中;所述从WPS服务中卸载空间分析方法包的步骤如下首先在WPS服务的空间分析方法表中查询所给定空间分析Bundle所提供的空间分析方法,获取WPS服务中由该空间分析Bundle提供的空间分析方法;然后将待卸载的空间分析Bundle中所提供的空间分析方法信息从WPS服务分析方法表中删除;最后将待卸载空间分析Bundle从OSGi平台中卸除;所述从WPS服务中更新空间分析方法包的步骤如下首先根据提供的空间分析Bundle地址,获取待更新的空间分析方法;然后解析待更新空间分析方法中Process.XML内容,获取待更新空间分析Bundle中所提供的空间分析方法;再对比WPS服务中的空间分析方法表,以待更新空间分析Bundle中的分析方法定义信息为基准,更新WPS服务中的空间分析方法表;最后在OSGi平台中更新Bundle。所述空间分析Bundle中的Process.XML文件以XML方式存储实现的空间分析方法的定义信息,所述空间分析方法的定义信息包括空间分析方法名称、方法的类型、方法的说明文本、输入、输出和包中实现该方法的类。所述WPS服务空间分析方法表的内容包含空间分析Bundle中空间分析方法的定义信息,另外还包括该方法所在的Bundle实现信息。所述空间分析方法的定义信息包括空间分析方法名称、方法的类型、方法的说明文本、输入、输出和包中实现该空间分析方法的类。所述WPS服务实现中,完全遵循OGCWPS服务规范中对于GetCapabilities方法和Execute方法定义要求,基本遵循DescribeProcess方法,但需要在该方法的返回结构中添加一项内容,即processPackage,以描述实现过程的空间分析方法。本发明的原理本发明是一种结合OSGi服务平台的Web空间分析服务,在该Web空间服务中所支持的空间分析方法都由OSGiBundle形式的方法提供;在结合OSGi服务平台的Web空间分析服务中,以OSGiBundle的形式存在的空间分析方法中可以包含命名为Process.XML的脚本文件,该脚本文件中有方法包中提供给Web空间分析服务访问的空间分析方法的规定格式描述;在结合OSGi服务平台的Web空间分析服务中,存在该服务所支持的空间分析方法描述表,该表中的每一行描述服务所支持的一个空间分析方法;在结合OSGi服务平台的Web空间分析服务中扩展了三个与部署空间分析方法包服务,分别实现上述OSGiBundle形式表达的空间分析方法包的部署、卸载和更新;上述所扩展部署方法在完成空间分析方法包的部署、卸载和更新的同时,通过分析空间分析方法中Process.XML描述内容,完成上述Web空间分析服务中分析方法描述表的增加、删除和修改工作。本发明与现有技术相比的优点在于本发明中Web空间分析服务同OSGi服务平台结合在一起,服务中空间分析方法都是以OSGi空间分析Bundle形式部署到OSGi服务平台中,从而使得Web空间分析服务所支持的空间分析方法可以实现灵活、动态地增加、删除或更新服务,这给WPS服务的扩展和软件维护都带来了很大的方便,提高了WPS服务的可扩展性和灵活性。图1为本发明方法实现的系统结构示意图;图2为本发明中的D印oyProcessPackage方法流程图;图3为本发明中的UncbployProcessPackage方法流程图;图4为本发明中的UpdateProcessPackage方法流程图。具体实施例方式在阐述本发明实现过程前,先对本发明采用的基本术语进行一下说明。空间分析方法指矢量空间数据、遥感空间数据等空间信息的基本处理方法和高级分析方法,包括矢量数据的拓扑分析、遥感数据处理方法和空间信息的专业分析方法等。WPS服务WPS服务(WebProcessingService)是由OGC标准化组织定义的面向Web空间分析和处理方法服务的技术规范,该规范包括定义三个方法,其中GetCapabilities返回服务级别的元数据,DescribeProcess返回具体分析方法的描述信息,包括分析方法的输入和输出,Execute调用分析方法并返回分析结果。OSGi服务平台即OSGiserviceplatform,(其中OSGi为OpenServicesGatewayinitiative即开放服务网关发起者),是一个基于标准接口和开放的插件体系框^KOOSGiBundle:0SGi服务平台是一个基于Java的技术平台,OSGiBundle是可以部署到OSGi服务平台上的OSGi组件。WPSBundle通过OGSibundle形式实现的WPS服务软件包,提供WPS服务规范描述的处理方法。空间分析方法包实现空间分析方法的软件包,一个空间分析方法包中可提供一到多个空间分析方法。空间分析Bundle通过OGSibundle形式实现的空间分析方法软件包。在本发明中,Web空间分析服务是建立在OSGi服务平台基础上,WPS的功能程序由WPSBundle方法提供,WPS服务所提供的空间分析方法由空间分析Bundle提供,如图1所7J\ο在本发明WPSBundle中维护着一个空间分析方法表,该方法表的每一行定义一个WPS提供服务的空间分析方法,该方法表以持久存储的方式存储到存储介质中,如数据库中。在本发明的空间分析Bundle中,提供空间分析方法服务,一个空间分析Bundle中可以提供多个空间分析方法服务,如果空间分析Bundle中提供空间分析方法服务,则空间分析方法的根目录下包含一个命名为Process.XML文件;如果空间分析Bundle不向WPS服务提供空间分析方法,则无需存在Process.XML文件。一个空间分析Bundle中的Process.XML文件以XML方式存储该包中实现的空间分析方法的定义信息,一个空间分析方法的定义信息包括空间分析方法名称、方法的类型、方法的说明文本、输入、输出中实现该方法的类。上述WPS服务空间分析方法表的内容包含空间分析Bimdle中空间分析方法的定义信息,另外还包括该空间分析方法所在的空间Bundle实现信息。在本发明中,为WPS服务扩展了三个服务用于空间分析方法的部署和管理,在本发明的一个实施中,空间分析方法以空间分析方法包的形式存在,定义为D印oyProcessPackage,为负责向WPS服务中部署新的空间分析方法包;Und印loyProcessPackage,为负责从WPS服务中卸载空间分析方法包;UpdateProcessPackage,为负责从WPS服务中更新空间分析方法包。如图2所示,D印oyProcessPackage为负责向WPS服务中部署新的空间分析方法包,该空间分析方法实现步骤如下步骤S201根据提供的空间分析Bundle地址,获取待部署的空间分析方法包;D印oyProcessPackage参数中所提供的空间分析Bundle地址是一个URL地址,表示空间分析Bundle文件在Web上的网络地址,根据该地址将待部署的空间分析方法包下载到本地缓存中;在空间分析方法包下载成功后,接下来是检查该空间分析方法包的有效性,首先检查该空间分析方法包是否是有效的OSGi的空间分析Bundle,然后检查该空间分析方法包的根目录下是否存在Process.XML文件,并且该XML文件内容符合规定XMLSchema格式要求,如果不存在Process.XML文件,则转入步骤S204;如果空间分析方法包检查不合格,则操作不成功,操作执行结束并返回无效空间分析Bundle;否则需要解析空间分析Bundle的标识符,空间分析Bundle的标识符从该OSGi的空间分析Bundle的ΜΕΤΑ-INFO目录中MANIFEST.MF文件中读取;检查缓存空间分析Bundle的Bundle标识是否在WPS空间分析方法表中已存在,如已存在则部署不成功,并返回空间分析Bundle已安装提示,否则转入步骤S202;步骤S202解析待部署空间分析方法包中Process.XML内容,获取Bundle中所提供的空间分析方法。读取待部署空间分析方法包中Process.XML内容,获取该方法包提供的空间分析方法定义信息列表。步骤S203将Bundle中所提供的空间分析方法信息添加到WPS服务方法表中;如获取的空间分析方法定义列表为空,则执行步骤S204,否则逐条将从待部署空间分析Bundle中所获取的空间分析方法定义信息添加到WPS服务的空间分析方法表中。在添加空间分析方法定义时,如果制定标识的空间分析方法已存在,则只需用当前方法的定义去更新表中已有方法的定义,以保证WPS服务中对于指定方法只提供方法一个实现。步骤S204将当前空间分析Bundle部署到OSGi平台中。检查待部署的空间分析Bundle在OSGi平台中是否已存在,如已存在则通过OSGi平台更新待部署的空间分析Bundle,否则通过OSGi服务平台的BundleContext接口的installBundle方法将待部署空间分析Bundle部署到OSGi服务平台中。如图3所示,在本发明的一个实施中,Und印loyProcessPackage方法负责从WPS服务中卸载空间分析方法包,该方法包括以下步骤步骤S301在WPS服务空间方法表中查询所给定Bundle所提供的空间分析方法,获取WPS服务中由该Bundle提供的空间分析方法。首先需要检查由Und印loyProcessPackage方法所提供的Bundle标识是否存在,即从WPS服务空间分析方法定义表中查找是否存在给定标识的空间分析Bundle,如不存在则执行步骤S303,否则从空间分析方法表中获取由给定标识Bundle所提供的空间分析方法定义,并转入步骤S302。步骤S302将待卸载Bundle中所提供的空间分析方法信息从WPS服务方法表中删除。该步骤根据上述步骤S301所获取得空间分析方法定义信息,逐个方法的执行从WPS服务方法表中的删除操作。步骤S303将待卸载Bundle从OSGi平台中卸除。检查待卸载的空间分析Bundle在OSGi平台中是否已存在,如不存在则执行结束,否则通过OSGi服务平台卸载该空间分析Bundle。如图4所示,在本发明的一个实施中,UpdateProcessPackage方法负责从WPS服务中更新空间分析方法包,该方法包括以下步骤步骤S401根据提供的空间分析Bundle地址,获取待更新的空间分析方法包。UpdateProcessPackage方法参数中所提供的空间分析Bundle地址是一个URL地址,表示空间分析Bundle文件在Web上的网络地址,根据该地址将待部署的方法包下载到本地缓存中。在方法包下载成功后,接下来是检查该方法包的有效性,首先检查该空间分析方法包是否是有效的OSGi的空间分析Bundle,然后检查该方法包的根目录下是否存在Process.XML文件,并且该XML文件内容符合规定XMLSchema格式要求。如果空间分析方法包检查不合格,则操作不成功,操作执行结束并返回无效空间分析Bundle;否则需要解析空间分析Bundle的标识符,空间分析Bundle的标识符从该OSGi的空间分析Bundle的ΜΕΤΑ-INFO目录中MANIFEST.MF文件中读取。检查缓存空间分析Bundle中的Bundle标识是否在WPS空间分析方法表中已存在,如不存在则转入步骤S202,执行向WPS服务中部署新的空间分析方法包流程;否则顺序执行步骤S402。步骤S402解析待更新空间分析包中Process.XML内容,获取Bundle中所提供的空间分析方法。读取待更新空间分析方法包中Process.XML内容,获取该方法包提供的空间分析方法定义信息列表1,如果Process.XML不存在或为空,则列表1为空。步骤S403对比WPS服务中的空间分析方法表,以待更新Bundle中的分析方法定义信息为基准更新WPS服务中的空间分析方法表。该步骤首先从WPS服务空间分析方法表中获取待更新Bundle标以包所提供的空间分析方法定义列表2;接着逐条遍历列表1中的方法定义,对于列表1中的每条方法执行以下操作如果该方法定义在列表2中不存在,则将该方法定义添加到WPS服务中的空间分析方法表中;否则以列表1种的定义为基准更新WPS服务中的空间分析方法表对应方法定义。在处理完该条目后从列表1、2种同时删除以处理的方法定义。在所有列表1种的方法定义都已处理后,如果列表2不为空,则针对列表2中的余下的方法定义,逐个方法的执行从WPS服务方法表中的删除操作,直到列表2也为空。步骤404在OSGi平台中更新空间分析Bundle将待更新的OSGi的空间分析Bundle更新到OSGi服务平台中。在本发明的WPS服务实现中,对于OGCWPS服务规范中已存在的GetCapabilities方法和Execute方法不构成影响,但对于DescribeProcess方法,则需要在返回结构中添加一项内容,即processPackage,该项内容的定义为<table>tableseeoriginaldocumentpage8</column></row><table>本发明未详细阐述部分属于本领域公知技术。以上所描述的是本发明的优选实施方式,但是可以不脱离本发明的主旨和范围而做出给出改型和替代,因此应该理解本发明是以一种示例的方式而不是限制的方式描述的,在不脱离本发明原理的前提下,所做出的改进和润饰也应该视为本发明的保护范围。权利要求一种Web空间分析服务中空间分析方法包的部署和管理方法,其特征在于实现如下(1)将Web空间分析服务,即WPS服务构建在OSGi服务平台上,WPS服务通过Web向用户提供各种类型的空间分析方法,所述WPS服务的接口功能由WPSBundle提供,WPS服务所提供的空间分析方法由空间分析Bundle提供;在WPSBundle中维护着一个空间分析方法表,该空间分析方法表的每一行定义一个WPS提供服务的空间分析方法,该空间分析方法表以持久存储的方式存储到存储介质中;在所述空间分析Bundle中,一个空间分析Bundle中可以提供多个空间分析方法,所述空间分析方法的根目录下包含一个命名为Process.XML文件;所述Process.XML文件以XML方式存储该空间分析方法中实现的空间分析方法的定义信息;(2)所述WPS服务在构建OSGi服务平台基础上,采用三个服务,即向WPS服务中部署新的空间分析方法包的服务、从WPS服务中卸载空间分析方法包的服务和从WPS服务中更新空间分析方法包的服务,分别实现空间分析方法包的部署、卸载和更新;所述向WPS服务中部署新的空间分析方法包的步骤如下首先根据提供的空间分析Bundle地址,获取待部署的空间分析方法;然后解析待部署空间分析方法中Process.XML内容,获取空间分析Bundle中所提供的空间分析方法;再将空间分析Bundle中所提供的空间分析方法信息添加到WPS服务的空间分析方法表中;最后将当前空间分析Bundle部署到OSGi平台中;所述从WPS服务中卸载空间分析方法包的步骤如下首先在WPS服务的空间分析方法表中查询所给定空间分析Bundle所提供的空间分析方法,获取WPS服务中由该空间分析Bundle提供的空间分析方法;然后将待卸载的空间分析Bundle中所提供的空间分析方法信息从WPS服务分析方法表中删除;最后将待卸载空间分析Bundle从OSGi平台中卸除;所述从WPS服务中更新空间分析方法包的步骤如下首先根据提供的空间分析Bundle地址,获取待更新的空间分析方法;然后解析待更新空间分析方法中Process.XML内容,获取待更新空间分析Bundle中所提供的空间分析方法;再对比WPS服务中的空间分析方法表,以待更新空间分析Bundle中的分析方法定义信息为基准,更新WPS服务中的空间分析方法表;最后在OSGi平台中更新Bundle。2.根据权利要求1所述的Web空间分析服务中空间分析方法包的部署和管理方法,其特征在于所述空间分析Bundle中的Process.XML文件以XML方式存储实现的空间分析方法的定义信息,所述空间分析方法的定义信息包括空间分析方法名称、方法的类型、方法的说明文本、输入、输出和包中实现该方法的类。3.根据权利要求1所述的Web空间分析服务中空间分析方法包的部署和管理方法,其特征在于所述WPS服务空间分析方法表的内容包含空间分析Bundle中空间分析方法的定义信息,另外还包括该方法所在的Bundle实现信息。4.根据权利要求1所述的Web空间分析服务中空间分析方法包的部署和管理方法,其特征在于所述WPS服务实现中,完全遵循OGCWPS服务规范中对于GetCapabilities方法和Execute方法定义要求,基本遵循DescribeProcess方法,但需要在该方法的返回结构中添加一项内容,即processPackage,以描述实现过程的空间分析方法。全文摘要一种Web空间分析服务中空间分析方法包的部署和管理方法,通过与OSGi服务平台相结合实现WEB空间分析服务中空间分析方法包的动态管理,从而可以动态增加、删除或更新空间分析方法服务。本发明给WPS服务的扩展和软件维护都带来了很大的方便,提高了WPS服务的可扩展性和灵活性。文档编号H04L29/08GK101834868SQ20101016718公开日2010年9月15日申请日期2010年4月30日优先权日2010年4月30日发明者刘庆生,刘高焕,曾少斌,李佳琪,谢传节,黄翀申请人:中国科学院地理科学与资源研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1