BPMS还是简单的编程?

时间:2009-12-22 15:17:31

标签: ide bpm

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

业务流程管理系统(BPMS)或只是您最喜欢的IDE,其中包含所需的工具和框架(例如报告工具)?

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

行。也许我应该更具体一点......我了解了一个特定的BPMS,它可以通过配置规则轻松实现业务流程。但对于我作为开发人员来说,很难使用该系统。我想处理我可以重构的文本文件,我希望能够为我必须做的工作选择合适的技术或框架。而是系统强迫我配置。

我可以使用java进行规则,但即使这样,我也必须坚持使用系统编辑器而不使用intellisense等。

所以这引出了我自己问题的答案 - 我想使用我习惯的工具,而不是必须学习如何使用BPMS(至少我知道的那个)因为它限制了我更多比它有帮助。我所知道的BPMS是一个很难逃脱的框架!在这个时候,我更喜欢像Grail这样的框架而不是我所知道的任何BPMS。

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

4 个答案:

答案 0 :(得分:11)

根据我的经验,BPMS系统提供的开发环境是三流的,非生产性的,并且实际上迫使您难以编写维护,设计不良的代码(由于它们的局限性)。几乎所有我熟悉的BPMS系统提供的“功能”(UI,集成等)(该公司以其数据库命名的那个)都不值得我们付出的钱。

如果您被迫使用BPMS,作为开发人员,我的建议是在传统的开发环境中构建尽可能多的应用程序,例如Java或.Net,在BPMS环境本身尽可能少地构建,并整合两者。 BPMS中唯一应该做的就是使业务流程有效的最低限度。

答案 1 :(得分:8)

过去我和Biztalk合作过,最近和JBPM合作过。由于以下原因,我的观点偏向于BPM:

  1. 陡峭的学习曲线:为了使流程有效,我必须了解系统和编辑器的工作原理。开发人员很难理解系统,更不用说业务用户了。拖放和可视化表示是一个很棒的演示工具。这无疑给管理者留下了深刻的印象(他们最终为此付出了代价),但开发人员的生产力却随之下降。

  2. 非开发人员更改工作流程:我没有看到一个BPM解决方案完美无瑕地完成任务。虽然它看起来不像代码,但右键单击该框,您必须放置一些代码,否则它将不起作用。所以你肯定需要一个开发人员去做。最好的部分是它既不是开发人员友好的,也不是商业用户友好的,只是演示用户友好。

  3. 可测性和重构:测试驱动BPMS几乎是不可能的。你确实有广告的“单元测试框架”,但大多数都是黑客并且很难使用。最近我尝试了JBPM一个;我最终编写了大量的胶水代码和虚假的工作流程处理程序,以使其工作。对我而言,这笔交易的重点是重构。如果业务从根本上改变了对业务流程应该如何看待的想法,那么祝好运重新安排盒子,因为重新安排它们将无法工作,所有绑定到盒子的变量也需要重新安排。我更喜欢IDE和测试的强大功能来重构我的业务流程。

  4. 如果您的应用程序具有工作流程,则可以尝试工作流程库(具有或不具有持久状态)。它仍将管理您的工作流程,而不会出现BPM带来的所有膨胀。如果业务用户需要了解代码,那么让业务部门准备好流程图并将其转换为良好的域驱动代码。使用黄瓜风格验收测试将开发人员和业务结合在一起。 BPM只是试图做太多事情并最终做出所有这些事情的事情。

答案 2 :(得分:7)

不确定您的具体要求,但BPM与普通编程的选择将取决于要求。 “业务流程”在软件工程中是一个相对含糊的术语。

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

  • 规则的复杂性 - 您的流程中包含的决策/规则是否简单,复杂,可配置,硬编码?
  • 流程的波动性 - 您的流程发生变化的频率如何?谁应该能够做出改变?
  • 集成需求 - 您的流程是使用多个异构服务实现的,还是全部使用相同的语言实现?
  • synchronous / asynchrounous - 您的流程是否“长时间运行”,需要处理异步操作?
  • 人工任务 - 您的流程是否涉及人工干预,任务是根据他们的角色/职责分配/路由给人员的?
  • 监控流程 - 您要对正在执行的现有流程实例进行哪些控制?您是否需要审核行动等?
  • 错误处理 - 根据以前的观点,您打算如何处理错误或重试错误的流程执行?

根据这些问题的答案,您可能会发现您的流程更接近simple state图表,其中包含一些可以按顺序执行的操作和决策,或者您可能会意识到您需要更多内容详细阐述,并且你不想重新实现所有这些。

普通编程完整的BPM解决方案之间(例如Oracle BPM suite,其中包含BPELrule engine等。 ),有中间解决方案,例如jBPMWindows Workflow Foundation,可能还有很多其他解决方案。这些中间解决方案通常是很好的权衡。

答案 3 :(得分:4)

BPMS--很多常见的商业案例,用例已经实施。所以你只需要知道如何使用它。对于常见的工作流程,您甚至不需要编写一行代码,但大多数情况下您必须编写一些脚本来涵盖尚未实现的内容。

简单编程 - 只需使用IDE来破解代码。积极的一面:更多的控制。否定?很多时候都花在重写样板代码上。你必须维护它们。

简而言之,我更喜欢业务流程管理系统。我建议的是ProcessMaker。它具有直观的流程设计器,允许您通过拖放设计工作流程。您始终可以编写trigger来扩展流程功能。它也是开源的。