技术开发 频道

微软云计算SQL Azure数据同步功能解析

  Sync Framework提供一个全面的同步处理平台,可以处理各种应用程序、服务与装置的共同工作和脱机存取。Sync Framework配备各种技术和工具,可启用漫游(Roaming)、数据共享及脱机处理数据。使用Sync Framework,开发人员可以建立同步处理生态系统,透过任何网络上的任何通讯协议,将任何应用程式与任何存放区中的数据整合在一起。基本架构,如图4所示。

 微软的Sync Framework 2.0 架构图

  如上图所示,我们可以称它为“天使之翼”,因为它是对称的而且数据也来自云端,但其实真正的目的是要提醒设计云端程序的架构师,不要忘了运用数据同步的拓扑(Topology 指的是它的连接方式可以是任何形状,例如中央星状、多支点、或点对点等)。尤其是当网络的通讯速度及质量都不够稳定的时候,此时既能提供协通工作,又能提供脱机快速读写能力,Sync Framework正是发挥功能的时候,设计师们不应该错过。至Sync的程序怎么写呢?非常简洁,可以参考以下示例:

//档案同步的File Sync Provider示例

  SyncOrchestrator orch
= new SyncOrchestrator();

  orch.LocalProvider
= new FileSyncProvider(guid1,"C:\\temp\floder");

  orch.RemoteProvider
=

  
new LiveMeshProvider(guid2, new NetworkCreditial(username,password),

  
"MyMeshFolder");

  orch.Synchronize();

  这是典型的运用Sync Framework所提供的档案同步功能(File Provider)进行指定档案同步的例子。在这里我们要同步的是本机端的C:\temp\floder目录与位于Windows Live Mesh端(云端的桌面)上面命名为MyMeshFolder的目录,程序十分简单,也反映了SyncFramework的简洁特性。

  首先,建立一个SyncOrchestrator 的对象,它将负责同步的工作处理,也是应用程序的重要接口Orchestrator。接着就是个别创建本地端与云端的提供者(Provider),这里采用Sync Framework所提供的档案提供者,最后一个指令就是启动它的同步工作Orch.Synchronize。由以上可以看出运用提供者的方式可以使的程序变得十分简单,当然一些有关的冲突现象得处理功能,Sync Framework与原有数据库的Replication功能间的差异读者可以参考相关资料,在这里就不在赘述。

  我们再扩充一下上面的主从架构下的同步工作图标。如图5所示,显示的是运用同步机制让你的另一个程序也能同步处理相同的数据,这一点也可以广义的运用在云端同时处理多个相同程序的机制。

 微软的Sync Framework 2.0 架构图

  同步工作的运用可举一个在线游戏的示例,上面的这张图示,它可以运用在一般在线的游戏,詴想你在在线玩一个对打的游戏,图下方的二个相同的Client Ap.应用程序分别代表甲乙二方,他们正在进行对战的游戏,这个时候SYNC服务可以依据双方的按键动作同步提供给二个个别的Client Ap.让他们自行运算并做出个别的反映,这样就能达到二个人看到同样的画面,并且进行同步的互动效果了。至于上方的Service方块,则在于可以提供多于二人的架构模式,让多人同时参与,而数据同步的部分则依靠此Service 进行同步作业。这样的需求到处都有,至于在云端上如何呢?我再针对SQL Azure Data Sync的同步功能做一下描述。

  在SQL Azure Data Sync的特性中,两个必要的配置:

  ? Sync Framework 2.0

  ? Sync Framework Power Pack for SQL Azure

  它提供了几种只有云端特有的功能:

  ? 一个新的数据库提供者(SQLAzureSyncProvider)。

  ? 一个独立执行的同步数据库转换功能程序。

  ? 一个Visual Studio的Plug In脱机作业展示程序。

  目的:

  ? 将公司内部现有的SQL Server连结到SQL Azure。

  ? 在Windows Azure中新建应用程序时,不需要舍弃现有的公司内部应用程序。

  ? 脱机使用 Windows Azure 和SQL Azure的应用程序。

0
相关文章