基于查询的同步的制作方法

文档序号:6568010阅读:110来源:国知局
专利名称:基于查询的同步的制作方法
基于查询的同步些旦 冃足由于世界变得更加移动化,越来越少的计算机系统和应用程序用户是与网络 持久连接的。更经常的是,用户临时地登录到所希望的网络并且使脱机系统与联机 系统同步。其它情况可能是使用户能够无线访问网络。该无线连接可以是性能多变 的以及速度多变的,其包括无线网络的完全掉线。在有线以及无线的情况中。存在 于联机系统上并且不存在于脱机系统上的数据量都可能非常大,并且即使用高速的 连接,这种数据的同步也可能会消耗大量的时间。此外,脱机用户可能仅仅希望对 于某些应用程序来接收更新的数据而可能不需要在联机系统上被认为是新的所有 数据。概述公开了一种基于査询的系统以使脱机应用程序和联机应用程序进行同步的方 法、系统和用户界面。查询可由用户定义以仅仅标识脱机用户要求进行更新的有限数据。例如,可将査询转换为针对CRM数据库进行执行的SQL査询。联机系统 可保存满足用户所定义的、对脱机用户期望更新的数据的查询的数据文件,其中该 文件可以是数据库表。可以在多种不同的条件下,例如当脱机应用程序建立与联机 应用程序通信的时候,在给定时间间隔期间或每当在联机应用程序上产生某一数量 的新数据的时候,可向脱机装置传送更新文件。可以将同步文件分成取决于通信方 法的合适大小的包。此外,可以在联机系统上保存追踪脱机系统的当前更新状态的 文件。 一旦已经成功地将同步文件传送给脱机装置,则对该同步文件和联机系统上 的脱机应用程序的状态文件进行更新以反映该更新。附1是可在其上运行该方法、系统和用户界面的一种计算机系统的说明; 图2是根据权利要求的基于查询的同步的方法的说明;图3是查询创建显示的说明;图4是可以通过选择查询来获取附加细节的说明;以及图5是在对要同步的数据进行选择时可以建立的附加条件的说明。说明书
尽管下文描述了多个不同实施例的详细说明,但应该理解到该说明的合法范 围由在该专利所附的权利要求的文字定义。仅仅将该详细说明视为是示范性的,并 且由于描述每个可能的实施例即使是可能的,也将是不切实际的,因此该详细说明 没有描述每个可能的实施例。可以使用当前技术或者在该专利申请日之后研发的技 术来实现多种替换实施例,其仍将落入权利要求的范围之内。同样应该理解到,除非使用句子"如同在此所使用的,在此定义的术语'——' 表示..."或者相似的句子来在本专利中明确地对术语进行了定义,否则并不希望明 确地或者隐含地限制该术语的意思以超越其平常的或普通的意思,并且这样的术语 不应被解释为限制于以在本专利的任何部分进行的任何陈述(除了权利要求的语言 之外)为基础的范围之中。就在本专利所附权利要求中所列举的任何术语而言,在 本专利以与单一含义一致的方式被引用,这是为了清楚以避免使读者混淆的,并且并不希望这样的权利要求术语隐含或者明显地受到那个单一含义的限制。最后,除非通过叙述词语"手段(means)"和功能并且没有叙述任何结构而对权利要求元 素进行定义,否则这并不意味着在35U.S.C§112,第六段的应用的基础上来对任 何权利要求元素的范围进行解释。

图1说明了合适的计算系统环境100的例子,在该计算系统环境上可实现用 于所要求的方法步骤和装置的系统。计算系统环境100仅仅是一个合适的计算环境 的例子,并且不旨在对权利要求的装置或方法的使用范围或者功能做出任何的限 制。也不应该将计算系统环境100解释为对示范性的操作环境100中示出的任何一 个组件或其组合相关有依赖性或者要求。所要求的方法步骤和装置可用于很多其它通用的或者专用的计算机系统环境 或者配置。适合用于权利要求的方法或装置的公知的计算系统、环境、和/或配置 的例子包括但是不局限于,个人计算机、服务器计算机、手持或膝上型装置、多处 理机系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型 计算机、大型计算机、包括以上所述的任何系统或装置的分布式计算环境等等。可以用诸如程序模块等由计算机执行的计算机可执行指令的一般上下文来描 述所要求的方法步骤和装置。通常,程序模块包括执行具体任务或者实现具体抽象 数据类型的例程、程序、对象、组件、数据结构等等。该方法和装置同样可以在分 布式计算环境中实现,在分布式计算环境中任务是通过经由通信网络链接的远程处 理装置来执行的。在分布式计算环境中,程序模块可以位于包括存储器存储装置的 本地以及远程计算机存储介质两者中。
参考图1,用于实现所要求的方法步骤和装置的示范性系统包括以计算机110形式出现的通用计算装置。计算机110的各组件可包括但不局限于,处理单元120、 系统存储器130和系统总线121,其中该系统总线121将包括系统存储器的各种系 统组件耦合至处理单元120。系统总线121可以是几种类型总线结构中的任何一种, 这些总线结构包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结 构中任一种的局部总线。举例来说,而不是限制,这样的体系结构包括工业标准体 系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标 准协会(VESA)局部总线、以及外围部件互联(PCI)总线又名附加板总线(Mezzanine bus)。计算机110 —般包括各种计算机可读介质。计算机可读介质可以是任何可以 由计算机IIO进行访问的任何可用介质,并且包括易失性和非易失性的介质、可移 动的和不可移动的介质。作为示例,而并非限制,计算机可读介质可包括计算机存 储介质以及通信介质。计算机存储介质包括易失性和非易失性的、可移动的和不可 移动介质,其可以用任何方法或者技术来实现以用于例如计算机可读指令、数据结构、程序模块或其它数据的信息存储。计算机存储器介质包括但是不局限于,RAM、 ROM、 EEPROM、闪存或者其它的存储技术,CD-ROM、数字多用途盘(DVD)或 者其它光盘存储,磁带盒、磁带、磁盘存储或者其它的磁存储装置,或者任何其它 的可用来存储所希望的信息并且可由计算机110进行访问的介质。通信介质一般地 具体表现为在己调制数据信号例如载波或者其它的传送机构中的计算机可读指令、 数据结构、程序模块或者其它的数据,并且包括任何信息传输介质。术语"己调数 据信号"表示使其一个或多个特征用在信号中编码信息的方式设置或改变的信号。 作为示例,而非限制,通信介质包括有线介质,例如有线网络或者直接线连接,以 及无线介质,例如声学、射频、红外线及其它无线介质。以上所述任何的组合同样 也包括在计算机可读介质的范围内。系统存储器130包括了以易失性和/或非易失存储器形式的计算机存储介质, 例如只读存储器(ROM)131和随机存取存储器(RAM)132。 一般将基本输入/输出系 统133(BIOS)存储在ROM131中,该基本输入/输出系统133包括,有助于例如在 启动期间,在计算机中的元件之间转输信息的基本例程。RAM 132—般包括了处 理单元120可立即访问和/或当前正操作的数据和/或程序模块。作为示例,而不是 限制,图1说明了操作系统134、应用程序135、其它的程序模块136以及程序数 据137 计算机110可以同样包括其它可移动的/不可移动的、易失性/非易失性的计算 机存储介质。仅仅是举例来说,图l显示了对不可移动、非易失性磁介质读写的硬盘驱动器140、对可移动、非易失性磁盘152读写的磁盘驱动151以及对诸如CD ROM或其它光介质的可移动、非易失性光盘156读写的光盘驱动器155。可以用 于该示范性操作环境中的其它可移动/不可移动的、易失性/非易失性计算机存储介 质包括但是不局限于,盒式磁带、闪存卡、数字多用途盘、数字录像带、固态RAM、 固态ROM,等等。硬盘驱动器141一般通过不可移动存储器接口例如接口 140连 接至系统总线121,磁盘驱动器151以及光盘驱动器155 —般通过可移动存储器接 口例如接口 150来连接至系统总线121。上面进行讨论并在图中示出的驱动器以及与它们相关联的计算机存储介质, 为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。 例如,在图1中将硬盘驱动器141示为存储了操作系统144、应用程序145、其它 程序模块146和程序数据147。注意这些组件可以与操作系统134、应用程序135、 其它的程序模块136和程序数据137相同或者不同。在这里对操作系统144、应用 程序145、其它的程序模块146和程序数据147给定了不同的编号以说明至少他们 是不同的副本。用户可通过输入装置,例如键盘162和定点装置161 (通常指的是 鼠标、跟踪球或触摸垫)来向计算机20输入命令以及信息。其它输入装置(未示出) 可包括麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些及其他输 入装置常常通过耦合至系统总线的用户输入接口 160来连接至处理单元120,但是 也可通过其它接口和总线体系结构,例如并行端口、游戏端口或者通用串行总线 (USB)进行连接。监视器191或者其它类型的显示装置同样经由接口,例如视频接 口 190连接到系统总线121上。除监视器之外,计算机也可包括其它外围输出装置 例如扬声器197和打印机196,其可以通过输出外围接口 190进行连接。计算机110可以在联网的环境中进行操作,其中该联网的环境采用了到一个 或多个远程计算机,例如远程计算机180,的逻辑连接。尽管在图l中仅仅示出存 储器存储装置181,但远程计算机180可以是个人计算机、服务器、路由器、网络 PC对等装置或者其它公用网络节点,并且一般包括以上相对于计算机110描述的 许多或者所有元件。在图1中描绘的逻辑连接包括局域网(LAN)171和广域网 (WAN)173,但是也可包括其它网络。这样的联网环境在办公室、企业级的计算机 网络、内联网以及因特网中是常见的。当计算机IIO用于LAN联网环境中时,其通过网络接口或者适配器170连接
至LAN 171。当计算机IIO用于WAN联网环境中时,其一般包括调制解调器172 或者用于通过WAN 173,例如因特网建立通信的其它装置。调制解调器172可经 由用户输入接口 160,或者其它适当的机制来连接至系统总线121,调制解调器172 可以是内置或者外置的。在联网环境中,相对于计算机110描述的程序模块,或者 其部分被存储在远程存储器存储装置中。作为示例,而不是限制,图l说明远程应 用程序185驻留在存储装置181上。可以理解所示网络连接是示范性的并且可以使 用建立计算机之间通信连接的其它手段。图2是根据权利要求的方法的说明。在方框200,接收数据同步请求。可以以 各种方法来接收数据同步请求。同步可以以一段时间为基础。例如,如果可以通过 无线连接与脱机装置进行联系,则可以周期性地生成数据同步请求如此来周期性地 传输数据。也可以由用户生成同步请求。例如,顾客关系管理系统的用户可以从远 程计算机登录并且该登录可触发数据同步请求。在另一个例子中,某些数据的修改 或许会触发数据同步请求。另一个例子是当收集到预定数量的新数据时,可触发同 步请求。当然,其它的触发事件也是可能的。在方框205,该方法可以加载过滤程序或查询。查询可由用户定义。脱机用户 不必接收自该脱机用户最后一次联机以来所有的添加到在线应用程序的数据。相应 地,用户也可定义将获得该脱机用户想要进行更新的数据的查询。例如,当用户的 顾客下了新定单时,那么那个用户就希望从顾客关系管理("CRM")应用程序 中获知。仅仅除了那些由他或她的顾客下的定单之外,用户可能不需要知道公司接 收的每个订单。用户也能定义将返回自脱机用户最近接收更新以来由他或她的顾客下的所有订单的查询。更宽泛的查询可以是用该联机装置上、自脱机装置的最近一 次更新以来添加到该联机装置上的所有信息来更新该脱机装置上的所有的信息。用 户可以定义的查询的种类和数量实际上是无限的。仅仅作为另一个例子,CRM脱 机用户可以创建获得关于所下的、高于阈值,例如5千万美元的任何新定单的数据 的查询。信息可以是任何想要的信息,包括顾客关系管理系统(CRM)信息,其通常 过于庞大而难以同步。在另一个实施例中,可以从多个预先定义的查询中选择查询。可以由软件供 应商提供查询或者査询可以是由另一个用户创建的模板。也可以由用户对这些预先 定义的查询进行修改以进一步符合他们的需要。可以以传统的自顶向下的方式或者自底向上的方式来创建查询。自底向上的 查询可以允许更加简单地对基于分层结构的脱机数据进行细化。例如,代替创建如
"给我我拥有所有的帐户以及任何与该帐户相关联的任何记录。但是我不想要任何 时间超过一年的、关闭服务事件的任何销售定单…"的顶层查询,用户可以定义用 户想要什么帐户,以及在父记录存在的基础上在子记录的查询中使用子句。例如, 帐户査询可以是"给我我所拥有的帐户"。然后销售定单査询可以是"给我一年之 内、我也正在下载父帐户的销售定单"。如图3中说明的,可使用简单用户界面来创建査询,其中该简单用户界面不要求用户了解任何程序设计语言或SQL代码。例如,可以显示査询列表310并且 将其选为未来同步的一部分。图4说明了更加详细的屏幕,它可以弹出并且允许对 从图3中选择的查询310作进一步的修改。图5是图4中所显示的弹出窗口的显示。 图5说明了该用户(user)(505)期望使由用户(505)所拥有的约会(appointment)(502)、 加上任何与帐户(account)(510)或者(or)(520)用户正在下载的用户联系人(contact) (515)相关的约会被同步,并且其中用户出席了在最近的(last) (540)30天(550)内 进行了修改的约会(525)。当然,用户总是可以创建无限量的査询。在另一个例子 中,可显示向导(wizard)或新建窗口以帮助用户设计査询。可以为应用程序的每一用户定义查询。例如,公司A的每个销售人员都可以 具有他们自己的查询。此外,查询可被进一步分解。例如,销售人员可能想要对关 于对顾客A超过5千万美元的所有销售进行更新但是也可能想要对关于对顾客B 超过50美元的所有销售进行更新。再一次参考图2,在方框210,可将过滤程序转换为SQL査询。由于许多应 用程序用户不擅长于创建SQL查询,该方法可自动执行该变换。可以使用固定的 选项集合(例如已知姓名和已知判断例如大于、小于等等)来创建查询。SQL查询可 以是取回针对数据库,例如CRM数据库发出的命令。在方框215,可以针对所希望的数据库执行SQL语句。如同先前所指出的, 数据库可以是CRM数据库并且SQL语句可以是在方框205由用户创建的査询的 SQL转换。获取所希望的数据及其他数据源的其它方式是可能的。在方框220,可以将SQL语句的结果存储在文件中,其中该文件可以是同步 文件。作为例子,如果方框205的査询请求了由脱机销售人员的顾客所下的所有新 定单,那么可以将自上次同步以来由该脱机销售人员的顾客所下的所有新定单存储在文件中。在一个例子中,该文件可以是表,但是只要联机和脱机应用程序理解该 文件中的数据,同步文件实际上可以具有任何形式。如果同步文件是表,则可以使 用传统的SQL语句来创建该表。例如,可以使用归并命令来向同步文件添加已删
记录和更新记录。此外,可以使用插入命令将新记录插入到同步文件中。在方框225,可以将同步文件传送给脱机应用。脱机应用可具有各种形式,例 如登录到网络中的基于web的应用程序、以单向和/或双向方式接收数据的无线装 置、手机型装置、或任何其它的可以与联机装置通信的电子装置。当使脱机装置联 机的时候,存在在联机装置和脱机装置之间进行通信的各种方式。协议和标准已经 就位来控制联机装置以及变为联机的脱机装置之间的通信。例如,如果脱机装置使 用因特网,则常用的方法包括http、 TCP/IP、 ftp等等。如前所述,可以将同步文件分成大小适合于与脱机装置进行通信的方法的包。 例如,如果脱机装置连接到也连接到联机装置的IO兆比特以太网,那么就不用太 考虑同步文件包的大小。但是,如果脱机装置通过无线连接以低带宽例如每秒 10kb、并且以容易丢包的低质量情况下连接,则适合使用较小大小的包。可以由应 用程序预先设置或动态修改包的大小,也可以由用户或模板对包的大小进行修改。在方框230, 一旦已经将同步文件传送给脱机装置,则联机装置可执行某些内 务处理(housekeeping)。可以对同步文件清空所有已被传送给脱机装置的条目。 此外,可以更新脱机装置的状态文件。状态文件可以跟踪脱机装置的状态,诸如最 近一次传送同步文件的时间。此外,可检査脱机装置是否成功接收到同步文件。尽管上述文本列出了很多不同实施例的详细说明,但是应该理解到本专利的 范围是由在本专利所附的权利要求的文字所定义的。仅仅将该详细说明视为是示范 性的,并且由于描述每个可能的实施例即使是可能的也将是不切实际的,因此该详 细说明没有描述每个可能的实施例。可以使用当前技术或者在本专利申请日之后研 发的技术来实现多种替换实施例,其仍将落入权利要求的范围之内。因此,可以对在此描述和说明的技术和结构做出许多修改和变化,而不会脱 离现有权利要求的精神和范围。相应地,应理解,此处描述的方法和装置仅仅是说 明性的并且不对权利要求范围进行限定。
权利要求
1.一种对在联机装置和脱机装置之间同步的数据进行定义的方法,其包括创建从数据源选择数据子集的查询;将所述数据子集存储到存储器中;向所述脱机装置传送所述数据子集;以及在所述联机装置上对脱机装置状态文件进行更新,其中所述脱机装置状态文件存储所述脱机装置的更新状态。
2. 如权利要求l所述的方法,还包括从多个预先定义的査询中选择一査询。
3. 如权利要求l所述的方法,还包括使用所述査询来收集存在于所述联机装 置上而不存在于所述脱机装置上的数据。
4. 如权利要求1所述的方法,还包括使用所述查询将所述联机装置上的数据 与所述脱机装置状态文件中的数据进行比较,以及使用在所述联机装置上是新的并 且未由所述脱机装置状态文件指示为在所述脱机装置上存在的数据对所述脱机装 置进行更新。
5. 如权利要求l所述的方法,其中所述数据是顾客关系管理数据。
6. 如权利要求l所述的方法,还包括将所述查询转换为针对CRM数据库执行的读取语句。
7. 如权利要求1所述的方法,还包括将所选择的数据子集存储在同步文件中。
8. 如权利要求7所述的方法,还包括当把更新的数据添加到所述同步文件中 的时候,立即将所述同步文件传送给所述脱机装置。
9. 如权利要求7所述的方法,还包括将所述同步文件分成用户可修改大小的包。
10. 如权利要求7所述的方法,还包括将所述同步文件分成对于所使用的通 信信道大小合适的包。
11.如权利要求7所述的方法,还包括当已经成功地将所述同步文件传送给 所述脱机装置的时候,对所述同步文件进行更新以指示提供给所述脱机装置的数据 对于所述脱机装置来说不再是新的数据。
12. 如权利要求l所述的方法,还包括允许对于不同的实体创建不同的查询。
13. 如权利要求l所述的方法,其中所述脱机状态文件是数据库表。
14. 如权利要求13所述的方法,其中创建脱机状态文件包括在数据库表中 归并己删的记录、归并更新后的记录以及归并插入的记录。
15. 如权利要求l所述的方法,还包括允许对于特定用户创建个别的查询。
16. —种计算机可读介质,适于存储计算机可执行代码以创建标识要在联机装置和脱机装置之间进行同步的数据的查询,其中所述计算机可执行代码包括计算机代码来创建从数据源选择数据子集的査询,其中所述査询将所述联机装置上的数据 与脱机装置状态文件中的数据进行比较,其中所述脱机装置状态文件存储了所述脱 机装置的更新状态;将所述数据子集存储到同步文件中;将所述同步文件传送给所述脱机装置,从而使用由所述脱机装置状态文件所 指示的在所述脱机装置中不存在的数据来更新所述脱机装置;以及 在所述联机装置上更新所述脱机装置状态文件。
17. 如权利要求16所述的计算机可读介质,还包括计算机代码,用于当已经 成功地将所述同步文件传送给所述脱机装置的时候,对所述同步文件进行更新以指 示己将所述同步文件中的数据传递给所述脱机装置。
18. 如权利要求16所述的计算机可读介质,还包括计算机代码用于将所述同 步文件分成为对于所使用的通信信道来说大小合适的包。
19. 一种计算装置,包括 显示单元,能够生成视频图像; 输入装置;处理装置,其操作上耦合于所述显示单元和所述输入装置,所述处理装置包括处理器和操作上耦合于所述处理器的存储器, 连接到网络和所述处理装置的网络接口;所述处理装置被编程来创建从数据源选择数据子集的查询,其中所述査询将所述联机装置上的 数据与脱机装置状态文件中的数据进行比较,其中所述脱机装置状态文件存 储所述脱机装置的更新状态;将所述数据子集存储到同步文件中;将所述同步文件传送给所述脱机装置,从而使用由所述脱机装置状态文 件所指示的在所述脱机装置中不存在的数据来更新所述脱机装置; 在所述联机装置上更新所述脱机装置状态文件;以及当已经成功地将所述同步文件传送给所述脱机装置时,更新所述同步文 件来指示已经将所选择的数据传递给所述脱机装置。
20.如权利要求19所述的计算装置,还包括更新所述同步文件来将所述同步 文件分成为对于所使用的通信信道来说大小合适的包。
全文摘要
公开了一种基于查询的系统以使脱机应用程序和联机应用程序同步的方法、系统和用户界面。查询可由用户定义,以仅标识脱机用户想要进行更新的有限的数据并且可以将满足该查询的数据存储在联机应用程序上的同步文件中。一旦已经成功地将同步文件传送给脱机装置之后,则可对该同步文件和联机系统上的脱机应用程序的状态文件进行更新以反映成功的更新。
文档编号G06F17/30GK101213544SQ200680023836
公开日2008年7月2日 申请日期2006年6月30日 优先权日2005年7月1日
发明者A·A·扎特瑟夫, A·斯墨廷, I·R·史密斯, J·S·吉尔沃, J·约翰森, R·H·普拉萨德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1