Architecture 我不知道';无法获取工作流、工作流自动化或工作流编排

Architecture 我不知道';无法获取工作流、工作流自动化或工作流编排,architecture,workflow,activiti,camunda,cadence-workflow,Architecture,Workflow,Activiti,Camunda,Cadence Workflow,为什么我们需要Uber的Cadence、Camunda或Activiti等特殊软件?如果它只是一系列的任务,那么我们为什么不能编写代码呢?我试着去读卡蒙达和卡登斯的文件,但就是没法进去。我的公司想使用。考虑过它的高级开发人员似乎无法/不会解释他为什么或在哪里使用它 我发现他们设置工作流的代码/方式非常不直观。谁来帮忙 该项目是使用Java和Spring Boot开发的。您所说的“编写代码”是什么意思?好,让我们看看下面的代码: String r1 = task1(someArg); String

为什么我们需要Uber的Cadence、Camunda或Activiti等特殊软件?如果它只是一系列的任务,那么我们为什么不能编写代码呢?我试着去读卡蒙达和卡登斯的文件,但就是没法进去。我的公司想使用。考虑过它的高级开发人员似乎无法/不会解释他为什么或在哪里使用它

我发现他们设置工作流的代码/方式非常不直观。谁来帮忙

该项目是使用Java和Spring Boot开发的。

您所说的“编写代码”是什么意思?好,让我们看看下面的代码:

String r1 = task1(someArg);
String r2 = task2(r1);
if (r2.equals("foo")) {
   sleep(Duration.ofHours(5));
   task3(r2);
} else {
   task4(r2);
}
现在开始“编写代码”,使其具有可伸缩性和容错性(例如,在执行task2时防止流程故障),并对任何这些任务实现的长时间停机具有鲁棒性。我敢打赌,你的代码将包含大量的回调和数据库调用


允许编写这样的代码,并使其具有容错性,无需进行任何大的修改。

回答这个问题可能需要一本书。几个方面:

  • 业务与IT之间的通信
    您不能向业务显示代码,但人们理解BPMN图。至少基本的符号集是相当直观的(或) . 从哪里开始向业务分析师解释编码工作流的逻辑?您如何将有关业务规则的反馈转化为代码?
    如果需求没有很好地转化为目标系统,那么您将得到额外的迭代和工作。BPMN图可以由流程引擎进行解释,因此在与业务部门讨论的操作流程和执行的流程之间不存在不匹配

  • 灵活性/关注点分离
    流程模型反映业务逻辑,并允许您将其与代码分离。通过不将其隐藏在代码中,业务逻辑变得更容易理解(见上一段)和更改。它也可以独立进行版本控制。业务规则、流程逻辑和其他(如集成)代码的生命周期通常非常不同。更快地更改IT系统意味着提高业务敏捷性

  • 透明度
    工作流引擎ootb监视状态并收集所有(通常是必需的)审核数据。我们在具体的流程执行中处于什么位置?为什么没有进展?谁执行了哪一步,何时执行?花了多长时间?哪些数据已更改?
    根据这些数据,您可以生成报告(过去12个月内银行开户流程的平均处理时间?)和分析(特定情况下失去客户的风险?)

  • 必须编程的标准化功能
    你会开发自己的数据库吗?不,那你为什么要开发自己的工作流管理? 状态管理、工作分配(用户、角色、组)、任务和数据的权限概念、审核信息记录、错误处理、线程管理、重试、标准报告等

我可以继续,但这会给你一个想法。进一步案文可以是: