一种遥感图像处理Web服务动态生成方法

文档序号:7743167阅读:431来源:国知局
专利名称:一种遥感图像处理Web服务动态生成方法
技术领域
本发明属于遥感图像处理服务技术领域,特别涉及一种遥感图像处理Web服务动态生成方法。
背景技术
Web服务是一种新的Web应用程序类型,一种自包含、自解释、模块化的应用,能够 被发布、定位,并且可以从Web上的任何位置进行调用。服务提供者运用Web服务描述语言 (ffebservices description language, WSDL)来描述他们提供的服务以及如何调用服务, 然后运用统一描述、发现禾口集成(Universal description discovery integration,UDDI) 将服务注册到公共注册表内。服务使用者或者应用程序在注册表内发现服务并获得描述服 务的WSDL,然后通过简单对象访问协议(Simple object access protocol, SOAP)在异步 消息或者远程调用模式下调用服务。Web服务与平台无关,编程语言无关,具有完好的封装 性、高度可集成能力,且具有松散耦合的特性。所以Web服务受到了各方面的重视和应用。现有的Web服务一般都是静态的,如ArcGIS Server是在ArcObject组件的基础 上开发的服务产品,主要包括两个部分GIS服务器和基于.NET和Java开发的ADF (ArcGIS Javaffeb Application Developer Framework,ADF)。其中,GIS 服务器是许多服务器对 象的集合,这些服务器对象包含了连接到GlS服务器和使用GIS服务器对象所必需的 ArcObjects ;ADF为.Net和Java开发者分别提供了采用GIS服务器端的ArcObjects来构 建网络应用程序和网络服务的框架,其中的网络控件封装了底层ArcObjects的细节,可嵌 人到Visual Studio, net环境中开发。有了上述平台,就可以在一定编译环境下编程开发 实现Web服务,进行发布。ArcGIS Server的不同Web服务均需手动编程实现,生成的Web 服务是固定的,实现的Web服务的接口参数也是固定的。这是典型的静态Web服务,生成效 率低下,特别是在海量地图服务生成的情况下。相关文献康玲,傅俊锋,王怀清,蔡劲松,基 于ArcGIS Server的WebGIS应用系统开发,水电能源科学,2007 Vol.25 No. 1.早期的Web服务的动态开发主要是通过动态生成网页的方式来实现,即客户端浏 览器向服务器发出HTTP请求,服务器通过执行、解释某个应用程序,并将运行结果以HTML 的格式传输到客户端,客户端接受、解释并显示生成的HTML。上述的开发方式中成熟的有 JSP (JavaServer Page, JSP)和 Java Servlet 技术以及微软公司的 ASP 和 ASP. NET。Java Servlet是基于Java编写的服务端程序,主要用于交互式地浏览和修改数 据,生成Web内容。其生成过程(1)客户端发送请求至服务器端;(2)服务器将请求信息 发送至Servlet ; (3) Servlet生成响应内容并将其传给服务器(响应内容动态生成,通常 取决于客户端的请求);(4)服务器将响应返回给客户端。相关文献阳正全,黎艳,用Java Servlet 技术实现动态网页的方法[J], Experiment Science&Technology, 2003 Vol. 12 No.03。JSP页面的内置脚本语言是基于Java的,且都被编译为Java ServletJjfW JSP 页面具有Java技术的所有好处,包括健壮的存储管理和安全性,“一次编写,各处运行”以及JavaServlet的优点。TOB服务器在遇到访问JSP网页的请求时,首先执行其中的程序 片段,然后将执行结果以HTML或XML格式返回客户,程序片段可以操作数据库、重新定向网 页以及发送e-mail等。相关文献李磊,找康杉,Java Server Pages技术简介,科技信息 (Science &Technology Information),2008Νο· 20。 微软公司的Active Server Pages (动态服务器主页,ASP)嵌于Internet InformationServer(IIS)之中,能交互式、高效率地产生和执行动态站点服务器的应用程 序,也是当前动态网页主要的生成方式之一。ASP主要是通过将WWW (World Wide Web,万维 网)发布与数据库结合来实现动态地生成HTML主页,其中往往与XML技术以及ASP内置的 数据访问组件ActiveX数据对象(ActiveX Data Objects, ADO)技术相结合来建立数据库 信息的页面,根据用户请求,在ASP中向数据库提交SQL语句,由特定的接口接收查询结果 并处理数据显示最终结果。相关文献刘广钟,王强兵,利用ASP的动态网页生成技术,计算 机应用于软件,2001Vol. 18 No. 4 ;杨竞菁,利用XML和ASP技术进行Web数据动态显示,福 建电脑,2004 No. 9。以上这些开发技术的目的主要是生成可以浏览的网页,如JSP实现了动态页面与 静态页面的分离、脱离了硬件平台的束缚,以及编译后运行等方式,大大提高了其执行效率 而逐渐成为因特网上的主流开发工具。与其相比,Web服务是独立的并可自我描述的应用 程序组件,该组件可以被其他的应用程序使用,而不仅仅是可以浏览的动态网页,所以从严 格意义上讲,上述开发技术并不能看做真正地实现了 Web服务的动态生成。也有一些实现客户端动态的生成Web服务的技术,中兴通讯股份有限公司周洪济 提出的一种自动生成客户端的方法,该发明的步骤为用户发起获取Web服务的请求;系 统根据用户请求,依照预先存储的对应列表获取所述Web服务请求对应的统一资源定位符 URL地址;根据所述URL地址,在预先存储的对应列表中找到相应的Web服务描述文件,并 根据系统预定的开发环境生成对应的Web服务客户端源代码,动态编译生成Web服务客户 端执行代码,即生成Web服务客户端。这只能作为客户端服务生成的方法,并不能应用于服 务端。相关文献中兴通讯有限股份公司,周洪济,一种自动生成网络服务客户端的方法 [P],中国专利,200810098044. 7,2009-11-25.遥感图像处理Web服务的生成,需要服务提供者编写Web服务描述,目前遥感图像 处理常用的Web服务生成方法大多通过手动编写源代码,生成WSDL和Web服务,每发布一 个服务需要进行手动进行一次程序的编写。在遥感图像处理方面,服务的部署往往非常多, 如果有成百上千的Web服务时,每个服务都需要进行一次手动的编码,不仅需要花费大量 的人力和物力,而且效率低下。

发明内容
本发明所要解决的问题是,提供一种能够提高遥感图像处理Web服务生成效率的 自动化手段。本发明提供一种遥感图像处理Web服务动态生成方法,方案如下当服务提供者首次要求发布Web服务时,进行以下步骤,步骤1. 1,根据服务提供者所要发布Web服务的应用程序编程接口,获取Web服务名称;
步骤1. 2,根据Web服务名称,从应用程序编程接口提供的接口函数中读出Web服 务相关信息;步骤1. 3,创建Web服务,根据步骤1. 1读出的Web服务名称和步骤1. 2读出的Web 服务相关信息,生成Web服务源代码;步骤1. 4,根据步骤1. 3生成的Web服务源代码,编译生成Web服务的网络服务描 述语言文档,即生成服务提供者所要发布的Web服务;当服务提供者更新所要发布Web服务的应用程序时,进行以下步骤,步骤2. 1,从应用程序编程接口重新获取Web服务名称,与此次更新前获取的Web 服务名称进行比较,若Web服务名称发生变化则重新读取Web服务相关信息后,然后进入步 骤2. 2 ;若Web服务名称未发生变化则重新读取Web服务相关信息,并将该Web服务相关信 息与此次更新前读出的Web服务相关信息进行比较,若Web服务相关信息未发生变化则等 待下次更新;若Web服务相关信息发生变化则进入步骤2. 2 ; 步骤2. 2,根据步骤2. 1读出的Web服务相关信息,重新生成Web服务源代码;步骤2. 3,根据步骤2. 2生成的Web服务源代码,重新编译生成Web服务的网络服 务描述语言文档,即重新生成服务提供者所要发布的Web服务。而且,所述Web服务相关信息包括Web服务的参数信息,所述参数信息包括Web服 务的属性参数名称、类型以及默认值。而且,所述Web服务源代码是预定的开发环境下的源代码,在该开发环境下实现 编译生成Web服务的网络服务描述语言文档。而且,所述预定的开发环境为Visual Studio或JAVA开发环境。依照本发明所提供自动生成遥感图像处理Web服务的方法,动态的生成Web服务, 不需人工进行生成;而且能够在作为遥感图像处理Web服务的应用程序发生变化时,通过 API的更新,自动重新生成Web服务。在大量生成Web服务的时候,减少了服务生成的时间、 人力和物力,提高了效率。


图1为本发明实施例在首次要求发布Web服务时的流程图。图2为本发明实施例在更新所要发布Web服务的应用程序时的流程图。具体实施方法本发明要解决的核心问题是动态地根据服务提供者提供的应用程序编程接口 (Application Programming Interface, API)生成 Web 服务源代码,编译生成 Web 服务的 WSDL文档。当遥感图像处理Web服务应用程序发生变化时,更新Web服务。以下结合附图和实施例,详细描述本发明的动态生成遥感图像处理Web服务的方法。参见附图1,当服务提供者首次要求发布Web服务时,进行以下步骤,步骤1. 1,根据服务提供者所要发布Web服务的应用程序编程接口,获取Web服务 名称。为了支持大量Web服务的动态生成,本实施例从各Web服务的应用程序编程接口分别获取其Web服务名称。具体实施时,可以要求服务提供者采用一致格式的字符串提供 服务名称,以便后续动态生成Web服务时进行识别。实施例中,获取所有Web服务的Web服 务名称后形成一个字符串,该字符串的具体内容包括所有服务提供者提供的遥感影像处理 服务的名称,格式是用同一分隔符分隔不同的服务名称。例如服务1的名称,服务2的名 称,…,服务η的名称。步骤1. 2,根据Web服务名称,从应用程序编程接口提供的接口函数中读出Web服 务相关信息。
服务提供者发布关于服务信息的API,其中提供有关于Web服务相关信息的接口 函数,为了能够完整提供Web服务的相关信息,可以设定Web服务相关信息包括遥感影像处 理服务的参数信息,参数信息又可分为属性参数名称、类型以及默认值。实施例中,首先从 步骤1. 1获得的字符串,解析出用于识别各个遥感影像处理服务的服务名称。根据解析所 得的服务名称进一步读取每个Web服务各自用于描述参数信息的属性信息字符串,包括属 性参数名称、类型以及默认值。实施例设定,一个服务的各个属性之间用统一的字符分隔, 每个属性的名称、类型和默认值之间用不同于属性之间的字符作为分隔符,且每个属性信 息的顺序必须一致以免解析错误。例如对于服务1,根据服务名称和API提供的读取服务属性的接口函数,获得服 务1的属性信息字符串属性1,类型1,默认值1 ;属性2,类型2,;属性3,类型2,;属性4, 类型3,默认值2;属性5,类型3,默认值3。两属性之间用“;”分隔,每个属性的名称、类 型和默认值之间用“,”分隔。具体实施时,读取的服务名称可能会存在非法的服务变量名称(如带有空格,或 带有非法的符号),那么在读取用于识别服务的服务名称后可以对其进行一些相应处理 (如去空格和替换非法符号等);读取的类型名称也有可能是非法的(如fl0at32),也可以 进行一些相应处理(如替换操作);对于属性的默认值也可以进行相应处理(如没有提供 默认值的情况,可以将其设为空值)。具体实施时,可以由本领域技术人员进行编程实现本发明技术方案,作为软件提 供给用户实用。因此,可以设计在软件界面上显示出所有的遥感图像处理服务的名称,以及 对应的属性信息,方便Web服务开发者对服务的信息进行可视化的操作。步骤1. 3,创建Web服务,根据步骤1. 1读出的Web服务名称和步骤1. 2读出的Web 服务相关信息,生成Web服务源代码。对于API的调用和实现,以及写入Web服务源代码,可以在任何开发环境下,使用 任何服务发布者需要的语言进行编写、实现。本发明预定开发环境,基于该开发环境生成 Web服务源代码则有利于各Web服务发布的一致性。本实施例采用的开发环境为Visual Studio开发环境,在该开发环境下创建的Web服务为ASP. NET Web服务。基于Java开发 环境的做法和基于Visual Studio开发环境的做法是一样的,只是基于Java开发环境时 对应编译生成Web服务的网络服务描述语言文档采用tomcat或者apatch做代理,而基于 Visual Studio开发环境时采用IIS。具体实施时,批量生成的遥感图像处理服务中,不同服务的Web名称和参数信息 不同,只需将服务名称和参数写入。根据步骤1. 1获得的各个服务的名称和步骤1. 2获得 的各个服务的参数信息,动态生成每个Web服务的源代码即可。
步骤1. 4,根据步骤1. 3生成的Web服务源代码,编译生成Web服务的网络服务描 述语言(WebServices Description Language, WSDL)文档,即生成服务提供者所要发布的 Web服务。实施例使用Visual Studio开发环境进行Web服务源代码的编译,所生成的网络 服务描述语言发布在Internet信息服务(Internet Information Server, IIS)站点。
参见图2,为了应对更新,本发明设计了动态生成Web服务的方案,当服务提供者 更新所要发布Web服务的应用程序时,步骤2. 1,从应用程序编程接口重新获取Web服务名称(与步骤1. 1具体实施一 致),与此次更新前获取的Web服务名称进行比较,判断Web服务名称是否变化。若Web服 务名称发生变化则重新读取Web服务相关信息,然后直接进入步骤2. 2。若Web服务名称未 发生变化则重新读取Web服务相关信息,,并将此次读出的Web服务相关信息与此次更新前 读出的Web服务相关信息进行比较,判断Web服务相关信息是否变化。若Web服务相关信 息未发生变化则等待下次更新;若Web服务相关信息发生了变化则进入步骤2. 2。重新读 取Web服务相关信息的实施方式与步骤1. 2具体实施一致,即重新从应用程序编程接口提 供的接口函数中读取Web服务相关信息。比如在首次发布后,进行第一次更新时,是将此次获取的新Web服务名称与首次 发布时获取的Web服务名称进行比较,若不同则将此次读出的服务相关信息与首次发布时 读出的服务相关信息进行比较;进行第二次更新时,是将此次读出的新Web服务名称与第 一次更新时读出的Web服务名称进行比较,若不同则将此次读出的服务相关信息与第一次 更新时读出服务相关信息进行比较。步骤2. 2,根据步骤2. 1读出的Web服务名称和服务相关信息,重新生成Web服务 源代码(与步骤1. 3具体实施一致)。步骤2. 3,根据步骤2. 2生成的Web服务源代码,重新编译生成Web服务的网络 服务描述语言文档,即重新生成服务提供者所要发布的Web服务(与步骤1. 4具体实施一 致)。也就是说,对Web服务更新,即遥感图像处理服务应用程序发生变化时,本发明的 技术方案自动更新服务相关API读取的遥感图像处理服务的描述信息,更新过程具体实施 方式与首次发布时具体过程一致,本发明不予赘述。可以设定,服务发布者只需要求重新读 取API,则按照本发明技术方案提供的软件自动完成Web服务源代码的生成,运行源程序, 并生成WSDL,即可自动完成服务的更新。可见采用本发明可以动态地批量生成Web服务,不 需人工干预;而且能够在遥感图像处理Web服务应用程序发生变化时,通过API的更新,自 动重新生成Web服务。因此本发明特别适合运用于遥感图像处理服务领域,实现大量生成 Web服务。以上所述仅为本发明中的一个实施例,并不用于限制本发明。凡在本发明的精神 与原则之内,所做的任何修改,改进等,均应包含在本发明的保护范围之内。
权利要求
一种遥感图像处理Web服务动态生成方法,其特征在于当服务提供者首次要求发布Web服务时,进行以下步骤,步骤1.1,根据服务提供者所要发布Web服务的应用程序编程接口,获取Web服务名称;步骤1.2,根据Web服务名称,从应用程序编程接口提供的接口函数中读出Web服务相关信息;步骤1.3,创建Web服务,根据步骤1.1读出的Web服务名称和步骤1.2读出的Web服务相关信息,生成Web服务源代码;步骤1.4,根据步骤1.3生成的Web服务源代码,编译生成Web服务的网络服务描述语言文档,即生成服务提供者所要发布的Web服务;当服务提供者更新所要发布Web服务的应用程序时,进行以下步骤,步骤2.1,从应用程序编程接口重新获取Web服务名称,与此次更新前获取的Web服务名称进行比较,若Web服务名称发生变化则重新读取Web服务相关信息,然后进入步骤2.2;若Web服务名称未发生变化则重新读取Web服务相关信息,并将该Web服务相关信息与此次更新前读出的Web服务相关信息进行比较,若Web服务相关信息未发生变化则等待下次更新;若Web服务相关信息发生变化则进入步骤2.2;步骤2.2,根据步骤2.1读出的Web服务相关信息,重新生成Web服务源代码;步骤2.3,根据步骤2.2生成的Web服务源代码,重新编译生成Web服务的网络服务描述语言文档,即重新生成服务提供者所要发布的Web服务。
2.如权利要求1所述的遥感图像处理Web服务动态生成方法,其特征在于所述Web服 务相关信息包括Web服务的参数信息,所述参数信息包括Web服务的属性参数名称、类型以 及默认值。
3.如权利要求1或2所述的遥感图像处理Web服务动态生成方法,其特征在于所述 Web服务源代码是预定的开发环境下的源代码,在该开发环境下实现编译生成Web服务的 网络服务描述语言文档。
4.如权利要求3所述的遥感图像处理Web服务动态生成方法,其特征在于所述预定 的开发环境为Visual Studio或JAVA开发环境。
全文摘要
本发明提供了一种遥感图像处理Web服务动态生成方法,当服务提供者首次要求发布Web服务时,根据服务提供者所要发布Web服务的应用程序编程接口,获取Web服务名称和Web服务相关信息,生成Web服务源代码,编译生成Web服务的网络服务描述语言文档,即生成服务提供者所要发布的Web服务。更新时,只需重新读取Web服务的API,与当前Web服务API读取的服务名称和相关信息进行比较,判断Web服务名称和相关信息是否发生了变化,如果发生了变化,则重新生成Web服务源代码,然后根据该源代码重新生成Web服务。本发明能够自动地动态生成Web服务,在大量生成Web服务的时候,减少了服务生成的时间、人力和物力,提高了效率。
文档编号H04L29/06GK101807204SQ20101011993
公开日2010年8月18日 申请日期2010年3月5日 优先权日2010年3月5日
发明者岳春宇, 江万寿, 祁昆仑, 陈玉敏, 龚健雅 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1