在实现业务流程时,您更喜欢什么(从开发人员的角度来看)?

业务流程管理系统 (BPMS) 还是您最喜欢的带有所需工具和框架(例如报告工具)的 IDE?

从您的角度来看,与具有您个人工具和框架的 IDE 相比,BPMS 的最大好处是什么?

好的。也许我应该更具体一点...我了解了一种特定的 BPMS,它应该可以通过配置规则轻松实现业务流程。但对于我作为一名开发人员来说,使用该系统很难。我希望使用可以重构的文本文件,并且希望能够为我必须做的工作选择正确的技术或框架。相反,系统强制我进行配置。

有一些规则可以让我使用java,但即便如此,我也必须坚持使用没有智能感知等的系统编辑器。

因此,这让我找到了自己问题的答案 - 我想使用我习惯的工具,而不是必须学习如何使用 BPMS(至少是我所知道的),因为它对我的限制大于帮助。我所知道的BPMS是一个很难摆脱的框架!目前,我更喜欢像 Grail 这样的框架,而不是我所知道的任何 BPMS。

所以也许更具体的问题是:您是否有同样的感觉,或者是否有 BPMS 支持您成为一名开发人员并像开发人员一样思考,或者它们中的大多数会迫使您以不同的方式完成工作?

有帮助吗?

解决方案

不确定你到底问什么,但选择 BPM 与 BPM简单的编程将取决于需求。“业务流程”是软件工程中一个相对模糊的术语。

以下是评估您的需求的一些标准:

  • 规则的复杂性 - 您的流程中体现的决策/规则是简单、复杂、可配置还是硬编码?
  • 过程的波动性 - 您的流程变更的频率如何?谁应该能够做出改变?
  • 整合需要 - 您的流程是使用多个异构服务实现的,还是全部使用同一种语言实现?
  • 同步/异步 - 您的流程是否“长时间运行”并需要处理异步操作?
  • 人工任务 - 您的流程是否涉及人机交互,根据角色/职责将任务分配/路由给人员?
  • 过程监控 - 您希望对正在执行的现有流程实例进行何种程度的控制?您是否需要审核操作等??
  • 错误处理 - 根据前面的几点,您计划如何处理错误或重试错误的流程执行?

根据这些问题的答案,您可能会意识到您的流程更接近于 简单状态 图表中包含一些可以按顺序执行的操作和决策,或者您可能会意识到您需要更详细的内容,并且您不想自己重新实现所有内容。

之间 简单的编程 和一个 成熟的 BPM 解决方案 (例如。 Oracle BPM 套件 其中包含 BPEL, 规则引擎, 等),有 中间解决方案 例如 jBPM 或者 Windows 工作流基础 可能还有很多其他人。这些中间解决方案通常是很好的权衡。

其他提示

在我的经验,通过BPMS系统提供的开发环境是三流的,非生产性的,并且实际上强迫你写难以维持,设计不好的代码(由于其局限性)。几乎所有由BPMS系统我熟悉(一个由该公司命名为它的数据库销售)提供的“功能”(UI,集成等),不值得我们付出的钱。

如果你不得不使用BPMS,作为一个开发者,我的建议是建立尽可能多的在传统的开发环境,你的应用程序,如Java或.Net,打造尽量少在BPMS环境本身,并集成两个。应在BPMS去的唯一的东西是最低,使业务流程的工作。

我过去曾与 Biztalk 合作过,最近又与 JBPM 合作过。我对 BPM 的看法存在偏见,原因如下:

  1. 陡峭的学习曲线:为了使流程正常运行,我必须了解系统和编辑器的工作原理。对于开发人员来说,理解这个系统已经够困难的了,更不用说业务用户了。拖放和可视化表示是一个很棒的演示工具。它确实给经理们留下了深刻的印象(他们最终为此付出了代价),但开发人员的生产力却下降了。

  2. 非开发人员改变工作流程:我还没有见过任何一种 BPM 解决方案能够完美地做到这一点。虽然它看起来不像代码,但右键单击该框,您必须输入一些代码,否则它将无法工作。所以你肯定需要一个开发人员来做这件事。最好的部分是它既不适合开发人员,也不适合商业用户,而只是演示用户友好。

  3. 可测试性和重构:试驾 BPMS 实际上是不可能的。您确实宣传了“单元测试框架”,但其中大多数都是黑客行为并且难以使用。最近我尝试了JBPM;我最终编写了大量粘合代码和伪造的工作流程处理程序以使其正常工作。但对我来说,最大的问题是重构。如果业务从根本上改变了对业务流程应该如何呈现的想法,那么重新排列盒子就祝你好运了,因为仅仅重新排列它们是行不通的,绑定到盒子的所有变量也需要重新排列。我更喜欢 IDE 和测试的强大功能来重构我的业务流程。

如果您的应用程序有工作流,那么您可以尝试工作流库(带或不带持久状态)。它仍然可以管理您的工作流程,而不会带来 BPM 带来的臃肿。如果业务用户需要理解代码,那么就让业务准备好的流程图并将其转化为好的领域驱动代码。使用黄瓜风格的验收测试将开发人员和业务人员结合在一起。BPM 就是试图做太多事情,最终却把所有这些事情都做得很糟糕。

BPMS--很多常见的商业案例,用例都已经实现了。所以,你只需要知道如何使用它。对于一般的工作流程,你甚至都不需要编写一行代码,但主要是你必须写一些脚本来掩盖事情都还没有实现。

平原programming--只是使用IDE破解出码。积极的一面:更多的控制。负?很多时候,都花在重写样板代码。你必须维护。

所以,简单地说,我宁愿一个业务流程管理系统。一,我会建议是 ProcessMaker 。它具有直观的流程设计,使您可以拖放设计工作流程。而你总是可以写触发延长过程的功能。它的开源以及

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top