【深入浅出WF】——持久化的过程

原文:http://msdn.microsoft.com/en-us/library/ee473462%28VS.100%29.aspx
实例存储
一个实例存储是一个实例的逻辑容器。它存储了实例数据和元数据。一个实例存储包含存储在SQL Server中持久化信息,或者内存中非持久的状态信息。.NET4中发布的工作流实例存储,它是一个实例存储的具体工具,每个实例存储允许工作流持久化实例数据和元数据到SQL 2005或SQL 2008中。
 持久化API用于一个host和一个实例存储的几口,它允许host发送命令(比如LoadWorkflowCommand和SaveWorkflowCommand)请求给实例存储。实例存储的具体工具叫持久化提供者( persistence provider),这个提供者从host接收命令并修改实例存储。
 Hosts和实例存储可以多对多的使用。尽管他们在各自独立的生命周期中演化,某个host的使用方式来优化一个实例存储。比如:WorkflowServiceHost 和SqlWorkflowInstanceStore 被设计为一个工作。你也可以针对workflow service instances的持久化数据和元数据创建你自己的实例存储,让这个实例存储和WorkflowServiceHost.一起使用。比如你可以创建OracleWorkflowInstanceStore来存储工作流持久化信息来,而不把这些信息存储进SQL Server。
 通常host被用来扩展额外的功能用于uxiugai持久化对象。比如一个实例持久化系统由工作流host,一个支持“Suspend”的扩展,和一个SQL实例存储。工作流host可能发送标标准的命令,比如 save和load命令,用于保存和加载来自持久化提供者的工作流。用于SQL 实例存储的提供者接收到保存和加载工作流实例的命令,执行命令,通过调用合适的存储过程来更新持久化对象的表数据。
 在实例存储中host扮演了实例拥有者的角色。一个host同时可能扮演一个或多个实例的拥有者角色。Host提供了用于每个实例的GUID,它存储在实例存储中。Host也可以提供跟其他实例关联的实例(配对)键值的GUID。一个实例键用做标志实例的别名,是不唯一的。持久化系统可以通过执行host请求命令来创建、更新和删除实例拥有者信息
posted @ 2009-12-23 10:17  风影极光  阅读(661)  评论(1编辑  收藏  举报