工作流或不工作流程? [英] To Workflow or Not to Workflow?

查看:158
本文介绍了工作流或不工作流程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我负责的一个开发团队谁将会是即将开始一个重量轻保险理赔制度的发展。该系统涉及大量的手工任务和业务工作流程,我们正在使用的Windows Workflow(.NET 4.0)。

I am responsible for a team of developers who will are about to start development of a light weight insurance claims system. The system involves a lot of manual tasks and business workflows and we are looking at using Windows Workflow (.NET 4.0).

业务领域的一个示例如下:
保单持有呼叫联络中心提出索赔。此事件触发这些并行手动付诸行动,可能需要一个漫长的时间才能完成两个子任务;

An example of the business domain is as follows: A policy holder calls the contact centre to lodge a claim. This "event" fires two sub tasks which are manually actioned in parallel and may take a lengthy time to complete;


  1. 检查客户的欺诈行为 - 手动过程,由此操作者调用的各种信贷公司来检查和评价一个欺诈顾客的潜力。从这里的子任务可以输入多个子状态的(检查正在进行中,无法参照检查,顺利通过背景调查等)

  2. 发送项目维修中心 - 一个手动过程,其中,为此投保人提出的索赔项目被送到维修中心进行修复。从这里的子任务可以输入多个子状态(等待维修,在进步,修复,发布等)。一旦每个子任务的状态已经达到预定的状态(基于业务规则)
    中的权利要求才能继续进行。

在表面上看来,工作流确实是最好的技术选择;然而,我确实有使用WF 4.0几的担忧。

On the surface it seems that Workflow is indeed the best technology choice; however I do have a few concerns in using WF 4.0.


  1. 的技能 - 综观普通开发人员的技能我没有看到许多开发商谁知道或不知道的工作流程

  2. 可维护性 - 似乎在社区内为WF的支持很少4.0的项目,这加上缺乏技能筹集约可维护性担忧

  3. 进入壁垒 - 我有Windows工作流有一个陡峭的学习曲线的感觉,它并不总是那么容易拿起

  4. 新产品 - 工作流已为.NET 4.0被完全重写我看到产品的第一代产品,可能没有必要的稳定

  5. 声望 - 。工作流的透水版本并没有受到好评,被认为难以开发,并导致企业吸收差

  1. Skill set – Looking at the average developer skill set I do not see many developers who understand or know Workflow.
  2. Maintainability – There seems to be little support within the community for WF 4.0 projects and this coupled with the lack of skill set raise concerns around maintainability.
  3. Barrier to entry – I have a feeling that Windows Workflow has a steep learning curve and it’s not always that easy to pick up.
  4. New product – As Workflow has been completely rewritten for .NET 4.0 I see the product as a first generation product and may not have the necessary stability.
  5. Reputation – Pervious versions of Workflow were not well received, considered difficult to develop with and resulted in poor business uptake.

所以我的问题是,我们应该使用Windows工作流(WF)4.0这种情况还是有替代技术(即,的简单的状态机等),甚至更好的工作流引擎使用

So my question is should we use Windows Workflow (WF) 4.0 for this situation or is there an alternative technology (I.E., Simple State Machine, etc) or even a better workflow engine to use?

推荐答案

我做了几个WF4项目,所以让我们看看我是否可以添加到其他的答案任何有用的信息。

I have done several WF4 projects so lets see if I can add any useful info to the other answers.

从描述您的业务问题,它听起来就像是WF4一个很好的比赛,所以没有问题。

From the description of your business problem it sounds like WF4 is a good match, so no problems there.

关于您的问题,你是对的。基本上WF4是一个新产品,并缺少一些重要的功能,并有一些粗糙的边缘。有一个学习曲线,你就必须做一些不同的事情。最主要的一点是长期运行和系列化,这是后话了普通开发者不习惯的,需要一些思考,以得到正确的,因为我听到太多时候,人们有序列化的实体框架数据上下文的问题。

Regarding your concerns you are right. Basically WF4 is a new product and is lacking some important features and has some rough edges. There is a learning curve, you do have to do some things differently. The main point is long running and serialization, which is something the average developer is not used to and requires some thought to get right as I hear far too often that people have problems serializing an entities framework data context.

大多数使用在IIS托管工作流服务时间/ WAS是最好的途径做这些长时间运行的工作流程类型时。这使得不解决版本问题硬任一,只是有第一消息返回工作流版本和使每个随后的消息的一部分。下一步将WCF路由器中的路由之间的消息,以基于所述版本正确的端点。基本是从来没有改变现有的工作流程,总是创建一个新的。

Most of the time using workflow services hosted in IIS/WAS is the best route when doing these long running type of workflows. That makes solving the versioning problem not to hard either, just have the first message return the workflow version and make that a part of each subsequent message. Next put the WCF router in between that routes the message to the correct endpoint based on the version. The basic is never to change an existing workflow, always create a new one.

那么,什么是我劝你?
不采取一个未知的豪赌,和为贵未经证实,一项技术。做一个小的,非关键,一块使用WF4的应用。这样,如果它的工作原理可以扩展它,但如果它失败,您可以撷取出来,并与更传统的.NET代码替换它。这样,你得到真正的体验WF4而不必立足于二手信息的决定,你学习一个新的和强大的技术在这个过程中。如果可能的话采取WF4的课程,因为他们会为您节省大量的时间在这里起床速度(无耻的自我插头 )。

So what is my advise to you? Don't take a big gamble on a unknown, and for you unproven, piece of technology. Do a small, non critical, piece of the application using WF4. That way if it works you can expand on it but if it fails you can rip it out and replace it with more traditional .NET code. That way you get real experience with WF4 instead of having to base a decision on second hand information and you learn a new and powerful technology in the process. If possible take a course on WF4 as that will save you a lot of time in getting up to speed (shameless self plug here).

关于简单的状态机。我没有用它,但我的印象是它是为短期运行,在内存中,状态机下。一个WF4的主要好处是长时间运行的各个方面。

About the Simple State Machine. I have not used it but I was under the impression it was for short running, in memory, state machines. One of the main benefits of WF4 is the long running aspects.

这篇关于工作流或不工作流程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆