首页 > 代码库 > 基于.Net开发的工作流软件

基于.Net开发的工作流软件

现代企业的信息管理系统中microsoft占据了主流,基于.net开发的工作流与微软产品体系的紧密结合,能最大的实现IT投资的增值。工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目前国内外的工作流系统层出不穷,行业标准多种多样,虽然工作流主要功能国内比较知名的工作流软件基本上都具备,但功能的侧重点各不相同,增加了企业对工作流或BPM选型难度,本人选用目前国内市场主流专业的工作流软件,从概念、工作流引擎、工作流过程建模工具、流程操作、工作流客户端架构、流程监控、表单设计器以及与应用程序的集成等方面进行分析和比较,帮助企业对工作流或BPM产品的选型。

一、概述:

工作流的思想最先起源于西方国家,一开始的目的主要是为了简化工作流程,为繁琐的工作提供依据。随着需求的不断延伸以及人们对企业信息化思想的不断普及,工作流越来越受到企业内部的使用推广,当然,工作流能满足的需求也在不断的优化。

工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、 增强对客户的服务、有效管理业务流程等目的。尽管工作流已经取得了相当的成就,但对工作流的定义还没有能够统一和明确,不同学者从不同角度对工作流做出了不同的定义。
Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。
IBM Almaden Research Center将工作流定义为:工作流是经营过程的一种计算机化的表示模式,定义了完成整个过程需要的所有参数;这些参数包括对过程中每一个步骤的定义、步骤的执行顺序和条件、步骤由谁负责以及每个活动所需要的应用程序等。
1993年工作流管理联盟(Workflow Management Coalition,WfMC)作为工作流管理的标准化组织而成立,标志着工作流技术逐步走向成熟。WfMC对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。
工作流从英文单词workflow而来,是工作work和流动flow的组合,是一种能够被计算机解释和执行的反映经营过程业务流动的计算机化模型。

 二、BPM与工作流的区别

简单地说,BPM关注的业务流,工作流关注的是审批流,它们的区别如下:

1、业务流往往会跨多个业务系统,而审批流往往主要涉及到一个系统。

2、业务流往往会涉及到多个业务功能,多个业务对象,而审批流往往只涉及到一个关键业务对象。

3、业务流涉及到的是不同业务单据之间的流转,而审批流往往是同一业务单据状态的变化。

4、业务流中的活动既包括了人工活动也包括了自动的业务活动,而审批流一般为人工审批活动。

对于流程建模,BPM关注的是业务流程建模,而工作流关注的是审批流建模。BPM建模需要考虑业务人员对建模需求和可用性,但是不可避免又导致建模的内容无法很好的落地。而工作流建模本身已经细化到一个功能模块中的审批流,相对来说简单很多而容易实施执行。

BPM业务流程往往跨越了业务系统,跨越了多个业务单据,需要处理不同的业务规则和逻辑。而工作流活动节点往往仅仅处理审批和会签任务,和外界交互相对较少。

BPM业务流程建模中会出现业务规则,而常规的工作流处理方式一般支持脚本代码进行简单业务规则的处理,BPM为了保证规则本身的复用性和独立维护性,引入了规则引擎,规则引擎形成统一的规则创建和维护库,BPM本身不再负责规则的创建和维护,而仅仅是按需消费.

BPM重点是流程整合,而流程整合是多个业务系统中多个业务功能模块之间的协同,如果一开始想用BPM去实现这些业务功能,那么往往是适得其反,BPM切入的第一步仍然是在于跨业务系统的流程集成,而流程集成重点又在于流程间的数据传递。知道这个重点后BPM的关注点应该放到流程协同和监控上,而子流程或某个独立的业务模块实现仍然在原有的业务系统中,通过端到端流程整合实现了业务模块之间的系统,这个一方面最大限度的利用了已有的IT资产,又实现了流程整合的需求。 

三、工作流平台及厂商的层次分类

工作流平台分为两种:一种是快速开发平台,一种是业务平台(或者提供相关的业务套件)。

快速开发平台主要包括了电子表单、一套开发框架还有为宣传所需要的ESB和SOA设施。

业务平台则包括了文件管理、在线编辑、即时通讯、电子印章、门户、内容管理、人力资源、客户服务、行政管理等套件/模块。 与单纯的快速开发平台相比,业务平台显然站在了一个更高的层次上。在软件开发中,最大的浪费往往并不在于技术本身,而是在于对业务的不熟悉,在于核心领域模型的频繁变动。对用户而言,根据需要选择合适业务平台和相关服务无疑能够产生最大的价值。

为什么有的厂商提供快速开发平台,而有的厂商提供业务平台呢?这取决于两个方面,一是厂商切入工作流市场的年限,年限越长,越积累有丰富的项目经验,这些经验很容易转化成业务套件;二是厂商的客户定位。

根据上面的讨论,我们不难将工作流厂商分为3类:

1、只提供工作流产品。这类厂商产品单一,尽管产品质量能够得到保证,但是发展最为困难。

2、提供工作流产品和快速开发平台。这类厂商在工作流的基础上提供开发框架进一步简化编程,相比第一类厂商会更有竞争力,但是其发展受到系统集成商的限制。同时需要注意的是,部分厂商着力点在于开发平台,工作流产品水平非常一般甚至初级。

3、提供工作流产品和业务套件/平台,同时自己接项目。这是目前生存状态比较好的厂商,多是老牌厂商或是有充足的资金。业务套件/平台能够给用户提供最大的价值。在任何时候,直接面对最终用户都是王道。

选择提供工作流相关业务套件(如同时提供门户、协同OA产品的)的厂商一般来说实施的风险相对较小!

四、主流工作流厂商分析比较

本人选用了国内市场主流的工作流软件厂商:博汇数码、上海携创软件、东方易维、西安协同、炎黄动力、北京博皓科技等进行对比分析,从是否符合工作流标准,快速开发能力,集成能力,自动化测试能力,开放性,负载均衡能力,是否支持移动审批七个维度进行对比分析,帮助企业对工作流或BPM产品的选型提供参考。

厂商名称

符合工作流标准

快速开发能力

集成能力

自动化测试

开放性

负载均衡

支持移动审批

博汇数码

符合

不支持

一般

不支持

不支持

上海携创软件

符合

一般

不支持

一般

支持

不支持

东方易维

符合

不支持

一般

不支持

支持

西安协同

符合

不支持

一般

支持

不支持

炎黄动力

符合

不支持

不支持

支持

北京博皓科技

符合

支持

支持

支持

 总结:

1、通过以上分析,国内工作流产品基本遵循WFMC标准或其它工作流标准,但各个厂商的功能侧重点不一样。

2、快速开发能力主要从可视化流程模型设计、可视化表单设计、表单控件的丰富程度、逻辑封装能力、用户操作的便利性等方面进行比较分析,在这个维度上,西安协同和北京博皓科技表现突出,它们对流程元素进行了比较深度的封装、支持多种表单设计、控件丰富程度较高。

3、集成能力主要从与OA系统、SAP系统、ERP系统、CRM系统等业务系统的集成能力以及集成架构、业务对象组合、高可用性和高复用性等方面进行对比分析。国内厂商普通集成能力较弱,北京博皓科技在集成能力上表现突出,封装了对SAP、SharePoint等业务集成,支持业务对象重新组合,在高可用性和高复用性方面表现较好,其它厂商大多还停留在WebService的调用层面。

4、自动化测试,如果人工对流程进行测试是非常费时费力,而且流程一旦改动,又得从头做一遍,工作量巨大,是否有流程仿真功能是工作流软件选型的一个重要标准,在这个维度上,只有北京博皓科技一家符合。

5、在开放性方面,是否提供丰富和友好的二次开发接口、数据库及WEB程序的开放程度会直接影响到用户将来的IT投资回报,否则一有改动就必须严重依赖厂商,是工作流软件选型的一个重要标准。这方面,炎黄动力和北京博皓科技表现较好。

6、系统的性能毋庸置疑是影响到系统是否能够成功实施的一个重要因素,本人主要从是否支持负载均衡、是否能够归档、剥离时间较长的业务数据、架构的清晰程度等方面进行了对比分析。

7、移动办公是将来的一个大趋势,是否支持移动审批,既显示了厂商的技术前瞻性,也彰显了厂商的技术实力,即使用户暂时用不到移动审批,但也是考量工作流厂商的一个隐性维度。

五、工作流应用范围

工作流管理软件应用到实际工作中的应用广泛,具体有:

  • 在关键业务流程中,可以负责订单处理、报价处理、采购处理、合同审核、客户电话处理、供应链管理等工作;
  • 在行政管理上,可以提供出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单;
  • 在人事管理上,可以对员工培训安排、绩效考评、职位变动处理、员工档案信息等进行有效处理;
  • 在与财务相关方面,它能够处理付款请求、应收款、日常报销、出差报销、预算和计划申请等;
  • 在客户服务方面,它可以提供客户信息管理、客户投诉、请求处理、售后服务管理等方面的管理;
  • 在特殊服务方面,可以实施ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务。