Activiti 工作流系统独立运行并与多个业务系统进行交互,有什么比较好的解决方案?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个有点SAAS模式了,把Activiti作为一个流程中心对外通过接口提供服务,Activiti有租户的概念,不同的系统数据虽然保存在一个DB中但是有一个标示是用来区分各个租户的;Activiti与业务系统的交互可以分为两种情况:嵌入式、平台式。
嵌入式的交互比较容易,可以在流程中配置某个活动的监听器(流程启动、流程结束、任务创建、任务完成等),监听器可以执行一个Java类或者执行一个Bean(实现了Activiti的接口),当触发时会调用相关的业务功能。
如果把Activiti作为一个通用的流程中心的话,不能像嵌入式一样直接执行一个Java类,这是就需要使用网络协议的方式调用业务系统,比如每一个系统是一个租户,在流程中心为租户配置一个回调URL,前提是各个业务开发人员在设计流程文件时配置一个平台提供的监听处理器并设置传递的参数。