真正的好处只有一个,但却是巨大的:
关注点分离。
因此,与其将流程协调逻辑嵌入到我们的系统中,不如将其变成外部配置。基本上是一张地图。您可以独立地更改它(更多),可以有多个进程,多个版本的进程,多个版本的多个进程同时运行,而这在任何体面的解决方案中都是开箱即用的。
从历史上看,SoC的概念赢得了很多次-从Unix原理“做一件事情,却做得很好”开始,一次又一次地被应用-就像拥有专用服务器组件(如ESB,不同的持久性系统,缓存,负载平衡)一样,监控,例如从HTML拆分CSS等。
您的业务流程及其流程规则通常与数据,UI“屏幕”或用户“层次结构”正交。因此,与系统的其他方面分开开发和更改它是非常有意义的。这就是BPM在1990年代初出现的前提。
从那时起,创建了许多工具和语言来支持这一概念,其中最著名的就是BPMN-一种用于创建直接映射到流程的“流程图”的图形语言。人们抱怨它庞大而笨拙(词汇中有100多个符号),并且提倡使用S-BPM之类的现代方法(只有5个基本符号),但当前的行业惯例是坚持使用BPMN或其派生词,子集或同级词。
您对BPMN感到不满意:
在这里,程序员似乎在行和框层中进行了大量工作,在我看来,这就像是一种非常糟糕的,非常基础的可视化编程语言。
但它还不错()背后有理论。2.0版从1.0的缺点中获得了一些很好的见解。
如果要走的那么远,为什么不只使用某种脚本语言呢?
命令式范式和脚本语言并非总是最好的答案。正如您可能在声明性语言(例如HTML,CSS,SQL,Drools或Nginx,Graddle和Maven,Puppet等内部语言)中看到的那样,所生成的代码比用“ 体面的语言,例如Java或C ++ ”。
至于您的另一点:
据我所知,这是可视化编程语言,带有条件和循环。
您是否研究了事件和触发器?BPMN是一种语言,您必须在使用前学习它,或者至少要熟悉它。
在后台,BPMN是XML,因此您可以手动编辑或生成。您可以对它们进行版本控制,因为XML是基于文本的。但是,仅具有可以转换为流程图的XML,听起来并不像它的傻瓜那样,这是正确的-为此编写自己的解析器或编辑器是一项艰巨而昂贵的任务,并且带来可疑的好处。
幸运的是,市场上已经有一些工具可以证明这一点。
Activiti是免费的,并且由于其初始价格(零),信息的可用性和谦虚性而在开发人员和业务所有者中都非常受欢迎。最后一点确实很独特,因为Activi仅专注于管理您的业务流程,而没有尝试将您与整包解决方案捆绑在一起。而且,它是开放的-因此您只需要了解Java和REST即可启动和运行它。缺点是客户端,集成和应用程序/业务逻辑以及整个体系结构留给开发人员,因此,如果您的开发团队很弱,请为失败做好准备。免费工具的总拥有成本可能高得惊人;)
频谱的另一面是Bega系统的统治者Pega(Pega PRPC)(根据Gartner和Forester的说法),其年龄似乎令人吃惊。这个和厨房一样的庞然大物甚至还具有CRM,OCR和(如果我没记错的话)语音识别功能,预测分析,业务规则管理和所见即所得UI编辑器的功能。不过,它的价格很高。这不仅要花很多钱,而且所有的开发工作都是在一个Web应用程序内完成的,这意味着您必须使用IE8浏览器(加上一些插件,再加上一些丑陋的技巧,例如使用Excel编辑数据表)。此外,还可以使用Web浏览器来进行Java,Javascript或HTML / CSS编辑-告别单元测试,IDE代码突出显示,重构以及您喜欢的所有编程玩具。
好的一面吗?您可以在一周内实现复杂的系统[ PDF,请参阅第22页]。是的,结果无法保证。
IBM有所最近(accoring给企业时间节奏)已经买了隆巴迪,并且现在提供非常有竞争力的解决方案(但那么你将不得不购买一切IBM,you'know)。Appian是年轻的供应商,具有有趣的见解和积极的反馈,但是它们的编写方式(除了可视化语言外,还增加了两种DSL语言)对我来说并不有吸引力。
还有其他参与者及其解决方案。他们大多数人简直太恐怖了。就像-当您简单地看着它们时,您的眼睛,大脑和心脏就会流血。因此,请相信自己的勇气,不要让开发人员和用户讨厌您。
结束语:
对于流程,BPM系统是相同的,对于图像,BPM系统是相同的。不要害怕它的视觉效果。不要让它做不适合它的工作(还记得完全在Photoshop中创建的网站,这些网站几乎无法编辑吗?)。保持简单,不要犯错误;)