精华内容
下载资源
问答
  • workflow是什么

    2014-03-05 14:09:26
    workflow是为了完成一些预定的目的,根据一组规则,而制定的一系列步骤。对于一个开发者来说,workflow则是将复杂的业务规则以及控制流程以图形化的方法声明出来,组成一个高度可视化的图形环境。 一、工作流分类 ...
    workflow是为了完成一些预定的目的,根据一组规则,而制定的一系列步骤。对于一个开发者来说,workflow则是将复杂的业务规则以及控制流程以图形化的方法声明出来,组成一个高度可视化的图形环境。
    一、工作流分类
    在WF中,工作流分为两种类型,序列式(Sequential)和状态机(State Machine)。
    序列式工作流将一系列待执行的步骤以一种预先描述好的次序描述出来。在这种工作流里,控制流程的是我们很熟悉的诸如if-else和while循环结构。这个工作流有着确定的起点与终点,我们不能随意跳转到中间的某个点上,唯一能做的只有从头开始。
    状态机工作流则并不定义固定的流程,它们定义一组状态,包括状态之间可能存在的转移。每个状态可以转移到一个或多个其它状态上去。执行这样的工作流不一定要从第一个状态开始。这就允许工作流被打断,然后根据需要恢复。在WF中,状态的转移是通过宿主应用程序引起的外部事件触发的,这就意味着工作流的控制完全是交由外界完成的。
      具体在设计时该选择哪一种工作流是一个很重要的问题。一般来说,判断的依据就在于控制工作流走向的重要选择是发生在工作流的内部还是外部,是否由用户进行控制。序列工作流在本质上是对工作流的路径建模,将路径信息都编码到了模型之中,因此适合于前一种情况;在某些时候,我们并不关心工作流的路径,我们只关心当前的工作流状态,并且有哪些可能的选择会跳转到某个另外的状态,这就是后一种情况,应该采用状态机工作流。




    二、创建工作流


    1. 在.NET Framework 3.0中,我们可以通过WF简化和增强开发。它不是一个独立的应用程序,而是一个能够在应用程序中启用workflow模型的设计。
     
    2.创建Activity:所有的activity都是直接或间接派生自System.Workflow.ComponentModel.Activity基类。MS提供了一组标准的activity供我们使用,但我们也可以随心所欲自己定义新的activity来。工作流本身实际上就是一种活动。活动是真正通用的WF构建块。一个能够寄宿其它活动的活动被称作复合活动(composite activity)。没有这种能力的活动就称为简单活动(simple activity)。


     
    ?  Custom Workflow Logic
    特指CodeActivity。利用它我们可以直接向工作流添加我们自己的业务逻辑。将CodeActivity添加到工作流后,我们就得到了一个处理ExecuteCode事件的句柄,并可以向其添加代码。
     
    ?  Flow Control
    顾名思义,控制工作流中数据流向的活动。包含了一些我们非常熟悉的编程结构,比如分支和循环。同时还有诸如并行、延时、中断、挂起等活动,它们以自己的方式来控制整个流程的进行。 
    ?  IfElseActivity和IfElseBranchActivity
    这个我们在前面的Calculator中已经看到了。利用它可以构建多选条件分支。这是一个复合活动,包含有两个或更多的IfElseBranchActivity,在运行时,只有一个确定的分支会被执行。
     
    IfElseBranchActivity包含了一个我们自己定义的条件,如同前面指出的,这个条件可以是代码形式定义的,也可以是规则定义的。一旦条件被评定为“真”,那么该条分支中包含的子活动就会被执行,其它分支就被华丽的54掉;评定为“假”的时候,它的下一条分支的条件将被评定。最终的分支不需要定义条件,只要前面的分支条件都不满足,它就会被视为if-elseif-else组合中的最后一个“else”。
     
    ?  WhileActivity
    当条件为真的时候,循环执行它的子活动。同样的,它的条件可以是代码形式也可以是规则形式。该条件是在进入子模块之前就判断的,也就是说初始条件若为false,那么它内部包含的活动不会被执行。
     
    ?  DelayActivity
    暂时中止工作流的执行一段时间。常被用来设定一段延时,等待外部事件。
     
    ?  SequenceActivity
    一个能够允许我们添加多个顺序执行的自活动的复合活动。可以看做是WPF中的“容器”,有些只能接受一个子活动的活动比如ReplicatorActivity、WhileActivity和ParallelActivity,可以用这种方法来添加“多个”子活动。
     
    ?  ParallelActivity
    允许我们计划两个或更多的子分支同时执行。
     
    ?  ReplicatorActivity
    此活动创建并执行单个子活动的多个副本。在运行时,它可以基于数据集的对象数目来创建子活动的多个实例。有了这个东东,开发者就可以采用数据驱动的数据流(data-driven workflow),其特点是子活动实例的数量只有在运行时才能确定。从这一点上说,它很像C#中的foreach语句。
     
    ?  ConditionedActivityGroup
    简称CAG,用来有条件地执行一系列子活动。每一个子活动都与一个WhenCondition进行关联,凡是满足WhenCondition的子活动都会被执行,而非if-else那样只能执行其一。
     
    ?  InvokeWorkflowActivity
    用来启动第二个工作流。第二个工作流是异步执行的,所以这个活动会在新工作流完成之前返回。
     
    ?  SuspendActivity
    停止当前工作流的执行,但并不是永久中断。常用在工作流出错但这个错误又是可以恢复的地方,工作流可以从断点重新启动。
     
    ?  TerminateActivity
    立即停止工作流实例的执行,并且是“终结”,不能再次恢复。
     
    ?  Statement Management
    这一类活动都是在状态机工作流中使用的。包括的活动被用来定义、初始化和完成一个状态,或是转移到另一个状态。
     
    ?  StateActivity
    代表一个单一的状态,也是状态机工作流的基础。StateActivity通常被添加进状态机工作流的顶级,但也可以塞进另一个StateActivity里。
     
    ?  SetStateActivity
    被用作转移状态。通过设置TargetStateName属性来指定新的状态。
     
    ?  StateInitializationActivity
    这是一个可选的活动,包含有当首次进入到一个状态时要执行的活动。一个StateActivity里最多只能定义一个。
     
    ?  StateFinalizationActivity
    与上面那个活动相反,它定义的是离开某个状态之前需要执行的业务。
     
    ?  Event Handling
    这一类活动与事件句柄相关,并且需要与接收这些事件的子活动一起工作。这里提到的活动本身并不实际接收这些事件,它们只是另一些事件驱动(event-driven)活动的容器。下面提到的活动解释都比较复杂,我暂时也搞不清楚,在这里仅仅列出名称,详情还请参阅MSDN。
     
    ?  ListenActivity和EventDrivenActivity
    ?  EventHandlersActivity和EventHandlingScopeActivity
     
    ?  Local Service Communication
    用来在一个工作流和一个本地服务之间进行通讯。
     
    ?  CallExternalMethodActivity
    ?  HandleExternalEventActivity
     
    ?  Rules
    一类用于联系工作流规则引擎的活动。特指PolicyActivity,可以允许我们定义一组规则,作用于工作流的字段或属性之上。
     
    ?  Web Services
    这一类活动使得我们的工作流可以与web服务进行交互。
     
    ?  InvokeWebServiceActivity
    ?  WebServiceInputActivity
    ?  WebServiceOutputActivity
    ?  WebServiceFaultActivity
     
    ?  Transactions, Compensation与Synchronization
    这一类活动可以是我们能够定义一个包括了多个活动的工作单元。同时也包括对变量的同步访问。Compensation的功能是对已经成功执行的行动进行undo。
     
    ?  TransactionScopeActivity
    ?  CompensatableTransactionScopeActivity和CompensatableSequenceActivity
    ?  CompensateActivity和CompensationHandlerActivity
    ?  SynchronizationScopeActivity
     
    ?  Exceptions和Error Handling
    这些活动与.NET异常协同工作。
     
    ?  ThrowActivity
    可以作为一个工作流步骤抛出一个.NET异常。与使用C#代码throw异常的结果是一样的。
     
    ?  FaultHandlerActivity和FaultHandlersActivity
    这两个活动用来捕捉和处理工作流内部的.NET异常。后者包含了前者对象的集合,是一个复合活动。
     
    ?  CancellationHandlerActivity
    是一个用来清除与复合活动联系的容器
    3.自定义活动
    1) 继承自Activity,每个自定义的活动都应该设计为独立的组件。




    2) 定义属性:用于输入、接受参数 
    public static DependencyProperty AccountIdProperty = DependencyProperty.Register("属性", typeof(int), typeof(Activity名));
    3) Execute实现自定义活动的逻辑
    override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)


    三、运行工作流


    1. WorkflowRuntime 引擎
    2. WorkflowInstance 实例
    3 .AutoResetEvent 用于线程处理,通知等待线程已经发生的事情


    private WorkflowRuntime _workflowRuntime;
        private AutoResetEvent _waitHandle = new AutoResetEvent(false);
    WorkflowInstance instance = kflowRuntime.CreateWorkflow(typeof(CalculatorWorkflow.Workflow1), wfArguments);
        instance.Start();
        // 等待处理完成
       _waitHandle.WaitOne();



    展开全文
  • 什么是 Workflow

    2021-02-11 10:01:57
    什么是工作流 工作流(Work Flow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题:为实现某个业务目标,...

    什么是工作流

    工作流(Work Flow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。我们可以将整个业务过程看作是一条河,其中流过的就是工作流。

    工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

    许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力

    工作流的适用行业

    消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。

    工作流的具体应用

    1.关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理

    2.行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。

    3.人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。

    4.财务相关类:付款请求、应收款处理、日常报销处理、出差报销预算和计划申请等。

    5.客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等管理等。

    6.特殊服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。

    工作流与重规划

    从逻辑上,对工作流的关注和研究可以看作是对业务过程重规划BPR)的一种深化。BPR的观点,要求我们将眼光投向实际业务进行的过程,但这个过程应当是什么样的,怎样分析、构造?工作流就是一个具体的、操作性的答案,它可以令我们从神秘的、难以预测和控制的“头脑风暴式”的“艺术的”业务过程创造,变成解析的、技术的、可控制和预测的工程化过程,如此,才真正体现出re-engineering中engineering的意义。

    工作流与BPR的概念,已经被几乎所有的研究者联系在一起研究和应用。在这个领域有一个非常活跃的组织,即国际工作流与重规划协会(Workflow And Reengineering International Association, WARIA)。

    工作流与企业工程

    无论从理论、方法上,还是对象、内容上,我们都有理由将“工作流”看作是企业工程的一部分。实际上,已有的关于工作流体系的描述,本身就是一个通用的业务模型框架。仅仅囿于工作流是不够的,必须对整个体系的目标及所有相关要素综合考虑——这正是企业工程

    [编辑]

    工作流与IT应用体系

    与以往已经被采用的企业IT应用体系,例如MRPIIERP相比,WFMS是一个相当重要的里程碑。从用户的角度,WFMS带来(或将要带来)的变化是极其强烈的,甚至可以形容为一种用户“梦想”的实现。

    在一些老的“模块化”的产品中,系统的设计通常是基于任务分割的,作业项目之间是分裂的。面向对象的技术,并不能直接解决这个的问题,相反,往往使系统变得更加混乱和琐碎。从操作上,典型地,我们必须不断地在层次结构的功能表(比如下拉菜单)或对象之间“进进退退”,或者在“神出鬼没”的对象以及相关菜单中捉迷藏。

    工作流管理系统是一个真正的“人-机”系统,用户是系统中的基本角色,是直接的任务分派对象,他或她可以直接看到电脑针对自己列出的“任务清单”,跟踪每一项任务的状态,或继续一项任务,而不必从一个模块退出,进入另一个模块,搜索相应任务的线索。前者是面向功能或对象的,而后者是直接面向用户的。这样,用户的任务分派和任务的完成状态,可以被最大程度地电脑化和受到控制。

    现在的典型工作流产品是客户-服务软件。而日益增长的重要途径是通过万维网界面,它可以令客户或远程的职员更好地参与。工作流的定义经常是借助于图形化工具,依照业务过程实例的情况定义相应工作的安排。

    展开全文
  • workflow 关注什么

    2009-11-06 14:20:00
    workflow 关注的问题是什么?其实答案很简单也很精确,简单来说workflow 关注的其实就是如何缩短流程闲置时间,从而提高企业的业务处理能力并使企业能够关注于真正对企业有意义的业务或者增值服务上。但从具体上来说...

     

    workflow 关注的问题是什么?

    其实答案很简单也很精确,简单来说workflow 关注的其实就是如何缩短流程闲置时间,从而提高企业的业务处理能力并使企业能够关注于真正对企业有意义的业务或者增值服务上。

    但从具体上来说工作流(workflow)解决方案与传统管理软件都是为注重解决企业应用层现存的问题而出现(例如提高企业的资源配置率或提高单一员工的生产效率)。

    我举个例子:在实际操作中,EXCEL 可以提高员工画表格的效率,财务软件可以规范财务人员的工作并提高帐目查询的效率,CRM 可以规范客户管理从而使客户资源掌握在公司手中而不是被一部分业务人员把持并提高客户响应时间,ERP 解决的是如何配置企业资源使企业的人力资源、财力资源和物资资源能够根据业务的需求实现最大化配置。

    然后ERP 关注的是企业的资源配置,却不可能解决资源传输过程中的损耗和降低传输(流程)的成本,EXCELCRM也同样具有局限性;同样workflow也不能完全解决传统管理软件所能解决的问题,例如对生产管理的MRP 系统所能解决的生产过程控制通过workflow很难实现。

    workflow却具备优越的集成性。即workflow可以整合企业的各种应用系统,使之成为一个完整的企业级应用,同时workflow可以根据企业的需要开发解决信息传递问题的流程以及帮助企业开发与现有应用系统的接口。实现流程闲置时间减少,提高效率。

    当然这里说的workflow不包括一些集成性低的传统workflow,主要是指当今比较主流的workflow,如国际有名的IMBSAP等,以及国内比较具备优越性的LiveFlowBPSmyApps等等。

     

    展开全文
  • 什么是workflow engine

    2008-08-06 14:46:43
    所谓工作流引擎workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一个系统最关键的部分不是系统的界面,也不是...
    所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、易维护性(模块化和结构化)和弹性(容易根据实际业务逻辑的变化作出程序上的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新业务逻辑等等)。 Workflow 引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变得容易出错(信息的路由错误、死循环等等)。 

    就好比一辆汽车,外表做得再漂亮,如果发动机有问题就只是一个摆设。应用系统的弹性就好比引擎转速方面的性能,加速到100 公里需要1 个小时(业务流程发生变动需要进行半年的程序修改)还能叫好车吗?引擎动不动就熄火(程序因为逻辑的问题陷入死循环)的车还敢开吗?

    工作流解决方案与传统管理软件的关系传统的管理软件注重解决企业应用层现存的问题(例如提高企业的资源配置率或提高单一员工的生产效率)。例如:EXCEL 可以提高员工画表格的效率、财务软件可以规范财务人员的工作并提高帐目查询的效率、CRM 可以规范客户管理从而使客户资源掌握在公司手中而不是被一部分业务人员把持并提高客户响应时间、ERP 解决的是如何配置企业资源:使企业的人力资源、财力资源和物资资源能够根据业务的需求实现最大化配置。 workflow 关注的是如何缩短流程闲置时间,从而提高企业的业务处理能力并使企业能够关注于真正对企业有意义的增值业务上。从建立企业神经系统的角度也许更能理解两者的区别。传统软件不能解决工作流的问题,例如ERP 关注的是企业的资源配置,但不可能解决资源传输过程中的损耗和降低传输(流程)的成本;同样workflow也不能完全解决传统管理软件所能解决的问题,例如对生产管理的MRP 系统所能解决的生产过程控制通过workflow很难实现。但一个好的传统软件如果希望能自动化地在整个企业中应用起来,必须有一个强大的逻辑层,用以解决信息传递的逻辑判断和自动流转,这个时候就需要workflow的平台。所以说: 1.workflow 和传统管理软件不是同一种软件,不具可比性; 2.workflow 对于已经有传统管理软件的企业的作用非常明显,可以籍此平台整合企业的各种应用系统,使之成为一个完整的企业级应用,也就是通常所说的EAI. 3. 具备workflow功能的管理软件(workflow与传统管理软件的结合)对于传统管理软件有绝对的优势;4.workflow可以根据企业的需要开发解决信息传递问题的流程以及帮助企业开发与现有应用系统的接口

    工作流自动化并不复杂因为下述几个原因,工作流自动化业界有" 适合处理复杂业务流程" 的名声。

    1.常规工作流自动化软件包及其部署相当昂贵。通常,伴随产品的是长时期的咨询关系。所以为了非常简单的业务流程购买和部署软件是被不被采纳的。这些软件通常只被用于复杂、关键和控制成本相对较高而工作流自动化带来的效益明显的量产型工作流应用。因此经销商和用户都会不自觉地关注于将复杂的业务问题自动化。 2. 处于类似原因,工作流研究人士首先会关注解决了哪些复杂的业务流程问题。

    而对于大多数案例而言,为解决简单工作流程问题部署自动化软件的成本显然是不经济的。这里遵循一条简单的道理:走之前必须先会爬,跑之前必须先会走。 3. 最后一条原因,也是"IT 业的尴尬".总经理对IT部门经理工作衡量的标准就是:能够解决复杂问题的能力。自然,IT经理就会不遗余力地解决那些复杂的问题,他们的方案通常也就复杂而且昂贵。

    所有这些目前都在改变。针对桌面电脑的应用方案快速发展以及工作流解决方案的发展使解决日常工作流程问题成为可能。费用不再昂贵,部署更为简便。事实上,企业越来越意识到工作流的重要性,同时在部署复杂关键的流程自动化之前,愿意从一些简单的流程入手积累经验。

    工作流会成为操作系统的一部分吗?

    有人认为工作流会成为操作系统平台(例如WINDOWS 平台)的一部分。我们的观点是,基于下述几个原因,在可预见的未来,工作流不会成为操作系统的一部分: 1. 扩展表格、文字处理程序和数据库存在了20多年,成了家喻户晓的名词。这些技术被广泛理解和应用,也相应形成了各自的标准和相关术语。然而因为很多原因,直到今天这些技术也没有成为操作系统的一部分。最重要的原因之一是用户需要差异和选择的自由。相比较而言,工作流自动化软件是较新的技术,也更有差异性、不易被广泛理解并且比这些技术更为先进。因为工作流程的差异性和复杂性,工作流自动化的用户需要更多的选择空间。

    2.财务软件包从电脑发明后就迅速普及了。这是实施、术语和规则被普遍接受的另一个领域。然而至今也没有哪种操作系统吹嘘集成了多少财务软件的功能。而工作流自动化软件比财务软件更为复杂和有差异性。 3. 操作系统提供商,例如微软和Sun ,不会为了使其系统具备工作流自动化的功能而大量改变他们现有的系统。他们有什么必要为工作流自动化软件投入开发和支持的成本呢? 4. 操作系统是为常规条件设计并使之最优化。正因如此,目前操作系统的开发成本几乎都要上亿美元。业务流程十分复杂并充满了例外情况,如在操作系统中内嵌工作流自动化程序会极大地增加开发成本和难度。因此,即便操作系统提供商决定做工作流软件,也会是巨额投入开发一套新的操作系统,而不是将工作流嵌入。

    事实上,今天的很多优秀的工作流解决方案集成了短信息、页面服务、目标管理、文件管理和其他一些操作系统才提供的服务。

    工作流自动化的主要成分工作流自动化如今成了管理的一句时髦话。市面上也有很多号称能激活工作流的自动化产品。只要他们的应用程序支持基本的E-mail功能,卖主就会随意地把" 激活工作流" 作为标签贴在产品上。然而,这类产品和真正工作流自动化软件之间的差别就如同写字版和Word之间的差别。我们相信,应用程序只有具备了下列主要特征,才能称其为工作流自动化解决方案:

    能够画出工作流程图,当然以图形化界面设计的为佳;能为每个步骤设计电子表格;能将外部应用程序结合为工作流自动化的一部分;能与电子表格及企业数据库相连接;能设计基于复杂业务规则的条件型路由的工作流程图,最好无须编程;能根据功能、用户名称或上下级关系按规则传递信息;能够监控工作流执行状况;能够对工作流进行调节;能够模拟并测试工作流的行为;工作流的应用必须支持多用户并具高度可靠性;工作流的应用必须支持内部网或英特网及跨多种平台。

    网友讨论工作流应该是一个中间件而不应该是一个完整的系统。工作流应该整合到其他系统中而不是单独使用。

    工作流要完成的核心功能有流程设计,流程执行,流程和线程的调度,任务的分派与通知,集成已有信息系统(很多人忘了)。

    工作流应该提供对组织机构,用户,权限管理,流程,任务的管理能力,但是对这些管理能力最基本实现方式是提供API ,而不是一个管理系统,即使把这些管理作为一个管理系统来实现(A ),也主要是用于演示,因为当工作流用于其它系统(B ),因为B 需要一个统一的管理界面,所以通常不会直接使用A.而表单设计,报表之类根本就是外围功能,是二次开发商的任务。

    我基本赞同wangtaoyy 的说法,再补充一点。我觉得工作流与其说是中间件,还不如说是一个应用整合和集成的框架。类似在j2ee规范下各产商开发的应用服务器,工作流也应当是在wfmc标准下开发出来的" 容器" ,只要是满足了标准的应用程序或组件都能够在这个" 容器" 中按照预定的规则被调度和执行。我认为理想情况下工作流系统不应该提供API 作二次开发,工作流的内部对基于工作流的应用程序应当是完全不透明的,工作流应当提供给开发者的是一个类似于J2EE那样的标准,一套编程模型和接口模型。开发者在这个模型下去实现那些接口,开发出应用组件,再利用工作流提供的管理器进行" 注册".总而言之,对开发者而言,工作流是黑箱,他需要做的事情是开发标准组件,在工作流提供的UI管理工具中配置业务流程,包括业务过程、资源、权限、时间、规则等等。

    1. j2ee 应用服务器也是中间件的一种。
    2. 工作流要做成j2ee哪样的标准还是比较困难的, j2ee 重点在于提供开发全新系统的能力,所以可以制定比较好的容器- 组件标准,而工作流的重点是整合已经存在的系统,要在这些各式各样的老系统上强加标准是不现实的。
    3.工作流应该提供api ,因为其他系统中的一些事件可能会启动一个流程,或者触发其他与流程相关的东西

    工作流分为两种类型,一种是嵌入式的,另一种是非嵌入式的。这在WFMC的文档中已经有所介绍,大家可以找找看一下。按照工作流管理联盟的文档,大家说的都没有什么错误,只是侧重点不同。wangtaoyy 的观点倾向于前者,而coffeewoo 的观点倾向于后者。

    我的看法并不是趋向于嵌入式工作流。我理解的工作流提供的api 并不是一般软件包的API ,而是一种服务方式的API ,类似于操作系统中的系统调用。

    我们在软件中大量使用了操作系统提供的系统调用API ,但是操作系统并不是嵌入到我们软件系统中的。我认为工作流系统与操作系统有很强的可比性,只是工作流层次更高。比如流程设计相当于编程,模型相当于程序,流程实例相当于进程,流程分支相当于线程,操作系统要对进程和线程进行调度,工作流引擎要对流程实例和分支进行调度,操作系统和工作流系统都应该对内存进行管理避免耗尽系统内存,操作系统提供系统调用API 而工作流引擎提供工作流API.何其相似。

    从功能的角度看:工作流系统的本职工作就是管理和控制业务流程,例如:流程实例的启动、停止;环节实例的启动、结束;任务的分配等等。从工作流系统的组成看:工作流系统应该包括流程引擎、流程定义工具、运行管理工具、api 系统。工作流系统应该该不包括表单定义、组织机构定义及其管理、权限管理、数据流管理等等。

    工作流系统虽然不包括上述功能,但是工作流系统一定会和上述功能发生交互关系,所以好的工作流产品并不是一个包办上述功能的产品,而是一个设计良好的能够和上述功能交互的系统。从和其他系统的关系看待工作流:如果站在基础业务平台的角度,那么,工作流系统、组织机构管理系统、表单自定义系统、权限管理系统、数据流管理系统、报表系统都是这个基础业务平台的服务。业务功能系统在运行的过程中会调用这些服务,这些服务之间本身也可能互相调用。例如:工作流服务和组织机构管理服务之间的关系就非常密切,尽管如此,如果认为工作流系统一定包含组织机构管理系统应该是不正确的。在oa系统中,表单自定义好像比较重要,而且流程常常需要引用表单上的数据,但是表单自定义绝对不是工作流系统的组成部分。流程在运行的过程中可能跨多个数据库系统,任务在流转的过程中需要“携带”大量的业务数据,但是这些也不是工作流要做的事情,完成这些工作的系统我称之为“数据流管理系统”。总之:从功能的角度,所有的功能都是必要的,但是从技术的角度,这些功能不可以做到一个“铁板一块”的所谓的“工作流”里面去。从技术发展的趋势看:工作流系统很可能发展成为一个类似关系型数据库管理系统的专职的系统。我那个工作流东东还在改进中,希望作出一个设计合理的(决对不是强行coding出来的),工程实用的东西出来
    展开全文
  • 传遍朋友圈的Workflow,到底是什么

    千次阅读 2017-03-24 14:42:01
    概述Workflow(工作流):指“业务过程的部分或整体在计算机应用环境下的自动化”。对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流主要解决的主要问题:为了...那Workflow究竟一款什么软件呢,为
  • ArcGIS Workflow Manager 企业工作流管理应用程序,为 ArcGIS 多用户地理数据库环境提供集成框架。它从多方面简化作业管理和追踪,并简化工作流,显著减少了实施所需的时间。Workflow Manager 为分配资源和追踪...
  • ArcGIS Workflow Manager 企业工作流管理应用程序,为 ArcGIS 多用户地理数据库环境提供集成框架。它从多方面简化作业管理和追踪,并简化工作流,显著减少了实施所需的时间。Workflow Manager 为分配资源和追踪...
  • 顾名思义,Reusable workflow就是可以重复利用的工作流。换句话说,其他的工作流就是不可重复利用的,不可思议吗?但是之前在MOSS 2007时代,在SharePoint ...其实没有什么特殊的,它能使用在列表上,以及一些内
  • Workflow,就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。  Workflow,就是工作流程的计算模型,即将工作流程中的工作如何前后...
  • 什么是工作流引擎(Workflow Engine

    千次阅读 2010-01-21 17:38:00
    什么是工作流引擎(Workflow Engine )- - 所谓工作流引擎workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。...
  • 什么是工作流引擎(Workflow Engine ) 所谓工作流引擎workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一个...
  • 什么是工作流引擎(Workflow Engine ) 所谓工作流引擎workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。例如开发一...
  • 【iOS】效率提升工具--Workflow

    千次阅读 2017-03-31 20:44:47
    workflow是什么?干嘛用的?workflow是iOS上一款工具App,workflow本意是工作流,里面内置了很多动作,动作是什么意思呢?比如说打开系统相机,这就是一个动作,分享,这也是一个动作,除了这些动作,workflow还有...
  • 我的Project里面用到了两个Workflow,但发现在画Workflow的时候,第一个状态共用的, 在Workflow1里面,Issue创建起来后,第一个状态Issue Review, 但在Workflow2里面,Issue创建起来后,第一个状态Open, ...
  • 什么是Activity组成Workflow的最小单位 可以自定义 可以简单动作,也可以组合Activity 分为顺序型和事件驱动型预定义的Activities可以: 控制流程 控制条件 处理事件 管理状态 通过Web Service或其他方式和外界...
  • Git workflow

    2017-06-14 13:02:00
    Git是什么 Git能干什么? Git用来做版本号控制,这就好比当初在小日本的公司,每次改动文件,都须要在文件第一页新增改动履历。具体记录改动内容,假设多人同一时候操作。你能够想象下维护...
  • 一场讲座下来给我明显的感觉的大部分的工程师对Windows Workflow Foundation并不很了解,有一位MVP问我说:“你提到的这些功能,我用写代码的方式都能够实现啊?为什么我需要用工作流?”  我相信,抱有这样的...
  • Workflow执行了多次,这个现象如果排除业务逻辑冲突,人为失误等原因,可能有的人遇到的并不多,但是笔者时不时还能遇到这种情况,所以在这里做个记录,也给遇到... Type=1的Workflow是你创建的Workflow,而Active...
  • 就像通常的工作流平台一样,WF也有几个目标,最突出也最重要的三个目标:为Windows系统提供一个通用的工作流基础平台,为多样的工作流应用系统提供一个框架,统一系统与人工工作流。这个的章节要验证每一个目标...
  • SharePoint Workflow 基础

    2010-02-01 17:43:00
    SharePoint Workflow 与Windows Workflow什么不同? ============================================= 首先, 需要注意的一个基本的重点: SharePoint workflow与windows workflow并不不同的实体. SharePoint ...
  • MOSS关于Workflow

    2019-09-28 03:58:23
    这篇VS2008介绍的不多,主要之后会发一个详细的VS2008,结合InfoPath 和SharePoint 2007的Demo(我比较懒,大家耐心等待,哈哈),看下去之前,大家必须对WorkFlow比较了解,我主要介绍SharePoint,所以WorkFlow的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 775
精华内容 310
关键字:

workflow是什么