工作流管理技术通过提供一种新的机制协助企业进行更有效的生产与流通管理以及决策支持。本文主要研究工作流管理技术在电子商务中的应用,提出了基于WEB和J2EE平台的工作流系统体系结构设计方案,分析了工作流引擎的实现方法。
一、引言
工作流的概念是为提高工作效率的研究而产生的,最初被应用于办公自动化和生产组织领域,通过将文档、信息或任务按照预先定义好的规则在参与者之间进行传递,其目的是通过将工作分解成任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控。工作流管理是CSCW(Computer Support Cooperative Work)研究领域的一个重要分支,它已经被实践证明能够大大提高管理过程的效率、降低生产成本、提高企业生产经营管理水平。
企业的电子商务活动中,大量业务工作都是由两个或两个以上的员工共同参与合作来完成的,这一系列相关的活动以及活动按照一定规则的变化过程就构成了电子商务业务流程,例如销售订单管理流程、行政申请流程、财务审批流程、客户服务流程及人事处理流程等。在电子商务中,能否更快地对客户需求做出反应,在市场需求变化时对商务流程做出及时调整,是企业提升竞争力的有效手段。开发商务工作流程管理系统是企业解决上述难题的有效办法。
二、基于J2EE与Web的工作流系统体系结构
J2EE提供了企业级的计算模型和运行环境,使用EJB Server作为商业组件的部署环境,在EJB Server容器中提供了分布式计算环境中组件需要的所有服务(JTS、JMAPI、JMS、JNDI等)。实现商业逻辑的EJB组件可以更高效的运行在应用服务器中,支持多种客户端的访问。J2EE使企业级应用具有安全性、可扩展性和可靠性,使用J2EE作为工作流的开发平台符合电子商务建设的应用需求。
电子商务平台中工作流系统的实现采用的是三层体系结构,基于J2EE和WEB的工作流系统,核心服务采用EJB实现。三层分别是客户应用层、商务逻辑层、数据层。
1.应用层
是工作流平台的用户应用部分,采用HTML技术,用户通过Web浏览器参与业务流程处理。客户端只提供用户桌面程序界面,客户端程序负责管理所有与工作流引擎的沟通,并为用户提供针对企业具体业务内容所定制的任务清单。客户登录工作流网站并进行身份验证之后会进入不同的界面进行各自的工作。在企业内部,客户应用层中的用户可分为四种类型:工作流设计人员、系统管理员、高层领导者和普通用户,他们分别通过Web界面完成特定的工作。
2.商务逻辑层
逻辑层的实现主要利用EJB技术,它接受Web层发来的请求数据,并依此进行相应的动作,完成事先定义的任务,并且把下一步的要求回送给Web层。逻辑层包括工作流引擎、Web服务器、App服务器、电子商务业务组件。工作流引擎以组件形式封装,用户可以调用其中的接口。Web组件运行在Web服务器上,主要负责与客户的交互。系统通过Web服务器的JSP/HTML/XML/Applet等收集客户端发来的信息和数据,并通过Servlet调用EJB服务器中的EJB组件进行处理并将结果返回到Web页面。应用组件、EJB组件运行在App服务器上,负责发布和管理EJB组件、管理组件的生命周期、连接数据库、并发操作、分布式事物处理等。
工作流执行服务组件是工作流管理系统的重要组成部分,搭建在J2EE应用服务器之中。执行服务组件包含工作流执行服务器,由工作流引擎实现,组件还提供用户客户端应用程序模板和工作列表查询工具,为上层MIS调用提供API。在技术实现上,主要采用JSP、Servlet、EJB,整体采用B/S、C/S混合结构,客户端工作流相关信息查询采用B/S,具体业务逻辑通过RMI机制或Soap机制调用放在服务器端的EJB组件来完成。
对于B/S部分,采用MVC模式,在该模式中Servlet作为Controller角色,负责处理请求与页面流转,EJB充当Model角色,封装业务逻辑与数据,JSP充当View角色,它是数据表现层,生成用户显示界面。具体实现步骤是:当JSP页面收到客户端发来的消息后,根据需要,由Servlet控制业务流转,把实际处理工作交给JavaBean来做,JavaBean根据需要调用合适的组件完成相应的工作,Bean可以利用RMI机制调用本地App组件,也可以直接调用自动应用组件和企业原有应用组件,还可以通过SOAP机制调用远程服务组件。
3.数据层
它是工作流平台的数据基础,由工作流模型数据库、工作流实例数据库和工作流组织数据库组成,主要负责对工作流系统中的模型数据、实例数据和组织数据进行存储、组织与维护。逻辑层与数据层DBMS的连接是通过JDBC来完成的,可以对大部分商用关系数据库提供支持。
基于工作流技术的电子商务系统的功能模块包括销售管理、库存管理、采购管理、订单管理、人事管理、客户管理、系统管理、用户管理。系统中的用户:系统管理员、企业职员、客户、供应商等分别登录到相应的Web页面,进行相关的工作。工作流管理是系统的核心部分,其实质是工作流引擎,它提供了工作流系统在过程定义、任务分派、系统运行、监控执行等服务。
三、工作流引擎的设计
1.工作流引擎实现方法
工作流引擎采用EJB组件技术实现,封装了相应的业务逻辑,工作流引擎的运行主要就是对象之间的交互和接口对对象的调用,以及它们对数据库进行的各种读写操作。根据引擎提供的功能,引擎由四个方面的管理功能组成:工作流模板管理、过程实例管理、活动实例管理、用户角色管理。主要的实体Bean包括:过程实例Bean、活动实例Bean、角色Bean、部门Bean、职员Bean、规则Bean、团队Bean、任务项Bean。
(1)工作流模板管理Bean
包括的方法有:模板创建、删除模板、模板实例化、保存到数据库。
(2)过程实例管理Bean
包括的方法有:初始化过程实例、启动过程实例、挂起过程实例、终止过程实例、删除过程实例、重启过程实例。
(3)活动实例管理Bean
包括的方法有:开始活动实例、挂起活动实例、重启活动实例、终止活动实例、获得活动实例列表、取消活动实例。
(4)用户角色管理Bean
包括的方法有:添加用户、设置用户角色、删除用户、添加角色、删除角色。
2.工作流过程实例管理
采用XML语言来表示电子商务过程模型,过程模型主要由这些实体组成:过程、活动、路由规则、工作流相关应用。例如在电子商务订单确认过程模型中:首先,企业销售部门对订单上的数据进行验证,对填写错误的订单转到退出,对填写正确的订单进行处理;然后,根据客户选择的不同支付方式,当使用信用卡支付时,把客户信用卡信息发送给信用卡服务器进行审批,确认支付额是否被认可;最后,发送订单确认信息给客户。
在工作流过程实例启动时,工作流引擎把XML定义实例化后,经过XML解析器的解析,生成过程、活动、流转路由等对象,再保存于数据库相应的表中。过程模型中的实体被封装成对象,包括:活动结点(Activity)、过程(Process)、路由节点(Rule)、工作流相关应用(WorkflowApp)。对象的基本属性包括ID、名称等,并且具有共同的方法:(1)ContverttoXML():将模型元素的属性转换为XML格式的数据,以便于保存为XML文件;(2)SavetoDB():此方法将模型中元素的信息保存到数据库中特定的表中。
工作流过程实例的执行可以看作是一个状态变迁,其状态有:初始化、运行、激活、挂起、结束、停止。工作流引擎调度中心根据不同的条件,例如,启动过程、执行任务、结束任务以及其他事件的发生,会导致工作流过程实例从一个状态转换到另一种状态。
3.任务管理
任务管理主要根据调度中心的指示完成诸如任务创建、任务状态的转换以及相关数据的维护等工作。每次结束任务的外部请求将触发调度中心调用任务管理为后继活动(如果存在的话)创建新的实例,其状态为“待处理”;同时,其它不同的外部请求也将触发任务管理实施任务状态的切换。任务的主要状态有:初始、处理、暂停、正在处理、完成。
(1)任务队列
一个活动可以具有多个实例,每个实例称为一个任务。在电子商务系统中一个任务对应于企业具体的业务步骤。
(2)任务派发
任务派发处理只针对人工交互活动,是指按照何种准则将任务分配给具体人员来执行。任务派发的方式是按角色指定和按人员指定两种。
(3)任务状态控制方法
工作流引擎对任务状态的控制主要来源于任务的启动规则和后继规则实现。启动规则是通过相任务的直接前趋任务来表示的,启动规则包括顺序、与连接、或连接、用户自定义四种规则。调度中心在将任务切换到待处理状态之前先进行相关的启动规则检查,只有满足启动条件的任务才可以进行状态的切换。任务的后继规则是指当前任务结束后该启动哪些后继任务,后继规则包含顺序、或分支、与分支、用户自定义四种规则。
四、总结
工作流管理技术通过过程建模和过程管理的核心技术开发的企业电子商务系统能迅速实现企业业务重组,使电子商务活动以信息流为基础,可以全面提高企业协作能力。在本文所做研究的基础上,笔者认为可以从以下几个方面进行深入研究:对具有适应的柔性工作流的研究工作、以及如何保证动态建模方法动态路由的正确性还有待进一步充实和扩展,对工作流系统的容错能力、数据保护、数据恢复和异常处理策略方面还有待进一步的研究。
【编辑推荐】