欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年Joinwork工作流引擎总体设计 .pdf

    • 资源ID:34244473       资源大小:753.65KB        全文页数:24页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年Joinwork工作流引擎总体设计 .pdf

    Joinwork 工作流引擎总体设计上海携创软件技术有限公司名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 24 页 - - - - - - - - - 2 目录Joinwork 工作流引擎总体设计. 3流程模板定义. 3模板定义类关系图. 3流程模板文件的存储. 4流程模板XML 文件格式说明. 5数据变量定义. 10 模板定义语法检查. 11 用户和组织机构管理. 11 设计目标 . 11 Party 模型 . 11 用户、组织与组织类别. 11 相关类图 . 13 参与者权限管理. 14 相关类图 . 14 引擎的运行 . 15 流程引擎 . 15 流程实例 . 16 流程实例的存储. 17 运行中模板管理. 18 任务管理 . 18 任务管理器 . 18 任务的生成和分配. 19 任务代理人信息. 19 任务的存储 . 20 任务日志记录. 21 消息管理 . 21 消息定义 . 21 消息处理 . 22 定时管理 . 23 动作组件 . 23 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 24 页 - - - - - - - - - 3 Joinwork 工作流引擎总体设计流程模板定义模板定义类关系图BPMObjectBPMAbstractNodeBPMPoliciesBPMPolicypolicies1.10.nBPMActivityBPMActorBPMActorsactors1.10.nBPMAndRouterBPMConRouterBPMStatusBPMEndBPMEventActivityMessageNodeBPMHumenActivityBPMNoteBPMParamBPMParticipantTypeBPMParticipantBPMProcessBPMStartBPMSubProcessBPMTimeActivityBPMTransitionBPMObject 是所有流程模板类的基类;BPMObjec. getBPMObjectType() 方法所有基类必须重载,以返回模板类代表的模板元素类型代码。各模板元素类型代码如下表:模板类类型代码BPMProcess 0 BPMActivity 1 BPMAndRouter 2 BPMConRouter 3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 24 页 - - - - - - - - - 4 BPMEnd 4 BPMEventActivity 5 BPMHumenActivity 6 BPMPolicy 7 BPMStart 8 BPMStatus 9 BPMTimeActivity 10 BPMTransition 11 BPMSubProcess 12 BPMActor 13 BPMActors 14 BPMNote 15 BPMDataField 16 BPMAbstractNode 是所有流程节点类的基类;BPMActivity是所有活动类节点的基类;BPMProcess 类也是 BPMActivity的子类。BPMStatus 是所有状态类节点的基类;动作脚本运行规则类( BPMPolicy ,BPMPolicies ) 、参与者定义类 (BPMActor ,BPMActor ),标注类( BPMNote ) 、迁移类( BPMTransition )作为 BPMObject 的直接派生类。流程模板文件的存储BPMDefinitionManagerObjectTypeTree(from util)BPMProcessprocessMap1.10.nProcessDefManager(from wapi)ProcessDefManagerFileImpl(from processdef)devProcessreadyProcessWAPIFactory(from wapi)defManagerMap1.10.n模板文件以XML 文本文件形式存储在文件系统中,文件后缀为.process。每个模板类都有toXML() 和 fromXML() 方法;通过调用BPMProcess 的 fromXML() 完成流程模板XML文件到流程类对象的装配,调用BPMProcess 的 toXML() 完成流程对象到XML 文件的存储;BPMDefintionManager负责完成流程模板的加载和存储动作。模板文件分为开发中模板和可执行模板,流程模板管理器ProcessDefManagerFileImpl 类对象存储了一个流程引擎中的所有开发中和可执行的流程模板。ProcessDefManager 对外提供统一的流程模板访问接口。WAPIFactory 根据配置文件完成多个流程引擎的流程模板管理器的装配。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 24 页 - - - - - - - - - 5 流程模板 XML 文件格式说明流程模板 XML 文件不作为对外接口,只是用于流程引擎内部。为扩展方便和解析效率,没有定义对应的XML Schema 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 24 页 - - - - - - - - - 9 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 24 页 - - - - - - - - - 10 数据变量定义DataTypeManagerDataTypeMeta1dataTypeMap0.ndataTypeConfigread/writeDateDataFieldFileDataFieldIntDataFieldNumberDataFieldSelectDataFieldTextDataFieldCustomDataFieldBPMAbstractNode(from definition)DataField11metadata0.ndataFields1流程节点中的变量定义都是DataField 派生类对象,DataField 派生类的类型由元数据DataTypeMeta 对象描述。 DataTypeManager 负责元数据对象的存储管理。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 24 页 - - - - - - - - - 11 模板定义语法检查在流程模板定义文件加载、从流程设计器传入时,有时需要检查流程定义是否完整合法,此功能通过 ProcessChecker类对象和模板定义类提供的check()方法完成。用户和组织机构管理设计目标业务流程中的人工任务如何分配给具体的组织或个人执行,根据业务系统面对的行业以及功能范围不同会有很大的区别。作为通用型组件的工作流引擎,需要一个抽象的模型来统一解决以上问题。Party 模型Party(参与者)模型是现有比较成熟的解决以上问题的用户对象模型。在Party 模型中各种不同类型的组织和个人都被抽象为参与者(Party) ,从而能够在系统内部方便的对这些对象进行统一的控制。用户、组织与组织类别为了方便理解和使用,Joinwork的 OrgManager 接口对外使用了:用户(User)/组织(Group) /组织类别( GroupType)三个概念:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 24 页 - - - - - - - - - 12 可以通过例子来看看业务系统的现有组织对象模型如何映射到用户、组织和组织类别这三个概念上。假设业务系统由一个机构管理模块负责维护组织的部门人员结构信息,如果有业务流程在运行中需要使用这些信息做任务分派的话,我们就需要在定制的OrgManager 实现类中将部门人员结构信息提供给引擎。通过新建一个“Department”的组织类别,然后将所有的部门转换成组织(类别为Department) ,部门中的员工作为组织中的人员即可。如果同时业务系统内还有一个角色管理系统,某些业务流程的任务分派需要使用角色信息来完成。 那我们可以再定义一个新的“Role” 组织类别, 把具体的角色 (如系统管理员/xxx岗位)作为组织导入工作流系统即可。通过类似的方式我们能把多个组织对象模型同时映射到引擎的参与者模型上,供流程模板设计时和流程运行时使用。对一个具体的任务分配我们也可以实现跨不同的对象模型,比原有对象模型灵活了许多。比如:执行任务A 的用户可以指定是部门A 和角色 A 的集合。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 24 页 - - - - - - - - - 13 相关类图GroupType(from resource.api)OrgUserUser(from resource.api)Group(from resource.api)OrgGroupDAOOrgGroupTypeDAOOrgManagementImplOrgDataUtilDataUtil(from database)OrgGroupUserDAOOrgManagement2(from resource.api)OrgManagement(from resource.api)OrgChangeListner(from resource.api)listners1.10.nWAPIFactory(from wapi)OrgMap1.10.nOrgManagement 接口只提供了对组织信息访问的只读接口。而 OrgManagement2 是组织管理的可编辑接口,此接口由管理控制台使用。希望通过管理控制台页面改变组织信息的组织管理模块可继承此类OrgManagementImpl 是组织机构管理的具体实现类,它通过OrgDataUtil 实现组织和用户 信 息 的 数 据 库 存 储 操 作 。 OrgUser 、 OrgGroupDAO、 OrgGroupTypeDAO和OrgGroupUserDAO分 别 是 用 户 表 (org_user) 、 组 织 表 ( org_group ) 、 组 织 类 型 表(org_grouptype )和用户组织关系表(org_groupuser)的映射类。对于流程引擎来说,OrgManagement 接口的实现类起一个适配器(Adapter)的作用,外部系统的各种用户或人员的组织形式(组织机构/岗位 /角色等),都可以通过此Adapter 映射到 Joinwork 引擎使用的参与者(Party)模型。这样业务系统各种特定的组织类型就可以通过编写定制的适配器( OrgManager 实现类)将外部用户对象模型提供给流程引擎使用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 24 页 - - - - - - - - - 14 流程引擎在启动时或者外部系统通知引擎重新加载参与者信息时,引擎会通过OrgManagement 实现类将参与者信息加载一次,在正常运行过程中,引擎使用Cache的信息以提高性能。参与者权限管理相关类图在 运行 时 , 流程 模 板 定义 中 的BPMAbstractNode类的派生类名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 24 页 - - - - - - - - - 15 (BPMHumenActivity/BPMProcess/BPMStart等)中的Acl 对象,会根据节点中的参与者定义信息和角色权限的配置信息生成一张访问控制列表acl。RoleManager 类对象负责存储和加载配置文件中的角色权限,并为访问角色信息提供接口方法。引擎的运行流程引擎ProcessEngineImplProcessEngine(from wapi)CaseManagerRoleManager(from role)LicenseManager(from license)ProcessPoolExecutListnerListcaseManager1.11.1processRoleManager1.11.1taskRoleManager1.11.1LicenseManager1.11.1processPool1.11.1listener1.11.1ExecuteListener(from api)Dispatcher(from task)TimerManager(from timer)MessageListener(from message)BPMExecuteInterpreterActionRunnerRecorder(from log)ExecuteSubProcessBPMCase流程引擎类ProcessEngineImpl 的对象代表了一个具体的流程引擎。流程引擎由WAPIFactory 组装,并通过ProcessEngine 接口对外提供服务。流程引擎包括一个LicenseManager 对象来进行许可证校验。引擎中的运行流程模板由ProcessPool对象管理;BPMExecute 对象负责调用Interpreter 对象解释执行流程模板,并同时通过Recorder 对象记录流程日志。 ActionRunner 对象中运行中负责流程中动作脚本的执行。CaseManager对象负责流程实例的存储访问;RoleManager 对象包含角色权限信息,在流程运行时参与访问控制;流程引擎中包含了实现了ExecuteListner 接口的运行事件监听对象列表(ExecutListnerList ) 。运行事件监听对象包括:任务分发器Dispather 对象、定时器管理TimerManager 对象、消息监听 MessageListener 对象和子流程执行对象。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 24 页 - - - - - - - - - 16 流程实例ReadyNodestatusIdSubCaseInfoBPMSubProcess(from definition)CaseLog(from wapi)BPMCase10.nreadyActivityList0.n1readyStatusList0.n1subCaseList11subProcessDefparentCase0.n1caseLogListMapnodeDataMapObject0.n1dataMap流程实例中包含流程变量dataMap 和各节点变量nodeDataMap;就绪的活动列表和就绪的状态节点列表;流程运行日志CaseLog 对象列表;如果此流程实例有子流程的话,还包括子流程实例信息(SubCaseInfo)对象的列表; 如果此流程实例是其他流程实例的子流程,还包括父流程中的子流程节点信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 24 页 - - - - - - - - - 17 流程实例的存储CaseRunBLOBDAOCaseRunDAOCaseRunDataUtilBPMCaseBPMCaseDAOBPMCaseDataUtilHistoryCaseRunBLOBDAOHistoryCaseRunDAODataUtil(from database)BPMCaseInfoCaseInfo(from wapi)case_runhbmhbmCaseManagerProcessEngineImplcaseManager1.11.1hbmcase_historyhbmhbm流程引擎在运行时,通过 CaseManager得到流程实例信息。Case_run 表中存放未完成的流程实例, case_history 表中存放运行结束的流程实例信息。CaseRunBLOBDAO 和 HistoryCaseRunBLOBDAO类是为了特殊处理Oracle 数据库中的BLOB 字段。在存取 CaseRunDAO 时,因为BPMCase 包含一些序列化的对象信息(流程变量/节点变量 /就绪活动和状态节点列表/运行日志信息) ,存取时效率不高。在某些不需要这些数据的操作中,可以使用BPMCaseDAO 来查询流程实例信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 24 页 - - - - - - - - - 18 运行中模板管理ProcessInRunningDataUtilprocess_runningProcessPoolManagerProcessPool1poolMap0.nProcessEngineImplprocessPool1.11.1ProcessInRunningBLOBDAOhbmProcessInRunningDAOhbmBPMProcess(from definition)0.n1runningProcessPool1processObject1运行中的模板存放在process_running 表中,每个流程引擎通过一个有缓存的池ProcessPool来访问运行中使用的模板。ProcessPoolManager 对象包含了所有流程引擎中用到的流程池。任务管理任务管理器WorkItemManager(from wapi)BPMWorkItemListWorkItemManagerImpl11itemlistRoleManager(from role)1roleManager1WAPIFactory(from wapi)任 务 管理器WorkItemManagerImpl对 象 使用RoleManager对象管 理访 问权 限 ,通 过BMPWorkItemList对象完成任务的存储。WAPIFactory 负责任务管理器的构造,WorkItemManager 是任务管理器的对外接口。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 24 页 - - - - - - - - - 19 任务的生成和分配任务分发器Dispatcher 对象作为流程引擎的运行监听器器对象,截获流程运行中与人工活动BPMHumenActivity节点相关的事件,利用人工活动节点中的定义信息生成对应的任务。任务代理人信息DelegaterInfo(from wapi)Delegaterworkitem_delegaterhbmDataUtil(from database)WorkItemManagerImplDispatcherWorkDeskWorkItemManager(from wapi)任务的代理人信息有Delegater 对象管理,存储在表workitem_delegater 中。任务分发器Dispatcher 对象和协同工作平台(Workdesk)Web 应用,通过WorkitemManager名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 24 页 - - - - - - - - - 20 接口使用和设置任务代理人信息。任务的存储BPMWorkItemListWorkitemInfoWorkitemDAOWorkItem(from wapi)HistoryWorkitemDAOHistoryWorkitemBLOBDAOWorkitemBLOBDAOWorkitemInfoDAOWorkitemDataUtilDataUtil(from database)workitem_historyhbmhbmworkitem_runhbmhbmhbm名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 24 页 - - - - - - - - - 21 任务日志记录BPMCaseWorkItemLogBPMWorkItemLogRecorderWorkitemDAO(from task)WorkitemInfo(from task)CaseWorkItemLog(from wapi)WorkItemLog(from wapi)10.nlogList0.nlogList1BPMWorkItemList(from task)WorkItemManagerImpl(from task)11itemlist任务管理器WorkitemManagerImpl对象和任务列表访问类BPMWorkItemList对象在改变任务对象或任务相关参与者时会调用任务日志记录器Recorder 记录任务执行日志。任务执行日志保存在相关任务对象的logList 列表中。消息管理消息定义MessageMetaManagerMessageMeta1metaMap0.nConfigread/writeRequestDispath(from studioserver)ActionRunner(from execute)消息定义信息由MessageMeta 类对象管理,MessageMetaManager 负责消息定义信息从名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 24 页 - - - - - - - - - 22 配置文件( message.config)加载和保存。管理控制台和动作脚本运行器通过MessageMetaManager 访问消息定义信息。消息处理MessageBLOBDAOMessageDAOMessage(from wapi)messagehbmhbmMessageManagerImplMessageManager(from wapi)MessageQueueManagerMessageConsumermessage_consumerhbmMessageWorkerJob(from quartz)MessageListenerExecuteListener(from api)BPMEventActivity(from definition)BPMProcess(from definition)Object(from java)0.n1dataMapBPMCase(from execute)消息管理 MessageManager 接口对外提供统一的消息(Message)发送接口。 外部消息通过 MessageManager 的 sendMessage()方法进入系统,消息管理实现类MessageManagerImpl具体调用消息队列管理器MessageQueueManager完成消息的存储。消息监听器MessageListener 负责监听流程运行事件中有关消息节点的事件信息,并负责调用 MessageQueueManager负责事件产生的对应消息消费者(MessageConsumer)的存储。消息处理类MessageWorker 对象负责定时处理消息和消息消费者的配对。在配对的情况下调用 MessageQueueManager完成消息消费者的触发。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 24 页 - - - - - - - - - 23 定时管理CreateDeadlineEventJobJob(from quartz)StartActivityJobProcessEngine(from wapi)StartProcessJobTimerManagerExecuteListener(from api)TimerJobInfoTimerConfigConfigFileread/writeBPMTimeActivity(from definition)BPMProcess(from definition)ProcessDefManagerFileImpl(from processdef)BPMHumenActivity(from definition)定 时 管 理 器TimerManager负 责 监 听 流 程 引 擎 运 行 过 程 中 与 定 时 活 动 节 点(BPMTimeActivity)和人工活动节点(BPMHumenActivity)相关的运行事件。当定时活动节点就绪时,TimerManager 产生类型为“Case”的定时任务;当有期限设置的人工活动节点就绪时, TimerManager 产生类型为“Deadline”的定时任务。当 有 定 时 启 动 的 流 程 模 板 置 为 可 执 行 时 , ProcessDefManagerFileImpl会 调 用TimerManager 产生类型为 ” Process ” 的定时任务。定时任务执行类StartProcessJob 、StartActivityJob 和 CreateDeadlineEventJob 分别负责在指定时间执行类型为” Process” 、” Case” 和” Deadline” 的定时任务。动作组件ActionManagerActionComponent0.n1actionMapActionAttr0.nattributs1action.configread/writeActionRunner(from execute)RequestDispath(from studioserver)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 24 页 - - - - - - - - - 24 动作组件管理器ActionManager 负责动作组件定义信息(ActionComponent )的存储和访问。动作脚本运行器ActionRunner和流程定义工具服务器通过动作组件管理器查询动作组件信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 24 页 - - - - - - - - -

    注意事项

    本文(2022年Joinwork工作流引擎总体设计 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开