在计算机应用中基于服务器的数据共享的制作方法

文档序号:6360054阅读:211来源:国知局
专利名称:在计算机应用中基于服务器的数据共享的制作方法
技术领域
本文档描述了用于在基于主机计算机服务器的服务中的应用之间共享数据的技术和系统。
背景技术
也被称作云计算服务器的主机计算机计算服务是由第三方使得可通过因特网为公众所使用的服务,其中应用从服务器执行并且这样的执行的结果通常通过web浏览器呈现给用户。主机计算机服务为广大用户提供各种解决方案,诸如地图(mapping)、因特网搜索、生产カ应用(文字处理、电子数据表、演示和电子邮件)、个人金融数据包、企业资源管理以及许多其它服务。可以通过使用诸如异步JavsScript和XML(AJAX)之类的技术使得这样的应用更加丰富。桌面操作系统和相关联的计算机应用提供包括生产カ应用在内的应用的本地存储和执行。现代操作系统通常允许“剪切和粘贴”操作,从而数据可以从第一位置移动至第二位置,包括在两个不同应用之间移动。在某些实例中,数据的格式也能够经由从计算设备上第一应用到第二应用的转换而得以保留。此外,可以使用诸如动态数据交換(DDE)或对象链接及嵌入(OLE)之类的特征在计算机应用中的数据实例之间维护活动链接。应用之间的数据共享频繁地使用剪贴板范例来实现,由此数据从第一应用剪切至剪贴板,其可以随后从那里被访问以便粘贴至其它应用。

发明内容
本文档描述了可以使用主机计算机计算应用中的剪贴板范例、通过其来共享数据的技木。特别地,可以采用第一服务器子系统以与对文档进行编辑的web浏览器用户进行交互,除其它之外,所述文档诸如文字处理文档或者诸如电子数据表、图像或电子邮件消息之类的其它形式的文档。作为所述交互的一部分,用户可以选择从文档剪切或复制内容或者将内容粘贴到文档中。这样的内容可以复制自或复制到如下剪贴板,该剪贴板存储在主机计算机系统并且由剪贴板服务器子系统进行管理。这样的剪贴板服务器子系统可以与用户的web浏览器上的容器文档的产物(child)要素进行交互。容器文档(其可以源于另ー个服务器子系统)和所述产物要素或文档(例如,iFrame或其它要素)可以与其相应服务器子系统通信并且相互进行通信,从而剪贴板项(例如,可以单独从剪贴板进行访问的单条内容)可以被提供至产物要素,并且转而被提供至容器文档,它们在那里可以被添加至用户当前与之进行交互的文档。
经由基于服务器的剪贴板系统的这样的内容共享也可以跨多个计算会话以及不同的计算机来发生。例如,用户可以将内容复制到已经与用户的在线账户相关联的剪贴板(例如,通过用户登录至主机计算机服务器并且诸如经由密码或用户ID向其认证自己)。用户随后可以移动至不同的计算机,诸如从他们的工作PC移动至其智能电话、其家庭PC或者连接因特网的咖啡店PC,并且可以使用其相同的账户登录服务。他们随后可以在其账户内进行操作的同时利用所述服务将内容从不同计算机粘贴到文档中。作为第二示例,第ー用户可以将内容复制到主机计算机剪贴板,并且可以提供他们可能会想要与之共享内容的其它用户的标识符(例如,电子邮件地址或群体标识符)。那些其它用户随后可以得到存在新内容的通知,以及到所述内容的指针(例如,指向剪贴板中的特定条目的URL),并且可以仅访问剪贴板,而且如果他们想要,则随后将内容粘贴到在其自己的文档中。作为另ー个示例,用户可以将多个不同的条目复制或剪切到主机计算机剪贴板中,并且可以使得每个条目随后可被用户进行选择以便単独粘贴到另一文档中;用户也可以被允许选择多个条目并且使得它们按顺序自动合并到用户的文档中(例如,在存储在用户账户下的内联(in-line)文档中)。这样的交互也可以通过用户计算机和主机计算机系统之间同时打开
的多个浏览器通道来进行,其中用户可以经由不同的开放通道中的每ー个对不同文档进行编辑,并且可以经由主机计算机系统将内容从ー个文档复制到另ー个文档。在某些实施方式中,这样的技术可以提供ー种或多种优势。例如,存储在基于云的剪贴板或云板(cloudboard)中的数据可以在不同客户端设备之间进行传递,而无论那些设备是否与最初将所述数据放置在云板上的用户相关联还是与其它用户相关联。因此,可以容易地在多个不同用户之间共享数据,其中适当用户已经允许了这样的共享。而且,即使在客户端设备将无法存储信息的情况下,也可以存储大量数据。因此,即使当在客户端设备上管理这么多的内容不切实际时,多个不同的大型数据集也可以作为对云板的不同剪贴或其内的项而存储在云板中。剪贴板中的数据还可以在用于设备操作系统的会话中的不同日志中进行共享,诸如当用户将内容复制到云板、在夜间将其设备关机、以及随后在早上重启之后继续对文档进行编辑操作吋。此外,数据的共享可以像用于传统桌面应用一祥在早期基于云的应用中提供,并且具有这里所提到的附加好处。在一个实现中,公开了ー种计算机实施的方法,用于在计算机应用之间共享数据。所述方法包括在主机计算机服务器系统的应用服务器子系统处从远离所述主机计算机服务器系统的第一计算设备接收与所述应用服务器子系统所提供的电子文档进行交互的命令。所述方法还包括在主机计算机服务器系统处接收用于从所述电子文档向电子剪贴板复制内容的命令,并且在主机计算机服务器系统的、独立于应用服务器子系统的剪贴板服务器子系统处存储表示所述内容的数据。此外,所述方法包括接收针对表示所述内容的所存储数据的请求,以及将表示所述内容的数据从剪贴板服务器子系统送至第二计算设备。在ー些方面,第二计算设备不同于第一计算设备。此外,所述方法还可以包括通过确定第二客户端设备已经向与第一客户端设备向其进行认证的用户账户相匹配的用户账户进行了认证来确定第二计算设备已经有权访问表示所述内容的数据。所述方法可以进ー步包括通过在数据存储在主机计算机系统处时访问第一计算设备已经向其进行了认证的用户账户并且定位第二计算设备向其进行认证的用户账户的标识符来确定第二计算设备有权访问表示所述内容的数据。此外,应用服务器子系统能够与第一计算设备上执行的浏览器的容器文档进行交互,并且剪贴板服务器子系统能够与第二计算设备上执行的浏览器的容器文档的产物进行交互,所述产物与第一计算设备上执行的浏览器的容器文档相关。在某些方面,所述方法进ー步包括从第一计算设备接收用于示出剪贴板的内容的命令,并且将表示剪贴板中被确定为对应于第一计算设备已经向其进行了认证的用户账户的每个项的数据从剪贴板计算机服务器子系统递送至第一客户端设备。所述方法还可以包括从第一计算设备接收将来自剪贴板计算机服务器子系统的内容粘贴到文档中的命令,以及将内容从剪贴板计算机服务器子系统提供至在内容待粘贴到其中的容器文档内进行操作的产物要素。此外,所述方法可以包括从第一计算设备接收内容格式指示符,并且在将内容提供至产物要素之前将内容变换为与内容格式指示符相对应的格式。在其它方面,电子文档可以从由文字处理文档、电子表格、演示文档和电子邮件消息所构成的群组中进行选择。在另ー实现中,公开了ー种计算机实施的系统,用于在主机计算机服务上的计算 机应用之间共享数据。所述系统包括被配置为通过因特网与远离主机计算机服务的计算设备进行交互的ー个或多个web服务器,以及用于通过ー个或多个web服务器提供用于在计算设备的浏览器上显示容器文档中的交互式计算机应用的数据的应用服务器子系统。所述系统进一歩包括剪贴板服务器子系统,其存储与主机计算机服务的用户账户相关的内容,并且被编程为向容器文档内的产物要素提供内容,其中所述内容被格式化以包括在交互式计算机应用中。应用服务器子系统还可以被编程为在内容已经被添加至在容器文档中进行编辑的文档之后,利用在容器文档中进行编辑的文档保存内容。此外,所述系统可以包括认证服务器子系统,其被编程为将用户账户与每个计算设备进行关联,以及向剪贴板服务器子系统提供用于确定要与每个剪贴板条目相关联的用户账户的用户账户标识符。在ー些方面,认证服务器子系统被进一歩编程为与剪贴板服务器子系统进行协作以标识对应于特定剪贴板的用户之外的用户,所述用户可以访问来自特定剪贴板的ー个或多个内容项。而且,可以通过分析由对应于特定剪贴板的用户所准备的用户列表来确定用户针对特定剪贴板中的内容项的可访问性。此外,应用服务器子系统可以被编程为与第一计算设备上执行的浏览器的容器文档进行交互,并且剪贴板服务器子系统被配置为与第二计算设备上执行的浏览器的容器文档的产物要素进行交互,其中第二计算设备上执行的浏览器的容器文档与第一计算设备上执行的浏览器的容器文档相关。在其它的方面中,剪贴板服务器子系统进ー步被编程为从第一计算设备接收用于示出剪贴板内容的命令,并且作为响应,将表示剪贴板中被确定为对应于第一计算设备已经向其进行了认证的用户账户的每个项的数据从剪贴板计算机服务器子系统递送至第一客户端设备。剪贴板服务器子系统可以进ー步被编程为从第一容器文档接收将来自剪贴板的内容粘贴到第一容器文档内的文档中的命令,以及将来自剪贴板的内容提供至在第一容器文档内进行操作的产物要素。剪贴板服务器子系统可以进ー步被编程为接收内容格式指示符,并且在向产物要素提供内容之前将内容变换为对应于内容格式指示符的格式。在另ー种实施方式中,公开了ー种计算机实施的系统,用于在主机计算机服务上的计算机应用之间共享数据,其包括ー个或多个web服务器、应用服务器子系统,以及用于从应用服务器子系统上执行的第一应用接收内容并且将所接收的内容提供至应用服务器子系统上执行的第二应用的指针。
附图和以下的描述中给出了一个或多个实施例的细节。本发明的其它特征、目标和优势将由于描述和附图以及权利要求而明显。


图I是提供剪贴板功能的主机计算机系统的概念图。图2是主机计算机剪贴板系统中的组件的示意图。图3是示出用于在主机计算机服务中的应用之间共享内容的过程的流程图。图4是示出主机计算机服务器系统中的复制和粘贴操作的流程图。图5A和图5B是主机计算机服务器系统中的剪贴板交互的示例截屏。
图6是可以被用来实现本文中所描述的系统和方法的计算设备的框图。相同的附图标记在各图中指示相同的要素。
具体实施例方式本文描述了主机计算机计算服务或系统的用户可以通过其在不同文档之间(包括两种不同类型的计算应用中的文档之间)以及不同客户端计算设备之间复制和粘贴或者共享内容的系统和技术。以类似方式使用诸如异步JavsScript和XML(AJAX)之类的技术,应用可以被提供至用户的客户端计算设备(例如,个人计算机、上网本和智能电话)上执行的浏览器上所呈现的容器文档中。这种提供可以由所托管的服务(hosted service)处的服务器进行管理。在文档和/或应用之间移动的内容可以由处于与应用服务器分离的服务处的剪贴板服务器进行管理。剪贴板服务器可以与容器文档中所包含的产物要素进行通信。容器文档和产物要素均可以通过单独执行JavaScript或类似代码进行操作,并且产物要素可以与容器文档进行通信以向容器文档中运行的应用示出与剪贴板中可通过服务器访问的项相关的信息。以类似方式,内容可以从容器文档传递至客户端上的剪贴板要素,并且进而可以被提供至剪贴板服务器并且存储在那里直至被另ー个授权用户(包括将内容放在剪贴板中的用户)所请求。在某些实施方式中,这样的内容复制功能可以结合客户端设备上的剪贴板提供,所述剪贴板例如由设备的操作系统进行管理。例如,遵循传统的Π机制,键盘上按压CTRL+C键会导致所选择内容被复制到本地剪贴板,而不同选择(例如,浏览器中运行的应用中的菜单选择)会使得内容被代之以复制到云板。系统还可以被配置为将任意这样的复制命令作为使得复制到本地剪贴板和云板来对待。备选地,复制命令的调用会使得菜单得以显示,用户能够从所述菜单手工选择应当将数据复制到两个剪贴板(即,本地剪贴板或云板)中的哪ー个(或者当选择是粘贴命令时,从哪ー个进行粘贴)。图I是提供主机计算机剪贴板功能的主机计算机系统100的概念图。系统100在这里被示出为包含两个文字处理文档102、104,它们通过因特网106并且使用主机计算机服务器系统110共享图像108的表单中的一条共用内容。所述示例中的内容由利用文档102进行操作用户通过选择图像108并且随后选择屏幕上控件以将图像108复制到系统剪贴板所共享。随后诸如由利用文档104进行操作的用户通过所述用户从屏幕上菜单选择剪贴板命令,并且随后从对用户显示的多个内容的列表中选择特定图像108而从主机计算机系统上的剪贴板访问所述内容。
在所述示例中,文档102可以已经被显示在web浏览器的呈现窗格中的基于web的容器文档中。容器文档最初可以在用户选择执行诸如基于云的文字处理应用的、基于web的应用时进行加载。JavaScript或其它类似代码可以已经从用户的浏览器所加载的标记代码进行了访问,从而使得应用被显示在用户的浏览器中,与主机计算机服务器系统110的web服务器和应用服务器进行交互。附加代码可以已经被加载,并且可以曾经或者可以被执行,以为用户提供主机计算机剪贴板功能。这样的附加代码可以不与应用服务器进行通信,而是与主机计算机服务器系统110所托管的剪贴板服务器进行通信。剪贴板服务器通常可以是独立于应用的,因为它们可以从各种不同应用(例如,文字处理、电子表格等)接收内容以及向其提供内容,并且还可以当内容在两个不同应用之间移动时必要时对其进行转换。与文档104进行交互的用户可以以与访问文档102的用户类似的方式使用系统100。实际上,虽然这里的文档可以在不同计算机上由登录到主机计算机服务器系统110的不同用户进行访问,但是相同用户可以在不同时间、不同会话中(在不同时间或同吋)、经由不同浏览器通道或者从不同客户端设备访问这两个文档。针对用户的这样的不同访问模 式之间的协调可以使用用户在登录到主机计算机计算机系统时所提供的证书(例如,用户ID和密码)进行协调。这样的证书可以经由证书或认证子系统(未示出)进行管理,并且这里所讨论的子系统可以从客户端设备接收用户ID信息,将其提供至证书子系统,并且被告知用户(或客户端设备)是否对应于特定用户账户,从而系统100将在被请求时向客户端设备提供内容。针对用户账户的这种设备追踪以及用于接收绑定于用户账户的信息的设备批准可以以各种方式来进行并且在本领域是已知的。在图中,主机计算机系统110被示为存储包括图像108在内的五个项。例如,第一和第四项表示从电子表格应用中的电子表格所复制的内容(如被示为网格的项所指示的)。第二和第五项表示文字处理内容,其中第二项包括来自文档的简单文本,而第五项则表示文本和图像。特定项可以相互独立地进行存储并且可以由剪贴板使用唯一的项ID进行访问。例如,剪贴板服务器可以单独保存当前每个用户的剪贴板中的项ID的列表,从而当用户(例如,通过进行菜单选择)请求观看其剪贴板中的内容项的项名称列表(以及可能相关联的元数据)时,剪贴板服务器可以首先使用用户的ID访问用户列表并且随后可以访问用户列表中每个项的名称。每个项还可以具有与之相关联的用户列表,或者更具体地,与之相关联的用户账户,该账户可以被授权以通过将项粘贴到文档中来对其进行访问。例如,最初将项添加至剪贴板的用户可以标识单独用户(例如,通过电子邮件地址、其它用户ID或者其它这样的机制)、通过群组(例如,用户联系人列表中的所有成员,或者被标记为“家人”或“同事”的所有这样的用户等)、来自特定域的所有用户(例如,标识协同环境中的同事的另ー种快捷方式),或者所有用户(例如,通过指示应当使得项公开)。当其它用户针对剪贴板项被标识,则他们可以被提供以所述项可已经被使得可从其剪贴板获得(例如,经由在他们登录到系统110时的剪贴板菜单选择)的通知(例如,经由电子邮件消息)并且可以在他们与系统110所提供的应用进行交互时访问剪贴板项时被显示以项的名称。因此,通过使用系统100,ー个或多个用户可以方便地从第一应用或应用的第一实例中的文档取得内容,并且可以通过云容易地与另ー个应用、相同应用的另ー个实例或其它用户共享该服务。这样的共享可以由第一设备上执行的基于浏览器的应用来进行,所述应用捕捉内容并将其传递至主机计算机系统110,并且第二设备上的基于浏览器的应用随后请求查看相关剪贴板中所有项的表示(还可以向多个用户提供查看特定剪贴板的权限,并且共享剪贴板可以是ー个特定用户的剪贴板的子集,或者针对个人的剪贴板的统ー组合(例如,来自于特定用户的剪贴板的所有内容以及其它用户已经从其剪贴板与特定用户进行共享的所有项)),并且随后请求项中的ー个,以使其被传递至第二设备上运行的应用,诸如要将内容置于其中的容器文档内。所述内容在被复制时可以维护其各种格式以及其它元数据,或者用户可以选择就像他们能够针对基于桌面的剪贴板所做的那样在不使用格式的情况下粘贴内容。图2是主机计算机剪贴板系统200中组件的示意图。总体而言,所述系统使用两部分的服务器系统(其是主机计算机系统210的一部分)与(在客户端设备202上)两部分的客户端系统进行通信,所述客户端系统的组件大部分镜像服务器系统中的主要组件。服务器侧上的两个主要组件中的每ー个可以直接与客户端侧上的一对组件中相对应的ー个进行通信。反过来,每个服务器侧组件可以相互进行通信,并且每个客户端侧组件可以相同 进行通信。更具体地,在所述示例中,应用服务器子系统212与客户端设备202上的web浏览器上运行的JavaScript或类似可执行代码进行通信。应用服务器子系统212负责提供用于呈现应用(例如,文字处理或电子表格程序)的信息,用户能够通过所述应用以完整的方式与诸如电子表格或文字处理文档之类的文档进行交互。这样的交互可以包括用户添加所键入的信息和图像,格式设置(例如,改变字体、字体大小、下划线、斜体等)、对齐、页面格式设置,以及针对特定类型的应用的其它典型应用。服务器子系统212例如可以通过应用AJAX通道216提供标记代码(例如,HTML和XML),其可以使得JavaScript代码被递送至客户端设备202以便执行,其可以转而使得客户端设备202进ー步与子系统212进行交互,诸如更新客户端设备202的用户所编辑的文档的模型(例如,实质上利用文档中每个用户键击向子系统212发送更新,或者对用户所进行的菜单选择做出反应)。同客户端设备202和主机计算机系统210之间的其它通信一祥,这样的通信可以在网络上通过长距离进行,所述网络可以包括因特网部分。在剪切和粘贴用户界面范例中,其它组件进行操作以允许剪贴板数据通过主机计算机系统210从ー个位置递送至客户端设备202上的另ー个位置或者多个不同的客户端设备。具体而言,在熟悉的剪切/复制和粘贴剪切板用户交互中,剪贴板服务器子系统214通过状态更新218通道与客户端上的剪切板JavaScript库206进行交互,接收用户在其上进行工作的文档的内容,并且将这样的信息(通过相同通道)提供回相同或不同的文档。在所述示例中,文档和剪切板项的主状态驻留于主机计算机服务器系统210上。主机计算机系统210上的子系统212、214诸如可以按照需要,经由远程过程调用相互进行通信以对信息共享进行协调并且维护信息接收的安全和认证。例如,当用户选择项以粘贴到文档中时,剪贴板服务器214可以将针对所述项的数据提供至应用服务器212,应用服务器212可以转而将所述项粘贴至文档中。(应用服务器212可以通过经由应用JavaScript 204追踪用户所进行的键击和其它输入而保持文档模型的状态来了解要添加项的位置)。类似地,剪贴板服务器214可以通过来自应用服务器212的RPC得到文本而从文档获得它。同样,客户端设备202上的组件(例如,用于执行容器文档中的应用的应用JavaScript204,以及容器文档的产物中的剪切板代码)可以相互进行通信以便例如将要从执行应用JavaScript 204的容器文档进行复制的内容送至剪切板JavaScript,其转而将所述内容转发至剪切板服务器214。用于在主要组件之间移动内容的特定机制以及用于这种通过组件的移动的路径可以由要在其中实现系统200的特定环境所指示。客户端设备202上的组件之间的特定交互可以包括来自应用JavaScript 204的、指示用户已经例如通过选择“粘贴”命令而调用了与主机计算机剪切板相关的命令的通信。这样的实现中的应用JavaScript 204可以与剪切板库206进行通信以便从剪切板服务器214获得用户相关剪切板中每个项的快照,所述剪切板服务器214为主机计算机系统210管理这样的信息。可以在系统200中对主机计算机剪切板的当前状态进行更新的方式可以至少作 为周期性处理和按需处理而出现。在周期性处理中,客户端剪切板JavaScript可以请求指示自之前的更新时段起对主机计算机剪切板中的项所进行的变化的信息,或者剪切板服务器214可以推出所述信息。这样的更新可以通过测量自之前的更新起所过去的时间来进行,在已经进行了特定数量的变化时进行,或者在毎次对相关剪切板进行变化时进行。在按需处理中,在用户选择查看并访问项时从剪切板服务器214对这样的项进行更新。例如,用户对粘贴命令的选择可以调用项列表的显示,并且可以因此转而调用从客户端服务器202到剪切板服务器的请求以递送它们的最新版本。在收集这样的信息时,可以在选择菜单上显示图标,以便指示某些其它项即将可用并且正在被处理。图3是示出用于在主机计算机服务中的应用之间共享内容的过程的流程图。总体而言,所述处理描述了主机计算机服务器系统在与对各种文档进行编辑的远程计算机用户,以及希望在文档之间共享内容的远程计算机用户进行交互时可以采取的动作。这样的共享可以通过服务器系统进行,并且在相同设备上的不同会话之间进行(例如,通过关闭设备并再次开启的过程),针对关于用户账户的单次登录在不同设备上的不同会话之间进行,或者甚至在不同设备上的不同账户之间进行。所述示例过程在框302开始,其中应用服务器子系统关于设备用户已经对诸如文字处理文档之类的文档进行的改变而与客户端计算设备进行交互。这样的交互可以以标准方式进行,诸如通过使用web浏览器上的容器文档中执行的JavaScript提供图形用户界面和文档本身,其中所述JavaScript对应用服务器子系统进行寻址。在某些实现中,改变用于文档的模型的每个用户交互(例如,添加、删除字符或对其进行格式设置)实质上可以立即反映在服务器系统上的文档模型的主副本中。在框304,从设备的用户接收诸如剪切或粘贴命令之类的来自用户的与剪贴板相关的操作。这样的选择可以经由熟悉的键盘组合(例如,用于复制的CTRL-C)或者通过用户选择用于应用的菜单中的图标或其它可选择控件来进行。用户随后可以从菜单选择复制/剪切或粘贴操作。在生成菜单时,所述过程可以与剪贴板服务器子系统进行交互。例如,菜单的选择可以调用容器文档内运行的JavaScript代码并且所述代码将转而接收当前处于用户剪贴板中的项列表(来自其它用户的个人或共享项或者二者的组合)的指示,所述JavaScript代码利用设备用户的标识信息对剪贴板服务器系统进行调用。服务器子系统可以提供这样的信息,并且JavaScript代码可以向应用的JavaScript代码提供数据,从而所述信息在应用中的菜单的扩展部分中进行显示。这样的信息还可以包括每个剪贴板项的内容的预览信息,从而用户能够在与菜单选择进行交互时看到内容的预览。在框308,用户从菜单进行选择(或者完成键盘快捷方式),以便指示要向主机计算机剪贴板提供所选择内容或者从其接收所选择内容的意图。这样的选择可以使得剪贴板服务器子系统将内容传递设备上的适当剪贴板JavaScript,并且所述剪贴板JavaScript进而传送所述内容以便包括在使用应用JavaScript的文档中。备选地,剪贴板子系统可以将所述内容传递至应用子系统,该应用子系统转而能够将所述内容添加至文档,或者将所述内容传递至应用JavaScript,所述应用JavaScript可以将所述内容添加至文档,并且随后与应用子系统进行同步,诸如将文档保存回云中。在框310,用户使用应用子系统继续与文档进行交互。因此,例如,用户能够对他们刚才粘贴至文档中的内容重新进行格式设置。内容在此时将是能够存储在客户端和服务器 子系统上,并且能够在那些设备之间频繁协调(例如,以每个用户输入字符一次的量级)的文档模型的一部分。在这样的内容被添加至文档之后,其可能丢失其到其原始文档或者剪贴板的连接。在其它实例中,可以在原始文档和目标文档之间维护链接,从而例如如果内容在原始文档中有所变化,则目标中的相对应内容可以自动变化,或者目标文档的用户可以得到针对原始文档中内容存在变化的通知。同样,如所提到的,用户随后可以选择在ー些点保存经更新的目标,并且文档可以经由应用服务器子系统而被自动保存到主机计算机或服务系统。以这种方式,关于两个文档是否是相同设备的一部分、单个会话的一部分或者处于不同设备以及每个不同时刻,能够方便地从ー个文档向另ー个文档共享内容。图4是示出主机计算机服务器系统中的复制和粘贴操作的流程图。所述过程与关于图3所讨论的相类似,但是示出了可以在ー种实现中提供某些功能的示例组件。那些组件包括在客户端设备上执行的单独应用和剪贴板代码(例如,JavaScript)(其可以对应于图2中的应用JavaScript 204和剪贴板JavaScript库206),以及单独应用服务器和剪贴板服务器子系统(其可以对应于图2的应用服务器212和剪贴板服务器214)。所述处理在框402开始,其中用户选择打开应用以便在其web浏览器中执行。这样的选择使用用户的设备对托管应用服务器的主机计算机服务进行请求(诸如HTTP请求)。包括对某些应用相关JavaScript的调用在内的标记代码可以被递送至客户端。所述代码可以在客户端处执行,并且在浏览器窗口中显示所产生的应用页面(框406)。这样的代码执行可以包括用于应用自身以及应用中所提供的剪贴板的代码调用以及代码执行(虽然ー些或全部剪贴板代码的执行可以被延迟直至用户调用了剪贴板功能)。用户可以随后与应用进行交互,并且数据可以例如使用已知的AJAX技术在应用代码和应用服务器之间进行传递。在框408,用户与应用的交互包括由应用接收来自用户的粘贴命令408。这样的选择可以使得应用代码(在所述示例中)或剪贴板代码(在其它示例中)请求与对应于用户账户的剪贴板相关的信息。如果该请求从客户端设备发送至应用服务器,其可以被转发至剪贴板服务器(框410)。剪贴板服务器随后可以对所述请求进行响应,诸如通过提供数据以便在应用中显示当前处于剪贴板中的项列表(框412)。所述数据可以被传递回客户端(在所述示例中,直接被送至应用代码(虽然在其它示例中送至剪贴板代码),井随后继续送至应用代码)。这样的项列表随后可以作为其剪贴板的表示被显示给用户(框414)。在用户已经在其剪贴板中预期了选项(其可以包括已经被复制到剪贴板中并且可被用户用于粘贴的每个项的可选择指示符)之后,他或她可以选择ー个选项中的ー个ー这里是选择了剪贴板中用户将要粘贴到主机计算机应用中活动的文档中的项(框416)。在所述示例中,选择被发送至剪贴板服务器而不是应用服务器,这是因为剪贴板服务器的任务是向客户端设备提供信息。所述选择可以导致请求( 例如,HTTP请求)被传送,该请求包括特定剪贴板项的标识符以及标识要以其将内容提供至活动应用的格式(诸如MME类型)的标识符(例如,整数)。所述选择还可以被传达至应用服务器(框417),所述应用服务器进而将其提供至剪贴板服务器。剪贴板随后可以向应用提供所选择项的内容(框418)。这样的提供之前可以是针对内容格式设置的修改。这样的修改可以通过查阅定义用于将第一格式的内容变为第二格式(用户所选择的格式或者应用中所编辑的活动文档的内在格式)的内容的规则的映射数据来进行。在某些实施方式中,内容可以被提供至客户端上执行的剪贴板代码(框419),或者可以被提供至应用代码,所述应用代码随后可以将内容并入到正在编辑的活动文档中(框420)。接着,用户可以对其它内容进行高亮显示,并且可以从菜单或键盘组合选择复制命令(框422)。所选择的内容随后可以被自动传递至剪贴板代码(框424)并且被转发至剪贴板服务器(框424),所述剪贴板服务器可以对数据进行处理并且将内容添加至剪贴板。例如,剪贴板服务器可确定用于内容的标签、内容所来自的应用类型(例如,以便能够在未来菜单中示出项时显示图标),以及用于内容的其它元数据(例如,其是电子表格的X乘I部分)。在用户选择从应用取得其它内容并且将其放在她的剪贴板上时,或者取走剪贴板的内容并将其放到她所运行的应用中时,所述过程随后可以继续。当进行发布的用户已经指示新添加到剪贴板的内容应用于其它用户进行共享时,这样的交互可以跨多个会话、多个不同计算机和计算机类型(例如,台式机、膝上计算机、智能电话等)以及跨不同用户进行。图5A和5B是主机计算机服务器系统中剪贴板交互的示例截屏。图5A示出了来自电子表格文档的复制操作的示例,而图5B则示出了到文字处理文档中的粘贴命令。在图5A中,用户已经创建了简单的两列电子表格,并且已经对所述电子表格的四行进行了高亮显示一标题行和三个数据行。用户还已经选择了电子表格应用的顶部菜单中的剪切板控件,其可以在web浏览器的呈现窗格中进行呈现。图标示出了云中的文件夹,该文件夹表示主机计算机服务(云板)所提供的剪贴板。下拉菜单被示出为产生于用户的选择,并且为用户的选择示出了四个选项。顶部选择是复制从用户正处于编辑过程中的电子表格所选择的单元范围。这样的上下文由选择上的标记“Copy cellrange(4rowsX2cols) ”所提供。由用户所进行的这样的选择将导致针对所述选择的条目出现在用户对其剪贴板的后续访问上,并且出现在来自复制到服务系统的剪贴板部分的电子表格的内容中,所述服务系统提供应用和剪贴板功能以及格式设置以指示标题为粗体字体,并且所有单元为中心对齐的特定字体、特定字体大小。而且,可以在其出现在电子表格中的基础表格中复制公式。其余的四个选择表示已经被提供给用户的剪贴板并且可被用户粘贴到电子表格中的内容。剪贴板客户端代码或服务器代码可以具有之前所确定的能够添加至电子表格的内容类型,并且可以已经将用户剪贴板中不兼容的项滤除。在所述示例中,可用于粘贴至电子表格中的项是为“The quick brown fox”或以其开头的文本;图像(在一些示例中,是标签旁的图标)可以是已经被剪贴板服务器子系统所生成并提供的实际图像的缩略图;明显最初来自文字处理文档的2 X 3表格;以及以单元条目“ 1/21/2009 ”开始的2 X 2单元范围。对各个项的描述可能与这里所示出的有所不同,但是一般可以以提供与特定项相对应的项的一些实质性字符指示的方式进行选择。图5B示出了已经从文字处理应用中的菜单进行的以便将内容粘贴到用户所编辑的文字处理文档中的类似选择。这里,复制命令简单地为“Copy to Cloudboard”,并且对于从云板进行粘贴可以有七种选择。在所述示例中,用户已经将其指针在第一项上暂时悬停,所述第一对象是题为“Football weekly”的电子表格文档的4X12部分。结果,剪贴板中所述项的内容的预览被显示在菜单上的弹出窗口中。由于其相对小的大小以及为了保存计算资源,这样的显示可以省略格式设置、图像或其它信息。因此如所示出的,用户能够快速选择要复制到剪贴板的内容以及要从剪贴板粘贴的内容,并且可以从相关应用自身这样做,从而用户的界面与用户在基于桌面的生产カ应用中的内容复制的界面非常相似。
这里的交互还可以利用可经由操作系统另外由用户所用的剪贴板进行协调。例如,用户所复制的内容可以同时被提供至用户的操作系统剪贴板以及云板(虽然云板可以存储已经在其它计算会话中选择或者从不同计算设备选择的附加项)。同样,用户所执行的某些复制和粘贴操作可以与基于操作系统的剪贴板进行交互,而其它则可以与云板进行交互。例如,浏览器中执行的主机计算机应用的菜单中的选择可以调用云板,而键盘组合(例如,CTRL-C、CTRL-X和CTRL-V)可以调用基于操作系统的剪贴板或两个剪贴板。图6示出了可被用来实现这里所描述的技术的计算机设备600和移动计算机设备650的示例。计算设备600意在表示各种形式的数字计算机,诸如膝上计算机、台式机、エ作站、个人数字助理、服务器、刀锋服务器、主机计算机和其它适当计算机。计算设备650意在表示各种形式的移动设备,诸如个人数字助理、移动电话、智能电话和其它类似的计算设备。此外,计算设备600或650可以包括通用串行总线(USB)闪存驱动器。所述USB闪存驱动器可以存储操作系统和其它应用。USB闪存驱动器可以包括输入/输出组件,诸如无线传送器或者可以插入另ー个计算设备的USB端ロ的USB连接器。这里所示出的组件、其连接和关系以及其功能仅意在进行示例,而并非意在对本文中所描述和/或要求保护的发明的实现进行限制。计算设备600包括处理器602、存储器604、存储设备606、连接到存储器604和高速扩展端ロ 610的高速接ロ 608,以及连接到低速总线614和存储设备606的低速接ロ 612。每个组件602、604、606、608、610和612使用各种总线进行互连,并且可以安装在共用主板上,或者以其它适宜方式进行安装。处理器602能够处理指令以便在计算设备600内执行以在诸如耦合到高速接ロ 608的显示器616的外部输入/输出设备上显示用于⑶I的图形信息,所述指令包括存储在存储器604中或者存储设备606中的指令。在其它实现中,如果适宜,可使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,多个计算设备600可以相连,每台设备提供部分必要操作(例如,作为服务器组、刀锋服务器分组或多处理器系统)。存储器604存储计算设备600内的信息。在一种实现中,存储器604是ー个或多个易失性存储单元。在另ー实现中,存储器604是ー个或多个非易失性存储单元。存储器604还可以是其它形式的计算机可读介质,诸如磁盘或光盘。存储设备606能够为计算设备600提供大型存储。在一种实现中,存储设备606可以是或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、磁带设备、闪存或其它类似固态存储设备、或者设备阵列,包括存储域网络或其它配置中的设备。计算机程序产品可切实实现在信息载体中。所述计算机程序产品还可包含指令,当被执行时,所述指令执行诸如以上所描述的ー个或多个方法。所述信息载体是计算机或机器可读介质,诸如存储器604、存储设备606、或处理器602上的存储器。高速控制器608管理用于计算设备600的带宽密集操作,而低速控制器612管理较低带宽密集的操作。这样的功能分配仅是示例性的。在一种实现中,高速控制器608耦 合到存储器604、显示器616 (例如,通过图形处理器或加速器),并且耦合到可接受各种扩展卡(未示出)的高速扩展端ロ 610。在所述实现中,低速控制器612耦合到存储设备606和低速扩展端ロ 614。可以包括各种通信端ロ(例如,USB、蓝牙、以太网、无线以太网)的低速控制端ロ 614可耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪,或者例如通过网络适配器耦合到诸如交換机和路由器之类的联网设备。如图所示,计算设备600能够以各种不同形式来实现。例如,其可以实现为标准服务器620,或者这种服务器分组中的多个服务器。其还可以被实现为机架式服务器系统624的一部分。此外,其还可以在诸如膝上计算机622的个人计算机中实现。备选地,来自计算设备600的组件可以与诸如设备650的移动设备(未示出)中的其它组件相结合。每个这样的设备可包含ー个或多个计算设备600、650,并且整个系统可由多个彼此通信的计算设备600、650所构成。除其它组件之外,计算设备650包括处理器652、存储器664、诸如显示器654的输入/输出设备、通信接ロ 666和收发器668。设备650还可提供诸如微驱动器或其它设备的存储设备以提供附加存储。每个组件650、652、664、654、666和668使用各种总线进行互连,并且若干组件可安装在共用主板上或者以其它适宜方式进行安装。处理器652能够执行计算设备650内的指令,包括存储在存储器664中的指令。所述处理器可被实现为包括単独且多个的模拟和数字处理器的芯片的芯片组。例如,所述处理器可提供设备650的其它组件的协同,诸如控制用户接ロ、设备650所运行的应用程序以及设备650所进行的无线通信。处理器652可以通过耦合到显示器654的控制接ロ 658和显示接ロ与用户进行通信。显示器654例如可以是TFT IXD (薄膜晶体管液晶显示器)显示器或OLED (有机发光ニ极管)显示器,或者其它适当的显示技木。显示接ロ 656可以包括用于驱动显示器654向用户显示图形和其它信息的适当电路。控制接ロ 658可以从用户接收命令并且对其进行转换以便向处理器652进行提交。此外,可提供与处理器652进行通信的外部接ロ 662,从而使得设备650能够与其它设备进行近域通信。例如,外部接ロ 662在一些实现中可提供有线通信,或者在其它实现中提供无线通信,并且也可使用多个接ロ。
存储器664存储计算设备650内的信息。存储器664可以实现为ー个或多个计算机可读介质或媒体、一个或多个易失性存储器単元或者一个或多个非易失性存储器単元。也以提供扩展存储器674并通过扩展接ロ 672连接到设备650,例如,所述扩展接ロ 672可以包括SIMM (单列存储组模)卡接ロ。这样的扩展存储器674可为设备650提供额外的存储空间,或者还可以为设备650存储应用程序或其它信息。特别地,扩展存储器674可以包括指令以执行或补充以上所描述的处理,并且还可以包括安全信息。例如,扩展存储器674由此可被提供作为设备650的安全模块,并且可利用允许对设备650进行安全使用的指令进行编程。此外,可经由SIMM卡提供安全应用程序以及附加信息,诸如以不可破坏的方式在SIMM卡上设置标识信息。例如,如以下所描述的,所述存储器可以包括闪存和/或NVRAM存储器。在ー种实现中,计算机程序产品切实实现在信息载体中。所述计算机程序产品可包含指令,当被执行时,所述指令执行诸如以上所描述的ー个或多个方法。所述信息载体是计算机或机器可读 介质,诸如存储器664、扩展存储器674、或者可例如通过收发器668或外部接ロ 662上接收的处理器652上的存储器。设备650可通过通信接ロ 666进行无线通信,在必要情况下,所述通信接ロ 666包括数字信号处理电路。通信接ロ 666可在各种模式或协议下提供通信,除其它之外,所述模式或协议诸如GSM语音呼叫、SMS、EMS或MMS消息发送、CDMA、TDMA, PDC、WCDMA, CDMA2000或GPRS。例如,这种通信可通过射频收发器668进行。此外,诸如可使用蓝牙、WiFi或其它这样的收发器(未示出)进行短范围通信。此外,GPS (全球定位系统)接收器模块670可为设备650提供附加的导航和位置相关的无线数据,其可由设备650上运行的应用程序适当使用。设备650还使用音频编解码器660进行可听通信,所述音频编解码器660接收来自用户的话音信息并且将其转换为可用的数字信息。音频编解码器660同样可以诸如通过扬声器为用户生成可听声音,例如在设备650的听筒中。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括设备650上运行的应用程序所生成的声音。如图所示,计算设备650可以以多种不同方式来实现。例如,其可以实现为移动电话660。其还可以实现为智能电话682、个人数字助理或其它类似移动设备的一部分。这里所描述的系统和技术的各种实施方式可以以数字电路、集成电路、专门设计的ASIC(应用特定集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实现可以包括一个或多个计算机程序中的实现,所述计算机程序可在包括至少ー个可编程处理器的可编程系统上执行和/或解释,所述可编程系统可以为专用或通用,其耦合以从存储设备、至少ー个输入设备以及至少ー个输出设备接收数据和指令并且向其传送数据和指令。这些计算机程序(也称作程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且能够以高级程序和/或面向对象编程语言来实现,和/或以汇编/机器语言来实现。如这里所使用的,术语“机器可读介质”、“计算机可读介质”是指用来向可编程处理器提供机器指令和/或数据的任意计算机程序产品、装置和/或设备(例如,磁碟、光盘、存储器、可编程逻辑设备PLD),其包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指被用来为可编程处理器提供机器指令和/或数据的任意信号。为了提供与用户的交互,这里所描述的系统和技术可在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户能够通过其为计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以为任意形式的传感器反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且来自用户的输入可以以任意形式接收,包括声音、话音或触觉输入。这里所描述的系统和技术可在计算系统中实现,所述计算系统包括后端组件(例如,数据服务器),或者其包括中间件组件(例如,应用服务器),或者其包括前端组件(例如,具有用户能够通过其与这里所描述的系统和技术的实现进行交互的图形用户节目或网络浏览器的客户端计算机),或者这些后端、中间件或前端组件的任意組合。所述系统的组 件可通过任意形式的介质或数字数据通信(例如,通信网络)进行互连。通信网络的示例包括局域网(LAN)、广域网(WAN)和因特网。所述计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器的关系源自于在各自计算机上运行的计算机程序并且具有彼此的客户端-服务器关系。已经对多个实施例进行了描述。然而,将要理解的是,可以进行各种修改。例如,如果所公开技术的步骤以不同顺序执行,如果所公开系统中的组件以不同方式进行组合,或者如果组件被其它组件所替代或补充,可以实现有利結果。因此,其它实施例处于以下权利要求的范围之内。
权利要求
1.一种计算机实施的用于在计算机应用之间共享数据的方法,所述方法包括 在主机计算机服务器系统的应用服务器子系统处,从远离所述主机计算机服务器系统的第一计算设备接收与所述应用服务器子系统所提供的电子文档进行交互的命令; 在所述主机计算机服务器系统处,接收用于从所述电子文档向电子剪贴板复制内容的命令; 在所述主机计算机服务器系统的、独立于所述应用服务器子系统的剪贴板服务器子系统处,存储表示所述内容的数据; 接收针对表示所述内容的所存储数据的请求;以及 将表示所述内容的所述数据从所述剪贴板服务器子系统提供至第二计算设备。
2.根据权利要求I的方法,其中所述第二计算设备不同于所述第一计算设备。
3.根据权利要求I的方法,进ー步包括 通过确定第二客户端设备已经向与第一客户端设备向其进行认证的用户账户相匹配的用户账户进行了认证,确定所述第二计算设备已经有权访问表示所述内容的所述数据。
4.根据权利要求I的方法,进ー步包括 通过在所述数据存储在所述主机计算机系统处时访问所述第一计算设备向其进行了认证的用户账户,并且定位所述第二计算设备向其进行认证的用户账户的标识符,确定所述第二计算设备有权访问表示所述内容的所述数据。
5.根据权利要求I的方法,其中所述应用服务器子系统与所述第一计算设备上执行的浏览器的容器文档进行交互,并且所述剪贴板服务器子系统与所述第二计算设备上执行的浏览器的容器文档的产物进行交互,所述产物与所述第一计算设备上执行的所述浏览器的所述容器文档相关。
6.根据权利要求I的方法,进ー步包括 从所述第一计算设备接收用于示出剪贴板的所述内容的命令,并且将表示剪贴板中被确定为对应于所述第一计算设备已经向其进行了认证的用户账户的每个项的数据从所述剪贴板计算机服务器子系统递送至第一客户端设备。
7.根据权利要求6的方法,进ー步包括 从所述第一计算设备接收将来自所述剪贴板计算机服务器子系统的内容粘贴到文档中的命令,以及将所述内容从所述剪贴板计算机服务器子系统提供至在所述内容待粘贴到其中的容器文档内进行操作的产物要素。
8.根据权利要求7的方法,进ー步包括 从所述第一计算设备接收内容格式指示符,并且在将所述内容提供至所述产物要素之前将所述内容变换为与所述内容格式指示符相对应的格式。
9.根据权利要求I的方法,其中所述电子文档从由文字处理文档、电子表格、演示文档和电子邮件消息所构成的群组中进行选择。
10.根据权利要求I的方法,进ー步包括 接收示出剪贴板项的预览的命令,以及响应于接收到所述示出预览的命令,提供项的内容的缩略图。
11.一种计算机实施的用于在主机计算机服务上的计算机应用之间共享数据的系统,所述系统包括ー个或多个web服务器,其被配置为通过因特网与远离所述主机计算机服务的计算设备进行交互; 应用服务器子系统,其通过所述ー个或多个web服务器提供用于在所述计算设备的浏览器上显示容器文档中的交互式计算机应用的数据; 剪贴板服务器子系统,其存储与所述主机计算机服务的用户账户相关的内容,并且被编程为向所述容器文档内的产物要素提供所述内容,其中所述内容被格式化以包括在所述交互式计算机应用中。
12.根据权利要求11的计算机实施的系统,其中所述应用服务器子系统被编程为在所述内容已经被添加至在所述容器文档中进行编辑的所述文档之后,利用在所述容器文档中进行编辑的所述文档来保存所述内容。
13.根据权利要求11的计算机实施的系统,进一歩包括认证服务器子系统,其被编程为将用户账户与每个所述计算设备进行关联,以及向所述剪贴板服务器子系统提供用于确定要与每个剪贴板条目进行关联的用户账户的用户账户标识符。
14.根据权利要求13的计算机实施的系统,其中所述认证服务器子系统被进ー步编程为与所述剪贴板服务器子系统进行协作,以标识除了对应于特定剪贴板的用户之外的用户,所述用户可以访问来自所述特定剪贴板的ー个或多个内容项。
15.根据权利要求14的计算机实施的系统,其中通过分析由对应于所述特定剪贴板的用户所准备的用户列表,确定用户针对特定剪贴板中的内容项的可访问性。
16.根据权利要求11的计算机实施的系统,其中所述应用服务器子系统被编程为与第一计算设备上执行的浏览器的容器文档进行交互,并且所述剪贴板服务器子系统被编程为与第二计算设备上执行的浏览器的容器文档的产物要素进行交互,其中所述第二计算设备上执行的所述浏览器的容器文档与所述第一计算设备上执行的所述浏览器的容器文档相关。
17.根据权利要求16的计算机实施的系统,其中所述剪贴板服务器子系统进ー步被编程为从所述第一计算设备接收用于示出剪贴板的所述内容的命令,并且作为响应,将表示剪贴板中被确定为对应于所述第一计算设备已经向其进行了认证的用户账户的每个项的数据从所述剪贴板计算机服务器子系统递送至所述第一客户端设备。
18.根据权利要求17的计算机实施的系统,其中所述剪贴板服务器子系统进ー步被编程为从第一容器文档接收将来自所述剪贴板的内容粘贴到所述第一容器文档内的文档中的命令,以及将来自所述剪贴板的所述内容提供至在所述第一容器文档内进行操作的产物要素。
19.根据权利要求11的计算机实施的系统,其中所述剪贴板服务器子系统进ー步被编程为接收内容格式指示符,并且在向产物要素提供所述内容之前,将所述内容变换为对应于所述内容格式指示符的格式。
20.一种计算机实施的用于在主机计算机服务上的计算机应用之间共享数据的系统,所述系统包括 ー个或多个web服务器,其被配置为通过因特网与远离所述主机计算机服务的计算设备进行交互; 应用服务器子系统,其通过所述ー个或多个web服务器提供用于在所述计算设备的浏览器上显示容器文档中的交互式计算机应用的数据; 用于从在所述应用服务器子系统上执行的第一应用接收内容,并且用于将所述接收的内容提供至在所述应用服务器子系统上执行的第二应用的装置。
全文摘要
讨论了一种计算机实施的在计算机应用之间共享数据的方法。所述方法包括在主机计算机服务器系统的应用服务器子系统处从远离所述主机计算机服务器系统的第一计算设备接收与所述应用子系统所提供的电子文档进行交互的命令,并且在主机计算机服务器系统处接收用于从所述电子文档向电子剪贴板复制内容的命令。所述方法还包括在主机计算机服务器系统的、独立于应用服务器子系统的剪贴板服务器子系统处存储表示所述内容的数据,接收针对表示所述内容的所存储数据的请求,以及将表示所述内容的数据从剪贴板服务器子系统送至第二计算设备。
文档编号G06F15/16GK102870103SQ201180016404
公开日2013年1月9日 申请日期2011年2月16日 优先权日2010年2月16日
发明者B·玛戈林 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1