CN109328339A - 应用间通信和集成代理 - Google Patents
应用间通信和集成代理 Download PDFInfo
- Publication number
- CN109328339A CN109328339A CN201780037626.1A CN201780037626A CN109328339A CN 109328339 A CN109328339 A CN 109328339A CN 201780037626 A CN201780037626 A CN 201780037626A CN 109328339 A CN109328339 A CN 109328339A
- Authority
- CN
- China
- Prior art keywords
- application
- message
- data
- user
- networking client
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 130
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000006855 networking Effects 0.000 claims description 139
- 230000004044 response Effects 0.000 claims description 58
- 238000000034 method Methods 0.000 claims description 44
- 230000001737 promoting effect Effects 0.000 claims description 4
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000012790 confirmation Methods 0.000 description 16
- 230000015654 memory Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000009434 installation Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/169—Annotation, e.g. comment data or footnotes
-
- 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/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- 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/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
提出了一种用于在同一计算机上运行的应用之间的中间通信的系统。该系统通过远程服务器上的数据代理在第一应用与第二应用之间路由通信,以避免应用之间的直接通信。第一应用可以是桌面应用,诸如文字处理应用,其具有安装的附加项以促进通过数据代理进行通信。第二应用可以是网络浏览器,其包括使用网络浏览器的标准功能性实现的网络客户端,而没有应用特定的插件。数据代理在远程服务器上操作,以接收和引导应用之间的通信。通过消除应用之间的直接通信,数据代理通过利用计算机内已经存在的通信协议和能力来改进系统安全性和可靠性。
Description
技术领域
本公开总体上涉及用于软件应用之间的中间通信的系统和方法。
背景技术
存在各种软件程序和平台以允许用户与文档和其它文件交互。这些包括文字处理应用、文档查看应用、电子表格应用和其它。在一些情况下,用户可能需要在不同程序之间复查文档和复制信息,这在许多条件下可以通过简单复制和粘贴命令来实现。然而,在一些情况下,期望生成跨多个应用连接数据的链接。作为示例,用户可能希望提供到报告中引用的与从文档复制的文本有关的文档的一部分的链接。为了建立和跟踪这样的应用间链接,通常将自定义附加项安装到相关软件应用中的每一个中。自定义附加项促进在同一计算机上操作的应用之间的直接通信。出于安全性考虑,这样的自定义附加项必须典型地由具有对它们要被安装到其上的每台计算机的管理访问的授权人员来安装。附加地,这样的附加项通过为由恶意软件或未授权用户的攻击创建新的进入点而固有地创建新的安全性漏洞。除非安装了附加的安全性更新或补丁,否则这些安全性漏洞通常会随着时间而变得更糟,从而需要授权人员的进一步参与。
发明内容
如本文中进一步描述的那样,本公开总体上涉及用于通过网络通过远程服务器上的数据代理使得能够进行计算设备上的应用之间的通信的系统、方法和存储指令的非暂时性计算机可读介质。在各种实施例中,描述了包括服务器和计算设备的系统。服务器和计算设备中的每一个包括一个或多个处理器和一个或多个存储器以存储程序和其它数据,其可以包括一个或多个数据库。服务器和计算设备中的每一个还可以包括使得能够通过计算机网络进行电子通信的通信模块。为了促进在同一计算设备上操作的第一应用和第二应用之间的电子通信,服务器可以通过使用服务器的一个或多个处理器执行存储在服务器的一个或多个存储器中的指令来实现数据代理。
数据代理可以经由服务器的通信模块从在客户端计算设备上执行的第一应用的应用附加项部件接收用户指示的数据,并使得服务器将包括与所接收数据有关的信息的消息发送到由响应于所接收数据经由通信模块在同一客户端计算设备上执行的第二应用实现的网络客户端应用。该消息可以使得网络客户端应用向客户端计算设备的用户显示与所接收数据有关的信息。附加地,第一应用的应用附加项部件和第二应用的网络客户端应用可以适配成仅通过数据代理彼此通信。在特别优选的实施例中,网络客户端应用可以由网络浏览器在没有特定于网络客户端应用的插件的情况下实现。在进一步的实施例中,数据代理可以被配置成使用多个实时通信类型中的任何一个与第二应用通信,所述多个实时通信类型可以包括:WebSocket、服务器发送的事件、永久帧或长轮询。数据代理还可以被配置成通过选择多个实时通信类型中的一个来与第二应用通信。
数据代理还可以被配置成经由通信模块接收由用户从第二应用的网络客户端输入的用户输入数据,并且将包括与用户输入数据相关联的信息的第二消息发送到第一应用的应用附加项部件。在一些实施例中,用户指示的数据可以与经由第一应用访问的文档的一部分相关联,并且用户输入数据可以包括与文档的该部分相关联的评论,在这样的情况下,第二消息可以包括将文档的该部分与评论链接的信息。数据代理还可以被配置成将关于评论的信息存储在数据库中的条目中,并且将文档的该部分链接到评论的信息可以包括到数据库中的条目的链接。在进一步的实施例中,包括与所接收数据有关的信息的消息可以包括使得网络客户端向用户呈现窗口的指令,该窗口可以被配置成接受来自用户的评论。第二消息还可以使得第一应用的附加项部件将链接的指示添加到经由第一应用访问的文档。这样的链接可以由第一应用的用户导航以获得可以包括评论的附加信息。
计算设备可以在第一应用的附加项部件处从第一应用的用户接收使用该第一应用访问的文档的一部分的指示。然后,第一应用的附加项部件可以使得计算设备生成包括与文档的该部分相关联的信息的第一消息,并且经由通信网络将第一消息从第一应用的附加项部件传输到服务器的数据代理。计算设备可以在第二应用的网络客户端处从服务器的数据代理接收对应于第一消息的第二消息,并且基于第二消息由第二应用的网络客户端向用户显示信息。文档的该部分的指示可以包括在文档的该部分中的数据的第一应用内的选择。在这样的情况下,第一和第二消息可以包括所选择数据的表示(其可以包括所选择数据的精确副本),并且由第二应用的网络客户端向用户显示的信息可以包括包括在第二消息中的所选择数据的表示。
第一应用的应用附加项部件和第二应用的网络客户端应用可以适配成仅通过数据代理进行通信。附加地,网络客户端应用可以由第二应用在没有特定于网络客户端应用的插件的情况下实现。在一些实施例中,第二应用可以是网络浏览器,并且第一应用可以是以下之一:文字处理应用、电子表格应用、演示应用、另一文档查看应用或图像查看应用。可以利用第一应用的应用编程接口(API)将附加项部件安装为对第一应用的添加。
在一些实施例中,计算设备还可以接收由用户在网络客户端应用处输入的用户输入数据。用户输入数据可以包括与文档的部分相关联的评论。响应于接收到用户输入数据,计算设备可以生成包括由网络客户端应用与用户输入数据相关联的信息的第三消息,并且将第三消息从网络客户端应用传输到服务器的数据代理。然后,计算设备可以从第一应用的应用附加项部件处的数据代理接收对应于第三消息的第四消息。第四消息可以包括到关于评论的信息的链接。响应于接收到第四消息,计算设备还可以由第一应用的附加项部件向文档的部分添加链接的指示。
在更进一步的实施例中,可以由计算机实现的方法来促进通信,包括以下步骤:在客户端计算机上执行的第一应用的附加部件与服务器上执行的数据代理之间通过通信网络建立第一通信连接;在服务器上执行的数据代理与在客户端计算机上执行的第二应用的网络客户端之间通过通信网络建立第二通信连接;从(i)经由第一通信连接的附加部件或(ii)经由第二通信连接的网络客户端之一发送消息到数据代理,所述消息包括与指示关于经由第一应用访问的文档的一部分的评论的用户输入有关的信息;在(i)经由第二通信连接的网络客户端或(ii)经由第一通信连接的附加部件中的另一个处从数据代理接收消息;以及记录文档的该部分和评论之间的链接。第一应用的应用附加项部件和第二应用的网络客户端应用可以被配置成仅通过数据代理进行通信。附加地,第二应用可以是网络浏览器,并且网络客户端应用可以由网络浏览器在没有特定于网络客户端应用的插件的情况下实现。
该概述必要地限于本文中描述的本发明的某些关键方面。附加的或可替换的部件、方面、功能或动作可以包括在各种实施例中,如下面进一步描述的那样。
附图说明
下面描述的附图描绘了本文中公开的应用、方法和系统的各种方面。应当理解的是,每个附图描绘了所公开的应用、系统和方法的特定方面的实施例,并且附图中的每个旨在与其可能的实施例一致。此外,在任何可能的情况下,以下描述指的是包括在以下附图中的参考标号,其中多个附图中描绘的特征利用一致的参考标号标明。
图1图示了根据所描述的实施例的示例性应用间通信系统的框图。
图2图示了桌面应用附加项与网络客户端之间的通信的序列图。
图3图示了网络客户端与桌面应用附加项之间的通信的序列图。
图4图示了根据所描述的实施例的示例性链接生成过程的序列图。
图5图示了根据所描述的实施例的示例性链接导航过程的序列图。
图6图示了根据所描述的实施例的示例性通信代理方法的流程图。
图7图示了用于实现如本文中所述的方法的示例性计算系统的框图。
具体实施方式
本文中公开的本发明的以下描述描述了中间通信系统和方法的各种实施例。该系统和方法通过远程服务器上的数据代理促进计算设备上的两个或更多应用之间的通信。因此,应用经由计算机网络与数据代理进行通信,但应用不直接相互通信。这具有与网络管理和安全性有关的许多优点。因为应用不直接通信,所以它们可以利用已经安装在计算设备上的标准通信协议和例程。这减少了设立和维护时间,特别是在计算设备的终端用户不具有安装程序所需的管理权限的情况下。附加地,使用现有的通信通道通过避免在系统内创建可能被攻击的新目标点而限制了对安全性威胁的暴露。而且,广泛使用的通信协议的使用通过避免创建自定义安全性补丁来解决每个新的安全性威胁的需要而进一步增强了安全性。
示例性的应用间通信系统
图1图示了示例性应用间通信系统100的框图,示出了用于促进在计算设备上运行的应用之间的中间通信的系统的某些关键特征。示例性系统100包括设置在计算设备110内的前端部件102和设置在服务器140内的后端部件104。计算设备110和服务器140通信地连接以经由网络130发送和接收数据。计算设备110执行多个软件应用,其仅通过在服务器140上运行的数据代理150实时地(即,没有超出由数据处理和传输引起的普通延迟的显著延迟)进行通信。因此,第一应用与第二应用之间的通信必须首先通过网络130发送到服务器140,然后通过网络130从服务器140返回。下面参考图7讨论关于系统100的部件的附加信息。
如系统100的示例性实施例中所图示的那样,计算设备110可以实现两个或更多软件应用、程序或例程。尽管这些可以包括各种类型的软件,但是示例性实施例图示了具有桌面应用120和网络浏览器124的优选实施例。桌面应用120可以是在计算设备110上运行的任何类型的程序或应用,诸如文字处理程序、电子表格程序、文档演示程序、文档查看程序或图像查看程序。如果计算设备110是使用移动操作系统(例如,Apple Inc.的iOS®或GoogleInc.的Android®操作系统)的移动设备,则桌面应用120可以是在移动设备上操作的移动应用。
桌面应用120可以包括附加项部件122,其向桌面应用120添加附加功能性。附加功能性可以包括访问外部数据源、在桌面应用120内执行数据处理、创建到或来自桌面应用120内的数据的数据连接、与服务器140上的远程数据应用152交互,或者不包括在没有附加项部件122的桌面应用120中的其它功能。附加项部件122包括涉及将到或来自桌面应用120的数据传达到另一应用或程序的某个功能。该通信功能可以包括(间接地)与在计算设备110上运行的另一应用(诸如网络浏览器124)通信。该通信功能还可以包括与在服务器140上运行的应用(诸如数据应用152)通信。无论通信功能如何,附加项部件122仅通过服务器140的数据代理150与另一应用或程序传达数据。
与下面讨论的网络客户端124不同,可能需要在使用之前将附加项部件122安装为对计算设备110上的桌面应用120的添加。附加项部件122可以被配置为经由桌面应用120的应用程序接口(API)与桌面应用120对接,该应用程序接口(API)准许直接访问桌面应用120内的一些数据和操作。对这样的API的使用准许在桌面应用120内的附加项部件122的较充分的集成。因为安装可能需要对桌面应用120或计算设备110的其它程序(诸如操作系统)的添加或调整,所以附加项部件122的安装可能需要安全性或管理特权。因此,附加项部件122(以及对其的任何更新、升级或补丁)可以由授权的网络管理员或计算机技术人员而不是由终端用户安装在客户端设备110上。虽然这样的安装可能需要附加的设立时间和多个系统用户的协调,但是将附加项部件122直接集成到桌面应用120的优点和这样的安装的相对不频繁可以证明这样的附加的努力是合理的。
在系统100的示例性实施例中,在计算设备110上还实现网络浏览器124。网络浏览器124可以是在计算设备110上安装和运行的单独程序或应用,包括通用网络浏览器程序或能够利用标准万维网协议和格式来解释和呈现内容的专用应用。在各种实施例中,网络浏览器124可以集成到计算设备110的操作系统中,或者可以是在计算设备110上运行的单独程序或应用。尽管在本文中描述为网络浏览器以更清楚地图示系统和方法的配置和操作,但是网络浏览器124可以是任何类似的通用或专用应用或程序,其通过计算机通信网络与数据通信一起为用户提供数据输入和输出。例如,在计算设备110上运行的专用客户端应用可以被配置成与在服务器140上运行的数据应用152对接以访问基于服务器的数据应用152,其可以存储和处理从多个用户或其它数据源接收的数据。
网络浏览器124还可以实现经由网络130与服务器140通信的网络客户端126。网络客户端126可以实现为网络浏览器124的例程或子例程,其由网络浏览器124特别地启动以与数据代理150通信,或者通常在网络浏览器124操作时操作。网络客户端126可以打开或占用网络浏览器126的窗口的全部或部分,以向计算设备110的用户呈现信息或从计算设备110的用户接收信息。在一些实施例中,网络客户端126可以在网络浏览器124内操作为网络浏览器124的功能性的特定实例。在进一步的实施例中,网络客户端126可以使用到网络浏览器124的通用插件或添加来实现,所述插件诸如JavaScript插件。网络客户端126可以是网页或网络表、由网络浏览器124或插件运行的脚本或在网络浏览器124内操作的类似软件部件。
然而,重要的是要注意,网络客户端126由网络服务器124在没有到特定于网络客户端126的网络服务器124的插件或其它安装的添加的情况下实现。代替地,网络客户端126使用网络浏览器124的基本功能性或通常安装的插件来操作,该插件除了与如本文中所描述的数据代理150的通信之外还具有广泛的其它用途。通过利用网络浏览器124的预先存在的能力(在一些实施例中,包括已经安装在计算设备110上的广泛使用的插件的能力),系统100避免了安装自定义插件、附加项或程序中所涉及的安全性和权限问题。如上所述,程序、附加项或插件的安装可能需要安全性或管理权限,这些权限可能限于管理员或技术人员。通过使用已经安装在计算设备110上的程序,网络客户端126促进与数据代理150的通信,并通过其与附加项部件122在不需要安装与网络浏览器124有关的自定义软件程序、应用、例程、附加项或插件的情况下进行通信。这减少了由系统所需的安全性风险和维护时间。
附加项部件122和网络客户端126都经由网络130与服务器140通信。尽管示出了一个服务器140,但是可以使用一个或多个服务器140来促进附加项部件122与网络客户端126之间的通信。服务器140实现数据代理150以通过网络130发送和接收数据。数据代理150在服务器140与附加项部件122和网络客户端126中的每一个之间既发送又接收数据。在一些实施例中,数据代理150可以附加地与存储在服务器140上或通信地连接到服务器140的数据库146通信,以记录或访问数据。在一些实施例中,数据代理150可以是数据应用152的一部分,或者数据代理150可以被配置成与这样的数据应用152通信。其它实施例可以省略数据应用152,同时将数据代理150维持为本发明的关键方面。这样的数据应用150可以是软件应用或平台,其接收、存储、处理和/或呈现用于任何多种目的的数据,诸如本文中其它地方所描述的那样。在一些实施例中,数据应用152可以基于在数据代理150处接收的消息来处理数据库访问和操作。例如,数据应用152可以促进复制或链接在桌面应用120中打开的文档的部分以用于存储在数据库146中以及在网络浏览器124中进行呈现或修订。
数据代理150通过经由网络130接收从这些部件之一(即,附加项部件122或网络客户端126)传输的消息并经由网络130将对应的消息传输到另一部件(即,网络客户端126或附加项部件122)来促进附加项部件122与网络客户端126之间的通信。例如,数据代理150可以接收由附加项122发送的消息,并将对应的消息发送到网络客户端126。由数据代理150发送的对应消息可以基于接收消息而生成,或者对应的消息可以简单地是将接收到的消息的副本重传到另一个部件。消息可以包括由计算设备110的用户选择或输入的数据,以及使得由附加项部件122、网络客户端126或数据应用152采取某些动作的命令。尽管在同一计算设备110上实现,但是附加项部件122和网络客户端126仅通过数据代理150彼此通信。在一些实施例中,附加项部件122或网络客户端126可以通过网络130与服务器140或其它远程服务器(未示出)的其它应用或数据源通信。在其它实施例中,附加项部件122和/或网络客户端126可以通过数据代理150仅与任何其它应用或数据源通信。
为了使得能够在附加项部件122与网络客户端126之间通信,数据代理150可以使用一个或多个实时通信协议实现为在服务器140上运行的应用。如上文所指出的那样,数据代理150可以类似地是在服务器140上运行的数据应用152的例程或过程。数据代理150优选地利用基于事件的框架,以通过响应于接收指示触发事件的消息将消息推送到计算设备110来提供附加项部件122与网络客户端126之间的实时控制和通信。在一些实施例中,数据代理150可以被配置为使用多种通信类型,诸如WebSocket、服务器发送的事件、永久帧、长轮询或其它。如果这样配置,则数据代理150可以选择要用于附加项部件122与网络客户端126之间的通信的通信类型。可以在数据代理150的设立或配置期间进行这样的选择,或者数据代理150可以包括基于附加项部件122和/或网络客户端126自动选择适当的通信类型(例如,版本、操作系统、支持的通信类型等)的指令。在优选实施例中,数据代理150可以实现为使用ASP.NET的SignalR库的应用,以使用远程过程调用来处理附加项部件122与网络客户端126之间的实时通信。该实现方式具有在服务器140与附加项部件122与网络客户端126之间建立持久连接的优点,并且其在可用时自动使用WebSocket输送。
示例性通信方法
以下示例进一步图示了上面讨论的示例性应用间通信系统100的操作。图2-5图示了通过数据代理150在附加项部件122与网络客户端126之间的通信的序列图。在这些图中的每一个中,附加项部件122和网络客户端126被示出为在计算设备110上操作并且通过网络130与在服务器140上操作的数据代理150通信。尽管图示的操作序列仅是可由数据代理150使用系统100处理的许多通信中的一些的示例,但是图示的序列进一步阐明了通过服务器140在计算设备110上的部件之间的间接通信。
图2图示了源自桌面应用120的附加项部件122的通信的示例,其指示引起由网络浏览器124的网络客户端126进行的动作的消息。这样的消息可以是采取动作的命令(例如,打开新窗口、更新显示的数据、生成到文档或其部分的链接等)或者可以提供信息以促进稍后的动作(例如,提供复制的数据可以被粘贴的指示,这可能会使得粘贴按钮被显示或变为有效)。示例性通信过程可以通过在附加项部件122处接收指示要传达到网络客户端126的数据的用户命令(线201)而开始。用户可以明确地发出命令以采取某些动作,诸如添加链接或将所选择文本复制到网络浏览器124中的窗口中。可替换地,可以从用户动作或应用条件推断出命令,所述用户动作或应用条件诸如用户选择复制桌面应用120内的文档的一部分。附加项部件122可以响应于接收命令而生成包括由用户(显式地或隐式地)指示的数据的消息。在一些实施例中,这样的用户指示的数据可以包括在桌面应用120中打开的文档的一部分的指示,诸如要被复制到网络客户端126的用户选择的文本部分或在与用户评论相关联的文档内的用户指示的定位点。然后,附加项部件122通过网络130将包括用户指示的数据的消息发送到服务器140处的数据代理150(线202)。
数据代理150接收从附加项部件122发送的消息(线202)。在一些实施例中,数据代理150可以响应于接收消息而在服务器140上执行数据处理或数据存储操作。例如,数据代理150可以从消息中提取用户指示的数据,并使用用户指示的数据(或从其导出的数据或添加到其的元数据)在数据库146中创建新条目。作为另一示例,数据代理150可以从接收的消息中提取用户指示的数据,并使用用于与网络客户端126通信的格式生成包括用户指示的数据(或与其有关的信息)的第二消息。在其它实施例中,数据代理150可以简单地将所接收的消息识别为定向到网络客户端126并且重新定向所接收的消息而不进行修改。在任一情况下,数据代理150通过网络130向计算设备110处的网络客户端126发送包括与用户指示的数据有关的信息的消息(线203)。
网络客户端126接收从数据代理150发送的消息(线203)。网络客户端126可以处理包括在消息中的信息并在网络浏览器124内实现一个或多个动作(线204)。这些动作可以包括打开新窗口或在窗口内呈现一个或多个新选项或字段。在一些实施例中,网络客户端126可以显示网络浏览器124的窗口,其被配置成响应于消息中包含的信息而接受用户评论。例如,该消息可以包括在桌面应用120中打开的文档的一部分的指示,并且网络客户端126可以呈现用于输入与文档的部分相关联的用户评论的文本框。因此,可以向用户呈现显示文档的一部分(例如,由用户在桌面应用120中选择的文本的副本)的窗口以及评估和/或评论显示的部分的一个或多个选项。在一些实施例中,窗口可以呈现可选择的选项以允许用户使用定义的或标准化的描述符对文档的部分进行分类或评价。在其它实施例中,网络客户端126可以采取对用户不可见的动作,诸如存储包括在消息中的数据或确认接收到消息。例如,网络客户端126可以验证所接收的消息包括由网络客户端126可读的信息或指令(即,以已知格式并且明显不被破坏)。然后,网络客户端126可以通过网络130生成响应消息并将响应消息发送到服务器140处的数据代理150(线205)。响应消息可以简单地确认收到消息,或者可以包括新信息,诸如用户输入数据(例如,用户评论和/或选择)。
数据代理150从网络客户端126接收响应消息(线205)。在一些实施例中,数据代理150可以响应于接收到响应消息而在服务器140上执行数据处理或数据存储操作。例如,数据代理150可以在数据库146中提取并存储响应消息中包括的用户输入的评论或其它数据。在一些实施例中,数据代理150还可以创建或更新来自网络客户端126的用户输入数据与由桌面应用120访问的文档的一部分之间的链接,如本文中其它地方所描述的那样。数据代理150可以生成用于附加项部件122的新的响应消息或者用于进一步传输到附加项部件122的接收的响应消息的副本。响应消息可以包括确认接收由附加项部件122从网络客户端126发送的消息。响应消息还可以包括与下列项目有关的附加信息:网络客户端126处的用户输入、来自网络客户端126或数据代理150的元数据、或者由数据代理150或数据应用152在服务器140处生成的数据。例如,响应消息可以包括接收确认、来自网络客户端126的用户输入的评论以及对用户评论与由数据应用152生成的并存储在数据库146中的桌面应用120中打开的文档的一部分之间的链接的引用。然后,数据代理150通过网络130将与从网络客户端126接收的响应消息相关联的响应消息发送到计算设备110处的附加项部件122(线206)。
附加项部件122从数据代理150接收响应消息(线206)。在一些实施例中,附加项部件122可以在接收到响应消息时指明或呈现初始命令的实现的确认(线207)。在进一步的实施例中,附加项部件122可以基于响应消息中包括的信息来实现附加动作。这样的附加动作可以包括使桌面应用120聚焦在显示器上、向用户呈现附加信息、呈现窗口或对话框以提示用户进行附加的输入或选择或其它动作。如果响应消息包括到用户输入或用户选择的数据的链接的指示,则附加项部件122可以将链接指示符生成和/或插入到通过桌面应用120访问的文档中。例如,附加项部件122可以在文档的一部分内的定位位置处生成并插入超文本链接,该超文本链接链接到存储在数据库146中的关于文档的该部分的用户评论。在各种其它实施例中,可以由附加项部件122基于响应消息的内容来执行其它动作。
图3图示了源自网络浏览器124的网络客户端126的通信的类似示例,其指示引起由桌面应用120的附加项部件122进行的动作的消息。图3中所图示的通信可以在一些情况下与图2中所图示的通信一起执行。作为示例,上述通信(图2)可以操作以将文档的用户选择部分(例如,文本或电子表格内的单元的选择)的指示从桌面应用120发送到网络浏览器124以用于用户复查和评论,并且下面描述的通信(图3)可以进一步操作以将与用户输入的评论相关联的信息从网络浏览器124发送回到桌面应用120。在一些实施例中,桌面应用120可以向文档添加用户评论的指示。这样的指示可以包括评论或者可以包括到用户评论的链接,其可以存储在服务器140处的数据库146中。在其它情况下,图3中所图示的通信可以与图2中所图示的通信单独地执行。例如,用户可以使用实现网络客户端126的网络浏览器124来复查关于文档的评论,并且可以通过从网络客户端126直到数据代理150的通信采取动作来打开与桌面应用120中的评论相关联的文档(或查看文档的一部分)。
如上文那样,通信可以响应于在网络客户端126处接收到命令(线301)而开始,该命令可以是来自用户的选择或输入,或者可以基于预定条件自动生成。响应于该命令,网络客户端126可以通过网络130生成消息并将消息发送到数据代理150(线302)。消息可以包括由网络客户端126在网络浏览器124处从用户接收的用户选择的或用户输入的数据的指示,诸如一个或多个文档的评论或评估。附加地或可替换地,消息可以包括文档或文档的一部分的指示,或者直接地或者通过引用存储在数据库146中的进一步识别文档的数据。不管内容如何,该消息由网络客户端126通过网络130从计算设备110发送到服务器140处的数据代理150。
在接收到消息(线302)时,数据代理150可以处理所接收的消息。在一些实施例中,数据代理150可以将从消息中提取或导出的数据存储在数据库146中,所述数据包括用户输入的评论、关于消息的元数据或其它数据。在一些情况下,数据代理150可以基于该消息在数据库146中创建或更新条目。数据代理150可以重传所接收的消息的副本,或者可以基于所接收的消息生成新消息。新生成的消息可以包括到数据库146中的条目的链接的指示,其可以包含与用户输入相关联的信息(例如,评论、评级、评估、诸如时间戳或用户身份的元数据等)。然后,数据代理150通过网络130将消息的副本或新生成的消息从服务器140发送到计算设备110处的附加项部件122(线303)。
附加项部件122从数据代理150接收消息(线303)并基于该消息实现一个或多个动作(线304)。动作可以与生成确认接收的响应消息一样简单,或者动作可以包括在桌面应用120内执行一个或多个功能。在一些实施例中,消息可以包括指示要链接到文档的用户评论的信息。附加项部件122可以在桌面应用120内操作,以在文档内添加链接或其它指示符,以提供文档与用户输入数据之间的连接。例如,附加项部件122可以在文档的一部分中插入链接,该链接识别数据库146内的存储与文档的该部分相关联的用户评论的条目。用户评论也可以直接添加到文档,诸如通过添加脚注或边缘评论,以及通过其它已知的文档注释技术。动作还可以包括使桌面应用120聚焦在显示器上、在文档内导航以呈现文档的所请求部分、复制文档的一部分、添加或移除链接、添加或移除评论或通过插入或删除文档内容来修订文档的一部分。在一些实施例中,附加项部件122然后可以通过网络130将响应消息从计算设备110发送回到服务器140处的数据代理150(线305)。响应消息可以包括由网络客户端126请求的数据、用于创建或更新链接的信息、对消息的接收的确认或其它相关信息。
在接收到响应消息(线305)时,数据代理150可以处理所接收的响应消息。在一些实施例中,数据代理150可以存储包含在数据库146中的响应消息内的指示内或从所述指示中导出的数据。在一些实施例中,数据代理150可以类似地使得数据应用152在服务器140处执行动作,诸如更新关于文档的信息或确定要更新的另一文档。数据代理150可以基于所接收的响应消息生成新的响应消息,或者数据代理150可以重传所接收的响应消息的副本。在任一情况下,数据代理150通过网络130将(新生成的或原始的)响应消息从服务器140发送到计算设备110处的网络客户端126(线306)。
在接收到响应消息(线306)时,网络客户端126可以在计算设备110处呈现确认或采取某个其它动作(框307)。其它动作可以包括:插入或呈现来自通过响应消息返回的文档的数据、呈现用于选择的附加选项、呈现用户评论、呈现到文档或附加数据的链接或使用作为响应消息的一部分返回的信息的任何其它动作。在一些实施例中,可以通过前进到新屏幕、更新屏幕或不显示错误警报来呈现确认。在进一步的实施例中,网络客户端126在接收到响应消息时可以不呈现确认或采取任何其它动作。
桌面应用120与网络浏览器124之间通过数据代理150的通信的进一步示例在图4和图5中图示。具体地,其中图示的通信涉及创建和导航与关于文档的一部分的用户评论相关联的嵌入式链接。尽管图示并讨论了特定示例,但是根据本文中其它地方的公开内容,在一些实施例中可以使用其它类似技术。这样的可替换实施例可以包括利用桌面应用120和网络浏览器124中的任一个来开始创建、编辑、删除或导航链接。与本文中描述的所有实施例一样,桌面应用的附加项部件122和网络浏览器124的网络客户端126仅通过数据代理150彼此通信。
图4图示了用于在使用桌面应用120访问的文档中创建到存储在数据库146中在服务器140上的信息的链接的示例性通信方法,所述信息包括由用户经由网络浏览器124输入的评论。该方法开始于由桌面应用120的附加项部件122接收用户命令以创建新链接(线401)。命令可以指定由桌面应用120访问的文档的一部分,诸如文档内的位置、页面、单元、列、行、表格或所选择内容。附加项部件122生成指示链接命令的链接创建消息,并经由网络150将链接创建消息发送到数据代理150(线402)。消息还可以包括对文档的部分的指示,诸如文档内容的副本或文档内的将与该链接相关联的定位点。
数据代理150在服务器140处接收链接创建消息(线402)并处理其内容。基于链接创建消息,数据代理150向数据库146添加用于链接的条目(线403)。在其它实施例中,可以在稍后的时间当经由网络客户端126从用户接收到评论或其它信息时添加条目。在一些实施例中,数据代理150可以通过数据应用152与数据库146对接。在这样的实施例中,数据应用152可以基于从数据代理150接收的数据来访问和执行数据库146内的操作。然后,数据代理150或数据应用152可以基于所接收的链接创建消息生成评论请求消息,其可以指定从用户请求的与链接相关联的某些信息。然后,数据代理150通过网络130将评论请求消息从服务器140发送到计算设备110处的网络客户端126(线404)。
网络客户端126从数据代理150接收评论请求消息(线404)。作为响应,网络客户端126可以在网络浏览器124内操作以向用户显示关于链接的信息。经由网络浏览器124呈现给用户的信息包括链接的指示和输入评论的请求或选项。在一些实施例中,信息还可以包括来自文档的内容的副本,诸如由用户在桌面应用120中选择的内容。然后,网络客户端126可以等待,直到由用户输入评论或其它输入。在从用户接收到评论(线405)时,网络客户端126生成评论消息,该评论消息包括来自用户的评论和任何其它输入的指示。然后,网络客户端126通过网络130将评论消息发送到服务器140处的数据代理150(线406)。
数据代理150从网络客户端126接收评论消息(线406)。作为响应,数据代理150或数据应用152可以将所接收的信息添加到数据库146(线407)。这可以包括将评论添加到现有条目或创建新条目以存储评论。条目可以包括与链接相关联的标识符,该标识符可以进一步与其它信息相关联,所述其它信息诸如文档或复查者的分组。评论还可以与关于评论的元数据相关联,所述元数据诸如评论被创建的日期和时间或者创建评论的用户。然后,数据代理150生成用于附加项部件122的链接信息消息。链接信息消息可以包括关于链接的信息,诸如与数据库146中的链接相关联的标识符。在一些实施例中,关于链接的信息可以包括统一资源定位符(URL)或要用作文档中的链接的其它地址。链接信息消息还可以包括关于链接的信息,诸如元数据或显示参数。然后,链接信息消息由数据代理150通过网络130从服务器140发送到计算设备110处的附加项部件122(线408)。
附加项部件122从数据代理150接收链接信息消息(线408)。作为响应,附加项部件122可以将链接添加到桌面应用120中的文档,或者采取其它动作来创建链接(线409)。这可以包括生成在定位位置处的或者与文档的一部分相关联的链接或评论。链接、链接指示符或评论可以添加在行中或覆盖在文档上。例如,链接可以被呈现为链接指示符,其可以在由用户选择时呈现用户评论或其它信息。在一些实施例中,附加项部件122可以处理到用户的链接和评论呈现,而在其它实施例中,这样的呈现可以由桌面应用120处理。
图5图示了用于导航由桌面应用120打开的文档中的链接以在网络浏览器124处向用户呈现信息的示例性通信方法。例如,可以使用这样的通信方法将先前输入的评论呈现给相同或不同的用户,以用于经由网络浏览器124进行复查或修订。该方法通过在附加项部件122处接收用户对文档中的链接的选择的指示(线501)来开始。指示可以由用户点击在桌面应用120中打开的文档内的链接或链接指示符来生成。响应于接收到链接的用户选择的指示,附加项部件122生成导航链接消息。导航链接消息可以包括识别链接或链接目标的信息,诸如URL或数据库146中的条目的标识符。在一些实施例中,关于用户的信息可以包括在消息中,所述信息诸如用户身份。这样的用户信息可以用于验证查看或编辑链接的用户授权或查找用于显示所链接信息的用户呈现偏好。然后,附加项部件122通过网络130将导航链接消息从计算机设备110发送到服务器140处的数据代理150(线502)。
数据代理150从附加项部件122接收导航链接消息(线502)。作为响应,数据代理150可以提取识别所链接数据的信息和导航链接消息中包括的任何其它信息。在一些实施例中,数据代理150可以验证与所链接数据有关的用户权限和偏好。在一些实施例中,数据代理150或数据应用152可以验证链接识别数据库146中可用的数据(即,可以检查链接未过期或损坏)。然后,数据代理150可以基于所接收的导航链接消息中的信息生成用于网络客户端126的新的导航链接消息。然后,数据代理150将导航链接消息从服务器140发送到计算设备110处的网络客户端126(线503)。
网络客户端126从数据代理150接收导航链接消息(线503)。作为响应,网络客户端126可以在网络浏览器124内采取多个动作。网络客户端126可以首先将导航确认消息发送回到数据代理(线504)。导航确认消息可以确认收到导航链接消息。在一些实施例中,网络客户端126可以验证它能够执行导航链接消息中指示的功能(即,网络客户端126识别导航链接消息中的指令并且具有足够的系统权限来执行指令)。
在接收从网络客户端126返回的导航确认消息(线504)时,数据代理150可以通过网络130生成并发送从服务器140返回到计算设备110处的附加项部件122的导航确认消息(线505)。在接收到这样的导航确认消息时,附加项部件122可以认为链接导航请求完成并结束任务。如果在超时时段内由附加项部件122没有接收到这样的导航确认消息,则附加项部件122可以代替地认为尝试的通信失败。响应于这样的故障确定,附加项部件122可以尝试将导航链接消息重新发送到数据代理150(线502),或者附加项部件122可以呈现错误警报。
在网络客户端126将导航确认消息发送到数据代理150(线504)之后,网络客户端126可以进一步生成超链接消息,以通过网络130经由通信从服务器140或另一个源获得所链接信息。超链接消息可以包括使用HTML、XML、JavaScript或其它标准因特网通信协议的数据请求,或者超链接消息可以包括使用应用特定格式的数据请求。在任何情况下,超链接消息基于从数据代理150接收的导航消息中包括的信息来请求与存储在远程服务器处的链接相关联的数据。网络客户端126使得网络浏览器124通过网络130将超链接消息发送到服务器140,其可以包括将消息从网络客户端126发送到服务器140处的数据代理150(线506)。在一些实施例中,超链接消息可以代替地直接发送到服务器140的网络服务器,由此避免数据代理150。在进一步的实施例中,网络客户端126可以使得网络浏览器124向其它远程服务器发送附加的超链接消息以获得信息。然而,在所图示的实施例中,超链接消息由网络客户端126通过网络130从计算设备110发送到服务器140的数据代理150。
数据代理150(或服务器140上运行的其它应用)从网络客户端126或通过网络浏览器124的其它操作接收超链接消息(线506)。在接收到超链接消息时,数据代理150可以访问数据库146以检索与所选择链接有关的所请求信息(线507)。数据代理150可以使得数据应用152(或其另一例程)访问数据库146以检索所请求的信息,诸如先前存储的用户评论。如果由网络服务器应用而不是数据代理150在服务器140处接收超链接消息,则网络服务器应用可以代替地访问数据库146,或者网络服务器应用可以使得数据应用152访问数据库146以检索所请求的信息。在从数据库146获得信息时,数据代理150(或网络服务器)可以生成包括所请求的信息的超链接响应消息,并且将超链接响应消息通过网络从服务器140发送到计算设备110处的网络客户端126(或网络浏览器124)(线508)。
在通过网络130从服务器140接收到超链接响应消息(线508)时,网络客户端126可以使得网络浏览器124将与链接相关联的所接收信息呈现给用户。这可以包括打开网络浏览器124的新窗口以呈现信息或在打开的窗口的一部分内呈现信息。在一些实施例中,这可以包括呈现一个或多个选项以修订、编辑、批准、不批准或删除与链接相关的信息,诸如先前输入的用户评论。附加的或可替换的功能性可以包括在各种其它实施例中。
图6图示了通信代理方法600的流程图,该方法用于建立和促进经由远程服务器上的数据代理的客户端计算机上的应用之间的通信。如上所述,客户端计算机可以是计算设备110,并且远程服务器可以是服务器140。客户端计算机上的应用可以是桌面应用120和网络浏览器124,并且数据代理可以是数据代理150。
方法600可以通过启动服务器140上的数据代理150的操作(框602)来开始。操作可以由数据应用152在启动时或响应于触发事件(诸如用户登录或从计算设备110接收初始化消息)来启动。应用还可以启动对应应用元素的操作,诸如桌面应用120的附加项部件122和网络浏览器124的网络客户端126。这样的元素的启动可以包括在应用启动期间或者响应于另一事件(诸如用户请求)加载应用元素。在一些实施例中,可以通过从数据代理150到桌面应用120或网络浏览器124中的一个或多个的通信来启动应用元素中的一些或所有。
数据代理150接下来可以在远程服务器与客户端计算机之间建立通信连接(框604)。在服务器140与计算设备110之间建立通信连接可以包括通过网络130在数据代理150与桌面应用120的附加项部件122和网络浏览器120的网络客户端126中的每一个之间建立通信连接。通信连接可以涉及通过在数据代理150与附加项部件126和网络客户端126中的每一个之间但不是直接在附加项部件126与网络客户端126之间推送消息来进行的服务器140与计算设备110之间的双向实时通信。如本文中其它地方所讨论的那样,附加项部件126和网络客户端126仅通过数据代理150彼此通信。
数据代理150经由通信连接之一从计算设备110接收第一消息(框606)。可以从桌面应用120的附加项部件122和网络浏览器120的网络客户端126中的任意一个接收第一消息。在一些实施例中,第一消息可以包括与文档或其部分有关的信息,诸如链接的指示或由计算设备110的用户输入的评论的指示。
响应于接收到接收第一消息,数据代理150可以访问服务器140的数据库146(框608)。数据代理150可以直接或间接地访问数据库146,诸如通过数据应用152的另一个例程。如上所述,可以访问数据库146以基于第一消息的内容来检索、编辑或存储数据。例如,数据代理150可以访问数据库146以创建存储包括在第一消息中的用户评论的新条目,其可以进一步用于生成到评论的链接。
数据代理150接下来可以生成第二消息以发送回到计算设备110(框610)。第二消息可以包括第一消息中的信息、与存储在数据库146中的数据有关的信息或者从这样的信息导出的信息。例如,第二消息可以包括到存储在数据库146中的评论的链接的指示,其可以进一步指示与评论相关联的文档的一部分。
数据代理150接下来可以将第二消息发送回到计算设备110(框612)。数据代理150可以将第二消息发送到除了从其接收第一消息的应用之外的另一应用的应用元素。例如,如果数据代理150从桌面应用120的附加项部件122接收到第一消息,则数据代理150可以将第二消息发送到网络浏览器124的网络客户端126。可替换地,如果数据代理150从网络浏览器124的网络客户端126接收到第一消息,则数据代理150可以将第二消息发送到桌面应用120的附加项部件122。在一些实施例中,数据代理150还可以在第二消息中将确认或信息发送回到发送应用。例如,响应于从网络客户端126接收第一消息,数据代理150可以将包含与数据库146中的条目相关联的信息的第二消息发送回到网络客户端126。然后,方法600可以终止,或者它可以继续促进客户端计算机的应用之间的进一步通信。
本文中描述的系统和方法可以用于各种目的,以使用在服务器140上运行的数据代理150通过网络130在计算设备110上运行的两个或更多应用之间传达数据。为了进一步解释这样的技术的使用,描述了特定的示例性用途。本文中公开的发明不限于这样的示例性用途,而是呈现示例性用途以进一步阐明本文中所讨论的系统和方法的操作。在示例性用途中,许多用户可以使用特别设计用于在数据库146中记录来自用户的注解和评论的软件程序(诸如数据应用152)来执行文档的审计复查。软件程序可以在服务器140上操作,从而允许用户使用网络浏览器124创建、编辑、复查和删除评论。然而,为了访问要复查的文档,用户可以使用桌面应用120,诸如文字处理软件应用。附加项部件122可以安装在这些桌面应用120中,以促进经由数据代理150与数据应用152的通信。当用户选择文档的一部分并点击命令以添加评论时,附加项部件122通过网络130向数据代理150发送消息。作为响应,数据代理150可以通过网络将消息推送回到网络浏览器124的网络客户端126。该消息可以使得网络客户端126在网络浏览器124中向用户呈现评论输入窗口。在一些实施例中,评论输入窗口可以包括文档的所选择部分的副本。然后,用户可以在网络浏览器124中输入评论,并通过使用网络客户端126将包括评论的另一消息通过网络130发送到数据代理150来将评论保存到数据应用152。当数据代理150从网络客户端126接收消息时,数据代理150可以将评论存储在数据库146中,并将到评论的链接的指示通过网络130发送回到桌面应用120的附加项部件122。在从数据代理150接收到消息时,附加项部件122可以使得链接的指示由桌面应用120添加到文档。
虽然本文中将系统和方法描述为包括在与计算设备110不同的服务器140上实现的数据代理150,但是可能出现一些情况,其中:在计算设备110上临时“离线”工作而不经由网络130连接到服务器140可能是有利的。例如,网络连接可能是不安全的或不可靠的。在这样的情况下,客户端侧数据代理可以由在客户端设备110上运行的离线应用实现。在这样的实施例中,客户端侧数据代理可以如上所述地起作用,加以必要的变更,其中客户端侧数据代理充当数据代理150并且离线应用充当数据应用152的本地版本。在这样的实施例中,数据代理150与附加项部件122或网络客户端126之间的通信可能不需要使用网络130。可替换地,数据代理150可以通过网络130与附加项部件122和网络客户端126通信,所述网络130可以是不访问因特网的本地网络。离线应用可以包括数据库146中的数据的所存储部分,其当经由网络130建立计算设备110与服务器140之间的网络连接时可以周期性地或不定期地与数据库146同步。这样的同步可以包括从数据库146下载数据和/或从离线应用将数据上传到数据库146。在一些实施例中,离线应用可以是计算设备110上的单独安装的应用,其可以是服务器应用。可以与上述在线实施例结合地使用离线实施例以在通过网络130的网络连接不可用、不可靠或者以其它方式不利于使用时能够实现系统100的离线模式使用。
示例性计算机系统
图7图示了可以实现本文中所讨论的通信方法和过程中的部分或全部的示例性计算系统700的框图。如上所述,系统100可以被配置成提供通过数据代理150在桌面应用120与网络浏览器124之间间接通信的功能性。桌面应用120和网络浏览器124(包括附加项部件122和网络客户端126)可以实现为存储在程序存储器上并由计算设备110的处理器执行的计算机可读指令,如以下所讨论的那样。类似地,数据代理150(和数据应用152,如果适用的话)可以实现为存储在程序存储器上并由服务器140的处理器执行的计算机可读指令,如以下所讨论的那样。附加的或可替换的部件可以包括在计算系统700的各种实施例中。
系统700包括通过网络130通信地连接的前端部件102和后端部件104。前端部件可以设置在由用户操作的计算设备110内,并且后端部件104可以设置在一个或多个服务器140内。每个服务器140还可以包括或者被通信地连接到一个或多个数据库146。尽管示例系统700图示了一个计算设备110和一个服务器140,但是应当理解的是,可以使用任意数目的计算设备110或服务器140来实现本文中描述的方法。附加地,在一些实施例中,系统的各部分可以在单独的服务器140或计算设备110上实现。例如,数据代理150可以在第一服务器140上实现,所述第一服务器140与在第二服务器140上实现的数据应用152通信。作为另一示例,桌面应用120可以在第一计算设备110(诸如台式计算机)上实现,并且网络浏览器124可以在第二计算设备110(诸如移动设备,其可以是智能电话)上实现。然而,在优选实施例中,桌面应用120和网络浏览器124在同一计算设备110上实现,同时仅通过在服务器140上实现的数据代理150进行通信。
计算设备110可以是任何类型的计算设备,包括台式计算机、笔记本计算机、上网本计算机、平板计算机或移动设备(诸如智能电话、平板设备或可穿戴计算设备)。计算设备110可以包括显示器712、输入714和控制器716。输入714可以包括经由有线或无线连接(例如,蓝牙键盘)进行通信的外部硬件键盘、外部鼠标、触摸屏显示器、显示在显示器712上的“软”键盘或任何其它合适的用户输入设备。控制器716包括一个或多个微控制器或微处理器(MP)720、程序存储器722、RAM 724和I/O电路726,其中的全部经由地址/数据总线728互连。程序存储器722可以包括操作系统、数据存储器、多个软件应用和多个软件例程。程序存储器722可以包括用于实现上述方法或软件部件中的部分或全部的软件应用、例程或脚本,特别是桌面应用120、附加项部件122、网络浏览器124和网络客户端126。在一些实施例中,控制器716还可以包括或以其它方式通信地连接到位于计算设备110内的其它数据存储机制(例如,一个或多个硬盘驱动器、光学存储驱动器、固态存储设备等)。应当领会的是,虽然图7仅描绘了一个微处理器720,但是控制器716可以包括多个微处理器720。类似地,控制器716的存储器可以包括多个程序存储器722或多个RAM 724。虽然图7将I/O电路726描绘为单个块,但是I/O电路726可包括多个不同类型的I/O电路。例如,控制器716可以将程序存储器722或RAM 724实现为半导体存储器、磁性可读存储器或光学可读存储器。
在一些实施例中,前端部件102可以经由网络130与后端部件104通信,以促进计算设备110上的应用之间的通信。网络130可以是局域网(LAN)、广域网(WAN)、全球网络(例如,因特网)的一部分或网络的某种组合。网络130可以是专有网络、安全公共因特网、虚拟私人网络或某种其它类型的网络,诸如专用存取线路、简单普通电话线路、卫星链接、蜂窝数据网络、这些的组合等。在网络130包括因特网的情况下,数据通信可以经由因特网通信协议通过网络130进行。
后端部件104可以包括一个或多个服务器140。除了其它软件应用之外,每个服务器140可以包括一个或多个处理器762,其适配成并配置成执行上述各种软件应用和部件(特别是数据代理150和/或数据应用152)。与计算设备110一样,服务器140可以包括或可通信地连接到一个或多个显示器752和输入754。服务器140还可以包括数据库146,所述数据库146可以适配成存储与计算系统700有关的数据,诸如上述的链接或其它信息。服务器140可以具有控制器755,其经由链接745可操作地连接到数据库146。应当指明的是,虽然未示出,但是可以以已知的方式将附加数据库链接到控制器755。服务器140可以在从计算设备110接收到请求时存储或访问存储在数据库146中的数据。在一些实施例中,服务器140可以包括通信模块770,以经由网络130在服务器140与计算设备110之间发送和接收通信。通信模块770可以包括软件和/或硬件部件,其被配置为使用标准或专用通信协议而使得能够经由网络进行通信。
控制器755可以包括程序存储器760、处理器762、RAM 764和I/O电路766,其中的所有可以经由地址/数据总线765互连。与控制器716一样,应当领会的是,尽管仅示出了一个微处理器762,但是控制器755可以包括多个微处理器762。类似地,控制器755的存储器可以包括多个RAM 764和多个程序存储器760。程序存储器760可以包括用于实现上述方法或软件部件中的部分或全部的软件应用、例程或脚本,特别是数据代理150和/或数据应用152,连同其它软件指令或所存储数据。存储在程序存储器760中的各种软件应用可以包括网络服务器应用,其负责生成要包括在从服务器140发送到计算设备110的网页中的数据内容。尽管I/O电路766被示出为单个块,但是应当领会的是,I/O电路766可以包括多个不同类型的I/O电路。例如,RAM 764和程序存储器760可以实现为半导体存储器、磁性可读存储器或光学可读存储器。控制器755还可以通过通信模块770经由链路735可操作地连接到网络130。
附加的考虑
尽管前述文本阐述了许多不同实施例的详细描述,但应当理解的是,本发明的法律范围由在本专利结尾处所阐述的权利要求的文字限定。详细描述要被解释为仅是示例性的,并且未描述每个可能的实施例,因为描述每个可能的实施例即使不是不可能也会是不实际的。个人可以使用当前技术或在本专利提交日之后开发的技术来实现许多可替换实施例,其仍然会落入权利要求的范围内。
贯穿本说明书,多个实例可以实现被描述为单个实例的部件、操作或结构。尽管一个或多个方法的个别操作被图示和描述为单独的操作,但是可以同时执行个别的操作中的一个或多个,并且不需要以图示的顺序执行操作。在示例配置中呈现为单独部件的结构和功能性可以实现为组合的结构或部件。类似地,呈现为单个部件的结构和功能性可以实现为单独的部件。这些和其它变型、修改、添加和改进都落入本文中主题的范围内。
附加地,本文中将某些实施例描述为包括逻辑或多个例程、子例程、应用或指令。这些可以构成软件(在非暂时性、有形机器可读介质上体现的代码)或硬件。在硬件中,例程等是能够执行某些操作的有形单元,并且可以以某种方式配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立的、客户端或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或处理器的分组)可以由软件(例如,应用或应用部分)配置为硬件模块,所述硬件模块操作以执行如本文中所述的某些操作。
操作中的某些的性能可以分发在一个或多个处理器之中,不仅位于单个机器内,而是跨多个机器部署。在一些示例实施例中,一个或多个处理器或处理器实现的模块可以定位在单个地理位置(例如,在家庭环境、办公室环境或服务器群内)中。在其它示例实施例中,该一个或多个处理器或处理器实现的模块可以跨多个地理位置来分发。
除非另有具体说明,否则本文中使用诸如 “处理”、“计算”、“推算”,“确定”、“呈现”、“显示”等之类的词语的讨论可以指代操纵或变换一个或多个存储器(例如,易失性存储器、非易失性存储器或其组合)、寄存器或接收、存储、传输或显示信息的其它机器部件内的表示为物理(例如,电子、磁性或光学)量的数据的机器(例如,计算机)的动作或过程。
如本文中所使用的对“一个实施例”或“实施例”的任何引用意味着结合该实施例描述的特定元素、特征、结构或特性包括在至少一个实施例中。短语“在一个实施例中”在说明书中的各种位置中的出现不一定都指代同一实施例。
可以使用表达“耦合”、“通信地耦合”或“连接”连同它们的派生词来描述一些实施例。例如,可以使用术语“耦合”来描述一些实施例,以指示两个或更多元素处于直接物理或电接触。然而,术语“耦合”还可以意味着两个或更多元素彼此不直接接触,但仍然彼此协同操作或交互。实施例不限于此上下文中。
如本文中所使用的那样,术语“包括”、“包括……的”、“包含”、“包含……的”、“具有”、“具有……的”或其任何其它变型旨在涵盖非排他性的包含。例如,包括元素的列表的过程、方法、物品或装置不一定仅限于那些元素,而是可以包括未明确列出的或者对于这样的过程、方法、物品或装置固有的其它元素。此外,除非明确陈述为相反,否则“或”指代包含性的或而不是指代排他性的或(XOR)。例如,条件A或B由以下任何一个满足:A为真(或存在)且B为假(或不存在)、A为假(或不存在)且B为真(或存在),以及A和B二者都是真的(或存在)。
另外,采用对“一”或“一个”的使用来描述本文中实施例的元素和部件。这仅仅是为了方便并且给出描述的一般意义而进行。本描述和随后的权利要求应当理解为包括一个或至少一个,并且单数也包括复数,除非清楚的是其意味着其它意义。
该详细描述要被解释为仅是示例性的,并未描述每个可能的实施例,因为描述每个可能的实施例即使不是不可能也是不实际的。个人可以使用当前技术或在本申请的提交日之后开发的技术来实现许多可替换实施例。
还应当理解的是,除非在本专利中使用句子“如本文中所使用是那样,术语“__”在此被定义为意味着……”或类似的句子中明确定义术语,否则不是旨在限制该术语的含义,无论是明确地还是隐含地、超出其简单或普通含义,并且该术语不应当被解释为限制于基于本专利的任何部分中作出的任何陈述(除了权利要求的语言之外)的范围中。到本专利结尾处的权利要求中记载的任何术语在本专利中以与单个含义一致的方式被引用的程度,那是仅为了清楚性以免使读者混淆而进行的,并且其不是旨在将这样的权利要求术语通过暗示或以其它方式限制于该单个含义。最后,除非通过记载单词“装置”和没有任何结构记载的功能来限定权利要求元素,否则不旨在基于35 U.S.C.§112(f)的应用来解释任何权利要求元素的范围。
Claims (20)
1.一种用于促进电子通信的计算机系统,包括:
具有一个或多个处理器的服务器;
通信模块,配置成经由通信网络在所述服务器与客户端计算设备之间传达数据;
存储可执行指令的程序存储器,所述可执行指令当由所述一个或多个处理器执行时,使得所述服务器实现配置成执行以下操作的数据代理:
经由所述通信模块从在所述客户端计算设备上执行的第一应用的应用附加项部件接收用户指示的数据;以及
响应于所接收数据,经由所述通信模块将包括与所述所接收数据有关的信息的消息发送到由在所述客户端计算设备上执行的第二应用实现的网络客户端应用,其中所述消息使得所述网络客户端应用向所述客户端计算设备的用户显示与所述所接收数据有关的所述信息,
其中所述第一应用的所述应用附加项部件和所述第二应用的所述网络客户端应用适配成仅通过所述数据代理彼此通信。
2.如权利要求1所述的计算机系统,其中所述网络客户端应用由网络浏览器在没有特定于所述网络客户端应用的插件的情况下实现。
3.如权利要求1所述的计算机系统,其中所述数据代理还被配置成:
经由所述通信模块接收由所述用户从所述第二应用的所述网络客户端输入的用户输入数据;以及
将包括与所述用户输入数据相关联的信息的第二消息发送到所述第一应用的所述应用附加项部件。
4.如权利要求3所述的计算机系统,其中:
所述用户指示的数据与经由所述第一应用访问的文档的一部分相关联;
所述用户输入数据包括与所述文档的所述部分相关联的评论;以及
所述第二消息包括将所述文档的所述部分链接到所述评论的信息。
5.如权利要求4所述的计算机系统,还包括通信地连接到所述服务器的所述一个或多个处理器的数据库,其中所述数据代理还被配置成将关于所述评论的信息存储在所述数据库中的条目中。
6.如权利要求5所述的计算机系统,其中将所述文档的所述部分链接到所述评论的所述信息包括到所述数据库中的所述条目的链接。
7.如权利要求4所述的计算机系统,其中:
包括与所述所接收数据有关的信息的所述消息包括使得所述网络客户端向所述用户呈现窗口的指令,所述窗口被配置成接受来自所述用户的所述评论;以及
所述第二消息使得所述第一应用的所述附加项部件将所述链接的指示添加到经由所述第一应用访问的所述文档。
8.如权利要求1所述的计算机系统,其中:
所述数据代理被配置成使用多种以下实时通信类型中的任一种与所述第二应用通信:WebSocket、服务器发送的事件、永久帧或长轮询;以及
所述数据代理被配置成通过选择所述多个实时通信类型中的一个来与所述第二应用通信。
9.一种存储可执行指令的有形的非暂时性计算机可读介质,所述可执行指令用于第一应用与第二应用之间的通信,所述可执行指令在由计算机系统的一个或多个处理器执行时使得所述计算机系统:
在所述第一应用的附加项部件处从所述第一应用的用户接收使用所述第一应用访问的文档的一部分的指示;
由所述第一应用的所述附加项部件生成包括与所述文档的所述部分相关联的信息的第一消息;
经由通信网络将所述第一消息从所述第一应用的所述附加项部件传输到服务器的数据代理;
在所述第二应用的网络客户端处从所述服务器的所述数据代理接收对应于所述第一消息的第二消息;以及
基于所述第二消息由所述第二应用的所述网络客户端向所述用户显示信息。
10.如权利要求9所述的有形的非暂时性计算机可读介质,其中所述第一应用的所述应用附加项部件和所述第二应用的所述网络客户端应用适配成仅通过所述数据代理进行通信。
11.如权利要求9所述的有形的非暂时性计算机可读介质,其中所述网络客户端应用由所述第二应用在没有特定于所述网络客户端应用的插件的情况下实现。
12.如权利要求9所述的有形的非暂时性计算机可读介质,其中所述第二应用是网络浏览器并且所述第一应用是以下之一:文字处理应用、电子表格应用、演示应用、另一文档查看应用或图像查看应用。
13.如权利要求9所述的有形的非暂时性计算机可读介质,其中:
所述文档的所述部分的所述指示包括在所述文档的所述部分中的数据的所述第一应用内的选择;
所述第一消息和所述第二消息包括所选择数据的表示;
由所述第二应用的所述网络客户端向所述用户显示的所述信息包括所述第二消息中包括的所述所选择数据的所述表示。
14.如权利要求9所述的有形的非暂时性计算机可读介质,其中利用所述第一应用的应用编程接口(API)将所述附加项部件安装为对所述第一应用的添加。
15.如权利要求9所述的有形的非暂时性计算机可读介质,还存储指令,所述指令在由所述计算机系统的所述一个或多个处理器执行时使得所述计算机系统:
接收由所述用户在所述网络客户端应用处输入的用户输入数据;
生成包括由所述网络客户端应用与所述用户输入数据相关联的信息的第三消息;
将所述第三消息从所述网络客户端应用传输到所述服务器的所述数据代理;
从所述第一应用的所述应用附加项部件处的所述数据代理接收对应于所述第三消息的第四消息。
16.如权利要求15所述的有形的非暂时性计算机可读介质,其中所述用户输入数据包括与所述文档的所述部分相关联的评论。
17.如权利要求15所述的有形的非暂时性计算机可读介质,其中所述第四消息包括到关于所述评论的信息的链接。
18.如权利要求17所述的有形的非暂时性计算机可读介质,还存储指令,所述指令在由所述计算机系统的所述一个或多个处理器执行时使得所述计算机系统:
响应于接收到所述第四消息,由所述第一应用的所述附加项部件向所述文档的所述部分添加所述链接的指示。
19.一种用于促进电子通信的计算机实现的方法,包括:
在客户端计算机上执行的第一应用的附加部件与服务器上执行的数据代理之间通过通信网络建立第一通信连接;
在所述服务器上执行的所述数据代理与在所述客户端计算机上执行的第二应用的网络客户端之间通过所述通信网络建立第二通信连接;
从(i)经由所述第一通信连接的所述附加部件或(ii)经由所述第二通信连接的所述网络客户端之一发送消息到所述数据代理,所述消息包括与指示关于经由所述第一应用访问的文档的一部分的评论的用户输入有关的信息;
在(i)经由所述第二通信连接的所述网络客户端或(ii)经由所述第一通信连接的所述附加部件中的另一个处从所述数据代理接收所述消息;以及
由一个或多个处理器记录所述文档的所述部分与所述评论之间的链接;
其中所述第一应用的所述应用附加项部件和所述第二应用的所述网络客户端应用仅通过所述数据代理进行通信。
20.如权利要求19所述的计算机实现的方法,其中:
所述第二应用是网络浏览器;以及
所述网络客户端应用由所述网络浏览器在没有特定于所述网络客户端应用的插件的情况下实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311580912.6A CN117573392A (zh) | 2016-04-28 | 2017-04-21 | 应用间通信和集成代理 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/141125 | 2016-04-28 | ||
US15/141,125 US10104152B2 (en) | 2016-04-28 | 2016-04-28 | Inter-application communication and integration broker |
PCT/IB2017/000523 WO2017187261A1 (en) | 2016-04-28 | 2017-04-21 | Inter-application communication and integration broker |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311580912.6A Division CN117573392A (zh) | 2016-04-28 | 2017-04-21 | 应用间通信和集成代理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109328339A true CN109328339A (zh) | 2019-02-12 |
CN109328339B CN109328339B (zh) | 2023-12-12 |
Family
ID=58745277
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780037626.1A Active CN109328339B (zh) | 2016-04-28 | 2017-04-21 | 应用间通信和集成代理 |
CN202311580912.6A Pending CN117573392A (zh) | 2016-04-28 | 2017-04-21 | 应用间通信和集成代理 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311580912.6A Pending CN117573392A (zh) | 2016-04-28 | 2017-04-21 | 应用间通信和集成代理 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10104152B2 (zh) |
EP (2) | EP3449371B1 (zh) |
CN (2) | CN109328339B (zh) |
CA (1) | CA3021374C (zh) |
ES (1) | ES2958588T3 (zh) |
WO (1) | WO2017187261A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202701A (zh) * | 2019-07-08 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、服务器、终端、系统及存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11334852B2 (en) * | 2016-12-08 | 2022-05-17 | Airwatch Llc | Secured attachment management |
US10089983B1 (en) * | 2017-06-08 | 2018-10-02 | Amazon Technologies, Inc. | Third party account linking for voice user interface |
WO2021010997A1 (en) | 2019-07-17 | 2021-01-21 | Google Llc | Systems and methods to verify trigger keywords in acoustic-based digital assistant applications |
CN110413169B (zh) * | 2019-07-24 | 2021-11-23 | 北京小米移动软件有限公司 | 一种信息展示方法、装置及介质 |
AU2020356802B2 (en) * | 2020-04-14 | 2021-12-23 | Citrix Systems, Inc. | Triggering event notifications based on messages to application users |
RU2738335C1 (ru) | 2020-05-12 | 2020-12-11 | Общество С Ограниченной Ответственностью "Группа Айби" | Способ и система классификации и фильтрации запрещенного контента в сети |
JP2022062766A (ja) * | 2020-10-09 | 2022-04-21 | キヤノン株式会社 | システム、デバイス、アプリケーション及びデバイスの制御方法 |
US11196665B1 (en) | 2020-11-12 | 2021-12-07 | Sap Se | Routing application calls |
US20230106369A1 (en) * | 2021-10-01 | 2023-04-06 | Microsoft Technology Licensing, Llc | Dynamic policy adjustment based on resource consumption |
US20230208920A1 (en) * | 2021-12-23 | 2023-06-29 | OpenFin Inc. | Bridging communications between applications in different environments |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030036966A1 (en) * | 2001-08-16 | 2003-02-20 | International Business Machines Corporation | Computer system, method, and business method for integrating an e-commerce application with a back-end business processing application |
US20050262515A1 (en) * | 2004-05-20 | 2005-11-24 | International Business Machines Corporation | Methods, systems, and media to enhance browsing of messages in a message queue |
CN103620576A (zh) * | 2010-11-01 | 2014-03-05 | 七网络公司 | 适用于移动应用程序行为和网络条件的缓存 |
US20150082376A1 (en) * | 2012-01-25 | 2015-03-19 | Symantec Corporation | Sending out-of-band notifications |
US20150312177A1 (en) * | 2014-04-25 | 2015-10-29 | International Business Machines Corporation | Messaging based signaling for communications sessions |
US20150379285A1 (en) * | 2014-06-25 | 2015-12-31 | International Busines Machines Corporation | Secure access to running client application features from a browser application |
CN105493046A (zh) * | 2013-09-28 | 2016-04-13 | 迈克菲股份有限公司 | 面向服务的架构 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0806017A4 (en) | 1994-12-13 | 2000-08-30 | Fs Holdings Inc | SYSTEM FOR RECEIVING, PROCESSING, CREATING, STORING AND DISTRIBUTING INVESTMENT INFORMATION |
US6065026A (en) | 1997-01-09 | 2000-05-16 | Document.Com, Inc. | Multi-user electronic document authoring system with prompted updating of shared language |
US6957390B2 (en) | 2000-11-30 | 2005-10-18 | Mediacom.Net, Llc | Method and apparatus for providing dynamic information to a user via a visual display |
EP1217806A1 (en) * | 2000-12-22 | 2002-06-26 | Sun Microsystems, Inc. | Network server and method of controlling a network server |
US7073133B2 (en) * | 2001-05-16 | 2006-07-04 | William Hughes | Objects and methods for accessing a data source and enhancing an application |
US8005926B2 (en) * | 2001-07-26 | 2011-08-23 | Hewlett-Packard Development Company, L.P. | Tiered web site with web-tier admission control based on utilization data generated on application tier |
US7620648B2 (en) * | 2003-06-20 | 2009-11-17 | International Business Machines Corporation | Universal annotation configuration and deployment |
US20050108024A1 (en) | 2003-11-13 | 2005-05-19 | Fawcett John Jr. | Systems and methods for retrieving data |
US7730030B1 (en) * | 2004-08-15 | 2010-06-01 | Yongyong Xu | Resource based virtual communities |
US9009582B2 (en) | 2004-11-19 | 2015-04-14 | Google Inc. | Converting spreadsheet applications to web-based applications |
US8261058B2 (en) | 2005-03-16 | 2012-09-04 | Dt Labs, Llc | System, method and apparatus for electronically protecting data and digital content |
EP1962201A3 (en) * | 2007-02-16 | 2009-04-01 | Palo Alto Research Center Incorporated | System and method for annotating documents using a viewer |
US8090847B2 (en) * | 2008-05-02 | 2012-01-03 | Microsoft Corporation | Session broker extensibility application program interface |
US8612380B2 (en) * | 2009-05-26 | 2013-12-17 | Adobe Systems Incorporated | Web-based collaboration for editing electronic documents |
US8301718B2 (en) * | 2009-11-25 | 2012-10-30 | Red Hat, Inc. | Architecture, system and method for a messaging hub in a real-time web application framework |
US11386510B2 (en) | 2010-08-05 | 2022-07-12 | Thomson Reuters Enterprise Centre Gmbh | Method and system for integrating web-based systems with local document processing applications |
US9098483B2 (en) * | 2010-12-07 | 2015-08-04 | Business Objects Software Limited | Systems and methods to provide dynamic local members associated with an add-in for a spreadsheet application |
US9047642B2 (en) * | 2011-03-24 | 2015-06-02 | Overstock.Com, Inc. | Social choice engine |
JP2013021792A (ja) * | 2011-07-08 | 2013-01-31 | Sanyo Denki Co Ltd | 電力給電システム |
US10140278B2 (en) * | 2012-03-26 | 2018-11-27 | Adobe Systems Incorporated | Computer-implemented methods and systems for associating files with cells of a collaborative spreadsheet |
US8984582B2 (en) | 2012-08-14 | 2015-03-17 | Confidela Ltd. | System and method for secure synchronization of data across multiple computing devices |
US10410296B2 (en) * | 2013-02-19 | 2019-09-10 | Facebook, Inc. | Selection of advertisements based on social networking system login status |
US20140257929A1 (en) * | 2013-03-09 | 2014-09-11 | Benbria Corporation | Visual question selection |
US9298935B1 (en) * | 2013-09-20 | 2016-03-29 | Piyush Kumar | Distributed privacy framework system and method of implementation |
US11336648B2 (en) * | 2013-11-11 | 2022-05-17 | Amazon Technologies, Inc. | Document management and collaboration system |
US9305176B2 (en) | 2014-01-23 | 2016-04-05 | xOverTime, Inc. | Database generation from a spreadsheet |
US9929990B2 (en) * | 2015-04-28 | 2018-03-27 | Dropbox, Inc. | Inserting content into an application from an online synchronized content management system |
-
2016
- 2016-04-28 US US15/141,125 patent/US10104152B2/en active Active
-
2017
- 2017-04-21 EP EP17724893.7A patent/EP3449371B1/en active Active
- 2017-04-21 EP EP23195243.3A patent/EP4296859A3/en active Pending
- 2017-04-21 CN CN201780037626.1A patent/CN109328339B/zh active Active
- 2017-04-21 CN CN202311580912.6A patent/CN117573392A/zh active Pending
- 2017-04-21 ES ES17724893T patent/ES2958588T3/es active Active
- 2017-04-21 CA CA3021374A patent/CA3021374C/en active Active
- 2017-04-21 WO PCT/IB2017/000523 patent/WO2017187261A1/en active Application Filing
-
2018
- 2018-10-15 US US16/159,859 patent/US11316914B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030036966A1 (en) * | 2001-08-16 | 2003-02-20 | International Business Machines Corporation | Computer system, method, and business method for integrating an e-commerce application with a back-end business processing application |
US20050262515A1 (en) * | 2004-05-20 | 2005-11-24 | International Business Machines Corporation | Methods, systems, and media to enhance browsing of messages in a message queue |
CN103620576A (zh) * | 2010-11-01 | 2014-03-05 | 七网络公司 | 适用于移动应用程序行为和网络条件的缓存 |
US20150082376A1 (en) * | 2012-01-25 | 2015-03-19 | Symantec Corporation | Sending out-of-band notifications |
CN105493046A (zh) * | 2013-09-28 | 2016-04-13 | 迈克菲股份有限公司 | 面向服务的架构 |
US20150312177A1 (en) * | 2014-04-25 | 2015-10-29 | International Business Machines Corporation | Messaging based signaling for communications sessions |
US20150379285A1 (en) * | 2014-06-25 | 2015-12-31 | International Busines Machines Corporation | Secure access to running client application features from a browser application |
Non-Patent Citations (2)
Title |
---|
ANONYMOUS: "IBM Integration Bus", 《HTTPS://EN.WIKIPEDIA.ORG/W/INDES.PHP?TITILE=IBM_INTEGRATION_BUS&OLDID=701852492》 * |
ANONYMOUS: "IBM Integration Bus", 《HTTPS://EN.WIKIPEDIA.ORG/W/INDES.PHP?TITILE=IBM_INTEGRATION_BUS&OLDID=701852492》, 26 January 2016 (2016-01-26), pages 1 - 9 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202701A (zh) * | 2019-07-08 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、服务器、终端、系统及存储介质 |
CN112202701B (zh) * | 2019-07-08 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、服务器、终端、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10104152B2 (en) | 2018-10-16 |
CA3021374A1 (en) | 2017-11-02 |
EP4296859A3 (en) | 2024-03-13 |
ES2958588T3 (es) | 2024-02-12 |
US20190052692A1 (en) | 2019-02-14 |
US20170318072A1 (en) | 2017-11-02 |
CA3021374C (en) | 2022-10-04 |
CN109328339B (zh) | 2023-12-12 |
EP3449371B1 (en) | 2023-09-06 |
WO2017187261A1 (en) | 2017-11-02 |
US11316914B2 (en) | 2022-04-26 |
EP3449371A1 (en) | 2019-03-06 |
CN117573392A (zh) | 2024-02-20 |
EP4296859A2 (en) | 2023-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109328339A (zh) | 应用间通信和集成代理 | |
CN105940654B (zh) | 特权静态被托管的web应用 | |
CN105793840B (zh) | 在撰写电子邮件的同时文件预览和许可 | |
CN105793862B (zh) | 动态程序在隔离环境中的受指导执行 | |
CN109358858A (zh) | 自动化部署方法、装置、介质及电子设备 | |
JP2020517126A (ja) | 視覚的ブロックチェーンブラウザ | |
CN104704468B (zh) | Web应用程序的跨系统安装 | |
US20150106723A1 (en) | Tools for locating, curating, editing, and using content of an online library | |
EP3235213A1 (en) | No password user account access | |
CN102520841A (zh) | 收集用户接口 | |
US11704373B2 (en) | Methods and systems for generating custom content using universal deep linking across web and mobile applications | |
CN102007509A (zh) | 通过基于web的桌面生产力应用程序来插入多媒体文件 | |
US20150286610A1 (en) | Managing and retrieving content from a shared storage | |
CN109213945A (zh) | 基于云的文档的许可管理 | |
US9311254B1 (en) | Method and apparatus for an improved access system | |
CN108351766A (zh) | 从移动设备创建和修改应用 | |
CN104572439B (zh) | 用于生成关于潜在的回归的警告方法和系统 | |
US20230161954A1 (en) | Methods and systems for populating application-specific information using overlay applications | |
CN116661936A (zh) | 页面数据的处理方法、装置、计算机设备及存储介质 | |
KR101775293B1 (ko) | 메신저 대화 관리 방법과 시스템 및 기록 매체 | |
US10417296B1 (en) | Intelligent bookmarking with URL modification | |
US20220094757A1 (en) | Synchronous shared webpage fragment across trusted devices | |
US20230262031A1 (en) | Methods and systems for linking mobile applications to multi-access point providers using an intermediary database | |
US20240237088A1 (en) | Methods and systems for linking mobile applications to multi-access point providers to provide secure communication of encrypted user data | |
Shahin | Design and Implementation of OpenDSA Interoperable Infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |