当前位置:文档之家› shark工作流引擎表结构分析

shark工作流引擎表结构分析

SHARK工作流引擎的表结构
背景:
Shark作为一个满足XPDL规范的开源工作流引擎,由于有JAWE作为定义工具,现有的很多流程表达,接口的定义都比较丰富。

在数据库的数
据结构表达和代码结构上也有很多优点。

当然,Shark 还是在传统的关系数据库的基础上,提出了一个适用于关键业务开发的基于关系结构的工作流引擎的表结构。

关键词:表结构、工作流引擎、shark、数据结构
1数据库表的关系图
Shark中共含有44个表,分别表达不同的数据结构,对应表数据内容和功能的对应关系,分为用户管理、事件管理、包管理、流程流转的控制数据管理等部分。

1.1用户管理
系统的用户和用户组的基本信息
1.2事件管理
在流程运转过程中,针对流程启动和结束,上下文数据,状态数据的改变,任务结束等事件,都记录了变化的前后过程。

1.3包管理
1.4.1在流程定义的参与者和系统真正用户之间有对应关系
1.4.2应用和调用工具类之间的映射
1.5辅助表
1.6流程流转控制数据管理
2Shark持久层对表的封装
class=" usergroup.HibernateUser" table="usertable"
hibernate.participantmappin g.cfg.xml HibernateParticipant.hbm.xml
class =" partmappersistence.data.HibernateParticipant"
table="participant"
<joined-subclass
name="com.cs3.workflow.partmappersistence.data.HibernateProcessLevelParticipa table="proclevelparticipant">
<joined-subclass
name="com.cs3.workflow.partmappersistence.data.HibernatePackageLevelParticip table="packlevelparticipant">
HibernateGroupUser.hbm.xml
class =" partmappersistence.data.HibernateGroupUser"
table="groupuser"
HibernateNormalUser.hbm.xml
class=" partmappersistence.data.HibernateNormalUser"
table="normaluser"
HibernateProcessPartMap.hbm.xml"
class=" partmappersistence.data.HibernateProcessPartMap"
table="process"
<many-to-one name="pck" column="packageoid"
class=" partmappersistence.data.HibernatePackage" not-null="true"/> <bag name="processLevelParticipant" lazy="false" inverse="false">
<key column="processoid"/>
<one-to-many
class=" partmappersistence.data.HibernateProcessLevelParticipant"/> </bag>
HibernatePackage.hbm.xml
class="partmappersistence.data.HibernatePackage"
table="package"
<bag name="processes" lazy="false" inverse="true">
<key column="packageoid"/>
<one-to-many class=" partmappersistence.data.HibernateProcessPartMap"/> </bag>
<bag name="packageLevelParticipant" lazy="false" inverse="true">
<key column="packageoid"/>
<one-to-many class=" partmappersistence.data.HibernatePackageLevelParticip </bag>
hibernate.appmapping.cfg.x ml (比较怪异,文件直接含有hbm.xml的内容<hibernate-mapping)
<hibernate-mapping>
<class name="com.cs3.framework.test.HibernateActivity" table="activities"
<hibernate-mapping>
hibernate.applicationmappin g.cfg.xml HibernateApplicationMapping.hbm.xml
class="com.cs3.workflow.appmappersistence.HibernateApplicationMap"
table="applicationmappings"
hibernate.processlocking.cf g.xml HibernateLockEntry.hbm.xml
class=" processlocking.HibernateLockEntry"
table="locktable"
表三、独立的*.hbm.xml文件
3功能对应数据库表数据
3.1启动和登录
3.2用户管理
3.3存储库管理
3.4包管理
3.5流程化实例管理
3.6管理工作列表
3.7应用程序映射
3.8流程监控
4附录
4.1.1持久对象和表的对应关系
表二、持久对象和表的对应关系(静态数据)
5应用实例
待续…

附:
涉及用户管理的外部接口:
接口(wfservice)实现类及描述UserGroupAdministration UserGroupAdmin ParticipantMappingAdministration ParticipantMappingsAdministrationImpl ParticipantMap ParticipantMapImpl。

相关主题