作者贡献声明:
钱力: 撰写论文, 实现整体技术框架与应用开发;
张晓林: 提出基于OSGi技术框架的应用体系, 设计情报分析 平台业务工作流程, 对论文提出修改建议;
李春旺: 对框架的建设与实现提出修改建议;
王小梅: 对平台建设提出修改建议, 设计数据共享接口服务方案;
杨立英: 提出平台分析的指标体系;
陈挺: 数据收割, 数据分析与集成, 实现数据接口;
张智雄: 对平台建设提出完善建设。
【目的】实现各种情报分析工具和流程的有效整合。【应用背景】复杂、复合的情报分析工作往往需要利用分布、异构的多种分析工具和数据资源, 需要建立可靠和灵活的机制实现这些工具的无缝集成。【方法】研究基于OSGi的情报分析服务整体架构, 设计插件服务的模型与插件服务的配置方案, 制定插件服务的集成机制。【结果】实现模块化、动态化管理多个情报工具的世界科技态势监测分析服务平台。【结论】基于OSGi的科技情报分析集成服务框架, 可灵活支持科技情报分析服务需求, 同时对第三方情报分析工具以及情报分析算法的封装与集成提供了技术支持。
[Objective] To effectively integrate multiple information analysis tools and processes.[Context] Complicate information analysis often uses multiple, distributed, and heterogeneous analytic tools and data resources, so reliable and flexible mechanisms are needed for their seamless integration.[Methods] An analysis service framework based on OSGi (Open Service Gateway initiative) technology is designed with a plug-in service model and a plug-in service configuration technique, together with a plug-in service integration model.[Results] An international Research & Development (R&D) monitoring service platform is realized with such a model capable of modularly and dynamically managing multiple analytic tools.[Conclusions] The OSGi-based integration framework of information analytic services is capable of flexibly configuring information analysis services, and provides support to wrapping and integrating third-party analytic tools and algorithms.
科技情报研究往往需要对多种文体及其表征指标进行集成分析。以学科领域科研态势分析为例, 包括研究计划与项目的增长趋势和主题分布、研究论文的主题分布及其变化趋势、技术专利的主题分布及其变化趋势、研发合作结构及其变化趋势、研发与应用机构竞争力格局及其变化趋势等方面的分析。传统上, 这些分析依赖不同的方法和工具, 产生不同的结果数据, 通过不同方式组织和展示。
随着科技情报研究逐渐面对复杂综合的科技决策任务, 这种依赖孤立的方法、工具、数据的离散化过程就愈加难以适应决策问题本身的复杂性和集成性, 以及待分析指标本身的多样性和交互性。当然, 可以通过事后的人工综合分析“集成” 由各个独立方法与工具产生的结果, 但这显然低效笨拙, 而且无法支持过程中对多类内容进行动态交互分析, 难以应对分析需求的易变性和不可预见性, 难以保证不同环节和不同内容对问题、指标、数据、表达等的一致性和兼容性, 而且难以支持分析工具的灵活定制、扩展、融汇和高效维护。
仅仅把多个分析工具“聚合” 在一个调用或展示平台上远不足以应对上述问题, 需要寻求一种开放的集成分析流程以及相应的服务调用技术框架。因此, 本文基于网络服务流程编排技术[1], 提出了开放的情报分析任务流程编排; 引入OSGi(Open Service Gateway initiative)[3]技术规范, 通过使用其模块化组织服务、动态改变服务行为以及热插拔的插件体系结构等特征, 建设一个轻量级、松耦合、面向服务的应用程序开发融汇框架, 支持多个分析任务的集成服务。
在此基础上, 本文提出了基于OSGi的科技情报分析集成服务框架体系, 建立了世界科技发展态势监测集成分析平台, 将多个情报分析任务作为一个服务(Bundle)发布, 保障了服务之间的即时调用与组合, 从而形成新的分析服务。同时也可以根据业务的需求, 随时安装与卸载已发布的服务。并且平台也将各个数据源的集成、分析算法按照OSGi规范技术标准封装在核心服务层中, 供各个分析功能指标随时调用, 从而实现整个集成分析平台的数据共享。
早在2005年, Badalamente等[3]就提出了情报分析前的十大需求, 包括无缝的数据获取与摄入、分散数据摄入、协作分析的共享电子文件夹、生产假说与追踪、政策分析模板、动态的数据处理与可视化、图形化数据资源、智能分析的知识库等。
为完成集成分析目标所需要的多个分析任务都需要解决这些问题, 需要把这些单独任务的数据获取、数据挖掘、假说探析、专家交互、政策模拟、可视化、数据共享等有机融汇, 支持整体结果的产生。一种方法是一开始就充分理解整体集成分析的所有步骤、方法、数据、工具和结果, 建立相应的单一化分析平台, 例如中国科学院文献情报中心开发的专利在线分析系统[4]中的纲要分析, 可从4种分析类别的40多个指标中选择所需要的任意指标组合, 系统自动分析后生成集成报告。但是, 由于情报分析内容的易变性和不可预见性, 由于不同分析往往用到不同定义、范围、格式的数据, 这种从一开始固化集成分析流程过于奢侈和严格。另一种方法是开放式的流程编排组合, 这也与诸如OSGi框架这类开放平台相吻合, 可开放组合多类情报分析任务及其结果。本文先介绍目前情报分析应用, 然后分析流程组配的基本方法。
(1) 文献计量分析。文献是科研成果、研究进展和研究能力的重要载体, 文献计量分析用于对研究水平与影响(发文数量、被引程度等)、研究布局(研究主题分布、知识图谱)、研究主题演化(研究主题变化趋势)、研究合作与竞争(共著、共词、共引分析等)等的研究。多种工具可用于这类分析。情报分析人员应用工具时, 需要界定问题类型、主题范围、数据库及其数据范围、数据清洗要求、数据计算方法、结果数据及其表达方式等。
(2) 专利计算分析。专利是技术创新、发展与竞争的重要体现, 专利计算分析成为技术趋势和产业发展分析的重要方法, 多用于对技术发展趋势(专利数量等)、技术研发布局及其演化(专利主题分布、技术图谱与变化趋势)、研发合作与竞争(权利人网络分析、专利引用分析等)、技术雷区与可能突破口(技术功效矩阵)等的研究。多种工具可用于这类分析。情报分析人员应用这类工具时, 也需要界定问题类型、主题范围、数据库及其数据范围、数据清洗要求、数据计算方法、中间数据、结果数据及其表达方式等。
(3) 全文挖掘分析。传统文献计量分析更多利用文献元数据和引用数据, 易获得、易海量计算, 许多方法具有高度的有效性。但文献全文包含了更为丰富的内容信息, 逐步成为情报分析的重要基础, 特别是用于研究主题监测和演变分析, 例如中国科学院文献情报中心的网络科技信息监测平台[5]。情报分析人员进行这类分析时, 需要确定主题范围、数据库及其数据范围、数据清洗要求、对象抽取方法、数据计算方法、结果数据及其表达方式等。
(4) 社会网络分析。社会网络指社会行动者及其间关系的集合[6]。社会网络分析(Social Network Analysis, SNA)即对社会网络中行为者之间关系进行量化研究, 已成为当前科技情报分析的重要方面。例如通过开源工具igraph[7], 可对大规模网络进行分析和可视化; 又如UCINET[8], 作为社会网络分析与可视化工具, 可以处理CSV、TXT、XLS等文件格式的数据以及E-mail传输信息, 与Excel整合, 以图表形式输入有向图, 提取社会网络, 支持多种网络的可视化布局。还有诸如NodeXL[9]以及Cytoscape Web[10]等社会网络分析工具。从流程角度, 它们与前述方法并无本质区别, 但它们所依赖的数据结构和产生的结果往往不同于文献、专利和学术型全文。
(5) 可视化分析服务。通过信息可视化组织、揭示分析结果已经成为情报分析的基本要求, 有助于揭示海量数据中隐藏的复杂结构, 直观理解这些结构及其所代表的问题, 甚至帮助人们借助可视化结构开展新的分析[11]。如CFinder[12]可视化分析软件, 能在网络中寻找指定大小的全连接集, 并通过全连接集中共享的节点和边构建更大的节点集团; Pajek[13]可以同时处理多个网络, 提供基于时间窗的事件网络演化轨迹; LGL(Large-Graph Layout)[14]用于大型网络与树状追踪图的可视化。这些工具大多能以多种数据格式摄入数据, 可进行多种形态的结果可视化, 但在结果数据的可输出性、标准化、可计算化上还存在较多局限。
(6) 开源情报分析工具。许多机构和组织发布了开源的图形分析工具, 例如JUNG[15], 可以进行图形(网络)建模、分析和数据可视化, 利用图理论、数据挖掘、社会网络分析等领域的方法, 支持聚类、分类、统计分析、网络距离计算、流向计算以及重要度计算; Prefuse[16] 也是基本Java语言的图形分析工具, 基于它开放的Flare开源软件工具提供了使用ActionScript语言的可视化分析开发库; NWB[17]基于OSGi提供了一个易扩展的情报分析平台, 支持基于OSGi开发个性化分析工具, 并配置到NWB平台中实现个性化的情报分析服务。
为了支持集成化的情报分析, 需要把各种孤立的方法、工具、数据及其分析结果根据其逻辑关系加以融汇, 从而支持生成综合分析结果。而且, 这种集成融汇的机制, 还有助于实现Bier等[18]提出的基于实体的情报分析协同工具, 支持情报分析人员对一项研究或者任务进行协同分析工作。但是, 目前存在的多种方法和工具, 它们应用于不同问题的分析或不同的分析环节, 对问题、指标、数据、结果、结果表示方式等往往有不同的定义和处理方式, 需要在一个逻辑流程框架中规范化地组织和表达它们及其之间的关系。
可以通过定义一个服务流程(对应于OSGi的Bundle)支持上述逻辑流程框架。这个服务流程对应于一个分析任务, 可以是一个简单的合著分析, 也可以是包括多个相互关联、甚至交互的分析任务的组合(例如某学科领域的综合发展与竞争合作态势)。这个流程由N(N为1到任意指定数)个任务组成, 每个任务可以由一个相对独立的任务模块负责完成, 这个流程需要规定支持综合任务的各个独立任务模块, 定义各个任务模块间的交互关系, 定义任务模块间的信息输入输出格式与方式, 定义对任务模块及其关系的约束和调整机制等。可以通过情报分析的任务结构以及分析场景构建上述任务流程。
对每一个任务模块, 需要规定它要解决的问题, 包括这个问题的主题、国别、时间等范围, 回答这些问题所需的数据库(以及调用数据库的接口与协议)、从数据库中检索抽取的数据范围、检索抽取数据的检索式(及其调整方式)、对检索数据的清洗要求、分析计算方法(及其调用接口和参数赋值方式)、结果数据(及其表达规范)等。
各个任务模块之间的关系可能是并行的(即前者不作为后者的输入), 这时的主要任务是保持并行任务模块分析在问题界定和数据范围界定上的一致性; 但任务模块之间可能是串行的, 即后一模块的输入数据是上一个模块的输出数据(例如通过科研水平分析得出科研论文发文量前10的单位, 又分析与这10个单位存在合著关系的合作机构), 这需要输出数据本身可获得、可解析抽取、可转换为下一模块可接受的输入数据、而且数据的语义定义还应保持一致。如果存在不一致, 需要调用转换模块进行转换。
OSGi系统为实现集成服务流程定义和服务组合提供了基础。
OSGi[2]最初目的是为嵌入式设备提供一个通用的软件运行平台, 一个隐藏了设备操作系统和硬件细节的中间件平台, 为服务提供商、开发者、软件提供商、网关运营商和设备提供商等开发、部署和管理服务提供一致的协作环境, 为基于OSGi的应用系统提供标准运行环境, 保证基于OSGi进行规范化开发和动态性部署。OSGi框架体系结构共分为5层, 分别为JVM层、Class Loading层、Life Cycle层、Services Registry层和Services层, 其中各层次的功能映射关系如图1所示:
OSGi框架在R4(Release4)[2]版本中定义了Bundle, 作为服务组合单元, 是OSGi系统中部署的唯一形式, 本文中的服务插件即对应一个Bundle。Bundle的具体开发与实现如下: Bundle是一个具有JAR格式的文件, 包含了Java的Class文件和其他资源文件, 同时Bundle可以在自己的声明文件中说明能提供哪些Java包, 如果其他Bundle在其声明文件中指定了相同的包, 则它们之间就产生了Java包的依赖关系, 这样多个Bundle之间就可以共享Java包。
本身运行在OSGi框架中, 是具有生命周期特征的插件包, 可以在任何时候被安装、启动、更新、停止和卸载, 同时每一个Bundle都有一定的生命周期, 在生命周期内, 有不同的状态, 相互之间可以根据任务的需要进行状态转换, 其生命周期管理如图2所示:
![]() | 图2 Bundle生命周期管理示意图[2] |
Bundle之间的通信机制可以通过两种方式实现, 即Service调用和Packages引用。Service调用即引用其他Bundle提供的类实例, 通过调用其提供的接口实现数据通信, 而Packages引用即通过定义Bundle的Import Package和Export Package来实现, 此方式更适合于服务插件设计时定义Bundle的依赖。另外, 同一个Bundle中不同类实例的通信, 可以基于OSGi框架中的事件管理机制方便实现。
Bundle构建策略在基于插件服务的应用框架中占重要地位, 它完全决定着业务的实现、软件平台开发的代码规范以及整体业务需求模型的构建。因此, 在基于OSGi构建插件服务框架时, 必须首先弄清楚要构建什么样的Bundle。本文主要对以下4个策略进行介绍:
(1) 明确Bundle的构建需求及实现粒度, 根据功能模块的边界可大可小, 极端情况下, 小的Bundle可以仅实现一个微小的功能, 大的Bundle可以实现整个业务系统;
(2) 确定Bundle的类型, 如工具类、服务类等;
(3) 隐藏Bundle的功能接口, 即插件开发在控制平台开发规模的同时, 更注重降低平台功能耦合;
(4) 尽可能应用OSGi提供的技术标准规范, 如应用程序管理服务、日志服务、事件服务、配置管理服务、用户管理服务、HTTP服务等。
本研究插件框架是为支持复杂情报分析业务需求, 设计与构建一种可配置的、柔性的、可持续性的情报分析服务框架, 具体设计主要从基于OSGi的科技情报分析集成服务整体结构设计、基于插件服务工作流配置应用设计以及后续插件服务集成设计三个视角进行考虑。
科技情报分析集成服务体系架构分为三个层次, 如图3所示, 自下至上分为数据资源服务层、业务逻辑处理服务层与用户层, 框架核心是业务逻辑处理服务层, 基于OSGi构建开发、配置与运行Bundle服务插件。构建开发的插件如下: 功能插件, 即实际业务功能, 具体插件的开发粒度由具体的业务与整体实现流程而定; 服务插件, 如框架中的公共算法插件、数据库服务插件, 供框架中运行的Bundle调用; OSGi框架提供的核心服务插件, 负责Bundle的生命周期中状态的监测与转换、全局相关事务的初始化, 实现Bundle插件的注册功能, 以及对运行的Bundle服务进行流程配置形成更大粒度的插件Bundle。数据资源服务层, 主要将相关数据源进行本地化集成(其实根据项目的需要可以实现分布式的数据资源, 本文暂未对此进行设计), 通过“数据共享” 机制对业务逻辑处理服务核心层提供数据分析的支持。
通过上述设计, 分析服务之间的耦合性降低, 灵活支持了复杂任务的配置, 数据资源与业务逻辑实现物理隔离, 通过数据共享机制或者公共算法插件, 方便分析人员更多关注分析解决方案的制定与配置。在服务的动态安装方面, 用户的业务插件只需在服务管理中心进行注册, 在不影响其他服务的前提下, 即可完成新分析工具的部署。
本文也参考了行业商业智能ETL[19]工具设计, 即从数据抽取(类型、策略制定)、数据清洗、数据转换与加载等流程, 支撑商业智能分析的需求任务。基于OSGi的科技情报分析集成服务框架是动态化、模块化的平台, 由一系列的Bundle插件组成, 同时这些Bundle又由一系列的Component组成, 形成了物理上的相对独立性; 其次, 平台的动态性实现了模块化的动态部署、卸载、停止、启动, 达到模块的即插即用, 即“热插拔性” 。
因此, 平台更易支持分析人员按照自己需求将更小粒度的Bundle插件服务配置为一个工作流程; 配置好的新工作流也相当于一个较大粒度的服务插件, 可以供其他Bundle服务进行调用和集成, 避免了重复工作。图4提供了一个范例: 首先对科技布局分析、科技产出分析和科技合作分析这三个功能插件进行封装, 在Service Registry服务中进行注册, 然后导出发布这些插件服务, 以供各个应用按照需求选择其中某个插件服务。
持续支持情报分析集成服务是系统设计的重要考虑, 因此把新开发的服务插件和第三方工具封装为能在OSGi框架内注册、调用和集成的插件尤为重要, 这样能把已有和新开发的服务集成到原有的服务框架体系中, 实现了情报分析集成服务体系的流畅和经济的扩展。具体集成方案如图5所示:
考虑到开发的服务效果、服务的可维护性与可持续性等因素, 平台开发环境的策略如下:
(1) 开发平台与工具
应用开发平台基于J2EE的MyEclipse8.5, 使用Java跨平台语言, 既方便相关Java版本开源工具的封装与嵌入, 又有利于平台的部署。
(2) 基础开发框架
基于Equinox项目进行开发, 这是一个OSGi R4核心框架规范的实现, 实现了可运行基于OSGi的系统的各种可选的OSGi服务和其他基础设施。
(3) Web服务容器
应用部署的Web服务容器采用了Jetty, 配置方便, 应用便捷, 而且Jetty也进行了Servlet实现, 由于本文实现采用编程处理Web应用, 所以需要将Web应用的信息注入到Jetty中。同时, Jetty又作为OSGi的一个Bundle, 与整个应用的开发机制基于同一个原理、同一个框架, 因此处理起来更加容易。
(4) 可视化分析
基于Flex与OSGi二者结合的方式, 其中Flex作为RIA应用的一种技术, 已经得到广泛应用, 主要得益于丰富的互操作性、良好的用户体验、前台与后台的真正分离、通信方式多而容易、组件化开发、异步机制等, 所以在本研究项目中, 对于世界科技发展态势的监测分析, 在前台揭示方面采用Flex相关技术。
世界科技发展态势监测分析平台的整个业务流程结构如图6所示, 以用户的监测需求为驱动, 按照相应的指标体系, 进行监测分析数据, 形成结构化的中间数据, 然后基于配置规则自动映射到可视化分析的相应数据规范, 创建出可视化分析场景, 让决策者与视觉操作界面进行交互分析, 同时允许其将分析结果以图片、文件等形式进行封装保存。
平台功能从科技产出、科技投入、科技发展背景以及科技战略动态4种视角对世界科技发展态势进行
监测与分析, 每个监测分析场景都遵循“分析主题-可视化分析-指标选择展示” 的“三位一体” 方式, 支持用户的关联分析, 自动引导用户进行情报分析服务。平台结合实际获取数据结构, 将监测分析主题分为4级, 本文只列出前两级的分析主题, 如表1所示。在开发实现时, 将4级分析主题作为一个运行的Bundle进行设计与实现, 同时对数据库操作、数据计算、可视化分析方法都进行了相应的Bundle服务插件的开发与封装, 平台也实现了个性化的定制, 即根据不同的用户角色, 平台可以个性化地为用户分配访问插件服务。
![]() | 表1 监测一级与二级分析主题对应关系表 |
以科技产出中的专利产出主题“受理国家/地区-》 专利申请受理国/地区分布” 为例, 实际效果如图7所示, 在可视化揭示模式中, 用户可以选择表格、柱状图与折线图三种模式揭示发展态势, 而在地理布局中, 除以颜色标识各个地域的发展态势外, 同时在最右侧设计了一系列的分析指标供用户个性化选择。如果用户选择了相应分析指标和可视化模式, 平台即可按照用户选择展示世界科技发展态势的演化分析结果。
本文描述了基于OSGi框架的面向集成服务的轻量级、松耦合的情报分析集成服务平台, 为情报分析任务的动态组合与扩展, 为分析算法和可视化等工具的集成提供了理论与应用依据, 同时OSGi技术规范也为情报分析工具的开发模式提供了相对标准化、规范化的技术体系。利用本研究框架实现的世界科技发展态势监测分析平台, 使决策分析人员能够动态地发现、选择和集成可能的分析方法和数据也支持动态开发、更新情报分析流程。在后续工作中, 笔者将在支持复杂任务、框架灵活性、工作流配置方面进一步开展研究。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|