CN105144659A - 支持弹性和可缩放分布式应用的rest类api - Google Patents

支持弹性和可缩放分布式应用的rest类api Download PDF

Info

Publication number
CN105144659A
CN105144659A CN201480011220.2A CN201480011220A CN105144659A CN 105144659 A CN105144659 A CN 105144659A CN 201480011220 A CN201480011220 A CN 201480011220A CN 105144659 A CN105144659 A CN 105144659A
Authority
CN
China
Prior art keywords
server
computing device
client
computing equipment
communication
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
CN201480011220.2A
Other languages
English (en)
Inventor
S·泰恩
S·班迪奥帕迪亚雅
G·斯瑞哈兰
S·尤尼斯
K·加内桑
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105144659A publication Critical patent/CN105144659A/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

Abstract

在多个计算设备中分布的应用充分利用符合代表性状态转移架构的应用编程接口以向客户端提供弹性服务并适应设备的可用性方面的改变。代理服务器在客户端和服务器之间路由通信、检测服务器何时变得不可用以及将通信重新路由到替换服务器。代理服务器上的注册数据库记录客户端的条目,使得通信可被路由到用户的活动设备。

Description

支持弹性和可缩放分布式应用的REST类API
背景
分布式应用是在网络中的两个或更多个计算机上执行的软件,其中这样的计算机可通过网络的方式来彼此通信。一般而言,在客户端-服务器环境中,分布式应用具有两个部分:1)在客户端计算设备上执行的“前端”;以及2)在其他计算设备(诸如服务器计算设备)上执行的“后端”。分布式应用在客户端计算设备上执行的实例在本文中被称为“客户端”,而分布式应用在服务器计算设备上执行的实例在本文中被称为“服务器”。分布式应用可使用应用编程接口(API)来提供用于不同执行实例之间通信的公共接口,并且该公共接口可被用于以能被应用开发者理解并能被应用的不同执行实例使用的方式来提供服务、特征和信息。
在移动设备上执行分布式应用的客户端可具有若干挑战。尝试彼此通信的不同移动设备可使用不同的通信协议,并且移动设备可在与另一设备通信时在不同协议之间切换(例如,从使用蜂窝通信网络到使用Wi-Fi连接)。附加地,移动设备可将客户端执行为后台操作,从而限制客户端接收实时通信的能力。与执行分布式应用的客户端相关联的其他挑战包括跨域脚本撰写、过于健谈的通信、执行客户端的设备或浏览器中的差异等。这样的挑战可影响分布式应用的弹性,并且限制了分布式应用可被缩放的程度。
此外,在服务器处的存储器和处理资源被保留来确保分布式应用的客户端正确地运作。例如,当分布式应用是实时通信应用时,服务器可理想地一次与数个客户端通信(例如,将传入消息传送到电话、平板、台式计算机等),其可增加服务器的存储器和处理使用。此外,服务器的中断(例如,服务器计算设备进行计划好的维修)可负面地影响正被该服务器服务的客户端(例如,可导致客户端体验功能损失)。
概述
以下是在本文详细描述的主题的简要的发明内容。本发明内容不旨在是关于权利要求的范围的限制。
本文描述了涉及一般符合代表性状态转移(REST)架构的应用编程接口(API)的各个技术。API提供对于分布式应用的后端软件的支持,在服务器计算设备的可用性更改时促进分布式应用的适应。因此,当通信中断发生时、当设备故障时和/或当服务器正进行计划好的维护时,API支持应用的缩放以及应用的增加的弹性。
在一个或多个客户端计算设备和服务器计算设备之间分布的应用(分布式应用)可连同向客户端计算设备提供弹性且可缩放的服务来使用上述的API。在一个示例性实施例中,这样的应用可以是统一通信(UC)应用、电子商务应用、社交网络应用或其他合适的应用。支持分布式应用的系统架构包括经由代理服务器计算设备与服务器计算设备进行通信的客户端计算设备,其中客户端计算设备执行应用的客户端侧实例(客户端),服务器计算设备执行服务器侧代码(服务器),并且代理服务器计算设备执行在客户端和服务器之间路由通信的后端软件(代理服务器)。
客户端计算设备可包括台式计算设备和/或便携式计算设备,诸如移动电话、平板(板式)、大屏手机、可穿戴设备等。根据本文中描述的各方面,客户端之间和/或客户端与服务器之间的实时同步和异步通信可通过采用符合REST架构的API(例如,REST类API)来实现。
在一个示例性实施例中,每个客户端可被相应的服务器服务,使得在客户端和服务器之间存在一对一的映射。应用实例标识符(AID)可被用于标识特定的客户端。对客户端进行服务的第一服务器的状态可被第二服务器再现,使得在第一服务器变得不可用的情况下对于客户端的服务不必被中断。附加地,可以确定服务器计算设备具有有限的存储器和处理资源,并由此可以能够执行有限数量的服务器。因此,使得附加的服务器计算设备变得可用可以是理想的。为此,服务器计算设备的活动性可被监视,并且随着服务器计算设备被添加或变得不可用,服务器可在服务器计算设备之间被分布或重新分布。
代理服务器在注册数据库中存储每个客户端的相应AID,并且还将对客户端进行服务的相应服务器记录在注册数据库中。被代理服务器接收到的通信包括可与注册数据库的内容进行比较的AID,使得代理服务器可确定通信的至少一个预期接收方。代理服务器可通过用作“中间人”、接收通信并将通信重新传送到适当的(诸)接收方来路由通信。附加地,代理服务器可通过客户端藉此可直接与服务器进行通信的方式来建立通信信道。
当代理服务器接收到来自客户端的通信时,代理服务器将该通信路由到正对这样的客户端进行服务的服务器。服务器计算设备可执行多个服务器,并由此代理服务器可被配置成将通信路由到服务器计算设备,其接着将该通信提供到正对客户端进行服务的适当的服务器。类似地,代理服务器还将来自被标识为对客户端进行服务的服务器的通信路由到客户端。在一些实例中,用户可使用多个客户端计算设备。例如,作为视频呼叫的预期接收方的用户可正使用移动电话、平板、台式计算设备等,并可以能够使用这些设备中的任意来应答视频呼叫。由此,代理服务器可从接收自服务器的通信中的AID确定用户的身份,并使用注册数据库来标识用户所使用的(诸)客户端计算设备。代理服务器可接着将通信路由到与用户相关联的每个客户端计算设备。当用户使用特定客户端计算设备(例如,平板)来应答视频呼叫时,客户端计算设备可向代理服务器传送它已经被用户选择的指示。此后,代理服务器可将来自服务器的通信路由到所选择的客户端计算设备(平板)。
充分利用API的通信根据标识符和命令来建模,其中标识符表示被服务器维护的资源,并且命令表示与资源交互的方法,诸如传统的超文本传输协议(HTTP)方法和超媒体类型。资源可以是或包括数据,诸如文档、图像、数据库条目等。在另一示例中,资源可以是或包括计算机可执行代码,诸如服务、可执行线程等。此外,资源一般涉及被它们相应的标识符所描述的特定概念。例如,“联系人”资源可包括用户的联系人列表或可以是从其他资源检索联系人列表的服务。每个资源被可被客户端用于访问相应资源的相应标识符来标识。例如,标识符可以是全局标识符(例如,诸如统一资源定位符URL)。资源还可包括其他资源的标识符,以指示资源之间的链接关系。例如,“特征”资源还可包括“联系人”资源的标识符,由此指示联系人列表是应用的特征。在访问“特征”资源和定位“联系人”资源的标识符后,客户端可接着使用“联系人”资源的标识符来检索联系人列表。这样的链接关系可允许客户端以类似于用户如何使用超链接来在网页中导航的方式来在资源中导航。
尽管可用于客户端的资源一般被特定服务器维护,但是资源可以不是特定于该服务器的。例如,“联系人”资源可以是非特定的资源(与什么服务器维护该资源无关)、可取得用户的联系人列表并使得该列表对客户端可用。因此,如果维护资源的特定服务器变得不可用,则不同的服务器可承担对资源的维护以防止对于客户端的服务方面的间隙。
当应用提供媒体通信(诸如以上提到的视频呼叫)时,将媒体主控在与一般对客户端进行服务的服务器分开的媒体服务器上可以是理想的。例如,视频会议应用可向客户端提供视频媒体以及在场信息(指示其他用户的可用性)以及类似交谈和/或文档共享的其他特征。对客户端进行服务的服务器可维护支持在场信息、即时消息收发功能或其他服务的资源,而分开的媒体服务器可提供用于视频呼叫的视频。如果服务器变得不可用,则被提供到客户端的视频媒体不被中断,同时代理服务器标识替换服务器。由此,客户端可被提供未被中断服务的错觉。
当被服务器服务的客户端没有被使用达延长的时间段时,执行服务器的服务器计算设备将被分派到服务器的存储器和处理资源重新分派到被服务器计算设备执行的其他服务器可以是理想的。由此,在确定服务器没有接收到通信达阈值时间段后,服务器计算设备可从服务器解除分配存储器和/或处理资源。服务器计算设备还可挂起或移除服务器所维护的资源。当针对服务器的通信被接收到时,服务器计算设备可将存储器和/或处理资源重新分配到服务器,并重新激活或重新创建服务器所维护的资源。
以上概述呈现了简化概述,以便提供对本文讨论的系统和/或方法的某些方面的基本理解。本概述并不是对本文所讨论的系统和/或方法的全面综述。并不旨在标识关键/重要元素,也不描绘这样的系统和/或方法的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更详细说明的序言。
附图简述
图1和2是促进执行使用REST类API的分布式应用的相应示例性系统的功能性框图。
图3-6是分别示出用于在代理服务器计算设备处执行代理服务器的示例性方法的流程图。
图7-9是分别示出用于在服务器计算设备上执行分布式应用的服务器侧实例的示例性方法的流程图。
图10是示例性计算系统。
详细描述
现在参考附图描述涉及利用符合代表性状态转移(REST)架构的API的弹性且可缩放的分布式应用的各种技术,其中在全部附图中,相同的附图标记用于指代相同的元素。在以下描述中,出于解释的目的,提出了众多具体细节以提供对一个或多个方面的全面理解。然而,显然这(些)方面可以在没有这些具体细节的情况下被实践。在其他实例中,以框图形式示出公知的结构和设备以便于描述一个或多个方面。另外,要理解,被描述为由特定系统组件执行的功能性可由多个组件执行。类似地,例如,一组件可被配置成执行被描述为由多个组件执行的功能。
此外,术语“或”意指包括性“或”而非排斥性“或”。即,除非另有指定或从上下文显而易见,否则短语“X采用A或B”意指任何自然的包括性排列。即,短语“X采用A或B”藉由以下实例中任何实例得到满足:X采用A;X采用B;或X采用A和B两者。另外,本申请和所附权利要求书中所使用的冠词“一”和“某”一般应当被解释成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。
此外,如本文所使用的,术语“组件”和“系统”旨在包含用使得在被处理器执行时执行特定功能性的计算机可执行指令配置的计算机可读数据存储。计算机可执行指令可包括例程、功能等等。还要理解组件或系统可以位于单个设备上或跨若干设备分布。而且,此处所用的术语“示例性”旨在表示用作某些事物的图示或示例,而不意图指示优选。
现在参考图1,示出了便于执行使用REST类API的分布式应用的示例性系统100。系统100包括客户端计算设备池102,该池包括多个计算设备104-106。客户端计算设备104-106可包括台式计算设备、膝上型计算设备、上网本、超级本、平板(板式)、大屏手机、移动电话、可穿戴计算设备等。系统100还包括服务器计算设备池108,该池包括多个服务器计算设备110-112。进一步,系统100包括代理服务器计算设备114。客户端计算设备104-106、服务器计算设备110-112以及代理服务器计算设备114通过合适的相应网络连接来彼此通信。附加地,可在客户端计算设备池102中的客户端计算设备之间和/或客户端计算设备池102中的客户端计算设备与服务器计算设备池108中的服务器计算设备之间直接建立通信信道来促进它们之间的通信。
客户端计算设备池102、服务器计算设备池108以及代理计算设备114被配置成支持弹性且可缩放的分布式应用,其中客户端计算设备104-106执行分布式应用的相应客户端侧实例,服务器计算设备110-112中的每个被配置成执行分布式应用的至少一个相应服务器侧实例,并且代理服务器计算设备执行分布式应用的后端软件(在本文中称为代理服务器115)。如在本文中使用的,分布式应用的客户端侧实例被称为“客户端”,分布式应用的服务器侧实例在本文中被称为“服务器”。
更具体而言,第一客户端计算设备104包括执行被保留在第一储存器118中的指令的第一处理器模块116。第一存储器118可包括第一客户端120。类似地,第N客户端计算设备106包括被配置成执行第N存储器124中的指令的第N处理器模块122,其中第N存储器124包括第N客户端126。
第一服务器计算设备110包括被配置成执行第一服务器侧存储器130中的代码的第一服务器处理器模块128。例如,第一服务器侧存储器130可包括多个服务器132-134(例如,服务器1-1–—1-J)。类似地,第M服务器计算设备112包括被配置成执行第M服务器侧存储器138中的代码的第M服务器处理器模块136。第M服务器侧存储器138还可包括多个服务器140-142(例如,服务器M-1–—M-K)。服务器132-134和140-142中的每一个对被客户端计算设备104-106中的一个执行的相应客户端进行服务,使得一对一映射存在于客户端120以及126与服务器132-134和140-142之间。
代理服务器计算设备114包括被配置成执行代理服务器计算设备114的存储器142中的代码的代理服务器处理器模块144。如将在本文中被更加详细描述的,代理服务器115可与致使分布式应用从客户端的角度来看弹性地运作有关来被使用,使得客户端在服务器计算设备离线时不被负面地影响。
如以上指示的,客户端计算设备池102、服务器计算设备池108以及代理服务器计算设备114在彼此通信时可利用REST类API,其中该API根据标识符和命令来建模。标识符表示被存储在服务器存储器(诸如第一服务器存储器130)中的资源,并且命令表示与资源交互的方法,诸如传统的超文本传输协议(HTTP)方法和超媒体类型。这样的标识符和命令可以是通用的,由此它们可被使用而不管正被执行的特定应用、正与其通信的特定设备或正被进行的特定操作,并由此提供设备之间的一般化的接口。当传送包括对于(诸)资源的请求的通信(例如,标识符和命令)时并且当接收到对该请求的包括促进客户端120转变到新状态(诸如图形界面的填充、执行一操作等)的数据的回复时,第一客户端120可采用API。
现在描述对应于REST类API的资源。资源的格式是任意的,如资源可被结构化为数据库、文件等。资源可以是或包括数据,诸如文档、图像等。附加地,资源可以是或包括致使服务器与其他计算设备或其他计算机可执行代码通信的计算机可执行代码。此外,资源可以是或包括数据和计算机可执行代码的组合。附加地,每个资源可针对其标识符所描述的相应概念。例如,“联系人”资源可包括用户的联系人列表。
附加地,每个资源可被相应的标识符所标识,该相应的标识符可被例如第一客户端120使用来访问相应的资源。标识符可以是例如,全局标识符,诸如统一资源定位符(URL)。资源还可包括另一资源(或多个资源)的标识符,以指示资源和该另一资源之间的链接关系。例如,“特征”资源还可包括对“联系人”资源的链接关系,其中“特征”资源包括“联系人”资源的标识符(例如,联系人资源包括用户的联系人列表)。在访问“特征”资源(例如,从对应于第一客户端120的服务器,诸如服务器132)和定位其中的“联系人”资源的标识符后,第一客户端120可接着使用该“联系人”资源的标识符来访问联系人列表。这样的链接关系可允许第一客户端120以类似于用户如何使用超链接来在网页中导航的方式来在资源中导航。
现在更加详细地描述REST类API所支持的用于与资源交互的方法(由命令表示)。REST类API所支持的示例性方法包括传统的超文本传输协议(HTTP)方法和超媒体类型。由此,更加具体的,示例性方法包括用于从资源中检索数据的方法(例如,经由“GET(取得)”命令)、用于将数据添加到资源的方法(例如,经由“POST(张贴)”命令)、用于替换或添加资源的方法(例如,经由“PUT(放入)”命令)以及用于删除资源的方法(例如,经由“DELETE(删除)”命令)。第一客户端120可生成包括标识符和命令的请求,从而标识想要访问的资源以及关于该资源的要执行的方法。以下阐述了涉及REST类API的附加细节。
在一示例性实施例中,分布式应用可以是支持客户端计算设备104-106之间双向通信的通信应用。例如,通信应用可以是统一通信(UC)应用,其支持多个通信模态,包括语音、在场、即时消息收发、分组、桌面共享、协作等。在另一示例中,通信应用可以是或被包括在社交网络应用中。
如以上指示的,分布式应用可以是通信应用,并且第一客户端120可致使图形用户界面(GUI)被显示在第一客户端计算设备104的显示屏(未显示)上,其中GUI包括例如,第一客户端120的用户的联系人、第一客户端120接收到的消息等。附加地,对第一客户端120进行服务的服务器132可访问用户的联系人列表、经由第一客户端120发送和接收的消息以及其他被用于填充GUI的数据。代理服务器115被配置成在第一客户端120和服务器132之间(以及其他客户端和对这样的客户端进行服务的服务器之间)路由通信。当第一客户端计算设备104的用户寻求将一通信传送到联系人(例如,第N客户端计算设备106的用户)时,第一客户端120可经由代理服务器115和服务器132与第N客户端126进行通信。
更加具体地,当一通信传送到第N客户端时,第一客户端120可将将第N客户端计算设备106的用户标识为预期接收方的通信传送到代理服务器115。代理服务器114标识出服务器132正对第一客户端120进行服务,并响应于标识出服务器132正对第一客户端120进行服务来将该通信路由到服务器132。响应于接收到该通信,服务器132将这样的通信通过代理服务器115的方式路由到第N客户端126。服务器132可生成其他要经由代理服务器被路由到第一客户端120的信息,诸如第N客户端计算设备106的用户可用的指示。
客户端120和126中的每个客户端被应用实例标识符(AID)相应地标识,该应用实例标识符是可基于执行相应客户端的客户端计算设备的用户的身份以及客户端计算设备本身的身份的唯一标识符。由此,AID可被用于标识特定客户端计算设备和/或客户端计算设备的特定用户。如以上描述的,当第一客户端120希望转变到新状态(例如,执行操作、检索数据等)时,第一客户端120生成标识可被第一客户端120用于作出该转变的资源的请求,并将包括该请求的通信传送到代理服务器115。被第一客户端120传送的通信包括其AID,使得接收从第一客户端计算设备104传送的通信的设备可标识第一客户端计算设备104和/或其用户。此外,来自第一客户端计算设备104的通信可包括第一客户端120提供的可被接收方设备用于认证客户端和/或用户的授权令牌。
代理服务器115包括被配置成在服务器计算设备池108中的计算设备与客户端计算设备池102中的计算设备之间路由通信的路由服务组件146。例如,路由服务组件146可被配置成建立设备之间的通信信道以便促进通过该通信信道的通信。此外,路由服务组件可用作中间人,其中路由服务组件146被配置成接收来自设备的通信、标识一个或多个预期接收方设备以及将通信路由到该一个或多个预期接收方设备。
代理服务器115包括注册数据库组件148,该注册数据库组件148被配置成维护注册数据库,该注册数据库包括包含被包括在代理服务器115所接收到的通信中的AID的条目。例如,路由服务组件146可访问注册数据库组件148所维护的注册数据库来标识对第一客户端120进行服务的服务器132。注册数据库组件148可随着对第一客户端120进行服务的服务器在服务器计算设备池108中被移动(例如,出于负载分布的目的)来更新注册数据库。
因此,路由服务组件146被配置成通过访问注册数据库来标识服务器计算设备池108中执行支持AID中所标识的客户端的服务器的服务器计算设备。例如,响应于接收到第一客户端120传送的通信,路由服务组件146访问注册数据库并从服务器计算设备池108中将第一服务器计算设备110标识为包括对第一客户端120进行服务的服务器132(例如,服务器1-1)。一旦服务器132被标识为对第一客户端120进行服务,路由服务组件146就将通信路由到第一服务器计算设备110。如果注册数据库不指示哪个服务器对第一客户端120进行服务,则路由服务组件148可致使服务器132在第一服务器计算设备110上被实例化,并之后可致使注册数据库组件148更新注册数据库。
在一个示例中,第一服务器计算设备110可已经包括服务器132,在这种情况下第一服务器计算设备110向服务器132提供通信。服务器132可接着至少部分基于通信中标识的(诸)资源来生成对该通信的响应。在一个示例中,响应包括(诸)资源。在另一示例中,服务器132可基于第一资源的内容来生成数据分组,并且响应可包括这样的数据分组。例如,当相比于第一资源的大小时,这样的数据分组在大小上可更小。附加地,当相比于第一资源的格式时,数据分组可具有更容易被第一客户端120解析的格式。在一示例中,数据分组可以是或包括文档、列表等,并可具有诸如标记文件(例如,XML)或对象注释文件(例如,JSON)之类的结构化文件格式。
第一服务器计算设备110将包括该响应以及以上提到的AID的第二通信传送到代理服务器115。路由服务组件146接收第二通信,并通过将AID与注册数据库的内容进行比较来标识第一客户端计算设备104。路由服务组件146接着将第二通信路由到第一客户端计算设备104,其向第一客户端120提供响应。通过使用这样的响应,第一客户端120可转变到新状态。由此,第一客户端120可通过发送对资源的请求来访问内容,而非必须本地地存储该内容。使用标识符和方法允许第一客户端120与资源进行交互,而无需必须具有关于什么服务器维护该资源或内容如何被检索的任何知晓。
在另一示例性实施例中,通过代理服务器115的方式接收来自第一客户端120的通信的第一服务器计算设备可能没有包括服务器132。在这样的实施例中,响应于接收到该通信,第一服务器计算设备110在其上实例化服务器132。例如,接收到的通信可包括充足的信息以供第一服务器计算设备110创建和执行服务器132。如果接收到的通信没有包括充足的信息来允许第一服务器计算设备110实例化服务器132,则第一服务器计算设备110可以以上描述的方式经由代理服务器115将第三通信传送到第一客户端计算设备104,其中第三通信包括AID以及服务器132理想地被实例化的指示。在一个示例中,该指示可以是错误消息。响应于接收到这样的错误消息,第一客户端120可通过代理服务器115将第四通信传送到第一服务器计算设备110,其中第四通信包括充足的信息以允许第一服务器计算设备110实例化服务器132。
现在参考图2,示出了便于通过利用REST类API来执行分布式应用的示例性系统200。系统200包括第一客户端计算设备104,其将包括对第一资源的请求的第一通信传送到代理服务器115。路由服务组件146将第一服务器计算设备110标识为一服务器计算设备,该服务器计算设备执行或理想地执行对正被第一客户端计算设备104执行的第一客户端120进行服务的服务器132。在一示例性实施例中,第一服务器计算设备110可以是不能通信的,并因此可以不能对该请求进行回复。
第一服务器计算设备110可出于各种原因而变得不能通信,该各种原因包括计划好的维护、系统崩溃或连接性问题。当第一服务器计算设备110是不能通信时,被第一服务器计算设备110执行的服务器对它们相应的客户端不可用。这样的不可用可干扰被正提供到相应客户端的服务并负面地影响用户对分布式应用的体验。因此,如以上讨论的,分布式应用被配置成适应设备的可用性方面的这样的改变。
为此,路由服务组件146可确定第一服务器计算设备110不能通信(例如,第一服务器计算设备110不能对请求进行响应或传送指示它将是不能通信的数据)。响应于确定第一服务器计算设备110是不能通信的,路由服务组件146将第M服务器计算设备112标识为替换服务器计算设备。具体地,第M服务器计算设备112被标识为具有充足的资源来实例化服务器132的再现202以对第一客户端120进行服务。响应于将第M服务器计算设备112标识为替换服务器计算设备,路由服务组件146将第一通信路由到第M服务器计算设备112,其可在其上实例化服务器132的再现202。服务器132的再现202此后可生成针对对第一资源的请求的响应,并将该响应作为第二通信的一部分传送到代理服务器115。
可以注意到,由第一客户端120生成的对第一资源的请求可以不特定于任意一个服务器或服务器计算设备。例如,第一客户端120可生成对“联系人”资源的请求,而无需知晓什么服务器或服务器计算设备将被用于对该请求进行服务。此外,不同的服务器(诸如服务器132的再现202)可检索信息来维护第一资源并对来自第一客户端120的请求进行服务,即使第一资源先前被不同的服务器/服务器计算设备维护。由此,当包括对第一资源的请求的第一通信被路由到第M服务器计算设备112时,服务器132的再现202可检索充足的信息来构成先前被不能通信的第一服务器计算设备110维护的第一资源并基于第一资源来传送对第一通信中的请求的回复。
由于不同的服务器可被用于针对对非特定资源的请求进行回复,变得不可用的第一服务器计算设备110不必影响第一客户端120(以及由此用户体验)。例如,第一客户端120可使用被服务器132维护的第一资源。当第一服务器计算设备110变得不可用时,第一客户端120可继续使用第一资源,虽然该资源现在被第M服务器计算设备112上的服务器132的再现202维护。由此,当对客户端进行服务的服务器改变时,客户端不必毁灭和/或恢复数据,并由此可就像服务没有被中断那样来运作。例如,第一客户端120可参与与另一客户端的即时消息收发对话,并且当服务器132被再现在第M服务器计算设备112时可在即时消息收发对话期间继续传送和接收即时消息。
然而,在其他情况下,第一客户端120可参与实时通信会话,诸如语音或视频会议。在这样的情况下,为了避免语音或视频会议中的中断,将在计算设备上执行的媒体服务器(未示出)与服务器计算设备池108分开来提供实时媒体是理想的。例如,在代理服务器115已经在希望参与视频会议的客户端之间路由通信后,代理服务器115可经由媒体服务器来建立客户端之间的通信信道,使得如果对客户端之一进行服务的服务器变得不可用,则被提供到客户端的视频媒体不必被中断。
除了适应设备变得不可用的情况,分布式应用被配置成适应当附加的计算设备变得可用的情况。由于在服务器计算设备上执行每个服务器使用存储器和处理资源,单个服务器计算设备可执行有限数量的服务器。为了增加规模,附加的服务器计算设备可被添加到服务器计算设备池108。此外,存储器和处理资源使用可在服务器计算设备上被监视,并且服务器可在服务器计算设备池之中被重新分布以便促进负载平衡。
例如,代理服务器115可确定第一服务器计算设备110的负载高于预定阈值,或该负载对于例如第M服务器计算设备112而言是高的。例如,第M服务器计算设备112可已经被添加到服务器计算设备池108以便增加能被同时服务的客户端的数量。代理服务器115可基于注册数据库的内容来作出这样的确定,其可指示每个服务器计算设备的相应负载。在另一示例中,代理服务器115可基于从第一服务器计算设备112接收到的包括第一服务器计算设备112的负载的指示的通信来做出该确定。响应于代理服务器115作出上述确定,路由服务组件146可致使服务器132从第一服务器计算设备110中移除(例如,通过将包括移除指令的通信传送到第一服务器计算设备110)。此外,路由服务组件146可致使第M服务器计算设备112创建服务器132的再现202,并将通信重新路由到第M服务器计算设备112。
除了添加附加的服务器计算设备之外,可被执行的服务器的数量以及由此可被服务的客户端的数量也可通过增加执行服务器的服务器计算设备的效率来被增加。如以上讨论的,第一服务器计算设备110可执行多个服务器132-134。然而,由于特定客户端可不被频繁地使用,从空闲的服务器中解除分配存储器和处理资源并将存储器和处理资源分配到活动地与客户端通信的服务器可以是理想的。该分配和解除分配还可被分别称为水合(hydration)和脱水(de-hydration)。在一个示例中,第一服务器计算设备110可确定服务器134没有在阈值时间量内接收到通信。响应于作出这个确定,第一服务器计算设备110可通过将为服务器134分配的存储器和处理资源解除分配来脱水服务器134。脱水还可包括移除可在水合期间被再现的资源。分配到服务器134的存储器和处理资源接着可对于被第一服务器计算设备110执行的其他服务器(例如,服务器132)可用。
当第一服务器计算设备110接收针对被脱水的服务器(例如,服务器134)的通信时,第一服务器计算设备100可水合服务器134。在一些实例中,当针对服务器134的通信包括特定类型的请求或对特定资源的请求时,第一服务器计算设备110可水合服务器134。当针对服务器134的通信没有包括这样的请求时,第一服务器计算设备110可使用另一服务器来对该请求进行服务或向第一客户端120传送指示服务器134被脱水的回复。第一客户端120可响应于接收到这样的回复,传送致使服务器134被水合的通信。
在服务器计算设备上执行的服务器还可被配置成确定被这样的服务器维护的资源已经被更新。例如,服务器132可确定被其维护的资源已经被更新。这样的更新可以例如是,客户端计算设备104的用户的联系人可用、通过资源可用的信息已经被更新(诸如新的新闻订阅源项可用)或另一客户端计算设备(未示出)的用户发起了对用户的呼叫。
当资源被更新时,将更新递送到第一客户端120可以是理想的。然而,第一客户端120可以是非活动的,作为后台操作执行、没有准备好用于更新等。在另一示例中,更新可以不是时间敏感的。由此,服务器132被配置成充分利用事件框架来将资源更新递送到第一客户端120。
当服务器132确定一事件(诸如更新)发生时,服务器132可利用事件资源来维护这样的事件列表,其中事件可被聚集在事件资源中。第一客户端120被配置成例如通过周期性地传送包括对于事件资源的挂起请求来维护对事件资源的持续请求。挂起请求是以下请求:服务器132对其可延迟回复,直到服务器132认为适合回复或当挂起请求过期时。通过维护挂起请求,第一客户端120可保持与服务器132通信,即使当客户端作为后台操作在第一客户端计算设备104上执行时。
当服务器132确定对挂起请求进行回复是理想的时,服务器132可生成指示可用于第一客户端120的资源更新的回复。第一客户端120可接着请求至少一个资源更新。附加地,如果资源更新是实时敏感的,则服务器132可在回复中包括该更新。例如,如果第一客户端120不能维护持久请求(例如,如果第一客户端120是非活动的),则服务器132可使用推送通知信道来递送回复和/或更新。如果服务器132确定持久请求没有被维护(例如因为第一客户端计算设备104不被用户使用),则服务器132可继续将事件聚集在事件资源中或可致使服务器132被脱水。然而,可以理解,当第一客户端计算设备104不被使用时,事件可依然发生。例如,当用户的电话关机时,呼叫可被导向该用户,并且向用户通知当移动电话没有被使用时发生了一事件(诸如错过的呼叫)可以是理想的。因此,第一服务器计算设备110可被进一步配置成在服务器132被脱水时维护服务器132的事件框架。由此,通过充分利用事件框架结合对服务器的水合和脱水,分布式应用可增加服务器的效率,同时维护对相对大量的客户端的服务。
在还一示例性实施例中,用户可正在使用能够应答呼叫的附加计算设备。例如,第一客户端计算设备104可以是移动电话,并且第N客户端计算设备106可以是被用户使用并能应答呼叫的平板。如果两个设备均是活动的,则将呼叫路由到两个设备使得用户可选择使用哪个设备来应答呼叫可以是理想的,并且如果设备之一是非活动的,则将呼叫路由到其他设备使得用户具有应答呼叫的能力可以是理想的。
结合前述,当服务器132确定第二用户发起了呼叫(其中用户为预期接收方)时,服务器132可将第二通信(例如,作为对第一客户端120的挂起请求的回复)传送到代理服务器132,第二通信包括第一客户端120的AID以及传入呼叫已经被第一客户端120接收的指示。路由服务组件146接收第二通信,并通过将第二通信中的AID与注册数据库的内容进行比较来标识第一客户端计算设备104。此外,路由服务组件146可被配置成通过将AID与注册数据库的内容进行比较来标识用户的其他客户端计算设备。具体地,当路由服务组件146接收来自客户端计算设备的通信时,它致使注册数据库组件用包括客户端计算设备的AID的条目来更新注册数据库。由此,注册数据库可包括具有用户的每个客户端计算设备的AID的条目,该每个客户端计算设备包括第一客户端计算设备104和第N客户端计算设备106。因此,第一客户端计算设备104和第N客户端计算设备106两者均可被路由服务组件146标识。代理服务器115可因此致使第二通信被路由到这两个设备。
注册数据库中的条目可被配置成持续存在达预定时间段(诸如例如,一小时、一天、一周、15天等),并接着自动过期,使得通信仅被路由到最近被知晓为活动和/或可用的设备。用户可接着选择例如使用第N客户端计算设备106来应答呼叫,藉此第N客户端126将指示第N客户端计算设备已经被选择的数据(经由代理服务器115)传送到服务器132。代理服务器115可被配置成将来自服务器132(和/或来自另一客户端)的后续通信路由到第N客户端计算设备106。
图3-10示出涉及通过使用REST类API来增强分布式应用的弹性和可缩放性的示例性方法。尽管各方法被表示和描述为顺序地执行的一系列动作,但要知道和理解,这些方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,某一动作可以与另一动作并发地发生。此外,在一些实例中,实现本文描述的方法并不需要所有动作。
此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。
图3-6示出涉及在代理服务器计算设备上执行代理服务器的示例性方法。代理服务器支持客户端计算设备池中的客户端计算设备和服务器计算设备池中的服务器计算设备之间的通信的路由,并充分利用一般符合REST架构的API来促进该路由。
仅仅参考图3,示出了可被代理服务器计算设备执行的示例性方法300。方法300开始于302,并且在304,代理服务器接收来自客户端计算设备池中的第一客户端计算设备的第一通信。通信可包括例如对于资源的请求,并且还可包括标识第一客户端计算设备和第一客户端计算设备的用户的应用实例标识符(AID)。在306,代理服务器选择性地将第一通信路由到服务器计算设备池中的第一服务器计算设备。该路由可基于一个或多个因素,诸如服务器计算设备池中的服务器计算设备的负载条件、注册数据库中的服务器计算设备的标识等。方法300在308完成。
现在参考图4,示出了可被代理服务器计算设备执行的另一示例性方法400。方法400开始于402,并且在404,作出第一服务器计算设备是不能通信的确定。确定可基于例如,来自第一服务器计算设备的回复的缺乏、来自第一服务器计算设备的通信指示它进入不能通信状态(例如,正在进行计划好的维护)等。在406,从服务器计算设备池中标识第二服务器计算设备。第二服务器可基于例如第二服务器计算设备的负载条件被标识。在408,代理服务器响应于标识出第二服务器计算设备,将来自第一客户端计算设备的通信路由到第二服务器计算设备。方法400在410完成。
现在参考图5,示出了可被代理服务器设备执行的另一示例性方法500。方法500开始于502,并且在504,来自客户端计算设备池中的第一客户端计算设备的第一通信被接收。第一通信包括对于第一资源的请求以及应用实例标识符(AID),该应用实例标识符(AID)标识例如第一客户端计算设备和第一客户端计算设备的用户。在506,第一通信被选择性地路由到服务器计算设备池中的第一服务器计算设备。在508,来自服务器计算设备的第二通信被接收,其中第二通信包括对于在504接收到的请求的回复。附加地,第二通信可包括AID。在510,第二通信被路由到第一客户端计算设备。路由可例如基于,使用来自第二通信的AID来在注册数据库中标识第一客户端计算设备。
在512,基于AID来标识用户的第二客户端计算设备。例如,第一客户端计算设备的用户还可以是第二客户端计算设备的用户,并且代理服务器可使用第二通信中的AID中用户的标识来标识第二客户端计算设备。在514,代理服务器将第二通信路由到第二客户端计算设备(并且任选地到第一客户端计算设备)。方法500在516完成。
现在参考图6,示出了可被代理服务器计算设备执行的另一示例性方法600。方法600开始于602,并且在604,来自客户端计算设备池中的第一客户端计算设备的第一通信被接收。第一客户端计算可执行第一客户端,并且第一通信可包括标识第一客户端计算设备和第一客户端计算设备的用户的AID。在606,基于AID来在注册数据库中标识第一服务器计算设备。例如,第一服务器计算设备可在注册数据库中被注册为执行被配置成对第一客户端进行服务的第一服务器。
在608,可作出第一服务器计算设备是不能通信的确定。在610,从服务器计算设备池中标识第二服务器计算设备,并且在612,致使第二服务器计算设备执行第一服务器的再现的数据被传送到第二服务器计算设备。在一个示例中,包括对再现第一服务器的请求的消息可被传送到第二服务器计算设备。在另一示例中,包括第一服务器理想地被再现的指示的消息可被传送到第一客户端计算设备。第一客户端可此后将包括可用于再现第一服务器的数据的消息传送到代理服务器计算设备,代理服务器计算设备接着将该消息路由到第二服务器计算设备。方法600在614完成。
图7-8示出可在来自与分布式通信应用结合使用的服务器计算设备池中的服务器计算设备中执行的示例性方法。服务器计算设备可包括充分利用一般符合REST架构的API来促进对分布式通信应用的客户端进行服务的相应服务器。
现在仅参考图7,示出了可在服务器计算设备处执行的示例性方法700。方法开始于702,并且在704,作出在服务器计算设备上执行的服务器没有接收到来自被该服务器服务的客户端的通信达阈值时间量的确定(例如,客户端是非活动的)。在706,基于该确定,服务器被停用。停用可包括例如,对存储器或处理资源的解除分配、资源的移除等中的至少一个。在708,接收到来自客户端的针对服务器的通信。通信可包括例如,对于支持分布式通信应用所支持的通信模式的资源的请求。
在710,响应于接收到该通信,服务器被重新激活,并且在712,对于该通信的回复被服务器生成(并随后通过代理服务器的方式被传送到客户端)。方法700在714完成。
现在参考图8,示出了可被服务器计算设备执行的另一示例性方法800。方法开始于802,并且在802,第一通信被接收,其中第一通信包括AID和对于资源的请求。任选地,在806,可作出服务器计算设备没有包括被配置成对AID中所标识的计算设备进行服务的服务器的确定。在808,响应于作出该确定,服务器计算设备上的服务器被实例化。实例化服务器可包括例如,经由代理服务器将包括服务器理想地被创建的指示的第一消息传送到客户端计算设备,以及接收包括被用于创建服务器的信息的第二消息。在810,服务器被致使来生成包括对请求的回复的第二通信。第二通信还可包括AID。服务器计算设备将通信传送到代理服务器,其可接着将第二通信路由到被服务器服务的客户端计算设备。方法800在812完成。
现在参考图9,示出了可在服务器计算设备上执行的另一示例性方法900。方法900开始于902,并且在904,接收到包括对于由被服务器计算设备执行的服务器维护的事件资源的挂起请求的通信。在906,作出被服务器维护的资源已经被更新的确定。在908,关于该更新的数据被传送到事件资源。数据可包括以下中的至少一个:更新、标识更新类型的元数据、更新的紧急性和/或其他信息。在910,更新被分类为高度紧急,其中高度紧急更新是正被服务器服务的客户端计算设备要被立即通知的更新。在912,对于通信的回复被传送到客户端计算设备,该回复包括将被更新的资源标识为可用于客户端计算设备的元数据。在一个示例中,回复经由代理服务器被传送到客户端计算设备。在另一示例中,回复经由服务器计算设备和客户端计算设备之间的通信信道被传送到客户端计算设备。在914,接收到包括对于被更新的资源的请求的通信,并且在916,包括被更新的资源和标识客户端计算设备的信息的通信被传送到代理服务器,其将该通信路由到客户端计算设备。方法900在918完成。
现在参考图10,示出了可以根据本文公开的系统和方法使用的示例性计算设备1000的高级图示。例如,计算设备1000可被用在一系统中,该系统促进对与在计算设备之间传送数据有关的使用REST类API的分布式应用的软件的执行。计算设备1000包括执行存储在存储器1004中的指令的至少一个处理器1002。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器1002可以通过系统总线1006访问存储器1004。除了存储可执行指令以外,存储器1004还可存储注册数据库、资源等等。
计算设备1000还包括可由处理器1002通过系统总线1006访问的数据存储1008。数据存储1008可以包括可执行指令、资源、注册数据库等等。计算设备1000还包括允许外部设备与计算设备1000进行通信的输入接口1010。例如,输入接口1010可被用于从外部计算机设备、从用户等处接收指令。计算设备1000也可包括使计算设备1000和一个或多个外部设备相对接的输出接口1012。例如,计算设备1000可以通过输出接口1012显示文本、图像等。
考虑了通过输入接口1010和输出接口1012与计算设备1000通信的外部设备可被包括在提供实质上任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘、鼠标、遥控器等之类的输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然语言界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与计算设备1000交互。相反,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势、以及机器智能等。
另外,尽管被示为单个系统,但可以理解,计算设备1000可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备1000执行的任务。
在此所述的各种功能可以以硬件、软件或其任何组合来实现。如果以软件实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可由计算机访问的任何可用存储介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来承载或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟(BD),其中盘(disk)通常以磁的方式再现数据,而碟(disc)通常用激光以光学方式再现数据。另外,所传播的信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,其包括便于计算机程序从一地向另一地转移的任何介质。连接例如可以是通信介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外线、无线电、以及微波之类的无线技术来从网站、服务器、或其它远程源传输,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外线、无线电、以及微波之类的无线技术被包括在通信介质的定义中。上述的组合应当也被包括在计算机可读介质的范围内。
替换地或另选地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。处理器模块和/或处理器模块和本文中描述的相关联存储器的组合旨在包含任意这样的硬件逻辑组件。
以上所描述的包括一个或多个实施例的示例。当然,出于描绘前述各方面的目的而描述上述设备或方法的每个可以想到修改和改变是不可能的,但本领域内的普通技术人员可以认识到,各方面的许多另外的组合和置换都是可能的。因此,所描述的各方面旨在包括所有这些属于所附权利要求书的精神和范围内的改变、修改和变型。此外,就在详细描述或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。

Claims (10)

1.一种计算设备,包括:
处理器模块;以及
包括被所述处理器模块执行的代理服务器的存储器,所述代理服务器是用于分布式通信应用的后端计算机可执行代码,所述分布式通信应用支持客户端计算设备池中的第一客户端计算设备和服务器计算设备池中的第一服务器计算设备之间的通信,所述代理服务器充分利用一般符合代表性状态转移(REST)架构的应用编程接口(API)来支持所述第一客户端计算设备和所述第一服务器计算设备之间的通信,所述代理服务器基于所述服务器计算设备池中的至少一个其他服务器计算设备的可用性方面的改变将来自所述第一客户端计算设备的通信路由到所述第一服务器计算设备。
2.如权利要求1所述的计算设备,其特征在于,所述通信包括所述第一客户端计算设备的应用实例标识符(AID),所述AID基于所述第一客户端计算设备的身份以及所述第一客户端计算设备的用户的身份,所述代理服务器包括:
维护包括条目的注册数据库的注册数据库组件,所述条目包括所述AID;以及
路由服务组件,所述路由服务组件基于所述通信中的AID以及所述注册数据库中的AID来从所述服务器计算设备池中标识所述第一服务器计算设备。
3.如权利要求2所述的计算设备,其特征在于,所述路由服务组件致使所述第一服务器计算设备响应于接收到来自所述第一客户端计算设备的先前通信在所述第一服务器计算设备上实例化第一服务器,所述第一客户端被所述第一客户端计算设备执行,所述第一服务器对所述第一客户端进行服务,并且所述路由服务组件更新所述注册数据库以致使所述条目被包括在其中。
4.如权利要求3所述的计算设备,其特征在于,所述路由服务组件确定所述第一服务器计算设备是不能通信的,并且响应于确定所述第一服务器计算设备是不能通信的来标识所述服务器计算设备池中的第二服务器计算设备。
5.如权利要求4所述的计算设备,其特征在于,所述路由服务组件还致使所述第二服务器计算设备响应于确定所述第一服务器计算设备是不能通信的来在所述第二服务器计算设备上实例化第二服务器,所述第二服务器是所述第一服务器的再现。
6.如权利要求3所述的计算设备,其特征在于,所述路由服务组件确定第二服务器计算设备已经被添加到所述服务器计算设备池并致使所述第二服务器计算设备响应于确定所述第二服务器计算设备已经被添加到所述服务器计算设备池来在其上实例化第二服务器,所述第二服务器是所述第一服务器的再现。
7.如权利要求2所述的计算设备,其特征在于,所述第一服务器计算设备包括对在所述第一客户端计算设备上执行的第一客户端进行服务的第一服务器,所述第一服务器由于所述第一客户端的不活动而被停用,所述路由服务组件将来自所述第一客户端计算设备的致使所述第一服务器计算设备重新激活所述第一服务器的通信路由到所述第一服务器计算设备。
8.如权利要求1所述的计算设备,其特征在于,所述分布式通信应用是统一通信应用。
9.一种方法,包括:
在代理服务器计算设备的处理器处执行代理服务器,所述代理服务器是分布式通信应用的后端软件,所述代理服务器支持客户端计算设备池中的客户端计算设备和服务器计算设备池中的服务器计算设备之间的通信的路由,所述代理服务器充分利用一般符合代表性状态转移(REST)架构的应用编程接口(API)来促进所述路由,其中执行所述代理服务器包括:
接收来自所述客户端计算设备池中的第一客户端计算设备的第一通信;以及
选择性地将所述第一通信路由到所述服务器计算设备池中的所述第一服务器计算设备。
10.如权利要求9所述的方法,其特征在于,所述第一通信包括:
对于第一资源的请求;以及
应用实例标识符(AID),所述AID标识所述第一客户端计算设备以及所述第一客户端计算设备的用户,其中所述第一通信基于所述AID被路由到所述第一服务器计算设备。
CN201480011220.2A 2013-02-28 2014-02-26 支持弹性和可缩放分布式应用的rest类api Pending CN105144659A (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/925,827 2013-06-25
US13/925,827 US9838375B2 (en) 2013-02-28 2013-06-25 RESTlike API that supports a resilient and scalable distributed application
PCT/US2014/018463 WO2014134083A1 (en) 2013-02-28 2014-02-26 Restlike api that supports a resilient and scalable distributed application

Publications (1)

Publication Number Publication Date
CN105144659A true CN105144659A (zh) 2015-12-09

Family

ID=51389315

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201480011155.3A Pending CN105027535A (zh) 2013-02-28 2014-02-26 使用rest类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票证
CN201480011290.8A Pending CN105900391A (zh) 2013-02-28 2014-02-26 使用restlike api进行实时通信

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201480011155.3A Pending CN105027535A (zh) 2013-02-28 2014-02-26 使用rest类api的应用的向后兼容特征级版本控制

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201480011317.3A Pending CN105210348A (zh) 2013-02-28 2014-02-26 用于认证统一通信应用的客户端的基于对称密钥的web票证
CN201480011290.8A Pending CN105900391A (zh) 2013-02-28 2014-02-26 使用restlike api进行实时通信

Country Status (6)

Country Link
US (5) US9954843B2 (zh)
EP (4) EP2962445A1 (zh)
CN (4) CN105027535A (zh)
BR (1) BR112015020097A8 (zh)
ES (1) ES2613831T3 (zh)
WO (4) WO2014134081A1 (zh)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750673B2 (en) * 2011-08-01 2023-09-05 Spring Design, Inc. User interface content state synchronization across devices
US10298642B2 (en) * 2016-02-17 2019-05-21 Quickbiz Holdings Limited, Apia 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 阿里巴巴集团控股有限公司 即时通讯客户端显示信息的方法及设备和信息显示系统
EP3014803B1 (en) * 2013-06-25 2019-09-25 Nokia Technologies Oy A method and apparatus for anonymous and trustworthy authentication in pervasive social networking
EP3017562B1 (en) * 2013-07-01 2019-08-21 Nokia Technologies OY 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
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 株式会社リコー 端末装置、情報処理システム、情報送信方法及びプログラム
CA2956617A1 (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
EP3243134A1 (en) 2015-01-05 2017-11-15 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
CN105704562B (zh) * 2016-03-29 2020-01-03 Tcl集团股份有限公司 一种网络电视云服务平台的多版本兼容方法及装置
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
CN106897053B (zh) * 2016-07-08 2020-06-26 阿里巴巴集团控股有限公司 一种代码发布方法与装置
US10341371B2 (en) 2016-08-31 2019-07-02 Nicira, Inc. Identifying and handling threats to data compute nodes in public cloud
US10397136B2 (en) 2016-08-27 2019-08-27 Nicira, Inc. Managed forwarding element executing in separate namespace of public cloud data compute node than workload application
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 杭州迪普科技股份有限公司 一种会话重用方法及装置
US11500824B1 (en) 2017-04-03 2022-11-15 Amazon Technologies, Inc. Database proxy
US11106540B1 (en) 2017-04-03 2021-08-31 Amazon Technologies, Inc. Database command replay
US11182496B1 (en) 2017-04-03 2021-11-23 Amazon Technologies, Inc. Database proxy connection management
US11392603B1 (en) * 2017-04-03 2022-07-19 Amazon Technologies, Inc. Database rest API
CN107277140A (zh) * 2017-06-21 2017-10-20 山东浪潮通软信息科技有限公司 一种应用程序接口的分配方法、路由中间件及业务系统
US10673715B2 (en) * 2017-07-20 2020-06-02 Servicenow, Inc. Splitting network discovery payloads based on degree of relationships between nodes
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
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
US10778579B2 (en) 2017-08-27 2020-09-15 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
US11403269B2 (en) 2018-06-02 2022-08-02 Western Digital Technologies, Inc. Versioning validation for data transfer between heterogeneous data stores
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US10642804B2 (en) 2018-06-28 2020-05-05 Bank Of America Corporation Dynamic network database integration system
CN108920164A (zh) * 2018-07-11 2018-11-30 郑州云海信息技术有限公司 云计算系统中主机的管理方法和装置
US10491466B1 (en) 2018-08-24 2019-11-26 Vmware, Inc. Intelligent use of peering in public cloud
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway 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
JP7155439B2 (ja) * 2019-02-12 2022-10-18 グーグル エルエルシー オンデバイス機能性を使うように車両クライアントデバイスに指令すること
US20220225106A1 (en) * 2019-05-15 2022-07-14 Kirill Kulakovskij Method for registration of a user in a defined area and system for carrying out the method
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534196A (zh) * 2008-03-12 2009-09-16 因特伟特公司 用于安全调用rest api的方法和装置
CN102143200A (zh) * 2010-10-20 2011-08-03 华为技术有限公司 一种soap api转换为rest api的公共消息头承载方法及装置
US20120240129A1 (en) * 2011-03-18 2012-09-20 Telefonaktiebolaget L M Ericsson (Publ) Ranking service units to provide and protect highly available services using n+m redundancy models
US20130019000A1 (en) * 2011-07-14 2013-01-17 Mircea Markus Multi-operational transactional access of in-memory data grids in a client-server environment

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
AU2823601A (en) * 2000-01-27 2001-08-07 Hummingbird Ltd. A method and system for implementing a common user logon to multiple applications
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
US20060075079A1 (en) * 2004-10-06 2006-04-06 Digipede Technologies, Llc Distributed computing system installation
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 微软公司 元数据驱动的应用程序部署
US8589574B1 (en) * 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system
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
US8200764B2 (en) * 2006-12-19 2012-06-12 International Business Machines Corporation System and method for achieving highly scalable real-time collaboration applications using HTTP
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
US20090177735A1 (en) 2007-12-21 2009-07-09 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
US8306021B2 (en) * 2008-04-02 2012-11-06 Twilio, Inc. System and method for processing telephony sessions
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
US8260926B2 (en) 2008-11-25 2012-09-04 Citrix Systems, Inc. Systems and methods for GSLB site persistence
WO2010068465A2 (en) 2008-11-25 2010-06-17 Citrix Systems. Inc. Systems and methods for maintaining persistence by a backup virtual server
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
US9247008B2 (en) 2010-03-18 2016-01-26 Microsoft Corporation Unified web service discovery
US8572710B2 (en) 2010-03-18 2013-10-29 Microsoft Corporation Pluggable token provider model to implement authentication across multiple web services
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
US9529578B2 (en) * 2010-10-20 2016-12-27 Hewlett Packard Enterprise Development Lp Automated service version upgrading
WO2012098453A1 (en) * 2011-01-17 2012-07-26 Telefonactiebolaget Lm Ericsson (Publ) Http notification gateway
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)
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
WO2013054196A2 (en) * 2011-10-14 2013-04-18 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
CN101534196A (zh) * 2008-03-12 2009-09-16 因特伟特公司 用于安全调用rest api的方法和装置
CN102143200A (zh) * 2010-10-20 2011-08-03 华为技术有限公司 一种soap api转换为rest api的公共消息头承载方法及装置
US20120240129A1 (en) * 2011-03-18 2012-09-20 Telefonaktiebolaget L M Ericsson (Publ) Ranking service units to provide and protect highly available services using n+m redundancy models
US20130019000A1 (en) * 2011-07-14 2013-01-17 Mircea Markus Multi-operational transactional access of in-memory data grids in a client-server environment

Also Published As

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

Similar Documents

Publication Publication Date Title
CN105144659A (zh) 支持弹性和可缩放分布式应用的rest类api
CN101299754B (zh) 具有动态用户界面的终端用户控制配置系统
US10872127B2 (en) Method and system of providing for cross-device operations between user devices
US8849917B2 (en) Use of information channels to provide communications in a virtual environment
CN110417842A (zh) 用于网关服务器的故障处理方法和装置
KR102570799B1 (ko) 다수의 디바이스 상에 컴퓨팅 환경의 제시
KR20140031468A (ko) 휴대 단말 및 이의 컨텐츠 공유 방법
CN103988200A (zh) 用于web应用的轻量化框架
CN103533087A (zh) 一种云服务平台中间件及云上传方法
CN104756080A (zh) 扩展主机设备的功能
CN112260853B (zh) 容灾切换方法、装置、存储介质及电子设备
CN101601231A (zh) 支持因特网协议电话中的交叉簇扩展移动的方法和系统
CN104717131A (zh) 信息交互方法及服务器
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
CN113326100A (zh) 一种集群管理方法、装置、设备及计算机存储介质
CN112689012A (zh) 跨网络的代理通讯方法及装置
CN110233791A (zh) 数据去重方法和装置
CN103379015A (zh) 网站服务器与im客户端的数据传输方法及其装置和系统
CN105681262A (zh) 一种交互消息分配方法及系统
CN115914375A (zh) 分布式消息平台容灾处理方法及装置
CN111698337B (zh) 建立通信连接的方法、装置及设备
CN103731798A (zh) 一种电信业务订购的方法和系统
WO2021126400A1 (en) Preventing notification loss during temporary network disconnection
CN102930368B (zh) 容错外部应用服务器
CN106408793A (zh) 一种适用于atm业务的业务组件共享方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151209