工作流专题workflow

[b]1 什么是工作流技术[/b]

[b]工作流(Workflow)[/b]
就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流管理系统(Workflow Management System, WfMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。
工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

[b]2 工作流的功能与好处[/b]
工作流的主要功能:
----工作流管理系统(WorkflowManagementSystem,WFMS)是定义、创建、执行工作流的系统。在最高层上,WFMS应能提供以下三个方面的功能支持:
 建造功能:对工作流过程及其组成活动定义和建模;
 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度;
 运行交互功能:指在工作流运行中,WFMS与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。
工作流管理系统带来的好处:
----由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WFMS的出现是必然的。它可以带来以下收益:
 改进和优化业务流程,提高业务工作效率;
 实现更好的业务过程控制,提高顾客服务质量;
 提高业务流程的柔性等。
[b]3 工作流系统的主要组成部分[/b]

3.1.过程定义工具
过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。
3.2过程定义
过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。
3.3.工作流执行子系统(WES)和工作流引擎
工作流执行子系统也称为(业务)过程执行环境,包括一个或多个工作流引擎。工作流引擎是WFMS的核心软件组元。它的功能包括:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口(API)调用应用程序;提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。
3.3.4.工作流控制数据
指被WES和工作流引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。
3.5.工作流相关数据
指与业务过程流相关的数据。WFMS使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。
3.6.工作表和工作表处理程序
工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。工作表处理程序完成的功能有:支持用户在工作表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中调用相应的应用程序等。
3.7.应用程序和应用数据
应用程序可以直接被WFMS调用或通过应用程序代理被间接调用。通过应用程序调用,WFMS部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WFMS的其他部件来说是不可见的。


[b]4 工作流管理系统的标准和产品[/b]

近年来,工作流技术得到长足的发展。1993年成立了工作流管理联盟(Workflow Management Coalition,WFMC)。此后,该组织颁布了一系列工作流产品标准,包括工作流参考模型、工作流术语表、工作流管理系统各部分间接口规格、工作流产品的互操作性标准等。这些举措加速了工作流技术的商品化。
现在,许多公司都基于这些标准推出了自己的工作流产品。工作流产品主要分为两大类:
一类是基础的工作流系统,提供引擎、设计器、相关接口等。应用系统的开发商可以基于此类系统开发具有工作流管理功能的应用软件。典型产品如ActionTechnologiesInc.的ActionWorkflow、IBM的FlowMark等。
 另一类是应用了工作流技术,包括内置较完整的工作流功能,但面向应用的应用级软件系统,这种系统是直接面向最终用户的流程化应用。同时,系统中还往往针对应用需要,集成了其他功能。典型产品如神州数码工作流软件EasyFlow,就是以工作流技术为核心的全面的企业办公自动化(OA)产品。
[b]5 工作流管理系统的应用[/b]

和其他的软件产品一样,用户可以引进成熟的工作流和群件产品,也可以自行开发适合自己业务的工作流系统,特别是基于Intranet的工作流应用。与Intranet技术相结合,工作流系统更具开放性,有更多的工具可供选用,且Browser/Server风格的界面简单易用,这也是当前工作流产品的发展方向。
另外值得注意的是,WFMS的引入是与管理思想和管理业务的转变密切相关的。一般来说,我们应把WFMS的引进视为改进或重组业务流程的机遇。WFMS可以和企业再造或规范化管理相结合。企业再造追求的是对企业的经营管理模式和生产作业程序进行彻底的革命性变革。规范化管理则是在管理经验的基础上对业务过程进行科学化、规范化研究,以建立一套完整的管理工作规范体系为目标。这种规范化一般会促进系统组织结构和运行的改善。
目前在国外,企业再造和工作流系统的关系较为人们所关注,然而,由于国情不同,我国多数企事业单位面临的主要管理问题是随意性大、运行不规范。除了少数企业外,大部分单位不需要、也不可能进行革命性的重组。因此,相对于企业再造理论,规范化管理在我国更现实、更可行,更适于和WFMS的引进相结合。
[b]6 工作流引擎的五大接口[/b]

工作流参考模型确定了工作流管理系统的基本架构。该架构是开发工作流软件时应当采纳的系统模型,当然,一个工作流管理系统也可以不遵循这个模型标准,或只实现这个模型的一部分,但事实证明,这个模型结构是目前最为合理的。
系统的核心部分是工作流引擎,引擎是驱动流程流动的主要部件,它负责解释工作流流程定义,创建并初始化流程实例,控制流程流动的路径,记录流程运行状态,挂起或唤醒流程,终止正在运行的流程,与其他引擎之间通讯等等工作。WfMC没有针对引擎的实现提供具体的标准,因为对引擎做过多的约束并没有多大的现实意义。

   一个工作流管理系统可以包含一个或多个引擎,并通过API向外部提供五个方面的功能服务,这些功能分别为:
6.1接口1-流程定义的导入导出
  许多不同厂商提供的工具可以进行工作流流程的分析、建模、描述和归档等工作。这些工具需要识别公共的流程交换格式,以支持在这些不同的产品之间传送工作流程流程定义。接口1便定义了这样的交换格式。此外,接口1还定义了设计环境与运行环境之间交换的规范,以使不同的建模工具产生的流程定义可以输入到不同的工作流产品的运行环境中。
   为了提供一个访问和描述工作流定义的公共方法,需要引入一个工作流元数据模型(meta-data Model),这个模型确定了流程定义中用到的一般的实体,这些实体都有不同的属性,不同厂商开发的工具可以根据公共的交换形式向工作流运行环境传送这些模型,传送可以通过API实现,也可以通过批量(Batch)传送实现。
元模型
   元模型(如上图所示)提供了流程定义交换中用到的基本的实体及其属性,这些都是工作流流程的组成部分,这些实体包括:
• 工作流流程定义
• 工作流流程活动
• 过渡信息(Transition Information)
• 工作流参与者
• 组织模型
• 工作流应用程序
• 工作流相关类型
• 工作流相关数据
• 系统和环境数据
• 数据类型和表达式
6.2 接口2-同客户端应用程序和工作列表处理程序之间的交互
工作流管理系统必须提供同用户之间交互的通道,以便用户参与到系统的运行中。接口2主要完成这方面的功能。
WfMC在关于接口2 的规范中定义了工作流管理系统必须提供的类型、数据结构、API和错误代码,并以C语言头文件的形式提供。接口2所提供的功能大致可以分为一下五个方面:
1、 会话的建立和与撤销;
2、 获取工作流流程定义及状态;
3、 工作流流程实例的操作,如创建、挂起、终止流程,获取和设置流程属性等;
4、 工作流活动实例的操作,如获取和设置活动的属性,改变活动的状态等;
5、 工作列表(worklist)及工作项(workitem)的操作,如获取工作列表,处理工作项等。
通过这些功能,用户可以完成与工作流管理系统之间交互的所有任务:登录系统、打开自己的工作列表、处理自己的工作任务、将完成的任务提交给系统、将自己的任务转交给其他用户等等。
具体的函数声明不再详述,可以到WfMC的网站(http://www.wfmc.org)去下载有关规范。
工作流系统在运行过程中有时需要调用外部应用程序,以完成系统不能完成的工作(比如,发送Email或传真,扫描文件等),或者与其他系统集成到一起。此时可以通过接口3来完成。
接口3的功能同接口2的功能大部分是相同的,因此,这两个接口有融合的趋势。接口3主要规定了调用外部应用程序的函数规范,以及外部应用程序返回数据的格式。

6.3接口3-软件工具和应用程序的调用
同接口2内容

6.4接口4-不同工作流管理系统之间的协同工作
  在企业级的工作流系统中,流程往往需要跨越多个服务器或系统,比如应用于跨国公司或大型集团公司的工作流系统经常会有这种的需求,此时就需要服务器或系统之间进行通讯,交换流程控制信息和流程定义等数据,以实现流程跨地域运行。WfMC在规范中以C函数的形式提供了这些控制的定义,其中包括以下几个方面的功能:
1、 创建流程实例;
2、 获取流程实例状态;
3、 获取和设置流程实例属性;
4、 启动或终止流程实例;
5、 改变流程实例的状态;
6、 改变流程实例的属性;
7、 更新流程实例。
  服务器或系统之间信息交换的格式有多种,例如:文件、数据库表、E-mail或直接通过网络传送的数据流等等。
6.5接口5-管理和监视功能
  此接口提供给用户管理和监控系统的运行状态、查看系统运行的历史记录的功能。WfMC在此接口的规范中定义了各种审计信息的数据格式,这些格式包括:
1. 流程实例(Process Instance)审计信息:包括创建、启动流程实例和子流程实例的审计数据;流程实例状态变化的审计数据;流程实例属性变化的审计数据;
2. 活动实例(Activity Instance)审计信息:包括活动实例状态变化的审计数据;活动实例属性变化的审计数据;
3. 工作项(Workitem)审计信息:包括工作项状态变化的审计数据;工作项分配合重新分配的审计数据;工作项属性变化的审计数据;
4. 远程操作审计信息:包括开始和停止会话(Session)的审计数据;远程创建流程实例和远程改变流程实例状态的审计数据;远程获取和设置流程实例属性的审计数据;会话管理的审计数据;
5. 流程定义审计信息;
6. 扩展的审计信息及专用的审计信息。
这些审计数据在系统运行时刻由系统自动记录在数据库或文件中,可通过系统提供的API进行统计和查询,或者通过系统工具导出到系统外部。
   另外,此接口还要提供系统管理与流程控制的功能,如:系统流程数据的备份和恢复,用户管理,流程管理等等。

  通过这五个接口,工作流管理系统可以同外部的软件工具进行交互,这些工具可以由同一厂商提供,也可以由不同的厂商提供,但前提是这些工具都必须遵循WfMC的规范。用户也可以有充分的选择空间来决定哪一厂商的产品,或者自己开发属于哪一个接口的工具。
这五个接口一般通过API的形式提供给用户或软件开发商,这些API称为WAPI(Workflow API),也有厂商将API封装成组件形式提供,以简化开发难度、降低成本并提高效率。
   可以用下面的图来表示这五个接口的作用:

[img]http://dl.iteye.com/upload/attachment/180565/af96f03b-7d60-34ac-a7f7-22bc20392603.gif[/img]



[b]7 浅谈企业工作流管理系统[/b]
企业生产经营活动是由各种业务流程交织在一起组成的流程因此无处不在。同时,业务流程和企业的生产经营息息相关。
流程固然重要,但许多流程隐含在日常的操作中,因而不被人们所重视,不能有效地进行管理。这些都使得企业不能很好地跟踪业务流程的执行。在市场竞争日趋激烈的时代,企业所处的商业环境也在悄然发生变化,客户需求瞬息万变,产品生命周期不断缩短,技术不断创新,企业要在这样一个竞争和变化的外部环境下、生存,必须随需应变,不断调整、优化企业的各种业务流程,对流程进行重构。利用信息技术可以加速企业流程重构,实现有效有序的管理和高度的灵活性。
7.1 IT和流程管理密不可分
  人们对于IT和企业管理的关系已经不再陌生。在企业信息化大潮下的今天,大多企业,特别是有一定规模的企业都进行了信息化建设,如销售系统、SCM、MRP、财务系统、办公自动化等。然而,这类系统往往局限于解决企业内部的具体事务问题,面向企业内部功能,而不是面向市场和面向客户的系统;其开发模式通常是将业务流程硬编码到应用系统的整体结构中,每次业务流程的修改都可能引起程序结构的大幅变动。其僵硬的体系结构增加系统复杂性,阻碍系统灵活性。对于最终用户来说,业务流程变更的置后严重地影响了市场的响应速度,失去了市场机会;但对于系统集成商和软件开发商来说,业务流程不断变更,使之更陷入系统开发和维护的泥沼中。
7.2 业务流程发动机
  我们迫切需要一种能够支持业务流程自动化(Business Process Automation,BPA)的软件工具来满足企业流程管理的需要。工作流管理系统正是顺应这一需求孕育而生,它是用于实现工作流建模、执行、监控、分析、度量和优化的基础中间件平台。工作流管理系统作为流程管理、实现工作流的关键基础设施,必须具有以下关键性功能:
  • 可视化的流程设计工具,加速过程建模;
  • 支持串行、并行、分支、汇合、循环、同步、子流程等流程逻辑结构,满足各类复杂流程建模需要;
  • 电子表单设计工具,快速实现活动内容展现;
  • 分布式工作流引擎,实现跨部门、跨企业、跨地理范围的多流程协作和流程自动化;
  • 强大的应用集成服务,完成工作流与“信息孤岛”状的企业已有应用之间的无缝集成与互操作;
  • 图形化的流程监控工具,即时动态监控、跟踪流程执行状态和相关数据;
  • 图形化的流程仿真、分析工具,对流程执行语法/语义检查,为优化流程提供依据。
7.3 拓展工作流应用空间
7.3.1企业信息系统的开发平台
  当前企业信息管理系统从最初的基于文件系统的应用,发展到现在的基于数据库系统的应用,在企业界得到了普遍的认可,许多企业基于数据库管理系统开发了自己的企业应用系统,许多专业公司也为广大用户开发了一系列成熟的数据库应用系统,如ERP、SCM、CRM、PDM、CPC(企业协作环境)等等。虽然这些数据库应用系统得到了一定的应用,但是对于大型的管理系统如ERP系统却鲜有实施成功的案例。分析这些失败的案例,笔者认为,除了企业计算机应用水平、管理水平的限制之外,这些计算机应用系统设计存在固有的缺陷,也直接导致了这些基于数据库的信息系统应用的失败。信息管理系统是信息收集、存储、处理、流转、发布的过程,数据库管理系统适于信息的收集、存储和检索,而复杂信息管理系统的大量工作都是信息的处理、流转和发布的过程,数据库管理系统对于信息的处理、流转和发布却显得力不从心。
  为了解决以上问题,应用系统不是单单基于数据库管理系统,而是基于DBMS、工作流管理系统和通用报表系统组成的集成开发平台上。DBMS负责信息的存储和检索,工作流管理系统负责信息的流转,通用报表系统负责信息发布形式的表示和信息的收集,应用系统负责信息的处理,这种模块化的体系结构使信息的收集、存储、处理、流转、发布相分离,既保证了系统的可靠性,又保证了系统的柔性和扩展性。
  当前工作流管理系统在许多企业信息系统已得到了一定的应用,典型应用如:图像处理领域、文档管理系统、产品数据管理系统、群件系统、电子商务领域、ERP系统等。

工作流结构图
7.3.2企业流程自动化的应用平台
  工作流管理系统最直接的用途就是和企业业务流程重构(Business Process Reengineering,BPR)技术相结合管理企业的各种流程,实现企业流程的自动化。BPR是对企业过程中的核心流程进行根本的重思考和彻底的重设计,以便在现有衡量企业表现的关键如成本、品质、服务和速度等方面获得戏剧化的改善。许多企业对其流程进行了重组,取得了巨大的效果,例如,IBM信贷公司通过实施流程重组,把为顾客提供融资服务的周期减少了90%(由原来的7天压缩为4个小时);柯达公司对新产品开发实施流程重组,结果把35毫米焦距一次性照相机从概念设计到生产所需要的开发时间缩短了50%,从原来的38周降低到19周。
  工作流管理系统则提供了流程自动执行、流程统计分析、实例实时监控和跟踪等功能的一系列软件工具集,一方面实现了流程在计算机上的自动处理,大大缩短了流程的生命周期,提高了企业的工作和生产效率;另一方面,又可以使用户方便地分析企业业务流程,找出不合理之处,快速给出流程重组的方案。因此,工作流是业务流程重构技术的实现和延伸。
7.3.3企业应用系统的集成平台
  由于企业信息化过程是一个循序渐进的过程,导致企业存在许多老的应用系统。加上企业常常根据自己的需要来选择适合自己的应用系统,企业间应用系统的差别更是巨大,企业内部和企业之间各个应用系统不能进行有效的信息交换,企业内部和企业间存在许多“信息孤岛”。为了消除孤岛,人们提出了许多信息集成框架,如基于XML的信息集成框架、基于STEP标准的工程信息集成框架,纵观这些技术我们认为,它们多局限于静态信息的交换格式的定义,而对于各个应用系统间相互协作共同完成某项任务的情形却考虑较少,这种情况下需要多个应用系统按照结构化或非结构化流程来协同工作,在任务的不同时间激活不同的应用系统,并为应用系统传递相应的参数,而工作流管理系统正满足了这一要求。工作流管理系统可以按照流程的定义,在适当的时间激活相应的应用系统,传递给应用系统相应的参数,获取应用系统的处理结果,把其传递到下一应用,从而实现应用系统的集成。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值