MobiLink开发资源集之MobiLink技术简介

来源:岁月联盟 编辑:zhuzhu 时间:2007-08-03

数据复制就是在物理上完全不同的数据库之间共享数据。当应用程序在任一数据库中修改共享数据时,就会将所做的更改传播到复制系统中的其它数据库。数据复制系统的一大优点是,可以在本地访问数据,而不用通过与单个中心数据库之间的连接(可能占用很多资源、可靠性较低并且速度很慢)来获取数据。即使没有与中心服务器之间的任何连接,也可以在本地访问数据,这样,在远程网络连接中断时,仍然可以访问数据。

 

Sybase提供不同的复制技术:

 

MobiLink 是一种基于会话的技术,用来在中心统一数据库和大量远程数据库间进行双向数据复制。它支持多种统一数据库服务器,其中包括非 Sybase 数据库。远程站点的管理和资源要求已降到了最低限度,因此,它非常适于各种移动数据库。每个同步会话结束后,这些数据库就会保持一致。

 

复制服务器 是一种基于连接的技术,用于双向事务复制。它非常适于使用高速网络连接的少量企业数据库间进行的复制,通常每个站点有一个管理员。在这类系统中,有可能将延迟时间缩短到几秒钟。

 

MobiLink是SQL Anywhere中的一个组件,可用于具有以下要求的复制系统:

 

大量数据库 MobiLink 用于支持大量的远程数据库。在单个系统中,可支持数以千计的远程数据库。

 

不定时连接 MobiLink 支持不定时连接到或间接连接到服务器所在网络的数据库。MobiLink 的可伸缩性仅受统一数据库管理系统可伸缩性的限制。

 

灵活同步调度 通常,应用程序按指定的间隔(几分钟、几小时或几天)进行连接和同步。

 

低到中等容量 每次只能给远程站点中的一个准备下载信息。在 MobiLink 系统中,如果数据量很大,就会造成较长的连接时间,因为远程站点在同步完成之前不能断开连接。

 

异构数据库 MobiLink 支持将许多常用的关系数据库用作统一数据库(Oracle, IBM DB2, MS SQL Server, Sybase ASE)。远程站点的模式可以与统一数据库的模式不同,因为可通过编写脚本来控制同步过程。

 

MobiLink 的工作方式是:将远程数据库上的多个事务的结果合并成一个更改集,然后应用到统一数据库中。因为同步始终在事务边界进行的,所以保持了参照完整性。不保留在组件事务过程中所做的各个更改的顺序:因为从不复制未提交的数据,所以保留了数据完整性。同样,MobiLink在数据传输的过程中通过用户授权、数据压缩加密等手段保证数据在传输过程中的安全性。

 

由MobiLink组成的同步系统主要分为以下几个部分:

 

 

统一数据库 是指企业的中心数据库,此数据库包括同步系统中所有信息的集中副本。

 

统一数据库服务器 管理统一数据库的服务器或 DBMS。此服务器可以是 Sybase 产品,如 Adaptive Server Anywhere 或 Adaptive Server Enterprise,也可以是其它公司生产的受支持系统。例如Oracle、IBM DB2和MS SQL Server。

 

ODBC 连接 MobiLink 同步服务器和统一数据库之间的所有通信都通过一个 ODBC 连接进行。ODBC 使同步服务器可以使用多种统一数据库系统。

 

MobiLink 同步服务器 此服务器管理同步过程并提供所有 MobiLink 客户端与统一数据库服务器之间的接口。

 

网络 MobiLink 同步服务器 dbmlsrv9 与 MobiLink 客户端 dbmlsync 或 UltraLite 之间的连接,可以使用多种协议,比如TCP/IP、HTTP、HotSync和ActiveSync等。

 

MobiLink 客户端 客户端可以安装在以下设备上:手持式设备(如 Palm Pilot 或 PocketPC)、服务器、桌上型计算机或者嵌入式设备(如手机或自动售货机)。支持两种类型的客户端:UltraLite 数据库与 Adaptive Server Anywhere 数据库。在一个 MobiLink 安装中可以同时使用上述两种或其中一种客户端。

 

同步是 MobiLink 客户端和同步服务器之间的双向数据交换过程。在此过程中,客户端必须建立并维护与同步服务器的连接。如果成功,此会话将使远程数据库和统一数据库保持相互一致的状态。

 

一般由客户端开始进行同步过程。它开始于与 MobiLink 同步服务器建立的连接。MobiLink的同步主要分为三个阶段:

 

 

上载流 MobiLink 客户端自动跟踪记录在上一次成功同步之后远程数据库中插入、更新和删除了哪些行。连接一旦建立,MobiLink 客户端将一个列出所有这些更改的列表上载到同步服务器。

 

上载流由远程数据库中被修改的各行的新行值和旧行值组成。如果某行被更新或删除,旧行值是指上次成功同步后时的那些值。如果某一行被插入或更新,新行值是指当前的行值。即使在到达当前状态之前,行已经更改过数次,也不会发送任何中间值。

 

MobiLink 同步服务器接收上载流并将更改应用于统一数据库中。所有的更改一般都在一次事务中完成应用。此后,MobiLink 同步服务器将提交该事务。

 

 

下载流 MobiLink 同步服务器将使用您创建的同步逻辑编译在 MobiLink 客户端插入、更新或删除的一组行。它将这些行下载到MobiLink 客户端。为了对该列表进行编译,MobiLink 同步服务器将在统一数据库中打开一个新事务。

 

MobiLink 客户端接收下载流。当下载流到达时,MobiLink 客户端认为统一数据库已成功应用所有上载的更改,并将确保这些更改不会再发送到统一数据库中。

 

接下来,MobiLink 客户端将自动对下载流进行处理,删除旧行、插入新行以及更新已更改的行。所有的更改将在远程数据库中的一个事务中完成应用。此后,MobiLink 同步服务器将提交该事务。

 

 

可选的下载确认 MobiLink 客户端可以将一个简短确认消息发送给 MobiLink 同步服务器。

 

MobiLink 同步服务器接收到确认消息。该消息让同步服务器知道客户端已经接收并处理了所有下载的更改。作为响应,同步服务器将提交上一步的下载事务。