Architecture 您如何知道何时需要BPM解决方案?

Architecture 您如何知道何时需要BPM解决方案?,architecture,workflow,business-process-management,Architecture,Workflow,Business Process Management,我的客户正在寻找业务流程管理(BPM)解决方案。他们需要的是简单的文件传送和审批系统。实施BPM系统的驱动因素是什么?与工作流工具或自定义开发相比,开发人员建议实施BPM解决方案的阈值是多少 jBPM什么时候合适?应用程序内置的状态机何时适合?应该存在哪些问题决定您需要采用类似于jBPM的解决方案 我正在寻找一些现实世界中的例子,“我们试图自己构建解决方案,但最终使用了AquaLogic/jBPM/Lombardi,因为。”。请填空。 < P>也许问几个问题有帮助。 过程会改变吗? 流程的旧版本

我的客户正在寻找业务流程管理(BPM)解决方案。他们需要的是简单的文件传送和审批系统。实施BPM系统的驱动因素是什么?与工作流工具或自定义开发相比,开发人员建议实施BPM解决方案的阈值是多少

jBPM什么时候合适?应用程序内置的状态机何时适合?应该存在哪些问题决定您需要采用类似于jBPM的解决方案


我正在寻找一些现实世界中的例子,“我们试图自己构建解决方案,但最终使用了AquaLogic/jBPM/Lombardi,因为”。请填空。

< P>也许问几个问题有帮助。

过程会改变吗? 流程的旧版本会继续存在,而流程的新版本会存在吗? 是否应测量流程(和每个步骤)的运行时间

它是关于业务流程(协调多个资源的状态)还是资源生命周期(仅限于单个文档/资源的状态)?

抱歉,如果这不是一个很好的答案。

BPM Acid测试(摘自Michael Havey的《基本业务流程建模》,由O'Reilly出版)

。。。BPM仅适用于 具有本质意义的应用 指状态或过程,也就是说, 应用程序 以过程为导向。申请书 如果是,则通过BPM acid测试 合法地以过程为导向。这个 旅行社申请 例如,通过测试是因为 最能理解的是 行程和时间完全确定了 到目前为止,行程有多少次 得到。其他典型特征 面向过程的应用程序的设计 包括以下内容:

  • 长跑-
从头到尾,这个过程 跨越小时、天、周、月或 更多

  • 持续状态-
因为这个过程是长期的,它的 状态被持久化到数据库,因此 它比托管它的服务器更持久

  • 暴躁,大部分时间都在睡觉-
这个过程花费了大部分时间 睡着了,等待下一个 要发生的触发事件,在 当它醒来并执行 一连串的活动

  • 系统或人类通信的编排-
该过程负责 管理和协调 各种系统或设备的通信 人类演员

。。。例如,在自动化系统中 出纳机,允许用户查询 他们的账户余额,提取现金, 存款支票和现金,并支付账单 -任何过程的感觉都是短暂的、无关紧要的;自动取款机是一种在线取款机 事务处理器,而不是 面向过程的应用


最终,所有处理业务相关信息处理的业务系统都是BPM或工作流系统。任何企业的信息处理都可以用涉及角色和活动的工作流或“业务流程”来描述

这些业务活动通常用Java、C#或其他编程语言描述,这一事实基本上只是自动化的结果,而没有足够成熟的技术来规定和描述带有自动代理的业务流程

重点一直放在增长、上市时间等方面,而计算机化是在没有适当考虑长期维护和灵活性的情况下进行的。现在代码中99%的内容不应该是

相比之下,实时控制系统、视频游戏、高性能计算、预测、商业智能和数学分析都是不适合图形化工作流描述的问题的例子。这些都应该由计算机来完成,并由计算机专家来维护


业务流程应由业务运营专家规定、描述和可读。随着实现这一点的技术(工作流系统)变得更好,灵活性的提高将越来越被认可,随着世界经济不再强调“增长”,灵活性也将越来越被广泛接受。我写了一个工作流引擎,因为我的雇主想拥有以jBPM为模型的IP。现在,您使用这样一个工具,而不是创建自己的有限状态机的原因是,在不改变持久性的情况下适应变化,并支持工作流过程的边缘情况,我将对此进行解释

适应变化而不改变持久性 您典型的(或者更好地称之为“幼稚的”)有限状态机实现的特点是一组数据库表与所管理的数据及其流程紧密耦合。也许有一种方法可以保存过去的版本,并跟踪谁在过程中采取了什么行动。当遇到问题时,数据和流程结构会发生变化。然后,需要修改这些紧密耦合的表,以反映新的结构,并且可能不与旧的表向后兼容

工作流引擎通过两种方式克服了这一挑战:使用序列化来表示数据和流程,以及抽象集成点,特别是安全性。序列化方面意味着数据和进程可以在系统中一起移动。这允许相同类型的数据实例遵循完全不同的流程,直到流程可以在运行时通过添加新的状态(例如实例)进行更改为止。所有这些都不需要更改底层存储

集成点是将算法注入流程并与身份验证存储(即必须采取行动的用户)建立联系的手段。注入的算法可能包括确定状态是否已完成,而身份验证存储示例是LDAP

现在,取舍是困难的搜索。例如,因为数据是序列化的,所以通常