OpenFlow概述

OpenFlow名称里面虽然包括“Flow”,但其并不是“又一个流程引擎”,我们认为世界上的流程引擎已经足够多了,每个流程引擎都各有千秋,有的甚至免费,所以我们不需要再做一个流程引擎,我们做OpenFlow的目的是解决所有流程引擎都有的问题。

客户的问题是:

  • 一旦选择了一个流程引擎,那么其就被此引擎捆死,因为所有业务流程都基于此引擎开发,随着客户业务的改变,他想用别的引擎,那么之前所有的流程需要根据新的引擎完全重写,耗时耗力,重写之后又被新的引擎捆死,直到下次重写
  • 客户的另一个问题是,有些企业有不同流程引擎同时在运行,每个引擎跑不同的流程,结果是这些流程不能融合。

OpenFlow彻底解决了这些问题,在OpenFlow的世界里面:

  • 首先用户是可以*切换流程引擎的,比如之前使用某开源流程引擎,之后可以切换成Agile Point;或者之前使用K2,后来切换成G2;总之,用户可以随意切换引擎而不用改变流程
  • 其次通过OpenFlow,用户可以整合跨越流程引擎的不同流程,这样消费者程序比如企业门户,就可以*享用各个流程引擎带来的好处了

OpenFlow的具体做法是OpenFlow带有各种"流程引擎的驱动程序",OpenFlow透过"驱动程序"与后端的“流程引擎”互动,然后所有流程都针对OpenFlow进行编程,这样,在OpenFlow层面自然就可以整合所有流程,如果客户想换引擎,那么只要通过设置,把流程指向新的流程引擎(就是换个“驱动程序”),那么所有流程就跑在新的流程引擎上面了;然后各种消费者程序,比如企业门户,也调用OpenFlow的接口,这样最后端的所有引擎就都可以为之所用了。

具体功能点如下:

OpenFlow(服务提供者)部分,主要是API和Server短程序:

  • 支持切换流程(K2换成AP或CCFlow,或者任何流程引擎换成任何流程引擎)
  • 通过Driver和任意后端流程引擎互动(当然需要事先安装相应的流程引擎)
  • 合并多种流程引擎
  • 合并多种流程引擎中的流程
  • 流程分类(多级分类,支持多维多标签)
  • 流程授权(支持角色,角色里面包括组或者用户)
  • 与AD系统双向高效同步ID(用户,组),这东西叫OpenID
  • 待办流程,已办流程,我的申请,三个二级页面列表,以及每部分的总数字
  • 获取流程图
  • 发起流程的列表(多级分类),也是二级页面列表
  • 支持多语言
  • 支持多租户
  • 支持任意浏览器,或者APP
  • 支持包括但不限于OpenShare在内的任何消费者应用(包括任意平台的APP)
  • 可以单独打包,安装,运行,也可以和OpenShare一起运行

OpenShare(是OpenFlow的一个消费者)部分

  • 3个流程中心的入口:1,主页上的WebPart,2,Dock的弹出菜单(就叫流程中心,里面包括流程中心的全部Icon)3,主菜单
  • 流程中心的二级页面UI都完成了:待办流程,已办流程,我的申请,创建流程(分类,图标,发起流程),支持所有皮肤
  • 三级页面没做也不准备做(就是具体的流程,这个要根据客户的要求定制)

顺便说一句,OpenFlow和OpenShare一样,都是免费的,当然需要我们1对1的进行具体流程的定制开发,我们是要收人工费的

上一篇:Linux内核2.6的进程调度


下一篇:Spring AOP依赖包