快速业务通道

微软同步框架(MSF)入门之八--使用WCF同步远程元数据(一)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

在MSF中,提供了用于存取维护元数据的一些相应工具类,即Metadata Storage Service。它可帮助存储提供程序的同步元数据,该提供程序表示无法通过其他方式存储元数据的副本。Metadata Storage Service 使用占用较小内存和磁盘空间的轻型数据库,可以随提供程序重新分发,并且安全可靠。

其所提供的API 将元数据存储区与用于访问元数据存储区的接口和方法明确区分开,这样即可实现备用存储区,且对提供程序稍作变更即可使用备用存储区。

当然上面是SDK中的一些说法:)

Metadata Storage Service API中有一些类要着重说明一下:

SqlMetadataStore类表示通过使用轻型数据库存储元数据来实现的元数据存储区。MetadataStorageService提供了MetadataStorageServiceAPI的一个完整的实现,该实现使用轻型数据库在文件系统指定位置的一个数据库文件中存储同步所需的所有元数据。此实现的入口点是SqlMetadataStore。

ReplicaMetadata类提供对元数据存储区中的副本元数据和项元数据的访问。ReplicaMetadata还对删除检测和用于实现同步提供程序方法的帮助器提供服务。

这两个类是今天DEMO的主角,里面的大部分方面都在源码中的MySimpleSyncProvider.cs加以实现。

今天的这个例子,主要是演示了如何使用wcf来同步远程的元数据。当然这个例子是MSF小组公布的一些DEMO中的一个。通过它我们就可以大概了解一下如何使用etadata Storage Service进行维护操作同步元数据以及使用WCF来同步这些修改变更的原数据信息。

首先要说明的是,当前的同步方式是MSF中所提到的四种参与者类型中的代理参与者,相关内容参见链接:)

微软同步框架(MSF)入门之八--使用WCF同步远程元数据(一)

其中的代理程序参见如下:

public class RemoteProviderProxy : KnowledgeSyncProvider
{
private SyncIdFormatGroup idFormats;
private Sync101WebServiceClient client;
private SyncSessionContext syncSessionContext;
private string folderPath;
private string storeName;
private string endpointConfigurationName;
public RemoteProviderProxy(
string folderPath,
string storeName,
string endpointConfigurationName)
{
this.folderPath = folderPath;
this.storeName = storeName;
this.endpointConfigurationName = endpointConfigurationName;
// Create a client
this.client = new Sync101WebServiceClient(
endpointConfigurationName);
this.client.CreateProviderForSyncSession(folderPath, this.storeName);
this.idFormats = this.client.GetIdFormats();
}
public override SyncIdFormatGroup IdFormats
{
get
{
return this.idFormats;
}
}
public override void BeginSession(
SyncProviderPosition position,
SyncSessionContext syncSessionContext)
{
if (this.client == null)
{
// Allow for the same proxy to be use in several unidirectional session
this.client = new Sync101WebServiceClient(
endpointConfigurationName);
this.client.CreateProviderForSyncSession(folderPath, this.storeName);
}
this.syncSessionContext = syncSessionContext;
this.client.BeginSession();
}
public override void EndSession(

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号