首页  ·  知识 ·  架构设计
基于Web服务组合的业务流程管理系统的分析与设计
李波  http://articles.e-works.net.cn/    编辑:dezai  图片来源:网络
一、前 言 工作流技术是工作流管理系统(WfMS)的核心技术,它是提高业务过程效率和生产率
一、前 言

    工作流技术是工作流管理系统(WfMS)的核心技术,它是提高业务过程效率和生产率的关键技术。随着Internet应用的普及和Web技术的发展,传统的C/S模式设计的自动化管理系统已不能很好地满足用户的需求,采用B/S结构已成为新一代工作流管理系统的主要特征。本文研究了工作流技术和WEB技术在业务流程管理系统中的应用,采用了跨平台的JSP技术开发,模块化设计,实现了流程自定义和部门功能自定义,并且支持大型数据库。

    随着社会生产的流程化,工作流起着越来越重要的作用。根据工作流管理联盟WfMC(Worknow Management Coalition)的定义,工作流(Workflow)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。本文详细介绍了工作流管理系统的分析和建模过程。

二、工作流技术概述

    工作流的概念产生自传统制造业的生产组织。“流”反映了一种变化以及变化的过程,是一个较为抽象的概念。针对日常工作中一系列具有相对同定顺序的业务流程,把这些流程分解成多个任务、角色,按照一定的规则来执行和监控的任务序列,以达到提高企业经营效率,降低成本,提高管理水平的目的。

    不同的研究者和工作流产品的供应商从不同的角度给出了工作流的定义,工作流管理联盟WfMC(成立于1993年8月)为了实现不同的工作流产品的互操作,对工作流的相关概念制定了一系列标准。WfMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务,能够在不同的执行者之间进行传递与执行。该定义强调了工作流的执行可以“完全自动或者部分自动”,即:工作流反映企业的经营过程,它的执行应该受到计算机系统的支持,同时需要经营过程本身任务间的执行条件、先后顺序、逻辑结构、交互信息、人员角色以及需要使用的应用程序等要素。

    工作流中两个最基本的元素是活动和活动之间的连接关系。活动对应于企业经营过程中的任务,主要是反映经营过程中的执行动作或者操作,活动之间的连接关系代表了经营过程的规则和业务流程。一个工作流就是一个用一组连接关系组合起来的一组活动所组成的一个反映企业业务过程的模型。执行活动和活动之间的连接关系说明了如何完成企业的经营过程,包括完成经营过程需要完成哪些任务和采用的步骤。

三、基于WEB工作流的提出及其优点

    WEB的成功和普及以及各种相关技术的出现,使许多应用被移植到WEB平台上。自从1995年起,工作流产品供应商和相关的研究人员开始将工作流管理系统转移到wEB平台上。相对于其他的工作流系统(如:基于文件、基于消息等的工作流系统)来说,基于WEB的工作流管理系统具有以下几个优点:

    1、系统维护简单

    未来的计算模式,浏览器就是桌面,客户端都是WEB-enabled的。基于WEB的工作流系统中客户端只需要一个浏览器,浏览器通过HTTP协议从WEB服务器下载客户端程序到本地执行,这样大大简化了系统的维护工作。

    2、利用现有的网络设施

    只要能访问WEB就能加入系统参与工作,无须在单独投资建立通信支持网络,非常方便分散的成员参与到系统中来。

    3、更好的用户界面

    由于WEB浏览器普遍存在的特性使得基于WEB的工作流系统有一个更好的用户界面。WEB浏览器允许用户利用任何流行的计算平台参与工作流过程而无需任何特定的硬件要求。很多不是很熟悉计算机的用户已经习惯于浏览器的简单易用的界面,他们把浏览器当作一种简单可行的工具来参与工作流过程,因此,相比于其他的工作流技术来说,基于WEB的工作流凭借它的浏览器界面接口具有很大的优势。

    4、较好的解决服务器的瓶颈问题

    基于WEB的工作流系统可以将服务分散到WEB服务器和各应用服务器,这样可以较好的实现负载均衡和协同开发。

    5、可以充分利用现有的或将来的技术

    WEB技术是当前热门技术之一,新的技术层出不穷,一些原有的技术也被整合到WEB技术中来。四、基于Web的工作流管理系统的总体结构

    体系结构的设计主要遵循如下3条原则:

    1、基于Internet/Intranet分布式计算环境,面向跨部门、跨企业的分布式工作流管理;

    2、集成已有的各种信息资源,如电子邮件、文档管理、图形浏览、资源管理等,充分发挥这些资源的综合潜力;

    3、与工作流管理联盟参考模型保持一致,其中过程定义语言采用XML-WPDL(基于XML的过程定义语言),以利于实现不同企业的WfMS系统的互操作。

    按照上述原则所设计的Web-WfMS的体系结构如图所示。


系统总体结构


五、系统的功能模块划分

    大致可分为五个功能模块:

    1、基于Web的用户界面:工作流应用建模人员通过Web浏览器将过程及表单定义工具从Web服务器上下载下来,完成应用系统的建模;客户端用户通过浏览器登录到Web服务器,此时可以启动新的流程、处理其工作项等。

    2、现有服务集成:将文档管理服务、邮件管理服务、图形浏览服务和资源下载服务等整合到一起,以便将各环节纵横交错的信息有效地集成在一起,使一个环节产生的结果能自动传递到下一个环节,为下一环节所利用,以保证通信部门及时、准确的做出决策,同时,反映到用户操作上,每个用户所有需要完成的工作反映在一个统一的界面中,用户根据轻重缓急有选择的进行业务处理。

    3、工作流执行机:借助于一个或多个工作流机,激活并解释过程定义的全部或部分,并同外部的应用程序进行交互,完成工作流过程实例的创建、执行与管理,为工作流程的运行提供一个运行时环境。

    4、数据存储与访问:包括过程定义数据、工作流数据以及用户数据。用户可以通过客户端所提供的各种工具(如CAD系统、CAPP系统、字处理系统)对这些数据进行处理。在此过程中可以与数据库系统进行交互,如查询数据库中信息,或将某些应用数据保存到数据库中等。

    5、工作流管理监控实现:管理人员使用工作流管理监控工具对工作流的运行实例、活动实例的状态情况进行监控和管理,如挂起、重启动、终止某个过程实例。

六、工作流执行机的实现

    1、工作流状态引擎

    由于各个岗位在业务处理的过程中会不断的改变状态,所以系统需要有一种状态通知、调整的机制,来执行实时传递与接收业务流程管理信息以及变换各个岗位在不同业务流程中多个流程实例所处状态的功能并调整对应的操作。

    因此,我们专门在系统中设计了“状态引擎”模块来完成以上功能,其中业务流程管理信息的实时传送与接收可以通过网络通信来完成,因此在工作流“状态引擎”中需要设计一个实时通信子模块。为了对工作流状态进行操作,“状态引擎”中需要设计一个状态操作子模块。

    某个岗位完成对某个流程实例的操作后,“状态引擎”的状态操作子模块修改本岗位有关状态,然后实时通信子模块发送信息;接收岗位的“状态引擎”的实时通信子模块接收信息,状态操作子模块根据接收的信息来调整本岗位当前的状态并提示用户进行相应操作。

    2、工作流引擎选择

    本工作流系统应用采用Java网站中著名的“0pen For Business”开源项目作为工作流引擎,此工作流引擎具有稳定、高效率、占用资源小等特性,并且完全按照WMFC的工作流标准接口开发,后期维护简易,可扩展性好等特点。采用此系统可以方便地对业务流程进行维护,用户只要懂得XPDL(XML过程定义语言)并且熟悉系统对用户和表单的配置,即可根据业务需要自己制定业务流程。

    OFBIZ工作流主要用到XML文件进行定义:

    services_FormName.xml:定义了本应用中用到的service,每一个实现工作流的表单定义—个xml文件,运行—个独立的服务。

    controller.xml:OFBIZ ControlServlet的配置文件,我们主要在其中配置request-map,view-map.FormNameXPDL.xml是工作流流程定义文件。

    entitymodel_FormName.xml:实体定义文件,每一个表单需要一个定义,在本工作流中关联到一个数据库表,具体需要定义表名和字段名、字段类型和约束条件等。

    entitygroup.xml:OFBIZ的entitygroup定义文件,Entity可以分Group,在实体引擎的配置文件中可以为不同的Group指定不同的数据源。

七、用户界面的实现——JSP和Servlet技术

    JSP技术能让Web开发员和网页设计员快速地开发容易维护的动态Web主页。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

    JSP有2种结构,本系统采用Model2即MVC结构。MVC是模型、视图、控制的缩写,也就是说在使用jsp时,有相应的文件去实现相应的操作通常jsp只负责显示页面,业务逻辑等由javabean去实现。

    servlet技术是JSP技术的前身,JSP技术其实就是servlet技术的一个高层封装。实际上JSP引擎要把JSP标签、JSP页中的Java代码甚至连同静态HTML内容都转换为大块的Java代码。这些代码块被JSP引擎组织到用户看不到的Java Servlet中去,然后Servlet自动把它们编译成Java字节码。这样,当网站的访问者请求一个JSP页时,在他不知道的情况下,一个已经生成的、预编译过的Servlet实际上将完成所有的工作。非常隐蔽而且高效。因为Servlet是编译过的,所以网页中的JSP代码不需要在每次请求该页时被解释一遍。JSP引擎只需在Servlet代码最后被修改后编译一次,然后这个编译过的Servlet就可以被执行了。由于是JSP引擎自动生成并编译Servlet,不用程序员动手编译代码,所以JSP能带给你高效的性能和快速的灵活性。

八、数据库连接技术的实现

    分布式数据库技术是实现T作流的常用方法,也是系统中实现业务工作流运转的基础。我们利用SQISERVER数据库,在JBUILDER集成开发环境上实现了系统中业务的工作流处理,系统中数据库连接采用了JDBC技术,其主要上作包括以下几个方面:

    1、JDBC技术

    JDBC是对各种各样的关系型或对象一关系型数据库进行访问的最主要的API之一,是一个使JAVA程序能与数据库服务器通信的JAVA应用程序接口,它不针对任何特定的数据库。JDBC技术由两大部分组成,一部分是访问数据库的高级接口,即通常所说的JDBC API,包括核心API与扩展API;另一部分是一些由数据库厂家提供的使JAVA程序能够与数据库连接通信的驱动程序,JDBc数据库驱动程序必须针对特定的数据库系统实现JDBC API中定义的方法。使用JDBC API编写访问数据库的JSP程序时,调用的方法实际上是由JDBC数据库驱动程序实现的。JDBC API大部分都是一些JAVA接口,仅仅定义了方法的名字,没有定义方法的实体。高性能的JDBC数据库驱动程序实现了真正接口,在JAVA应用程序与数据库服务器之间搭起了一座桥梁,使得它们之间可以迅捷地交换数据,提供服务或者享受服务。

    2、JDBC数据库连接方式

    常用的2种数据库连接方式:JDBC driver和JDBC-ODBC bridge,本系统采用JDBC driver。首先,在服务器上安装driver,大多数数据库都有JDBC driver;然后和数据库建立连接,必须创建—个Connection class的实例,其中包括数据库的信息。

    对于—个简单的数据库应用,对数据库的访问不是很频繁,这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它。但是对于一个复杂的数据库应用,频繁的建立、关闭连接,会极大的减低系统的性能,因此对于连接的使用成了系统性能的瓶颈。

    本系统给出的方法可以有效的解决这个问题。在本方法中提出了—个合理、有效的连接管理策略,避免了对于连接的随意、无规则的使用。该策略的核心思想是:连接复用。通过建立—个数据库连接池以及—套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。另外,由于对JDBC中的原始连接进行了封装,从而方便了数据库应用对于连接的使用(特别是对于事务处理),提高了开发效率,也正是因为这个封装层的存在,隔离了应用的本身的处理逻辑和具体数据库访问逻辑,使应用本身的复用成为可能。

    本系统的数据库连接池包括一个管理类DBConnectionManager,负责提供与多个连接池对象(DBConnectionPool类)之间的接口。每一个连接池对象管理一组JDBC连接对象,每一个连接对象可以被任意数量的Servlet共享。

    类DBConnectionPool提供以下功能:

    (1)从连接池获取(或创建)可用连接;
    (2)把连接返回给连接池;
    (3)在系统关闭时释放所有资源,关闭所有连接。

    此外,DBconnectionPool类还能够处理无效连接(原来登记为可用的连接,由于某种原因不再可用,如超时,通讯问题),并能够限制连接池中的连接总数不超过某个预定值。

    管理类DBConnectionManager用于管理多个连接池对象,它提供以下功能:

    (1)装载和注册JDBC驱动程序;
    (2)根据在属性文件中定义的属性创建连接池对象;
    (3)实现连接池名字与其实例之间的映射;
    (4)跟踪客户程序对连接池的引用,保证在最后一个客户程序结束时安全地关闭所有连接池。

九、结束语

    本系统研究了基于工作流管理技术业务流程管理系统,能够将诸多项工作集成在一起,通过Intranet进行业务处理,采用跨平台的JSP技术开发,具有模块化设计、实现工作流程自定义、部门功能白定义、采用SQLServer 2000数据库作为后台支撑。系统具有运行效率高,操作简单、方便、安全性好、可靠性高等特点,并已得到实际应用。

本文作者:李波 来源:http://articles.e-works.net.cn/
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读