CN105027535A - 使用rest类api的应用的向后兼容特征级版本控制 - Google Patents

使用rest类api的应用的向后兼容特征级版本控制 Download PDF

Info

Publication number
CN105027535A
CN105027535A CN201480011155.3A CN201480011155A CN105027535A CN 105027535 A CN105027535 A CN 105027535A CN 201480011155 A CN201480011155 A CN 201480011155A CN 105027535 A CN105027535 A CN 105027535A
Authority
CN
China
Prior art keywords
resource
client
version
server
distributed application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480011155.3A
Other languages
English (en)
Inventor
S·泰恩
D·劳
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 Technology Licensing LLC
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 CN105027535A publication Critical patent/CN105027535A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

应用的客户端和服务器侧实例利用符合代表性状态转移体系结构的并支持向后兼容的特征级版本控制的应用编程接口(API)。由应用的服务器侧实例维护的资源独立于应用的其余部分的修订而被修订。应用的服务器侧实例维护多个版本的资源和/或作为资源的各修订的超集的资源,使得兼容版本的资源被提供给应用的客户端侧实例。

Description

使用REST类API的应用的向后兼容特征级版本控制
背景
分布式应用是在网络中的两个或更多个计算机上执行的软件,其中这样的计算机可通过网络来彼此通信。一般而言,在客户端-服务器环境中,分布式应用具有两个部分:1)在客户端计算设备上执行的“前端”;以及2)在服务器计算设备上执行的“后端”。分布式应用在客户端计算设备上执行的实例在本文中被称为“客户端”,而分布式应用在服务器计算设备上执行的实例在本文中被称为“服务器”。分布式应用可使用应用编程接口(API)来提供用于不同执行实例之间通信的通用接口,并且该通用接口可被用于以能被应用开发者理解并能被应用的不同执行实例使用的方式来提供服务、特征和信息。
常规使用分布式应用的web应用程序接口(API)使用链接关系来表达由服务器支持的能力,其中链接关系的使用符合HATEOAS(作为应用状态的引擎的超文本)原理。通过添加新链接关系可引入新能力;然而,在常规的方法中,这负面地影响了向后兼容性。
例如,对服务器的修改可以是中断改变,其中修改可导致客户端与服务器不兼容。在另一示例中,对客户端的修改可以是中断改变,其中修改可导致客户端与另一个客户端(例如,传统客户端)不兼容。例如,当服务器被改变使得它与客户端不兼容时,客户端将不能完全地与服务器交互。
在另一个示例中,对服务器作出的修改可能是非中断改变,但是这样的修改可能仍然导致不希望的结果。用非中断改变修改分布式应用可导致包括不支持的或不使用的服务和数据的肿胀客户端。例如,对于服务器如何已经被更新的客户端侧发现可能是困难的或不可能的,因为改变可能仅在不便于新特征的快速集成的复杂文档中被指示,如果有的话。此外,在许多常规API中没有针对隔离特征版本控制的机制,且难以对分布式应用实施非中断改变而不作出不希望的发展牺牲。
此外,对分布式应用的显著改变可需要客户端或服务器版本被更新,其中经更新的版本中断了先前版本并阻碍向后兼容性。这样的改变不仅造成服务中断,还需要大量开发投入。此外,相比于作出隔离的改变而言开发完整新版本可花费多得多的时间,并且这样还妨碍为分布式应用开发新特征的速率。
发明内容
以下是在本文详细描述的主题的简要的发明内容。本发明内容不旨在是关于权利要求的范围的限制。
本文描述了涉及一般符合代表性状态转移(REST)架构的应用编程接口(API)的各个技术。这样的API为分布式应用的可向后兼容的特征级版本控制提供支持。
在一个或多个客户端计算设备和服务器计算设备之间分布的应用(分布式应用)可结合更新分布式应用来使用上述的API。在一个示例性实施例中,这样的分布式应用可以是统一通信(UC)应用、电子商务应用、社交网络应用,一些其它应用,或其组合。支持分布式应用的系统体系结构包括与服务器计算设备进行通信的客户端计算设备,其中客户端计算设备执行应用的客户端侧实例(客户端)而服务器计算设备执行服务器侧代码(服务器)。客户端计算设备可包括台式计算设备以及便携式计算设备,诸如移动电话、平板(板式)、大屏手机、可穿戴设备等。根据在此描述的各方面,UC应用可使用API来支持客户端之间和/或客户端和服务器之间的实时同步通信。此外,UC应用还可支持实时或近乎实时(例如,大约微秒)的异步通信。要理解,API通常符合REST体系结构(例如,API是REST类的API)。
使用标识符和命令来对API建模,其中标识符表示资源,并且命令表示与资源交互的方法,诸如传统的超文本传输协议(HTTP)方法和超媒体类型。资源可以是或包括数据,诸如文档、图像、数据库条目等。在另一示例中,资源可以是或包括计算机可执行代码,诸如服务、可执行线程等。此外,资源一般涉及被它们相应的标识符所描述的特定概念。例如,“联系人”资源可包括用户的联系人列表或可以是从其他资源检索联系人列表的服务。每个资源被可被客户端用于访问相应资源的相应标识符来标识。例如,标识符可以是全局标识符(例如,诸如统一资源定位符URL),或可以是专用于应用的相关标识符。资源还可包括其他资源的标识符,以指示资源之间的链接关系。例如,“特征”资源还可包括“联系人”资源的标识符,“联系人”资源包括用户的联系人列表,由此指示联系人列表是应用的特征。在访问“特征”资源和定位“联系人”资源的标识符后,客户端可接着使用“联系人”资源的标识符来检索联系人列表。这样的链接关系可允许客户端以类似于用户如何使用超链接来在网页中导航的方式来在资源中导航。
如上面注意的,命令代表与资源交互的各方法。示例方法包括与HATEOAS原理兼容的方法。通过在请求中组合标识符和命令,客户端可标识期望访问的资源以及期望执行的操作。例如,为了检索用户的联系人列表,客户端可生成包括命令和标识符的请求,命令代表检索操作而标识符代表“联系人”资源。特定资源可被称为“端点”,其中可在这样的端点上采取所定义的集合的动作。响应于该请求,服务器可向客户端传送回复,回复包括资源、包括来自资源的数据的数据分组、和或关于所请求的资源的其它信息。
在此描述支持特征级修订而且还支持向后兼容的REST类Web API。这样的REST类Web API提供客户端和/或服务器之间的接口,其允许不同版本的客户端和/或服务器相互兼容。服务器可使用该API来发现客户端可支持的特征,并且能以客户端能够理解的格式提供这样的特征。客户端可使用API来发现由客户端支持的特征何时在服务器上被修订;因此,开发者可使客户端适应以支持新特征而不使客户端的完整新版本成为必要或精读复杂文档。
REST类API还可以以不需要新资源的创建的方式来支持新特征(功能)的添加。相反,资源可被修订,并且这样的修订可由客户端识别。一个版本的资源可以是资源的全部先前版本/修订的超集。例如,第二版资源可包括原始版本的资源及修订。因为一个版本的资源是先前版本的超集,所以资源是向后兼容的。因此,尽管资源已经被修订(例如,成为第二版本的资源),原始版本的资源(客户端与之兼容)保持对客户端可用。
此外,客户端可请求服务器分发最小版本的资源或客户端与之兼容的特定版本的资源。服务器还可被配置来确定向服务器发送请求的客户端的版本,且服务器可接着将与该版本的客户端兼容的资源传送给客户端。因此,可继续将其它各版本告知客户端和服务器,以维持兼容性。
当对分布式应用期望地作出中断改变时,或作出将导致服务器或客户端与另一客户端不兼容的改变时,资源的版本可独立维持。例如,“联系人”资源可包括按字母顺序的联系人列表,并且可被修改来包括按通信时间的顺序的联系人列表。经修改的资源可能与客户端不兼容,并且因此服务器可维持第一版本的资源(其中联系人按字母顺序列出)并且还可维持第二版本的资源(其中联系人基于与客户端的用户通信的时间列出)。
除了传送关于对客户端可用的资源的信息之外,服务器还可传送关于资源的其它信息,诸如资源是否已经被修订、资源的一个版本、资源要被拒绝的指示、以及可能与客户端有关的其它信息。例如,开发者可能希望对正被客户端使用的资源(例如,客户端的特定版本)作出中断改变。开发者使资源包括关于资源要在例如三个月中被拒绝的信息。客户端的开发者因此被通知关于中断改变,并且可在三个月期限前实施对中断改变的支持。
由于对客户端可访问的资源的修改、对服务器的修改、以及诸如资源何时要被拒绝的其它信息,可被客户端识别,向客户端的开发者提供便于新功能的有利实现的信息。通知客户端的开发者什么特征已经被修改(以及这样的特征已如何被修改)而不必咨询应用文档且不必重写客户端。
因为REST类API提供向后兼容的特征级版本控制,对客户端的修改和/或服务器的修改不需要同期发生。在一些情况中,客户端和/或服务器可由不同开发者开发或可由不同实体执行,使得单个实体可能不对客户端和服务器两者都有控制。通过提供向后兼容的特征级版本控制,可以以不负面地影响现有客户端的方式对应用作出修改。
以上发明内容呈现了简化概述,以便提供对本文讨论的系统和/或方法的某些方面的基本理解。本发明内容并不是对本文所讨论的系统和/或方法的全面综述。并不旨在标识关键/重要元素,也不描绘这样的系统和/或方法的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更详细说明的序言。
附图简述
图1和2是促进执行通过REST类API的使用支持向后兼容的特征级版本控制的应用的相应示例性系统的功能性框图。
图3是示出了便于在客户端计算设备处通过利用REST类API的分布式应用的向后兼容的特征级版本控制的示例性方法的流程图。
图4和5是示出用于检索由分布式应用的服务器侧实例维护的资源的各自示例性方法的流程图。
图6是示出用于确定资源已经被修改的示例性方法的流程图。
图7和8是示出用于检索由分布式应用的服务器侧实例维护的资源的各自示例性方法的流程图。
图9是示出了用于向分布式应用的客户端侧实例提供兼容版本的资源的示例性方法的流程图。
图10是示出了用于修改资源并向分布式应用的客户端侧实例提供经修改的资源的示例性方法的流程图。
图11是示例性计算系统。
具体实施方式
现在参考附图来描述关于在分布式应用中通过遵从代表性状态转移(REST)体系结构的API的使用的向后兼容的特征级版本控制的各种技术,其中在全部附图中,相同的附图标记用于指代相同的元素。在以下描述中,出于解释的目的,提出了众多具体细节以提供对一个或多个方面的全面理解。然而,显然这(些)方面可以在没有这些具体细节的情况下被实践。在其他实例中,以框图形式示出公知的结构和设备以便于描述一个或多个方面。另外,要理解,被描述为由特定系统组件执行的功能性可由多个组件执行。类似地,例如,一组件可被配置成执行被描述为由多个组件执行的功能。
此外,术语“或”意指包括性“或”而非排斥性“或”。即,除非另有指定或从上下文显而易见,否则短语“X采用A或B”意指任何自然的包括性排列。即,短语“X采用A或B”藉由以下实例中任何实例得到满足:X采用A;X采用B;或X采用A和B两者。另外,本申请和所附权利要求书中所使用的冠词“一”和“某”一般应当被解释成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。
此外,如本文所使用的,术语“组件”和“系统”旨在包含用使得在被处理器执行时执行特定功能性的计算机可执行指令配置的计算机可读数据存储。计算机可执行指令可包括例程、功能等等。还要理解组件或系统可以位于单个设备上或跨若干设备分布。而且,此处所用的术语“示例性”旨在表示用作某些事物的图示或示例,而不意图指示优选。
现在参考图1,示出了便于在分布式应用中的向后兼容的特征级版本控制的示例性系统100。系统100包括多个客户端计算设备102-104。客户端计算设备102-104可包括台式计算设备、膝上型计算设备、上网本、超级本、平板(板式)、大屏手机、移动电话、可穿戴计算设备等。系统100还包括通过合适的各网络连接来与客户机计算设备102-104进行通信的服务器计算设备106。此外,可在客户端计算设备102-104中的计算设备之间直接建立通信信道。
客户端计算设备102-104和服务器计算设备106被配置来支持分布式应用的向后兼容的特征级版本控制,其中客户端计算设备102-104执行分布式应用的各自的客户端侧(前端)实例,而服务器计算设备执行应用的服务器侧实例(后端)。更具体而言,第一客户端计算设备102包括执行被保留在第一储存器110中的指令的第一处理器模块108。第一存储器110可包括应用的第一客户端侧实例,被称为第一客户端112。类似地,第N计算设备104可包括被配置成执行第N存储器116中的指令的第N处理器模块114。第N存储器116包括应用的第N客户端侧实例,称为第N客户端118。
服务器计算设备106包括被配置成执行服务器侧存储器122中的代码的服务器处理器模块120。例如,服务器侧存储器122可包括分布式应用的服务器侧代码(例如,后端代码),其中服务器侧代码在此称为服务器124。在一示例性实施例中,分布式应用可以是支持客户端计算设备102-104之间双向通信的通信应用。例如,通信应用可以是统一通信(UC)应用,其支持多个通信模态,包括语音、在场、即时消息收发、分组、桌面共享、协作等。在另一示例中,通信应用可以是或被包括在社交网络应用中。
由于针对分布式应用开发了新特征,可能期望修改服务器124或客户端102-104的至少一个来支持这样的特征。例如,分布式应用可被更新以支持特征,其中服务器124被修改以维护附加数据/代码,并且其中客户端112被期望修改以保持与服务器124兼容。通过REST类API的使用,分布式应用使用的不同版本的资源可被维护,客户端和/或服务器的不同版本可被维护等。此外,向后兼容的特征级版本控制可被提供,其中分布式应用提供的各自特征可独立于分布式应用的其余而被修订。因此,在一个示例中,修改服务器124不需要影响第一客户端112与服务器124的兼容性。
如以上指示的,分布式应用可以是通信应用,并且第一客户端112可致使图像用户界面(GUI)被显示在第一客户端计算设备102的显示屏(未显示)上,其中GUI包括例如,第一客户端112的用户的联系人、第一客户端112接收到的消息等。类似地,服务器124可访问用户的联系人列表、经由第一客户端112发送和接收的消息以及其他被用于填充GUI的数据。当第一客户端计算设备102的用户寻求将一通信传送到联系人(例如,第N客户端计算设备104的用户)时,第一客户端112可经由服务器124或由服务器124建立的信道与第N客户端118进行通信。服务器124,除了路由通信外,还可向第一客户端112实时发送其它信息,诸如可用于接收消息的联系人。
如在此将进一步仔细描述的,REST类API以端点的方式建模,所述端点为可在其上采取特定行为的资源。资源由各标识符表示,并且动作(例如,与资源交互的方法)由命令表示,诸如传统的超文本传输协议(HTTP)方法和超媒体类型。例如,包括联系人列表的资源可以是端点,对这样的列表的检索可被支持。因此,资源可以是或包括数据,诸如文档、图像等。此外,资源可以是或包括:包含致使服务器124与其他计算设备进行通信的计算机可执行指令的计算机可执行服务。此外,资源可以是或包括数据和计算机可执行指令的组合。此外,每个资源可针对其标识符所描述的相应概念。例如,“联系人”资源可包括用户的联系人列表。
标识符可以是全局标识符,诸如统一资源定位符(URL),或可以是专用于分布式应用的相关标识符。资源还可包括另一资源(或多个资源)的标识符,以指示资源和该另一资源之间的链接关系。例如,“特征”资源还可包括对“联系人”资源的链接关系,例如,“特征”资源可包括“联系人”资源的标识符,其中联系人资源包括用户的联系人列表。在访问“特征”资源(例如,来自服务器124)和定位其中的“联系人”资源的标识符后,第一客户端112可接着使用“联系人”资源的标识符来访问联系人列表。这样的链接关系可允许第一客户端112以类似于用户如何使用超链接来在网页中导航的方式来在资源中导航。
分布式应用的特定资源可以是应用的接入端点,并且可包括到其它资源的链接关系。例如,仅具有接入端点“特征”资源的信息的客户端可导航到特征资源,以检索“特征”资源包含的链接关系,并因此知晓什么资源对客户端可用。因此,客户端可导航到链接关系中标识的资源。
现在参考图2,示出了便于通过利用REST类API的向后兼容的特征级版本控制的示例性系统200。系统200包括通过REST类API的使用与服务器124进行通信的第一客户端112。在另一实施例中,服务器124可用第N客户端118来代替,使得第一客户端112和第N客户端118相互直接通信。REST类API,如上所述,使用标识符和命令来建模。这样的标识符和命令可以是通用的,由此它们可被使用而不管正被执行的特定应用、正与其通信的特定设备或正被进行的特定操作,并由此提供设备之间的一般化的接口。
现在描述对应于REST类API的资源。如所示,服务器124可包括或可访问多个资源(例如,第一资源202到第M资源204)。资源的格式是任意的,如资源可被结构化为数据库、文件等。各标识符可各自代表资源202-204,其中资源可包括至少一个数据(诸如文档、图像、数据库条目等)、计算机可执行指令等。每个资源与各概念有关(例如,可被资源的标识符来描述)。
资源还可包括其他资源的标识符,以指示到其它资源之间的链接关系。例如,第一资源202可以是“特征”资源,并且因此可包括对第一客户端112可用的资源的链接关系列表,包括到第M资源204的链接关系。例如,第M资源204可以是“联系人”资源,其被“特征”资源链接到如下:
link rel Href
联系人 http://example.com/features/contacts
其中“link rel”指链接关系“联系人”的相关标识符和标签,因此是“联系人”资源(例如,第M资源204)的相关标识符。“href”指全局标识符,其中“http://example.com/features/contacts”是“联系人”资源的全局标识符。
服务器124还可维护资源的多个版本/修订,其中,资源的第一修订还可被称为资源的第二版本,第二修订为第三版本,以此类推。要理解一个版本的资源可以是该资源的全部先前版本的超集;因此,第二版本的资源包括第一版本的资源以及对第一版本的资源的修订。每个资源202-204可具有各自修订属性,其可被用于通过由REST类API支持的方法来标识最近版本以及对第一客户端112(和其它客户端)可用的可用版本。服务器124可维护第一资源202的第一版本206到第一资源202的第J版本208。类似地,服务器124可维护第M资源204的第一版本210到第M资源204的第K版本212。服务器124可以以各种方式维护多个版本的资源。例如,服务器124可单独地维护每个版本。
在一个示例中,一个版本的资源可以是先前版本的资源的超集;然而,单独地维护多个版本可涉及维护冗余数据(例如,对第一资源202的第一版本206和第一资源202的第J版本208两者通用的第一资源202的第一版本206)。因此,资源202-204的第一版本206和210可被维护,且资源202-204的其它版本可以是附在资源202-204的第一版本206和210上的修订。例如,服务器124可维护第一资源202的第一版本206以及修改第一资源202的第一版本206的修订(例如,从而形成第一资源202的第二版本,同时维护第一资源202的第一版本206),而不是维护第一资源202的第一版本206和第一资源202的第二版本(未示出)。因此,修订可被附到资源上。
现在描述REST类API所支持的用于与资源交互的方法(由命令表示)。REST类API所支持的示例性方法包括传统的超文本传输协议(HTTP)方法和超媒体类型。由此,更加具体的,示例性方法包括用于从资源中检索数据的方法(例如,经由“GET(取得)”命令)、用于将数据添加到资源的方法(例如,经由“POST(张贴)”命令)、用于替换或添加资源的方法(例如,经由“PUT(放入)”命令)以及用于删除资源的方法(例如,经由“DELETE(删除)”命令)。第一客户端112可生成包括标识符和命令的请求,从而标识想要访问的资源以及关于该资源的要执行的方法。因此,第一客户端112包括请求器组件214,其被配置用于通过向包括方法(诸如用于从资源检索数据的方法)的标识和期望访问的资源的全局标识符的标识的服务器124发送请求来访问资源202-204中的一个资源。
例如,第一客户端112可通过使得请求器组件214检索对第一客户端112可用的资源的列表来导航到应用的接入端点。例如,第一客户端112可通过请求包括对第一客户端112可用的资源的列表的“特征”资源来导航到应用的接入端点。请求器组件214可将以下作为对第一资源202的请求来传送:
GET http://example.com/features/
其中“GET”标识用于检索数据的方法,而“http://example.com/features”是标识第一资源202(接入端点)的全局标识符。
响应于接收来自第一客户端112的对第一资源202的请求,服务器124可将对请求的回复传送到第一客户端112,其中回复包括第一资源202。在另一示例中,服务器124可基于第一资源202的内容来生成数据分组,并且回答可包括这样的数据分组。例如,当相比于第一资源202的大小时,这样的数据分组在大小上可更小。此外,当相比于第一资源202的格式时,数据分组可具有更容易被第一客户端112解析的格式。数据分组还可包括关于分布式应用的另外的信息,诸如,例如,标识服务器124的版本的数据、将资源标识为要被拒绝的资源的数据等。
在一示例中,数据分组可以是或包括文档、列表等,并可具有诸如标记文件(例如,XML)或对象注释文件(例如,JSON)之类的结构化文件格式。继续第一资源202包括对第一客户端112可用的资源列表的示例,这样的第一资源202可包括到第M资源204(包括第一客户端112的用户的联系人列表的“联系人”资源)的链接。当第一客户端112请求第一资源202时,服务器124基于第一资源202生成数据分组,其中数据分组可以是包括包含对第M资源204的链接关系的链接关系列表的数据库的XML表示,如下:
<Features>
<link rel=”contacts”href=”/http://example.com/features/contacts”/>
</Features>
当,如图2所示,服务器124维护第M资源204的多个版本时,第一资源202还可包括第M资源204的链接关系中的修订属性,其标识第M资源204对第一客户端112可用的最近版本,如下:
其中“rev”是修订属性,且“1”指示第M资源204的第一修订(例如,第M资源204的第二版本)对第一客户端112可用。修订属性还可指示资源的哪些版本是或不是可用的。例如,修订属性可被用来指示第二版本的资源可用,但是第三版本的资源不可用。此外,链接关系中修订属性的缺乏还可被看成是指示资源的当前版本是资源的唯一版本(例如,资源的第一版本)的修订属性。
因此,当服务器124接收第一版本的资源时,可能不存在资源的修订属性。当服务器124接收对资源的修订时,可为该资源生成修订属性,且在对资源的另外的修订被接收时,可针对每个修订将修订属性递增一。
第一客户端112还包括接收从服务器124传送到第一客户端112的回复的接收器组件216。例如,接收器组件216可接收包括上述修订属性的链接关系的XML表示。第一客户端112可因此定位第M资源204的标识符。一旦第M资源的标识符已经被定位,请求器组件214可接着传送请求(例如,使用“GET”命令和第M资源204的标识符)以从服务器124检索第M资源204(或其中包括的数据)。有效地,接着,第一资源202通过链接关系链接到第M资源204。
此外,由于第一客户端112已经(例如,通过请求第一资源202)导航到应用的接入端点,因此专用于分布式应用的相关标识符可被用于导航到资源。因此,由请求器组件214生成的对第M资源204的请求可以如下:
GET contacts(获得联系人)
其中“contacts”是第M资源204的相关标识符。
由此,第一客户端112可请求在服务器124上的第M资源204的内容,而非必须本地地存储联系人列表。标识符和方法的使用允许第一客户端112与端点进行交互而不必须具有端点如何被存储在服务器计算设备106上或藉此服务器124为该端点实施所请求的方法的方式的知识。
响应于接收对第M资源204的请求,服务器124可向第一客户端112传送回复。在对第M资源204的请求中,第一客户端112不需要指定版本,以接收第M资源204的与第一客户端112兼容的版本。例如,第一客户端112可与第M资源204的第一版本兼容,且来自服务器124的回复可包括第M资源204的第K版本212的数据分组。然而,因为,第M资源204的第K版本212包括第M资源204的第一版本210,所以第一客户端112接收第一客户端112与之兼容的一个版本。在一个示例中,服务器124可被配置来使用第M资源的最近的版本来生成回复。在另一个示例中,请求器组件214还可被配置来将标识客户端112的版本的数据包括在请求中,并且服务器124可在回复中传送已知与第一客户端112的该版本兼容的版本的资源。
此外,请求器组件214还可被配置来请求来自服务器124的回复包括特定版本(或特定诸版本)的资源。例如,第一客户端112可被配置来支持利用第二版本的资源的特征(例如,特征与第一版本的资源不兼容)。因此,第一客户端112,在请求中,可指示回复要包括至少是第二版本的资源的版本的资源,并且因此能够支持前述特征。在另一示例中,请求器组件214可被配置来请求回复仅包括特定版本的资源。例如,可能期望最小化由服务器124传送的回复的大小,且因此回复包括第二版本的资源而不是第三版本的资源可能是期望的。
在一些情况中,第一客户端112请求的特定版本或诸版本的资源在服务器124上不可用。当这发生时,服务器124可被配置来在回复中包括所请求的资源的版本或诸版本不可用的指示,且还可被配置来生成包括不同于第一客户端112所请求的版本的版本的资源(或基于不同版本的资源的数据)的回复。因此,在不能完全符合第一客户端112的请求时,服务器124可被配置来提供可用数据。在另一示例性实施例中,如果由第一客户端112请求的版本不由服务器124提供,那么对资源的请求失败。
除了使用来自服务器124的回复中的数据来作出对资源的附加请求之外,第一客户端112可被配置来确定关于由服务器124维护的资源的各版本以及服务器124的一个版本的信息。至此,客户端112还包括修订检测组件218,其可确定特定资源(或基于该特定资源的数据分组)已被接收。
修订检测组件218被配置来至少部分基于所接收的来自服务器124的回复中的资源的修订属性和先前接收的来自服务器124的回复中的资源的修订属性之间的比较来确定资源已被修订。例如,在与服务器124的第一通信中,第一客户端112可接收包括对应于第一资源202的数据分组的回复,其中数据分组包括指示第M资源204的第一版本210对第一客户端112可用的第一修订属性。在从服务器124后续接收的回复中,第一客户端112可接收对应于第一资源202的另一数据分组,其中另一数据分组包括指示第M资源204的第二版本对第一客户端112可用的第二修订属性。通过比较第一修订属性和第二修订属性,修订检测组件218可确定第M资源已经被修订。
这样的确定可导致第一客户端112向第一客户端112的开发者传送第M资源204已经被修订的通知。由此,开发者可为第一客户端112实施支持对第M资源204的修订的更新。此外,由于修订属性关于特定资源(例如,第M资源204),开发者被通知分布式应用的后端已经在哪里以及如何被修改,而无需咨询复杂文档。此外,如果开发者已经实施仍需被应用到第一客户端112的更新,该确定可导致第一客户端112搜索更新或以其他方式将用户引导到更新第一客户端112。
对第一客户端112和/或服务器124的更新不需要以特定次序或在特定时间实施,因为REST类API可支持客户端和服务器之间的向前和向后兼容。因此,分布式应用中客户端和服务器支持的功能可独立发展,而无需一起中断或变得不可用。此类行为特别适合结合相对大的分布式体系结构,其中不可能在每次支持功能改变时重新部署整个编程环境。
然而,可以查明,不是对服务器124的全部修改都可包括资源的修订。例如,修改可包括漏洞修复或可具有对第一客户端112的行为的不透明的影响的其它改变。至此,修订组件218还可被配置以至少部分基于来自服务器124的第一回复中的指示服务器124是分布式应用的后端的特定(第一)版本的数据和来自服务器124的第二回复中的指示服务器124是分布式应用的后端的更新近版本的数据之间的比较来确定服务器124已经被修订了。
在另一个示例中,可能期望服务器124不再维护资源或特定版本的资源。例如,第一客户端112可被更新使得联系人列表不再被使用/需要。因此,服务器124可被配置来在回复中包括资源或特定版本的资源要被拒绝的指示。可选地,指示可包括资源或特定版本的资源要被拒绝的时间。这样的指示通知第一客户端112的开发者资源或特定版本的资源应当避免,因为它将最终不再被服务器124维护。接收器组件216可接收这样的指示,并可将这样的指示传送给开发者。
当各版本的资源可被用于支持与不同版本的客户端兼容的特征时,可能还期望对可能负面地影响与第一客户端112的在先版本的兼容性的资源作出修改。例如,分布式应用的开发者可能期望使用新协议或实施与第一客户端112的在先版本不兼容的标准或服务。在这种情况下,通过维护资源的独立版本,REST类API支持第一客户端112和服务器124之间的向后兼容性。
不像上面描述的各版本的资源,被独立维持的版本的各资源不是先前版本资源的超集。例如,第一客户端112的第一版本可与第M资源204的第一版本210兼容,且第一客户端112的第二版本可与第M资源204的第K版本212兼容。在一些实施例中,可能期望独立于第M资源204的第K版本212来维护第M资源204的第一版本210,以确保与第一客户端112的兼容性,而不考虑其版本。
例如,第一资源202可以是“应用版本”资源并包括到不同版本的应用的接入端点的链接关系,而不是作为到分布式应用的接入端点的“特征”资源。由服务器124响应于接收对第一资源202的请求传送的回复可如下:
其中,第一、第二和第三链接关系对应于各版本的应用的接入端点,如它们各自的关系属性所指示的。与分布式应用的后端的特定版本兼容的客户端可在回复中定位特定版本的接入端点,并导航到那个接入端点。
由于资源的被独立维护的版本不是先前版本的超集,被独立维护的版本的修订属性指对该版本的修订而不是对资源的另一版本的修订。例如,资源的第一版本可以经受修订,因此其变成资源的第二版本(例如,版本1.2)。随后,该第二版本的资源可被修订两次,因此它是第二版本的第三版本(例如,版本2.3).因此,特征级版本控制可针对不同版本的服务器来维护,且应用可维护与和不同独立版本的服务器兼容的各版本的客户端的向后兼容性。
此外,如上所指示的,向前的兼容性也被支持,其中客户端112的版本可被更新并与服务器124的较老版本交互。因此,在与较老服务器通信时,客户端112可继续起作用。常规地,服务器124(以及分布式应用的后端上的其它服务器)每个是最近的版本,且可支持向后兼容性以支持较老的客户端(尽管各客户端不能够检测资源版本/修订和/或将特定资源版本/修订强推到服务器)。在此描述的各特征允许分布式应用的后端包括变化版本的多个服务器,其中这样的服务器与变化版本的多个客户端进行交互,因此支持向前和向后兼容性两者。
图3-11示出涉及通过使用REST类API的分布式应用的向后兼容的特征级版本控制的示例性方法。尽管各方法被表示和描述为顺序地执行的一系列动作,但要理解,这些方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,某一动作可以与另一动作并发地发生。此外,在一些实例中,实现本文描述的方法并不需要所有动作。
此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。
现在参考图3,示出了便于在客户端计算设备处通过利用REST类API的分布式应用的向后兼容的特征级版本控制的示例性方法300。方法300开始于302,并且在304,在客户端计算设备接收执行通信应用的客户端侧实例的请求。通信应用使用符合REST体系结构的API,其中该API支持对由通信应用的服务器侧实例维护的资源的修订,该修订独立于对应用的其余部分(例如,应用的服务器侧实例)的修订。在306,响应于接收所述请求,通信应用的客户端侧实例在客户端计算设备上执行。在一个示例中,执行应用的客户端侧实例包括向应用的服务器侧实例发送对第一资源的请求。方法300在308完成。
现在参考图4,示出了执行分布式应用的客户端侧实例(客户端)的示例性方法400。方法400开始于402,并且在404,客户端向通信应用的服务器侧实例(服务器)发送对第一资源的请求。在406,从服务器接收对第一资源的请求的回复。该回复可包括客户端请求的一个版本的资源或包括与客户端请求的一个版本的资源相关的数据的数据分组。此外,回复可包括指示服务器的一个版本、修订属性等的数据分组。
在408,服务器的一个版本可至少部分基于在406接收的回复来标识。在410,客户端可基于在406接收的回复中指示的服务器的版本和在先前接收的回复中标识的服务器的版本之间的比较来推断修订已被施加到服务器。方法400在412完成。
现在参考图5,示出了执行分布式应用的客户端侧实例(客户端)的另一示例性方法500。方法开始于502,并且在504,客户端向分布式应用的服务器侧实例(服务器)传送对第一资源的请求。在506,由客户端接收对请求的回复,其中回复基于第二版本的资源,该回复包括与客户端兼容的第一版本的资源。回复还基于可能或可能不与客户端兼容的版本。
因为至少第一版本的资源与客户端兼容,所以客户端与服务器兼容。在508,客户端可接收第一版本的第一资源要被拒绝的指示。这样的指示可被传送到客户端的开发者,其可接着考虑第一资源的第一版本(客户端与其兼容的第一资源的该版本)的拒绝来实施对客户端的更新。方法500在510完成。
现在参考图6,示出用于确定资源已被修订的示例性方法600。方法600开始于602,并且在604,客户端向服务器传送对第一资源的请求。在606,客户端接收对请求的回复,其中回复包括标识第二资源的,并进一步标识一版本(例如,第一版本)的第二资源的修订属性。在608,客户端将该修订属性与从服务器接收的先前回复中的修订属性进行比较。在610,客户端基于在608的比较来确定第二资源已被修订。然后,可向客户端的开发者传送通知,指示第二资源已经被修订。该方法在612结束。
现在参考图7,示出了便于检索由服务器维护的资源的又一示例性方法700。方法700开始于702,并且在704,客户端向服务器传送对第一资源的请求。在706,客户端接收对请求的回复,其中回复包括将第二资源标识为对客户端可用的链接关系。该链接关系可包括第二资源的标识符,并且可任选地还包括第二资源的修订属性。标识符可以是相关标识符、描述第二资源的主题的关系属性和/或第二资源的全局标识符。在708,应用的客户端侧实例向服务器传送对第二资源的请求。该请求可包括第二资源的标识符(由客户端在链接关系中标识)。在710,客户端接收对第二资源的请求的回复。该回复可包括一个版本的第二资源或基于第二资源的数据分组,以及其它数据。方法700在712完成。
现在参考图8,示出了便于检索由分布式通信应用的服务器维护的资源的又一示例性方法800。方法800开始于802,并且在804,客户端向服务器发送对第一资源的请求。例如,请求可指示特定版本的资源是期望的。在806,客户端接收对请求的回复,其中回复包括在请求中指定的该版本的第一资源。方法800在808完成。
现在参考图9,示出了可在服务器计算设备(其执行分布式通信应用的服务器侧代码)上执行的示例性方法900。方法900开始于902,并且在904,服务器从客户端接收对第一资源的请求。例如,请求可包括标识客户端的版本的数据。在906,服务器至少部分基于请求来标识客户端的该版本。在908,服务器向客户端传送与该客户端的所标识的版本兼容的一版本的第一资源。方法900在910完成。
现在参考图10,示出用于修改资源并将已被修改资源提供给客户端的示例性方法1000。方法1000开始于1002,并且在1004,服务器接收第一版本的第一资源。服务器可被配置来将第一版本的第一资源维护在对服务器可用的计算机可读数据存储中。在1006,服务器为第一资源生成链接关系,该链接关系指示第一资源对客户端可用并进一步包括将第一资源标识为第一版本的第一资源的修订属性。在示例性实施例中,服务器可响应于从客户端接收对第一资源的请求,生成链接关系。
在1008,服务器接收第二版本的第一资源,其包括第一版本的第一资源和对第一资源的修订。可替换地,服务器可接收附在第一版本的第一资源上的对第一版本的修订,以生成第二版本的第一资源。在1010,服务器将第一资源的修订属性递增一,以此指示存在第二版本的第一资源。
在1012,服务器从客户端接收对第一资源的请求。在1014,响应于在1012接收请求,服务器可向客户端传送第二版本的第一资源。可选地,来自客户端的请求可标识资源的特定版本(或资源的最小版本)。因此,服务器被配置来用符合请求的一个版本的资源、最新近版本的资源,或与客户端兼容的一个版本的资源来回复。方法1000在1016完成。
现在参考图11,示出了可以根据本文公开的系统和方法使用的示例性计算设备1100的高级图示。例如,计算设备1100可在促进通过利用REST类API的分布式应用的向后兼容的特征级版本控制的系统中被使用。计算设备1100包括执行存储在存储器1104中的指令的至少一个处理器1102。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器1102可以通过系统总线1106访问存储器1104。除了存储可执行指令,存储器1104还可存储应用的实例、资源、资源的版本等。
计算设备1100还包括可由处理器1102通过系统总线1106访问的数据存储1108。数据存储1108可包括可执行指令、与执行分布式应用的客户端或服务器有关的数据或元数据、资源、API指令或方法等。计算设备1100还包括允许外部设备与计算设备1100进行通信的输入接口1110。例如,输入接口1110可被用于从外部计算机设备、从用户等处接收指令。计算设备1100也可包括使计算设备1100和一个或多个外部设备相接口的输出接口1112。例如,计算设备1100可以通过输出接口1112显示文本、图像等。
考虑了通过输入接口1100和输出接口1112与计算设备1100通信的外部设备可被包括在提供实质上任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘、鼠标、遥控器等之类的输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然语言界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与计算设备1100交互。相反,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和语音、视觉、触摸、手势、以及机器智能等。
另外,尽管被示为单个系统,但可以理解,计算设备1100可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备1100执行的任务。
在此所述的各种功能可以以硬件、软件或其任何组合来实现。如果以软件实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可由计算机访问的任何可用存储介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来承载或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟(BD),其中盘通常以磁的方式再现数据,而碟通常用激光以光学方式再现数据。另外,所传播的信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,其包括便于计算机程序从一地向另一地转移的任何介质。连接例如可以是通信介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外线、无线电、以及微波之类的无线技术来从网站、服务器、或其它远程源传输,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外线、无线电、以及微波之类的无线技术被包括在通信介质的定义中。上述的组合应当也被包括在计算机可读介质的范围内。
替换地或另选地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。处理器模块和/或处理器模块和本文中描述的相关联存储器的组合旨在包含这样的硬件逻辑组件中的任意。
以上所描述的包括一个或多个实施例的示例。当然,出于描绘前述各方面的目的而描述上述设备或方法的每个可以想到修改和改变是不可能的,但本领域内的普通技术人员可以认识到,各方面的许多另外的组合和置换都是可能的。因此,所描述的各方面旨在包括所有这些属于所附权利要求书的精神和范围内的改变、修改和变型。此外,就在详细描述或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。

Claims (10)

1.一种计算设备,包括:
处理器模块;以及
存储器,所述存储器包括由所述处理器模块执行的分布式应用的客户端侧实例,所述分布式应用支持所述应用的所述客户端侧实例和所述应用的服务器侧实例之间通过使用符合代表性状态转移(REST)体系结构的应用编程接口(API)的通信,所述API支持对由所述应用的所述服务器侧实例维护的资源的独立于对所述分布式应用的其它修订的修订。
2.如权利要求1所述的计算设备,其特征在于,所述分布式应用的所述客户端侧实例包括:
请求器组件,所述请求器组件向所述应用的所述服务器侧实例传送对由所述分布式应用的所述服务器侧实例维护的第一资源的请求,所述请求包括所述第一资源的至少一个标识符或描述所述第一资源的内容的关系属性;以及
配置用于接收对所述请求的回复的接收器组件。
3.如权利要求2所述的计算设备,其特征在于,所述分布式应用的所述客户端侧实例与所述第一资源的第一版本兼容,所述回复包括第二版本的第一资源,所述第二版本的第一资源包括第一版本的第一资源和对所述第一版本的第一资源的修订。
4.如权利要求2所述的计算设备,其特征在于,所述回复包括第二资源的修订属性,所述修订属性将所述第二资源标识为所述第二资源的第K版本,所述应用的所述客户端侧实例还包括修订检测组件,所述修订检测组件至少部分基于所述第二资源的修订属性和所述第二资源的在先版本的修订属性之间的比较来确定所述第二资源已经被修订。
5.如权利要求2所述的计算设备,其特征在于,所述回复包括标识所述分布式应用的所述服务器侧实例的版本的数据,所述分布式应用的所述客户端侧实例还包括修订检测组件,所述修订检测组件至少部分基于标识所述分布式应用的所述服务器侧实例的版本的数据和先前接收到的来自所述分布式应用的所述服务器侧实例的回复的内容之间的比较来推断对所述应用的所述服务器侧实例的修订。
6.如权利要求2所述的计算设备,其特征在于,所述回复包括由所述第一资源包括的链接关系,所述链接关系标识第二资源对所述应用的所述客户端侧实例可用,所述链接关系包括:
所述第二资源的标识符;
描述所述第二资源的主题的关系属性;以及
标识一个版本的所述第二资源的修订属性。
7.如权利要求6所述的计算设备,其特征在于,所述请求器组件还被配置来向所述分布式应用的所述客户端侧实例传送对所述第二资源的请求,所述请求包括所述第二资源的标识符以及描述所述第二资源的主题的关系属性中的至少一个。
8.如权利要求1所述的计算设备,其特征在于,所述分布式应用是统一通信应用。
9.一种由计算设备的处理器模块执行的方法,所述方法包括:
接收执行分布式应用的客户端侧实例的命令,所述分布式应用支持所述客户端侧实例和所述分布式应用的服务器侧实例之间的双向通信,应用编程接口(API)支持所述双向通信,所述API符合代表性状态转移(REST)体系结构并支持对由所述分布式应用的所述服务器侧实例维护的资源的独立于对所述分布式应用的其余部分修订的修订;以及
响应于接收所述命令来执行所述分布式应用的所述客户端侧实例,其中执行所述分布式应用的所述客户端侧实例包括向所述分布式应用的所述服务器侧实例传送对第一资源的请求。
10.如权利要求9所述的方法,其特征在于,所述请求包括所述第一资源的标识符或描述所述第一资源的主题的关系属性中的至少一个,且所述方法进一步包括:
从所述分布式应用的所述服务器侧实例接收对所述请求的回复。
CN201480011155.3A 2013-02-28 2014-02-26 使用rest类api的应用的向后兼容特征级版本控制 Pending CN105027535A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361771073P 2013-02-28 2013-02-28
US61/771,073 2013-02-28
US13/927,112 US20140244708A1 (en) 2013-02-28 2013-06-26 Backwards-compatible feature-level version control of an application using a restlike api
US13/927,112 2013-06-26
PCT/US2014/018460 WO2014134082A1 (en) 2013-02-28 2014-02-26 Backwards-compatible feature-level version control of an application using a restlike api

Publications (1)

Publication Number Publication Date
CN105027535A true CN105027535A (zh) 2015-11-04

Family

ID=51389315

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201480011290.8A Pending CN105900391A (zh) 2013-02-28 2014-02-26 使用restlike api进行实时通信
CN201480011220.2A Pending CN105144659A (zh) 2013-02-28 2014-02-26 支持弹性和可缩放分布式应用的rest类api
CN201480011317.3A Pending CN105210348A (zh) 2013-02-28 2014-02-26 用于认证统一通信应用的客户端的基于对称密钥的web票证
CN201480011155.3A Pending CN105027535A (zh) 2013-02-28 2014-02-26 使用rest类api的应用的向后兼容特征级版本控制

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN201480011290.8A Pending CN105900391A (zh) 2013-02-28 2014-02-26 使用restlike api进行实时通信
CN201480011220.2A Pending CN105144659A (zh) 2013-02-28 2014-02-26 支持弹性和可缩放分布式应用的rest类api
CN201480011317.3A Pending CN105210348A (zh) 2013-02-28 2014-02-26 用于认证统一通信应用的客户端的基于对称密钥的web票证

Country Status (6)

Country Link
US (5) US9954843B2 (zh)
EP (4) EP2949108B1 (zh)
CN (4) CN105900391A (zh)
BR (1) BR112015020097A8 (zh)
ES (1) ES2613831T3 (zh)
WO (4) WO2014134082A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105704562A (zh) * 2016-03-29 2016-06-22 Tcl集团股份有限公司 一种网络电视云服务平台的多版本兼容方法及装置
CN106897053A (zh) * 2016-07-08 2017-06-27 阿里巴巴集团控股有限公司 一种代码发布方法与装置
CN107277140A (zh) * 2017-06-21 2017-10-20 山东浪潮通软信息科技有限公司 一种应用程序接口的分配方法、路由中间件及业务系统
CN108920164A (zh) * 2018-07-11 2018-11-30 郑州云海信息技术有限公司 云计算系统中主机的管理方法和装置
CN113424255A (zh) * 2019-02-12 2021-09-21 谷歌有限责任公司 引导车辆客户端设备使用设备上的功能

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10298642B2 (en) * 2016-02-17 2019-05-21 Quickbiz Holdings Limited, Apia User interface content state synchronization across devices
US11750673B2 (en) * 2011-08-01 2023-09-05 Spring Design, Inc. User interface content state synchronization across devices
US9710250B2 (en) * 2013-03-15 2017-07-18 Microsoft Technology Licensing, Llc Mechanism for safe and reversible rolling upgrades
US8769031B1 (en) * 2013-04-15 2014-07-01 Upfront Media Group, Inc. System and method for implementing a subscription-based social media platform
US9621494B2 (en) * 2013-05-21 2017-04-11 International Business Machines Corporation Generating instant messaging contacts for customer relationship management systems
US9854035B2 (en) 2013-05-28 2017-12-26 International Business Machines Corporation Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring periodic synchronization
US10044799B2 (en) 2013-05-28 2018-08-07 International Business Machines Corporation Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
CN104243273A (zh) * 2013-06-09 2014-12-24 阿里巴巴集团控股有限公司 即时通讯客户端显示信息的方法及设备和信息显示系统
CN105308897B (zh) * 2013-06-25 2019-09-13 诺基亚技术有限公司 用于渗透式社交联网中的匿名和可信认证的方法和装置
WO2015000120A1 (en) * 2013-07-01 2015-01-08 Nokia Corporation A method and apparatus for anonymous authentication on trust in social networking
US9736130B1 (en) * 2013-07-05 2017-08-15 Sonus Networks, Inc. Communications methods and apparatus related to web initiated sessions
US9654334B2 (en) * 2013-09-06 2017-05-16 Futurewei Technologies, Inc. System and method for fast compatibility verification of REST API based on REST Chart
US9239715B1 (en) * 2013-09-25 2016-01-19 Amazon Technologies, Inc. Cancel and rollback update stack requests
US20150113121A1 (en) * 2013-10-18 2015-04-23 Telefonaktiebolaget L M Ericsson (Publ) Generation at runtime of definable events in an event based monitoring system
US10304110B2 (en) * 2013-12-26 2019-05-28 Ebay Inc. Ticket listing triggered by URL links
JP6287335B2 (ja) * 2014-02-28 2018-03-07 株式会社リコー 端末装置、情報処理システム、情報送信方法及びプログラム
WO2016022574A1 (en) * 2014-08-05 2016-02-11 Damaka, Inc. System and method for providing unified communications and collaboration (ucc) connectivity between incompatible systems
US10223407B2 (en) * 2014-10-31 2019-03-05 Cisco Technology, Inc. Asynchronous processing time metrics
US9854029B1 (en) * 2014-11-04 2017-12-26 Amazon Technologies, Inc. Systems for determining improper assignments in statistical hypothesis testing
US10338910B2 (en) 2015-01-05 2019-07-02 Entit Software Llc Multi-tenant upgrading
US11303691B2 (en) * 2015-02-02 2022-04-12 Vmware, Inc. Streaming progress updates and results of rest API operations
JP2017004120A (ja) * 2015-06-05 2017-01-05 キヤノン株式会社 システム、サーバーシステム、方法、およびプログラム
US10057365B1 (en) * 2015-06-24 2018-08-21 Amazon Technologies, Inc. Asynchronous provision of resource status data
CN108292454B (zh) * 2015-12-03 2020-08-14 诺基亚技术有限公司 访问管理方法及装置
US10567184B2 (en) 2016-02-19 2020-02-18 Vertigo Media, Inc. System and method for group stream broadcasting with stateless queuing feature
US11277439B2 (en) 2016-05-05 2022-03-15 Neustar, Inc. Systems and methods for mitigating and/or preventing distributed denial-of-service attacks
US10958725B2 (en) * 2016-05-05 2021-03-23 Neustar, Inc. Systems and methods for distributing partial data to subnetworks
US10643147B2 (en) 2016-05-31 2020-05-05 International Business Machines Corporation Coordinated version control system, method, and recording medium for parameter sensitive applications
US10298656B2 (en) * 2016-06-08 2019-05-21 Western Digital Technologies, Inc. Extending representational state transfer application program interface (REST API) functionality
US10193749B2 (en) * 2016-08-27 2019-01-29 Nicira, Inc. Managed forwarding element executing in public cloud data compute node without overlay network
US10341371B2 (en) 2016-08-31 2019-07-02 Nicira, Inc. Identifying and handling threats to data compute nodes in public cloud
US20180088960A1 (en) * 2016-09-23 2018-03-29 International Business Machines Corporation Providing highly available and scalable access to a restricted access service through a restful interface
US20180091449A1 (en) * 2016-09-26 2018-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Event-driven policy-based distributed container management system
CN106778380B (zh) * 2016-11-28 2019-11-19 昆山国显光电有限公司 屏幕的点亮方法及系统
US10491698B2 (en) 2016-12-08 2019-11-26 International Business Machines Corporation Dynamic distribution of persistent data
US10574724B2 (en) * 2017-01-06 2020-02-25 Western Digital Technologies, Inc. Automatic discovery of management nodes and generation of CLI using HA module
CN111628971B (zh) 2017-02-09 2022-09-13 创新先进技术有限公司 一种信任登录方法
US10462265B2 (en) * 2017-02-17 2019-10-29 Plex, Inc. On-demand startup of offline servers and connection routing
US10203953B2 (en) 2017-02-24 2019-02-12 Microsoft Technology Licensing, Llc Identification of duplicate function implementations
CN106790285B (zh) * 2017-02-27 2019-09-06 杭州迪普科技股份有限公司 一种会话重用方法及装置
US11182496B1 (en) 2017-04-03 2021-11-23 Amazon Technologies, Inc. Database proxy connection management
US11106540B1 (en) 2017-04-03 2021-08-31 Amazon Technologies, Inc. Database command replay
US11500824B1 (en) 2017-04-03 2022-11-15 Amazon Technologies, Inc. Database proxy
US11392603B1 (en) * 2017-04-03 2022-07-19 Amazon Technologies, Inc. Database rest API
US10673715B2 (en) 2017-07-20 2020-06-02 Servicenow, Inc. Splitting network discovery payloads based on degree of relationships between nodes
US10491516B2 (en) 2017-08-24 2019-11-26 Nicira, Inc. Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10567482B2 (en) 2017-08-24 2020-02-18 Nicira, Inc. Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
EP3673627B1 (en) 2017-08-27 2023-09-13 Nicira, Inc. Performing in-line service in public cloud
US11842224B1 (en) 2017-09-01 2023-12-12 Amazon Technologies, Inc. Synchronous and asynchronous responses to data requests from remote devices
US10601705B2 (en) 2017-12-04 2020-03-24 Nicira, Inc. Failover of centralized routers in public cloud logical networks
US10862753B2 (en) 2017-12-04 2020-12-08 Nicira, Inc. High availability for stateful services in public cloud logical networks
CN110166962B (zh) * 2018-02-14 2021-01-05 华为技术有限公司 一种规则管理方法及设备
US10673855B2 (en) * 2018-04-10 2020-06-02 Sap Se Consolidated identity management system provisioning to manage access across landscapes
CN112020704A (zh) * 2018-04-18 2020-12-01 谷歌有限责任公司 用于执行应用更新周期的资源的设备间传输
CN111356996B (zh) 2018-06-02 2023-07-21 西部数据技术公司 用于版本验证的系统和计算机实现的方法
US10642804B2 (en) 2018-06-28 2020-05-05 Bank Of America Corporation Dynamic network database integration system
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US10491466B1 (en) 2018-08-24 2019-11-26 Vmware, Inc. Intelligent use of peering in public cloud
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US10819586B2 (en) * 2018-10-17 2020-10-27 Servicenow, Inc. Functional discovery and mapping of serverless resources
US10769586B2 (en) 2018-11-29 2020-09-08 Red Hat, Inc. Implementation of rolling key to identify systems inventories
CN113490969A (zh) * 2019-05-15 2021-10-08 K·库拉科夫斯基 用于登记预给定区域中的用户的方法和实现该方法的系统
US11615001B2 (en) 2019-06-27 2023-03-28 Netapp, Inc. Incremental restore of a virtual machine
US11023228B2 (en) 2019-07-19 2021-06-01 JFrog Ltd. Indexer operation and generation of index data
US11061667B1 (en) * 2020-04-27 2021-07-13 Citrix Systems, Inc. Selecting a version of an application
US11561672B1 (en) 2020-07-24 2023-01-24 Tableau Software, LLC Compatibility-based feature management for data prep applications
US11556320B2 (en) 2020-08-06 2023-01-17 Bank Of America Corporation Electronic system for dynamic analysis and detection of transformed transient data in a distributed system network
CN111866194B (zh) * 2020-09-24 2020-12-15 南京百锦信息科技有限公司 一种云端远程协同办公数据保护系统及方法
US11184463B1 (en) * 2020-11-11 2021-11-23 International Business Machines Corporation Interacting with a client system to gather client data to use to diagnose a problem at the client system
CN112637360B (zh) * 2020-12-29 2023-03-24 国泰君安证券股份有限公司 实现移动端与web之间进行安全通信的系统、方法、装置、处理器及其存储介质
US11948016B2 (en) 2021-05-19 2024-04-02 International Business Machines Corporation Application programming interface management
US11632432B2 (en) * 2021-06-09 2023-04-18 International Business Machines Corporation Dynamic overflow processing in a multi-user computing environment
EP4106290A1 (en) * 2021-06-17 2022-12-21 Deutsche Telekom AG A method for operating a distributed application
US11556403B1 (en) 2021-10-19 2023-01-17 Bank Of America Corporation System and method for an application programming interface (API) service modification
US12095764B2 (en) * 2022-08-23 2024-09-17 Truv, Inc. Authentication interface rendering and mirroring in a distributed architecture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075079A1 (en) * 2004-10-06 2006-04-06 Digipede Technologies, Llc Distributed computing system installation
US20080147834A1 (en) * 2006-12-19 2008-06-19 Quinn William M System and method for achieving highly scalable real-time collaboration applications using http
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
US20120102479A1 (en) * 2010-10-20 2012-04-26 Virginia Smith Automated service version upgrading

Family Cites Families (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7137006B1 (en) * 1999-09-24 2006-11-14 Citicorp Development Center, Inc. Method and system for single sign-on user access to multiple web servers
US6370571B1 (en) * 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US6065117A (en) 1997-07-16 2000-05-16 International Business Machines Corporation Systems, methods and computer program products for sharing state information between a stateless server and a stateful client
US6263432B1 (en) * 1997-10-06 2001-07-17 Ncr Corporation Electronic ticketing, authentication and/or authorization security system for internet applications
US9900305B2 (en) * 1998-01-12 2018-02-20 Soverain Ip, Llc Internet server access control and monitoring systems
US6985953B1 (en) * 1998-11-30 2006-01-10 George Mason University System and apparatus for storage and transfer of secure data on web
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US6421768B1 (en) * 1999-05-04 2002-07-16 First Data Corporation Method and system for authentication and single sign on using cryptographically assured cookies in a distributed computer environment
US7188181B1 (en) * 1999-06-30 2007-03-06 Sun Microsystems, Inc. Universal session sharing
US6405216B1 (en) 1999-09-17 2002-06-11 International Business Machines Corporation Internet-based application program interface (API) documentation interface
US6678733B1 (en) * 1999-10-26 2004-01-13 At Home Corporation Method and system for authorizing and authenticating users
AU2001228235A1 (en) * 2000-01-27 2001-08-07 Hummingbird Ltd. A method and system for implementing an enterprise information portal
US20020138728A1 (en) * 2000-03-07 2002-09-26 Alex Parfenov Method and system for unified login and authentication
US6950522B1 (en) * 2000-06-15 2005-09-27 Microsoft Corporation Encryption key updating for multiple site automated login
US7194764B2 (en) * 2000-07-10 2007-03-20 Oracle International Corporation User authentication
US20030115452A1 (en) * 2000-12-19 2003-06-19 Ravi Sandhu One time password entry to access multiple network sites
US8488766B2 (en) * 2001-02-27 2013-07-16 Verizon Data Services Llc Methods and systems for multiuser selective notification
US7218739B2 (en) * 2001-03-09 2007-05-15 Microsoft Corporation Multiple user authentication for online console-based gaming
US7421083B2 (en) * 2001-04-05 2008-09-02 General Instrument Corporation System for seamlessly updating service keys with automatic recovery
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US20020150253A1 (en) * 2001-04-12 2002-10-17 Brezak John E. Methods and arrangements for protecting information in forwarded authentication messages
US6986047B2 (en) * 2001-05-10 2006-01-10 International Business Machines Corporation Method and apparatus for serving content from a semi-trusted server
US7010600B1 (en) * 2001-06-29 2006-03-07 Cisco Technology, Inc. Method and apparatus for managing network resources for externally authenticated users
US7562387B2 (en) * 2001-09-07 2009-07-14 International Business Machines Corporation Method and apparatus for selective disabling of tracking of click stream data
US7818792B2 (en) * 2002-02-04 2010-10-19 General Instrument Corporation Method and system for providing third party authentication of authorization
US7523490B2 (en) * 2002-05-15 2009-04-21 Microsoft Corporation Session key security protocol
US7305629B2 (en) 2002-09-26 2007-12-04 International Business Machines Corporation Consolidation of computer documentation
US7360096B2 (en) * 2002-11-20 2008-04-15 Microsoft Corporation Securely processing client credentials used for Web-based access to resources
US7757268B2 (en) * 2003-07-25 2010-07-13 Oracle International Corporation Policy based service management
US8069435B1 (en) * 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US20050125461A1 (en) * 2003-12-08 2005-06-09 International Business Machines Corporation Version control of metadata
US20060174110A1 (en) * 2005-01-31 2006-08-03 Microsoft Corporation Symmetric key optimizations
US20060277596A1 (en) * 2005-06-06 2006-12-07 Calvert Peter S Method and system for multi-instance session support in a load-balanced environment
US7580719B2 (en) 2005-09-21 2009-08-25 U Owe Me, Inc SMS+: short message service plus context support for social obligations
US20070073625A1 (en) * 2005-09-27 2007-03-29 Shelton Robert H System and method of licensing intellectual property assets
GB0523871D0 (en) * 2005-11-24 2006-01-04 Ibm A system for updating security data
CN101326515A (zh) * 2005-12-09 2008-12-17 微软公司 元数据驱动的应用程序部署
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8225385B2 (en) * 2006-03-23 2012-07-17 Microsoft Corporation Multiple security token transactions
US8201217B1 (en) * 2006-10-03 2012-06-12 Stamps.Com Inc. Systems and methods for single sign-in for multiple accounts
US7765195B2 (en) * 2006-11-07 2010-07-27 Microsoft Corporation Trimmed and merged search result sets in a versioned data environment
US20080208959A1 (en) * 2007-02-22 2008-08-28 St John Sean Hanging request system and method for client/server communication
US9813382B2 (en) * 2007-03-07 2017-11-07 Adobe Systems Incorporated Cryptographic binding of multiple secured connections
CN101316226B (zh) * 2007-06-01 2011-11-02 阿里巴巴集团控股有限公司 一种获取资源的方法、装置及系统
US8274968B2 (en) 2007-07-20 2012-09-25 Cisco Technology, Inc. Restriction of communication in VoIP address discovery system
US8332922B2 (en) * 2007-08-31 2012-12-11 Microsoft Corporation Transferable restricted security tokens
WO2009087457A2 (en) 2007-12-21 2009-07-16 Nortel Networks Limited Unified communications systems and methods
US8417593B2 (en) * 2008-02-28 2013-04-09 Sap Ag System and computer-readable medium for managing consistent interfaces for business objects across heterogeneous systems
US8621598B2 (en) * 2008-03-12 2013-12-31 Intuit Inc. Method and apparatus for securely invoking a rest API
CN102027721B (zh) * 2008-04-02 2015-05-13 特维里奥公司 处理电话会话的系统和方法
US8943560B2 (en) 2008-05-28 2015-01-27 Microsoft Corporation Techniques to provision and manage a digital telephone to authenticate with a network
US8527631B1 (en) * 2008-06-26 2013-09-03 Trend Micro, Inc. Web site reputation service using proxy auto-configuration
US8438622B2 (en) * 2008-07-10 2013-05-07 Honesty Online, Llc Methods and apparatus for authorizing access to data
US8095972B1 (en) * 2008-10-06 2012-01-10 Southern Company Services, Inc. Secure authentication for web-based applications
WO2010042733A1 (en) 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for connection management for asynchronous messaging over http
WO2010068465A2 (en) 2008-11-25 2010-06-17 Citrix Systems. Inc. Systems and methods for maintaining persistence by a backup virtual server
US8260926B2 (en) 2008-11-25 2012-09-04 Citrix Systems, Inc. Systems and methods for GSLB site persistence
US8244847B2 (en) * 2009-02-26 2012-08-14 International Business Machines Corporation Management of a service oriented architecture shared service
US8005895B2 (en) * 2009-02-27 2011-08-23 Microsoft Corporation Distributed routing of conferences using conference identifier
US8527774B2 (en) * 2009-05-28 2013-09-03 Kaazing Corporation System and methods for providing stateless security management for web applications using non-HTTP communications protocols
US9531695B2 (en) 2009-06-12 2016-12-27 Microsoft Technology Licensing, Llc Access control to secured application features using client trust levels
US8195626B1 (en) * 2009-06-18 2012-06-05 Amazon Technologies, Inc. Compressing token-based files for transfer and reconstruction
US8856869B1 (en) * 2009-06-22 2014-10-07 NexWavSec Software Inc. Enforcement of same origin policy for sensitive data
JP5354019B2 (ja) * 2009-09-04 2013-11-27 富士通株式会社 伝送システム、伝送装置、および更新データ取得方法
US20110154222A1 (en) 2009-12-18 2011-06-23 Microsoft Corporation Extensible mechanism for conveying feature capabilities in conversation systems
US8572710B2 (en) 2010-03-18 2013-10-29 Microsoft Corporation Pluggable token provider model to implement authentication across multiple web services
US9247008B2 (en) 2010-03-18 2016-01-26 Microsoft Corporation Unified web service discovery
US8315165B2 (en) * 2010-06-07 2012-11-20 Microsoft Corporation Survivable and resilient real time communication architecture
US20110307541A1 (en) * 2010-06-10 2011-12-15 Microsoft Corporation Server load balancing and draining in enhanced communication systems
US9397861B1 (en) * 2010-07-16 2016-07-19 Shoretel, Inc. Unified communication
CN102143200B (zh) * 2010-10-20 2013-09-11 华为技术有限公司 一种soap api转换为rest api的公共消息头承载方法及装置
WO2012098453A1 (en) * 2011-01-17 2012-07-26 Telefonactiebolaget Lm Ericsson (Publ) Http notification gateway
US8549533B2 (en) * 2011-03-18 2013-10-01 Telefonaktiebolaget L M Ericsson (Publ) Ranking service units to provide and protect highly available services using N+M redundancy models
US9489658B2 (en) * 2011-03-25 2016-11-08 Telcentris, Inc. Universal communication system
US20120284804A1 (en) * 2011-05-02 2012-11-08 Authentec, Inc. System and method for protecting digital contents with digital rights management (drm)
US8805984B2 (en) * 2011-07-14 2014-08-12 Red Hat, Inc. Multi-operational transactional access of in-memory data grids in a client-server environment
US8958783B2 (en) 2011-07-26 2015-02-17 Mitel Networks Corporation System and method for short-range electronic communication
KR101314424B1 (ko) * 2011-08-24 2013-11-13 주식회사 팬택 프레즌스 정보를 송수신하기 위한 단말기, ims 서버 및 방법
US9094212B2 (en) * 2011-10-04 2015-07-28 Microsoft Technology Licensing, Llc Multi-server authentication token data exchange
US8370467B1 (en) * 2011-10-07 2013-02-05 Google Inc. Method for seamlessly providing incremental application updates to users while serving continuous live traffic
US9338158B2 (en) * 2011-10-14 2016-05-10 Open Text S.A. System and method for secure content sharing and synchronization
US8689243B2 (en) * 2011-11-04 2014-04-01 Microsoft Corporation Web service API for unified contact store
US20130191882A1 (en) * 2012-01-19 2013-07-25 Sap Ag Access control of remote communication interfaces based on system-specific keys
US9100497B2 (en) * 2012-04-05 2015-08-04 Blackberry Limited Method, system and apparatus for managing persona-based notifications at a communication device
US9344458B2 (en) * 2012-07-16 2016-05-17 eZuce, Inc. Providing unified communications services
US8983987B2 (en) * 2012-07-25 2015-03-17 Cisco Technology, Inc. System and method for a service metering framework in a network environment
US9491266B2 (en) * 2012-12-03 2016-11-08 Sap Se Representational state transfer communications via remote function calls

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075079A1 (en) * 2004-10-06 2006-04-06 Digipede Technologies, Llc Distributed computing system installation
CN101496005A (zh) * 2005-12-29 2009-07-29 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
US20080147834A1 (en) * 2006-12-19 2008-06-19 Quinn William M System and method for achieving highly scalable real-time collaboration applications using http
US20120102479A1 (en) * 2010-10-20 2012-04-26 Virginia Smith Automated service version upgrading

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105704562A (zh) * 2016-03-29 2016-06-22 Tcl集团股份有限公司 一种网络电视云服务平台的多版本兼容方法及装置
CN105704562B (zh) * 2016-03-29 2020-01-03 Tcl集团股份有限公司 一种网络电视云服务平台的多版本兼容方法及装置
CN106897053A (zh) * 2016-07-08 2017-06-27 阿里巴巴集团控股有限公司 一种代码发布方法与装置
CN106897053B (zh) * 2016-07-08 2020-06-26 阿里巴巴集团控股有限公司 一种代码发布方法与装置
CN107277140A (zh) * 2017-06-21 2017-10-20 山东浪潮通软信息科技有限公司 一种应用程序接口的分配方法、路由中间件及业务系统
CN108920164A (zh) * 2018-07-11 2018-11-30 郑州云海信息技术有限公司 云计算系统中主机的管理方法和装置
CN113424255A (zh) * 2019-02-12 2021-09-21 谷歌有限责任公司 引导车辆客户端设备使用设备上的功能

Also Published As

Publication number Publication date
US9838375B2 (en) 2017-12-05
US9954843B2 (en) 2018-04-24
EP2949108A1 (en) 2015-12-02
US20140244818A1 (en) 2014-08-28
EP2962445A1 (en) 2016-01-06
BR112015020097A8 (pt) 2017-11-07
WO2014134081A1 (en) 2014-09-04
CN105900391A (zh) 2016-08-24
WO2014134083A1 (en) 2014-09-04
ES2613831T3 (es) 2017-05-26
CN105144659A (zh) 2015-12-09
EP2962440B1 (en) 2017-01-04
EP2949102A1 (en) 2015-12-02
EP2949102B1 (en) 2019-03-27
WO2014134085A1 (en) 2014-09-04
US10356078B2 (en) 2019-07-16
CN105210348A (zh) 2015-12-30
US20180227291A1 (en) 2018-08-09
US20140244708A1 (en) 2014-08-28
US20140244721A1 (en) 2014-08-28
BR112015020097A2 (pt) 2017-08-29
US20140245420A1 (en) 2014-08-28
EP2962440A1 (en) 2016-01-06
EP2949108B1 (en) 2017-04-12
WO2014134082A1 (en) 2014-09-04

Similar Documents

Publication Publication Date Title
CN105027535A (zh) 使用rest类api的应用的向后兼容特征级版本控制
US10491552B2 (en) Inserting content into an application from an online synchronized content management system
US10091628B2 (en) Message based application state and card sharing methods for user devices
US11307908B2 (en) Format-specific data object passing between applications
US9235636B2 (en) Presenting data in response to an incomplete query
CN102455913B (zh) 显示模板的定制
US11200293B2 (en) Method and system for controlling presentation of web resources in a browser window
KR102310648B1 (ko) 상황 정보 탐색 및 내비게이션 기법
EP3485400A1 (en) Methods and systems for server-side rendering of native content for presentation
US10261996B2 (en) Content localization using fallback translations
US20170052927A1 (en) System for Transferring Annotations between Documents Displayed Side by Side
CN106471497B (zh) 使用上下文的辅助浏览
CN103988200A (zh) 用于web应用的轻量化框架
EP3610376B1 (en) Automatic context passing between applications
JP2016527615A (ja) アプリケーション情報の検索方法及びその装置
KR20210002546A (ko) 타겟 애플리케이션들을 사용하여 검색하는 기술
US20090319519A1 (en) Communication system, communication device, and computer program
US8959248B2 (en) Personal computing environment with virtual computing device
CN110110184B (zh) 信息查询方法、系统、计算机系统及存储介质
EP3616094A1 (en) Managing metadata for external content within a computing environment
KR100796046B1 (ko) 하이브리드 컨텐츠를 제공하는 방법, 단말 장치 및 시스템
CN106708900A (zh) 网页内容加载方法及装置
JP7502540B1 (ja) 検索装置、検索方法及びプログラム
US12086139B2 (en) In-memory graph query engine with persisted storage
US11138189B2 (en) Method for managing contents and cloud server for executing the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171026

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

TA01 Transfer of patent application right
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151104

WD01 Invention patent application deemed withdrawn after publication