信贷工作流管理系统设计及实现 一笔贷款业务从开始的申请到银行业务人员的审查、银行各层领导的审批,再到这笔贷款业务的最终确定是一个复杂而又耗时的过程如果这个过程完全用纯人力来做,很难保证它的高效率和准确性21世纪,随着计算机的普及,银行贷款业务流程也加入到计算机自动化的队伍中,保证了贷款业务便利性和快捷性贷款业务流程的复杂性和流程的频繁变更,导致银行贷款业务系统的可维护性越来越差每次业务流程的变更,都要求系统维护人员或开发人员修改数据库数据甚至修改系统代码,不但耗时而且还容易出错,因此,工作流建模工具便应运而生该工具提供交互性良好的可视化界面,工作流系统维护人员甚至银行的业务人员可以对其操作产生新的贷款业务流程满足流程变更的需求本文以国内某银行信贷工作流系统的业务和功能需求为依据,利用现有的内部办公网络,设计并实现一个可视化建模的工作流管理系统 1工作流技术简介 1.1工作流参考模型 工作流管理联盟(WorkflowManagementCoali-tion,简称WfMC)提出的工作流参考模型如图1所示在该工作流参考模型中有3种数据: 1)工作流控制数据。
用来辨别状态,辨别具体的过程或活动的状态 2)工作流相关数据工作流管理系统进行过程实例状态转换的条件 3)工作流应用数据针对应用程序,由应用程序操作的数据 1.2BPEL4WS工作流模型描述语言 BPEL4WS(BusinessProcessExecutionLan-guageforWebServices)[1]是基于Web服务的商业流程执行语言BPEL4WS基于XML语言,它整合了Web服务标准,Web服务的使用者可以基于BPEL4WS规范,将Web服务调用、操作数据、异常处理、终止流程等不同的活动连接起来,形成更加复杂的流程 1.3工作流建模 工作流模型包括工作流执行过程中所有的信息工作流执行过程中的信息包括:过程开始条件、活动、活动和活动之间的关联、任务、相关数据、角色、组织结构、过程结束条件等 工作流管理联盟关于工作流建模提出了2个定义: 1)定义了一个元模型元模型是单位最小的模型,不能进行分解,元模型是用来描述模型的模型 2)定义了一套API,这套API可以实现在工作流管理系统之间的交互,可以实现管理系统和建模工作间的交互。
2工作流管理系统总体设计 2.1工作流管理系统体系架构 WfMC提出的工作流参考模型体系架构为工作流产品之间的交互提供了规范,它给出了工作流管理系统的功能模块和相关接口参考WfMC提出的工作流管理系统的体系结构,本文将某银行信贷系统分为3类组成构件它们分别是[2]: 1)软件构件这个构件负责整个信贷系统的功能实现,是整个系统的基本构件该信贷工作流管理系统的软件构件完成系统各个模块功能(如贷款业务申请审批业务流程的定义、业务流程的发起、审查、审批、监控、终止等)的实现软件构件由工作流模型建立、客户应用管理、工作流执行服务3个部分组成 2)系统控制数据该部分数据为信贷系统中的一个或多个软件构件所使用,包括逻辑处理数据、贷款业务控制数据、贷款业务流程约束条件、贷款业务流程各阶段的状态、贷款业务规则、贷款业务流程结果等数据 3)其他应用与应用数据这部分数据属于信贷工作流管理系统的外部系统应用和数据,并不是信贷管理系统的组成部分,但信贷系统需要通过调用这部分数据来完成与外部其他应用系统的交互 2.2基于BPEL4WS的信贷工作流管理系统 本文介绍的某银行信贷业务工作流系统将采用标准的J2EE三层软件架构体系,以组件化、对象化的开发模式为总的设计开发原则,是一个采用C/S和B/S两种方式相结合的系统平台。
该工作流系统分为3个子系统:工作流可视化建模子系统、工作流引擎子系统、扩展管理子系统本文介绍信贷工作流管理系统的核心子系统之一,即工作流可视化建模子系统的设计与实现 3可视化建模工具的设计与实现 3.1可视化建模工具的设计方案 3.1.1模型的组成 银行是一个非常复杂的物理、社会、经济系统,贷款业务流程作为银行的主要经营过程之一,涉及到的银行相关资源、信息也是错综复杂的为了将贷款业务流程模型细化、简单化,将其分成了4个视图:资源视图、信息视图、组织视图和过程视图 (1)资源视图描述资源的类型以及资源实体的属性本文描述的资源包括人力资源和银行客户相关数据文件资源等 (2)信息视图描述贷款业务流程中涉及到的各种数据以及这些数据之间的关系 (3)组织视图描述银行机构设置以及各机构人员的设置各机构或各机构人员之间都存在从属或协作的关系,文中可视化建模工具的实现,采用一种面向对象的关系模型 (4)过程视图描述贷款业务的流程各个视图之间存在着非常密切的关系,它们从不同的角度描述贷款业务流程的信息 3.1.2系统功能设计 工作流可视化建模子系统具有流程定义文件的新建、打开、保存,流程定义相关管理文件的编辑、流程的显示、项目资源树的展示、流程定义树的显示等功能。
在贷款业务流程模型的设计方面,可视化建模工具提供了各种流程活动的图标以及操作这些图标的工具系统功能主要分为5个部分:流程编辑器、文件管理、视图管理、流程仿真器、WSDL/PDD编辑 (1)流程编辑器完成贷款业务流程的编辑编辑业务流程需要关注的是,如何提供完备的约束限制、提供健壮的差错处理机制,以减少生成的流程定义不符合BPEL4WS规范的几率 (2)视图管理提供便捷的视图模式,方便用户对工作流流程进行设计,包括项目资源管理视图、流程编辑视图、流程属性视图、流程导航视图等 (3)文件管理可根据用户的需求进行设置,对与贷款业务流程相关的文件进行良好的支持和管理 (4)WSDL/PDD编辑提供WSDL和PDD文件的编辑和管理功能 (5)流程仿真器贷款业务流程编辑完成之后,通过配置相关运行环境,可模拟执行该业务流程,并将流程的运行过程、执行状况和运行结果及时地呈现给用户 流程编辑器是可视化建模工具的核心功能,下面对流程编辑器的设计进行分析和介绍流程编辑器的功能层次结构设计如图2所示 3.2.1全局设计 由于JGraph图形库为模型的可视化提供了工具,因此可以根据BPEL4WS规范针对各个不同的图元提供相应的属性处理,采用JGraph对流程编辑器中的图元进行设计,通过图形编辑器编辑实现工作流流程。
在系统中,定义DefineManager类,负责全局的初始化以及整个系统内部的调度定义AppMain系统入口类,负责系统图形框架的可视化布局 实现图元编辑器的一个重要类AbsGraph继承于JGraph,其中,由它派生出的子类有Work-flowProcessGraph、CompensationGraph、FaultHand-lerGraph、EventHandlcrGraph,它们分别对应于“工作流流程图元”、“补偿处理图元”、“故障处理图元“、“事件处理图元”4个图元通过AbsGraph,可以设置图元的编辑环境,例如控制能否进行选中操作、是否能够编辑图元等全局属性、获取当前选中的图元、获取当前图元的下一层图元等 属性编辑器是为整个流程定义树所设计的,实现了公共的接口分类,具体如下: (1)PropertySave该属性存储类负责存储贷款业务流程的节点属性 (2)PropertyCloneable属性的克隆接口,用于图元的复制操作 (3)PropertyShow属性显示接口,负责当一个节点被选中时或光标移到该节点上方时,显示其所有属性 (4)PropertyFetch。
属性获取类,负责定义属性的获取方法,该类通过其子类来处理自己不同的属性通过属性编辑器,不仅可以对所有图元的属性进行修改,还可以对流程定义树上的非图元节点的属性进行管理 3.2.4流程定义树的设计 图3为贷款业务流程定义树,图中的每个节点都是自定义节点类WorkflowNode的对象,图元的属性对象为WorkflowNode类的userObject这样,通过流程定义树的自定义树节点WorkflowN-ode,可以获取图元对象,通过图元对象(Work-flowNode类的userObject),可以获得图元的属性对象和属性值 3.2.5流程资源树的设计 流程资源树存放于本地磁盘的一个默认相对路径下,它在新建一个流程时被系统自动生成流程资源树如图4所示,显示了当前系统在本地磁盘中存放的所有贷款业务流程 3.3可视化建模工具的界面及功能 信贷工作流管理系统的可视化建模工具采用Eclipse作为开发工具,运行于Windows平台上,系统运行所需数据存储于Oracle数据库中信贷工作流管理系统实现的可视化建模工具界面如图4所示界面大致可以分为6个区域:菜单、工具、流程资源显示、流程导航、流程编辑、流程属性显示。
总体功能描述如下:图4可视化建模工具界面 (1)可拖拉式创建贷款业务流程的活动,即流程阶段,如图2的“放贷申请”“、放贷审批” (2)贷款业务流程资源树显示,如图2左上部分所示 (3)可用连接弧对2个阶段进行连线,可创建各种形式的连线,可对每个阶段以及阶段之间的连线进行选取/删除/复制/粘贴等动作 (4)连线的位置随贷款业务流程阶段的位置改变而改变 (5)点击工具栏的放大、缩小按钮,可更改整个贷款业务流程的显示大小 (6)可拖动阶段、整个流程的位置 (7)对复合图元活动的支持 (8)每个步骤的撤销/重做 (9)单击右键,可弹出各活动对应的属性菜单,并可对该图元的属性进行编辑、保存等操作 (10)流程导航如图2左下部分所示,通过流程导航区域的缩略图,用户可以很方便地知道当前流程编辑框中所示的那部分流程在整个业务流程中的相对位置,而不用频繁地点击工具栏中的放大、缩小图标 3.4流程文件生成和流程模型检查 3.4.1流程文件的生成 设计工作流可视化建模子系统的最终目的是:即使银行用户对业务流程建模的相关规范本身一无所知,也能让他们以最直观、最简单和最快捷的方式生成他们所需要的贷款业务BPEL4WS流程描述文件。
通过信贷管理系统可视化建模工具,用户可以可视化地对贷款业务流程进行编辑和操作流程编辑完成后,通过解析贷款业务流程定义树生成业务流程定义文件,该文件为.bpel文件本文的案例采用JDOM来生成和解析该.bpel文件,解析贷款业务流程定义树到生成业务流程定义文件,这一过程由SaveToBpel类来具体实现 在解析贷款业务流程定义树到生成业务流程定义文件的整个过程中,需要遍历几次贷款业务流程定义树,其遍历过程如下: (1)第一次遍历由贷款业务流程定义树节点产生MyElement对象,此次遍历主要负责对所有大节点进行分块处理 (2)第二次遍历此次遍历除了重新排列MyElement对象在.bpel文件中产生的顺序,还生成了”…”的标记 (3)第三次遍历生成”…”标记,并生成最终的xml文件结构SaveToBpel类在产生最终的xml文件结构的同时,生成一个用于。