CN1271535C - 用于无线设备中资料和动作同步的方法及资料存储系统 - Google Patents

用于无线设备中资料和动作同步的方法及资料存储系统 Download PDF

Info

Publication number
CN1271535C
CN1271535C CNB02126659XA CN02126659A CN1271535C CN 1271535 C CN1271535 C CN 1271535C CN B02126659X A CNB02126659X A CN B02126659XA CN 02126659 A CN02126659 A CN 02126659A CN 1271535 C CN1271535 C CN 1271535C
Authority
CN
China
Prior art keywords
data object
data
server
personal digital
digital assistant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB02126659XA
Other languages
English (en)
Other versions
CN1405690A (zh
Inventor
史晓斌
德波拉·B·林可维奇
威廉·M·德洛斯特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujin Precision Industry Shenzhen Co Ltd
Hon Hai Precision Industry Co Ltd
Original Assignee
Motorized Power Network Technology Co ltd
Hongfujin Precision Industry Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorized Power Network Technology Co ltd, Hongfujin Precision Industry Shenzhen Co Ltd filed Critical Motorized Power Network Technology Co ltd
Publication of CN1405690A publication Critical patent/CN1405690A/zh
Application granted granted Critical
Publication of CN1271535C publication Critical patent/CN1271535C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W99/00Subject matter not provided for in other groups of this subclass
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于使移动式电脑设备上的资料存储器和远程服务器上的资料存储器同步的方法,该远程服务器基于一种存储在该远程服务器中由用户所定义、并和特定的资料对象相一致的商业逻辑。该方法采用了一种同步讯息,该种同步讯息包括有一需要更新的资料对象、一执行于该资料对象上的动作以及在该动作执行前相应于该资料对象的旧的资料对象。用户可以利用该商业逻辑来定义针对一特定类型资料对象的确认、处理以及矛盾确定的功能性。该方法包括有在线和离线的同步功能。本发明的方法可以支持任何类型的服务器资料源,还允许位于不同地点的资料的独立复制。

Description

用于无线设备中资料和动作同步的方法及资料存储系统
【技术领域】
本发明涉及一种使移动式电脑设备上的资料存储器和远程服务器上的资料存储器同步的方法,该方法是通过传送资料对象以及由该资料对象所引发的动作来实现的。
【背景技术】
在电脑发明后不久,人们开始把它们连接起来。多台电脑之间的连接可以使数量较少的资源诸如打印机、内存设备等被共享。起初,电脑之间通过电缆进行连接,随着技术的发展及人们对灵活性需求的增加,无线通讯方式出现并发展起来。早期的无线通讯技术涉及移动设备与网络连接端口之间的周期性连接,该连接是由在移动式电脑设备和网络连接端口之间的线缆或红外线信号来实现。该技术需要在移动设备上连接一线缆到网络连接端口,或是在移动设备上设置一红外线装置,其要求该红外线装置与网络连接端口上相应的红外线装置必须处在一定的范围内。基本上,早期的无线通讯技术能使移动设备之间或与别的电脑设备之间在有限的物理范围内进行通讯。而在二十世纪,当电脑设备可通过新兴的无线通讯网络如逐渐出现的移动电话系统来通讯后,上述使用范围的限制被逐渐解决。
到二十世纪后期,无线网络在全世界被广泛应用。移动式电脑设备可以在任何区域与远程电脑主机的信息储存设备或“资料服务器”进行通讯。例如,通过该通讯网络,一销售人员使用装备有无线调制解调器的膝上型电脑,可以与所属公司的中央库存和订单系统保持联系。另外,移动设备如个人数字助理(Personal Digital Assistant,PDA)以及精密移动电话可以让用户连上汇聚了全世界资源的互联网。很多移动设备也能通过连上公共电话网络(Public Telephone Network,PTN)和/或互联网,彼此进行通讯。
通过目前的移动式电脑设备,用户可连接到电子邮件服务器、网站服务器、在线银行和其它的位于远程资料服务器的“后台”应用设备。诸多公司,认识到通过移动设备连上他们自身的系统或服务器的潜在优势,希望通过提供给其工作人员或客户的远程通讯使用者界面和后台系统,把他们的业务扩展到无线世界上,最终提供给用户以移动设备进行交易的能力。
当然,新的无线技术具有其自身的问题,例如,受限于自身的尺寸,很多移动式电脑设备只提供很小的区域用于输入及提供很小的存储器空间给资料和应用软件。这些问题意味着,在移动设备上进行输入是很困难的,且在移动设备上运行的应用软件都是很小型的。另外还存在一些诸如对无线连接的维护费用高以及确保移动设备上的资料一致、准确以及是否为最新等有关的问题。
当前解决在有限区域进行输入或输出的问题可以利用手写识别软件。然而,手写识别软件都很庞大,在移动设备上使用则又涉及到存储器不够的问题。另一解决方法是提供一小键盘,然而这种小键盘一般较难于使用。还有一种解决方法是采用屏幕图标及一指示笔,其中每一图标代表某一定义的动作;指示笔用于点选移动设备显示屏上的特定图标,当针接点选一特定图标,该图标对应的动作即开始执行。众多个人数字助理采用了这种图标/指示笔的方法,因为它似乎在输入的简易性和执行输入软件的需求之间提供了最好的平衡。
如上所述,多数移动设备均只具备有限的存储器容量,移动设备的存储器容量不仅决定了在移动设备上执行的应用软件必须非常小,而且,还限制了所有与所述应用软件有关资料储存装置空间的大小。解决这种问题的一种方法是在另一第二电脑设备(如一资料服务器)中设置一数据库,并让移动设备周期性地连接该第二电脑设备以进行同步。
当然,如果一特定的资料源,如一产品数据库,存储于一远程电脑上分享给多个用户使用,就会涉及到资料连续性或“资料同步”问题的出现。资料同步是一过程,其确保在一数据库中的资料与另一数据库中相应的资料保持一致,以使该资料的任一用户均了解到其它用户对该等资料的任何变更。例如,如果一个公司在库存中有一个棒球,第一个销售人员卖出了这个棒球,第二个销售人员有必要了解到公司不再有棒球可供销售。为了让第二个销售人员知道库存的变更信息,至少需完成如下两项事情:(1)第一个销售人员必须更新服务器以反映棒球的最新数目;(2)资料必须能被第二个销售人员所使用,如果该等资料位于销售人员的移动设备上,则必须对其进行更新以反映服务器上的变更信息。
在数据库连接同步过程中存在另一问题,即移动通讯常具有区域相关性或间断性。一个用户可能不需时时与网络连接,或一个确定的连接可能会在传输过程中出人意料地被中断。而且,无线连接的费用一般较有线连接的高,如果某一用户需要持续连接,维持该连接的支出费用可能会超过由无线连接所产生的利润。
【发明内容】
本发明克服了现有技术中的不足,提供了一种数据库同步方法,其可使本地移动式电脑设备中的数据库和远程服务器中的数据库同步。本发明还提供有一种验证作用于资料对象上之动作的方法,用于保证本地移动式电脑设备中的数据库和远程服务器中的数据库能够同步。
使本地资料存储器和位于服务器上的一远程资料存储器同步的方法,该本地资料存储器位于一采用了无线通讯技术的电脑设备,或称“移动式电脑设备”上,诸如个人数字助理(PDA)、便携电脑、网络电话或者膝上型电脑等。如果远程资料存储器是多台电脑设备提供或存储资料,就会产生资料互相矛盾的问题。本发明所揭示的方法利用在服务器上运行的商业逻辑来解决资料矛盾的问题。该商业逻辑由移动式电脑设备的用户定义,并被制成一特定类型的资料对象或“技术领域”。或者说,每一技术领域都有其自身的商业逻辑。
本发明的资料同步技术采用了一种同步讯息,该同步讯息包括有一要更新的资料对象以及一作用于该资料对象上的动作。除了该资料对象以及该动作之外,该同步讯息还包括有一旧的资料对象。该旧的资料对象为该资料对象在该动作执行以前所对应的资料对象。利用该旧的资料对象,服务器可以在该动作执行以前,验证该本地资料存储器与该远程资料存储器是否同步。
诸如读以及更新之类的动作均在移动式电脑设备上被执行于该资料,这可以是在线模式,也可以是离线模式。处于在线模式时,执行于资料对象上的动作是在移动式电脑设备和服务器上同时进行的。处于离线模式时,更新之类的一些动作只是在移动式电脑设备的本地资料存储器中被执行,然后该资料对象、执行于该资料对象上的动作以及该动作被执行的时间均被存储于该移动式电脑设备中。
在离线模式下,移动式电脑设备会周期性地执行一同步操作,即进入在线状态以向远程资料存储器传送最近一次同步过程中所存储的所有资料对象和动作。同步的时间间隔可以由移动式电脑设备的用户设定,也可以由远程服务器上的系统管理器设定,或者由外部的环境诸如移动式电脑设备是否能够连上远程服务器来决定。此外,该时间间隔也可以由移动式电脑设备或远程服务器的内部环境来决定,诸如移动式电脑设备或远程服务器是否改变了需要同步的资料对象。同步的时间间隔可以有规则也可以没有规则,并可以从小于一秒到大于一年之间变化。在同步过程中,服务器可以以动作被接收的次序,也可以基于相应的时间标示来将资料对象和相应的动作传送到服务器资料存储器。在移动计算设备处于离线状态时,更新复制可以使作用于资料对象上的更新操作在本地执行。在同步过程中,更新操作被存储并传送至远程服务器。然后于本地执行的更新操作在远程服务器中被执行,执行的结果回传移动式电脑设备。
本发明的便利还包括有资料源独立复制。换言之,本发明的方法可以支持任何类型的服务器资料源,比如关系型数据库、目录系统、典型文件系统或其它的企业系统。不同类型的服务器资料源都被支持以“插件”,或硬件或软件模块,这些东西都会给一更大的系统增加一项特色或服务。此外,本发明的技术还允许位于不同地点的资料的独立复制。存储在移动式电脑设备上的资料可以由以下的系统提供,如关系型数据库(即微软的Access)、单键B-tree存储器(即掌上型数据库)或简单的一个文件系统。
【附图说明】
图1是一通讯系统的方块图,该通讯系统包括两个典型的移动式电脑设备,其可用于实施本发明所揭示的方法。
图2是本发明的一典型个人数字助理(PDA)示意图。
图3是本发明的一无线应用程序示例架构的方块图。
图4是服务器中各部件的方块图。
图5是在客户端移动式电脑设备的数据管理过程流程图。
图6是图5中同步步骤的流程图。
图7是在服务器端的数据管理过程流程图。
图8是更新识别过程的流程图。
图9是图1及图2中个人数字助理的主页屏幕示意图。
图10是图1及图2中个人数字助理的编辑过滤器屏幕示意图。
图11是图1及图2中个人数字助理的最佳产品搜索屏幕示意图。
图12是图1及图2中个人数字助理的另一产品搜索屏幕示意图。
【具体实施方式】
如图1所示,其为一典型的通讯系统100的方块图,该系统100可支持本发明所揭示的方法。通讯塔105提供有多重无线通讯信道,比如与个人数字助理(PDA)101连接的通讯信道115以及与膝上型电脑103连接的通讯信道117。通讯系统100、个人数字助理101以及膝上型电脑103均为可支持本发明方法的典型移动式电脑系统和设备。为简便起见,一电脑设备,无论其是否为可移动,只要采用了无线通讯技术,我们均称它为“移动式电脑设备”。许多类型的移动式设备,包括已在使用的和即将被发明的,均包含于本发明的权利要求中。例如,当今使用的许多移动电话即可利用本发明的方法可使其对资料和国际互联网的访问更加便利。另一类可利用本发明所揭示方法的系统为无线电子证章以及用来与其通讯的发射机和接收器。
通讯塔105通过专用或公用的通讯信道119与服务器107相连。当然,对于熟知此项技艺的人士来说,通讯信道119可以是有线通讯,也可以是无线通讯。服务器107可实现本发明标的的部分内容,以下会对其作更为详细的说明。服务器107和局域网(LAN)121相连。局域网121又与电脑设备109及111相连,其可为服务器107及电脑设备109及111提供访问国际互联网113的信道。个人数字助理101以及膝上型电脑103也可经由局域网121、服务器107、通讯信道119以及通讯信道115或者117来访问国际互联网113。
通讯系统100仅为本发明的一实例,由该系统所衍生出的其它一些系统,甚至是不同类型的系统,也可以采用本发明的方法。例如,本发明的方法可以于局域网的资料服务器架构中实现。对于熟知此项技艺的人士来说,所揭示的方法可以方便地在任何通讯系统或其它类型存在着频宽和/或设备内存问题的系统内展开具有一定优势。本发明不仅限于采用无线通讯链路的系统;虽然在该领域本发明的便利性最容易体现出来。
图2是图1所示的个人数字助理101的示意图。个人数字助理101可以执行本发明所揭示的方法,其输入与输出分别由资料输入区205以及显示屏203提供。本实施方式所述的资料输入区205为一小键盘,用户可以在上面键入信息。另外,显示屏203也提供有资料输入功能。显示在显示屏203上的小图标(图中未画出)代表着预先定义好的、个人数字助理101可以执行的动作。用户可利用指示笔207来点选显示屏203上的一个特定的图标从而执行相应的动作。排列于个人数字助理101底部的控制按钮209可以供用户设置不同的功能,比如音量和显示屏203的亮度等。在另一实施方式中,资料输入区205可被程序化以使指示笔207可以在其上书写,然后利用个人数字助理101中的笔迹分析软件分析该笔迹以决定一合适的动作。
图3是一无线应用程序的示例架构的方块图,该应用程序库在客户端,如个人数字助理101以及如服务器107(如图1所示)之类的服务器上运行,并采用了本发明所揭示的技术。无线应用架构301包括有一无线资料复制器307以及一移动式交换器309,并向诸如个人数字助理101之类的可移动式设备提供促进无线应用程序发展的服务。该无线应用架构301是基于标准建构,并可容易地成为设备、操作系统或独立的数据库。
移动式交换器309为移动客户端和跨平台客户端提供实时的访问企业服务器或其它类型的服务器的通路。内存的动作和配置,诸如在服务器中所执行或配置的程序和对象,可以由一客户端无线设备所控制。在本实施方式中,移动式交换器309也是基于可扩展标示语言(XML)和超文件传输协议(HTTP),可扩展标示语言(XML)使设计者可以定义、传送、验证以及解释应用程序之间和组织之间的资料,超文件传输协议(HTTP)是国际互联网所运用的根本协议,其定义了信息采用何种格式化及如何传送,以及网络服务器或浏览器应该采用什么动作以响应一特定的需求。XML和HTTP均使用了一种流行的方式—远程过程调用(RemoteProcedure Call,RPC),以利用网络在不同电脑中的单独程序之间实现进程间通讯(Inter-Process Communication,IPC)。当然,RPC和IPC也可以在单独的电脑设备上被执行。所揭示的无线应用架构301提供简洁有效的环境,以发展在无线结构中运行的主从式应用程序。
无线应用架构301的客户端库提供如下用于关系型客户应用程序的功能:
(1)生成远程过程调用的内容(方法名称和参数);
(2)形成XML信息;
(3)利用HTTP协议将该XML信息传送至服务器;以及
(4)接收并解释来自于服务器的相应的响应。
无线应用架构301的服务器端库提供如下用于关系型客户应用程序的功能:
(1)接收并解释一客户端的请求信息,尤其是利用上述的客户端库所产生、形成以及传送的请求信息;
(2)根据客户端的请求信息所请求的特定RPC,搜索一适合的程序;
(3)调用该合适的程序;
(4)将该合适的响应发回至客户端。
本发明中的远程过程调用(RPC)支持无线环境中以下的数据类型:整数(4位);布尔函数;字符串;日期;双精度;base-64;数组;结构以及杂凑表(hash table)。
无线资料复制器307处理并管理无线设备中的资料,它使用户能够在无线设备中选择用户所需要的特定信息,并且仅复制所选择的信息,利用该方法以节省传输媒介中的频宽和无线设备中的内存资源。无线资料复制器307将系统数据库用作客户端资料缓存,并给每位用户提供一无线设备资料过滤器,或称用户化脚本(customizable scripts),用以说明特定用户选择存储在移动式设备上的信息。资料过滤器可以由特定的用户在该用户的移动式设备上定义,或者,由系统管理器或系统程序员来生成一公用数据过滤器(或称标准过滤器)的菜单,然后用户依其特定的环境和职责从该菜单上做简单的选择即可。标准过滤器也可以简单地模块化,这样用户就可选择并定制。资料过滤器和标准过滤器可以很简单,就如等式匹配游戏一样,也可以很复杂,就如运用了乘法规则的乘算表一样。
无线资料复制器307和移动式交换器309提供有一平台,专用应用程序可以建构于其上。在本实施方式中,专用应用程序包括有移动式电子商务应用程序310、移动式医院应用程序320、移动式物流应用程序330以及移动式金融应用程序340。该专用应用程序310、320、330和340都仅仅是作为例子。实际上,本发明所揭示的方法可以用来实现任何应用程序,这些应用程序可以利用移动式访问中心应用程序或数据库服务器来获得帮助。应用程序310、320、330和340都是本系统的应用程序组件303之一。
任何一个应用程序310、320、330和340都包括有应用程序产品305。在本实施方式中,移动式电子商务应用程序310的应用程序产品305包括有应用程序A1 311(APP A1)、应用程序A2 312(APP A2)和应用程序A3 313(APP A3)。移动式医院应用程序320的应用程序产品305包括有应用程序B1 321(APP B1)和应用程序B2 322(APP B2)。移动式物流应用程序330的应用程序产品305包括有应用程序C1 331(APP C1)、应用程序C2 332(APP C2)和应用程序C3 333(APP C3)。最后,移动式金融应用程序340的应用程序产品305包括有应用程序D1 341(APP D1)、应用程序D2 342(APP D2)和应用程序D3 343(APP D3)。如应用程序组件303一样,应用程序产品305的特定构成对本发明而言并非是必要的,而仅仅是作为一个例子。例如,APP A1 311可以是一个移动式销售力自动控制应用程序;APP B1 321可以是一个移动式病人管理系统;APP C1331可以是一个移动式传输管理系统;APP D1 341可以是一个移动式银行业务应用程序。
图4是本发明的服务器组件的方块图。如下的流程是在图1所示的服务器107上执行并支持上述与图3结合起来所描述的服务器端库。Java服务引擎401执行透过其它流程访问到该引擎的软件、或Java applets和/或servlets。虽然本例所使用的是Java语言,但是本发明实际上可以用任何软件语言来实现。特定的语言对本发明的实质并不重要。在本实施方式当中,这些组件均以Java servlets构成。Java servlets与applets类似,也是一些应用程序,或为软件代码的集合,其可扩展网络浏览器和Java服务引擎401的功能。这种方法可以减小生成不同的扩充以和不同的后端系统相连接的需求。Java服务引擎401可根据不同的后端系统负载新的servlets,而不必修改Java服务引擎401本身。这样,servlets只有在它被需要的第一时间才被安装,并且并非所有时间都会生成对特定后端系统过程的需求。
通讯管理器403控制进出移动式设备的信息,为方便以下的描述,该移动式设备设为个人数字助理101。通讯管理器403使服务器107和个人数字助理101之间保持基于传输控制协议(TCP)的联接。在联接的服务器107端,通讯管理器403接收个人数字助理101处的字符串流形式的远程过程调用,并解析该远程过程调用字符串流,将字符串流参数转换成数据结构,然后调用具有已转换的数据参数的合适的本地程序。由远程过程调用所生成的结果被存储于数据结构的输出参数中。
和通讯管理器403通讯连接的是一复制管理器405、一缓存管理器411以及一图表管理器407。复制管理器403控制客户端之间的双向资料同步,比如个人数字助理101和服务器107之间的资料同步。此外,复制管理器403提供端对端的传输交易控制,该传输交易控制可以检测并解决不同客户端之间的资料冲突。与复制管理器405连接在一起的是初级域管理器409,详述如下。
资料之间的冲突可以基于下述四类方法来解决。这四类方法是“最后所写”、“基于时间标示”、“基于值”以及“基于时间标示和值”,详述如下:
(1)在“最后所写”冲突解决方法中,写入数据库的最后的值会成为对象的值。这类方法适用于那些极不可能发生的情形,即多人希望更新同一份资料。这会产生一个问题,那就是如果前一次的修改是在离线状态下进行的,而且直到后一次修改进行以后才被复制,则该前一次的修改会覆盖后一次的修改。
(2)在“基于值”的方法中,如果个人数字助理101的“旧值”和服务器107的当前值相匹配的话,服务器107就接受修改。
(3)在“基于时间标示”方法中,如果修改的时间标示大于(时间上晚于)服务器107中对象的当前时间标示,修改就被接受。这种方法之前提是假设个人数字助理101的时钟与服务器的时钟同步。
(4)在“基于时间标示和值”的冲突解决方法中,由个人数字助理101所提供的修改时间标示必须晚于服务器07上的修改时间标示。此外,由个人数字助理101所提供的作为“旧值”的值必须和服务器107上的当前值相匹配。这些条件可以确保修改是最近的,而且在做出修改时,用户可以知道服务器107中对象的当前表示法。注意如果个人数字助理101的数据库和服务器107的数据库都能够操纵对象属性层(相较于对象层)中的时间标示,则在更新操作进行时,可以生成一多重请求以更新一特定的对象。
对那些没有被服务器107中的复制管理器405所解决的资料所作的未被接受的修改,会被存储起来供系统管理员检查。系统管理员可以根据caseby case来决定一特定的修改是否应该被接受。
在本实施方式中,图表管理器407管理有两个图表,皆为XML格式。第一图表,或称主图表描述服务器107以及存储在资料存储器417中的主数据库的图表,以及该主数据库的图表之间的关系。当然,如同上述与图1结合所述的内容一样,主数据库和资料存储器417无需一定处于服务器107上,其可以处于电脑设备109和111之一或二者上,并能被服务器107透过网络121所访问。图表管理器407中之一第二图表描述个人数字助理101的数据结构。当资料从主数据库检索出来后,图表管理器407就从所检索的资料中提取信息,并将该提取的信息传送至通讯管理器403以传给个人数字助理101。图表管理器407还有一附加的次图表,用以从其它移动式设备,诸如膝上型电脑103中提取信息。
缓存管理器411在资料对象从主数据库中被提取出来前为其提供一缓存,以使来自个人数字助理101的复制资料请求更有效。缓存的目的和功能是为电脑领域内的人士所熟知的。
开放式数据库互连(Open Database Connectivity,ODBC)连接管理器413(以下简称为ODBC连接管理器413)和图表管理器407进行通讯连接。除了为熟知此项技术的人员所熟悉的连接池服务(connection poolservices)和本文服务(context services)外,ODBC连接管理器413在资料访问管理器415和图表管理器407之间还预建了一套ODBC连接,以从ODBC连接获得并返回开放式连接,以及在停工时返回所有的资源。ODBC连接管理器413也处理连接失效和通讯失效的情形。
资料访问管理器415控制着对资料存储器417的访问。在本说明书中,资料存储器417是指“远程”的资料存储器,而个人数字助理101上的资料存储器是指“本地”资料存储器。“本地”及“远程”的指定仅为简便起见,资料存储器417也可以被称为本地资料存储器,而移动式电脑设备上的资料存储器也可以被称为远程资料存储器。对“本地”及“远程”的指定仅为基于这样一个事实,即两个资料存储器没有驻存于同一设备上。资料访问管理器415可以是任何商用的数据库管理系统,或者是用户构建的系统。资料访问管理器415的具体的细节对本发明的精神并不重要,而且也应当为熟知本项技术的人士所熟悉。
资料应按技术域进行编排以使资料的存储、收集以及分发降低对特定服务器程序,如数据库管理系统和其它所采用的系统的依赖。特定技术域包含有特定对象的定义,包括构成对象的单个的资料组件,或“属性”。每条属性均具有数据类型和一个或多个值。例如,一“账户”对象可以包含与银行账户有关的属性,比如所有者姓名和余额等。在一服务器中,一对象也可以是相关的资料的逻辑表示。每个对象都有唯一的识别符,或相应对象的唯一的密钥。当一特定的对象被更新时,所有与该对象有关的资料也会被更新。诸如移动式电子商务应用程序310、移动式医院应用程序320、移动式物流应用程序330以及移动式金融应用程序340(图3所示)之类的应用程序都有与其相对应的域集合。
例如,移动式医院应用程序320可具有病人对象和医生对象,移动式电子商务应用程序310可包含产品对象。特定的应用程序310、320、330或340的对象均置于域管理器中,如域管理器一421,域管理器二422,域管理器三423。由于不同类型的对象需要不同类型的操作,因此每一域管理器421~423都包含有一套客制化的功能或者商业逻辑,比如商业逻辑431、商业逻辑432和商业逻辑433等。域管理器421~423透过资料访问管理器415从资料存储器417中提取与各自对象有关的信息。每一域管理器421~423都是相关域内信息管理的控制点。诸如搜索、增加、更新和删除等操作均是透过域管理器来完成。商业逻辑431~433为客制化的域,以使每一特定域的处理过程能够进行。商业逻辑431~433也可以包含用于解决数据冲突的逻辑。
为了防止不必要的软件复制,所有域管理器421~423的公共功能都集中在初级域管理器409。初级域管理器409是一个基础对象,域管理器421~423可从它那里继承一些属性和方法。
图5是客户端移动式电脑设备如个人数字助理101上的数据管理程序500的流程图。该流程始于开始步骤501,紧接着即为交易初始化步骤503,在这一步骤中个人数字助理101的用户执行一些动作以处理资料。例如,使用个人数字助理101的销售人员可以从客户那里接收购买特定棒球的请求。个人数字助理101上的本地数据库被更新以显示棒球库存量的变化,该库存量由服务器107上的数据库表示。在本例中,上述个人数字助理101的本地数据库可以被服务器107上的中央数据库所同步,也可以不被该中央数据库所同步。当然,一旦该棒球的库存量被输入到该本地数据库,则该本地数据库和中央数据库就彼此不同步了。
在资料创建或更新步骤507中,程序500确定该交易是代表新的资料还是对已有资料的更新。新的资料可以是销售人员在输入新的客户信息时所生成的帐户对象。虽然不大可能,但是如果生成或接收的资料没有改变或产生本地数据库,或者如果资料被标以“没有存储”(下面会解释),则控制过程会从步骤507跳到结束步骤523,交易的处理过程就此结束。如果资料是新的或被更新,则转至当前连接步骤509。在此步骤中,程序500确定在个人数字助理101和服务器107之间是否具有一当前动态连接。如果没有,则转到插入同步序列步骤511,在该步骤,资料被置于个人数字助理101的存储区域,那些未决的交易均存储于此。此外,这些资料的状态被设为“陈旧”,以下会对此做更为详细的解释。如果该程序在步骤509确定个人数字助理101和服务器107在当前是连接着的,则流程会转到同步步骤513。
资料在步骤509被插入到同步序列和在步骤513的同步化均涉及到将资料格式化为适合传送的格式,比如生成远程过程调用的内容(方法的名称和参数),以及基于所生成的内容和在步骤503所生成或者接收的资料形成XML信息。为了实现正确有效的同步,程序500将下列资料状态之一分配到每个对象:
(1)新:这种状态指在个人数字助理101上已经生成但在服务器107中未存在的对象。适合于相应对象的“增加”对象操作,或者“方法”必须在下一同步过程中被传送至服务器。该新对象的一些属性比如唯一的对象密钥须由服务器107生成并回传给个人数字助理101,并确定服务器107中的增加操作是成功的。当然,如果增加的操作不成功,服务器107需要将此情形传送给个人数字助理101,这样,个人数字助理101就可以采取合适的动作。
(2)更新:一个对象的更新指自从上次同步后已经在本地个人数字助理101资料存储区被更新。在更新的同一时刻,该对象的更新值必须被传送到服务器107上。任何可能发生的冲突,如两个互不相识的销售员都试图销售同一产品时发生的冲突,都会在服务器107上通过复制管理器405解决(图4)。然后更新过的对象重新被传送到个人数字助理101以确保个人数字助理上的副本资料与服务器107上的一致。如果复制管理器405确定来自于个人数字助理101的对象因为数据冲突而无效时,传送到个人数字助理101的更新对象还必须简要说明该冲突事实。
(3)不能存储:被指定为“不能存储”的对象来自服务器107并保存到个人数字助理101上。如果有必要的话,该对象可以会被个人数字助理所遗弃。一个典型的例子是个人数字助理临时需要某数据项目,而其属性不能被修改。当环境改变时,个人数字助理101可以将对象状态从“不能存储”状态改为“可存储”状态。
(4)存储:被指定为“存储”的对象不管是在本地的还是在远程的资料存储区都被作为永久的一部分,并与至少一个包含在同步过程中的预先定义的资料过滤器相匹配,从而使其属性值被保留在一个同步状态。
(5)陈旧:被指定为“陈旧”的对象被保留在个人数字助理101上但不包括在同步过程中。个人数字助理101可以根据其自身需求及(或)该陈旧对象的自身特性来决定保留还是清除该指定为陈旧的对象。
(6)删除:被指定为“删除”的对象是指已经从个人数字助理101的资料存储区移除的对象,且在一个同步过程中该删除信息需被传送到服务器107中。客户可以从本地资料存储区移除该删除的对象,而只需在一个同步过程中传送该对象的唯一密钥至服务器,或者标注该对象为删除状态,而正如同步过程所要求的那样,只有当该对象从服务器107成功删除时才将其从本地资料存储区移除。
个人数字助理101特定对象的状态维持追踪的方式对于本发明的精神并不很重要。如果个人数字助理101将对象保存在一个关系数据库中,该对象的指定状态可以简单地作为表格中的一个属性值范围。另外一种可替代的保存该状态信息的方法是,通过将对象的不同状态隔离在不同的文件里。例如,一个“不能保存”的对象可以保存在一临时文件中,只有当该“不能保存”状态转换为“保存”状态时才被保存到资料存储区。
步骤509是向步骤511进行还是向步骤513进行取决于个人数字助理101是处于在线状态还是处于离线状态。如果个人数字助理101处于在线状态,则转向步骤513且在步骤509创建的XML信息被传送到服务器107上。如果个人数字助理101处于离线状态,则转向步骤511,在该步骤,XML信息被插入到一个同步步骤中。接着,再转回至步骤509,在该步骤,个人数字助理一直为待机状态,直到在其与服务器107之间建立一条连接。个人数字助理101周期地核查一个连接是否被建立,例如当连接周期为定期排程事件或数据传输被服务器107所初始化等;或者当个人数字助理101需要传送一条或多条信息,被设定为初始化一个连接时,核查建立连接的条件是否已经具备。如果当个人数字助理101在等待与服务器之间建立一个连接时,一个新的交易被初始化,程序500会像处理以前的交易一样将该新的交易放到同步队列中等待建立连接,以便能产生一个同步过程。
上述提到的同步周期可以是固定不变的也可以是可变的。一个同步排程可以通过个人数字助理101或服务器107上的用户接口(UI)来建立。用户亦可在个人数字助理101或服务器107上利用该用户接口来初始化一同步过程。如果在初始化一同步过程的同时,在个人数字助理101和服务器107之间还未建立连接,初始化同步过程的个人数字助理101和服务器107辨识出该状态,并将连接请求放进同步序列中,然后周期地测试两者之间的连接是否建立或建立连接的必要条件是否存在。两者之间的连接一旦建立,同步过程将继续,控制过程509将转向步骤513。
该同步过程需保持本地的资料副本与服务器107上的对应资料一致。本发明的同步是基于资料过滤器的,这些将在后面结合图9到图12进行详细论述。个人数字助理101上的资料对象副本,如本地或客户端资料,通过一系列的客户端/服务器端的交易,与服务器107上对应的资料对象,如服务器端资料达成同步。
同步步骤513始于个人数字助理101向服务器107发送一个同步请求对象时。该同步请求对象会压缩所有个人数字助理101需要提供给服务器107的资料,以便执行一个特定的同步动作,包括一时间标记、一可选择的过滤器、一可选择列表、或一需要同步的对象“矢量”或一同步对象,以及一个包括个人数字助理101当前的地理位置信息的可选的位置对象。在另一实施方式中,该位置对象可以是一个既包括个人数字助理101的当前地理位置信息还包括其未来地理位置信息的矢量。
有六种同步行为或操作:一同步过滤操作,一获取删除操作,一获取创建操作,一发送修改操作,一发送创建操作及一发送删除操作。该六个操作在下面结合图6有详细描述。每一操作都带有两个参数,一同步请求对象和一第二字段,或“结果ID”,其用于表明对应于该同步请求对象,个人数字助理101希望从服务器107返回的信息。该结果ID设置有如下几种值:
(1)全部:该“全部”结果标记值意味着服务器107必须返回该操作有关的所有对象的ID及其状态值。该“全部”结果标记值应该慎用,应为其会导致个人数字助理101与服务器107之间的通讯量剧增。
(2)更新:该“更新”结果标记值意味着服务器107应该返回与该更新操作有关的所有对象的ID及其状态值。此外,当服务器107上的副本与个人数字助理101上不一致时,对象副本也应返回。
(3)ID:该“ID”结果标记值意味着服务器107应该返回与该操作有关的所有对象的ID及其状态值。另外需返回基于操作之类型的信息。
(4)失败:该“失败”结果标记值意味着服务器107仅仅返回操作过程中不能处理的对象的错误信息。
(5)无记载:该“无记载”结果标记值意味着个人数字助理101对于接受关于操作的任何信息都不关心,服务器107应处理整个请求,而仅仅将操作完成的信息传送给个人数字助理101。
对应于特定操作的结果ID将在图6进行详细描述。该同步请求时间ID指示某特定同步操作执行的最新时间。如果资料过滤器是指定的,服务器107即利用该资料过滤器来限定返回的资料范围或“同步结果对象”。
如果可选的位置对象包括在同步结果对象里,则返回资料范围也可以基于位置对象中的位置信息来设定。例如,位于一城市的个人数字助理101用户,其在该个人数字助理101的本地资料存储区存有该城市的餐馆相关信息,当该用户旅行到另外一城市时,一个同步结果对象将包含该异地城市的餐馆相关信息。该位置信息可以基于一公用系统,如全球定位系统(GPS)或移动电话塔或一私有系统,如传送装置置于一医院房间,而仅仅在一有限的区域内发送信息。该位置对象还可以包括未来位置信息。例如通过该传送装置,一医生可以指定将来的房间矢量,不仅可以将当前房间里的病人信息下载到其个人数字助理101上,还可以把该房间周围矢量范围内的的房间内的病人信息都下载到其个人数字助理101上。
每一同步对象矢量都包括一时间ID,一对象ID,一基础对象,一对象状态ID,一旧值对象及一可选的信息字段。在一特定行为里,并不是所有的这些同步对象都必须指定。
例如,在一个添加操作中,同步对象不需要指定该旧值对象;在一个删除操作中,只需要指定要删除的对象ID即可;而旧值对象只有在更新操作时才需要指定。该同步对象的时间ID表示某特定对象在服务器107上被更新或核实的时间。如果同步对象的时间ID在某特定同步对象中没有指定,则服务器107将同步请求时间ID作为该同步对象的时间ID。对象ID指定一基础对象在整个同步对象中的唯一身份标识ID。该状态ID和信息字段描述一作为操作结果的同步对象的状态,主要应用在同步结果对象中。
当服务器107完成同步对象中指定的动作时,其会将同步结果对象传送到个人数字助理101。该同步结果对象包括一个时间ID和一同步对象矢量。该同步结果时间ID表示响应的同步操作在服务器107上执行的时间。同步结果对象中的每一同步对象的时间ID表示与该同步对象对应的行为被执行的时间。特别是当同步结果里的所有同步对象都有相同的时间ID时,如果一个时间ID没有被指定,则可以用同步结果的时间ID来代替。
同步结果中的同步对象的状态字段表示该对象与对应的操作的关系,其设定有如下几种值:
(1)更新:更新状态表示服务器107上的副本与个人数字助理101上的副本不一致。该状态意味着另外一客户在服务器收到同步请求前已经更新了数据库中的资料对象,此时个人数字助理101必须采取一适当操作来解决该种冲突。
(2)成功:成功状态表示同步对象在服务器107上处理成功,在服务器107满足同步请求时不需要对同步对象做任何修改。
(3)失败:失败状态表示服务器107不能执行某特定同步对象的操作请求。在这种情况下,该信息字段包含一关于该失败状态的文本信息。
(4)相同:相同状态表示服务器107上的对应对象同步对象时间ID没有变动。
(5)新匹配:新匹配状态表示自从个人数字助理101最后一次发出请求的时间后,对应的同步对象中描述的对象对于服务器107或某特定请求来说是新的。
(6)不匹配:不匹配的状态意味着服务器107不能找到对应值对象,可能因为其已被删除或更改,以致于不再匹配同步请求对象提供的资料过滤器。
该状态字段及其对应的特定操作将会对照图6作详细描述。
一旦同步步骤513完成,程序500将继续到良好状态返回的步骤517,在该步骤,会通过分析服务器107的返回信息来核实同步步骤513中的对象信息,如果该返回状态值信息表示某特定的资料更新或创建操作成功,则控制模块517转向标示资料状态步骤519,在该步骤,表示存储在本地资料存储区的对象值被与存储在服务器107的存储区417的对象值相匹配。如果某特定项目的返回信息表示一更新或创建操作在服务器107上没有被执行,那幺控制模块517转向重处理步骤521,在该步骤,对应的对象值被设定为与存储在服务器107的存储区417中的对象值相同。此外,任何在个人数字助理101上基于资料对象的更新或操作的行为必须被确定是否有必要采取更进一步的操作。
在步骤519和521完成之后,程序500进行到结束步骤523,在该步骤,程序500运行结束。需要注意的是,步骤517,519及521在本质上是反复迭代的。换句话来说,如果一个同步过程包括多个对象且这些对象都被处理形成一同步队列,对应于每一对象的返回信息都必须通过步骤517,519及521才能到达最后的结束步骤523。
图6为一对应于同步步骤513(图5)的典型同步程序600流程图。程序600始于开始步骤601,当同步请求操作如图5中所描述的那样被初始化的同时,该步骤被初始化。如下的每一个步骤都表示一个与同步请求对象一起传送的操作。程序600从步骤601进行到与获取删除操作相关联的获取删除步骤603。该获取删除操作重新找回从上一次获取删除操作被执行后已经从服务器107上所删除的所有对象。
对应于同步请求对象,该获取删除操作发送一时间ID和一可选择的对象ID列表至服务器107。一般来讲,对应于该获取删除操作没有对应的资料过滤器。但是,如果某特定的服务器107执行一两步过程:删除和销毁,那幺一个资料过滤器可以被发送。该获取删除操作的时间ID应被设定为个人数字助理101最近一次发送获取删除操作的时间(如果某给定的资料过滤器已经被发送)。如果该可选的ID列表与该获取删除操作一起被发送至服务器107,则该服务器107将同步结果对象回传至个人数字助理101,正如上述在图5的描述一样。该同步结果对象包含对象状态,包括已删除的和未删除的对象,连同列表上的对象ID。如果一个资料过滤器被发送,则仅仅只有符合该资料过滤器的对象状态被发送。否则,服务器107将回传一个包含自上一次同步后被删除的所有对象ID列表的同步结果对象。该同步结果对象的时间ID被保存在个人数字助理101上并被作为下一次同步请求对象的时间ID。个人数字助理101将返回的ID列表与其上保存的对象做比较,并据此更新其本地数据库。
如果该同步结果对象的结果标记值被指定为全部,则服务器107返回自上一次获取删除操作后被删除的所有对象的ID。如果提供有一ID列表,则该同步结果还将包含列表上每一ID的状态。“不匹配”状态表示该对应的对象在服务器107上不再存在。“更新”状态表示该对应的对象存在于该服务器上,但已经在该获取删除操作时间后被更新。在这种情形下,该更新过的对象副本也被返回至个人数字助理101。
更新、失败及无记载的结果标记值不适用于该操作。“ID”结果标记值会致使服务器107返回自上一次执行获取删除操作后被删除的所有对象ID。如果提供有一ID列表,则该服务器还将返回列表上每一ID的状态。在这种情形下,该结果状态不是匹配就是不匹配,且更新后的对象副本也不用返回。
接着步骤603进行到发送删除步骤605,在该步骤,个人数字助理101经由传送该同步请求对象中的发送删除对象,其包括被删除对象的对象ID,来向服务器107汇报在个人数字助理101本地数据库被删除的对象。服务器107据此更新服务器数据库并回复给服务器个人数字助理101,说明已经从服务器107的资料存储区417成功删除的对象。
完成发送删除步骤605后,程序600继续到获取创建步骤607。在该获取创建步骤607,个人数字助理101发送一时间ID和一可选的资料过滤器至服务器107。如果资料过滤器没有指定,则个人数字助理101找回自上一次执行获取创建步骤后在服务器107上所创建的所有资料对象。如果在同步请求对象中指定了资料过滤器,则仅仅返回该时间ID后新创建的符合该资料过滤器的新对象。在该操作中,不返回对象ID。服务器107回复一组同步对象矢量,每一对象均表示一新创建的基础对象。该返回对象的状态值为“新匹配”,且其时间ID对应于该对象在服务器107上创建的时间。
同步请求对象中的结果ID值为全部ID时,服务器107返回所有创建的对象;结果标记值为ID时,服务器107返回所创建对象的ID,但不返回对象本身的副本。结果标记值更新,失败及无记载不适用于该操作。
完成获取创建步骤607后,程序进行到发送创建步骤609,在该步骤,个人数字助理101通过在本地资料存储区搜索状态值为“新”的对象来创建一在本地资料存储区所创建的最新对象列表。该新对象随同上次发送创建操作执行的时间ID一起被发送至服务器107。该时间ID信息被复制管理器405用来探测及解决任何潜在的资料冲突,且在可能的情况下添加物件至服务器107的数据库。在该发送创建操作,没有指定资料过滤器,且个人数字助理101在请求中为每一对象创建一临时ID或ID密钥,用来将该对象与服务器107回复的同步结果对象中的对象ID相关联。
一旦服务器107接收到来自个人数字助理101的同步请求对象,服务器107产生相应的同步结果对象,指明在服务器107上所重新创建的新对象。该同步结果对象包括一基础对象,其可能与个人数字助理101所发送的新对象不尽相同。如果同步请求对象中的结果标记值设为“全部”,则该同步对象包括包含在该发送创建操作中的全部对象及其子对象。其包括有显示该操作后新增的对象、在该发送创建过程中更新的新增对象及不能添加物件的失败结果等基础对象。该全部结果标记值是同时返回该对象及其成功状态值的唯一设定值。该成功状态值意味着该对象没有任何变动地被添加到服务器107的数据库中。如果该结果标记值设定为“更新”,则返回对象ID及其成功状态值,但不返回对象本身。如果该添加物件的状态为更新,则对象ID,状态值及对象副本被返回。一般地,这种情形意味着有多个字段没有在原始请求中做描述,但需要由服务器107来设定。在这种情形下,对象ID由服务器107设定,且包含在返回信息字段里。如果对于某特定对象添加失败,则该失败状态值、信息字段中的错误信息及原始对象被返回至个人数字助理101。
如果同步请求中的结果标记值设定为“ID”,则该同步结果对象仅仅包括服务器创建的对象ID及所发送的所有对象的状态--没有任何对象被返回至个人数字助理101。如果该结果标记值设定为“失败”,则该同步结果对象仅仅包含临时ID、对象状态及失败的原因信息。如果该结果标记值设定为“无记载”,则关于操作成功或失败与否的任何信息都不返回至个人数字助理101。
如果该结果标记值设定为“全部”或“更新”,则客户端应依据同步结果对象中的结果来更新其本地资料存储区。如果该结果标记值设定为“失败”或“无记载”,则个人数字助理101应采取相应步骤以确保本地信息的正确性。如果该同步结果对象返回的状态值为“失败”,则个人数字助理101应采取相应步骤去修正该问题,有可能还需要再次进行相应的操作。一旦确认该发送创建操作在服务器107上已完成,正如在相应的同步结果对象中所指明的那样,原始对象从本地资料存储区被删除。如果一新创建对象符合一过滤器,则起将会在下一个同步过程中被重新创建。这样能确保个人数字助理101对该对象有一正确的表述。在某些情况下,服务器107将在将该对象添加至数据库之前填充缺省字段或更新新对象。
如果个人数字助理101不能决定服务器107是否已完成一添加操作,则个人数字助理101不知道是否所有的添加请求是否被服务器107所接收和(或)处理。在个人数字助理101再次与服务器107连接时,其将试图去确定先前的添加操作是否成功。如果该信息仍然不能确定,则个人数字助理101,或更精确地说是执行该操作的移动式电子商务应用程序310将提示用户再次提交该添加请求或从本地资料存储区移除该操作请求。
一旦该发送创建步骤609完成,则程序将继续到发送更新步骤611,在该步骤,个人数字助理101将自上次执行发送创建操作后在本地资料存储区有变动的对象信息发送到服务器107。个人数字助理101利用上次发送创建操作的时间ID来填充同步请求对象中的时间ID字段,同时其还发送一组同步基础对象矢量。
对于在本地数据库存储区有变动的每一对象,个人数字助理101创建一同步基础对象。该同步基础包含同步基础对象中所表述的某次特定变更的时间ID。ID字段用该特定对象的唯一身份标识来填充。个人数字助理101还提交一更新的基础对象于同步对象中的基础对象字段中。只有有变动的值才会被表述。旧值被放置在另一基础对象中,包括旧值及属性等,不包括更新过的值。唯一需要被表述的值为在更新过的基础对象中所列示的属性的原始值。例如,如果一个对象值变更,则其原始值应放置在旧值对象中,而其新值则被放置在更新的基础对象中。该同步基础对象中的ID字段为变更的目标对象唯一的可靠标识。
下面描述的是由服务器107的返回信息,该信息是基于一为发送创建操作而设置的特定结果ID。
如果结果ID值设定为“全部”,服务器107则传回所有已被成功更新对象的ID和一错误信息,该错误信息显示没有被更新的对象。在完成所有的更新操作后所有对象的当前值会被传给客户端。
如果结果ID值设定为“更新”,服务器107则传回符合要求的每一对象的状态。那些已被更新对象的信息将不会传回。对于没有被成功更新的对象,传回的信息包括已更新对象的ID、该对象被存储于服务器107的状态和当前版本。个人数字助理101能用这些对象的当前值更新其本地的资料存储区。
如果结果ID值设定为“ID”,服务器107则传回所有符合要求对象的ID和状态。无对象传回至个人数字助理101。
如果结果ID值设定为“失败”,服务器107传回的结果将仅包括不能在服务器107上更新的对象的ID、状态和失败信息。服务器107不会传回该对象的当前版本。
如果结果ID值设定为“无记载”,服务器107不会传送有关更新成功与否的任何信息给个人数字助理。
在执行发送更新步骤611后,程序进行至一同步过滤步骤613,在该步骤使用者可选择保存一资料过滤器以供后续使用。该资料过滤器存储于个人数字助理101在本地的资料存储区的过滤器列表中。服务器107也可以保存资料过滤器,并为每一资料过滤器设一使用者ID和资料过滤器ID,以便在同步过程中个人数字助理101只需发送资料过滤器的ID即可,而非实际的资料过滤器。如果被保存的过滤器正在本地运行,除了资料过滤器的查询字符串、过滤器名称和该资料过滤器是否要同步外不会存储其它的信息。如果该资料过滤器是在服务器107上运行,被传回的ID清单也会与数据过滤器一起保存。
资料过滤器的同步操作即可成批进行,也可一次只执行一个。对于每一资料过滤器,个人数字助理101,或者更准确的说执行该资料过滤器的电子商务应用程序310提供一与上次执行同步操作时使用的数据过滤器相匹配的ID清单。个人数字助理101传送同步请求对象的矢量至服务器107。每一同步请求对象均包含一查询字符串和一同步对象的矢量。在每一同步对象内,由个人数字助理101填写该对象的ID和时间ID。
服务器107则传回同步结果对象的矢量。该矢量将含有对应于每一同步请求对象的一同步结果对象。每一同步结果对象将包含一被执行过的资料过滤器,显示该过滤器执行时间的ID和同步对象的矢量。每一同步对象均有一字段用下述四种状态描述其在结果信息中的存在方式。
如果一同步对象被标为“相同”,则该对象的ID已包含在请求信息ID内。换句话说,个人数字助理101已经知道该对象匹配的过滤器。而且,该对象自同步请求对象内的时间ID显示的时间以来尚未被更新过。所以个人数字助理101不需要对本地资料器存储做任何更动。服务器107可选择不传送该对象至个人数字助理101以减少网络上的通讯量。如果该对象的ID没有包含在结果信息内,个人数字助理仍可假定该对象与过滤器匹配并且未发生变动。随后,个人数字助理101将该对象在本地的副本上的时间ID更新为同步结果对象内提供的时间ID。时间ID被更新后,应保存该对象在本地的副本的状态,而不论其先前状态如何。遗漏的ID则留在与该过滤器相匹配的ID清单内。
如果该同步对象被标为“新匹配”,则同步请求对象内列明的已知ID中没有该对象的ID。即该对象与前一次被执行同步操作的过滤器不相匹配。在这种情形下,整个对象被传回至个人数字助理101。个人数字助理101将其存入本地存储区,同时将时间ID更新为同步请求对象内提供的时间ID。在个人数字助理101的资料存储区该对象的状态被设为“保存”,该对象的ID也添加至与过滤器相匹配的ID本地清单。
如果同步对象的状态为“更新”,其对应ID则在同步请求对象发送之前次结果信息内。但是自同步请求内提供的对象的时间ID显示的时间以来,该对象已被更新过。整个对象被传至个人数字助理101。个人数字助理101将其保存至本地资料存储区,同时将时间ID更新为同步请求对象内提供的时间ID。在个人数字助理101的资料存储区该对象的本地状态被设为“保存”,该对象的ID也被保留在与过滤器相匹配的ID清单内。
在与先前的特定过滤器相匹配的同步请求内,发送的同步对象状态为“不匹配”。但是该对象已经被更新或删除,所以不再与相应的查询字符串相匹配。个人数字助理101则在本地资料存储区将该对象状态设为“陈旧”,并将该对象的ID从与过滤器相匹配的ID清单中移除。如果本地资料存储区内并没有该对象,那幺个人数字助理仅将该对象的ID从ID清单中移除。
个人数字助理101保存每一被执行同步操作的资料过滤器,以及表明该过滤器上一次被执行的时间的时间ID,每一次该过滤器被执行时与的匹配的ID清单。
除同步过滤请求外,个人数字助理101也提供指示传回信息的数量的结果ID。下面列出的即是个人数字助理101基于该ID可得到的结果。
如果结果ID的值为“全部”,服务器则传回与资料过滤器内的查询字符串相匹配的所有对象。该对象的状态会添加进去,然后传回整个对象。如果某一ID不再与过滤器相匹配,该对象则被设为“不匹配”,该对象的ID被传回。此时,没有对象传回个人数字助理101。
如果结果ID的值为“更新”,服务器107则传回与资料过滤器相匹配的所有对象的ID,而不是整个对象,因为这些对象的状态为“相同”。被传回的是被标为“更新”或“新匹配”的对象。同时,服务器107也指出不再与过滤器匹配的对象,将其状态设为“不匹配”。
如果结果ID的值为“ID”,服务器107则传回被标为“更新”或“新匹配”的对象,同时指出不再与过滤器匹配的对象,将其状态设为“不匹配”。对于任何标为“相同”的对象,服务器107不会传回其ID或对象。
如果结果ID设为失败或未记载,则不执行本步骤。
完成同步过滤步骤613后,同步程序600即进行至步骤615,至此整个同步程序结束。尽管图6的同步程序600不是一串连续的步骤,但这并不是本发明主题所必需的。举例来说,所有的步骤可结合成一单一的同步请求对象,由服务器107按照图6揭示的次序或其它次序依次执行不同的操作。
图7是在支持个人数字助理101的服务器107上运行的资料管理程序700的流程图。该程序始于一开始步骤701,并直接进行至一资料接收步骤703。比较典型的例子是,步骤703与一同步步骤513(图5)相连接。从步骤703到一新资料步骤705后,资料管理程序700判断在步骤703收到的资料对象的状态值是否为“新”(如图5所述)。如果该资料是新的,程序即转入一插入资料步骤707,由资料撷取管理器(图4)创建一新资料对象并将其插入资料存储器417(图4)的合适位置。随后程序进行至传送状态步骤715,在该步骤生成一传回信息,通知传送资料对象的个人数字助理101资料创建操作的结果。
如果在步骤705,资料管理程序700确定该资料对象不是新的,而是被传送它的个人数字助理101指定为“更新”的对象,那幺程序即进行至核对时间ID步骤709,由程序700比对被传送来的资料对象的时间ID和存储的相应对象的时间ID。如果存储的资料对象比传送的资料对象新,那幺该存储的对象不会被更新,程序直接跳至传送状态步骤715,发送一传回信息通知个人数字助理101该更新操作失败。如果在步骤711,程序确定传送的资料对象上的时间ID晚于该存储的对象上的时间ID,那幺程序转入资料同步步骤713,用传来的对象取代存储的对象。随后,在传送状态步骤715,发送一传回信息通知个人数字助理101资料更新成功。需要注意的是,上述程序是不断重复的,因为个人数字助理101传送给服务器107的资料对象可以不只一个,而每一传送的资料对象需在一个同步操作完成前由程序700处理。
图8是在服务器107(图1)上执行的更新通知程序800的流程图。程序800始于一开始步骤801,然后直接到一初始化交易步骤803,在远程资料存储器417(图4)一些针对资料的操作已经完成。在本较佳实施方式中,该操作可以是更新、添加或删除,只要与个人数字助理器101(图1)的使用者的ID相连的资料过滤器相符即可。每一对操作/资料过滤器都有一加权值、一临界值,或者一累积加权值(另一较佳实施方式)。在某些情形下,该加权值和临界值可能相同。交易在步骤803被执行后,在检索加权值步骤805,程序将该操作以及该操作的目标值与服务器107上的资料过滤器清单进行比对。如果该操作与某一资料过滤器相符,那幺就会检索到那一对操作/资料过滤器所对应的加权值。在累积加权值实施方式中,还会检索到一个累积加权值。累积加权值是某一对操作/资料过滤器在程序800先前的多次反复操作中得到的各加权值的累加数。随后,程序进行到步骤807,比较加权值是否超过临界值。在累积加权值实施方式中,则是将一对操作/资料过滤器的累积加权值与临界值相比对。
如果加权值或者是累积加权值没有超过临界值,程序即转入重算加权值步骤815,在累积加权值实施方式中,则是直接跳至结束步骤817。在结束步骤815,该特定操作的处理程序完成。在重算加权值步骤815,将在步骤805检索到的加权值加到累积加权值上,然后将新的累积加权值存入资料存储器417,取代旧累积加权值。最后,程序转入结束步骤815。
在步骤807,如果加权值或是累积加权值超过了临界值,则程序转入发送信息步骤809。在步骤809,发送一通知信息至个人数字助理101,要求或建议其更新本地资料存储器。该通知信息是利用短讯服务(ShortMessaging Service,SMS)从服务器107传送到个人数字助理101上的。SMS是寻呼型服务,为熟知该项技艺的人士所熟知。它仅是实施本发明所使用的一种传送媒介而已。每一SMS信息均包含一资料域名、需要执行的特定资料过滤器的名称或ID、需要执行的操作之类型以及该操作是否要立即执行。如果一SMS信息标有“立即”,则个人数字助理101可能需要建立一通讯联机以便立即执行同步操作。如果该SMS信息没有标上“立即”,则个人数字助理101既可立即执行同步操作,也可等待安排的下一同步时间段,或是将该信息存入一使用者日历,通知有同步本地资料存储器需求的使用者。
完成步骤809后,程序转入接收确认步骤811,步骤811是一个可选择的步骤,因而在图中用虚现表示。如果程序800在步骤809发出SMS信息后需要得到对方的确认,该确认信息可采用SMS信息的形式,从个人数字助理101传送至服务器107,或是采用同步请求的形式,该同步请求与通知信息中指定的资料过滤器相符。如果确认信息没有被服务器107上的程序800收到,程序将回到步骤809,重新发送通知信息。如果在步骤811收到了确认信息或是在步骤809没要求发送确认信息,程序即转到清除加权值步骤813,重设累积加权值(如果有的话)。最后,程序进行至结束步骤817,在步骤801初始化的交易执行结束。
图9是在个人数字助理101(图1和图2)的显示屏203(图2)上显示的一典型的主页面901。使用者一执行实施本发明的应用程序,该主页901即显示在屏幕上。如图3中解释的那样,该应用程序可以是移动式电子商务应用程序310,移动式医院应用程序320,移动式物流应用程序330,移动式金融应用程序340。为方便图9~12的描述,仅以移动式电子商务应用程序310为例。
在主页901的最上端是一标题栏903,包含的内容有:一标题“主页面”、当前时间“11:25a”。标题栏903下面是一“欢迎”信息905,该信息可依情况而变。信息905下面则是几个屏幕图标,它们分别是一目录图标907,一订单图标908,一帐户图标909,一同步图标910。每一屏幕图标(907~910)都代表者电子商务应用程序310的某一特定功能。使用者用指示笔207(图2)点击任一图标即可执行电子商务应用程序310的相应功能。具体而言,目录图标907透过执行个人数字助理101上的软件使得使用者可以浏览一产品档案中的产品目录,甚至可以做某些修改;订单图标908可使使用者发出采购订单,或是对订单作一些修改;帐户图标909能使使用者浏览或修改其帐号;同步图标910可使使用者定义、重新定义或改变其同步过滤器。图9~12的例子即是关于目录图标907和在电子商务应用程序中与一产品目录相对应的产品档案或数据库的。
在屏幕图标907~910下面是一状态区913,包括“帐号”、“订单”、“目录”、“同步”等四个选择键,与屏幕图标909、908、907、910一一对应。使用者用指示笔选择某一个键即可运行相应的软件,该软件与通过屏幕图标运行的软件相同。除了对应于屏幕图标的四个选择键外,状态区913还包含一“档案”键,该“档案”键的功能与Microsoft Word等程序中的相似,使用者透过此键可执行开启、关闭、保存文档等操作。此外,状态区913还包括几个状态图标:一电脑图标915,表明个人数字助理101是否与一远程服务器107(图1)相连;一指示笔图标917,表明个人数字助理101的指示笔207是否处于可用状态;一翻上页图标919,使用者用指示笔207点击该图标(一向上的箭头)即可翻动主页901。翻上页图标919适用于主页901不能一次在显示屏203内全部显示的情形。当然,图标919也可以是一个向下的箭头,或者是既有一个向下的箭头,又有一个向上的箭头,这取决于主页901的大小和主页901在显示屏203上的相对位置。
图10是电子商务应用程序310(图3)的编辑过滤器页面1001显示于个人数字助理101(图1,图2)的显示屏203(图2)上的示意图。使用者用指示笔207点击同步图标910(图9)或是在状态区913内的同步选择键显示的菜单中选择相应功能,编辑过滤器页面1001即会显示在显示屏203上。与主页901相似(图9),页面1001包含一标题栏1003,其含有标题“编辑过滤器”、当前时间“4:54p”。页面1001也含有一状态区1013和状态图标1015、1017、1019,其功能与状态区913和状态图标915、917、919(图9)相似。
页面1001还有一缩放图标1021,其能放大或缩小页面1001的尺寸;一取消图标1023,其能结束正在运行的程序,回到前一页面,如主页901。当然,和图9~12中的其它图标、箭头、菜单一样,缩放图标1021和取消图标1023也是用指示笔207来点选的。尽管使用何种用户接口对于本发明精神来说并不重要,但是下面几图都要用到指示笔207和显示屏201。
编辑过滤器页面1001还有几个区域,其能使用户指定资料过滤器。例如,用户在名称区1005输入资料过滤器名“全部产品”后,如果该“全部产品”过滤器已经存在,电子商务应用程序310即搜索出该过滤器上的信息,如果该“全部产品”过滤器不存在,电子商务应用程序310会使其创建一个新资料过滤器。一同步区1007可使用户选定是否将相应的资料过滤器包括在个人数字助理101的同步程序中。在本例中,全部产品资料过滤器并未包含在同步程序中,因为同步区1007没有标记。如果一资料过滤器所对应的数据库不经常的变动,该资料过滤器可以不包含在同步程序中。但是某些资料过滤器如订单资料过滤器(图中未标示),则需要同步,因为用户或者是销售人员需要随时了解公司库存发生的变动。
上次同步区1009显示的是日期“5/25/01”和时间“4:38:40PM”,表明全部产品资料过滤器上一次同步的日期和时间。搜索字符串1011则显示一实际对应的资料过滤器,其用熟悉本技艺的人士能够辨认的语法表示。在本例中,资料过滤器指定全部产品资料过滤器搜索产品数据库中的所有纪录,即用“PrName”表示产品数据库中的某一属性,用“=”表示搜索并显示等于*的纪录。由于*是一通用符号,所以该资料过滤器会显示产品数据库中的全部纪录。
可以用Backus Naur Form(BNF)符号来表示数据过滤器或查询字符串,其符号具体说明如下。
filter=“(“filtercomp”)”
filtercomp=and or simpleFilter
and=“&”filterlist
or=“”filterlist
filterlist=1*filter
simpleFilter=attributeName filtertype value
filtertype=“==”“>=”“<=”“!=”
属性名是文数型的,与产品数据库或档案中的一栏相对应。二进制不会在数据过滤器中使用,即,一个数据过滤器不能译成两个JPEG图像。对于某一属性,某一个值可符合任何允许的登录,如一个篮球的价格可以是任何数值;一个产品的名称则可以是一名词,如“baseball”。
图11是移动式电子商务应用程序310的搜索产品页面1101显示于个人数字助理101(图1、图2)的显示屏203(图2)上的示意图。页面1101是一登录页面,利用此页面使用者或销售人员用显示屏203和指示笔201可定义或修改资料过滤器。与主页901(图9)和编辑过滤器页面1001(图10)类似,页面1101也包括一标题栏1103,其含有页面名称“查询产品”和当前时间“11:38a”;一状态区1113;三个状态图标1115、1117和1119。所有这些与图9和图10的标题栏、状态区、状态图标具有相似的功能。在标题栏1103的下面,页面1101有一执行图标1105和一高级过滤图标1121。当用户点选执行图标1105时,一对应于显示于显示屏幕1101上信息的当前资料过滤器即被建立。在本例中,该当前资料过滤器和上文图10所描述的一样,即“PrName==*”。当用户用指示笔203点选高级图标1121,既有的显示屏幕1101即会被另一搜索产品显示屏幕1201所替换,其会在后述的图12中进行说明,该显示屏幕1201可让用户建立及更改更为复杂和高级的资料过滤器。
显示屏幕包括一搜索范围1125,用户可在该区输入一特定属性的名称格式,例如,产品文文件。当利用指示笔207点选搜索范围1125边缘倒三角形,则即会显示一下拉列表,可使用户从产品文文件或数据库表中选择一属性。搜索值区1127可以让用户输入一个值,该值可用于其将要定义或创建资料过滤器中。在本例中,该值为“*”,其是一通配符,与文档中任何值相匹配。故,产品文文件中的所有记录均会被返回。另一例子是在搜索值区输入一“baseball”,则资料过滤器会把产品文文件中所有名称中包含有“baseball”的条目返回。如果用户输入“base*”,则资料过滤器即会返回产品文文件中如“baseballs”或“baseball bats”等全部记录。两个运算符符区1107能使用户定义其所期望的搜索范围1125与搜索值区之间的关系。在本例中,两个运算符区1107选项中,只能选择其中一个,即′=′或′!=′。′=′运算符1107表示用户希望资料过滤器返回产品文文件中所有属性为搜索范围1125所输入的,且与搜索值区1127中所输入的值相匹配的条目。如果用户选择′!=′,则用户希望资料过滤器返回产品文文件中所有属性为搜索范围1125所输入的,且与搜索值区1127中所输入的值不匹配的条目。
一显示值核对块1109可以让用户指定一“模糊”查询,换句话说,对在搜索范围1125中所输入的查询条件的查询不像在搜索值区1127那样精确匹配。资料过滤器会返回在产品文文件中所有与的接近的资料。一匹配图标1111提供了与显示值核对块1109相似的功能,只不过其能使用户执行资料过波器并立刻能观看结果。一取消按纽1123,其能忽略当前的资料过滤器定义或创建过程,并把显示屏203返回至显示屏先前所显示的状态。
图12揭示了另一实施方式的在个人数字助理101的显示屏203上出现的搜索产品显示屏幕1201。与搜索产品显示屏幕1101相似,搜索产品显示屏幕1201为一输入屏,其可使用户或销售人员利用显示屏203和指示笔207定义或更改资料过滤器。然而,与搜索产品显示屏幕1101只能让用户定义或更改一简单资料过滤器不同,搜索产品显示屏幕1201可让用户定义或更改更高级或更复杂的资料过滤器,与显示屏幕901、1001及1101一样,搜索产品显示屏幕1201亦包括:一标题栏1203,其上写有该显示屏幕的名称“搜索产品”,及当前时间“11:38a”;一状态区1213;及状态图标1215、1217及1219,这些标题栏、状态区及状态图标均与图9、图10及图11中相应的标题栏、状态区及状态图标具有相似的功能。与搜索产品显示屏幕1101相似,显示屏幕1201包括一匹配图标1211及一取消按纽1223,他们的功能分别与图11中的匹配图标1111及取消按纽1123相似。
在标题栏1203下面,显示屏幕1201包括两个图标,即执行图标1205和简单过滤图标1221。当用指示笔执行图标1205,一对应于显示盒1235所显示的信息,或本例中的“(&(PrName==*Base*)(PrRetailPrice>=5.00))”的当前资料过滤器被执行。当前资料过滤器即会返回产品数据库中所有名称中包含有“Base”且价格大于或等于5.00元的产品条目信息。例如会在个人数字助理101中显示价格在5.00元以上的baseballs,baseball mitts及baseball gloves等产品条目信息。这些资料过滤器的方法和语法在以前的技术中为众人所周知。该显示盒1235的一优势为具有一上拉箭头和一下拉箭头,当用户利用指示笔207这些箭头,在显示盒1235中即能卷出由于太大而处于显示盒1235边界的外的信息。当用户利用指示笔207简单过滤图标1221,个人数字助理101即会在显示屏203上显示搜索产品显示屏幕1101。
与搜索产品显示屏幕1101相似,显示屏幕1201可能让用户输入一资料过滤器,但其较显示屏幕1101中更为复杂。搜索范围1225可让用户选择产品数据库中的多种属性,每次选一种属性。搜索值区1227可使用户输入一价格或其它适当值以完成对数据库的查询。在上述显示屏幕1101中只提供了两个运算符域选择,而显示屏幕1201却代的以四个运算符域选择1207,一“=”运算符,表示等于;一“!=”运算符,表示不等于;一“>=”运算符,表示大于或等于;一“<=”运算符,表示小于或等于。一显示值核对块1209的功能与显示屏幕1101中的显示值核对块1109相似。
显示屏幕1201亦包含一建立按纽1229,两个关联按纽1231及一重置按纽1233。该建立按纽1229可以移动搜索范围1225、运算符区1207及搜索值区1227所指定的一个新查询字符串至显示盒1235中的表达式中,关联按纽1232决定一组合查询之间的关系,该组合查询是被建立按纽所移动的新查询字符串与现有的查询字符串之间的组合,如果该现有的查询字符串存在的话,通常会显示于显示盒1235上。“和”按纽创建一组合查询,其显示的于产品数据库中查询结果需符合新查询字符串和现有的查询字符串。“或”按纽创建一组合查询,其显示的于产品数据库中查询结果需符合新查询字符串和现有的查询字符串中的一个或全部的查询条件。当利用指示笔207点选重置按纽1233时,其会清除显示盒1235中的信息,从而可使用户重新开始建立一新的查询字符串。
利用图9~12中的屏幕,用户可以定义资料过滤器以实现实施方式中的技术方案。但图9~12仅代表了可供选择的一部分图形用户界面(GUI),这些图形用户界面显示于个人数字助理101的显示屏203上,其可运行电子商务应用软件310。其余的应用软件320、330及340均具有自身特定的功能、GUI和相应屏幕等。

Claims (14)

1.一种使服务器中的第一数据库和移动式电脑设备中的第二数据库同步的方法,其特征在于包括如下步骤:
在移动式电脑设备上生成一同步请求讯息,其中该同步请求讯息包括有一资料对象以及一执行在该资料对象上的动作;
将该同步请求讯息从移动式电脑设备传送到一服务器;
基于该同步请求讯息和一商业逻辑来确认该资料对象和动作是否有效,该商业逻辑由移动式电脑设备的用户根据该资料对象的技术领域来定义,该商业逻辑是客制化的域,包括资料对象的属性;
基于该商业逻辑更新该服务器中的一远程资料存储器;
基于上述确认及更新步骤的结果,在该服务器中生成一同步响应讯息;
将该同步响应讯息从该服务器传送到该移动式电脑设备;
基于该同步响应讯息更新该移动式电脑设备中的资料存储器。
2.如权利要求1所述的数据库同步方法,其特征在于更包括有如下的步骤:
在该传送步骤之前,确定该移动式电脑设备是处于在线模式还是离线模式;
如果该移动式电脑设备是处于在线模式,进入传送同步请求讯息的步骤;
如果该移动式电脑设备是处于离线模式,将该同步请求讯息放入一同步序列。
3.如权利要求1所述的数据库同步方法,其特征在于该同步响应讯息包括一对应于该确认及更新步骤的结果的值。
4.如权利要求1所述的数据库同步方法,其特征在于在该动作执行以前,该同步请求讯息包括有一对应于该资料对象的旧的资料对象,并且该确认步骤包括有如下步骤:
在远程资料存储器中,将对应于该资料对象的旧的资料对象设定为第二资料对象。
5.如权利要求4所述的数据库同步方法,其特征在于如果该旧的资料对象和该资料对象的复制件不匹配,则该同步响应讯息还包括有该资料对象的复制件。
6.如权利要求1所述的数据库同步方法,其特征在于该同步请求讯息包括有对应于该动作执行于该资料对象时的第一时间标示,并且该确认步骤包括有如下步骤:
将该第一时间标示和与第二资料对象有关的第二时间标示相比较,该第二资料对象与该资料对象对应并存储在该远程资料存储器中。
7.一种验证资料对象动作的方法,该资料对象存储在一移动式电脑设备的本地资料存储器中,该方法的特征在于包括如下步骤:
在移动式电脑设备中生成一同步请求讯息,其中该同步请求讯息包括有一本地资料存储器中的资料对象的复制件、一作用于该资料对象的动作以及在该动作执行以前对应于该资料对象的旧的资料对象;
将该同步请求讯息从移动式电脑设备传送到一服务器;
在该服务器中的一远程资料存储器中处理该资料对象的复制件,该处理过程是基于与该资料对象的技术领域一致、并由该移动式电脑设备的用户所定义的商业逻辑,该商业逻辑是客制化的域,包括资料对象的属性。
8.如权利要求7所述的验证方法,其特征在于更包括有如下的步骤:
在该服务器中基于该处理步骤的结果生成一同步响应讯息;
将该同步响应讯息传送到该移动式电脑设备;
如果该同步响应讯息显示该处理步骤不成功,则将该资料对象的值赋给该旧的资料对象;
如果该同步响应讯息显示该处理步骤成功,则将该资料对象的状态值设为“已更新”。
9.如权利要求7所述的验证方法,其特征在于该处理步骤包括有如下的步骤:
验证该资料对象的复制件;
如果验证成功,则在该服务器的资料存储器中,将对应于该资料对象的旧的资料对象设定为一第二资料对象,并且根据该资料对象更新该第二资料对象。
10.如权利要求9所述的验证方法,其特征在于该同步请求讯息包括有与该资料对象相对应的第一时间标示,并且该验证步骤包括如下步骤:
将该第一时间标示与第二资料对象相对应的第二时间标示相比较。
11.一种分布式资料存储系统,其特征在于包括:
一移动式电脑设备,该设备包括:
一本地资料存储器;
用于生成同步请求讯息的逻辑,该逻辑包括:
与存储在本地资料存储器中的资料对象相对应的资料对象复制件;
作用于该资料对象上的动作;
在该动作执行于该资料对象之前,相对于该资料对象的一旧的资料对象;
一服务器,包括:
一远程资料存储器;
用于处理上述同步请求讯息的商业逻辑,其中该商业逻辑由该移动式电脑设备的用户定义并与该资料对象的技术领域相对应。
12.如权利要求11所述的分布式资料存储系统,其特征在于该商业逻辑包括:
验证逻辑,用于决定该动作是否可以在远程存储器中的第二资料对象上被执行,并与该资料对象相对应;
当验证逻辑确定该动作能够在第二资料对象上被执行时,用于执行该动作的逻辑;
当验证逻辑确定该动作不能够在第二资料对象上被执行时所执行的矛盾确定逻辑。
13.如权利要求12所述的分布式资料存储系统,其特征在于该验证逻辑包括:
用于将该旧的资料对象设为第二资料对象的逻辑。
14.如权利要求12所述的分布式资料存储系统,其特征在于该同步请求讯息包括与该资料对象相对应的第一时间标示,并且该验证逻辑包括:
用于将该第一时间标示设为与第二资料对象相对应的第二时间标示的逻辑。
CNB02126659XA 2001-08-13 2002-07-27 用于无线设备中资料和动作同步的方法及资料存储系统 Expired - Fee Related CN1271535C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/928,925 US7032003B1 (en) 2001-08-13 2001-08-13 Hybrid replication scheme with data and actions for wireless devices
US09/928,925 2001-08-13

Publications (2)

Publication Number Publication Date
CN1405690A CN1405690A (zh) 2003-03-26
CN1271535C true CN1271535C (zh) 2006-08-23

Family

ID=25457014

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB02126659XA Expired - Fee Related CN1271535C (zh) 2001-08-13 2002-07-27 用于无线设备中资料和动作同步的方法及资料存储系统

Country Status (3)

Country Link
US (1) US7032003B1 (zh)
CN (1) CN1271535C (zh)
TW (1) TW583550B (zh)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2372904B (en) * 2001-03-02 2004-09-08 Nokia Mobile Phones Ltd Electronic transactions
US20030045311A1 (en) * 2001-08-30 2003-03-06 Tapani Larikka Message transfer from a source device via a mobile terminal device to a third device and data synchronization between terminal devices
US20030093435A1 (en) * 2001-11-05 2003-05-15 Bandekar Vijay R. Method and system for application level data object synchronization between two or more processes
US7952570B2 (en) 2002-06-08 2011-05-31 Power2B, Inc. Computer navigation
US7464097B2 (en) 2002-08-16 2008-12-09 Sap Ag Managing data integrity using a filter condition
US7127475B2 (en) * 2002-08-15 2006-10-24 Sap Aktiengesellschaft Managing data integrity
US20040076133A1 (en) * 2002-10-17 2004-04-22 Rinkevich Debora B. Mobile computing device and method for switching connectivity between a mobile computing device and a communication network
KR100498930B1 (ko) * 2002-10-21 2005-07-04 삼성전자주식회사 휴대용 전화기의 정보데이터 관리장치 및 방법
US20040139235A1 (en) * 2002-11-01 2004-07-15 Gus Rashid Local intelligence, cache-ing and synchronization process
US7809384B2 (en) 2002-11-05 2010-10-05 Microsoft Corporation User-input scheduling of synchronization operation on a mobile device based on user activity
GB0229572D0 (en) * 2002-12-19 2003-01-22 Cognima Ltd Quality of service provisioning
US8312131B2 (en) * 2002-12-31 2012-11-13 Motorola Mobility Llc Method and apparatus for linking multimedia content rendered via multiple devices
US7805401B2 (en) * 2003-04-14 2010-09-28 Novell, Inc. Method and apparatus for splitting a replicated volume
JP4111881B2 (ja) * 2003-06-30 2008-07-02 エスアーペー アーゲー データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム
US7331047B2 (en) * 2003-11-25 2008-02-12 Microsoft Corporation Deterministic system and method for implementing software distributed between a desktop and a remote device
US20050125423A1 (en) * 2003-12-04 2005-06-09 Hsien-Cheng Chou Method to provide a filter for the capture program of IBM/DB2 data replication
FI20035235A0 (fi) * 2003-12-12 2003-12-12 Nokia Corp Järjestely tiedostojen käsittelemiseksi päätelaitteen yhteydessä
US20050177617A1 (en) * 2003-12-23 2005-08-11 Intel Corporation Conflict resolution during data synchronization
US8996454B2 (en) * 2004-01-07 2015-03-31 Nokia Corporation Remote management and access of databases, services and devices associated with a mobile terminal
US20050233295A1 (en) * 2004-04-20 2005-10-20 Zeech, Incorporated Performance assessment system
US20060041893A1 (en) * 2004-08-20 2006-02-23 Microsoft Corporation Extensible device synchronization architecture and user interface
KR100886692B1 (ko) * 2004-09-16 2009-03-04 캐논 가부시끼가이샤 파일 송신 장치와, 파일 송신 장치의 제어 방법 및, 통신 시스템
DE202004021549U1 (de) * 2004-10-01 2008-11-27 Abb Research Ltd. System zum strukturentkoppelten Austausch von objektorientierten Datenstrukturen
US20060071915A1 (en) * 2004-10-05 2006-04-06 Rehm Peter H Portable computer and method for taking notes with sketches and typed text
US7464169B2 (en) * 2004-11-04 2008-12-09 Research In Motion Limited System and method for over the air provisioning of a single PDP context mobile communications device
US7398528B2 (en) * 2004-11-13 2008-07-08 Motorola, Inc. Method and system for efficient multiprocessor processing in a mobile wireless communication device
US20060136901A1 (en) * 2004-12-22 2006-06-22 Sony Ericsson Mobile Communications Ab Mobile financial transaction management system and method
JP2006203655A (ja) * 2005-01-21 2006-08-03 Ricoh Co Ltd 画像形成装置設定方法、画像形成装置
US10452207B2 (en) 2005-05-18 2019-10-22 Power2B, Inc. Displays and information input devices
WO2008111079A2 (en) 2007-03-14 2008-09-18 Power2B, Inc. Interactive devices
US7657574B2 (en) * 2005-06-03 2010-02-02 Microsoft Corporation Persistent storage file change tracking
FR2888018A1 (fr) * 2005-07-01 2007-01-05 Medience Sa Procede et systeme de realisation d'une base de donnees virtuelle a partir de sources de donnees presentant des schemas heterogenes
US8296846B2 (en) * 2005-08-19 2012-10-23 Cpacket Networks, Inc. Apparatus and method for associating categorization information with network traffic to facilitate application level processing
US7937756B2 (en) * 2005-08-19 2011-05-03 Cpacket Networks, Inc. Apparatus and method for facilitating network security
US8346918B2 (en) * 2005-08-19 2013-01-01 Cpacket Networks, Inc. Apparatus and method for biased and weighted sampling of network traffic to facilitate network monitoring
US8665868B2 (en) * 2005-08-19 2014-03-04 Cpacket Networks, Inc. Apparatus and method for enhancing forwarding and classification of network traffic with prioritized matching and categorization
US7890991B2 (en) * 2005-08-19 2011-02-15 Cpacket Networks, Inc. Apparatus and method for providing security and monitoring in a networking architecture
US8024799B2 (en) * 2005-08-19 2011-09-20 Cpacket Networks, Inc. Apparatus and method for facilitating network security with granular traffic modifications
US7882554B2 (en) * 2005-08-19 2011-02-01 Cpacket Networks, Inc. Apparatus and method for selective mirroring
US8429300B2 (en) 2006-03-06 2013-04-23 Lg Electronics Inc. Data transferring method
US20090133129A1 (en) 2006-03-06 2009-05-21 Lg Electronics Inc. Data transferring method
US20090063629A1 (en) 2006-03-06 2009-03-05 Lg Electronics Inc. Data transfer controlling method, content transfer controlling method, content processing information acquisition method and content transfer system
KR20080022476A (ko) 2006-09-06 2008-03-11 엘지전자 주식회사 논컴플라이언트 컨텐츠 처리 방법 및 디알엠 상호 호환시스템
US20080103977A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Digital rights management for distributed devices
US20080104206A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Efficient knowledge representation in data synchronization systems
KR101280437B1 (ko) * 2007-01-04 2013-06-28 엘지전자 주식회사 이동통신 단말기 및 데이터 동기화 방법
US8918508B2 (en) 2007-01-05 2014-12-23 Lg Electronics Inc. Method for transferring resource and method for providing information
US7805403B2 (en) 2007-01-07 2010-09-28 Apple Inc. Synchronization methods and systems
EP2044530A4 (en) * 2007-01-19 2010-08-25 Lg Electronics Inc METHOD FOR PROTECTING CONTENTS AND PROCESS FOR PROCESSING INFORMATION
US7620659B2 (en) * 2007-02-09 2009-11-17 Microsoft Corporation Efficient knowledge representation in data synchronization systems
EP2013771B1 (en) * 2007-02-16 2013-08-21 LG Electronics Inc. Method for managing domain using multi domain manager and domain system
US8073434B2 (en) * 2007-09-18 2011-12-06 Sap Ag System and method of object simulation in an intermittently connected mobile application
US7925625B2 (en) * 2007-09-20 2011-04-12 Microsoft Corporation Synchronizing data between business applications
US8219902B2 (en) * 2007-10-26 2012-07-10 T-Mobile Usa, Inc. System and method for remote update of display pages
US20090228580A1 (en) * 2008-03-05 2009-09-10 International Business Machines Corporation Computing environment sensitive data synchronization
US20090315766A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Source switching for devices supporting dynamic direction information
US8700301B2 (en) 2008-06-19 2014-04-15 Microsoft Corporation Mobile computing devices, architecture and user interfaces based on dynamic direction information
US20090319166A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US20090315775A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US20100009662A1 (en) 2008-06-20 2010-01-14 Microsoft Corporation Delaying interaction with points of interest discovered based on directional device information
US20100191565A1 (en) * 2009-01-23 2010-07-29 Hudson Marine Management Services System and Method for Complying With TMSA Guidelines
US20100228612A1 (en) * 2009-03-09 2010-09-09 Microsoft Corporation Device transaction model and services based on directional information of device
CN101925022A (zh) * 2009-06-17 2010-12-22 英华达股份有限公司 资料转送方法与资料转送装置
US20100332324A1 (en) * 2009-06-25 2010-12-30 Microsoft Corporation Portal services based on interactions with points of interest discovered via directional device information
US8872767B2 (en) 2009-07-07 2014-10-28 Microsoft Corporation System and method for converting gestures into digital graffiti
CN101997897A (zh) * 2009-08-14 2011-03-30 华为技术有限公司 一种块存储的方法、设备及系统
US8627434B2 (en) * 2009-12-04 2014-01-07 International Business Machines Corporation Cross security-domain identity context projection within a computing environment
US10114678B2 (en) * 2010-03-19 2018-10-30 Micro Focus Software Inc. Techniques for managing service definitions in an intelligent workload management system
WO2013033378A1 (en) * 2011-09-02 2013-03-07 Mobile Sail Limited System and method for operating mobile applications according to activities and associated actions
TW201317879A (zh) * 2011-10-20 2013-05-01 Magic Control Technology Corp 觸控裝置之同步操作系統及方法
FI128995B (en) * 2012-01-02 2021-04-30 Tekla Corp Grouping of objects in computer-aided modeling
JP5895692B2 (ja) * 2012-05-08 2016-03-30 富士通株式会社 無線通信プログラム、携帯装置および無線通信システム
US9251114B1 (en) * 2012-10-12 2016-02-02 Egnyte, Inc. Systems and methods for facilitating access to private files using a cloud storage system
US9065882B2 (en) 2013-03-05 2015-06-23 Comcast Cable Communications, Llc Processing signaling changes
US10242045B2 (en) * 2013-10-30 2019-03-26 Dropbox, Inc. Filtering content using synchronization data
CN105488234B (zh) * 2016-01-29 2018-09-28 山东省农业科学院作物研究所 基于表型性状的水稻特异性测试中的近似品种筛选方法
US10187367B2 (en) 2016-05-11 2019-01-22 Iheartmedia Management Services, Inc. Licensing authentication via mobile device
US11120036B2 (en) * 2016-08-03 2021-09-14 Oracle International Corporation System and method for efficient repurposing of connections in a multi-tenant database environment
US11336722B2 (en) * 2016-12-20 2022-05-17 Sap Se Data transmission for data replication system
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US11170285B2 (en) * 2017-05-05 2021-11-09 Google Llc Virtual assistant configured to recommended actions in furtherance of an existing conversation
DE102017208084A1 (de) * 2017-05-12 2018-11-15 Bundesdruckerei Gmbh Datenbank mit feldbezogenen Zeitstempeln
US10671494B1 (en) * 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US11392574B2 (en) * 2018-01-09 2022-07-19 LendingClub Bank, National Association Mitigating race conditions across two live datastores
US11042547B2 (en) * 2018-09-10 2021-06-22 Nuvolo Technologies Corporation Mobile data synchronization framework
CN110602095B (zh) * 2019-09-12 2021-07-13 腾讯科技(深圳)有限公司 基于区块链网络的数据分发、存储方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687363A (en) * 1994-03-30 1997-11-11 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US6304881B1 (en) * 1998-03-03 2001-10-16 Pumatech, Inc. Remote data access and synchronization
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US20030069874A1 (en) * 1999-05-05 2003-04-10 Eyal Hertzog Method and system to automate the updating of personal information within a personal information management application and to synchronize such updated personal information management applications
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6643669B1 (en) * 2000-03-14 2003-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for optimization of synchronization between a client's database and a server database
US7209733B2 (en) * 2000-10-06 2007-04-24 Pay X Pda, Llc Credit manager method and system

Also Published As

Publication number Publication date
US7032003B1 (en) 2006-04-18
TW583550B (en) 2004-04-11
CN1405690A (zh) 2003-03-26

Similar Documents

Publication Publication Date Title
CN1271535C (zh) 用于无线设备中资料和动作同步的方法及资料存储系统
CN1301475C (zh) 用于无线设备的主动资料复制方法
AU2010206022B2 (en) Electronic process-enabled collaboration system
CN1230753C (zh) 提供和观看信息的系统和方法及控制电视机的操作控制设备
CN1095568C (zh) 命名书签组
US8296259B1 (en) Methods and systems for inventory management
CN1196068C (zh) 信息提供系统
CN102713791A (zh) 收集用于协作文档开发的社群反馈
US20030069806A1 (en) System and method for sharing needs and information using physical entities
JP2008027043A (ja) ウェブサイト管理システム、ウェブサイト管理方法、ウェブサイト管理プログラムおよび該プログラムを記録した記録媒体
JP2010502088A (ja) コンテンツ同期化方法及び装置
CN1218568A (zh) 报文搜寻系统与终端机
JP2003233659A (ja) 配達予告方法、配達予告システム、中央装置、及びサーバコンピュータ
CN1359501A (zh) 提供基于网络的咨询服务的方法和装置
CN1695133A (zh) 网络应用服务器支持程序及服务器
US20040167905A1 (en) Content management portal and method for managing digital assets
CN1271536C (zh) 基于无线设备资料复制的同步方法及存储系统
CN1240006C (zh) 利用过滤器为无线设备进行个性化资料抄写的方法
CN1440531A (zh) 信息提供装置
TWI254540B (en) Personalized data replication for wireless devices using filters
JP4603515B2 (ja) 書籍流通システム、書籍流通方法、管理サーバ、及びプログラム
JP2007065820A (ja) 携帯サイト管理システム
CN1742255A (zh) 移动数据和软件更新系统及方法
JP4350428B2 (ja) 問題解決支援用のサーバ装置及び問題解決支援方法
JP2008107998A (ja) ブログシステムのトラックバックセンタ装置及びトラックバック管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HONGFUJIN PRECISION INDUSTRY (SHENZHEN) CO., LTD.

Free format text: FORMER OWNER: HONGFUJIN PRECISION INDUSTRY (SHENZHEN) CO., LTD.; MOLI DONGWANG SCIENCE CO., LTD.

Effective date: 20071221

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20071221

Address after: No. two, 2 East Ring Road, tenth Pine Industrial Zone, Longhua Town, Guangdong City, Shenzhen Province, China: 518109

Co-patentee after: Hon Hai Precision Industry Co., Ltd.

Patentee after: Fujin Precision Industry (Shenzhen) Co., Ltd.

Address before: No. two, 2 East Ring Road, tenth Pine Industrial Zone, Longhua Town, Guangdong City, Shenzhen Province, China: 518109

Co-patentee before: Moli Dongwang Science Co., Ltd.

Patentee before: Fujin Precision Industry (Shenzhen) Co., Ltd.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060823

Termination date: 20100727