外部系统整合BPM工作流的方案问题(技术交流)

背景:使用IBM BPM开发了OA系统,现在有一个外部系统A,需要开发工作流,工作流部分想采用BPM平台来实现,方便流程的统一管理。

问题:如何使用BPM平台

初步考虑的方案如下:

方案一:A系统保存自己的业务数据和表单,bpm实现工作流,A系统通过rest接口调用bpm的工作流引擎实现流转,bpm只是提供流程引擎,负责工作流程的流转和控制,不保存任何业务数据和表单。即A系统每次调用接口,获取到的是流程的流转及状态等信息。

方案二:bpm实现工作流,A系统调用bpm提供的rest接口启动流程,并传入业务数据,bpm实现工作流程流转和控制之外,也保存业务数据。即A系统每次调用接口,除了获取流程的流转和状态信息之后,也交互业务数据的信息。

两个方案哪个更合理?各位大神是如何实施的,是否有其他方案。请赐教!
参与63

26同行回答

jmcai1001jmcai1001研发工程师gf
回复 2# snakeaiyu 谢谢,该建议非常好!我的理解是,该建议方案可以看成是方案一的优化,业务数据、表单、处理逻辑全部放在系统A,bpm保存业务数据的ID,作为相关处理依据。这个方案有个好处就是,bpm的开发团队,不用过于介入系统A的开发团队,系统A的开发团队对业务的熟练也比BPM团队强...显示全部
回复 2# snakeaiyu

谢谢,该建议非常好!
我的理解是,该建议方案可以看成是方案一的优化,业务数据、表单、处理逻辑全部放在系统A,bpm保存业务数据的ID,作为相关处理依据。这个方案有个好处就是,bpm的开发团队,不用过于介入系统A的开发团队,系统A的开发团队对业务的熟练也比BPM团队强,能更好处理业务的东西。收起
证券 · 2015-05-20
浏览1361
liangruiliangrui软件架构设计师IBM
中国的OA市场如果通过BPM实现,一般采用轻BO模式:流程流转控制数据在BPM内部保存,外部表单和应用系统与BPM引擎交互的时候,传入这些流程流转控制数据。外部表单和应用系统保存业务数据,表单提交直接提交到业务数据库。这样表单比较灵活,而且对于BPM引擎的压力较小。两者直接的co...显示全部

中国的OA市场如果通过BPM实现,一般采用轻BO模式:流程流转控制数据在BPM内部保存,外部表单和应用系统与BPM引擎交互的时候,传入这些流程流转控制数据。外部表单和应用系统保存业务数据,表单提交直接提交到业务数据库。这样表单比较灵活,而且对于BPM引擎的压力较小。

两者直接的correlation id才用流程实例ID + Task实例ID + 业务数据主键ID 组合的方式。

例如,当一个任务创建,通过任务ID查询到外部系统,查询到其表单的url,用户在门户打开表单,填写数据,完成后提交数据到外部应用系统同时通过API完成该任务(task id)。

不过这个方案也带来相应的问题

1. 利用playback,进行联调带来了障碍

2. BPM和外部系统资产版本如何同步和对应

3. 额外安全认证

4. 两个独立系统的高可用和灾备

5. 两个系统交互带来的额外序列化和网络开销。

收起
互联网服务 · 2016-03-23
浏览1615
odd2008odd2008其它SOA
对于两个方案都在项目上运用过,有如下有问题:在做待办任务列表的时候既需要显示A系统的业务数据,又需要显示bpm的工作流程信息,你怎么办?如果bpm实现工作流程流转和控制之外,也保存业务数据,那bpm的中bo会很多,否则不能你进行条件搜索,当bo大于20后性能会严重降低,虽然ibm有工具竖...显示全部

对于两个方案都在项目上运用过,有如下有问题:

在做待办任务列表的时候既需要显示A系统的业务数据,又需要显示bpm的工作流程信息,你怎么办?

如果bpm实现工作流程流转和控制之外,也保存业务数据,那bpm的中bo会很多,否则不能你进行条件搜索,当bo大于20后性能会严重降低,虽然ibm有工具竖表转横表

另外在bpm8.5及以下版本中中使用ldap的方案,用户有时会显示不出待办,同时你的用户没有从来在Portal中登录过,使用接口就会报错。

在bpm中没有相应的接口获取所有的用户的待办,或者已办信息,没法做流程监控,督办。

在做中国式的流程时,如果下一步的操作者由前一步指派,那用于使用条件表达式只能使用用户或组,不能同时是用户和组,当下一个节点的处理者要选择为部门和某几个用户时,标准功能根本不能做(顺便说一下,用team也是不可以的,team是静态的组,是开发时确定的,不是运行时确定)。

实现草稿功能也很恼火。

还有两个接口互相独立没有对应的功能:

在WebService中有通过流程名称获取流程信息,然后发起流程,在REST中就没有

在REST中有修改task组变量的方法,而在WebService中又没有。

还有当你需要你需要修改所有的BO时,你会发现,ibm文档上根本没有告诉你该怎么帮,问技术支持也不知道。

还有更多的坑等着各位,不说了,说多了都是泪。

收起
互联网服务 · 2016-02-24
浏览1626
  • 你描述的大多数的坑都可以通过别的方式来解决。 restAPI也有接口获取所有用户的待办,restAPI与webSerivce是可以互相调用的,所以是可以互转的。不建议直接去搜索BO中的业务数据,性能不太好,需要查询的业务数据应该持久化到数据库中。 通过自己维护一套task与instance信息,与流程引擎保持同步。那么以上很多待办,已办,业务数据和流程信息的显示问题都不存在了。,所以我们根据中国式流程开发了一套流程框架可以轻松快速的完成一些国内典型需求,如草稿,已办,动态指定下个审批处理人或角色。重要的是还可以用coachView这个神器。
    2016-11-02
maimiaomaimiao研发工程师Pactera
回复 20# jmcai1001 之前有个客户那里也是LDAP 实现SSO ,但是到后来我还是一直没搞定rest权限问题,所以后来就改成使用wsdl了,要是您这里搞定了到时候分享一下~显示全部
回复 20# jmcai1001
之前有个客户那里也是LDAP 实现SSO ,但是到后来我还是一直没搞定rest权限问题,所以后来就改成使用wsdl了,要是您这里搞定了到时候分享一下~收起
银行 · 2015-05-29
浏览1600
jmcai1001jmcai1001研发工程师gf
回复 22# 代头大哥 已经发qq你啦显示全部
回复 22# 代头大哥

已经发qq你啦收起
证券 · 2015-05-28
浏览1554
代头大哥代头大哥软件开发工程师中软国际
回复 6# jmcai1001     方便留个联系方式详谈吗?显示全部
回复 6# jmcai1001


    方便留个联系方式详谈吗?收起
软件开发 · 2015-05-27
浏览1571
skyeyskyey售后技术支持IBM
回复 7# odd2008     求教坑在何处?显示全部
回复 7# odd2008


    求教坑在何处?收起
互联网服务 · 2015-05-26
浏览1587
jmcai1001jmcai1001研发工程师gf
回复 18# maimiao 我们采用LDAP实现SSO,应该可以解决这个问题吧显示全部
回复 18# maimiao

我们采用LDAP实现SSO,应该可以解决这个问题吧收起
证券 · 2015-05-26
浏览1583
jmcai1001jmcai1001研发工程师gf
回复 16# daniewang SAP没搞过,得研究研究,貌似很高端显示全部
回复 16# daniewang

SAP没搞过,得研究研究,貌似很高端收起
证券 · 2015-05-26
浏览1561
maimiaomaimiao研发工程师Pactera
看起来其实两种方案区别不是很大,bpm流程使不使用业务数据从描述看来影响不是很大。使用bpm通过接口的方式保存业务数据和A系统本身操作业务数据区别不大。既然已经决定不使用bpm coach作为前段业务数据展示那业务数据对于bpm流程的影响就微乎其微,流程中只需要传入会影响...显示全部
看起来其实两种方案区别不是很大,bpm流程使不使用业务数据从描述看来影响不是很大。使用bpm通过接口的方式保存业务数据和A系统本身操作业务数据区别不大。既然已经决定不使用bpm coach作为前段业务数据展示那业务数据对于bpm流程的影响就微乎其微,流程中只需要传入会影响流程流转方向的关键性业务数据即可。
另外一个问题是,如果采取这样只使用bpm作为流程引擎的模式rest权限问题如何解决呢?因为对流程事例中的task操作是有权限限制的。例如:如果整个系统中的用户使用的是域用户,在使用rest或者web api的时候如何获取域用户的密码从而使得rest权限验证能够通过是个问题。收起
银行 · 2015-05-23
浏览1622

提问者

jmcai1001
研发工程师gf
擅长领域: 应用服务器服务器WAS

相关问题

问题状态

  • 发布时间:2015-05-20
  • 关注会员:6 人
  • 问题浏览:23089
  • 最近回答:2016-03-23
  • X社区推广