CN101495985A - 具有数据共享特征的即时消息通信 - Google Patents

具有数据共享特征的即时消息通信 Download PDF

Info

Publication number
CN101495985A
CN101495985A CNA2006800212189A CN200680021218A CN101495985A CN 101495985 A CN101495985 A CN 101495985A CN A2006800212189 A CNA2006800212189 A CN A2006800212189A CN 200680021218 A CN200680021218 A CN 200680021218A CN 101495985 A CN101495985 A CN 101495985A
Authority
CN
China
Prior art keywords
client computer
data
instant messaging
file
computer
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
Application number
CNA2006800212189A
Other languages
English (en)
Inventor
D·特多西
P·S·福德
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101495985A publication Critical patent/CN101495985A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

描述了一种具有数据共享特征的即时消息通信。可使用一个或多个所述的技术来结合即时消息通信会话共享数据,即使要共享数据的一个或多个客户机当前不可用。

Description

具有数据共享特征的即时消息通信
背景
随着用户能够利用不断扩展的类型的设备诸如个人计算机、无线电话、媒体设备等进行即时消息通信,所以即时消息通信日益流行。即时消息通信可以被用于,例如使两个或多个用户在即时消息通信会话过程中通过网络交换消息。当两个用户同时在线时,在两个用户之间可以实时交换即时消息。因此,即时消息可以被用于以模拟两个用户如何参与典型的口语交谈的方式来支持文本交谈。
然而,典型的即时消息通信会话不能提供可以在即时消息通信会话之外保存的数据共享技术。例如,在典型即时消息通信会话中共享数据通常要求用户中的每一个都同时在线。因此,如果通过即时消息通信会话一用户不可用,则就不能向那个用户提供在线的其他用户所共享的数据。此外,在即时消息通信会话之间不保存共享状态。这会导致用户之间的数据不一致,这可能是难以手动管理的,诸如确定哪个数据版本是当前的、特定版本是否包括来自客户机中的每一个的改变等。这些不一致会导致用户受挫并且因此导致减弱的即时消息通信体验。
概述
描述了具有数据共享特征的即时消息通信。一个或多个技术可以被用来使数据在与一个或多个即时消息通信会话有关的用户之间共享,即时用户并未同时在线。另外,这些技术可以被用来同步特定用户之间的数据,从而用户中的每一个都具有该数据的“最新的”副本。此外,这些技术可以被用于基于不同的考虑来调度数据的同步化。
提供此概述以用简化的形式介绍下面将在详细说明中进一步描述的概念的选择。此概述并不旨在标识所请求保护的主题的关键特征或基本特征,也不旨在被用来帮助确定所请求保护的主题的范围。
附图的简要说明
图1是可以用于实现具有数据共享特征的即时消息通信的示例性实施方式中的环境的示意图。
图2是更详细地示出图1中的消息通信服务、多个客户机和存储的示例性实施方式中的系统的示意图。
图3是将图1中的多个客户机示为结合即时消息通信使用所共享的空间来在客户机之间共享客户机数据的示例性实施方式的示意图。
图4是被配置为提供即时消息通信以及图3中的共享空间以与至少一个其他客户机共享数据的示例性实施方式中的用户界面的示意图。
图5是被配置为提供即时消息通信以及图3中共享空间以与至少一个其他客户机共享数据的示例性实施方式中的另一个用户界面的示意图。
图6是描述其中即使当要共享结合即时消息通信会话共享的数据的客户机中的一个不可用时,也同步该数据的示例性实施方式中的过程的流程图。
图7是描述了其中客户机关于即时消息通信可用性的存在性被用来在客户机之间共享数据的过程的流程图。
图8是描述了其中调度结合即时消息通信共享的数据的同步化的示例性实施方式中的过程的流程图。
图9是其中在存在性文档中发布版本矢量以指定要结合即时消息通信来共享的数据的示例性方式中的示意图。
图10是其中同步化协商消息被用于触发客户机之间所共享的数据的复制的示例性实施方式中的示意图。
相同的参考标号在讨论的示例中被用于引用相同的结构和组件。
详细说明
概况
描述了具有数据共享特征的即时消息通信。即时消息通信过程中传统的数据共享(例如,文件传送)只有当共享该数据的用户中的每一个同时可用,例如都登录到消息通信服务时才会发生,并且一次只能被用于传送一个文件,并且不能在即时消息通信会话之间保存共享状态。因此,用户之间的交互受到了用户中的每一个当前是否可以使用的限制,且不允许跨会话建立状态,例如小孩的相册。因此,描述了这样的技术,在这些技术中,即时消息通信可以包括数据共享,使得客户机可以共享数据,而不考虑客户机中的每一个当前是否可用。
例如,两个用户可以在即时消息通信会话过程中通过使用即时消息来进行通信。在会话过程中,第一用户可以通过被用于执行即时消息通信会话的即时消息通信用户界面来指定特定的数据项将被共享。例如,即时消息通信会话可以提供“共享空间”,可以在即时消息通信会话过程中为在第一用户的联系人列表中所指定任何一个或一组用户建立该“共享空间”。此共享空间可以允许第一用户共享文件并且对文件进行共享空间中所有其他用户可见的更新,即使这些其他用户当前并未在线。例如,第一用户可以将表示共享空间的文件夹指定为可由第一用户的联系人列表上的任何其他用户、第一用户的联系人列表上的特定用户、第一用户的联系人列表上的上的一组用户等访问。然后,第一用户可将数据拖到那个共享空间(例如,该文件夹)中,并且一旦在线,那个文件夹的内容就与由其他用户维护的类似文件夹进行同步。因此,通过即时消息通信会话,向其他用户中的每一个提供了并不依赖于其他用户是否同时可用的数据的同步化的版本。此外,其他用户也可以对数据进行被同步返回给第一用户的改变。共享空间(例如,文件夹)可以跨多个即时消息通信会话进行保存。
在下面的讨论中,首先描述了可以用于利用各技术提供具有数据共享特征的即时消息通信的示例性环境和用户界面。然后描述可以由示例性环境提供以及在其他环境中提供的示例性过程。
示例性环境
图1是可以用以实现具有数据共享特征的即时消息通信的示例性实现方式中的环境100的示意图。环境100包括消息通信服务102,它可以通过网络106由多个客户机104(1)-104(N)访问。客户机104(1)-104(N)可以以各种方式配置以访问网络106。例如,一个或多个客户机104(1)-104(N)可以被配置为计算设备,诸如台式机、移动站、娱乐设备、可通信地耦合到显示设备的机顶盒、无线电话、游戏控制台等。因此,客户机104(1)-104(N)可以是从具有实质的存储器和处理器资源的完全资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如,传统的机顶盒、便携式游戏控制台)。客户机104(1)-104(N)还可以涉及操作该客户机的人和/或实体。换言之,一个或多个104(1)-104(N)可以描述包括用户、软件和/或设备的逻辑客户机。
此外,尽管网络106被示为因特网,但是该网络也可以假定各种配置。例如,网络106可以包括广域网(WAN)、局域网(LAN)、无线网络、公共电话网、内联网等。此外,尽管示出了单个网络106,但是网络106也可以被配置为包括多个网络。例如,客户机104(1)可以通过对等网络与客户机104(N)通信耦合。客户机104(1)-104(N)中的每一个也可以通过因特网通信耦合到消息通信服务102。也构想了多种其它例子。
多个客户机104(1)-104(N)中的每一个都被示为包括多个消息通信模块108(1)-108(N)中的相应的一个。每个消息通信模块108(1)-108(N)是执行的,使得相应的客户机104(1)-104(N)可以将其存在性信息传输给消息通信服务102,并且可以参与与客户机104(1)-104(N)中的另一个的即时消息通信会话。即时消息通信提供了一种机制,使得当参与即时消息通信会话时,客户机104(1)-104(N)中的每一个都可相互发送文本消息。尽管也可以使用延迟传递,诸如通过当客户机104(1)-104(N)中的一个不可用例如离线时将文本消息记入日志,但即时消息通常实时传输。因此,即时消息通信可以被认为是电子邮件与因特网聊天的组合,因为即时消息通信支持消息交换并且被为双向实况聊天设计。因此,即时消息通信可以被用于同步通信。例如,像语音电话呼叫,即时消息通信会话可以实时执行,使得每个客户机104(1)-104(N)都可以在即时消息接收到时答复彼此的客户机。
在一个实施方式中,消息通信模块108(1)-108(N)通过使用消息通信服务102彼此通信。消息通信服务102,例如,可以包括消息通信管理器模块110,它可以执行来在消息通信模块108(1)-108(N)之间路由即时消息。例如,客户机104(1)可能使消息通信模块108(1)形成即时消息以便传输给客户机104(N)。消息通信模块108(1)被执行来将即时消息传输给消息通信服务102,消息服务102然后执行消息通信管理器模块110以便通过网络106将即时消息路由给客户机104(N)。客户机104(N)接收即时消息,并且执行消息通信模块108(N)以便显示该即时消息。
在另一个实施方式中,当客户机104(1)-104(N)被彼此直接通信耦合(例如,通过对等网络)时,在不使用消息通信服务102的情况下也可以传输即时消息。对客户机104(1)-104(N)使用对等网络的进一步讨论可以在涉及图2的描述中找到。
客户机104(1)-104(N)中的每一个还被示为具有相应的共享模块112(1)-112(N)。共享模块112(1)-112(N)可以执行来在客户机104(1)-104(N)之间共享关于即时消息通信的数据。例如,共享模块112(1)可以被执行以接收通过即时消息通信用户界面指定用于与客户机104(1)共享的数据,并且使得所指定的数据被存储,使得即使客户机104(N)不可用(例如,当前登录到消息通信服务102),客户机104(N)也可在稍后接收所指定的数据。
所指定的数据金额被存储在多个位置中并且以多种方式存储,在图1中被示为客户机数据114(d)(其中“d”可以是从1到“D”的任意整数)被存储在可以通过网络106访问的存储116中的,即客户机数据114(d)可以通过“云区(cloud)”使用。例如,存储116可以由多个客户机104(1)-104(N)通过对等网络提供,使得客户机104(1)-104(N)中的子集可以包括该数据。因此,当该多个中以前不可用的客户机变为可用时,那个客户机可以从客户机104(1)-104(N)的子集接收该数据。在另一个例子中,存储116被包括作为消息通信服务102的一部分。例如,消息通信服务102可以包括共享管理器模块118,它可以执行以管理多个客户机数据104(d)的存储,例如同步化客户机数据114(d)、调度客户机数据的同步等,对其讨论可在涉及图2的描述中找到。
存储116还可以以多种方式访问。例如,存储116,更具体地,通过存储器116可用的客户机数据114(d),可以通过基于web的接口使用。通过这种接口所作的改变被传播给对应的客户机,并且可以进行冲突检测和分解(resolution)规则。也可以考虑存储器116的多种其它例子,而不背离其精神和范围,诸如消息通信服务102和/或多个客户机客户机104(1)-104(N)可访问的单机专用存储系统。
通过经“云区”提供客户机数据114(d),甚至当客户机104(1)-104(N)中的每一个都不可用时,也可用共享或访问该数据。存储116提供共享空间,该共享空间允许客户机104(1)-104(N)共享客户机数据114(d),并且对该数据进行共享空间中的每一其它客户机可见的更新,即使这些其它客户机当前并未在线。例如,客户机104(1)可以指定一文件夹为表示可以由客户机104(N)访问的共享空间。客户机104(1)的用户可以将数据拖到共享空间(例如,该文件夹)中,并且一旦客户机104(1)在线,即诸如通过当客户机104(N)离线时“云区”中的存储116使那个文件夹的内容与由客户机104(N)维护的类似文件夹同步化。因此,通过即时消息通信会话,向客户机104(N)提供有不依赖于其它客户机(例如,客户机104(1))同时可用的的数据同步化版本。此外,当客户机104(1)离线时,客户机104(N)还可以对客户机数据114(d)进行将通过“云区”中的存储116被同步化返回到客户机104(1)的改变。可在涉及图6-10的描述中找到对客户机数据114(d)共享的进一步讨论。
尽管示例性环境100示出了被配置为使用具有数据共享特征的即时消息通信的示例性实施方式,但是可以以多种方式重新安排该示例性环境。例如,共享管理器模块118和存储器116可以被设置在单机系统中。共享管理器模块118和存储116也可以由多个客户机104(1)-104(N)提供,诸如在其中不使用消息通信服务102的情况下执行即时消息通信的实施方式中。例如,共享模块112(1)-112(N)可以包括共享管理器模块118的功能来管理多个客户机数据114(d)。此外,尽管一起示出,但是共享模块112(1)-112(N)和消息通信模块118(1)-118(N)也可以被分开提供,并且通过各自的应用程序编程接口来通信。
通常,此处所述的任何功能都可以利用软件、固件(例如,固定逻辑电路)、手动处理或者这些实现方式的组合来实现。如此处所使用的术语“模块”、“功能”以及“逻辑”通常表示软件、固件或软件和固件的组合。在软件实现的情况下,当在处理器(例如,一个或多个CPU)上执行时,该模块、功能或逻辑表示执行指定任务的程序代码。该程序代码可以被存储在一个或多个计算机可读存储器设备中,可在涉及图2的描述中找到进一步的说明。下面描述的即时消息通信技术的特征是独立于平台的,意思是即时消息通信技术可以在具有各种处理器的各种商业计算平台上实现。
图2是更详细地示出了图1中的消息通信服务102、多个客户机104(1)-104(N)和存储116的示例性实现方式的系统200的示意图。消息通信服务102被示为由多个服务器202(s)来实现,其中“s”可以是从1到“S”的任意整数。图2中的多个客户机104(1)-104(N)被示为客户机设备。例如,多个服务器202(s)和客户机104(1)-104(N)都被示为包括各自的处理器204(S)、206(1)-206(N)以及各自的存储器208(s)、210(1)-210(N)。
处理器并不受形成它们的材料或者其中采用的处理机制的限制。例如,处理器可以由半导体和/或晶体管组成(例如,电子集成电路(IC))。在这种上下文中,处理器可执行指令可以是电子可执行指令。或者,处理器的或者是用于处理器的机制,并且以及计算设备的机制或者用于计算设备的机制,可以包括但并不限于量子计算、光学计算、机械计算(例如,利用纳米技术)等。此外,尽管为各个服务器202(s)以及客户机104(1)-104(N)示出了单个存储器208(s)、210(1)-210(N),但是可以使用各种类型的存储器以及其组合,诸如随机存取存储器(RAM)、硬盘存储器、可移动介质存储器等。
多个客户机104(1)-104(N)中的每一个包括被示为在各个处理器206(1)-206(N)上执行并且被存储在各个存储器210(1)-210(N)中的多个消息通信模块108(1)-108(N)中相应的一个。如前所述,消息通信模块108(1)-108(N)可以执行,以按照通过网络106使用消息通信服务102的间接通信和/或通过对等网络212的直接通信来提供即时消息通信会话,这在图2中采用双箭头示出以便指示对等网络212可以与网络106分开提供或者作为网络106的覆盖。
消息通信模块108(1)-108(N)可以按照多种方式配置以提供即时消息通信。例如,消息通信模块108(1)-108(N)可以被配置为可以执行来诸如通过如前述的对等网络覆盖、通过消息通信服务102等自己提供即时消息通信的专用模块。在另一个例子中,消息通信模块108(1)-108(N)被配置为可以执行以访问被配置为提供即时消息通信的网站的消息通信服务102的通信模块(例如,在web浏览器内执行的ActiveX或类似控件)。换言之,在web浏览器内执行的控件被配置为通过与网站的交互来提供消息通信模块108(1)-108(N)的功能。在这样的例子中,存储116被配置以便通过web接口进行访问,使得web浏览器可以通过如前所述的客户机数据114(d)的存储在客户机之间共享数据。
可以以多种方式将多个消息通信模块108(1)-108(N)提供给多个客户机104(1)-104(N)。在一个实施方式中,响应于启动即时消息通信会话的请求,由消息通信服务102(更具体地通过执行消息通信管理器模块110)提供消息通信模块108(1)-108(N)。例如,客户机104(1)可以请求启动与客户机104(N)的即时消息通信会话。如果客户机104(N)接受启动即时消息通信会话,则在处理器204(s)上执行消息通信管理器模块110,以通过网络106传输消息通信模块用于在各自的客户机104(1)-104(N)上执行,以便提供即时消息通信会话。在不同的实施方式中,客户机104(1)-104(N)的用户下载并且安装消息通信模块108(1)-108(N)。
消息通信模块108(1)-108(N)中的每一个被示为具有多个复制模块214(1)-214(N)中相应的一个以及多个调度模块216(1)-216(N)中相应的一个。复制模块214(1)-214(N)表示负责同步化由多个客户机104(1)-104(N)共享的数据诸如文件和目录的功能。例如,客户机104(1)-104(N)中的每一个都可以包括一个相应的联系人列表218(1)-218(N),它被用于指定如何通过定义一个或多个共享空间来共享由客户机104(1)-104(N)维护的数据220(1)-220(N)。例如,客户机104(1)的联系人218(1)之一可以引用客户机104(N)(例如,别名、昵称、网络地址等),同样,客户机104(N)的联系人218(N)之一可以引用客户机104(1);利用以上的联系人,客户机104(1)和104(N)可以建立共享空间。当复制模块214(1)-214(N)被执行时,它们可以实现对等客户机数据220(1)-220(N)复制,使得由联系人218(1)-218(N)所引用的客户机104(1)-104(N)中的每一个都具有客户机数据220(1)的同步化版本。
通过例如与共享管理器模块118交互,复制模块214(1)-214(N)可以使客户机数据220(1)-220(N)与客户机数据114(d)同步化,使得客户机104(1)-104(N)可以对其客户机数据220(1)-220(N)作出改变,并且使该改变变得与客户机数据114(d)同步,并且使该改变对共享该数据的每一其它客户机可见,而无需客户机的明确动作。换言之,同步化可以由模块自动地并且在没有用户干预的情况下执行。此外,通过使用客户机数据114(d)的存储116,即使客户机104(1)-104(N)中的每一个当前都不可用,例如,登录到消息通信服务102、登录到由多个客户机104(1)-104(N)执行的对等即时消息通信会话而无需使用消息通信服务102等,该改变也可以进行并且被传播。在一个实施方式中,尽管也构想了复制整个数据项(例如,文件和目录),但可复制改变的数据而不是整个数据项(例如,文件的修改子集)以保存硬件、软件以及网络资源。例如,客户机数据114(d)可以描述文件的修改子集,该子集利用“存储和转发”技术来传输到共享客户机数据114(d)的每一个客户机。这允许回收存储116中的空间。例如,在部分复制的情况下,存储116可以保存关于目录结构和文件元数据的信息,而不是所共享的每个文件的数据;在这种情况下,在存储116中只保存尚未被复制到多个客户机104(1)-104(N)的文件的数据。一旦文件被复制到多个客户机104(1)-104(N),就可以自动回收存储116中的空间。
复制模块214(1)-214(N)和/或共享管理器模块118也可以管理客户机数据220(1)-220(N)以及114(d)的同步,以便检测和标记冲突的改变。然后,该模块可以通知冲突的客户机104(1)-104(N)以便修正,诸如确定哪些改变应被保存、检测等。可以由复制模块214(1)-214(N)提供多种其它功能,对其进一步的描述可在涉及关图6-7以及9-10的描述中找到。
调度模块216(1)-216(N)表示被配置为调度由相应的复制模块214(1)-214(N)所执行的同步化的功能。例如,调度模块216(1)-216(N)可以控制复制活动,以便管理被用于执行同步化的资源,诸如处理资源(例如,CPU周期)、存储器资源(例如,所使用的存储器的量、存储器访问的频率等)、网络资源(例如,所使用的带宽)等。此外,调度模块216(1)-216(N)可以基于各种其它考虑来调度同步化,对其进一步描述可在涉及图8的描述中找到。
可以以多种方式配置为在多个客户机104(1)-104(N)之间共享客户机数据220(1)-220(N)以及114(d)而提供的共享空间。例如,客户机104(1)-104(N)中的每一个都具有“客户机”文件夹222、一个或多个“与特定客户机共享”文件夹224、“组”共享文件夹226以及表示用于共享数据项的存储的其它228。这些文件夹的一个或多个副本也可以被维护为存储116中的客户机数据114(d)。例如,客户机文件夹222可以对应于客户机104(1)-104(N)中的特定的一个,并且包含被复制到具有该客户机文件夹的副本的每一其它客户机的数据。在一个实施方式中,其它客户机将接收该客户机放入那个文件夹中的任何客户机数据(例如,文件、文件夹等),但是将不能改变或修改那个数据。在一种不同的实施方式中,所有客户机都能改变或修改该数据。
可以为各个客户机104(1)-104(N)的相应联系人列表218(1)-218(N)中所包含的每一联系人提供“与特定客户机共享”文件夹224。这个文件夹可以被用于与其他联系人协作,诸如通过允许由能够访问该文件夹的每个用户对这个文件夹中的数据项作出改变,例如与其它客户机上的另一个本地存储版本或者与存储116中客户机数据114(d)同步的该文件夹的本地存储版本。也可以提供“组共享”文件夹226用于协作。
“与特定客户机共享”文件夹224以及“组共享”文件夹226两者都可以利用已保存的组的概念。例如,可通过使用指定特定组中的成员资格的多个持久对象216(a)(其中“a”可以是从1到“A”的任意整数),来提供组的持久性(例如,在“与特定客户机共享”文件夹224的例子中为两个一组,在“组共享”文件夹226中为两个或多个一组)。例如,每个持久对象216(a)可以包含对被允许参与到组中的客户机的集合的引用。因此,该组中的每个参与者都可以具有包含由该组的成员所共享的数据的对应文件夹(例如,“与特定客户机共享”文件夹224以及“组共享”文件夹226),诸如以便允许组协作。此外,“组共享”文件夹226的一个或多个副本还可以被维护为存储116中的客户机数据114(d)。尽管可以以多种不同的方式提供存储218,但持久对象216(a)被示为存储在被包含在存储器208(s)中的存储218以及本地副本218(1)-218(N)中。
多个持久对象216(a)中的每一个都是持久的,使得它将在创建该持久对象的模块的执行的终止以外继续存在和/或在期间创建了该持久对象的会话之后继续存在。例如,消息通信模块108(1)可以在客户机104(1)上执行,并且存储持久对象216(a)。因此,即使终止了消息通信模块108(1)的执行,也可以在下次客户机104(1)-104(N)“登录”时调用该持久对象216(a)。因此,持久对象216(a)可以在用于创建该持久对象216(a)的即时消息通信会话之后、在用于创建该持久对象的模块(例如,消息通信模块108(1))的执行之后等保存。
持久对象216(a)也可以用于提供多种其它功能。例如,通过提供持久对象216(a)中对客户机引用的持久性,持久对象216(a)可以被重用以邀请客户机104(1)-104(N)参与到在线活动(例如即时消息通信、共享、在线游戏等)中,而无需执行多个手动步骤,诸如选择客户机104(1)-104(N)中的哪些来参与到在线活动中、发送希望参与到在线活动中的通知等。另外,持久对象216(a)可被配置为可在所引用的客户机104(1)-104(N)中任意一个的联系人218(1)-218(N)中调用或复制。例如,客户机104(N)可利用由客户机104(1)创建的持久对象216(a)。此外,由持久对象216(a)所引用的每个客户机都可以被允许改变持久对象216(a)以包括对另一个客户机的应用,从而增加该持久对象所描述的组的成员。应当注意,该持久对象216(a)可以被用于指定共享的关系而不要求此处所指定的客户机中的每一个都同时在线。
图3是将图1中的多个客户机示出为结合即时消息通信使用共享空间在客户机之间共享客户机数据的示例性实施方式300的示意图。客户机104(1)、104(n)和104(N)被示为分别具有名字“Adam”、“Bob”和“Charlene”,并且从而在下面的讨论中,可以被称为“客户机104(1)”或“Adam 104(1)”、“客户机104(n)”或“Bob 104(n)”,以此类推。
Adam 104(1)被示为包括“我的共享”文件夹302、“Bob”文件夹304、“Charlene”文件夹306、“组”文件夹308以及“Adam/Bob”文件夹310。Bob 104(n)被示为包括“我的共享”文件夹312、“Adam”文件夹314、“Charlene”文件夹316、“组”文件夹318以及“Adam/Bob”文件夹320。同样,Charlene 104(N)包括“我的共享”文件夹322、“Adam”文件夹324、“Bob”文件夹326以及“组”文件夹328。
“我的共享”文件夹302、312、322用于与其它客户机上的对应文件夹304、306、314、316、324、326共享被放入这些文件夹中的数据。例如,Adam 104(1)的“我的共享”文件夹302分别对应于Bob 104(n)和Charlene 104(N)的“Adam”文件夹314、324。因此,放入文件夹302中的数据被自动地复制到文件夹314、324,如由从文件夹302到文件夹314、324的虚线所示。以这种方式,Bob 104(n)和Charlene 104(N)可以容易地确定该数据来源于Adam 104(1)。类似的功能也可以分别由Bob 104(n)和Charlene 104(N)的“我的共享”文件夹312、322使用,如由对应的虚线所示出的。
因为它们属于同一组,所以Adam 104(1)、Bob 104(n)和Charlene 104(N)也可以通过组文件夹308、318、328来共享数据。如之前所描述的,可以基于指定组成员的持久对象216(a)来形成组。在这些文件夹308、318、328中修改的数据可以在客户机104(1)、104(n)和104(N)之间自动同步化。
还可以提供文件夹用于两个用户之间的协作。例如,“Adam/Bob”文件夹310、320可以表示Adam 104(1)和Bob 104(n)(例如,两个一组)之间所共享的数据用于协作,使得其中任何一个客户机都可以对被包含在这些文件夹中的数据进行添加、修改、删除以及其它改变。
尽管已经描述了由多个文件夹提供的共享空间,但是也可以以利用多种表示以多种其它方式来提供共享空间而不背离其精神和范围,诸如结合存储器116、在消息通信服务102中实现。此外,还可以以多种方式配置由文件夹320-328表示的共享空间,下面的示意图示出了它的一个例子。
图4是被配置为提供即时消息通信以及图3的共享空间用于与至少一个其它客户机共享数据的的示例性实施方式400中的用户界面的示意图。通过执行客户机104(1)上的消息通信模块108(1)来显示用户界面402。用户界面402包括即时消息通信部分404,即时消息通信部分404被配置为显示在与另一个客户机(在这个例子中,为图3中的Bob 104(n))的即时消息通信会话期间所传输的即时消息。为了发送消息,可经由包括“发送”按钮408的表示的文本输入部分406来输入文本,当选中该“发送”按钮408时,使输入的文本被传输到参与该即时消息通信会话的每个客户机。
用户界面402还包括共享部分410。用户界面402的共享部分410包括之前关于图3描述的文件夹的表示,包括“我的共享”文件夹302、“Bob”文件夹304、“Charlene”文件夹306、“组”文件夹308以及“Adam/Bob”文件夹310。因此,用户界面402可以被配置为提供即时消息通信和数据共享。
如前所述,即使当其它客户机中的一个或多个当前不在线时,诸如Charlene104(N),也可以共享数据。例如,被拖到组文件夹308的数据可以立即与当前可用的每个客户机(例如,Bob 104(n))共享,并且被存储以供此后当文件夹所指定的其它客户机例如Charlene 104(N)可用时,向其传输。可以在涉及图6-10的描述中找到对文件夹的同步化的进一步讨论。
图5是被配置用于提供即时消息通信和图3的共享空间以与至少一个其它客户机共享数据的示例性实施方式500中的另一种用户界面的示意图。如图4,通过执行客户机104(n)上的消息通信模块108(n),来显示用户界面502。图5的用户界面502包括共享部分504,它包括表示多个客户机、相应客户机的名字(例如,“Adam”、“Bob”和“Charlene”)、相应客户机是否支持数据共享的指示、以及如果支持数据共享则对从那些客户机是否有新的或更新的数据可用的指示(例如,“闪光(gleam)”)。
例如,Adam的表示包括被示为指示Adam支持数据共享的文件夹的指示。此外,“Adam”文件夹上的视觉表示被用于向Bob 104(n)通知已经对包含在那个文件夹中的数据作出了改变,在这个例子中,通过文件夹上的星(或“闪光”)的覆盖来示出这一点。因此,Bob 104(n)可以选择该文件夹,使该文件夹的内容被显示在用户界面502的另一共享部分506中。
其它共享部分506被示为包括在Adam 104(1)和Bob 104(n)之间共享的子文件夹,在这个例子中,该子文件夹包括休假照片508、工作项目510、文档512以及小孩的家庭录像514。因此,通知Bob 104(n)已经对共享数据进行了修改,并且可以在处于即时消息通信用户界面中时通过导航经过这些表示来调查这些改变。应当注意,对Charlene 104(N)支持数据共享的指示(例如,文件夹)并不包括数据已经被修改的指示。因此,保持向Bob 104(n)告知关于由Charlene 104(N)与Bob 104(n)共享的数据的状态。还应当注意,“Dave”不包括共享指示,从而不支持数据共享。尽管已经讨论了支持数据共享的示例性即时消息通信用户界面,但是应当理解,也可利用各种其它用户界面来支持数据共享,而不背离其精神和范围。
示例性过程
下面的讨论描述了具有可以利用之前描述的系统和设备实现的数据共享特征的即时消息通信。每一个过程的各个方面都可以采用硬件、固件或软件或者其组合来实现。过程被示为指定由一个或多个设备执行的操作的一组块,并且不是必然地限定为由相应的块(例如,图6-8)和箭头例如图9-10执行该操作而示出的顺序。在下面讨论的各部分中,将对图1的环境100和/或图2的系统200进行参考。
图6是描述了其中即使当要共享数据的共享客户机中的一个不可用,也可以使结合即时消息通信会话共享的数据被同步化的示例性实施方式中的过程600的流程图。当使用消息通信模块108(1)时,客户机104(1)指定要共享的新数据(块602)。例如,通过分别使用共享用户界面400或500中的共享文件夹404或506的表示,客户机104(1)可以将文件从其桌面拖到共享文件夹,例如文件夹302、308、310。
然后,作出关于哪些其它客户机将接收共享数据的判断(块604)。例如,共享模块112(1)可以通过检查接收到照片的指示的文件夹来确定那个文件夹中所放置的数据要与特定客户机共享。然后,通过即时消息通信,使所指定的数据与可用的其它客户机同步(块606)。例如,消息通信模块108(1)可以确定特定客户机中的每一个的存在性,并且通过经由网络106或对等网络212将其连接来使该数据与可用的那些客户机同步。可在涉及图7的描述中找到对存在性的进一步讨论。
存储所指定的数据以便传输给不可用的其它客户机(块608)。例如,可通过与消息通信服务102连接,来将该数据存储为存储116中的客户机数据114(d)。从而,当至少一个之前不可用的客户机变为可用时(块610),所指定的数据就与该至少一个客户机同步(块612)。因此,数据可以被指定为由多个客户机共享和同步,而不考虑该客户机中的每一个是否当前可用。
图7是描述了其中与利用客户机关于即时消息通信的可用性的存在性来在客户机之间共享数据的示例性实施方式中的过程700的流程图。通过与即时消息通信用户界面交互,第一客户机与共享的数据交互(块702)。例如,第一客户机可以将该数据添加到共享文件夹、改变已经被包含在该文件夹中的数据、从文件夹中删除数据等。
然后,作出关于该交互是否触发了复制的判断(判定块704)。例如,共享模块112(1)可以监控客户机104(1)与客户机数据220(1)的交互,以便确定是否对该客户机数据作出了需要被复制的改变。如果否(自判定块704的“否”),则可以继续监控该交互(块702)。
当该交互触发了复制(自判定块704的“是”),则作出关于哪些客户机被指定来与之共享该数据(块706)。例如,数据可以被包含在“我的共享”文件夹302中,其副本可以被作为文件夹314包含在客户机104(n)(即“Bob”)上以及作为文件夹324被包含在客户机104(N)(即“Charlene”)上。在其它例子中,该数据可以被包含在由持久对象指定的组文件夹308中等。
然后,查明所确定的客户机中的每一个的存在性(块708)。例如,消息通信模块108(1)可以确定每一个客户机104(1)-104(N)关于可用于即时消息通信的存在性,诸如客户机是否“在线”、“离线”、“在线但不接收即时消息”等。因此,数据的共享可以利用通过即时消息通信所提供的存在性的概念。
然后,当客户机存在时,将该数据与客户机中的每一个共享(块710)。这可以以多种方式来执行。例如,可以通过共享模块112(1)与消息通信模块108(1)的交互来监控客户机的存在性(块712)。接着,作出关于该客户机是否“登录”到消息通信服务的判断(判定块714)。例如,消息通信模块108(1)可以与消息通信管理器模块110通信以便确定多个客户机104(1)-104(N)中的哪些客户机当前登录。如果客户机登录(自判定块714的“是”),则同步化共享的数据项以便反映由第一客户机进行的交互(块716)。当客户机未登录时(自判定块714的“否”),则再次监控客户机的存在性。因此,在这个实施方式中,一旦当客户机变为可用时,即同步化由该客户机共享的数据。然而,在另一实施方式中,调度数据同步化,其例子可以在涉及下面附图的描述中找到。
图8是描述了其中调度结合即时消息通信共享的数据的同步化的示例性实施方式中的过程800的流程图。作出关于哪些数据项要被同步以用于共享的判断(块802)。例如,共享块112(1)当被执行时,可以监控由客户机与被指定要与至少一个其它客户机共享的数据项进行的交互。
然后,作出关于哪些客户机要接收将被同步的数据项的判断(块804)。例如,客户机可以与多个不同数据项进行交互,并且共享模块112(1)可以诸如通过用于与不同客户机共享而指定的不同文件夹,来确定哪些客户机共享哪些数据项。
然后,为所确定的客户机调度数据项的同步化(块806)。该调度可以是基于多个特性的。例如,所确定的客户机的特性可以被用于调度数据项的同步化(块808)。例如,特性可包括所确定的客户机当前是否登录到消息通信服务、描述客户机的历史存在性趋势的数据(例如,客户机“x”通常在“y”时间段可用)、客户机的硬件和/或软件资源(例如,连接速度以及客户机接收数据所需的时间量)等。
在另一个例子中,可以使用要被同步化的数据项的特性(块810),诸如大小、关于其它数据项的优先级等。在其它例子中,可以使用同步化客户机的特性(块812),诸如存储器周期、客户机发送数据的网络带宽等。以这种方式,许多特性都可以被用于调度同步化。尽管已经讨论了一些例子,但是显然,在不背离其精神和范围的情况下,也构想了多种其它例子。
版本矢量(vector)
如之前在图3-5中所示,共享空间可以在用户界面中被表示为文件夹。这些文件夹的内容可以在客户机之间同步,而不考虑客户机是否同时在线。因此,在两个客户机之间共享的空间的情况下,这可能意味着最终(即,当完成同步时)两个客户机将在其共享文件夹中具有相同的一组数据(例如,文件夹和子文件夹)。在组(例如,利用持久对象216(a)形成的组)所有成员之间共享的空间的情况下,这可能意味着最终该组或循环中的每一个成员都将在其文件夹中具有同样的一组数据。
可以以许多方式来实现数据同步。例如,可以由复制模块利用基于多主控状态(multi-master state-based)的文件复制技术来同步化数据。这种技术涉及用于要被同步的文件夹的每个拷贝或者副本的全局状态(被称为“版本矢量”)的计算。例如,通过比较两个版本矢量,复制模块可以确定两个副本是否要被同步化。如果版本矢量一样,则认为将副本是同步化的。然而,如果版本矢量不同,则复制模块可以使用版本矢量上的差异来高效地确定什么数据项(例如,文件或文件夹)要被同步化。
版本矢量可以包含多个条目,条目的数目等于要被同步化的不同副本的数目。这可能是有利的,因为那个数目通常远小于被保持同步的数据项的数目。例如,对于两个客户机Adam 104(1)和Bob 104(n)之间共享的空间,副本的数量通常会是两个,每个客户机一个,而共享空间中可能有数几万个文件。例如,以下示出了用于两个副本的可能的版本矢量的例子,客户机104(1)和104(n)上的两个副本分别用“A”和“B”表示:
副本A的版本矢量:{A→15,B→300}
副本B的版本矢量:{A→12,B→500}
然而,注意到即使是对于两个客户机之间共享的空间的情况,也可能涉及多于两个的副本。例如,考虑其中客户机Adam 104(1)利用两个不同机器“MA1”和“MA2”与消息通信服务102进行交互,而Bob 104(n)利用一个机器“MB”与消息通信服务102进行交互的情况。在这种情况下,存在数据的三个副本(分别在MA1、MA2和MB上),因此版本矢量各自将包含三个条目,其例子如下:
MA1上的副本A的版本矢量:{MA1→18,MA2→33,MB→300}
MA2上的副本A的版本矢量:{MA1→13,MA2→58,MB→300}
MB上的副本B的版本矢量:{MA1→11,MA2→10,MB→777}
尽管通过版本矢量可以解决两个机器之间高效同步化的问题,但是仍然需要高效地确定哪些机器要被同步化的技术。例如,客户机“Adam”可能具有100个联系人218(1),并且维护与这些联系人中的每一个的共享空间。因此,当Adam104(1)上线时,蛮力方法可能要求Adam的消息模块108(1)连接到所有100个联系人,以便交换版本矢量并确定是否需要同步化,这可能导致资源的低效使用。因此,可采用多种技术来提供共享数据的高效同步化,其例子可以在涉及下面附图的描述中找到。
因为这两个实施方式都依赖于版本矢量是否相等的比较,所以可通过使用版本矢量的紧凑表示而不是完整的矢量本身来进一步优化版本矢量以存储和传输较少的数据。实现这种紧凑表示的一种方式是根据该矢量的标准表示来计算散列。尽管可以使用任何散列算法,但是密码安全散列(诸如MD5或SHA-1)降低了冲突的风险,即相等的散列用于不同的版本矢量。在下面的说明中,术语“版本矢量”可用于互换地表示完整的矢量或者该矢量的紧凑表示。
图9是其中在存在行文档中发布版本矢量以指定要结合即时消息通信共享的数据的示例性实施方式900中的示意图。这种技术是基于每个客户机104(1)、104(n)各自发布其版本矢量作为相应的存在性文档902(1)、902(n)的一部分。只要客户机104(1)、104(n)注册了,这些存在性文档的最新副本902(m)就由消息通信服务102来维护。这些存在性文档902(m)可以在每次客户机104(1)、104(n)中的一个登录到消息通信服务102时、每次由相应客户机104(1)、104(n)维护的版本矢量中的一个改变时等被更新。
例如,Adam 104(1)与Bob 104(n)具有一共享空间。每个客户机104(1)、104(n)维护共享文件夹相应的副本904(1)、904(n),被示为“VVA”和“VVB”的相应版本矢量,相应处于相应存在性文档902(1)、902(n)中。接着,执行下面的过程以便确定两个文件夹是否要被同步化,并且如果是,则执行同步化。
无论何时客户机104(1)注册消息通信服务102(和/或无论何时其版本矢量中的一个“VVA”改变),客户机104(1)即通过发送改变(CHG)命令904(箭头906)向消息通信服务102通知其存在行信息改变了。以其存在性文档902(1)中获得的关于每一客户机104(1)的版本矢量的信息来扩充作为CHG命令的一部分发送的信息。客户机104(1)所连接的连接服务器202(1)将这个信息路由到该客户机的存在性服务器202(p)上(箭头908)。存在性服务器202(p)更新客户机104(1)的存在性数据910(在这个例子中,它被配置为存在性文档902(m)),以便反映客户机的昵称、状态码等。因此,存在服务器202(p)存储关于每一客户机104(1)的版本矢量的信息。
因为客户机104(n)在其联系人列表218(n)上具有客户机104(1),所以无论何时客户机104(1)存在性改变,消息通信服务102即向客户机104(n)发送具有新信息的命令914(通过如箭头916所示的对应的连接服务器202(n))。命令914包括如客户机104(1)、104(n)所共享的任何空间的存在性数据910获取的来自客户机104(1)的版本矢量信息。在这个实施方式中,存在性服务器202(p)可以过滤掉关于客户机104(1)的其它版本矢量的信息,由此节省资源并保持客户机104(1)的私密性。
一旦接收到命令914,客户机104(n)即将接收到的版本矢量“VVA”与其自己的版本矢量“VVB”进行比较。如果矢量匹配,即同步化共享文件夹904(1)、904(n)。然而,如果矢量不匹配,那么通过经由网络106或对等覆盖212的连接来执行共享文件夹904(1)、904(n)的同步化。
例如,客户机104(n)可以联系客户机104(1),并且执行用于同步共享文件夹904(1)、904(n)的协议(箭头918)。如果之前使用紧凑表示来确定是否需要同步化,则这个协议包括完整版本矢量的交换。在那个协议完成之后,每个客户机更新其版本矢量,并且采用新的值更新相应的存在性文档902(1)、902(n)。
图10是其中利用同步协商消息(SNM)来触发客户机之间的共享数据的复制的示例性实施方式1000中的示意图。在这种技术中,客户机104(1)、104(n)使用来自消息通信服务102的规范的存在性通知来确定何时向其它客户机发送SNM。SNM包括用于可以使用同步化的文件夹的版本矢量。这种技术不使用存在性服务器上的额外存储,并且使用最小量的带宽。
这种技术是基于被称为同步协商消息(SNM)1002的可以被用于客户机104(1)、104(n)之间可靠的、单向通信的新消息通信服务协议原语的。SNM消息包含识别所预期接收方的目的地即时消息通信句柄,以及包含版本矢量和共享空间的标识符的有效负载。
首先,客户机104(1)通过执行消息通信模块108(1)及其对应的共享模块112(1)来确定向联系人客户机104(n)发送SNM消息1002(箭头1004)的至少一个条件已经被满足。可以使用各种条件。例如,客户机104(1)的版本矢量中的一个已经改变(例如,作为对共享文件的本地改变、完成的同步化的结果等),并且其用于那个共享关系的联系人之一(例如,客户机104(n))在线。在另一个例子中,与其具有共享关系的其联系人之一(例如,客户机104(n))上线。应当注意,这可以通过在每个机器的基础上高速缓存那个特定联系人(例如,客户机104(n))的最近知道的版本矢量以及如果客户机104(1)的当前版本矢量不同于该联系人例如客户机104(n)所缓存的版本矢量即发送SNM消息1002来进行优化。
所发送的SNM消息1002由消息通信服务102(更具体的是连接服务器202(1),202(n))路由给客户机104(n)(箭头1006)。一旦接收SNM消息1002之后,客户机104(n)就将接收到的版本矢量“VVA”与其自己的版本矢量“VVB”进行比较。如果版本矢量匹配,那么就知道共享文件夹904(1)、904(n)是同步的。
如果版本矢量不同,则客户机通过网络106或对等覆盖212来联系客户机104(1),并且执行用于同步化文件夹904(1)、904(n)的协议(箭头1008)。同上,这种协议可以包括如果原先使用紧凑表示来确定是否需要同步化即交换完整的版本矢量。在完成该协议之后,每个客户机104(1)、104(n)更新其相应的版本矢量。
结论
虽然使用专用于结构特征和/或方法动作的语言描述了本发明,但是应当理解,所附权利要求中定义的本发明并不必被限于所描述的特定特征或动作。相反,特定的特征和动作是作为实现所要求保护的本发明的示例性形式而被公开的。

Claims (20)

1.一种方法,包括:
在即时消息通信会话过程中,由客户机指定要与一个或多个其它客户机共享的数据(602),其中至少一个所述其它客户机在所述即时消息通信会话过程中不可用;以及
当每一个所述其它客户机可用时,将所述数据与所述客户机同步化(612)。
2.如权利要求1所述的方法,其中所述同步化是在对等网络上执行的。
3.如权利要求1所述的方法,其中所述指定是通过被配置为显示在所述即时消息通信会话过程中所传输的即时消息的用户界面来执行的。
4.如权利要求1所述的方法,其中所述指定是通过被配置为包括对应于与所述一个或多个其它客户机共享的数据的文件夹的表示的用户界面来执行的。
5.如权利要求1所述的方法,还包括将所述数据存储在不包含在所述客户机和所述其它客户机中的存储中,并且其中所述同步化包括当至少一个所述其它客户机可用时,将所述存储中所存储的数据提供给至少一个所述其它客户机。
6.如权利要求5所述的方法,其中所述存储可以通过web接口访问。
7.如权利要求1所述的方法,其中:
所述指定是通过包括对应于由具有多个其它所述客户机的组所共享的数据的文件夹的表示的用户界面执行的;以及
所述组中的成员由被配置为在所述即时消息通信会话终止之后继续存在的持久对象指定。
8.如权利要求1所述的方法,其中所述数据是数据项中描述对所述数据项作出的一个或多个改变的子集。
9.如权利要求1所述的方法,还包括调度所述数据的同步化。
10.一种方法,包括:
确定要由多个客户机共享的数据是否要被同步化(802);以及
基于所述判断,调度所述数据的同步化,尽管至少一个所述客户机不能通过即时消息使用(806)。
11.如权利要求10所述的方法,其中所述判断是至少部分基于监控与被配置为显示即时消息的用户界面的交互。
12.如权利要求10所述的方法,还包括确定一个或多个所述客户机的存在性,并且其中所述调度是至少部分基于所确定的存在性来执行的。
13.如权利要求10所述的方法,其中所述判断是至少部分基于具有对应于所述数据的版本矢量的同步协商消息的。
14.如权利要求10所述的方法,其中所述判断是至少部分基于通过利用被存储为描述所述多个客户机中的一个或多个的存在性信息的一部分的版本矢量来执行的。
15.如权利要求10所述的方法,其中所述调度是至少部分基于要接收所述数据的对应的所述客户机的一个或多个当前特性的。
16.如权利要求10所述的方法,其中所述调度是至少部分基于发起所述数据的至少一个所述客户机的一个或多个特性的。
17.如权利要求10所述的方法,其中所述调度是至少部分基于要被同步化的数据的一个或多个特性的。
18.一种或多种包括计算机可执行指令的计算机可读介质,当所述计算机可执行指令被执行时,引导计算机来:
确定是否要同步化在即时消息通信过程中被指定来与至少一个其它客户机共享的数据(802);以及
基于所述判断,调度何时将所述数据与所述至少一个其它客户机同步化(806)。
19.如权利要求18所述的一种或多种计算机可读介质,其中所述计算机可执行指令引导计算机输出被配置为在即时消息通信会话过程中显示即时消息并且接受将作为即时消息传输的输入的用户界面。
20.如权利要求18所述的一种或多种计算机可读介质,其中该计算机可执行指令引导所述计算机来利用基于所述至少一个其它客户机、所述数据以及所述计算机的特性进行调度。
CNA2006800212189A 2005-06-20 2006-05-05 具有数据共享特征的即时消息通信 Pending CN101495985A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/157,187 2005-06-20
US11/157,187 US7693958B2 (en) 2005-06-20 2005-06-20 Instant messaging with data sharing

Publications (1)

Publication Number Publication Date
CN101495985A true CN101495985A (zh) 2009-07-29

Family

ID=37591036

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800212189A Pending CN101495985A (zh) 2005-06-20 2006-05-05 具有数据共享特征的即时消息通信

Country Status (6)

Country Link
US (1) US7693958B2 (zh)
EP (1) EP1896974A2 (zh)
JP (1) JP2009500698A (zh)
KR (1) KR20080025689A (zh)
CN (1) CN101495985A (zh)
WO (1) WO2007001631A2 (zh)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2401259B (en) 2003-04-30 2005-12-21 Research In Motion Ltd Charging status indicator control system and method
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
WO2006053019A2 (en) 2004-11-08 2006-05-18 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US20060242277A1 (en) * 2005-03-31 2006-10-26 Tripwire, Inc. Automated change approval
US7930346B2 (en) * 2005-08-24 2011-04-19 Microsoft Corporation Security in peer to peer synchronization applications
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US7917607B2 (en) * 2005-12-30 2011-03-29 Sap Ag Software management systems and methods, including use of such systems and methods in a provider-tenant environment
US20070174246A1 (en) * 2006-01-25 2007-07-26 Sigurdsson Johann T Multiple client search method and system
US20070294319A1 (en) * 2006-06-08 2007-12-20 Emc Corporation Method and apparatus for processing a database replica
US20090030952A1 (en) * 2006-07-12 2009-01-29 Donahue Michael J Global asset management
US20080208963A1 (en) * 2006-10-19 2008-08-28 Aviv Eyal Online File Sharing
US8433730B2 (en) * 2006-10-31 2013-04-30 Ariba, Inc. Dynamic data access and storage
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US20080126475A1 (en) * 2006-11-29 2008-05-29 Morris Robert P Method And System For Providing Supplemental Information In A Presence Client-Based Service Message
US7933869B2 (en) 2006-12-29 2011-04-26 Sap Ag Method and system for cloning a tenant database in a multi-tenant system
US20080162587A1 (en) * 2006-12-29 2008-07-03 Ulrich Auer Server synchronization for maintenance activities
US8069184B2 (en) * 2006-12-29 2011-11-29 Sap Ag Systems and methods to implement extensibility of tenant content in a provider-tenant environment
US8019055B2 (en) * 2007-01-19 2011-09-13 Nokia Corporation Media instant messaging for mobile device
CN100544305C (zh) * 2007-03-16 2009-09-23 钱晓东 一种基于即时通讯平台的用户信息分享及管理的方法
US8677270B2 (en) 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
WO2008151147A1 (en) * 2007-06-01 2008-12-11 Memeo, Inc. Automatic file sharing over a network
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
US20090037588A1 (en) * 2007-07-31 2009-02-05 Morris Robert P Method And System For Providing Status Information Of At Least Two Related Principals
JP5136304B2 (ja) * 2007-09-21 2013-02-06 セイコーエプソン株式会社 情報処理装置、情報処理方法および情報管理システム
US8209384B2 (en) * 2007-10-23 2012-06-26 Yahoo! Inc. Persistent group-based instant messaging
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
US7428702B1 (en) * 2008-01-27 2008-09-23 International Business Machines Corporation Method and system for dynamic message correction
US9032295B1 (en) * 2008-03-19 2015-05-12 Dropbox, Inc. Method for displaying files from a plurality of devices in a multi-view interface and for enabling operations to be performed on such files through such interface
US8458285B2 (en) 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US9141483B1 (en) 2008-03-27 2015-09-22 Dropbox, Inc. System and method for multi-tier synchronization
CN101547161B (zh) 2008-03-28 2012-09-26 阿里巴巴集团控股有限公司 文件夹传输系统、文件夹传输装置及文件夹传输方法
US7668926B2 (en) 2008-04-25 2010-02-23 Gene Fein Real-time communications over data forwarding framework
US8230348B2 (en) * 2008-04-28 2012-07-24 Roger Peters Collaboration software with real-time synchronization
US20090327299A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Replicating modifications made to contents of a shared folder
US9152711B2 (en) * 2008-06-27 2015-10-06 Kii Corporation Social mobile search
US7865563B2 (en) * 2008-08-28 2011-01-04 Brian Scott Moudy Persisting a group in an instant messaging application
US8689115B2 (en) * 2008-09-19 2014-04-01 Net Power And Light, Inc. Method and system for distributed computing interface
US20100088415A1 (en) * 2008-10-07 2010-04-08 Aaron Archer Method and apparatus for locating facilities
US8788949B2 (en) * 2008-10-28 2014-07-22 Google Inc. Provisioning instant communications for a community of users
US20100146101A1 (en) * 2008-12-09 2010-06-10 Morris Robert P Method And System For Binding A Watcher Representing A Principal To A Tuple Based On A Matching Criterion
CN101465824B (zh) * 2008-12-29 2012-05-16 腾讯科技(深圳)有限公司 即时通信文件多源传输系统及方法
US9065868B2 (en) * 2009-04-08 2015-06-23 Blackberry Limited System and method for sharing data in a group of mobile devices
US9917702B2 (en) 2009-04-08 2018-03-13 Blackberry Limited System and method for managing items in a list shared by a group of mobile devices
US12063577B2 (en) 2009-04-08 2024-08-13 Huawei Technologies Co., Ltd. System and method for managing items in a list shared by a group of mobile devices
US8650498B1 (en) 2009-05-04 2014-02-11 SugarSync, Inc. User interface for managing and viewing synchronization settings in a synchronization system
US8909683B1 (en) 2009-07-17 2014-12-09 Open Invention Network, Llc Method and system for communicating with internet resources to identify and supply content for webpage construction
JP5531494B2 (ja) * 2009-08-05 2014-06-25 セイコーエプソン株式会社 共同作業支援システム
CN102025515A (zh) * 2009-09-14 2011-04-20 阿里巴巴集团控股有限公司 基于文件目录的文件传输方法及其装置和系统
KR20110074244A (ko) * 2009-12-24 2011-06-30 삼성전자주식회사 통신 시스템에서 인스턴트 메시징 클라이언트 간 데이터 동기화 장치 및 방법
US9645996B1 (en) * 2010-03-25 2017-05-09 Open Invention Network Llc Method and device for automatically generating a tag from a conversation in a social networking website
WO2012011639A1 (en) 2010-07-20 2012-01-26 Lg Electronics Inc. Electronic device, electronic system, and method of providing information using the same
US20120023065A1 (en) * 2010-07-20 2012-01-26 Deweese William System and method for managing data on an occasionally connected mobile device
WO2012011630A1 (en) 2010-07-20 2012-01-26 Lg Electronics Inc. Selective interaction between networked smart devices
WO2012011636A1 (en) 2010-07-20 2012-01-26 Lg Electronics Inc. User profile based configuration of user experience environment
WO2012011635A1 (en) * 2010-07-20 2012-01-26 Lg Electronics Inc. Computing device and displaying method at the computing device
CN102651716A (zh) 2011-02-24 2012-08-29 阿里巴巴集团控股有限公司 即时通讯中的文件夹传输方法及系统、即时接收客户端
WO2013001615A1 (ja) 2011-06-28 2013-01-03 富士通株式会社 データ処理方法およびデータ処理システム
US8782004B2 (en) 2012-01-23 2014-07-15 Palantir Technologies, Inc. Cross-ACL multi-master replication
KR101295209B1 (ko) * 2012-02-01 2013-09-12 엔에이치엔(주) 클라우드 서버와의 양방향 연동을 통해 파일 공유를 제공하는 그룹 메시징 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US20130346849A1 (en) * 2012-06-06 2013-12-26 Minds + Machines Automatic uploading and synchronization of media assets
US10057318B1 (en) * 2012-08-10 2018-08-21 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US9633125B1 (en) 2012-08-10 2017-04-25 Dropbox, Inc. System, method, and computer program for enabling a user to synchronize, manage, and share folders across a plurality of client devices and a synchronization server
US20150213001A1 (en) * 2012-08-20 2015-07-30 Ron Levy Systems and Methods for Collection-Based Multimedia Data Packaging and Display
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9501761B2 (en) 2012-11-05 2016-11-22 Palantir Technologies, Inc. System and method for sharing investigation results
WO2014123271A1 (ko) * 2013-02-08 2014-08-14 에스케이플래닛 주식회사 메신저 프로그램에서의 서비스 페이지 제어 방법, 이를 위한 장치 및 시스템
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US8886601B1 (en) 2013-06-20 2014-11-11 Palantir Technologies, Inc. System and method for incrementally replicating investigative analysis data
KR102162836B1 (ko) * 2013-08-30 2020-10-07 삼성전자주식회사 필드 속성을 이용한 컨텐트를 제공하는 전자 장치 및 방법
US9569070B1 (en) 2013-11-11 2017-02-14 Palantir Technologies, Inc. Assisting in deconflicting concurrency conflicts
US9519525B2 (en) 2013-11-14 2016-12-13 Dropbox, Inc. File-level commenting
US10148710B2 (en) * 2013-11-27 2018-12-04 At&T Intellectual Property I, L.P. Method, computer-readable storage device and apparatus for establishing persistent messaging sessions
US9009827B1 (en) 2014-02-20 2015-04-14 Palantir Technologies Inc. Security sharing system
US9641488B2 (en) * 2014-02-28 2017-05-02 Dropbox, Inc. Advanced security protocol for broadcasting and synchronizing shared folders over local area network
US10623468B1 (en) * 2014-05-30 2020-04-14 Mbr Innovations Llc Systems and methods for simultaneous electronic file exchange
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US9021260B1 (en) 2014-07-03 2015-04-28 Palantir Technologies Inc. Malware data item analysis
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US9430669B2 (en) * 2014-07-23 2016-08-30 Dropbox, Inc. Collection folders in a content management system
US10997188B2 (en) 2015-03-23 2021-05-04 Dropbox, Inc. Commenting in shared folder backed integrated workspaces
US10108806B2 (en) 2015-04-17 2018-10-23 Dropbox, Inc. Collection folder for collecting file submissions and scanning for malicious content
US10885209B2 (en) 2015-04-17 2021-01-05 Dropbox, Inc. Collection folder for collecting file submissions in response to a public file request
US9692826B2 (en) 2015-04-17 2017-06-27 Dropbox, Inc. Collection folder for collecting file submissions via a customizable file request
US9948580B2 (en) * 2015-06-19 2018-04-17 Whatsapp Inc. Techniques to replicate data using uploads from messaging clients
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
US10621198B1 (en) 2015-12-30 2020-04-14 Palantir Technologies Inc. System and method for secure database replication
US10713966B2 (en) 2015-12-31 2020-07-14 Dropbox, Inc. Assignments for classrooms
US10262053B2 (en) 2016-12-22 2019-04-16 Palantir Technologies Inc. Systems and methods for data replication synchronization
US10719807B2 (en) 2016-12-29 2020-07-21 Dropbox, Inc. Managing projects using references
US10970656B2 (en) 2016-12-29 2021-04-06 Dropbox, Inc. Automatically suggesting project affiliations
US10402786B2 (en) 2016-12-30 2019-09-03 Dropbox, Inc. Managing projects in a content management system
US10068002B1 (en) 2017-04-25 2018-09-04 Palantir Technologies Inc. Systems and methods for adaptive data replication
US10430062B2 (en) 2017-05-30 2019-10-01 Palantir Technologies Inc. Systems and methods for geo-fenced dynamic dissemination
US11030494B1 (en) 2017-06-15 2021-06-08 Palantir Technologies Inc. Systems and methods for managing data spills
US10380196B2 (en) 2017-12-08 2019-08-13 Palantir Technologies Inc. Systems and methods for using linked documents
US10915542B1 (en) 2017-12-19 2021-02-09 Palantir Technologies Inc. Contextual modification of data sharing constraints in a distributed database system that uses a multi-master replication scheme
US11226939B2 (en) 2017-12-29 2022-01-18 Dropbox, Inc. Synchronizing changes within a collaborative content management system
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
US10657228B1 (en) 2018-11-06 2020-05-19 Dropbox, Inc. Technologies for integrating cloud content items across platforms
US11500625B2 (en) * 2019-09-30 2022-11-15 Slack Technologies, Llc Method, apparatus, and computer program product for organizing the booting operation of a group-based communication browser session
US11822513B2 (en) 2020-09-18 2023-11-21 Dropbox, Inc. Work spaces including links to content items in their native storage location

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584502B1 (en) 1999-06-29 2003-06-24 Cisco Technology, Inc. Technique for providing automatic event notification of changing network conditions to network elements in an adaptive, feedback-based data network
US6662212B1 (en) * 1999-08-31 2003-12-09 Qualcomm Incorporated Synchronization of a virtual workspace using E-mail extensions
AU2001234541A1 (en) * 2000-01-25 2001-08-07 Autodesk, Inc. Method and apparatus for providing access to and working with architectural drawings on the internet
US6912564B1 (en) * 2000-05-04 2005-06-28 America Online, Inc. System for instant messaging the sender and recipients of an e-mail message
KR100472202B1 (ko) * 2001-12-05 2005-03-08 한국전자통신연구원 아이 알 씨 프로토콜을 이용한 웹 공동 브라우징 시스템및 그 방법
US6938070B2 (en) * 2001-12-17 2005-08-30 Dassault Systemes Conflict resolution for collaborative work system
US20030182428A1 (en) * 2002-03-19 2003-09-25 Jiang Li Peer-to-peer (P2P) communication system
US6957077B2 (en) * 2002-05-06 2005-10-18 Microsoft Corporation System and method for enabling instant messaging on a mobile device
US6757722B2 (en) * 2002-07-16 2004-06-29 Nokia Corporation System and method for providing partial presence notifications
US7124123B1 (en) * 2003-06-30 2006-10-17 America Online, Inc. Intelligent processing in the context of away and offline instant messages
US7734690B2 (en) * 2003-09-05 2010-06-08 Microsoft Corporation Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
WO2005046112A2 (en) * 2003-11-04 2005-05-19 Taskport, Inc. Method and system for collaboration

Also Published As

Publication number Publication date
US7693958B2 (en) 2010-04-06
WO2007001631A2 (en) 2007-01-04
WO2007001631A3 (en) 2009-04-09
KR20080025689A (ko) 2008-03-21
US20070005707A1 (en) 2007-01-04
JP2009500698A (ja) 2009-01-08
EP1896974A2 (en) 2008-03-12

Similar Documents

Publication Publication Date Title
CN101495985A (zh) 具有数据共享特征的即时消息通信
CN107912082B (zh) 消息服务提供方法及执行所述消息服务提供方法的主机终端、客户终端
US7756924B2 (en) Peer communities
US11809491B2 (en) Expandable data object management and indexing architecture for intersystem data exchange compatibility
CN102725770B (zh) 社交网络搜索
CN101416178B (zh) 管理丰富的在场集合
CN102132310B (zh) 内容共享和即时消息收发
US20180191664A1 (en) Methods and systems for managing a multi participant event
US20050234943A1 (en) Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
CN110168537A (zh) 上下文和社交距离感知的快速活性人员卡片
JPWO2007148562A1 (ja) 共有管理システム、共有管理方法およびプログラム
CN102549591A (zh) 共享面部训练数据
WO2009074037A1 (fr) Procédé, dispositif et système de communication instantanée
CN118104218A (zh) 通信平台上的集成工作空间
CN109076007A (zh) 管理异步消息传递系统中的单个账号的多个配置文件
WO2015100997A1 (zh) 一种智能体处理信息的方法及智能体
JP5372923B2 (ja) ユーザの電子的コミュニティを管理する装置と方法
US10542088B2 (en) Modifying data resources within party-partitioned storage areas
JP2018518771A (ja) トランザクション処理方法及びシステム
De Spindler et al. Spatio-temporal proximity as a basis for collaborative filtering in mobile environments
JP3627521B2 (ja) 共有仮想画面による情報伝達方法及びユーザ端末装置及び計算機及び共有仮想画面による情報伝達プログラムを格納した記憶媒体
Dinatha et al. Data exchange service using google drive API
KR100996819B1 (ko) 분산된 협업 시스템에서 콘택트를 저장하고 관리하기 위한방법 및 장치
CA2452893C (en) Method and apparatus for storing and managing contacts in a distributed collaboration system
CN109768914A (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

Open date: 20090729