赵兴涛, 王斌君
(1.中国人民公安大学安全防范系,北京 102614;2.中国人民公安大学信息安全工程系,北京 102614)
人类社会已踏入“21世纪”的信息时代,信息时代的核心是利用计算机技术和网络技术,快速处理和存储大量的信息,通过信息技术规范人们行为,提高办事效率,提高人们管理信息的能力。信息化是业务系统的电子化处理,是人们某个时期对业务系统的理解的结果。然而,随着时间的推移,人们对业务系统的认识不断深入,以及业务系统自身的发展和完善,系统需要不断地维护[1]。其中,最平凡的是业务流程的变化,而业务流程的微小变化将对信息系统带来巨大的改变,以至于不得不重新设计和实现相关的信息系统。例如,车辆管理系统中的审批流程、调度流程、维修流程等等。随着国家对各单位用车的政策性变化,这些流程已发生了变化,今后仍然会发生变化。这就需要构建符合业务不断变化的软件体系结构。另外,目前的信息系统应用最多的是事务处理,其中难免有公文审批等功能,每个应用系统都须开发,软件的重用问题严重,造成资源的浪费。工作流中间件可以很好地解决上述的两类问题。
根据国际工作流管理联盟(Workflow Management Coalition,WFMC)的定义,工作流就是“一类能够完全或者部分自动执行的业务过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行”。简而言之,工作流就是一系列相互衔接、自动进行的业务活动或任务。为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流技术可以提高企业的工作效率,节约工作成本,同时较好地解决了资源共享和办公协作问题。
本文结合公安部车辆管理系统的研制,研究和探讨了工作流管理系统及其应用问题。
文献[2]开发了基于工作流技术的管理信息系统,该系统以Lotus Domino作为工作流引擎,集成了文档型数据库Domino和关系型数据库DB2。该系统采用Intranet模式将企业网与后台数据库系统相连,使流程应用者能方便地参与企业的业务过程,并简化了企业办公,便于系统的维护和升级。但是该系统完全依赖于Lotus Domino平台,部署成本较高。文献[3]研究了.NET组件技术,并利用该技术开发了基于B/S模式的车辆调度系统,根据功能需求将系统划分为以下5个组件:身份验证组件、用车申请组件、车辆调度安排组件、车辆查询组件和系统维护组件。该系统可实现计算机辅助车辆调度,但是缺乏审批环节,还无法实现在正确的时间将正确的信息传递给正确的执行者。文献[4]阐述了基于角色的访问控制(RBAC)的总体思想和模型,以及RBAC的实现机制。文献[5]基于.NET三层架构技术提出并实现了稿件的整体管理解决方案。该文根据用户功能需求,将系统划分为三个层次:用户界面层、业务逻辑层和数据访问层。提高了系统的可控性、扩展性、稳定性和安全性,较好的满足了用户的需求。
目前,车辆管理处仍然采用手工方式进行车辆调度管理。由于出车任务紧,驾驶人员和车辆出勤状况不明,经常导致调配和管理困难。随着国家经济的高速发展,加之业务增长的需求,车辆的数量和种类还会不断增长,急需开发车辆管理信息系统,以便对车辆和人员进行管理,科学调度,满足业务需要,提高工作效率。本文通过分析车管处车辆管理过程中的数据需求、角色需求、功能需求和审批流程需求,设计并实现了以.NET框架的三层架构技术为基础、集成了基于角色访问控制、内置工作流引擎的B/S模式车辆管理系统。
某单位车辆管理处拥有50多名在职员工和100多辆各类大、中、小型运营车辆,平均每年为开会、接待和其他业务局的日常工作提供车辆服务70余团次、近万车次,出车里程约200万公里。车辆管理处的主要工作包括维修保养公安部各机关业务局的所有机动车;调派各业务局的用车申请;为部机关的机动车制定用油标准,并审批特殊情况下的用油申请;为部机关所有机动车定期办理保险;同时车辆管理处还负责本处驾驶员和营运车辆的出勤考核,负责管理本处各种费用支出的登记、查询和统计等。
车辆管理系统除了要实现信息的采集、查询、统计输出等传统功能外,还要实现用车审批功能和维修审批功能,具体阐述如下:
车辆管理部门为各业务部门提供车辆租赁服务,其业务流程为:首先,业务部门提出用车申请,经用车单位领导审批同意后送交给车辆管理处。其次,车管处调度管理员根据车辆可用情况和驾驶员任务安排审批该用车申请,同意后转呈给车管处领导;车管处领导根据本处当前任务安排,最终决定是否同意该申请。再次,若车管处领导同意该申请,则车管处调度管理员安排合适的车辆和驾驶员执行该任务。最后,驾驶人按照调度安排,具体实施车辆接送任务。
车辆管理部门负责部机关所有车辆的维修保养,其业务流程为:首先,业务局用户要撰写维修申请,并取得该车辆隶属部门的领导同意。然后,向车管处提交维修保养申请;再次,车管处领导对申请的内容进行核实,审批同意后,送交车辆维修厂进行维修。最后,维修完成后,维修厂将该车送返车辆管理处。车管处负责维修登记,并通知车辆隶属单位取回车辆。
针对车辆管理的业务需求,并考虑到减少软件开发的重用和流程易变等问题,系统采用B/S结构的三层体系架构,即用户接口层、业务逻辑层和数据访问层,如图1所示。用户接口层是系统的直接展示,通过客户端的Web应用程序和服务器端的控件为用户提供友好的、可直接操纵的用户界面,并通过用户接口层与系统交互。业务逻辑层包括所有的业务规则和校验规则,为用户接口层提供支持,并且当业务规则发生变化时,仅仅将这种变化局限在业务逻辑层,不会影响用户接口层的使用。数据访问层实现对不同数据库平台的访问,为业务逻辑层提供数据支持。虽然.Net Framework提供了操纵数据库的简便方式,但是数据访问层通常不直接与用户接口层交互。数据访问层主要是通过调用存储过程,或者执行SQL语句创建、读取、更新和删除数据库中的数据。
图1 车辆管理系统的体系结构
图2 工作流引擎数据模型
工作流引擎是实现业务流程以及应对业务流程变化的关键。工作流引擎的核心是其数据模型,见图2。其中Workflow表是最主要的数据结构表,它包含工作流的名称和工作流处理对象的全对象名。下一个主要的数据表是WFOwnerGroup表,主要表示每个工作流不同阶段(状态)的所有人。WFState表主要定义每个工作流的多个不同状态。包括工作流每个状态的名称,简单描述,以及负责审批该状态的工作流用户组(WFOwnerGroup)。WFStateProperty表主要定义每个工作流状态关联对象的不同属性。可以为每个属性设置“必须”和“只读”选项。这样,在工作流对象的不同阶段,必须提供某些项目,不能修改某些项目。WFTransition表定义不同状态之间可能存在的状态转换。WFItem表定义了用户提交的每一个申请,包含提交申请的用户、当前申请的状态等。WFItemOwner表定义了每个工作流申请处于特定状态时的审批者。WFItemStateHistory表定义了工作流申请从一个状态到另一个状态的审批历程,可由此推算每个工作流申请的审批时间。
工作流引擎的数据访问层利用.Net Framework中的对象-关系映射(Object/Relation Mapping,简称ORM)方式实现对数据库的访问。业务逻辑层则包括工作流的校验规则和状态转移机制。工作流的用户接口层主要实现了用车审批和维修审批两种工作流。其中用车审批工作流参与角色较多、审批过程比较复杂。
用车审批工作流是车辆管理系统的重要流程,其状态包括:呈报部门领导审批、呈报车管处调度管理员、呈报车管处领导、拒绝、取消、重新申请和安排出车。用户角色包括:申请人、部门领导、车管处调度管理员和车管处领导。用户角色和工作流状态之间的关系:当申请处于“呈报部门领导审批”状态时,部门领导负责审批此申请;当申请处于“呈报车管处调度管理员”状态时,车管处调度管理员负责审批此申请;当申请处于“呈报车管处领导”状态时,车管处领导负责审批此申请;当申请处于“重新申请”状态时,申请人负责此申请;当申请处于“安排出车”状态时,车管处调度管理员负责此申请。用车审批工作流的状态转换如图3。
图3 用车审批工作流的状态转换
图4 维修审批工作流的状态转换
维修审批工作流的状态包括:呈报部门领导审批、呈报车管处领导审批、拒绝、取消、重新申请和送修。用户角色包括:申请人、部门领导、车管处领导和车管处助理管理员。用户角色和工作流状态之间的关系:当申请处于“呈报部门领导审批”状态时,部门领导负责审批此申请;当申请处于“呈报车管处领导审批”状态时,车管处领导负责审批此申请;当申请处于“重新申请”时,申请人负责此申请;当申请处于“送修”状态时,车管处助理管理员负责此申请。维修审批工作流的状态转换如图4。
ASP.NET是Microsoft公司推出的新一代Web应用开发模型,是目前最流行的一种建立动态Web应用程序的技术。本项目采用Visual C#语言作为ASP.NET Web应用程序开发语言,以Microsoft Vis-ual Studio 2008和.NET Framework 3.5为开发工具,后台数据库采用SQL Server Express 2005。系统运行在IIS Web服务器上,并访问后端Microsoft SQL Server服务器。客户端可通过Internet Explorer浏览器访问系统。图5和图6是本项目在上述平台上实现的车辆管理系统的部分界面。
图5 用车申请的人机界面
图6 用车审批的人机界面
车辆管理是很多企事业单位日常管理的重要内容。本文以某车辆管理部门为例,深入分析了用户的业务流程需求,并在此基础上,提出并实现了基于工作流技术的车辆管理系统。该系统采用基于.NET框架的三层体系结构,即将系统划分为数据访问层、业务逻辑层和用户接口层,提高了系统的可伸缩性、扩展性和可维护性。同时采用基于角色的访问控制模型,不同角色的用户登录系统后,仅可执行该角色所赋予的功能,不仅提高了系统的易用性,而且提高了系统的安全性。基于工作流技术的用车审批和维修审批,不仅使流程应用者能方便地参与审批的全过程,了解审批的进度,而且节约办公成本,提高了办事效率,也为今后应对业务流程的变化提供了快速修改软件系统的可能性。该系统的成功应用,既提高了车管部门的信息化水平,同时也为其它业务审批系统提供了借鉴和经验。
[1] 冯玉林,赵宝华.软件工程——方法、工具和实践[M].合肥:中国科技大学出版社.
[2] 高晋生,郭连水.基于工作流技术的管理信息系统研究与开发[J].计算机与数字工程,2005,33(6):41-44.
[3] 罗凌.基于.NET组件的车辆调度系统[J].计算机工程,2008,34(11):275-277.
[4] 汪厚祥,李卉.基于角色的访问控制研究[J].计算机应用研究,2005(4):125-127.
[5] 刘钰红,赵麒.基于.net三层架构技术的在线稿件管理系统的设计与实现[J].南昌大学学报:理科版,2008,32(6):596-600.