摘要:为了实现可动态重构、能快速适应业务需求变化的科技项目管理系统,论文在分析面向服务架构(SOA)的思想和科技项目管理领域需求的基础上,提出了基于面向服务架构的科技项目管理系统平台的设计框架,该框架主要包含了可重用的服务仓库和业务流程服务集成引擎。论文详细阐述框架中主要构件模块和业务流程服务引擎。通过项目实践表明,在该框架指导下能有效解决目前科技项目管理系统中存在的问题。
关键词:面向服务架构;科技项目管理;web服务;框架
1引言
随着信息技术的推广与普及,政府部门的许多管理工作开始由传统的人工管理转到通过计算机网络来进行自动化信息化管理。由此,政府部门也建立了针对不同的业务的许多的软件应用系统,但政府部门的这种IT系统面临着诸多问题,一是政府多个分散的系统信息不能共享,存在信息孤岛;二是IT资源不能复用,造成资源的浪费;三是IT系统无法快速响应业务需求。如何节约投资成本、追求工作高效、灵活适应需求变化、合理使用资源,实现应用系统、业务数据和流程的无缝集成,从而实现政府各部门之间协同办公,共同处理政府事务,成为政府IT系统亟待解决的重要课题。
本文通过对SOA架构的特点进行分析,针对科技项目管理系统的现状和需求,提出了一种基于SOA的科技项目管理系统平台框架,并阐述了框架设计的基本步骤。在论文的结尾,给出了一个应用实例表明该框架指导下,能较好的解决目前科技项目管理系统中存在的问题。
2科技项目管理系统的现状
本文所涉及的科技项目特指科技管理部门管理的计划项目、基金项目等。对于这些不同类别的项目进行管理是科技管理部门的日常工作的重要组成部分。这类科技项目管理一般指的是对项目实施的全过程进行跟踪管理。因此通常情况下具有以下管理流程,项目的申请立项,项目的实施检查,项目的完成,项目的后续跟踪。如图1所示。
而每一次管理流程都有可能包括材料的提交,专家的评审,结果的反馈,报表的生成以及数据的统计分析。若能对这些项目的进行全程计算机跟踪管理,便可以实现对项目整个实施周期的监控,从而保证这些项目能够按照预定目标正常进行。针对上述需求,经过这些年的发展,科技管理部门对于不同类型的项目,一般都建立了相应的科技项目管理系统。这些系统也发挥了重要的作用,但是随着时间的增长,这些系统出现了下面一些问题:
(1)不同类型的科技项目管理系统之间存在着信息不通,重复建设等的问题。
(2)各自数据格式不一致,彼此之间的资源不能共享,造成了资源严重浪费。
(3)当管理流程发生变化时,现有系统不能满足快速业务需求的变化。
因此,非常有必要通过对科技管理系统进行重新设计,设计一套既能满足当前业务需求,又能解决上述存在的问题的新的开放性好,灵活性高的功能系统。SOA软件开发架构为我们提供一种全新的设计思路。
3基于SOA的科技项目管理系统集成平台框架的研究与设计
3.1SOA架构
SOA(面向服务架构)是一种进行系统开发的新的体系架构,关于SOA,目前尚未有一个统一的、业界广泛接受的定义。一般认为,SOA是一种计算模型,它将应用程序的不同功能单元——服务,通过服务间良好的接口和契约联系起来。接口采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言,使得构建在这样的系统中的服务可以使用统一和标准的方式进行通信。
SOA把IT架构分为组件层、web服务层、业务流程层等。组件层包括各种应用组件,它们通常是技术相关的具体实现,各种具体的分布式组件技术都可以用于实现组件层的应用组件。通常复杂的IT环境中的组件层都同时运用了多种组件技术,而不同的实现技术之间的互联性障碍给应用集成带来了极大的困难,进而形成了一个个的信息孤岛。SOA引入了WEB服务层来解决此种情况下的应用集成问题。Web服务是独立于各种分布式组件技术的,它使用的标准的基于XML的服务描述语言 (WebServiceDescriptionLanguage,WSDL)来定义和封装离散的业务功能,各种支持Web服务的分布式组件技术能够将其上的业务组件发布成Web服务并产生相应的WSDL文档,并且只需要依据WSDL描述的信息就能够调用Web服务,即WSDL所描述的业务功能。在SOA中,需要进入系统集成环节的业务组件都被映射成Web服务,形成Web服务层。在Web服务层之上,通过对Web服务的流程编排来实现商业流程。业务流程层能够调用到基于各种分布式组件技术实现的业务组件,实现了复杂IT系统环境的应用集成。
SOA是一种抽象的、松散耦合的软件架构。从业务层面来看,SOA的核心概念是“服务重用”和“服务互操作”,它将企业的IT资源整合成可互操作的、基于标准的服务,使其能够被重新组合和应用。因此,使用SOA来构建系统能够提供软件的可重用性和软件的生产质量和效率。
3.2基于SOA的科技项目管理系统集成平台框架
为了实现一个通用的科技项目管理平台以达到快速适应业务需求变化的目的,本文根据SOA架构的有关特点以及科技项目管理系统的现状,提出一个基于SOA科技项目管理系统平台的总体设计框架,如图2所示。
图2基于SOA科技项目管理系统平台开发框架
下面对框架的主要部分进行说明。
可重用服务库:可重用服务库的开发分成两个部分来做。一方面,对特定领域进行分析抽象,建立领域模型,在此基础上开发一些领域构件,并通过基于WSDL封装为WEB服务;另一方面,为了能够节省开发费用并利用原有系统,通过定义服务适配器整合已有系统,将其进行封装以标准的服务形式提供和展现。
服务管理:通过UDDI(UniversalDescription,DiscoveryandIntegration,通用描述发现集成)的方式,实现服务的描述、发布、发现、调用、组合、协同、管理等功能。
业务流程服务集成引擎:通过业务流程集成引擎来完成业务流程的整合和动态生成。在业务流程集成中,细粒度的业务逻辑服务组合成粗粒度的业务流程服务。通过集成,可得到不同业务需求的业务功能系统。
3.3基于SOA科技项目管理系统平台开发框架的系统设计
1.可重用服务库的设计与实现
根据开发框架,可充用服务库分成三步来实现。
第一步:我们需要科技项目管理领域进行领域分析,对业务管理流程进行整合,规范管理流程,整理出可以重用的功能,然后针对这些功能开发一些可以重用的组件。
通过对科技项目管理的流程的进行分析比较,科技项目的管理主要是通过提交材料、对材料进行审查、分配专家进行评审、反馈管理的结果给管理对象这一系列过程进行的。因此可以得到下面的一些共同的业务功能,这些业务功能包括:项目数据管理(包括数据获取、数据显示、数据查询与更新)单位数据管理(包括单位信息查询与更新)。此外还包括一些基础功能,报表生成、通知功能(短信发送和邮件发送)、报表、打印、文件操作(上传与下载)和数据库操作等。这些组件是可以重用的。
通过这一步,可以解决当前系统中存在的因为系统不可复用而造成的重复建设和资源浪费的问题。
第二步:原开发的科技项目管理系统(遗留系统)已经在发挥作用,为了提高其利用率减少重复建设,我们将现有的科技项目管理系统进行抽象分析,提炼出一些可以重用的模块供新开发的系统使用,而可重用的两个主要模块是网络评审服务和专家管理服务。
通过上述两个步骤得到一个基础服务库,如下图3所示。
第三步:针对上述两个步骤得到的组件,依照SOA架构的要求,分别对其进行封装。新开发的组件,以web服务的方式发布到服务库中。而在遗留系统中提炼的组件需要为之设计服务适配器才能封装成服务,封装完毕后,将其以web服务的方式发布到服务库中,这些web服务是可供外部系统调用的,通过对服务的调用,外部系统就可以使用本系统的数据,从而解决“信息孤岛”的问题。
2.业务流程集成引擎的设计与实现
为了快速响应业务需求的变化,我们需要设计一个业务流程服务集成引擎,对业务流程进行动态组合,组合得到的服务便可供业务系统直接调用。对于本地前端的应用请求服务,在进入集成平台之后,都启动业务流程集成引擎。业务流程集成引擎判断当前请求的服务是已编制的服务、基本服务还是需要编制的服务,若是已编制好的服务,则按已经确定的服务流直接执行;若是基本服务,则直接执行;若是需要编制的服务,则按照业务规则进行服务的查找和选择。若引擎在执行一个服务时,该服务又调用了其他服务,也要把它提交给服务发现代理去查找和选择。若查找和选择的服务是内部服务库的服务,则重复上述过程;否则调用外部服务。在执行完毕之后,引擎将活得的执行结果返回给前端应用请求服务。业务流引擎的工作流程如图4所示。
通过业务流程集成引擎,可实现动态重构,以达到快速适应业务需求变化的目的。
4基于SOA的科技项目管理系统平台框架的应用
根据3.2提出的开发框架,我们开发了上海市应用项目管理系统。该系统的投入使用,解决了以往那种系统存在的信息孤岛、不能复用、不能快速响应业务需求变化等问题,并得到用户的一致好评,获得了很好的经济效益和社会效益。同时,该系统的成功实现,也可以为其他类似政府管理部门信息管理系统的开发提供新的思路。
本文作者的创新观点:在分析面向服务架构(SOA)的思想和科技项目管理领域需求的基础上,提出了基于面向服务架构的科技项目管理系统平台的设计框架,在该框架下设计了可重用的服务仓库和业务流程服务集成引擎。在该框架下能快速有效指导科技项目管理系统的开发。(本文2010年发表于《微计算机信息》)
参考文献
[1]曹晓叶,王知衍.基于SOA的企业应用集成研究与应用[J].微计算机信息,2007,12-3:16-18
[2]张巧霞,范黎林.基于SOA实现企业应用集成[J].微计算机信息,2007,10-3:12-14
作者简介:龙军(1973-),男,副教授,博士,主要研究领域为专家信息服务网格模型及关键技术研究;王威(1983-),男,硕士研究生,主要研究领域为软件工程。