專利名稱::一種Web空間分析服務中空間分析方法包的部署和管理方法
技術領域:
:本發(fā)明涉及一種Web空間分析服務中空間分析方法包的部署和管理方法,主要用于空間信息分析服務中。
背景技術:
:OSGi服務平臺(OSGiserviceplatform,其中OSGi為OpenServicesGatewayinitiative即開放服務網(wǎng)關發(fā)起者),是一個基于標準接口和開放的插件體系框架。是一個輕量級的、松耦合的、面向服務的應用程序開發(fā)框架。相對于其它體系框架而言,從需求實現(xiàn)方面,OSGi為系統(tǒng)動態(tài)擴充、修改系統(tǒng)功能和改變系統(tǒng)行為提供了支撐;從技術角度方面,OSGi帶來了規(guī)范化的模塊組織以及統(tǒng)一的開發(fā)方式?;贠SGi的系統(tǒng)能夠獲OSGi框架帶來了許多好處,包括可動態(tài)改變系統(tǒng)行為,熱插拔的插件體系結(jié)構,高可復用性,高效性等。OSGi服務平臺是一個基于Java的技術平臺,在OSGi服務平臺上可以部署OSGi組件,即OSGIBundle。OSGi有規(guī)范化的機制來動態(tài)改變系統(tǒng)的行為,可以在系統(tǒng)運行時安裝新的Bundle,更新或停止已有的Bundle。Web空間信息分析服務或空間信息處理服務英文定義為WPS(WebProcessingService),是由OGC標準化組織定義的GIS空間信息分析方法面向Web服務的規(guī)范。WPS可以用來描述任意的空間分析方法,包括空間分析方法的所有輸入和輸出,以及作為Web服務的調(diào)用方式。WPS服務支持HTTPGET、HTTPPOST和SOAP多種訪問接口方式,WPS所支持的特定的地學分析方法由WPS的用戶實現(xiàn)所定義。WPS支持三個操作GetCapabilities返回服務級別的元數(shù)據(jù);DescribeProcess返回具體分析方法的描述信息,包括分析方法的輸入和輸出;Execute調(diào)用分析方法并返回分析結(jié)果。用戶通過提交XML或者URL編碼的用戶請求給WPS服務的Execute調(diào)用具體的分析方法并返回結(jié)果。現(xiàn)有的WPS規(guī)范所支持的空間分析方法是靜態(tài)的,完全取決于WPS服務實現(xiàn),如需要增加、刪除或更新空間信息服務中的空間分析方法,則需要重新修改WPS服務的源代碼,這給WPS服務的擴展和軟件維護都帶來了很大的不便。
發(fā)明內(nèi)容本發(fā)明的技術解決問題克服現(xiàn)有技術的不足,提供一種Web空間分析服務中空間分析方法包的部署和管理方法,該方法可以實現(xiàn)Web空間信息分析服務中空間分析方法的動態(tài)管理,從而可以靈活、動態(tài)地增加、刪除或更新WPS服務中的空間分析方法。本發(fā)明的技術解決方案一種Web空間分析服務中空間分析方法包的部署和管理方法,實現(xiàn)如下(1)將Web空間分析服務,即WPS服務構建在OSGi服務平臺上,WPS服務通過Web向用戶提供各種類型的空間分析方法,所述WPS服務的接口功能由WPSBundle提供,WPS服務所提供的空間分析方法由空間分析Bundle提供;在WPSBundle中維護著一個空間分析方法表,該空間分析方法表的每一行定義一個WPS提供服務的空間分析方法,該空間分析方法表以持久存儲的方式存儲到存儲介質(zhì)中;在所述空間分析Bundle中,一個空間分析Bundle中可以提供多個空間分析方法,所述空間分析方法的根目錄下包含一個命名為Process.XML文件;所述Process.XML文件以XML方式存儲該空間分析方法中實現(xiàn)的空間分析方法的定義信息;(2)所述WPS服務在構建OSGi服務平臺基礎上,采用三個服務,即向WPS服務中部署新的空間分析方法包的服務、從WPS服務中卸載空間分析方法包的服務和從WPS服務中更新空間分析方法包的服務,分別實現(xiàn)空間分析方法包的部署、卸載和更新;所述向WPS服務中部署新的空間分析方法包的步驟如下首先根據(jù)提供的空間分析Bundle地址,獲取待部署的空間分析方法;然后解析待部署空間分析方法中Process.XML內(nèi)容,獲取空間分析Bundle中所提供的空間分析方法;再將空間分析Bundle中所提供的空間分析方法信息添加到WPS服務的空間分析方法表中;最后將當前空間分析Bundle部署到OSGi平臺中;所述從WPS服務中卸載空間分析方法包的步驟如下首先在WPS服務的空間分析方法表中查詢所給定空間分析Bundle所提供的空間分析方法,獲取WPS服務中由該空間分析Bundle提供的空間分析方法;然后將待卸載的空間分析Bundle中所提供的空間分析方法信息從WPS服務分析方法表中刪除;最后將待卸載空間分析Bundle從OSGi平臺中卸除;所述從WPS服務中更新空間分析方法包的步驟如下首先根據(jù)提供的空間分析Bundle地址,獲取待更新的空間分析方法;然后解析待更新空間分析方法中Process.XML內(nèi)容,獲取待更新空間分析Bundle中所提供的空間分析方法;再對比WPS服務中的空間分析方法表,以待更新空間分析Bundle中的分析方法定義信息為基準,更新WPS服務中的空間分析方法表;最后在OSGi平臺中更新Bundle。所述空間分析Bundle中的Process.XML文件以XML方式存儲實現(xiàn)的空間分析方法的定義信息,所述空間分析方法的定義信息包括空間分析方法名稱、方法的類型、方法的說明文本、輸入、輸出和包中實現(xiàn)該方法的類。所述WPS服務空間分析方法表的內(nèi)容包含空間分析Bundle中空間分析方法的定義信息,另外還包括該方法所在的Bundle實現(xiàn)信息。所述空間分析方法的定義信息包括空間分析方法名稱、方法的類型、方法的說明文本、輸入、輸出和包中實現(xiàn)該空間分析方法的類。所述WPS服務實現(xiàn)中,完全遵循OGCWPS服務規(guī)范中對于GetCapabilities方法和Execute方法定義要求,基本遵循DescribeProcess方法,但需要在該方法的返回結(jié)構中添加一項內(nèi)容,即processPackage,以描述實現(xiàn)過程的空間分析方法。本發(fā)明的原理本發(fā)明是一種結(jié)合OSGi服務平臺的Web空間分析服務,在該Web空間服務中所支持的空間分析方法都由OSGiBundle形式的方法提供;在結(jié)合OSGi服務平臺的Web空間分析服務中,以OSGiBundle的形式存在的空間分析方法中可以包含命名為Process.XML的腳本文件,該腳本文件中有方法包中提供給Web空間分析服務訪問的空間分析方法的規(guī)定格式描述;在結(jié)合OSGi服務平臺的Web空間分析服務中,存在該服務所支持的空間分析方法描述表,該表中的每一行描述服務所支持的一個空間分析方法;在結(jié)合OSGi服務平臺的Web空間分析服務中擴展了三個與部署空間分析方法包服務,分別實現(xiàn)上述OSGiBundle形式表達的空間分析方法包的部署、卸載和更新;上述所擴展部署方法在完成空間分析方法包的部署、卸載和更新的同時,通過分析空間分析方法中Process.XML描述內(nèi)容,完成上述Web空間分析服務中分析方法描述表的增加、刪除和修改工作。本發(fā)明與現(xiàn)有技術相比的優(yōu)點在于本發(fā)明中Web空間分析服務同OSGi服務平臺結(jié)合在一起,服務中空間分析方法都是以OSGi空間分析Bundle形式部署到OSGi服務平臺中,從而使得Web空間分析服務所支持的空間分析方法可以實現(xiàn)靈活、動態(tài)地增加、刪除或更新服務,這給WPS服務的擴展和軟件維護都帶來了很大的方便,提高了WPS服務的可擴展性和靈活性。圖1為本發(fā)明方法實現(xiàn)的系統(tǒng)結(jié)構示意圖;圖2為本發(fā)明中的D印oyProcessPackage方法流程圖;圖3為本發(fā)明中的UncbployProcessPackage方法流程圖;圖4為本發(fā)明中的UpdateProcessPackage方法流程圖。具體實施例方式在闡述本發(fā)明實現(xiàn)過程前,先對本發(fā)明采用的基本術語進行一下說明。空間分析方法指矢量空間數(shù)據(jù)、遙感空間數(shù)據(jù)等空間信息的基本處理方法和高級分析方法,包括矢量數(shù)據(jù)的拓撲分析、遙感數(shù)據(jù)處理方法和空間信息的專業(yè)分析方法等。WPS服務WPS服務(WebProcessingService)是由OGC標準化組織定義的面向Web空間分析和處理方法服務的技術規(guī)范,該規(guī)范包括定義三個方法,其中GetCapabilities返回服務級別的元數(shù)據(jù),DescribeProcess返回具體分析方法的描述信息,包括分析方法的輸入和輸出,Execute調(diào)用分析方法并返回分析結(jié)果。OSGi服務平臺即OSGiserviceplatform,(其中OSGi為OpenServicesGatewayinitiative即開放服務網(wǎng)關發(fā)起者),是一個基于標準接口和開放的插件體系框^KOOSGiBundle:0SGi服務平臺是一個基于Java的技術平臺,OSGiBundle是可以部署到OSGi服務平臺上的OSGi組件。WPSBundle通過OGSibundle形式實現(xiàn)的WPS服務軟件包,提供WPS服務規(guī)范描述的處理方法。空間分析方法包實現(xiàn)空間分析方法的軟件包,一個空間分析方法包中可提供一到多個空間分析方法。空間分析Bundle通過OGSibundle形式實現(xiàn)的空間分析方法軟件包。在本發(fā)明中,Web空間分析服務是建立在OSGi服務平臺基礎上,WPS的功能程序由WPSBundle方法提供,WPS服務所提供的空間分析方法由空間分析Bundle提供,如圖1所7J\ο在本發(fā)明WPSBundle中維護著一個空間分析方法表,該方法表的每一行定義一個WPS提供服務的空間分析方法,該方法表以持久存儲的方式存儲到存儲介質(zhì)中,如數(shù)據(jù)庫中。在本發(fā)明的空間分析Bundle中,提供空間分析方法服務,一個空間分析Bundle中可以提供多個空間分析方法服務,如果空間分析Bundle中提供空間分析方法服務,則空間分析方法的根目錄下包含一個命名為Process.XML文件;如果空間分析Bundle不向WPS服務提供空間分析方法,則無需存在Process.XML文件。一個空間分析Bundle中的Process.XML文件以XML方式存儲該包中實現(xiàn)的空間分析方法的定義信息,一個空間分析方法的定義信息包括空間分析方法名稱、方法的類型、方法的說明文本、輸入、輸出中實現(xiàn)該方法的類。上述WPS服務空間分析方法表的內(nèi)容包含空間分析Bimdle中空間分析方法的定義信息,另外還包括該空間分析方法所在的空間Bundle實現(xiàn)信息。在本發(fā)明中,為WPS服務擴展了三個服務用于空間分析方法的部署和管理,在本發(fā)明的一個實施中,空間分析方法以空間分析方法包的形式存在,定義為D印oyProcessPackage,為負責向WPS服務中部署新的空間分析方法包;Und印loyProcessPackage,為負責從WPS服務中卸載空間分析方法包;UpdateProcessPackage,為負責從WPS服務中更新空間分析方法包。如圖2所示,D印oyProcessPackage為負責向WPS服務中部署新的空間分析方法包,該空間分析方法實現(xiàn)步驟如下步驟S201根據(jù)提供的空間分析Bundle地址,獲取待部署的空間分析方法包;D印oyProcessPackage參數(shù)中所提供的空間分析Bundle地址是一個URL地址,表示空間分析Bundle文件在Web上的網(wǎng)絡地址,根據(jù)該地址將待部署的空間分析方法包下載到本地緩存中;在空間分析方法包下載成功后,接下來是檢查該空間分析方法包的有效性,首先檢查該空間分析方法包是否是有效的OSGi的空間分析Bundle,然后檢查該空間分析方法包的根目錄下是否存在Process.XML文件,并且該XML文件內(nèi)容符合規(guī)定XMLSchema格式要求,如果不存在Process.XML文件,則轉(zhuǎn)入步驟S204;如果空間分析方法包檢查不合格,則操作不成功,操作執(zhí)行結(jié)束并返回無效空間分析Bundle;否則需要解析空間分析Bundle的標識符,空間分析Bundle的標識符從該OSGi的空間分析Bundle的ΜΕΤΑ-INFO目錄中MANIFEST.MF文件中讀??;檢查緩存空間分析Bundle的Bundle標識是否在WPS空間分析方法表中已存在,如已存在則部署不成功,并返回空間分析Bundle已安裝提示,否則轉(zhuǎn)入步驟S202;步驟S202解析待部署空間分析方法包中Process.XML內(nèi)容,獲取Bundle中所提供的空間分析方法。讀取待部署空間分析方法包中Process.XML內(nèi)容,獲取該方法包提供的空間分析方法定義信息列表。步驟S203將Bundle中所提供的空間分析方法信息添加到WPS服務方法表中;如獲取的空間分析方法定義列表為空,則執(zhí)行步驟S204,否則逐條將從待部署空間分析Bundle中所獲取的空間分析方法定義信息添加到WPS服務的空間分析方法表中。在添加空間分析方法定義時,如果制定標識的空間分析方法已存在,則只需用當前方法的定義去更新表中已有方法的定義,以保證WPS服務中對于指定方法只提供方法一個實現(xiàn)。步驟S204將當前空間分析Bundle部署到OSGi平臺中。檢查待部署的空間分析Bundle在OSGi平臺中是否已存在,如已存在則通過OSGi平臺更新待部署的空間分析Bundle,否則通過OSGi服務平臺的BundleContext接口的installBundle方法將待部署空間分析Bundle部署到OSGi服務平臺中。如圖3所示,在本發(fā)明的一個實施中,Und印loyProcessPackage方法負責從WPS服務中卸載空間分析方法包,該方法包括以下步驟步驟S301在WPS服務空間方法表中查詢所給定Bundle所提供的空間分析方法,獲取WPS服務中由該Bundle提供的空間分析方法。首先需要檢查由Und印loyProcessPackage方法所提供的Bundle標識是否存在,即從WPS服務空間分析方法定義表中查找是否存在給定標識的空間分析Bundle,如不存在則執(zhí)行步驟S303,否則從空間分析方法表中獲取由給定標識Bundle所提供的空間分析方法定義,并轉(zhuǎn)入步驟S302。步驟S302將待卸載Bundle中所提供的空間分析方法信息從WPS服務方法表中刪除。該步驟根據(jù)上述步驟S301所獲取得空間分析方法定義信息,逐個方法的執(zhí)行從WPS服務方法表中的刪除操作。步驟S303將待卸載Bundle從OSGi平臺中卸除。檢查待卸載的空間分析Bundle在OSGi平臺中是否已存在,如不存在則執(zhí)行結(jié)束,否則通過OSGi服務平臺卸載該空間分析Bundle。如圖4所示,在本發(fā)明的一個實施中,UpdateProcessPackage方法負責從WPS服務中更新空間分析方法包,該方法包括以下步驟步驟S401根據(jù)提供的空間分析Bundle地址,獲取待更新的空間分析方法包。UpdateProcessPackage方法參數(shù)中所提供的空間分析Bundle地址是一個URL地址,表示空間分析Bundle文件在Web上的網(wǎng)絡地址,根據(jù)該地址將待部署的方法包下載到本地緩存中。在方法包下載成功后,接下來是檢查該方法包的有效性,首先檢查該空間分析方法包是否是有效的OSGi的空間分析Bundle,然后檢查該方法包的根目錄下是否存在Process.XML文件,并且該XML文件內(nèi)容符合規(guī)定XMLSchema格式要求。如果空間分析方法包檢查不合格,則操作不成功,操作執(zhí)行結(jié)束并返回無效空間分析Bundle;否則需要解析空間分析Bundle的標識符,空間分析Bundle的標識符從該OSGi的空間分析Bundle的ΜΕΤΑ-INFO目錄中MANIFEST.MF文件中讀取。檢查緩存空間分析Bundle中的Bundle標識是否在WPS空間分析方法表中已存在,如不存在則轉(zhuǎn)入步驟S202,執(zhí)行向WPS服務中部署新的空間分析方法包流程;否則順序執(zhí)行步驟S402。步驟S402解析待更新空間分析包中Process.XML內(nèi)容,獲取Bundle中所提供的空間分析方法。讀取待更新空間分析方法包中Process.XML內(nèi)容,獲取該方法包提供的空間分析方法定義信息列表1,如果Process.XML不存在或為空,則列表1為空。步驟S403對比WPS服務中的空間分析方法表,以待更新Bundle中的分析方法定義信息為基準更新WPS服務中的空間分析方法表。該步驟首先從WPS服務空間分析方法表中獲取待更新Bundle標以包所提供的空間分析方法定義列表2;接著逐條遍歷列表1中的方法定義,對于列表1中的每條方法執(zhí)行以下操作如果該方法定義在列表2中不存在,則將該方法定義添加到WPS服務中的空間分析方法表中;否則以列表1種的定義為基準更新WPS服務中的空間分析方法表對應方法定義。在處理完該條目后從列表1、2種同時刪除以處理的方法定義。在所有列表1種的方法定義都已處理后,如果列表2不為空,則針對列表2中的余下的方法定義,逐個方法的執(zhí)行從WPS服務方法表中的刪除操作,直到列表2也為空。步驟404在OSGi平臺中更新空間分析Bundle將待更新的OSGi的空間分析Bundle更新到OSGi服務平臺中。在本發(fā)明的WPS服務實現(xiàn)中,對于OGCWPS服務規(guī)范中已存在的GetCapabilities方法和Execute方法不構成影響,但對于DescribeProcess方法,則需要在返回結(jié)構中添加一項內(nèi)容,即processPackage,該項內(nèi)容的定義為<table>tableseeoriginaldocumentpage8</column></row><table>本發(fā)明未詳細闡述部分屬于本領域公知技術。以上所描述的是本發(fā)明的優(yōu)選實施方式,但是可以不脫離本發(fā)明的主旨和范圍而做出給出改型和替代,因此應該理解本發(fā)明是以一種示例的方式而不是限制的方式描述的,在不脫離本發(fā)明原理的前提下,所做出的改進和潤飾也應該視為本發(fā)明的保護范圍。權利要求一種Web空間分析服務中空間分析方法包的部署和管理方法,其特征在于實現(xiàn)如下(1)將Web空間分析服務,即WPS服務構建在OSGi服務平臺上,WPS服務通過Web向用戶提供各種類型的空間分析方法,所述WPS服務的接口功能由WPSBundle提供,WPS服務所提供的空間分析方法由空間分析Bundle提供;在WPSBundle中維護著一個空間分析方法表,該空間分析方法表的每一行定義一個WPS提供服務的空間分析方法,該空間分析方法表以持久存儲的方式存儲到存儲介質(zhì)中;在所述空間分析Bundle中,一個空間分析Bundle中可以提供多個空間分析方法,所述空間分析方法的根目錄下包含一個命名為Process.XML文件;所述Process.XML文件以XML方式存儲該空間分析方法中實現(xiàn)的空間分析方法的定義信息;(2)所述WPS服務在構建OSGi服務平臺基礎上,采用三個服務,即向WPS服務中部署新的空間分析方法包的服務、從WPS服務中卸載空間分析方法包的服務和從WPS服務中更新空間分析方法包的服務,分別實現(xiàn)空間分析方法包的部署、卸載和更新;所述向WPS服務中部署新的空間分析方法包的步驟如下首先根據(jù)提供的空間分析Bundle地址,獲取待部署的空間分析方法;然后解析待部署空間分析方法中Process.XML內(nèi)容,獲取空間分析Bundle中所提供的空間分析方法;再將空間分析Bundle中所提供的空間分析方法信息添加到WPS服務的空間分析方法表中;最后將當前空間分析Bundle部署到OSGi平臺中;所述從WPS服務中卸載空間分析方法包的步驟如下首先在WPS服務的空間分析方法表中查詢所給定空間分析Bundle所提供的空間分析方法,獲取WPS服務中由該空間分析Bundle提供的空間分析方法;然后將待卸載的空間分析Bundle中所提供的空間分析方法信息從WPS服務分析方法表中刪除;最后將待卸載空間分析Bundle從OSGi平臺中卸除;所述從WPS服務中更新空間分析方法包的步驟如下首先根據(jù)提供的空間分析Bundle地址,獲取待更新的空間分析方法;然后解析待更新空間分析方法中Process.XML內(nèi)容,獲取待更新空間分析Bundle中所提供的空間分析方法;再對比WPS服務中的空間分析方法表,以待更新空間分析Bundle中的分析方法定義信息為基準,更新WPS服務中的空間分析方法表;最后在OSGi平臺中更新Bundle。2.根據(jù)權利要求1所述的Web空間分析服務中空間分析方法包的部署和管理方法,其特征在于所述空間分析Bundle中的Process.XML文件以XML方式存儲實現(xiàn)的空間分析方法的定義信息,所述空間分析方法的定義信息包括空間分析方法名稱、方法的類型、方法的說明文本、輸入、輸出和包中實現(xiàn)該方法的類。3.根據(jù)權利要求1所述的Web空間分析服務中空間分析方法包的部署和管理方法,其特征在于所述WPS服務空間分析方法表的內(nèi)容包含空間分析Bundle中空間分析方法的定義信息,另外還包括該方法所在的Bundle實現(xiàn)信息。4.根據(jù)權利要求1所述的Web空間分析服務中空間分析方法包的部署和管理方法,其特征在于所述WPS服務實現(xiàn)中,完全遵循OGCWPS服務規(guī)范中對于GetCapabilities方法和Execute方法定義要求,基本遵循DescribeProcess方法,但需要在該方法的返回結(jié)構中添加一項內(nèi)容,即processPackage,以描述實現(xiàn)過程的空間分析方法。全文摘要一種Web空間分析服務中空間分析方法包的部署和管理方法,通過與OSGi服務平臺相結(jié)合實現(xiàn)WEB空間分析服務中空間分析方法包的動態(tài)管理,從而可以動態(tài)增加、刪除或更新空間分析方法服務。本發(fā)明給WPS服務的擴展和軟件維護都帶來了很大的方便,提高了WPS服務的可擴展性和靈活性。文檔編號H04L29/08GK101834868SQ20101016718公開日2010年9月15日申請日期2010年4月30日優(yōu)先權日2010年4月30日發(fā)明者劉慶生,劉高煥,曾少斌,李佳琪,謝傳節(jié),黃翀申請人:中國科學院地理科學與資源研究所