内嵌工作流引擎的组件化信息系统软件架构研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2009年第10期

福建电脑

内嵌工作流引擎的组件化信息系统软件架构研究

郑大鹏

(北京理工大学珠海学院计算机学院广东珠海519085)

【摘要】:信息系统建设的难点主要是它必须能适应企业或组织机构业务过程的改进和重组。为了提高成功率、降低风险,信息系统必须在缩短开发和部署周期的同时,做到规模可伸缩,功能可扩展,质量可靠。一种内嵌工作流引擎的基于组件的分布式信息系统软件架构可以较好地满足上述要求。实际应用的结果表明这种架构是成功的,它将作为一种信息系统的架构模式被广泛使用。

【关键词】:信息系统;软件架构;工作流;组件

1.引言

信息系统,通常是指辅助企业或组织机构业务过程与运作,对管理者的决策活动进行有效支撑的计算机应用软件。信息系统除了要管理企业或组织机构的重要数据,更重要的是要实现企业或机构业务过程的计算机化和自动化,对业务过程进行有效的管理。在企业或机构的发展过程中,其业务过程是随时间变化的。对于具有一定规模的企业或组织机构,构建信息系统往往是一个投资大、耗时长、充满风险的过程。建立信息系统的成功率一直不高。在技术上主要是因为信息系统软件适应业务过程变化能力弱,开发效率低,质量差。

所谓软件架构[1],它是软件系统设计的一个抽象层次。它确定软件系统由哪些元件构成,各元件实现何种功能,元件之间如何通信,元件按照何种模式组织,以及这些组织模式的限制等。当软件的规模和复杂程度增大后,软件架构的设计和说明比算法和数据结构的选择还要重要。

上个世纪80年代发展起来的工作流管理技术[2],将企业或组织机构的业务过程,看成是由一系列活动组成的。在业务过程改变时,活动本身是相对稳定的。改变的是活动的先后顺序或者活动被激发的条件。工作流管理是将活动的先后顺序或者激发条件作为工作流定义数据保存在系统中,然后由工作流引擎依照工作流定义合理执行业务过程的一系列活动。业务过程改变时只需要改变业务过程定义。显然,在信息系统中应用工作流管理技术能够适应业务过程的变化。

软件组件(Component)是具有一定功能、按照一定标准或形式封装的软件复用的基本单位[3]。在软件开发中使用组件,一方面可以提高开发速度,另一方面,高质量的组件有助于提高信息系统的质量。更为重要的是,用这种方式建设信息系统,可以像搭积木一样逐步构建规模大、开发周期长的大型系统。因此,也可以认为这种方式适合对现有系统进行功能扩展,适应企业需求的变化。

本研究的目的是针对信息系统适应业务过程变化能力弱,开发效率低,质量差的问题,综合利用工作流管理及组件技术,提出一种创新的信息系统软件架构,并通过应用实践,证明这种软件架构的有效性。

2.基于工作流与组件技术的信息系统软件架构

2.1信息系统软件架构目标

信息系统软件的架构目标之一是令信息系统可以很好地适应业务过程的变化。为此我们要采用工作流管理技术。一个完整的工作流管理系统必须包含业务过程定义工具、工作流用户界面、工作列表界面、工作流引擎、工作流管理监控、业务应用等部分[2]。但在处理业务活动的信息系统中实现工作流管理功能时,我们通常将工作流引擎嵌入信息系统架构中,而将业务过程定义、工作流监控等功能放在信息系统之外。这样的工作流管理系统称为嵌入式工作流管理系统[4]。

为了提高开发效率,改进质量,便于系统功能的扩展,信息系统的第二个架构目标是将信息系统设计成由组件构成。为了提高系统的伸缩性,以便在不同规模的企业或者企业成长的不同阶段都能适用,系统往往采用分布式多层体系架构。此外,一个良好的信息系统软件架构最好与特定的应用领域或者行业无关。在实现方面,软件的架构最好是技术中立的,即与采用何种实现技术(如编程语言,开发环境等)无关。

2.2架构的逻辑视图

根据上述对信息系统架构目标的考虑和对相关技术的研究,我们设计了如图1所示的信息系统软件架构。该架构运用多层架构模式,将信息系统在垂直方向分为持久层(Persistent Lay-er)、数据层(Data Layer)、服务层(Service Layer)、执行层(Execu-tive Layer)。持久层负责数据层实体对象在数据库中的自动存取,有关原理可参见文献[5];数据层由系统的实体对象构成;服务层相当于业务逻辑层,实现各种业务规则;执行层,所处位置相当于用户界面层。执行层包含两个平行的亚层。其一是需要用户交互的执行层,其二是自动执行层。在水平方向,系统被分为基础框架和应用组件两部分。其中,基础框架不随应用种类或者场合变化而变化,是所有信息系统共享的公共基础,工作流引擎即包含在里面。而应用组件部分要根据具体的应用来设计。图1中细实线围住的部分就是基础框架部分,而灰色部分标明的是应用组件。这样,数据层就分为业务数据和工作流管理数据两部分;服务层分为工作流管理服务和应用服务;用户交互执行层分为系统主界面和应用界面;自动执行界面分为后台执行者和应用中的自动化过程。

上面提到的各层的组成部分,在物理上可以是一个独立的组件。系统主界面组件是信息系统的主工作界面,他除了包含通常的系统主菜单、工具条、工作区、状态栏等,还含有工作流管理系统的工作列表(WorkList)。他是一个母窗体,其工作区中承载应用界面。应用界面是与具体应用相关的处理功能,通常对应业务过程的一个活动,其处理的对象称为工作项(WorkItem)。应用界面总是在系统主界面的工作区中运行。应用界面对应的业务过程活动是需要人工干预或者人机交互的活动。业务过程中的自动处理活动,例如定时备份或转移业务数据、检查业务数据的完整性等,就通过自动处理组件实现。自动处理组件需要由基础框架中的后台执行者来负责执行。可见,系统主界面和后台执行者组件实现了工作流管理系统的工作流使能服务(Enactment service)[2]。

工作流管理服务组件中实现了工作流管理的各种算法和逻辑单元。例如,根据登陆用户代号和认证资料,确定用户的合法性;根据用户角色确定其可以参与的活动种类(这些活动最后成为主菜单或者工具条上的一项);根据用户角色检索出各项活动当前待处理的工作项(最后显示在工作列表中)。这些服务直接供处于执行层的主界面和后台执行程序使用。类似地,应用服务组件中实现的是具体应用的业务逻辑,供执行层的应用界面和自动处理程序使用。这里的情况与原理同一般的多层体系架构。

数据层的工作流管理数据和应用数据实际上是工作流管理系统和应用系统的实体对象。因为这里假定将工作流数据和应

54

相关文档
最新文档