1、 K2BPM技术白皮书 Document VER | 1.0 Release Date | 2011.1.28 目 录 1系统总体架构 3 2 K2流程平台 3 2.1 流程管理工具 3 2.2流程建模工具 4 2.3流程监控工具 7 2.4报表工具 7 2.5表单设计器 9 2.6流程应用功能组件 9 2.6.1代理库 9 2.6.2邮件模板 10 2.6.3虚拟角色库 10 2.
2、6.4审批意见模板 10 2.6.5文件上传下载模板 10 2.6.6组织结构及汇报关系 10 2.6.7权限控制 15 2.6.8日志审计 16 1系统总体架构 流程平台层: l 该层面为用户提供了标准的访问接口,其中包括信息发布、流程作业中心、知识中心以及消息中心; l 采用AD集成或者其他认证方式实现SSO; l 建立统一的权限体系; 流程引擎层: l 主要实现业务流程的自动流转; l K2是基于微软.Net Fr
3、amework技术框架之上的工作流平台,能够实现企事业内部人与人、人与部门、以及人与系统间的流程自动化; l 将人和技术资源无缝结合来为用户提供能在任何时间通过任何设备浏览的工作流程和报告信息,通过一个可用定制的用户界面动态地浏览、分类、过滤报告和工作单数据; l 同时提供流程建模、表单设计等工具以及代理库、邮件模板等一批功能组件,共同为客户提供强大的业务流程支撑; 集成接口层: l 实现客户现有应用系统间的数据整合; 2 K2流程平台 作为专业的工作流产品,K2提供各种功能强大的工具辅助用户进行流程设计和部署,这些工具完全能够满足用户需求。 2.1 流程管理工具 K2提
4、供的流程管理工具K2 Workspace,该工具是流程系统管理员管理K2服务器环境、流程解决方案及流程的组件。K2 Workspace是为系统管理员提供了一个熟悉的管理界面。利用K2 Workspace,系统管理员可以注册/注销K2服务器、定义服务器属性(如Socket端口,数据库设置以及License信息)、停止/启动服务器、管理流程版本、流程线程,以及管理流程授权用户/用户组。 K2 Workspace提供的另外一个非常有益的功能是可以查看并修复流程Run-time错误,这可以成为调试K2流程的一种方法。 通过K2 Workspace能够对K2 Server进行全面的管理: Ø
5、管理多个K2 Server n 注册或注销K2 Server n 设置服务器属性,类似于:网络端口、数据库配置和license信息等 n 启动或关闭服务器 Ø 创建和管理错误记录 n 创建错误捕获规则,以确定哪些运行时错误会被捕获 n 察看并修复运行时错误 Ø 管理K2的流程 n 管理流程的版本 n 管理流程的实例 n 管理用户及角色对流程的访问权限 Ø 管理Worklist n 可查找、筛选所有的进程实例、活动、事件 n 可将一个已分配的任务重定向给另一个用户 Ø 安全管理 n 设定流程的管理人员 n 设定流程的开发人员,仅该角色拥有流程的发布权 2.2
6、流程建模工具 K2拥有功能强大的工作流引擎,能够快捷地实现各种复杂的业务流程。具体流程处理功能如下: (一) 基于人员组织和角色设计的工作流 工作流中的参与者(流程的组织或角色定义)直接采用用户定义(人员,组,OU)方式,并可以在流转过程中充分体现客户的组织架构(比如用户所属部门、上下级关系等)。 (二) 图形化流程模板设计 通过图形化直观地描绘出用户的业务流程,完全遵循国际工作流管理联盟(WFMC)制定的工作流标准,实现了诸如顺序流程、分支流程、条件流程、循环流程、子流程等等多种流程方式。同时采用"拖拉"的方式使得定制流程更为简单,用户只需了解业务流程就可以轻松的定制出复杂的工作
7、流程。下面我们给出K2能够支持的各种图形化流程建模方式: Ø Visual Studio 2005/2008/2010 Ø 基于浏览器的 (AJAX/Silverlight)设计器 Ø Microsoft Office Visio 2007 Ø K2 Studio (三) 流程模板版本化管理 流程模板采用版本化管理,设计和运行时的模板分开。在修改了流程模板后,可以指定流程模板何 时生效;并且可以在任何时候恢复到以前版本的流程模板。 (四) 多节点定义 工作流程从"创建"到"归档",中间需要经历一个或多个步骤。可定义无限的节点,满足企业复杂和
8、多步骤工作流程流转的需求。 (五) 多路由定义 支持多重复杂的路由定义。在每个节点上都会对工作流程的相关表单信息进行条件判断,自动选择路由和目标节点。 (六) 智能路由判断 可以预先设置固定的判断条件选择路由,也可以设置根据流转过程中的信息变量值而确定路由方向,可定义多重和复杂的判断条件。为了适应各种类型的业务规则,K2提供了非常完善的业务规则(5种)功能,能够充分满足企业复杂的业务逻辑。这5种业务规则分别是: Ø Preceding Rule(前置规则) 前置规则是一种逻辑表达式,当表达式为真时,一个流程节点才可以开始执行。换句话说:什么条件为真的情况下,流程任务才可以产生。K2
9、提供了And,Or和Xor等3种逻辑判断符,能够实现逻辑组合。 Ø Start Rule(开始规则) 开始规则是一个时间规则,代表一个流程任务什么时候开始。比如,可以在流程发起后等待2小时再开始这个流程任务,或者当某个流程变量为真的情况下,再等待2小时开始流程任务。 Ø Destination Rule(执行人规则) 用于指定谁来执行任务。默认情况下,K2的用户信息来自于Active Directory(活动目录),因此,它可以非常方便地将任务提交给用户的经理。如果有多个可能的任务执行者,我们可以先把所有可能的执行者添加到执行人规则中,然后对每个规则设定条件,比如:当A为真,发送给发起
10、人的经理,当B为真,发送给总经理;或者可以预先定义一个执行人队列,把这个执行人队列直接指定任务执行者。 Ø Escalation Rule(过期规则) 如果希望某些任务必须在一定时间内完成,比如8小时,如果超过8小时任务依然没有被执行,我们必须执行一定的操作(比如:强制本任务过期,或者强制本任务过期并且将流程流转到某一个流程节点,等等),这样的情形下,我们就可以定义任务的过期规则。过期规则用于指定什么时候和如何执行这样的操作。 Ø Succeeding Rule(后置规则) 后置规则是一个逻辑表达式,当它为真时,某个流程节点才可以完成。换句话说就是:什么情况下流程节点才可以结束。比如:
11、有一个审批任务,需要同时发给5个部门经理作审批,我们希望:只要他们中的一个不同意,流程就执行下一步操作(否决后的操作);至少有3个部门经理同意,流程就流转到下一步操作(同意后的操作)。这是K2一个非常好的规则,因为每个部门经理的审批意见都会保存在各自的Slot(每个执行者都拥有自己的一个槽,来储存自己的数据、规则等)中,流程中的变量值不会互相覆盖,这样就可以非常方便地查询各个经理的审批意见,而不需要为每个经理都定义变量。K2提供了And,Or和Xor等3种逻辑判断符,能够实现逻辑组合。 (七) 工作流执行 可设定的对工作流的执行包括提交、批准、拒绝、转发等。会根据路由的判定条件和当前节点的
12、执行操作设置工作流的下一目标节点,可以增加工作流执行动作。 (八) 工作流批注 除了影响工作流流转的执行性操作,允许在工作流流转的过程中实时添加额外的批注者以保证实际操作者能够获得这些批注者的意见。 (九) 并行,串行,串并行混合执行 支持工作流程的并行执行,即操作群组中的任何操作组对工作流执行了操作,工作流都会流转到下一目标节点。 支持工作流程的串行执行,即只有每一操作组都对请求执行了操作,工作流才会流转到下一目标节点。 可以设置适应复杂工作流程的混合执行方式,串并行执行在工作流程设计中交替使用以满足企业复杂业务处理的需求。 (十) 超时自动跳转 支持节点超时工作流自动流转功
13、能。这样可以确保工作流在处理的过程中不会因为过长时间的等候而被延误。 (十一) 跟踪和回溯 保留工作流流转过程中的所有信息和操作痕迹,供用户查询。 (十二) 自动提醒 对于请求的不同状况,设定了多种提醒功能以确保请求的处理不致延误。 (十三) 流程自动激活 可以让系统在运作的过程中自动触发请求,并且还可以根据前一个请求的实际状况对下一个触发的请求进行智能选择。流程自动激活的方式可以是一些特定操作,也可以是某个工作流流转过程中满足特定条件而触发另一工作流。 (十四) 流程门户定义 通过与企业信息门户的结合,实现流程定义的门户化,根据不同的信息门户设定不同的流程。 (十五) 流程
14、动态维护 系统运行过程中可对全系统的工作流进行实时监控,支持对流程实例的日志记录、查询、挂起、恢复、终止、重起、人员替换等功能。通过配置可定时清除工作流实例历史数据、日志、历史模板。 2.3流程监控工具 K2提供了多种方式的流程监控和分析工具,分别是:K2 Report和K2 Event Bus。 K2 Report可以从全局角度对整个流程系统进行管理,包括:流程版本控制、流程实例管理(停止/继续、删除、跳转等等)、流程用户权限分配、流程排错、任务列表管理(任务转发、删除等等)和流程全局变量定义等等。 K2 Event Bus是业务流程事件订阅和通知的功能,任何人可以在Event
15、 Bus中订阅感兴趣的事件,如:某些流程操作发生了、某些数据累计到了一定的值等等。 2.4报表工具 K2 Workspace 里的 Reports 由一组预先定义好的报表格式组成,通过它们可获得对应流程的统计报表和状态信息。它提供直观的用户界面,让用户定义哪些字段能显示在报表中,以及自定义筛选器和结果的排序方式。如果愿意,还可以将设定好的筛选器、排序和字段显示方式作为模版保存。 统计分析报表可以自定义图形化报表,通过条形图、柱状图、饼图等来表现。用户也可选择这些图形是以3D还是2D的形式显示。 与状态相关的统计报表让用户可以各种不同层面的视角来详细观察跟流程有关的各种信息。比如
16、流程层面的信息、事件层面的信息。每一个层面的信息包括它的开始日期、结束日期、状态、发起者等。系统以图形化的方式向用户展示每个流程实例中各活动、事件的详细数据,用户也可以查看是哪个流程参与者的任务项被流转了,该任务项的状态是怎样的,诸如此类,K2 Workspace提供了一系列强大的监控功能。 K2 Workspace的架构允许开发者创建完全自定义的报表,自定义报表的开发是使用SQL语句来定义数据展现形式,而且可将其导入K2的报表库,这样的报表就可以在Report界面中显示出来。 下图给出了K2 Workspace中报表的应用实例。 流程监控,这是很多种报表中的一个,可以查看流程的
17、利用率;哪个流程经常利用到,哪个流程利用率较低;这些信息都可以为以后的流程改造提供参考。 无论是管理者还是普通的员工,都可以通过该报表系统,查看相关的信息。 该报表系统主要有两个部分组成: (一) 流程报表 流程报表的作用: 通过对流程相关数据的收集和分析,作为企业的管理层,可以通过这些报表了解每个流程的运行状况。图形化的数据显示方式能让使用者更加直观的了解到流程的每一个细节。从而通过对这些有效数据的理解和分析,找出流程的瓶颈,为流程进行再优化提供依据。 流程参与者也可以通过这些报表了解自己的工作状况,及时了解流程的流转状态。 流程报表的种类: Ø 流程状态报表 Ø
18、流程绩效报表 Ø 步骤绩效报表 Ø ……………… (二) 业务报表 业务报表的作用: 通过业务流程的自动化实现,相关业务数据都被存放在相应的数据库中。通过这些业务数据的整理和汇总,从而了解相关的业务现状。 2.5表单设计器 K2拥有强大的表单设计器,用户可以使用多种格式的流程前端展示页面,具体包括: Ø Web表单 K2提供了SmartForm,并对Visual Studio .Net原有的大部分Web控件进行了重新封装。流程开发人员利用这些重新封装的控件,只需要拖放操作即可实现流程业务数据和表单控件的绑定,开发人员几乎不需要写任何代码。另外,流程开发人员可以借助Visu
19、al Studio .Net提供的强大的智能的调试环境,进行K2流程的调试,大大降低了流程开发难度,并缩短了流程开发时间。 Ø InfoPath 表单 Microsoft InfoPath是功能强大的表单数据采集工具,提供了丰富的功能和数据验证机制。K2与InfoPath集成,实现InfoPath流程化。用户在短短的时间内即可以实现基于InfoPath表单的流程。 Ø Word或者Excel文档 利用VSTO技术,K2可以将Word文档或者Excel工作簿实现流程自动化,用户可以在熟悉的工作界面中完成流程任务。 Ø 移动Web页面 对于经常移动办公的公司领导人来讲,经常需要出差,很
20、难长时间呆在公司,K2为其提供了移动审批支持。公司领导人可以通过移动PDA进行流程审批。 Ø SharePoint列表库 通过集成SPS列表库,K2甚至可以实现批量审批,充分提高审批效率。 Ø Outlook表单 K2同样为经常使用Outlook的用户提供了更大的便捷,允许他们在熟悉的Outlook中进行流程审批或者发起流程。 2.6流程应用功能组件 上一节对K2 平台提供的工具进行了详细阐述,但是这些工具相对比较底层,如果直接用来进行流程开发可能会影响效率,而且将来的维护困难。因此我们建议本系统在建设业务流程之前对K2提供的工具进行二次封装,形成一批流程应用功能组件,然后基于
21、这些功能组件开发流程应用。下文将对本系统可能用到的重要组件进行阐述: 2.6.1代理库 考虑到员工出差、请休假等情况,为了保证流程的及时流转,系统需要支持代理功能,K2实现如下代理功能: Ø 主管级审批人员可以设置一名代理审批人,即当该主管不能对申请人的任务进行审批时,由他的代理人代为审批,审批权限以被代理人的权限为准。当被代理人需要收回权限时,必须通过代理人管理功能操作。 Ø 当设置了代理人时,自动任务分配器启动,它的作用是某项任务已到到您的任务列表时,系统自动重新分配任务至代理人。 Ø 待删除了代理人时,自动任务分配器停止,并收回代理人未完成的任务,交由自己处理。 Ø 具有相关
22、权限用户可对代理人进行查看、新增、修改、删除等操作。 Ø 每个员工可以设置一个代理申请人,代理申请人代替被代理人填写费用申请单,同时发起流程,上报级别、费用标准按被代理人为准。 Ø 具有相关权限用户可对代理申请人进行查看、新增、修改、删除等操作。 2.6.2邮件模板 考虑到系统运行过程中经常需要以某一固定格式发送邮件,我们建议按照如下要求实现邮件模板功能: Ø 具有相关权限用户可对邮件模板进行查看、新增、修改、删除等操作。 Ø 邮件模板可以用流程、表单的上下文数据做为参数。 Ø 邮件发送人在发送邮件前可以对邮件按照选定的模板进行预览。 2.6.3虚拟角色库 针对组织关
23、系复杂,员工分布广泛的情况,为了实现业务流程的灵活流转,我们建议建设虚拟角色库。虚拟角色库的实现原理如下: 本系统采用基于虚拟角色的权限控制机制(Role-Based Access Control,RBAC),即在用户和权限之间增加一个虚拟角色。RBAC包括3个实体:用户、虚拟角色、权限: Ø 用户是对数据对象进行操作的主体; Ø 权限指在系统中对应某个系统功能模块或数据对象的执行权; Ø 虚拟角色的概念源于实际工作中的职务,处于用户和权限之间,起一个中间桥梁的作用。一个虚拟角色可以看成是一组权限的集合,也可看成是若干具有相同身份的用户集合。 在实际操作中,将权限赋予虚拟角色,一个权
24、限可以赋予多个虚拟角色,多个权限可以赋予一个虚拟角色,不同级别的虚拟角色具有不同的权限,虚拟角色和权限之间是多对多的对应关系(M:N);再将虚拟角色赋予用户,一个虚拟角色可以赋予一个用户,也可以赋予多个用户,一个用户也可获得多个角色。一个用户获得某个虚拟角色,就具有了该虚拟角色所具有的权限,用户和虚拟角色之间也是多对多的对应关系(M:N)。如下图所示: 虚拟角色集合 系统功能集合 用户集合 功能1 功能2 …… 功能n 角色A 角色B …… 角色Z 用户1 …… 用户n 角色拥有的权限 用户拥有
25、的角色 2.6.4审批意见模板 考虑到审批意见填写的灵活性和简便性,本系统将提供两种审批意见填写方法: Ø 自行填写审批意见。系统在审批表单上提供一个可编辑意见的文本框,审批人可将个人意见以文本方式填入。 Ø 意见模板导入。系统将常用的审批意见格式模板化,审批人在填写意见时只需选择要求的模板,然后对生成的模板实例进行修改即可。 2.6.5文件上传下载模板 为了便于流程中附件、业务表单等文档资料的管理和使用,本系统将建设文件上传下载模板,实现文档资料的组件化管理,具体功能如下: Ø 支持文件上传、更新、下载、删除功能。 Ø 对文件的任何操作都将保留日志纪录。 Ø
26、 支持多文档同时上传。 2.6.6组织结构及汇报关系 用户基础信息管理 需求概述: BPM平台必然会涉及系统用户的添加、删除和信息变更。因此,需要一个模块为管理员提供用户信息维护。同时数据结构也必须支持可扩展的人员属性定义,为以后和其他系统的人员信息做集成打下基础。 功能概述: 用户基础管理中主要功能是维护系统中用户基本信息,包括用户的新增、删除和编辑。其中,删除操作指将用户失效,从系统应用层面是不应该允许实际删除用户的。 根据需求,要求本系统用户能够从LDAP中同步过来,此时可以在本模块中将“添加”功能隐藏,这样可以保证用户的来源是LDAP,“编辑
27、还需要保留,因为本系统可能需要一些LDAP中没有的用户属性,只有通过在LDAP维护添加后本系统再对用户信息编辑的方式把更多的属性添加进去。以下是从LDAP同步用户数据时本平台对用户信息维护过程的示意图: 数据结构示意图: 页面原型示意图: LDAP帐号:该字段用于管理系统用户与LDAP账户. 密码:在sso集成的前提下,密码也无需维护. 用户语言习惯:这里决定了该用户登录系统后使用何种语言. 用户角色:即系统权限组,如果角色在LDAP平台维护,则无需在此维护.但也可独立维护. 组织基础信息管理 需求概述: 在本系统中,组织不仅指某个内部的部门或是某个公司,还
28、可能指某个区域或者成员机构,在组织维护中不仅要求能够维护组织的名称,岗位等基本信息,还应该可以维护组织的类型;同时,我们在前面提到,一套组织关系通常不能够描述企业中实际存在的各种组织活动形式,因此,该组织结构还必须支持任意扩展的多组织树。同样的,组织也必须支持多种属性的自定义扩展。 功能概述: 组织基础信息管理负责维护在系统中涉及的所有组织机构,包括总部、分公司、业务部门等内部组织以及机构、商户的外部组织。除组织名称、类型等信息外,在系统中还需要为组织添加岗位,岗位信息主要用于对应流程中的角色。 数据结构示意图: 1)组织实体数据结构示意图: 2)组织结构数据结构示意图:
29、维护页面原型示意图: 组织类型:通过该字段可以区别系统中不同组织,方便后期的分别统计\管理等 组织、岗位、人员关系管理 需求概述: 在实际业务中,有可能出现一个人同时兼职两个部门的岗位或一个部门的多个岗位,即人员与组织、岗位之间的关系应该是多对多的,同时,基于不同的业务角度,组织之间的关系也有可能是多种形式的,因此,需要单独的界面来维护这3者之间的关系。 功能概述: 本模块的功能如下: 1、 维护组织与组织之间的关系:维护组织的从属关系,比如某部属于某分公司。 2、 维护组织、岗位与人员之间的关系:在此界面中将人员放置到其归属的部门,并且对应到部门中的具体岗位。
30、譬如,将新增加的用户王二安排在IT部门,此时指定王二属于某个岗位,比如AD帐号发放岗.一个人在某部门中可以担任多个岗位,也可以同时属于多个部门. 以上关系中,为了区别在不同业务时,各岗位或各组织与人员的关系有特殊含义,我们还特别为关系设计了可自定义的扩展属性表,这个设计确保了在流程实施时,数据结构能够提供对业务逻辑描述的完美支持。 譬如,在报销流程中,总部的财务审核岗有6个人,其岗位名称都是财务审核岗,都隶属于总部财务部门,但实际业务中,他们分管全国各大区域的财务审核工作,此时,就必须在他们加入财务审核岗时,多定义一个属性叫审核管辖区域来描述其各自的职权范围。 数据结构
31、示意图: 页面原型示意图: 添加子组织:在该组织关系下为其添加一个下属组织. 岗位及人员信息:可以查看选中的组织中所有岗位及岗位下的人员信息. 添加人员:向组织中添加一个人,但必须属于组织中的一个岗位. 添加子组织:在该组织关系下为其添加一个下属组织. 组织结构类型:系统支持维护多种业务角度的组织关系树,请对比上图与本图两种结构的区别. 用户权限组管理 需求概述: 系统需要一个类似LDAP中角色的设置来控制用户对系统各功能模块的访问权限,映射关系为用户到权限组,权限组到系统模块,均可以为多对多设置。同时,这里也希望能够在条件允许的情况下,能够将用户对应权限
32、组的信息放置到LD AP平台上维护; 同时,该模块也要求能够在脱离LDAP平台的情况下独立维护用户信息,以确保在LDAP的维护平台出现问题时仍旧能正常运维。 功能概述: 用户权限组管理页面用于指定某权限组(即系统角色)对系统各模块所具有的访问权限,同时可以维护系统中属于该用户权限组的人员.在本项目中,基于一体化的需要,有可能将人员与权限组(系统角色)的信息放置在LDAP中统一维护,本系统中负责维护权限组与系统模块之间的访问权限.当然,如果不采用LDAP,只要在本系统提供的功能中维护人员与权限组的对应关系,系统也能独立运行. 原型示意图: 2.6.7权限控制 系统供了多层
33、的权限控制机制,确保授权的人员访问授权的功能及信息。系统首先提供功能级的权限控制,可以授权使用人员可以使用系统的那些功能,没有被授权的功能不能被使用者访问和使用。 系统提供文件级的权限控制,首先文件在发布时可以设置发送给哪些人和部门,这样只有选定的人和部门才能访问该文件,其他人无法访问和查看,其次,文件本身设定有密级的文件,无法越级查看文件。 2.6.8日志审计 系统提供日志审计功能。系统会对用户的登陆、登出、业务数据的查勘、修改、删除等存取操作进行记录。通过日志审计,以确保所有系统用户的重要操作被记录跟踪。意外情况下,系统管理员通过查看日志,就能够有效的跟踪系统安全上出现的各种异常情况,找出问题的原因。 16 / 16






