CN1708751A - 处理应用数据 - Google Patents
处理应用数据 Download PDFInfo
- Publication number
- CN1708751A CN1708751A CNA038200422A CN03820042A CN1708751A CN 1708751 A CN1708751 A CN 1708751A CN A038200422 A CNA038200422 A CN A038200422A CN 03820042 A CN03820042 A CN 03820042A CN 1708751 A CN1708751 A CN 1708751A
- Authority
- CN
- China
- Prior art keywords
- application data
- electronic equipment
- method call
- description
- application
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/542—Intercept
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了处理和准备处理应用数据的电子设备和方法。在第一电子设备(2a)上操作应用数据和在至少一个其它电子设备(2b)上操作所述应用数据的副本。将修改第一设备(2a)上的应用数据的方法调用翻译成更一般的描述。将描述传递给所述其它设备(2b)。根据方法调用处理第一设备(2a)上的应用数据。在第二设备(2b)上,将接收到的方法调用的描述翻译成对应用数据的副本处理的可本机执行的方法调用。
Description
技术领域
本发明一般涉及处理应用数据的领域。
背景技术
本发明尤其涉及多个互连电子设备和弥漫式计算(pervasivccomputing)的领域。今天,用户通常拥有和/或使用多个计算设备,例如,办公室台式计算机、位于家中或在旅行的时候使用的膝上型计算机、个人数字助理PDA和蜂窝式电话等。
不同电子设备运行同一应用软件的副本是常见的事。安装在几乎每台计算设备上的这种广泛流传的应用软件有例如电子电话簿、电子日历、电子制表器(to-do-lists)、字处理软件、演示软件和其它标准应用软件。当执行这样的应用软件时,可以生成和/或修改应用相关数据。例如,通过执行电子电话簿应用软件,用户可以以个性化电话号码列表的形式创建和/或修改应用数据。
当有这样的不同电子设备可供使用时,最好可以从这些不同电子设备的至少一些访问这样的应用数据,以便从不同设备所在地修正或修改那个应用数据。倘若这些设备总是可以获得最新版本的应用数据,用户可以从不同设备继续处理这样的应用数据。除了这种单用户/多设备情形之外,多用户/多设备情形也可以从这样的方法中获益:例如,最好在协作用户之间可以共享某些类型的应用数据,例如,文档或其它数据文件,以便允许每个用户对它们进行处理。例如,当不同用户需要一起工作时,可以联合编辑或修改一些文本文档或合同草稿。
尤其,由于网络的安装和数据传输协议的定义,将数据存储在像盘那样的便携式存储器上和在另一个设备上运行那个盘以便使这个数据可用来分配数据已经变得多余了。取决于连接电子设备的无线或有线耦合数据网络,存在为不同电子设备共享应用数据而提出的不同方法。
通过让应用数据的单个副本只存储在像办公***那样的一种中央电子设备或一些计算机服务器上,人们可以获得这种共享应用数据,即,至少所有有关设备总是好像包括同一应用数据。所有其它电子设备实际上不保存应用数据或它的副本,而是只提供与那个中心副本连接的手段。例如,这些其它电子设备能够分别从那个中央***和那个应用数据的单个副本中取出数据和将附加或修改的数据记入那个中央***和那个应用数据的单个副本中。
但是,在通信发生故障的情况下,在这些电子设备之间不能传送修正或修改的数据。
US 6,263,498 B1示出了分布式数据处理***,该分布式数据处理***包括位于客户计算机上的客户机方应用程序,其中,客户机方应用程序生成访问数据的请求,和该分布式数据处理***包括位于服务器计算机上的服务器方应用程序,其中,服务器方应用程序是包括商业规则、接收来自客户机方应用程序的请求和将数据返还给客户机方应用程序的可放入取出对象(dippable object)。
US 5,544,302公开了用于创建容器对象的面向对象框架,容器对象又用于保存其它对象和信息两者。框架本身包含一组使容器对象得以构建的预定义类信息。这样的预定义类信息包括提供诸如剪切、复制、粘贴、拖、放、选择、移动、取消和重做之类的默认编辑操作的成员函数,这些编辑操作可应用于容器中的所有对象。构建的容器对象可由众多用户访问,并可以包含其它对象。固有合作模型支持特定对象的功能和通信样式。合作模型可以支持屏幕共享、注释合并和文档合并。于是,用户选择与所创建对象有关的合作模型。
在另一种方法中,有关电子设备的确包括应用数据的副本,以便即使设备之间的连接丧失了或目前连接太昂贵,用户仍然可以访问和修改每个单独设备上的应用数据。
关于这种方法,使在一个设备上执行的数据或附加数据的修改部分传播到其它设备,以便应用数据的所有副本总是包括真正最新应用数据的方式是一个待解决的难题。
另一个问题是,不同副本可能-至少临时-“不同步”,即,例如,当设备之间当前没有连接时,或当设备之间的通信缓慢时,存在长等待时间。
关于这种方法的另一个课题是如何处理冲突情形:由于数据补钉的几乎同时交换或由于设备之间整个应用数据组的交换,可能出现不同数据副本的(准)同时改变。其原因可能是可以当作非常长通信等待时间的特殊情况的网络等待时间或临时断开。
因此,最好在使现有硬件和软件结构中的所需适应达到最小的同时,提供电子设备容易共享的应用数据。
发明内容
按照本发明,提供了包括执行应用程序的第一电子设备和执行最好是在第一设备上运行的应用程序的副本的应用程序的第二电子设备的电子设备阵列。第一电子设备包括基于应用程序执行的应用数据、根据本机生成的方法调用处理应用数据的中央控制单元、将消息发送到第二电子设备的接口和生成方法调用的描述并将描述传递给接口的同步实体。第二电子设备包括应用数据的副本、从第一电子设备接收消息的接口、从接口接收描述和从该描述中导出可在第二电子设备上执行的方法调用的同步实体和根据导出的方法调用处理应用数据的副本的中央控制单元。
本发明还推广到处理一组应用数据的方法,该方法包括:在第一电子设备上操作应用数据;在第二电子设备上操作应用数据的副本;在第一电子设备上:生成处理应用数据的方法调用,生成这个方法调用的描述,根据这个方法调用处理应用数据,并将描述发送到第二电子设备;在第二电子设备上:接收描述,从所述描述中导出可在第二电子设备上执行的方法调用,并根据导出的方法调用处理应用数据的副本。
本发明的基本构思是,生成方法调用以便修正应用数据的本机副本的电子设备将这个方法调用的描述提供给一个或多个其它电子设备。于是,每个其它电子设备通过分析接收的描述,并将它翻译成可在其它电子设备上执行的方法调用,能够以相同方式修正,或修改,或更新,要不然改变它的应用数据本机副本。最后,无需发送任何修正数据,甚至整个新应用数据组,而是发送在第一设备上实施以便引起这样的修正的操作的描述,就可以以相同方式修正存储在不同设备上的应用数据副本。由于不同设备可能让不同方法调用负责实施相同操作,所以将方法调用翻译成描述方法调用的更高级语言。在设备之间交换这种描述。关于这一点,不是每个单独描述都必须分开交换的。设备也可以发送一系列或一包方法调用的描述,最好用公用时间戳加上标记,以便提高效率。
但是,本发明的范围不局限于引起对现有应用数据加以修正的方法调用。引起对现在应用数据的任何操作或导致创建应用数据的任何方法调用都包括在内,即使对用户没有什么明显的作用。最好,应用数据代表应用软件的状态。应用数据也被称为模型。应用数据可以存储在数据文件中或内部存储器(in-memory)数据结构中,或两者中。在优选实施例中,应用数据呈现包括指示内容的数据单元和包括指示数据单元之间的关系的数据,因此,对结构负责的内部数据结构。于是,应用数据以一种结构,例如,树或列表结构的形式存储,以便得到快速访问。于是,可以出现这样的情况,特定方法调用以只有结构性关系发生变化,而不是数据单元本身发生变化的方式对应用数据产生影响。
在计算机语言方面,通常可以对应用数据进行一组操作,并定义实施这些操作的相应方法调用。因此,本方法调用通常是一组允许方法调用当中的一种方法调用。根据本发明的方法调用在应用数据正在被处理时使操作应用于应用数据,并且,最好使应用数据的状态发生改变。在本发明的背景下,相关语言是当运行应用程序时可以应用于应用数据的语言。方法调用最好是应用程序接口语言允许访问应用数据,尤其用于修改目的的部分。用户输入最好被翻译成当被执行时对应用数据产生影响,因此,实现用户输入的方法调用。这样的用户输入可以,例如,通过启动键盘或计算机鼠标来唤起。但是,这样的输入不必与生成方法调用的特定设备联系在一起来完成。引起处理应用数据,例如,修正,修改或改变这些应用数据的输入也可以来源于其它设备,并且被传送到本机解释传送的输入和创建相应方法调用的翻译设备。
中央控制单元可以包括处理各个软件的微型计算机,或包括硬布线逻辑单元,或者部分具体化成硬件和部分具体化成软件,或者以任何其它形式具体化或被理解成功能。
连接电子设备的接口可以包括使链接部件一起工作所需的所有东西。这可以包括使连接工作的硬件、软件和协议。这样的连接可以以无线或有线耦合方式实现。除了其它近程和/或广域通信接口之外,蓝牙(Bluetooh)或无线LAN 802.11是覆盖近程数据通信领域和可应用于本发明的这样无线接口的例子。接口将消息发送到其它设备和/或从其它设备接收消息,以便提供信息交换。对于本发明,方法调用的描述是这样消息的内容。
对于本机生成方法调用的处理,同步实体截取方法调用的执行,将方法调用翻译成方法调用的描述,并负责将这个描述分配给用于普通复制目的的接口。同时或之后,可以由要对应用数据的本机副本执行的同步实体传递方法调用。在另一个优选实施例中,可以从它的描述中导出方法调用,然后,对应用数据的本机副本执行方法调用。于是,本机处理各自操作。对于远程生成方法调用的处理,同步实体被配置成从接口接收方法调用的远程生成描述,将它翻译成可本机执行的方法调用,和传递它,以便可以在应用数据的本机副本上实施它。于是,各个操作得到处理。本发明的同步实体基本上是本发明电子设备负责使本机应用数据与至少一个其它设备上的应用数据副本同步的部分。使应用数据的最新版本可在不同设备上使用也被称为“同步”。两个或更多个设备可以形式同步网络,每个设备含有使应用数据的最新版本可供使用的同步实体。
本发明的主要优点是,可以在使现有和经反复试验的应用程序代码和/或操作***代码的改变降到最低,因此,最大程度地保持应用程序熟悉编程接口的同时,将应用数据转换成“可共享”或“分布式”应用数据。总之,只需要对原程序作少许修改,并且,可以使已存在和已验证单用户应用程序的重新确认/调试构件变成绝对最小。
对于设备之间的数据业务,本发明只需要交换少量数据量,因为在设备之间只交换方法调用的描述,而不是整个应用数据文件或它们的某些部分。即使设备之间的连接暂时还未建立起来,也不能阻止断开设备的用户继续处理应用程序,因为应用数据的本机副本仍然提供这种可能性。
也可以称为截取器的这种同步实体最好可以呈现与原应用模型相同的应用程序接口(API),以便接收用于复制目的的方法调用。另一方面,同步实体可以使所有本机生成的和/或远程生成和本机翻译的方法调用可应用于应用数据,从而让传递这些方法调用的相同应用程序接口(API)应用于应用数据,和从而允许保持应用软件的输入和输出行为完全不变。尤其,本优选实施例在使现有的、经反复试验的代码的改变降到最低,和允许最大程度地保持应用程序熟悉编程接口的同时,允许将现有应用数据和基础应用软件分别转换成“可共享”或“分布式”应用数据和应用软件。
在本发明的另一个优选实施例中,同步实体是软件实现的。在这种情况下,同步实体被当作所谓的复制中间件来实现。中间件被理解成介于可能分开的软件***之间和使它不由用户直接使用,而是由软件模块直接使用的一个软件。在它的功能可供不同应用程序使用的意义上,它通常具有为许多不同应用程序完成工作或动作的能力。对于本发明,同步实体最好被设计成自动为不同应用程序服务,因此被设计成与实际操作的应用软件无关地传送方法调用的描述。
本发明的优选实施例涉及存储不能发送到另一个电子设备的方法调用的描述。每当两个设备在使用共享应用程序的时候断开时,可以存储未发送的描述,以便每当网络连接重新工作时让它们得到发送或至少尝试发送它们。因此,最好,起方法调用的描述发送者作用的每个设备配有这样的存储功能,这种功能是同步实体的组成部分。这种功能有助于即使连接中断了一会儿,也可能通过认可延时,在不同设备上使应用数据同步。
在本发明的另一个优选实施例中,用日志记录方法调用的描述,和为读取日志和核实应用数据,以及对应用数据执行基础操作分别提供回退构件。
通常,在不同设备上不同的操作执行顺序导致不同的应用数据。受干扰的同步、连通性的丧失或其它干扰可以引起设备上的这种不同执行顺序。本优选实施例有助于在,例如,由于连通性的丧失而出现的干扰之后,再次重新获得相同的“同步”应用数据。为了保证应用数据的所有分布式副本的最终状态都相同,有必要进行回退,即,“取消”已经应用的操作,对它们重新排序,并且保证以相同的顺序将操作(重新)应用于应用数据的所有副本。因此,可以交换方法调用的描述并可以“调和”歧异副本(diverging copy),以便使所有应用数据在某个设置时间之后一致。倘若应用数据副本的初始状态是相同的,以相同顺序将所有操作应用于所有应用数据可以保证所有应用数据的最终状态都是相同的,这种操作是确定性的,不会产生任何副作用。
通过为设备提供“全局时间”,因此在与同时修改有关的参与设备之间创造公平性,本实施例尤其可以得到支持。全局时间的引入以通过应用相同的方法调用顺序,最终所有应用数据都经历相同的操作顺序的方式给予支持。
进行这样的回退并以新的不同顺序将操作重新应用于应用数据的上述偶尔需要最好要求:与每个应用数据副本有关,存在一个与应用数据的副本和尤其它在日志起点(所谓的回退点)的状态一起,或与使所有操作至少返回到所有应用数据副本之间存在一致性的点的附加信息一起对最近操作保留的“日志”。
解决冲突所需的这种日志加上所有附加数据的维护属于支持本发明的这个实施例的任何复制基础设施的职责。
这个回退功能最好作为同步实体的一部分来实现。日志信息最好由复制基础设施至少保持到可以决定所有复制品以相同顺序应用了所有操作为止。那时,可以删除日志。
在另一个优选实施例中,在第二电子设备上对应用数据的副本进行操作之前,将应用数据从第一电子设备复制到第二电子设备。这样,当开始共享应用数据时,具有相同的应用数据。可选地,通过确定在第一设备上获取初始应用数据执行的所有方法调用,在第一设备上生成这些方法调用的描述列表,将这个列表发送到第二设备,将描述列表翻译成可在第二设备上执行的方法调用,和从空应用数据状态开始在第二设备上执行这些导出的方法调用,可以生成第二设备上应用数据的副本。这种优选方法检查第一设备上的初始应用数据模型和导出为获得这个模型而处理的方法调用的列表。然后,将这个列表翻译成方法调用的描述列表。对于具有树结构的模型,这样的描述列表看起来像如下那样:(创建节点A;创建节点B;将节点B附在节点A上;创建节点C,将节点C附在节点A上;创建节点D,将节点D附在节点C上;...)。最好,所有这些都由第一设备的同步实体来完成。然后,将描述列表发送到第二设备,将其翻译成从空应用数据状态开始在上面执行的方法调用。因此,第二设备上的所得模型是第一设备上的模型的副本。
根据本发明的另一个方面,提供了执行应用程序的电子设备,该电子设备包括基于应用程序执行的应用数据、从另一个电子设备接收消息的接口、从接口接收远程生成和要远程应用的方法调用的描述和将这个描述翻译成可本机执行的方法调用的同步实体和根据从接收的描述中导出的方法调用处理应用数据的中央控制单元。
即使没有显示出将描述发送到其它设备的发送能力,这个电子设备最好也可以起其它电子设备的备份设备的作用。
根据本发明的另一个方面,提供了执行应用程序的电子设备,该电子设备包括基于应用程序执行的应用数据、根据本机生成的方法调用处理应用数据的中央控制单元、将消息发送到另一个电子设备的接口和生成方法调用的描述和将描述传递给接口的同步实体。
即使没有显示出从其它设备接收操作的描述的接收能力,这个电子设备最好也可以起主设备或测试设备的作用,以便使其它电子设备同步。
本发明还推广到这样的执行应用程序的电子设备,该电子设备包括基于应用程序执行的应用数据、与另一个电子设备交换消息的接口、从接口接收远程生成方法调用的描述和从描述中导出可本机执行的方法调用并生成本机生成方法调用的描述和将这个描述传递给接口的同步实体。还包括根据导出的方法调用和根据本机生成的方法调用处理应用数据的中央控制单元。
根据本发明的另一个方面,现在提供了处理电子设备中的应用数据的方法,该方法包括:本机生成处理应用数据的方法调用;生成方法调用的描述;将描述发送到另一个电子设备;和根据方法调用处理应用数据。
本发送还推广到这样处理电子设备中的应用数据的方法,该方法包括:从另一个电子设备接收远程生成和远程执行的方法调用的描述;从描述中导出可本机执行的方法调用;和根据导出的方法调用处理应用数据。
本发送进一步推广到这样处理电子设备中的应用数据的方法,该方法包括:本机生成处理应用数据的方法调用;生成方法调用的描述;将描述发送到另一个电子设备;根据本机生成的方法调用处理应用数据;从另一个电子设备接收远程生成方法调用的描述;从描述中导出可本机执行的方法调用;和根据导出的方法调用处理应用数据。
根据本发明的另一个方面,提供了准备处理电子设备中的应用数据的方法,该方法包括:从应用程序接口接收方法调用;生成方法调用的描述;使描述通过电子设备的设备到设备接口;和将用于应用数据处理目的的方法调用提供给应用程序接口。
本发送还推广到这样准备处理电子设备中的应用数据的方法,该方法包括:从电子设备的设备到设备接口接收远程生成和远程执行的方法调用的描述;从描述中导出可本机执行的方法调用;和将用于应用数据处理目的的导出方法调用提供给应用程序接口。
根据本发明的另一个方面,提供了准备处理电子设备中的应用数据的方法,该方法包括:从应用程序接口接收方法调用;生成方法调用的描述;使描述通过电子设备的设备到设备接口;将用于应用数据处理目的的方法调用提供给应用程序接口;从设备到设备接口接收远程生成方法调用的描述;从接收的描述中导出可本机执行的方法调用;和将用于应用数据处理目的的导出方法调用提供给应用程序接口。
所有方法步骤最好是计算机实现的步骤。
请注意,在所要求的方法内步骤的顺序在某种程度上是可交换的。尤其,发送和/或接收方法调用的描述和传递要处理的方法调用的本机描述可以按不同顺序进行。
本发明还推广到包括计算机程序代码工具的计算机程序单元,其中,当被装入电子设备的处理器单元中时,计算机程序代码工具将处理器单元配置成执行如上所述的方法。
参照电子设备阵列和处理一组应用数据的方法,以及参照它们的实施例描述的优点也被认为是如上所述的电子设备和处理应用数据的方法,以及各自实施例的长处。
附图说明
现在参照附图,只通过举例的方式描述本发明的优选实施例,在附图中:
图1是按照本发明的电子设备的图形;
图2是按照本发明的根据图1的电子设备的另一个图形;
图3是按照本发明的电子设备阵列的图形;
图4是与按照本发明的根据图3的电子设备阵列有关的另一个图形;
图5是与多个用户和按照本发明的设备的共享对话的方案;
图6是按照本发明处理应用数据的方法的流程图;
图7是本发明设备阵列的图形;和
图8是已知电子设备的图形。
不同图形可能示出相同的标号,代表内容相似或相同的单元。
具体实施方式
在开始参照附图描述本发明的优选实施例之前,引入有助于稍后说明实施例的“模型-视窗-控制器”(MVC)模式。MVC模式一般可以被理解为与应用软件有关的设计结构,并且被理解为定义用于访问相关应用软件处理的应用数据的计算机内部接口的结构。图8示出了与电子设备1有关的这种已知MVC。
根据这种方案,软件是这样构成的:将应用状态封装在所谓的“模型”11中,“模型”11被认为包括在按照本发明使用的术语“应用数据”中。这个模型11提供应用程序接口API,即,一组明确定义的方法调用,解释用户输入的“控制器”12通过它修改和/或改变模型11的状态。请注意,存在几个不同控制器121、122是相当常见的,例如,一个用于控制键盘14的键击,另一个用于控制定位设备15的操作,鼠标移动和鼠标点击,比方说,在图8中未明显示出的第三个在语音-输入/-控制的情况下用于管理用户的发声。因此,MVC背景下的控制器与其被理解成硬件控制单元,还不如被理解为一种功能。
一个或多个所谓的“视窗”13可以借助于模型11来登记,从而表示在模型11的状态发生变化的情况下需要通知它/它们。模型11保留所有已登记视窗实体的列表,并且,如果模型的状态发生变化,将有关变化通知它们全体。此外,可能存在几个观察同一模型,例如,显示同一模型的不同“方面”的视窗131、132、133。这些视窗131、132、133通过观察完全相同的单个模型11自动保持同步。请注意,术语“视窗”来源于源头(GUI-设计)的模式视野(pattern’s field),并且,“视窗”也可以被命名为“观察窗”和“报告窗(renderer)”。尽管图8中的视窗133与一个或多个显示器16相连接,但视窗不必显示任何东西;视窗也可以是看不见的实体,例如,生成语音输出。事实上,它并非总是向用户报告,也可以是触发一些物理动作,例如,根据模型状态或状态转换启动一些阀门或启动一些致动器电机的单元。因此,MVC背景下的视窗与其被理解成硬件显示单元,还不如被理解为一种功能。
Bob Martin在2002年7月18日访问的和从因特网:http://cbl.leeds.ac.uk/nikos/tex2htm/examples/concepts/node74.html中检索的“MAC(模型视窗控制器)”中,以及在2002年7月18日访问的和从因特网:http://minnow.cc.gatech.edu/squeak/1767中检索的“MVC”中例示了MVC构思。
现在参照本发明的优选实施例,图1示出了电子设备2的这样优选实施例的MVC型图形。应用数据被封装在“模型”21中,举例来说,这个应用数据可以代表设备用户通过执行字处理应用软件实际处理的特定字处理文档的实际状态。模型11提供应用程序接口API,即,一组明确定义的方法调用,解释用户输入的“控制器”22通过它修改模型21,或者,更一般地说,操作或处理应用数据。控制器221、222解释用户输入并将这个输入翻译成一个或多个方法调用,这些方法调用可以是例如当进行操作时使应用数据发生改变的特定命令。控制器221、222一般接收用户输入,将这个输入翻译成一个或多个方法调用,并对模型21实施有目的操作。不同控制器221、222用于翻译例如来自键盘24的键击或定位设备25的操作,例如,鼠标移动和鼠标点击,和在图8中未明显示出的语音-输入/-控制的情况下管理用户的发声,并且将这个输入翻译成方法调用,最后处理这个操作。根据这个操作,模型21改变它的状态。
一个或多个所谓的“视窗”23可以借助于模型21来登记,从而表示在模型21的状态发生变化的情况下需要通知它/它们。模型21保留所有已登记视窗实体的列表,并且,如果模型的状态发生变化,将有关变化通知它们全体。此外,可能存在几个观察同一模型,例如,显示同一模型的不同“方面”的视窗231、232、233。这些视窗231、232、233通过观察完全相同的单个模型21自动保持同步。请注意,术语“视窗”来源于源头(GUI-设计)的模式视野,并且,“视窗”也可以被命名为“观察窗”和“报告窗”。尽管图1中的视窗233与一个或多个显示器26相连接,但视窗不必显示任何东西;视窗也可以是看不见的实体,例如,生成语音输出。事实上,它并非总是向用户报告,也可以是触发一些物理动作,例如,根据模型状态或状态转换启动一些阀门或启动一些致动器电机的单元。因此,MVC背景下的视窗与其被理解成硬件显示单元,还不如被理解为一种功能。
现在,引入用作普通复制中间件的同步实体27,普通复制中间件截取为模型21准备的所有控制器操作,将各自方法调用翻译成描述,并将描述传递给负责将这些描述分配给其它电子设备和/或从其它设备接收描述的接口28。这个可替代单向输出、单向输入或双向通信用各自箭头来表示。通常,电子设备,尤其同步实体27提供双向通信,因此,发送和接收方法调用的描述,但是,像将设备用作备份设备那样的特殊应用可能根据方法调用的描述调整只有接收或甚至只有发送能力。
将接收到的远程生成方法调用的描述翻译成可本机执行的方法调用,并且应用于模型21的本机副本。传递和对模型21的本机副本执行本机生成方法调用。生成本机生成方法调用的描述和将它传递给其它设备,以便使模型的远程副本以通过应用相同操作更新模型21的本机副本的相同方式得到更新。在优选实施例中,只有那些修改应用数据的本机生成方法调用被翻译成描述。这样的“写”方法调用引起对应用数据的修正,而“读”方法调用不必被翻译成描述和被发送到另一个设备。
模型21按照对应用数据实施操作、本机生成或从接收的描述中导出的方法调用改变它的状态,并且通知它的相应视窗/观察窗23。
为了最小化或甚至消除应用程序的现有部分的改变必要性,同步实体27像模型21那样对控制器呈现完全相同的应用程序接口API。另一方面,同步实体27利用模型21来“馈入”要执行的本机和/或远程生成方法调用,从而还允许保持视窗23的结构完全没有改变。
图2示出了更着重于说明设备的基础硬件的、根据图1的电子设备的另一个图形。电子设备的硬件部分29至少包括中央处理单元CPU 291、本机存储器293、随机存取存储器RAM 292、寄存器单元294、输入/输出单元295和接口28。这些单元通过***总线295互连。此外,键盘24、定位设备25和显示器26与电子设备2连接,尤其与输入/输出单元295连接。
如下数个软件存储在本机存储器293中:基础应用软件用标号2931表示,用于接口的驱动器软件用标号281表示,具有结合图1说明的功能的控制器和视窗软件分别用标号22和23表示,指定同步实体的代码用号码27标记。打算供CPU 291处理的应用数据21从本机存储器293复制到RAM 292。
寄存器单元294包括指定给未能通过接口28发送给其它电子设备的本机生成方法调用的描述的寄存器2941。寄存器2941用于存储在共享对话期间没有发送的本机生成方法调用的所有描述。每当与其它暂时断开设备的连接再次建立起来时,可以发送存储的描述和可以由其它设备执行基础操作。
其它寄存器2941可以用作存储对本机应用数据处理的、最好包括时刻戳的描述的日志,这些描述描述本机或远程生成的方法调用。与最好是同步实体27的一部分和对于回退的情况也负责生成要由复制基础设施保留的日志信息的回退实体软件段2932一起,可以保证本机或远程来源的所有方法调用以相同的顺序应用于应用数据。这可以通过定期地或在需要时检验设备的日志和运行应用于所有目志的定序算法,以便在任何地方都保证相同执行顺序来达到。在不同的情况下,可以运行回退构件,直到可以决定所有复制品以相同顺序应用了所有操作为止。那时,可以删除日志。
请注意,寄存器294不必被具体化成分立硬件部分29,它也可以是设备的另一个存储单元的一部分。可选地,存储在本机存储器293中的数据可以从驱动器读取。
图3示出了包括两个相连电子设备2a和2 b的电子设备阵列,这两个电子设备2a和2b示出了与根据图1的电子设备的结构相同的结构。在这个优选实施例中,设备2a和2b被当作对等设备。更具体地说,这些设备2a和2b可以是相同设备。与图1相联系使用的标号现在用“a”和“b”加以扩展,以表示与设备2a或与设备2b的附属关系。根据图3,设备2a和2b的同步实体27a和27b连接在一起。由于同步实体27a和27b之间的基本数据传输是通过两个设备2a和2b之间的传统接口实现的,这个连接表示高级数据连接。同步实体27a和27b之间的链路表示这些实体27a和27b最好当用中间件来实现,因此,用于设备上的许多不同应用程序。这些实体27a和27b控制方法调用的描述的交换,因此,引起不同设备上的应用数据的同步复制,意味着应用数据具有相同的状态。同步实体27a和27b用于通过交换方法调用的描述自初始化更新应用数据。
在多设备配置中,几个或甚至所有中间件实例以上述方式互连并至少在第一步骤中截取操作(intercept)调用。在输入被解释成API兼容方法调用的情况下,生成这个方法调用的相应描述并将它分配给其它对等设备。由于回溯原因,取出描述和将它加入方法调用日志的本机描述中。在每个对等设备上,各自中间件接收这个方法调用的描述和将它的内容翻译成可在各自对等设备上执行的方法调用。然后,各自方法调用对本机模型实施各自操作。最后,每个模型执行相同操作和改变它的状态。通过发送一个事件将有关状态改变通知视窗。每个视窗更新译文。
这种方法在图3中通过例子表示出来:为了示出不同食谱,用户在设备2a上运算应用程序。通过键盘25a上的鼠标点击,他决定编辑意大利烹饪的食谱。这个动作在定位设备25b上被象征性地表示出来。相应控制器221a解释这个输入和创建可以被应用程序理解的、包括参数“cuisine”和“Italian”的API方法调用“Chang Attribute(cuisine,Italian)”。在对模型21a实施操作“edit recipe of Italian cuisine”之前或同时,设备2a的同步实体27a创建像“编辑食谱;参数是‘Italian’和‘cuisine’”那样的这种方法调用的描述,并且将这种描述发送/复制到设备2b的同步实体27b。由于设备2b可能提供另一组方法调用,以便实施相同的操作,所以不发送方法调用本身。另外,用日志记录这种描述。设备2b的同步实体27b接收描述和将它翻译成可本机执行的方法调用例如“ChaAtt>Italian,cuisine”。现在,通过各自方法调用可以将编码操作应用于模型21a和21b两者。设备2a和2b的应用程序和它的数据/状态发生了改变。倘若模型21a和21b在实施操作之前具有相同的状态,现在,由于模型21a和21b的应用状态发生了改变,在模型21a和21b两者的显示器26a和26b上编辑和显示要求的食谱。
图4示出了包括如图3所示的设备2a和2b的相连电子设备2a到2e的另一个图形。立式计算机代表设备2a,台式计算机代表设备2b、2c和2d,和备份服务器代表设备2e。代表例如因特网的网络3连接电子设备2a到2e。通过网络3,设备的同步实体27a、b、c、d和e交换方法调用的描述。
图5a象征性地例示了Alice、Bob和Carl参与联合对话的用户情形,他们都拥有在他们的设备上,即,在Alice的膝上型计算机2k和蜂窝式电话21上、在Bob的台式计算机2m和工作站2f上以及在Carl的台式计算机2g和蜂窝式电话2h上运行的相同应用数据的副本。另外,存在为备份联合对话,以及操作应用数据的本机副本而安装的备份服务器2i。与设备2x相联系的符号点指出存在基于本发明的同步实体。
假设Alice对她的应用数据本机副本加以改变。这个改变将马上传播到包括备份设备2i在内的所有其它设备。
根据图5b,情形发生了改变。Alice和Carl是离线的。当Alice现在对她的应用数据加以改变时,在她的设备仍然连接的情况下,这个改变只传播到这些设备的应用数据副本。当Alice回到在线状态时,由于备份日志登记了未发送的方法调用描述和当回到连接状态时开始他们的供应,该改变传播到在线的设备。当Carl再次变成在线的时,他-相应地,他的在线设备2g和2h-将从备份服务器2i接收方法调用描述。
图6公开了处理应用数据的方法的流程图。该流程图是为在电子设备上运行的示出发送和接收能力的方法起草的。在步骤100中,可能存在等待执行的本机控制器请求或本机API方法调用。在步骤101中将这样的方法调用翻译成这个方法调用的更一般描述和基础操作。在步骤102中,将这个方法调用的描述传递给所述电子设备的设备到设备接口,以便发送到另一个设备。然后,在步骤103中将方法调用的描述翻译回成原来的方法调用。传递这个方法调用以便应用于应用数据的本机副本。在步骤104中,通过执行方法调用处理应用数据的本机副本。
除了在步骤103中再次从描述中导出方法调用之外,也可以传递在步骤100中引入的初始方法调用和在步骤104中直接应用于应用数据。这些方式用虚线表示。因此,步骤103将是多余的。接口将当前设备与进行共享应用对话的另一个设备相连接。如果存在在步骤105中检测的远程生成方法调用的描述,在步骤103中将这个描述翻译成可本机执行的方法调用。然后,在步骤104中执行这个步骤,使设备的应用数据得到修改。
虚线和“API”标记表示当前API方法调用。大括号表示中间件的职责范围。仅有接收器设备或仅有发送器设备分别缺乏这个流程图的发送步骤和接收步骤。在对等设备上运行的方法最好是倒过来的。
一般说来,为了应用本发明,如下情形是优选的:可以在同一用户的不同设备之间有利地取得应用数据的同步:因此,用户可以,例如,在他的办公室和从办公室回来之后在家中继续处理同一应用。在另一种环境下,用户可能有几个设备可供使用,这些设备具有不同的用户接口能力或输入/输出特征。现在,用户可以在设备之间切换,以达到他需要的最佳输入/输出性能:假设第一设备只示出语音输入/输出可能,而另一个设备示出显示能力,那么,用户可以链接这些设备的同步实体和使用这些设备的所有不同输入和/输出单元,以便处理应用数据。采用本发明的另一个领域是通过联合编辑、共享白板等,在不同用户之间共享的应用。在这种情况下,当使用本发明时,也可以简化和花费更少时间配置培训、教学和支持。在服务器作为电子设备包括进来的情况下,使进行像支续或备份处理、审计、索引、代理或目录服务那样的附加有价值处理,以及在线时间不重叠的桥接处理等成为可能。
但是,可能存在不访问上述同步软件的应用软件。通过应用其它分布式计算方法,这些应用软件甚至可能不是共享的。通过形成不同的对等设备组,和例如通过进行文档的联合编辑或共享白板,这样应用软件的用户可以不参与共享应用对话。
但是,计算机用户通晓在他们的本机图形用户界面(GUI)环境下通过剪贴板启动的“剪切/复制和粘贴”范例。这个剪贴板通常是操作***软件的一部分的一段软件,使用户可以与应用类型无关地从一个本机应用中剪切或复制数段任何应用数据和将它们粘贴到一些其它本机应用上。在这种情况下,剪贴板软件主要管理临时存储应用数据的存储分配,其中,通常一次只能锁存一段应用数据。剪贴板功能“复制”和“粘贴”可以通过计算机键盘上的短键来调用,短键是例如(对于复制)“控制键+C键”的键组合和(对于粘贴)“控制键+V键”的键组合。这些短键独立于任何应用。
为了使这样的几乎不共享本机数据可用于共享应用或远程本机应用,除了电子设备本机剪贴板之外,提供供共享用的对话剪贴板是值得重视的。于是,这样的电子设备包括本机剪贴板功能和与共享应用相联系的剪贴板功能。最好,电子设备的每个共享应用包括它自己的对话剪贴板。对话剪贴板最好还主要管理临时存储分配的应用数据的存储分配。
最好,在电子计算设备中,提供包括代表众所周知的剪贴板功能的用户/设备本机剪贴板在内的多层剪贴板。另外,为用户参与的每个对话提供一个分布式剪贴板。后者被那个对话中对等设备组的所有成员共享。
分布式对话剪贴板最好是安装在参与应用对话的所有计算设备或对等设备中、也称为共享应用程序在上面运行的中间件的合作软件的一部分。这个中间件基本上负责互连不同计算设备,将应用数据和数据的改变传播给它们全体,并保证这个数据在所有设备上都是一致的。这个软件可以基于例如数据的实时复制,以保证任何参与者所作的改变对于所有其它参与者都是可见的。中间件软件最好呈现在上述说明中描述的特征,因此,具有发送和/接收方法调用的描述的能力。因此,优选剪贴板阵列是所提出的发明的共享应用数据的基本构思的附加特征,以便将非共享应用包括在这个构思中。但是,所提出的剪贴板阵列、值得重视的方法、相应的设备、设备的阵列和软件也可以被当作单独的构思,并应用于追求除了上面引入的发明构思之外的其它数据共享构思的方法、设备或软件。
在电子设备的阵列中,除了电子设备的本机剪贴板之外,每个参与设备包括与其它设备共享使用的对话剪贴板。最好,每个共享应用包括它自己的对话剪贴板。每个对话可能存在使其可用于每个参与设备的唯一公用对话剪贴板。换句话说,每个参与设备拥有对话剪贴板的副本,以便将传送到设备对话剪贴板的应用数据发送给其它设备对话剪贴板,使应用数据的本机副本可在每个设备上使用。
于是,应用于电子设备的建议方法包括如下步骤,通过本机剪贴板将所选数段应用数据从本机应用复制到本机对话剪贴板,以便使对话剪贴板中的数据可自动用于共享对话的所有参与者,和/或通过本机剪贴板将数据从对话剪贴板粘贴到本机应用。
将发送到远程设备的应用数据的源头不局限于本机应用,也可以包括共享应用数据的另一个本机副本或甚至另一个对话剪贴板。
同样,远程设备上应用数据的接收实体不局限于本机应用,也可以包括共享应用的另一个本机副本或甚至另一个对话剪贴板。
与电子设备的阵列有关,分配应用数据的方法值得重视,在这种方法中,通过本机剪贴板将本机选择的应用数据复制到对话剪贴板,对话剪贴板负责将包含在对话剪贴板中的数据分配给远程设备,并通过本机剪贴板将分配的数据和它的副本分别从对话剪贴板粘贴到本机应用或另一个对话应用。
因此,包括用户个人剪贴板和共享对话剪贴板、和将在这个分层内传送数据的可能性提供给用户的多用户环境得到支持。这是用户在这样的环境下共享任何段数据的自然和无缝方式。现在,参与共享应用对话的用户可以使用这个相同范例与对话中的其它对等设备共享本机数段数据,以及将数据从一个对话传送到另一个对话-也称为代理。多层剪贴板使共享应用对话的参与者能够有选择地将数据从他们可能不用于共享的本机应用传播给对话的其它参与者,或将数据从一个对话传送到另一个对话。
图7示出了两个电子设备4和5的阵列的图形,设备4包括本机运行应用程序41,包括共享应用程序42的副本和包括操作***43,标号41、42和43都代表软件。设备5包括最好是除了应用程序41之外的另一种应用程序的本机运行应用程序51,包括与共享应用程序副本42匹配的共享应用程序副本52,并包括操作***53,标号51、52和53都代表软件。操作***43和53分别包括剪贴板功能431和531。分配给共享应用程序副本42的是对话剪贴板44,和分配给共享应用程序副本52的是对话剪贴板54,这两个对话剪贴板44和54分别是中间件的一部分。应用程序副本42和52,以及对话剪贴板44和54是为交换数据准备的。
假设用户选择了图7的本机应用程序41中的一段应用数据411,并通过实施复制/剪切功能将它复制到他/她的个人剪贴板431-步骤a)。受合作软件接口的支持,用户选择将个人剪贴板431的内容复制到特定对话的分布式剪贴板44-步骤b)。
由于安全性/私密性的原因,这个步骤b)是优选的,从而并非个人剪贴板431中的所有数据都被自动共享,因为用户甚至可能意识不到或记不住最终复制到他/她个人剪贴板431的可能保密数据。每个对话拥有分立“分布式剪贴板”是优选的,以便使可能同时卷入与不同对等设备(组)的两个或更多个对话的用户可以选择他/她想要与其共享一段特定数据的对等设备。
将对设备4的对话剪贴板44中的该段应用数据411的引用发送例如复制到其它设备5-步骤c),也许发送到参与那个对话的更多对等设备。于是,设备5的对话剪贴板54现在包含应用数据411的副本。
当设备5的用户现在从合作软件接口中选择“粘贴”选项时,将来自分布式对话剪贴板54的数据粘贴到个人剪贴板531-步骤d),以后通过实施本机粘贴功能可以用在任何本机应用程序51中-步骤e)。
在另一个实施例中,引入基于JavaTM(太阳公司的商标)数据传输框架的剪贴板构思的JavaTM实现:
首先,为了便于理解,描述在JavaTM数据传输框架中作为标准过程的单设备环境下的步骤,其中从那个框架中取出如下术语“CopySource”、“Trans-ferable”和“DropTarget”:
1)用户首先选择本机JavaTM应用程序中的一段数据,并通过实施复制/剪切功能将它复制到本机剪贴板:这个操作生成“Transferable”对象,“Transferable”对象保存必须实现“CopySource”接口的源应用程序可以提供数据的所有可能数据格式的描述。
2)将那个“Transferable”放入“***剪贴板”中。
3)当将数据粘贴到必须实现“DropTarget”接口的同一个或另一个JavaTM应用程序时,那个应用程序从***剪贴板中取出Transferable对象。它从Transferable中请求格式描述,检查它,和检验它是否能理解提供的格式,如果是的话,检验它能理解所提供的格式中的哪一个。如果它可以管理多于一种所提供格式,则挑选认为最适合的那一种。
4)然后,它以在前一步骤中选择的格式向Transferable对象请求要粘贴的数据。
5)Transferable对象以所请求的格式返还数据。它可以这样做,因为它已经包含所有可能格式的数据,或因为它包含回到原始应用程序和对象的引用,因此,现在可以以所选格式请求它。马上以所有可能格式将数据复制到Transferable或只在需要时创建数据的决定通常取决于被复制/剪切的应用程序和对象的类型:如果对象小,例如,只是一小段文本,那么,以几种不同格式的创建和存储在***上不会引起太多的处理开销和存储负担。但是,如果是例如大图像,则以几种格式例如以.gif/.jpg/.bmp/.ps/...创建和存储它可以对***引起较大的存储和性能问题。在后一种情况下,只将引用存储在Transferable中,当通过“DropTarget”和只以要求的格式实际请求时,只创建实际数据。
根据本发明的剪贴板分层结构中的分布式对话剪贴板引入了新步骤,在上述步骤1)到5)的修正样式中公开了这些新步骤(1s...5s,和1r...5r)。
关于“复制/剪切”-“发送者”方的功能:
1s)用户S(发送者)选择...(否则像上面的1)那样)。
2s)将那个“Transferable”对象放入“***剪贴板”中(否则像上面的2)那样)。
3s)用户S(发送者)通过例如选择对话图标和执行粘贴功能,粘贴到特定对话剪贴板中。
4s)在Transferable已经包含所有可能格式的数据的情况下,创建Transferable的副本和将它复制到那个对话中所牵涉的所有设备和用户。
5s)在Transferable不包含所有可能格式的数据的情况下,创建本机Transferable的“代理”和将它复制到那个对话中所牵涉的所有设备和用户。那个代理-Transferable只包含格式描述和原Transferable的地址。
关于“粘贴”-“接收者”方的功能:
1r)用户R(接收者)选择对话图标和执行复制功能,从而将那个对话代理-Transferable放在接收者设备剪贴板上。
2r)用户R粘贴到“DropTarget”,即,目标应用程序中。
3r)目标应用程序向Transferable(对话代理)请求格式描述和选择合适格式。
4r)然后,向Transferable请求所选格式。
5r)如果Transferable是:
·原Transferable的副本,那么,它已经包含所需格式的数据,因此,可以直接将它提供给“DropTarget”,“DropTarget”将数据粘贴/整合到指定位置上的应用数据中。
·代理,那么,它包含原Transferable的地址。代理连接回到原Trans-ferable和以“DropTarget”选择的格式请求数据。原Transferable生成所请求格式的数据-就像在单设备情况中那样-并且将它们发送回给它的代理。代理-Transferable将数据提供给正在请求的“DropTarget”。
Claims (27)
1.一种执行应用程序的电子设备,包括:
基于所述应用程序的执行的应用数据(21);
根据本机生成的方法调用处理所述应用数据(21)的中央控制单元(291);
将消息发送到另一个电子设备的接口(28);
生成所述方法调用的描述和将所述描述传递给所述接口的同步实体(27)。
2.一种执行应用程序的电子设备,包括:
基于所述应用程序的执行的应用数据(21);
从另一个电子设备接收消息的接口(28);
从所述接口(28)接收远程生成和远程执行方法调用的描述,并从所述描述中导出可本机执行的方法调用的同步实体(27);和
根据所述导出的方法调用处理所述应用数据(21)的中央控制单元(291)。
3.一种执行应用程序的电子设备,包括:
基于所述应用程序的执行的应用数据(21);
与另一个电子设备交换消息的接口(28);
同步实体(27),从所述接口(28)接收远程生成方法调用的描述和从所述描述中导出可本机执行的方法调用,并生成本机生成方法调用的描述和将所述描述传递给所述接口(28);和
根据所述导出的方法调用和根据所述本机生成的方法调用处理所述应用数据(21)的中央控制单元(291)。
4.一种电子设备阵列,包括:
执行应用程序的第一电子设备(2a);和
执行应用程序的第二电子设备(2b),
所述第一电子设备(2a)包括:
基于所述应用程序的执行的应用数据(21a);
根据本机生成的方法调用处理所述应用数据的中央控制单元;
将消息发送到所述第二电子设备(2b)的接口;和
生成所述方法调用的描述和将所述描述传递给接口的同步实体(27a),
所述第二电子设备包括:
所述应用数据(21b)的副本;
从所述第一电子设备(2a)接收消息的接口;
从所述接口接收所述描述和从所述描述中导出可在所述第二电子设备(21b)上执行的方法调用的同步实体(27b);和
根据所述导出的方法调用处理所述应用数据(21b)的副本的中央控制单元。
5.根据前面权利要求之一所述的电子设备,
包括用于存储没有发送到所述其它电子设备的方法调用的描述的寄存器(2941)。
6.根据前面权利要求之一所述的电子设备,
其中,所述同步实体(27)是软件实现的。
7.根据前面权利要求之一所述的电子设备,
其中,所述方法调用是响应输入动作生成的。
8.根据前面权利要求之一所述的电子设备,
其中,所述应用数据(21)代表所述应用程序的状态。
9.根据前面权利要求之一所述的电子设备,
其中,所述方法调用是当被处理时,引起所述应用数据(21)发生改变的应用程序可读指令。
10.根据前面权利要求之一所述的电子设备,
包括存储所述描述的日志(2942);和
包括读取所述日志(2942)和核实所述应用数据(21)的回退实体(2932)。
11.根据前面权利要求之一所述的电子设备,
包括供共享用的对话剪贴板(44)。
12.一种处理电子设备中的应用数据的方法,包括:
本机生成处理应用数据(21)的方法调用;
生成所述方法调用的描述;
将所述描述发送到另一个电子设备;和
根据所述方法调用处理所述应用数据(21)。
13.一种处理电子设备中的应用数据的方法,包括:
接收远程生成和远程执行方法调用的描述;
从所述描述中导出可本机执行的方法调用;和
根据所述导出的方法调用处理所述应用数据(21)。
14.一种处理电子设备中的应用数据的方法,包括:
本机生成处理所述应用数据(21)的方法调用;
生成所述方法调用的描述;
将所述描述发送到另一个电子设备;
根据所述本机生成的方法调用处理所述应用数据(21);
从另一个电子设备接收远程生成方法调用的描述;
从所述接收描述中导出可本机执行的方法调用;和
根据所述导出的方法调用处理所述应用数据(21)。
15.一种处理一组应用数据的方法,包括:
在第一电子设备(2a)上操作应用数据(21a);
在第二电子设备(2b)上操作所述应用数据(21b)的副本;
在所述第一电子设备(2a)上:
生成处理所述应用数据(21a)的方法调用;
生成所述方法调用的描述;
根据所述方法调用处理所述应用数据(21a);和
将所述描述发送到所述第二电子设备(2b);
在所述第二电子设备(2b)上:
接收所述描述;
从所述描述中导出可在所述第二电子设备(2b)上执行的方法调用;和
根据所述导出的方法调用处理所述应用数据(21b)的副本。
16.一种准备处理电子设备中的应用数据的方法,包括:
从应用程序接口(API)接收方法调用;
生成所述方法调用的描述;
使所述描述通过所述电子设备的设备到设备接口;和
将用于应用数据处理目的的所述方法调用提供给应用程序接口(API)。
17.一种准备处理电子设备中的应用数据的方法,包括:
从所述电子设备的设备到设备接口(28)接收远程生成和远程执行的方法调用的描述;
从所述描述中导出可本机执行的方法调用;和
将用于应用数据处理目的的所述导出方法调用提供给应用程序接口(API)。
18.一种准备处理电子设备中的应用数据的方法,包括:
从应用程序接口(API)接收方法调用;
生成所述方法调用的描述;
使所述描述通过所述电子设备的设备到设备接口(28);
将用于应用数据处理目的的所述方法调用提供给应用程序接口(API);
从所述设备到设备接口(28)接收远程生成方法调用的描述;
从所述接收的描述中导出可本机执行的方法调用;和
将用于应用数据处理目的的所述导出方法调用提供给应用程序接口(API)。
19.根据权利要求16或18之一所述的方法,
其中,要传递给所述应用程序接口的所述方法调用是从所述方法调用的所述描述中导出的。
20.根据权利要求16或18之一所述的方法,
其中,要传递给所述应用程序接口的所述方法调用是所述接收的方法调用。
21.根据前面权利要求12到20之一所述的方法,
包括存储没有发送到所述其它电子设备的描述。
22.根据前面权利要求12到21之一所述的方法,
其中,所述方法调用是响应输入动作生成的。
2 3.根据前面权利要求12到22之一所述的方法,
其中,所述应用数据代表所述应用程序的状态。
24.根据前面权利要求12到2 3之一所述的方法,
包括用日志记录所述描述,并应用包括读取所述日志和核实所述应用数据的回退构件(2932)。
25.根据权利要求15所述的方法,
其中,在所述第二电子设备上操作所述应用数据的所述副本之前,将所述应用数据从所述第一电子设备复制到所述第二电子设备。
26.根据权利要求15所述的方法,
其中,所述第二设备上应用数据的所述副本是这样生成的:
在所述第一设备上确定为获取所述初始应用数据而执行的所有方法调用;
在所述第一设备上生成这些方法调用的描述列表;
将所述列表发送到所述第二设备;
将方法调用的所述描述翻译成可在所述第二设备上执行的方法调用;和
从空应用数据状态开始在所述第二设备上执行所述方法调用。
27.一种包括计算机程序代码工具的计算机程序单元,其中,当被装入电子设备的处理器单元中时,计算机程序代码工具将处理器单元配置成执行如权利要求12到26的任何一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02018849 | 2002-08-23 | ||
EP02018849.6 | 2002-08-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1708751A true CN1708751A (zh) | 2005-12-14 |
Family
ID=31896842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA038200422A Pending CN1708751A (zh) | 2002-08-23 | 2003-08-14 | 处理应用数据 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20060101422A1 (zh) |
CN (1) | CN1708751A (zh) |
AU (1) | AU2003250498A1 (zh) |
WO (1) | WO2004019204A2 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104823189A (zh) * | 2012-10-12 | 2015-08-05 | 思杰***有限公司 | 用于连接设备的编配框架 |
CN104903861A (zh) * | 2013-01-08 | 2015-09-09 | 良好科技公司 | 剪贴板管理 |
US9858428B2 (en) | 2012-10-16 | 2018-01-02 | Citrix Systems, Inc. | Controlling mobile device access to secure data |
US9948657B2 (en) | 2013-03-29 | 2018-04-17 | Citrix Systems, Inc. | Providing an enterprise application store |
US9973489B2 (en) | 2012-10-15 | 2018-05-15 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US9971585B2 (en) | 2012-10-16 | 2018-05-15 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
US9985850B2 (en) | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US10044757B2 (en) | 2011-10-11 | 2018-08-07 | Citrix Systems, Inc. | Secure execution of enterprise applications on mobile devices |
US10097584B2 (en) | 2013-03-29 | 2018-10-09 | Citrix Systems, Inc. | Providing a managed browser |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US10476885B2 (en) | 2013-03-29 | 2019-11-12 | Citrix Systems, Inc. | Application with multiple operation modes |
US10908896B2 (en) | 2012-10-16 | 2021-02-02 | Citrix Systems, Inc. | Application wrapping for application management framework |
WO2023241624A1 (zh) * | 2022-06-16 | 2023-12-21 | 华为技术有限公司 | 控制跨设备应用的方法以及电子设备 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0314593D0 (en) * | 2003-06-23 | 2003-07-30 | Symbian Ltd | A method of enabling an application to access files stored on a storage medium |
US7386114B1 (en) * | 2004-01-08 | 2008-06-10 | Shortel, Inc. | Distributed session-based data |
US7483870B1 (en) | 2004-01-28 | 2009-01-27 | Sun Microsystems, Inc. | Fractional data synchronization and consolidation in an enterprise information system |
US7822708B1 (en) | 2004-01-28 | 2010-10-26 | Oracle America, Inc. | Global attribute mapping data in an enterprise information system |
US7404176B2 (en) * | 2004-06-01 | 2008-07-22 | Sap Ag | Creating and using nested context structures |
US8595687B2 (en) * | 2004-06-23 | 2013-11-26 | Broadcom Corporation | Method and system for providing text information in an application framework for a wireless device |
JP4673588B2 (ja) * | 2004-08-11 | 2011-04-20 | 株式会社東芝 | 情報機器遠隔操作システムおよび情報機器 |
US7870493B2 (en) * | 2005-10-03 | 2011-01-11 | Microsoft Corporation | Distributed clipboard |
US8087031B2 (en) * | 2006-01-09 | 2011-12-27 | Oracle America, Inc. | Method and apparatus for data transfer between isolated execution contexts |
US7681140B2 (en) * | 2007-03-23 | 2010-03-16 | Sap Ag | Model-based customer engagement techniques |
US8645324B2 (en) | 2009-01-09 | 2014-02-04 | Pivotal Software, Inc. | Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication |
US9817637B2 (en) | 2010-07-01 | 2017-11-14 | Salesforce.Com, Inc. | Methods and systems for providing enhancements to a business networking feed |
US9208187B2 (en) | 2011-06-24 | 2015-12-08 | Salesforce.Com, Inc. | Using a database system for selective inclusion and exclusion of types of updates to provide a configuration feed of a social networking system |
US9443225B2 (en) * | 2011-07-18 | 2016-09-13 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for presentation of feed items in an information feed to be displayed on a display device |
US20130036167A1 (en) * | 2011-08-05 | 2013-02-07 | International Business Machines Corporation | Automatic synchronization of clipboards |
US8725808B2 (en) * | 2012-05-10 | 2014-05-13 | Intel Mobile Communications GmbH | Method for transferring data between a first device and a second device |
US9826024B2 (en) * | 2013-04-01 | 2017-11-21 | Autodesk, Inc. | Server side video screen capture |
US11159615B2 (en) * | 2016-07-12 | 2021-10-26 | International Business Machines Corporation | Replication optimization for object storage environments |
US10853125B2 (en) * | 2016-08-19 | 2020-12-01 | Oracle International Corporation | Resource efficient acceleration of datastream analytics processing using an analytics accelerator |
US10694370B2 (en) * | 2017-10-06 | 2020-06-23 | The Toronto-Dominion Bank | System and method for selectively enabling a data transfer method |
US11249715B2 (en) | 2020-06-23 | 2022-02-15 | Switchboard Visual Technologies, Inc. | Collaborative remote interactive platform |
US20240152411A1 (en) * | 2022-11-03 | 2024-05-09 | Switchboard Visual Technologies, Inc. | Secure, collaborative, digital clipboard |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69426927T2 (de) * | 1993-04-13 | 2001-11-08 | Intel Corp., Santa Clara | System für rechnerunterstützte zusammenarbeit |
US5689706A (en) * | 1993-06-18 | 1997-11-18 | Lucent Technologies Inc. | Distributed systems with replicated files |
GB2293471A (en) * | 1994-09-02 | 1996-03-27 | Fujitsu Ltd | Conferencing system |
US5724508A (en) * | 1995-03-09 | 1998-03-03 | Insoft, Inc. | Apparatus for collaborative computing |
US5668958A (en) * | 1995-09-12 | 1997-09-16 | International Business Machines Corporation | Heterogeneous filing system with common API and reconciled file management rules |
US6453356B1 (en) * | 1998-04-15 | 2002-09-17 | Adc Telecommunications, Inc. | Data exchange system and method |
FI19992836A (fi) * | 1999-12-30 | 2001-08-09 | Nokia Mobile Phones Ltd | Laitteisto ja menetelmä tietojenkäsittelylaitteiden käyttämiseksi |
US6671757B1 (en) * | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
US7243356B1 (en) * | 2000-05-09 | 2007-07-10 | Sun Microsystems, Inc. | Remote method invocation with secure messaging in a distributed computing environment |
JP2002208981A (ja) * | 2001-01-12 | 2002-07-26 | Hitachi Ltd | 通信方法 |
US7836015B1 (en) * | 2002-05-02 | 2010-11-16 | Access Systems Americas, Inc. | Fast synchronization of computer databases using coverage status |
-
2003
- 2003-08-14 WO PCT/IB2003/003628 patent/WO2004019204A2/en not_active Application Discontinuation
- 2003-08-14 AU AU2003250498A patent/AU2003250498A1/en not_active Abandoned
- 2003-08-14 US US10/525,604 patent/US20060101422A1/en not_active Abandoned
- 2003-08-14 CN CNA038200422A patent/CN1708751A/zh active Pending
-
2008
- 2008-05-20 US US12/123,620 patent/US7996856B2/en not_active Expired - Fee Related
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10044757B2 (en) | 2011-10-11 | 2018-08-07 | Citrix Systems, Inc. | Secure execution of enterprise applications on mobile devices |
US11134104B2 (en) | 2011-10-11 | 2021-09-28 | Citrix Systems, Inc. | Secure execution of enterprise applications on mobile devices |
US10402546B1 (en) | 2011-10-11 | 2019-09-03 | Citrix Systems, Inc. | Secure execution of enterprise applications on mobile devices |
US10469534B2 (en) | 2011-10-11 | 2019-11-05 | Citrix Systems, Inc. | Secure execution of enterprise applications on mobile devices |
US10063595B1 (en) | 2011-10-11 | 2018-08-28 | Citrix Systems, Inc. | Secure execution of enterprise applications on mobile devices |
US9774658B2 (en) | 2012-10-12 | 2017-09-26 | Citrix Systems, Inc. | Orchestration framework for connected devices |
CN104823189A (zh) * | 2012-10-12 | 2015-08-05 | 思杰***有限公司 | 用于连接设备的编配框架 |
CN104823189B (zh) * | 2012-10-12 | 2018-07-31 | 思杰***有限公司 | 用于连接设备的编配框架 |
US9973489B2 (en) | 2012-10-15 | 2018-05-15 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US9858428B2 (en) | 2012-10-16 | 2018-01-02 | Citrix Systems, Inc. | Controlling mobile device access to secure data |
US10545748B2 (en) | 2012-10-16 | 2020-01-28 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
US9971585B2 (en) | 2012-10-16 | 2018-05-15 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
US10908896B2 (en) | 2012-10-16 | 2021-02-02 | Citrix Systems, Inc. | Application wrapping for application management framework |
US10255446B2 (en) | 2013-01-08 | 2019-04-09 | Blackberry Limited | Clipboard management |
CN104903861B (zh) * | 2013-01-08 | 2020-03-10 | 黑莓有限公司 | 剪贴板管理 |
CN104903861A (zh) * | 2013-01-08 | 2015-09-09 | 良好科技公司 | 剪贴板管理 |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US10097584B2 (en) | 2013-03-29 | 2018-10-09 | Citrix Systems, Inc. | Providing a managed browser |
US10476885B2 (en) | 2013-03-29 | 2019-11-12 | Citrix Systems, Inc. | Application with multiple operation modes |
US9985850B2 (en) | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US10701082B2 (en) | 2013-03-29 | 2020-06-30 | Citrix Systems, Inc. | Application with multiple operation modes |
US9948657B2 (en) | 2013-03-29 | 2018-04-17 | Citrix Systems, Inc. | Providing an enterprise application store |
US10965734B2 (en) | 2013-03-29 | 2021-03-30 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
WO2023241624A1 (zh) * | 2022-06-16 | 2023-12-21 | 华为技术有限公司 | 控制跨设备应用的方法以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
AU2003250498A1 (en) | 2004-03-11 |
US20080222615A1 (en) | 2008-09-11 |
WO2004019204A2 (en) | 2004-03-04 |
US7996856B2 (en) | 2011-08-09 |
WO2004019204A8 (en) | 2005-06-16 |
WO2004019204A3 (en) | 2005-03-31 |
AU2003250498A8 (en) | 2004-03-11 |
US20060101422A1 (en) | 2006-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1708751A (zh) | 处理应用数据 | |
US11405758B2 (en) | Application managing application | |
CN102067560B (zh) | 用于在替换传输上提供服务发现的装置和方法 | |
Paternò et al. | A logical framework for multi-device user interfaces | |
TW200422850A (en) | Method to initiate server based collaboration on e-mail attachments | |
CN1286304C (zh) | 一种实现即时通信***客户间情景聊天的方法 | |
CN1922572A (zh) | 为组件应用程序建立混合模式执行环境的***和方法 | |
CN1305145A (zh) | 信息控制***和信息处理方法 | |
TW200534686A (en) | Command based group SMS with mobile message receiver and server | |
CN1792069A (zh) | 用于提供包括多种电子设备的虚拟工作区的技术 | |
CN111352653B (zh) | 基于PaaS云平台服务器的***开发方法及服务器 | |
CN1968123A (zh) | 动态多方、多个媒体通信自动协调的方法与装置 | |
CN1947404A (zh) | 聚合网络服务的装置和方法 | |
CN103177043A (zh) | 一种跨***平台传输文件的方法及电子*** | |
CN1765101A (zh) | 用于为移动终端提供多媒体和交互业务的客户机-服务器***及其方法 | |
CN102137038A (zh) | 一种基于社区平台的群组信息交互方法及*** | |
CN100346599C (zh) | 一种基于移动代理的网络分布式交互方法 | |
CN1217311C (zh) | 分布式语音合成*** | |
CN102158429A (zh) | 一种基于社区平台的群组通讯方法及*** | |
CN110020443A (zh) | 翻译数据的处理方法、装置、设备及计算机可读存储介质 | |
CN101651701A (zh) | 一种实现服务器管理终端设备的方法、***及设备 | |
KR101032312B1 (ko) | 모바일 기기 기반의 모임 관리 시스템 및 이에 사용되는 모바일 기기 | |
CN101521592B (zh) | 一种建立打印机snmp代理的方法及装置 | |
JP7254692B2 (ja) | 連携チャットシステム | |
WO2012136035A1 (zh) | 一种信息传输的方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |