WF4 数据模型

WF4的数据库 

SQL

建表

SqlPersistenceProviderSchema.sql

InstanceData 实例数据表

 

SqlPersistenceService_Schema.sql

InstanceState 实例状态表

CompletedScope 完成范围

SqlWorkflowInstanceStoreSchema.sql

[System.Activities.DurableInstancing].[InstancesTable] 实例表

[System.Activities.DurableInstancing].[RunnableInstancesTable] 运行实例表

[System.Activities.DurableInstancing].[KeysTable] 关键字

[System.Activities.DurableInstancing].[LockOwnersTable] 锁定表

[System.Activities.DurableInstancing].[InstanceMetadataChangesTable] 实例元数据变化表

[System.Activities.DurableInstancing].[ServiceDeploymentsTable]服务部署表

[System.Activities.DurableInstancing].[InstancePromotedPropertiesTable] 实例属性表

[System.Activities.DurableInstancing].[SqlWorkflowInstanceStoreVersionTable] 实例版本表

[System.Activities.DurableInstancing].[Instances] 实例View

[System.Activities.DurableInstancing].[ServiceDeployments] 服务部署view

[System.Activities.DurableInstancing].[InstancePromotedProperties] 实例属性view

 

Tracking_Schema.sql

ActivityExecutionStatus 活动执行状态

[Type] 类型

[Workflow] 流程

[Activity] 活动

[WorkflowInstance] 工作流实例

[ActivityInstance] 活动实例

[ActivityExecutionStatusEvent] 活动执行状态事件

[UserEvent] 用户事件

[TrackingWorkflowEvent] 跟踪工作流事件

[WorkflowInstanceEvent] 工作流实例事件

[TrackingDataItem] 跟踪数据项

[TrackingDataItemAnnotation] 跟踪数据项注释

[EventAnnotation] 事件注释

[AddedActivity] 增加活动

[RemovedActivity] 删除活动

[TrackingPartitionInterval] 跟踪分区间隔

[TrackingPartitionSetName] 跟踪分区名称

[TrackingProfile] 跟踪概况

[TrackingProfileInstance] 跟踪实例

[DefaultTrackingProfile] 默认跟踪概况

视图

[vw_ActivityExecutionStatus] 活动执行状态View

[vw_Type] 类型View

[vw_Workflow] 工作流View

[vw_Activity] 活动View

[vw_WorkflowInstance] 流程实例View

[vw_ActivityInstance] 活动实例

[vw_ActivityExecutionStatusEvent] 活动执行状态事件View

[vw_TrackingWorkflowEvent] 跟踪工作流事件View

[vw_WorkflowInstanceEvent] 工作流实例事件

[vw_UserEvent] 用户事件View

[vw_TrackingDataItem] 跟踪数据项View

[vw_TrackingDataItemAnnotation] 跟踪数据项解释View

[vw_EventAnnotation] 事件解释View

[vw_AddedActivity] 增加活动View

[vw_RemovedActivity] 删除活动View

[vw_TrackingProfile] 跟踪概况View

[vw_TrackingProfileInstance] 跟踪概况实例View

[vw_DefaultTrackingProfile] 默认跟踪概况View

[vw_TrackingPartitionInterval] 跟踪分区间隔View

[vw_TrackingPartitionSetName] 跟踪分区名称View

建表过程

1SqlPersistenceProviderSchema.sql

2SqlPersistenceService_Schema.sql

3SqlWorkflowInstanceStoreSchema.sql

4Tracking_Schema.sql

WF4持久化服务 VS 自定义持久化

在前面我们讲了WF4通过开启持久化服务来持久流程实例,在实际的项目中也可以完全自定义工作流持久化的数据模型和服务,下面我们来进行一个比较。


优点

缺点

WF4持久化

1、能够比较方便利用现有的建表脚本创建持久化需要的数据库表

2不用关心流程实例持久化发生的时间,运行时引擎会自动处理

3、不用关心如何实现持久化这些技术细节

4、有现有的服务接口可以调用,可扩展

5、完成对流程实例整个生命周期的管理

6、同WF 4现有的API易于集成和工作

1、仅仅使用现有的表是不够的,还需要自定义进行扩展数据库表,如一些设置和参数信息

2、无法控制流程持久化的时间,需要使用持久化的数据时,数据可能并没有被持久化

3、受持久化现有服务和接口的制约

4、需要对现有的一些数据库表进行扩展,这些扩展中的数据和已建表的一些数据要做到同步,增加了事件、事务处理的复杂度

5开发进度和质量依赖与对SqlWorkflowPersistenceService掌握程度

6、流程处理的性能需要验证

7WF4所带数据库是一个黑盒,没有相关的文档说明和数据库设计文档

自定义持久化

1、能根据用户需求完全自定义数据结构和模型

2、能够控制持久化的时机,对流程数据具有完全的权限

3、降低了流程数据持久化的技术难度

4、统一设计数据模型,减少流程中的事务处理和数据关联关系

5、针对用户需求来进行设计

1、需要自行设计数据库模型

2、不能使用WF4 提供现有持久化接口和流程管理与监控的一些功能,这些功能需要自定义开发

3、开发工作量相对较大,但是技术难度会有所降低

 结论:

在不了解WF4持久化服务的工作原理和SqlWorkflowPersistenceService类库的情况下,可以使用自定义持久化方案来进行持久化。有关使用WF4进行持久化的应用实践,需要做技术验证。


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864