999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STKOS相關工具集成框架下的插件封裝研究與實現*

2015-03-14 02:57:22吳思竹鄭見立鄭慧霞
醫學信息學雜志 2015年11期
關鍵詞:服務信息系統

吳思竹 洪 娜 鄭見立 鄭慧霞 方 安

(中國醫學科學院醫學信息研究所 北京 100020)

?

STKOS相關工具集成框架下的插件封裝研究與實現*

吳思竹 洪 娜 鄭見立 鄭慧霞 方 安

(中國醫學科學院醫學信息研究所 北京 100020)

針對知識組織相關工具集成服務系統的需求和應用場景,提出基于OSGi的科技知識組織體系(STKOS)相關工具集成框架和基于該框架的插件封裝設計思路和主要流程,闡述其實施效果。封裝后的插件可自動注冊、存儲到系統插件庫中,進行分類管理、版本和生命周期管理,能夠提供工作流組配或獨立運行、下載服務,供STKOS用戶按需使用。

OSGi; 工具集成; 插件; 知識組織

1 引言

由國家科技文獻信息中心牽頭并組織實施的國家科技支撐計劃“面向外文科技文獻信息的知識組織體系建設和應用示范”項目,旨在構建我國面向外文科技文獻的,涵蓋理、工、農、醫等領域的多層次知識組織體系,以支持信息資源揭示、組織和發現。項目開展同時,創建了多種用于知識組織構建、編輯、檢測、管理的工具,如詞匯抽取工具、詞法分析工具、質量檢測工具、同義詞識別工具、新詞推薦工具、詞形規范工具、詞表翻譯工具、統計分析工具等。其中,很多工具不僅為項目構建的知識組織系統本身服務,也可以分離出來滿足用戶在利用其他知識資源時復用,避免工具重復開發建設,并且可將不同功能的知識組織相關工具進行組配形成滿足用戶特定需求的工作流,為用戶提供新的應用。因此,將這些知識組織工具封裝、集成在統一框架下形成“科技知識組織體系(Science and Technology Knowledge Organizing System,STKOS)的相關工具集成服務系統”具有重要的實際意義。本文主要闡述知識組織相關工具集成服務系統的需求分析和應用場景,介紹基于OSGi的知識組織工具集成框架及插件封裝等關鍵技術、設計思路和實現情況。

2 需求分析

“科技知識組織體系的相關工具集成服務系統”主要收集、選擇與STKOS相關的各種評估、篩選、映射、關聯、加工、集成、整合和管理的系統和工具,在科技知識組織體系共享平臺上進行組織和發布。為便于STKOS用戶使用知識組織工具進行知識組織體系的編輯、管理、裁剪及利用,需設計可集成的系統框架,對STKOS相關課題涉及的各種知識組織工具的核心模塊進行封裝,規范這些插件的類型、輸入/輸出接口,使這些核心模塊能夠被集成到知識組織工具集成框架中,形成可被管理的組件對象。并且通過構建基于知識組織體系建設的工作流,使用戶可以按需求選擇各種知識組織工具的核心插件,將這些核心插件有機組合起來,完成某項知識組織體系建設的需要。因此,構建的知識組織工具集成框架要具有良好的封裝業務邏輯和模塊化集成思路,能夠滿足可擴展、動態部署等需求。

3 基于OSGi的STKOS相關工具集成框架

3.1 技術基礎

對以Java語言開發的不同來源的知識組織工具進行規范封裝、集成在統一框架中,并提供用戶服務是本文的研究重點。支持異構模塊動態部署、增量式模塊開發、運行時刻服務動態管理、敏捷性開發等軟件架構技術為本項目研究提供了基礎。(Open Service Gateway Initiative,OSGi)是OSGi聯盟于1999年制定的基于Java語言用于定義動態組件系統的一組規范[1],為開發面向服務、基于插件的大型軟件項目提供了簡單、動態和輕量級的基礎框架,這種架構體系以由多個組件構成的Bundle插件方式劃分系統。Bundle是一種較好的規范,突破了Java中默認Package為封閉單元的不足,具有模塊化和生命周期。OSGi可將組件組裝進一個應用進行動態的安裝、卸載、運行和停止,具有足夠的靈活性、擴展性和高效性。目前,大量平臺和工具,如Sun的Glassfish、IBM的WebLogic、WebSphere等核心產品已全部遷移到了基于OSGi搭建的microServices框架上,使現有產品的性能得到改善和提高[2]。著名的Java程序開發工具Eclipse也基于OSGi規范框架進行了重新搭建,獲得了較好的應用效果[3]。在國內,淘寶、支付寶、阿里巴巴等著名的電子商務網站也在其服務平臺中使用OSGi框架進行重構,以提高平臺的模塊化和靈活的可擴展性。葛新和王燾等也分別探索了基于OSGi的面向服務軟件體系架構建設方法,提高軟件模塊的復用能力[4-5]。

鑒于項目目標、系統建設需求和OSGi框架具有模塊化、動態化、可擴展等優點,課題選用OSGi規范作為知識組織工具集成和組件建設的核心框架。OSGi是一種規范,需要通過具體框架實現。現有Equinox[6]、Knopflerfish[7]、Felix[8]、SpringDM[9]等多種OSGi開源實現框架,其中,Equinox和Felix最為成熟且具有較為廣泛的應用,在實際應用中,Equinox是Eclipse所使用的OSGi框架,是Eclipse強大的插件體系的基礎,Eclipse的穩定可靠性也證明了Equinox的有效性。結合本系統實際構建需要,綜合考慮OSGi實現框架的穩定性、可擴展性、服務的全面性等,最終選取OSGi實現框架Equinox進行STKOS相關工具集成服務系統開發和建設。

3.2 集成框架

圖1為STKOS相關工具集成服務系統的工具集成框架,將不同來源、不同類型的知識組織工具以插件形式集成在統一框架下。工具集成框架的實現依賴OSGi規范,實現從工具注冊、表示、存儲、封裝,到插件的表示、存儲、組配、交互、運行、集成、發布、服務的完整流程,并且提供對多種關系處理的管理機制和方法,如插件安裝、啟動、解析、停止、卸載的生命周期管理,插件間數據交互機制的管理,工作流的定制、監控、管理等,最終實現知識組織相關工具的插件化和插件的服務化,從單一課題獨用到課題組及更大范圍的工具規范管理、集成共用、共享的目標。STKOS相關工具集成服務系統的整體框架基于JVM內核,遵循OSGi規范框架,共分為核心業務層、管理層和服務層3個層次。核心業務層主要構建STKOS工具倉儲,包括工具庫和插件庫,工具庫主要存儲各課題提交的知識組織工具,對工具進行插件封裝后,形成插件存儲在插件庫中。工作流引擎,可將插件庫中的插件組配為工作流滿足特定應用。服務層主要面向用戶提供工具和插件的瀏覽、檢索、下載及工作流的定制、組配、運行等服務。管理層主要是提供對系統用戶、用戶單位的管理、日志管理、工具、插件及工作流的管理等。

圖1 STKOS相關工具集成服務系統的工具集成框架

4 插件封裝

4.1 設計思路

插件封裝是STKOS相關工具集成服務系統建設的重要任務之一,其設計思路,見圖2。STKOS相關課題提交的工具均存儲在工具集成系統的工具庫中,存儲工具jar包及所需第3方jar包,工具運行的相關信息,如運行環境、調用接口等。插件封裝基于OSGi的Equinox實現框架,通過對提交工具中的核心工具的jar包及其運行信息提取,對工具jar包加載并進行結構解析和規范接口封裝,將工具封裝為符合OSGi規范的插件。STKOS相關工具集成框架同時提供插件測試,封裝成功后的插件可自動注冊、存儲到插件庫中,按功能分類,并對插件進行版本和生命周期管理,提供工作流組配或獨立運行的服務,為STKOS用戶提供按需使用。

圖2 知識組織工具插件封裝思路

4.2 主要流程

4.2.1 概述 考慮STKOS工具開發用戶上傳的知識組織工具在功能、粒度、依賴的數據規模及類型等方面可能存在的復雜性,系統選擇核心知識組織相關工具進行插件封裝及服務提供,將封裝過程分為自動封裝和后臺手動封裝。自動封裝主要解決粒度小,功能獨立、單一的知識組織相關工具封裝需求,可由工具提交用戶在提交工具后由系統自動完成。而一些較為復雜、需要開放特定接口或無法自動封裝的知識組織相關工具,由系統管理員進行后臺手動封裝、檢測后再上傳到插件庫,發布并提供用戶服務,以確保插件的可用性和有效性。知識組織用戶提交的工具原則上實現單一功能,以jar包形式上傳到系統,上傳遵循系統向導,按步填寫工具相關的描述信息,如工具功能描述、提交機構、開發環境、運行環境、工具類型、開發語言、備注等,這些描述用以進行工具及插件的表示,為多角度發現工具或插件提供有效信息。其中,工具運行調用的類名稱、方法名稱、調用方法中應輸入參數的數量、參數類型、工具版本號以及工具運行所需的第3方jar包的信息最為重要。這些信息有助于系統進行有效的插件封裝,當有工具在其實現中引入了第3方jar包,在系統封裝過程中原則上不再對其進行拆分,而視為一個完整的工具包。知識組織工具的插件封裝的主要流程,見圖3。

圖3 封裝插件的主要流程

4.2.2 工具jar包結構解析 從工具庫加載工具jar包及其相關描述信息,解析工具jar包結構。檢測工具描述中記錄的工具運行需調用的接口和類是否存在其中;如無誤,則封裝開始。

4.2.3 定義Bundle接口 插件通過接口提供功能,因此,封裝首先要定義Bundle接口,先創建一個包含繼承工具jar包接口與實現子類的Java文件和Bundle激活器Activator文件,分別放在com文件和searchbundle文件下。在Activator.java文件中寫入Bundle啟動及停止框架調用的start()和stop()方法,通過BundleContext的registerService方法注冊service,其中涉及的3個參數分別是service的接口、實現和屬性。實現創建Bundle運行接口的Java文件和Activator.java文件的核心方法為createClassFile和createActivatorFile。

4.2.4 編譯打包 STKOS相關工具集成服務系統的插件封裝主要采用Apache軟件基金會開發的Apache Ant將重寫的工具進行編譯打包。在Java環境中,Ant可自動化實現軟件編譯、測試、部署等系列步驟。在(1)操作前先啟動Ant打包所需的cmdjar.bat環境并修改build.xml文件。創建打包的路徑,放入要打包的文件:com文件夾,包括工具實現接口(實現類和方法)的java文件;searchbundle文件夾,包括Bundle激活器Activator.java文件;lib文件夾,包括工具jar包、工具實現依賴的第3方jar包和必須的org.eclipse.osgi_3.8.1.jar。同時,也需要將配置文件build.xml和Ant打包所需的jar包也放在打包路徑下的dist文件夾中。通過語句Runtime.getRuntime().exec("cmd /c start " + projectPathName + "cmdJAR.bat")執行打包編譯命令。編譯后,新生成的jar包中生成新的Manifest.mf文件。工具打包核心方法為projecttoJAR()。

4.2.5 修改Mainfest.mf文檔 STKOS相關工具集成服務系統重寫位于jar內部META- INF路徑下的Mainfest.mf文檔,該文檔提供了框架需要安裝和激活Bundle所需的必要信息,同時說明Bundle對外提供服務的功能以及允許外部對其引用的包。在STKOS相關工具集成服務系統中工具封裝時必須寫入Mainfest.mf文檔的信息項,見表1,其中,Import-Package和Export-Package記錄了重要的插件交互接口,揭示了當前插件要引用及依賴的包。修改Mainfest.mf文檔的核心方法是writeMetaInFile。

表1 Mainfest.mf文檔中的信息項

4.2.6 有效性檢測 封裝完成后對插件進行在線測試。加載Equinox容器,從Equinox中獲取OSGi服務實例。將封裝好的插件調度到插件運行環境中,準備進行插件測試。根據插件要求輸入參數和測試數據,對比輸出結果與預期結果。如果一致則插件封裝成功,功能有效,可發布使用。否則失敗,打上失敗標簽。如插件自動封裝失敗,則轉至手動封裝。啟動Equinox的核心方法為start、停止Equinox的方法為stop、獲取OSGi服務實例的方法為getOSGiService、獲取OSGi中插件的類的方法為getBundleClass。手動封裝由系統管理員在Eclipse中建立工具的項目工程,在項目中加入描述文件MANIFAST.MF用于描述OSGi相關的配置信息。特別注意其Import-Package和Export-Package中的信息是否書寫正確,然后利用Eclipse提供的Export功能,來直接導出插件工程,測試有效后上傳到系統。

4.2.7 存儲入庫 封裝后的插件,經測試成功后,注冊存儲到插件庫中,并進行插件分類。同時存儲插件的相關信息,包括安裝環境、運行環境、提交機構、版本號、封裝時間等。

5 實現效果

5.1 運行環境

(1)硬件環境。服務器系統:Windows Server 2003/ Windows Server 2008/Linux;內存:4GB以上;系統客戶端要求:瀏覽器支持IE6以上版本,分辨率最小為1 024×768。(2)軟件環境。開發語言:Java;開發平臺:Eclipse 3.7/My Eclipse 6.5;數據庫:MYSQL5.1;軟件:Apache Ant、Equinox。

5.2 實施效果

在STKOS相關工具的集成服務系統中已實現插件封裝的功能,并利用實際工具進行了測試實現。通過系統上傳入口上傳SKOS概念查詢工具QuerySTKOS,定義版本為1.0。工具上傳成功后,工具管理中顯示工具處理狀態為“新入庫”。點擊該工具,可以看到該工具的詳情,包括功能描述、版本號、所屬機構、調用的類名、方法名等,提供工具的在線測試和下載使用。管理員權限下對工具測試審核成功后,在詳情頁面點擊“審核”按鈕,工具管理頁面的工具狀態轉為“審核通過”,可以進入插件封裝階段。工具詳情頁面中的“未封裝”狀態隱藏,“封裝”按鈕顯示,點擊“封裝”按鈕,自動封裝程序開啟。工具自動封裝時,界面變灰,顯示正在封裝。封裝成功后,工具管理界面可看到工具狀態變為“已封裝(自動)”。插件管理中插件庫創建新的入庫插件QuerySTKOS,可看到插件信息,其繼承工具的全部信息,并增加新的入庫封裝時間。點擊“QuerySTKOS”插件名可以進入插件詳情頁,進行插件的測試使用。在文本框中輸入查詢的概念名,返回概念相關信息生成的RDF文本,見圖4。如果自動封裝失敗,工具管理中工具狀態顯示“自動封裝失敗”。由管理員檢查后將手動封裝好插件通過界面上傳到系統中。

圖4 插件詳細信息和在線測試結果

封裝后,工具jar包和插件中Menifes.mf文件中的內容發生了變化,增加了插件的運行信息。封裝前Manifest.mf中的信息為:

Manifest-Version: 1.0

封裝后插件中增加了Bundle名稱、版本號、文本標識等相關描述信息:

Manifest-Version: 1.0

Bundle-Name: QuerySTKOS

Bundle-SymbolicName: QuerySTKOS

Bundle-Version: 1.0

Bundle-Activator: searchbundle.Activator

Import-Package: org.osgi.framework;version="1.3.0"

Bundle-RequiredExecutionEnvironment: JavaSE-1.6

Bundle-ClassPath: libs/querystkos_1.0.jar,.

Export-Package: com.search.service

封裝后的多個插件也可以應用于工作流組建,例如兩個插件,STKOS查詢插件和STKOS質檢插件組配形成查詢STKOS片段進行質量檢查的組合工具提供用戶服務。

6 結語

本文介紹了STKOS相關工具集成服務系統中的集成框架,以及集成框架下插件封裝的設計思路和主要流程,進行了系統實現和測試。系統能夠將課題各成員單位提交的知識組織相關工具封裝集成到知識組織工具集成框架中形成可被管理的組件對象,規范管理工具的輸入/輸出接口、功能類型等,實現了工具的復用、共享。封裝后的插件也可被用于組建知識組織體系建設的工作流當中,用戶按需求選擇各種知識組織工具的核心插件,將這些核心插件有機地組合起來成為工作流,完成某項知識組織體系建設的需要。目前,STKOS相關工具集成服務系統的主體功能已經開發完成,不斷配合陸續提交到系統的知識組織相關工具開展系統的測試和完善工作,以便更好地支持STKOS用戶的工具共享、復用。

1 郭慶, 李楠, 李守超.OSGi實戰[M].北京:人民郵電出版社,2013.

2 林昊,曾憲杰.OSGi原理與最佳實踐[M].北京:電子工業出版社,2009.

3 Eclipse[EB/OL].[2014-09-01].http://www.eclipse.org.

4 葛新,董朝陽,梁小江.基于OSGi面向服務的軟件體系架構[J].計算機技術與發展,2012,22(10):121-124.

5 王燾,魏峻.一種面向OSGi的構件化軟件再工程方法[J].計算機科學與探索,2009,3(6):601-611.

6 OSGi In Practice[EB/OL].[2015-02-27]. http://njbartlett.name/files/osgibook_preview_20091217.pdf.

7 Knopflerfish[2015-02-27].[EB/OL].http://www.knopflerfish.org/.

8 Felix[2015-02-27].[EB/OL].http://felix.apache.org/.

9 Rubio D. Pro Spring Dynamic Modules for OSGi? Service Platforms[M].Berkeley, Calif: Apress, 2009:149-176.

Research and Implementation of Plug-in Packaging Based on the Integrated Framework for STKOS-related Tools

WUSi-zhu,HONGNa,ZHENGJian-li,ZHENGHui-xia,FANGAn,

InstituteofMedicalInformation,ChineseAcademyofMedicalSciences,Beijing100020,China

According to the requirements and application scenarios of the integrated service system for knowledge organization related tools, the paper proposes the integrated framework for Science and Technology Knowledge Organization System (STKOS) -related tools based on OSGi as well as the design idea and main processes of plug-in packaging based on this framework, and elaborates its implementation effects. The packaged plug-in can be registered and stored into the system plug-in library automatically for sort management, version and life cycle management. They can also realize the assembly or independent operation of work processes and provide the download service for STKOS users to use as required.

OSGi; Tools integration; Plug-in; Knowledge organization

2015-05-06

吳思竹,博士,助理研究員,發表論文20篇;通訊作者:方安。

國家“十二五”科技支撐計劃項目課題“科技知識組織體系共享服務平臺建設” (項目編號: 2011BAH10B03)和其子課題3“科技知識組織體系(STKOS)相關工具集成服務系統建設”(項目編號: 2011BAH10B03-1)。

R-056

A 〔DOI〕10.3969/j.issn.1673-6036.2015.11.013

猜你喜歡
服務信息系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 欧美成人区| 亚洲an第二区国产精品| 天天躁狠狠躁| 8090成人午夜精品| 国产精品永久在线| 精品无码国产一区二区三区AV| 自偷自拍三级全三级视频| 天天色综网| 久久午夜夜伦鲁鲁片不卡| P尤物久久99国产综合精品| 香蕉伊思人视频| 国产在线小视频| 美女毛片在线| 中文字幕在线永久在线视频2020| 欧美日韩一区二区在线免费观看| 久久婷婷六月| 欧美伦理一区| 久草视频中文| 毛片基地视频| 中文字幕亚洲乱码熟女1区2区| 欧洲高清无码在线| 伊人久久影视| 亚洲天堂啪啪| 久久亚洲天堂| a级毛片免费看| 国产丝袜丝视频在线观看| 国产麻豆aⅴ精品无码| 青青国产视频| 国产一区二区影院| 亚洲v日韩v欧美在线观看| 免费国产一级 片内射老| 国产美女免费| 国产乱码精品一区二区三区中文| 久久精品波多野结衣| 欲色天天综合网| 国产精品短篇二区| 一级毛片免费观看久| 综合社区亚洲熟妇p| 日韩精品资源| 99人体免费视频| 91福利免费| 性色在线视频精品| 特黄日韩免费一区二区三区| 精品午夜国产福利观看| 亚洲人成成无码网WWW| 国产综合精品一区二区| 久久www视频| 亚洲日韩精品无码专区| 国产福利在线观看精品| 97青青青国产在线播放| 国产黄色爱视频| 欧美精品xx| 日本免费精品| 欧美精品成人一区二区视频一| 国产日韩欧美中文| 香蕉蕉亚亚洲aav综合| 刘亦菲一区二区在线观看| 香蕉久久国产精品免| 在线精品亚洲国产| 午夜天堂视频| 亚洲中久无码永久在线观看软件| 一本综合久久| 国产日韩精品一区在线不卡 | 女同久久精品国产99国| 亚洲激情区| 永久免费无码成人网站| 播五月综合| 视频一区视频二区中文精品| 色综合天天娱乐综合网| 国产在线精彩视频论坛| 国产原创自拍不卡第一页| 成人看片欧美一区二区| 国产精品制服| 思思99热精品在线| 国产拍在线| 四虎精品国产永久在线观看| 午夜成人在线视频| 成年人免费国产视频| 四虎成人精品在永久免费| 欧美成人午夜在线全部免费| 亚洲三级视频在线观看| 日韩少妇激情一区二区|