您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > shark工作流引擎表结构分析
1SHARK工作流引擎的表结构背景:Shark作为一个满足XPDL规范的开源工作流引擎,由于有JAWE作为定义工具,现有的很多流程表达,接口的定义都比较丰富。在数据库的数据结构表达和代码结构上也有很多优点。当然,Shark还是在传统的关系数据库的基础上,提出了一个适用于关键业务开发的基于关系结构的工作流引擎的表结构。关键词:表结构、工作流引擎、shark、数据结构1数据库表的关系图Shark中共含有44个表,分别表达不同的数据结构,对应表数据内容和功能的对应关系,分为用户管理、事件管理、包管理、流程流转的控制数据管理等部分。1.1用户管理系统的用户和用户组的基本信息1.2事件管理在流程运转过程中,针对流程启动和结束,上下文数据,状态数据的改变,任务结束等事件,都记录了变化的前后过程。21.3包管理1.4映射表1.4.1在流程定义的参与者和系统真正用户之间有对应关系31.4.2应用和调用工具类之间的映射1.5辅助表41.6流程流转控制数据管理52Shark持久层对表的封装表一、shark持久层中对表结构用Hibernate的封装配置文件分布描述含有8个模块每个模块对应一个*.cfg.xml文件,见表二表对象描述文件Shark持久层(Hibernate)中,目前含有29个表描述文件(*.hbm.xml)在上面指定的模块文件(*.cfg.xml)中共指定了17个hbm.xml文件对于29个*.hbm.xml中,有17个在启动的时候要加载,其他的12是动态加载17个*.hbm.xml自动加载的是一些基础数据(用户,参与者,应用,事件过程类型等)12个*.hbm.xml是一些过程数据(见表三)表二、模块以及对应的表对象描述文件模块含有的表对象描述文件mappingresource=”*.hbm.xml”/Class的名称前面缺省(com.cs3.workflow.)hibernate.utilities.cfg.xmlHibernateUtilities.hbm.xmlclass=utilities.hibernate.HibernateCountertable=countershibernate.instance.cfg.xmlHibernateEventAudit.hbm.xmlclass=eventaudit.HibernateEventAudittable=eventauditsHibernateEventType.hbm.xmlclass=eventaudit.data.HibernateEventTypetable=eventtypesHibernateActivityStateEventAudit.hbm.xmlclass=eventaudit.data.HibernateActivityStateEventAudittable=activitystateeventauditsHibernateProcessStateEventAudit.hbm.xmlclass=eventaudit.data.HibernateProcessStateEventAudittable=processstateeventauditshibernate.repository.cfg.xmlHibernateXPDL.hbm.xmlclass=repositorypersistence.data.HibernateXPDLtable=xpdlsHibernateNextXPDLVersion.hbm.xmlclass=repositorypersistence.data.HibernateNextXPDLVersiontable=nextxpdlversionsHibernateXPDLHistory.hbm.xmlclass=repositorypersistence.data.HibernateXPDLHistorytable=xpdlhistoryhibernate.user.cfg.xmlHibernateGroup.hbm.xmlclass=usergroup.HibernateGrouptable=grouptableHibernateUser.hbm.xml6class=usergroup.HibernateUsertable=usertablehibernate.participantmapping.cfg.xmlHibernateParticipant.hbm.xmlclass=partmappersistence.data.HibernateParticipanttable=participantjoined-subclassname=com.cs3.workflow.partmappersistence.data.HibernateProcessLevelParticipanttable=proclevelparticipantjoined-subclassname=com.cs3.workflow.partmappersistence.data.HibernatePackageLevelParticipanttable=packlevelparticipantHibernateGroupUser.hbm.xmlclass=partmappersistence.data.HibernateGroupUsertable=groupuserHibernateNormalUser.hbm.xmlclass=partmappersistence.data.HibernateNormalUsertable=normaluserHibernateProcessPartMap.hbm.xmlclass=partmappersistence.data.HibernateProcessPartMaptable=processmany-to-onename=pckcolumn=packageoidclass=partmappersistence.data.HibernatePackagenot-null=true/bagname=processLevelParticipantlazy=falseinverse=falsekeycolumn=processoid/one-to-manyclass=partmappersistence.data.HibernateProcessLevelParticipant//bagHibernatePackage.hbm.xmlclass=partmappersistence.data.HibernatePackagetable=packagebagname=processeslazy=falseinverse=truekeycolumn=packageoid/one-to-manyclass=partmappersistence.data.HibernateProcessPartMap//bagbagname=packageLevelParticipantlazy=falseinverse=truekeycolumn=packageoid/one-to-manyclass=partmappersistence.data.HibernatePackageLevelParticipant//baghibernate.appmapping.cfg.xml(比较怪异,文件直接含有hbm.xml的内容hibernate-mapping)hibernate-mappingclassname=com.cs3.framework.test.HibernateActivitytable=activitieshibernate-mappinghibernate.applicationmapping.cfg.xmlHibernateApplicationMapping.hbm.xmlclass=com.cs3.workflow.appmappersistence.HibernateApplicationMaptable=applicationmappingshibernate.processlocking.cfg.xmlHibernateLockEntry.hbm.xmlclass=processlocking.HibernateLockEntrytable=locktable表三、独立的*.hbm.xml文件表对象描述文件描述(class名称前面缺省com.cs3.workflow.)HibernateActivity.hbm.xmlclass=instancepersistence.HibernateActivity7table=activitiesHibernateActivityState.hbm.xmlclass=instancepersistence.data.HibernateActivityStatetable=activitystatesHibernateActivityVariable.hbm.xmlclass=instancepersistence.HibernateActivityVariabletable=activitydataHibernateAndJoinEntry.hbm.xmlclass=instancepersistence.HibernateAndJoinEntrytable=andjointableHibernateAssignment.hbm.xmlclass=instancepersistence.HibernateAssignmenttable=assignmentstableHibernateDeadline.hbm.xmlclass=instancepersistence.HibernateDeadlinetable=deadlinesHibernateProcess.hbm.xmlclass=instancepersistence.HibernateProcesstable=processesHibernateProcessMgr.hbm.xmlclass=instancepersistence.HibernateProcessMgrtable=processdefinitionsHibernateProcessRequester.hbm.xmlclass=instancepersistence.HibernateProcessRequestertable=processrequestersHibernateProcessState.hbm.xmlclass=instancepersistence.data.HibernateProcessStatetable=processstatesHibernateProcessVariable.hbm.xmlclass=instancepersistence.HibernateProcessVariabletable=processdataHibernateResource.hbm.xmlclass=instancepersistence.HibernateResourcetable=resourcestable83功能对应数据库表数据在对数据库表操作的过程中,有两个特殊表counter,locktablecounter记录引擎启动后,对不同的表主键iddb,产生的最大键值。locktable辅助事务控制的表3.1启动和登录功能表名以及数据结构启动(加载代码表数据)processstates如果第一次加载,就insert,如果以后加载数据就update目的:指定过程和活动的状态常量,目前指定了6中状态open.runningopen.not_running.not_startedopen.not_running.suspendedclo
本文标题:shark工作流引擎表结构分析
链接地址:https://www.777doc.com/doc-1415344 .html