CN105531979A - 建立用于数据交换的上下文的http协议上的消息传递api - Google Patents
建立用于数据交换的上下文的http协议上的消息传递api Download PDFInfo
- Publication number
- CN105531979A CN105531979A CN201480042881.1A CN201480042881A CN105531979A CN 105531979 A CN105531979 A CN 105531979A CN 201480042881 A CN201480042881 A CN 201480042881A CN 105531979 A CN105531979 A CN 105531979A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- request
- data
- 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.)
- Granted
Links
- 230000004044 response Effects 0.000 claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 10
- 230000015654 memory Effects 0.000 claims description 7
- 230000000284 resting effect Effects 0.000 claims 1
- 235000014510 cooky Nutrition 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000012546 transfer Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 33
- 238000003860 storage Methods 0.000 description 15
- 230000009471 action Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
Abstract
提供了用于在本地客户端上从远程服务器取回数据并且在服务器上建立针对客户端上下文的协议的技术。客户端可以执行应用以使得用户能够接收存储在服务器上的数据,例如电子邮件。客户可以采用超文本传输协议(HTTP)上的消息传递以从服务器请求数据。HTTP?POST请求可以包括具有用于数据取回的指令的专门的报头,并且可以使得客户端能够与服务器建立上下文针对后续的数据请求来识别该客户端。接收到POST请求后,服务器可以在处理请求期间发送接收响应和分块的中间响应。服务器还可以向客户端发送表示该客户端上下文的暂存信息,并且客户端可以利用后续数据请求将暂存信息返回给服务器。
Description
背景技术
在通信环境中,通常使用客户端/服务器关系来对可能分布在不同的远程位置的服务进行互连。很多时候,用户可以在用户的客户端设备上本地执行应用,并且应用可以从通过网络与该客户端设备连接的远程服务器取回与该应用相关联的数据。在示例场景中,在客户端设备与服务器之间建立连接后,应用可以将请求转发给服务器,并且服务器可以继而将请求发送到数据库以取回所请求的数据和信息。服务器可以将取回的数据返回给客户端设备,该客户端设备可以将信息呈现给用户并且使得用户能够与数据进行交互。
远程过程调用(RPC)协议有时可以用来将请求从本地客户端转发到远程服务器以取回所请求的数据。然而,RPC协议可能涉及某种复杂的编码,并且可能需要服务器侧上的专门配置,以用于实现用于数据取回的成功的RPC协议。此外,当大量用户使用RPC来访问数据时,由于RPC协议的多个冗余,一些服务器可能变得过载。当服务器变得过载时,用户可能丢失已建立的连接并且可能无法重新连接,这可能降低用户体验的总体质量,并且可能阻止用户通过客户端应用来访问数据。此外,当用户能够重新连接时,该用户可能需要向服务器重新认证自身,这是因为服务器与客户端之间的上下文仅可以在特定连接存活时有效。例如,如果连接由于丢掉连接、超出范围、切换到新连接、或进入休眠而丢失,则用户可能需要在每次客户端进行重新连接时与服务器重新建立上下文。
发明内容
提供本概述以便以简化的形式引入一系列概念,这些概念在下文的具体实施方式中进行进一步描述。本概述并不是要排他地标识出要求保护的主题的关键特征或必要特征,也不是要帮助确定要求保护的主题的范围。
实施例目标在于用于在本地客户端上从远程服务器取回数据并且在服务器上建立针对该客户端的上下文的协议。客户端(例如,生产力或通信应用)可以使得用户能够在用户的本地设备上接收存储在远程服务器上的数据,例如,电子邮件。客户端可以将专门的报头与已经建立的诸如HTTPPOST请求等的超文本传输协议(HTTP)语言结合以便于取回数据。报头可以包括用于数据取回的指令,并且还可以使得客户端能够与服务器建立上下文以针对后续的数据请求来识别该客户端。在接收到POST或类似请求后,服务器可以在请求正在被处理时发送接收响应和分块的中间响应。此外,在接收到POST或类似请求后,服务器可以生成表示客户端的上下文的暂存信息(cookie)。服务器可以在中间响应中将该暂存信息提供给客户端,并且客户端可以保存该暂存信息以用于将来的数据请求。客户端可以利用后续的数据请求将该暂存信息返回给服务器,以用于上下文的验证以及验证该客户端是同一个被认证的客户端。
通过阅读下面的详细描述并且参照相关联的附图,这些以及其他特征和优点将变得显而易见。可以理解,上文的一般描述和下文的详细描述都是说明性的,并且不限制要求保护的方面。
附图说明
图1示出了其中客户端可以通过网络访问生产力和通信服务的示例环境;
图2示出了采用通过HTTP协议的消息传递的客户端与服务器之间的示例数据交换;
图3示出了采用通过HTTP协议的消息传递来在客户端与服务器之间进行交换以建立上下文的示例数据请求和响应;
图4是在其中可以实现根据实施例的系统的网络环境;
图5是在其中可以实现实施例的示例计算操作环境的框图;以及
图6示出了根据实施例的用于提供通过HTTP协议的消息传递以在客户端与服务器之间建立上下文并且交换数据的过程的逻辑流程图。
具体实施方式
如以上所简要描述的,描述了用于提供用于在本地客户端上从远程服务器取回数据并且在服务器上建立针对该客户端的上下文的协议的系统。客户端可以采用诸如HTTPPOST请求之类的已经建立的超文本传送协议(HTTP)语言来在客户端上从服务器取回数据。HTTPPOST请求可以包括具有用于数据取回的指令的报头,并且可以使得客户端能够与服务器建立上下文,以识别用于后续的数据请求的客户端。在接收到数据请求后,服务器可以生成表示客户端的上下文的暂存信息。服务器可以将暂存信息与分块的中间响应一起提供给客户端,并且客户端可以将该暂存信息与后续数据请求一起返回给服务器。
在以下详细描述中,参照了形成该详细描述的一部分的附图,并且在以下详细描述中以例示的方式示出了特定的实施例或示例。可以对这些方面进行组合、可以利用其他方面、并且可以进行结构改变,而不偏离本公开的精神或范围。因此,以下的详细描述并不应被理解为限制意义,并且本发明的范围由所附权利要求及其等效物来进行定义。
尽管在与运行在计算设备上的操作系统上的应用程序结合执行的程序模块的一般上下文中描述了各实施例,但是本领域的技术人员将会认识到各方面也可以结合其他程序模块实现。
一般地,程序模块包括例程、程序、部件、数据结构、以及执行特定任务或实现特定抽象数据类型的其他类型的结构。此外,本领域的技术人员将理解的是,实施例可以利用其他计算机系统配置来实现,所述其他计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程的消费电子设备、小型计算机、大型计算机以及类似计算设备。实施例还可以在分布式计算环境中实现,在所述分布式计算环境中,任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备两者中。
各实施例可以被实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质等的制品。计算机程序产品可以是如下的计算机存储介质,其可以由计算机系统读取并且对包括用于使得计算机或计算系统执行示例过程的指令的计算机程序进行编码。例如,计算机可读存储介质可以经由易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘、或紧凑型服务器、在单个计算设备上执行的应用、以及类似系统中的一个或多个来实现。
在整个本说明书中,术语“平台”可以是软件和硬件部件的组合,其用于提供通过HTTP协议的消息传递以建立客户端与服务器之间的上下文并且通过网络来交换数据。平台的示例包括但不限于,在多个服务器上执行的被托管的服务、在单个计算设备上执行的应用、以及类似系统。术语“服务器”一般指通常在网络环境中执行一个或多个软件程序的计算设备。然而,服务器还可以被实现为被视作网络上的服务器的在一个或多个计算设备上执行的虚拟服务器(软件程序)。在以下描述中提供了关于这些技术和示例操作的更多细节。
图1示出了根据本文的一些实施例的示例环境,其中客户端可以通过网络来访问生产力和通信服务。图100中示出的计算设备和计算环境用于说明的目的。实施例可以在各种本地、网络的、以及采用各种计算设备和系统的类似的计算环境中实现。
如在图100中示出的,用户可以采用各种不同的客户端设备来执行用于交换数据以及与数据进行交互的应用。在用户的客户端设备上执行的用于与数据进行交互的示例应用可以是生产力服务106和通信服务104。
示例生产力服务106可以被配置为提供对围绕生产力平台构建的各种服务的访问。一些生产力服务可以包括电子邮件应用、社交网络应用、协作应用、企业管理应用、消息传递应用、文字处理应用、电子表格应用、数据库应用和演示应用。生产力服务106可以通过从远程服务器110取回数据来提供对与各种生产力应用相关联的数据的访问。可以通过网络112来访问远程服务器110,网络112可以是有线或无线网络、或云网络,并且所取回的数据可以加载在执行生产力服务106的用户的本地客户端设备上。
类似地,示例通信服务104可以是被配置为提供电子邮件、联系人管理、以及日历服务的服务。通信服务104还可以提供实时通信平台,例如,即时消息、音频/视频会议、以及存在检测。例如,用户可以在用户的客户端设备上执行的通信服务104上接收、查看、以及回复电子邮件。用于查看电子邮件和访问其他通信数据的一些示例客户端设备可以包括台式计算设备、个人计算机、平板设备、智能电话、白板和其他类似的客户端设备。通信服务和生产力服务还可以协同工作以对电子邮件和其他数据进行取回和交换。
由通信服务104和生产力服务106提供的服务可以在与通信服务104和生产力服务106相关联的外部服务器上被托管,并且用户可以通过网络112在用户的客户端设备上本地访问所提供的服务。此外,可以通过网络在本地客户端设备与服务器之间交换数据,以使得本地客户端设备可能需要具有通过网络的与服务器110的活动连接,以便于访问由通信服务104和生产力服务106提供的数据并且与其进行交互。
诸如通信服务104或生产力服务106等的本地客户端可以向服务器110发出多个请求以取回数据。每次本地客户端从服务器110请求数据时,客户端可能需要向服务器验证自身。此外,如果在数据请求和交换期间,客户端与服务器110之间的连接被丢掉或改变,则客户端可能需要向服务器重新验证自身以重新建立用于数据交换的连接。在根据实施例的系统中,可以在初始数据请求期间在客户端和服务器110之间建立上下文,并且该上下文可以被用作针对后续的数据取回请求的认证的基础。
在本文中使用术语“上下文”来表示服务器上的状态的集合,该状态集合在独特的客户端请求之间保持并且在该“上下文”被创建时以及在每个后续响应上,使用返回的暂存信息来进行引用。状态信息的集合可以唯一地特定于服务器实现并且不在协议本身内被具体地标识或定义,因为其永远不会在线路上传送。状态的集合还可以不与从客户端到服务器的任何物理或逻辑连接绑定。客户端可以自由地向服务器发出后续请求,该服务器经由与其中最初创建所述“上下文”的连接相独立的任何新建立的连接上的暂存信息来识别该“上下文”。
图2示出了根据本文的一些实施例的采用通过HTTP协议的消息传递的客户端与服务器之间的示例数据交换。
如在图200中示出的,客户端202可以在本地设备上执行生产力应用或通信应用204,例如,电子邮件、联系人和日历管理应用。客户端202可以通过网络与服务器208进行通信以取回与通信应用204相关联的数据,例如,电子邮件数据。
在根据实施例的系统中,可以在客户端202和服务器208之间建立连接,以便使得能够与通信应用204交换数据。客户端202可以发起与服务器208的连接,并且可以从服务器208请求数据。服务器208可以接受请求、处理请求、以及将请求的信息返回给客户端202。在初始请求期间,可以在客户端202与服务器208之间建立上下文210以针对后续的数据取回请求对客户端202进行认证。
在示例实施例中,可以采用HTTP来促进客户端与服务器208之间的通信、认证、和数据交换。已经建立的HTTP语言可以定义方法、或动词,其可以指示要由服务器执行,以取回请求的信息的期望动作。例如,动词可以包括GET动词,其可以是用于取回数据的请求。在HTTP中采用的另一个示例动词可以是POST谓词,其可以是用于请求服务器将封装在HTTP请求中的数据接受为要添加到服务器上的数据上的新数据的动作。
在示例实施例中,客户端202可以在已建立的HTTP的请求上结合消息传递协议以便于促进从服务器208取回与在客户端上执行的通信应用相关联的数据。通过HTTP协议的消息传递206可以使得客户端202通过HTTP连接向服务器208发送请求,并且通过同一HTTP连接接收服务器响应。通过HTTP协议的消息传递206还可以使得客户端202能够通过HTTP连接与服务器208建立上下文,以用于在将来的请求期间对客户端进行认证。此外,客户端202可以打开与服务器208的额外的HTTP连接,以向服务器208发送并发的独立请求。
在示例实施例中,客户端202可以将数据请求语言与传统的HTTPPOST请求语言结合来生成所述的通过HTTP协议的消息传递。通过HTTP协议的消息传递可以包括专用的报头结构,其用于指示服务器取回哪些数据以及如何响应客户端。专用的报头结构可以包括请求类型(requesttype)报头、请求标识(requestidentification)报头、邮箱标识(mailboxidentification)报头、以及内容类型(content-Type)报头。请求类型报头可以是X-RequestType(X-请求类型)报头,其可以用于告知服务器208:客户端202正在试图执行什么操作。例如,连接请求可以是访问与电子邮箱账户相关联的邮箱并从该邮箱取回数据的请求。绑定请求可以是访问与联系人管理应用相关联的地址簿并从该地址簿取回数据的请求。
此外,请求标识报头可以是X-RequestID(X-请求ID)报头,其可以向服务器208标识客户端202。服务器208可以不接受未标识的或匿名的请求。此外,邮箱标识报头可以是MailboxID(邮箱ID)参数,其唯一地标识与客户端相关联的电子邮件账户或邮箱,服务器208被请求从该账户或邮箱取回电子邮件数据。此外,POST请求可以包括内容类型报头,其可以是被设置为“application/mapi-http”的Content-type(内容类型)报头。本文所讨论的报头是出于说明目的的示例而不是要作为对实施例的限制。
示例的通过HTTP协议的消息传递请求可以如下:
POST/<endpoint>/?MailboxId=<GUID>contoso.comHTTP/1.1
Host:mail.contoso.com
Content-Length:<length>
Content-Type:application/mapi-http
X-RequestType:EcDoConnectEx
X-Requestld:<GUID>:<ID>
<RAWBINARYREQUESTBODY>
采用绑定请求的示例通过HTTP协议的消息传递请求可以如下:
POST/<endpoint>/?MailboxId=<GUID>contoso.comHTTP/1.1
Host:mail.contoso.com
Content-Length:<length>
Content-Type:application/mapi-http
X-RequestType:Bind
X-Requestld:<GUID>:<ID>
<RAWBINARYREQUESTBODY>
采用连接请求的示例通过HTTP协议的消息传递请求可以如下:
POST/<endpoint>/?MailboxId=<GUID>contoso.comHTTP/1.1
Host:mail.contoso.com
Content-Length:<length>
Content-Type:application/mapi-http
X-RequestType:Connect
X-Requestld:<GUID>:<ID>
<RAWBINARYREQUESTBODY>
图3示出了根据一些示例实施例的采用通过HTTP协议的消息传递在客户端与服务器之间交换以建立上下文的示例数据请求和响应。
如前面结合图2所描述的,客户端302可以利用标准的HTTPPOST请求以便于从与在客户端302上执行的应用相关联的服务器304请求数据。可以将专门的数据请求语言与HTTPPOST语言结合以产生通过HTTP协议的消息传递,其被配置为指示服务器304取回什么数据、从哪里取回数据、以及如何响应客户端302。通过HTTP协议的消息传递还可以被配置为建立客户端302与服务器304之间的上下文,以针对将来的数据请求向服务器304认证客户端302。
如在图300中所示出的,在服务器接收初始POST请求306后,可以从服务器向客户端返回一系列响应。初始POST请求306可以包括用于服务器304的指令,用于在POST请求306由服务器304入队和处理期间,利用接收响应308来响应初始POST请求306。接收响应308可以向客户端302提供服务器304已经收请求的确认,以便于防止客户端302没有意识到丢掉的连接或服务器304不可用于处理请求。如果客户端302没有在合理的时间段内接收到接收响应308,则客户端302可以放弃和/或重试POST请求306。
在示例实施例中,在服务器304处理POST请求306时,服务器304还可以返回中间分块响应310。来自服务器的分块响应310可以包括具有以“分块(chunked)”作为传送编码的传送编码(Transfer-Encoding)报头。分块的传送编码值可以使得服务器304在POST请求306正在被服务器处理时向客户端302返回中间响应和数据。中间分块响应310将请求的状态提供给客户端302,以指示客户端302与服务器304之间的连接还没有被断开连接,并且服务器304当前正在处理POST请求306。如果客户端302没有在合理的时间段内收到预期的中间响应,则客户端302可以放弃和/或重试POST请求306。用于交付中间响应的预期的时间段可以由客户端或服务器定义,并且也可以是可配置的设置。中间分块响应310还可以用来在服务器304处理POST请求306时,保持底层的HTTP连接活动。
在根据实施例的系统中,服务器304还可以生成暂存信息320以对客户端302进行标识并且建立客户端302的与服务器304的上下文。服务器304可以将暂存信息320与接收响应以及与中间分块响应一起返回给客户端302,以便于建立客户端302与服务器304之间的上下文。服务器304可以根据服务器策略来定义暂存信息名和值。
包括生成的暂存信息的从服务器304到客户端302的示例响应可以如下:
HTTP/1.1200OK
Host:mail.contoso.com
Transfer-Encoding:chunked
Content-Length:<length>
Content-Type:application/mapi-http
Set-Cookie:MapiContext=<opaquestring>
Set-Cookie:MapiSequence=<opaquestring>
X-RequestType:EcDoConnectEx(Bind或Connect)
X-ResponseCode:<value>
<RAWBINARYRESPONSEBODY>
在接收到暂存信息320之后,客户端302可以存储暂存信息320以用于与服务器304的将来的交互。当客户端采用通过HTTP协议的消息传递向服务器304发送后续数据请求时,客户端302可以在后续请求322中包括暂存信息320。
包括接收到的暂存信息的示例后续的通过HTTP协议的消息传递数据请求可以如下:
POST/<endpoint>/?MailboxId=<GUID>contoso.comHTTP/1.1
Host:mail.contoso.com
Content-Length:<length>
Content-Type:application/mapi-http
Cookie:MapiContext=<opaquestring>
Cookie:MapiSequence=<opaquestring>
X-RequestType:EcDoConnectEx
X-ClientInfo:<opaquestring>
X-RequestedID:<GUID>:<ID>
<RAWBINARYRESPONSEBODY>
在示例实施例中,由于客户端302存储暂存信息320并且在后续请求期间返回暂存信息320,客户端302可以不必在每次后续数据请求期间向服务器304重新认证自身。客户端302可以向服务器304提供暂存信息320,并且服务器可以自动验证由该暂存信息表示的上下文是来自同一个被认证的客户端。服务器304可以在最终响应中将请求的数据返回给被认证的客户端302。
在根据实施例的系统中,暂存信息可以使得客户端与服务器之间的上下文能够在丢失连接的事件中被保存。例如,当客户端超出范围、断开连接、改变连接、或进入休眠模式时,HTTP连接可能丢失。在连接断开期间,客户端可以仍然保持暂存信息320,并且在重新连接后,当客户端302发起数据请求时,客户端302可以将暂存信息320提供给服务器304。服务器304可以被配置为将与暂存信息320相关联的上下文存储一段时间,以使得在上下文到期前,客户端302可以有一定的时间来重新建立与服务器304的连接。在定义的时间段之后,上下文可能会到期,并且客户端302可能需要在数据请求期间在服务器304上认证自身。服务器可以生成新的暂存信息并且将所述新的暂存信息与客户端进行交换以建立新的上下文。
在示例实施例中,用于保存上下文的时间段可以被预定义,并且还可以基于网络类型、客户端类型、与用户相关联的客户端设备、安全参数、以及其他类似的参数是可配置的。用于保留上下文的时间段还可以基于服务器上的可用资源是动态的。例如,如果只有一个客户端正在与服务器304进行交互,则服务器可以将上下文保存较长的时间段,这是因为客户端没有消耗大量的服务器资源。如果有多个用户或客户端正在与服务器304进行交互,则服务器304可以限制保存的上下文的数量和用于保存上下文的时间,以保留服务器资源。服务器304还可以与客户端302通信以告知客户端302上下文将何时到期。客户端302能够通过与服务器进行通信来刷新已建立的上下文,以延长对该上下文的保存时间段。例如,客户端302每次与服务器304活动地通信时,服务器304可以刷新上下文的到期时间。在上下文到期后,该上下文可以在服务器304上被永久地丢弃。
已经利用具体的配置、应用和交互描述了图1至图3中的示例系统。实施例不限于根据这些示例的系统。用于提供通过HTTP协议的消息传递来建立客户端与服务器之间的上下文并且通过网络来交换数据的系统可以在采用更少或额外的部件以及执行其他任务的配置中被实现。此外,可以使用本文描述的原理以类似的方式来实现具体的协议和/或接口。
图4是其中可以实现实施例的示例网络环境。用于提供通过HTTP协议的消息传递来建立客户端与服务器之间的上下文并且通过网络来交换数据的系统可以经由在一个或多个服务器414上执行的软件(例如托管服务)来实现。平台可以通过网络410与诸如智能电话413、膝上型计算机412、或台式计算机411等的个人计算设备(‘客户端设备’)上的客户端应用进行通信。
在客户端设备411-413中的任一个上执行的客户端应用可以促进经由通过服务器414执行的应用或在个人服务器416上执行的应用的通信。例如,在服务器中的一个上执行的应用可以促进作为生产力服务的一部分的通信。应用可以直接地或通过数据库服务器418从数据存储419中取回相关数据,并且通过客户端设备411-413将所请求的服务(例如,文档编辑)提供给用户。
网络410可以包括服务器、客户端、互联网服务提供商、以及通信介质的任何拓扑。根据实施例的系统可以具有静态或动态拓扑。网络410可以包括诸如企业网络等的安全网络、诸如无线开放网络等的非安全网络、或互联网。网络410还可以通过诸如公共交换电话网(PSTN)或蜂窝网络等的其他网络来协调通信。此外,网络410可以包括诸如蓝牙等的短距离无线网络或其类似。网络410提供本文所描述的节点之间的通信。以示例而非限制的方式,网络410可以包括无线介质,例如,声学、RF、红外以及其他无线介质。
可以采用计算设备、应用、数据源、和数据分布系统的多种其他配置来实现用于提供通过HTTP协议的消息传递以用于通过网络来在客户端和服务器之间进行数据交换的平台。此外,在图4中讨论的网络环境仅用于说明目的。实施例不限于该示例应用、模块或过程。
图5和相关联的讨论旨在提供对其中可以实现实施例的合适的计算环境的简要、一般的描述。参考图5,示出了根据实施例的用于应用的示例计算操作环境(例如,计算设备500)的框图。在基本的配置中,计算设备500可以是根据实施例的执行用于提供通过HTTP协议的消息传递以用于通过网络在客户端和服务器之间进行数据交换的应用的任何计算设备,并且包括至少一个处理单元502和系统存储器504。计算设备500还可以包括协作执行程序的多个处理单元。取决于计算设备的确切配置和类型,系统存储器504可以是易失性的(例如RAM)、非易失性的(例如,ROM、闪存等)或是两者的某种组合。系统存储器504通常包括适于控制平台的操作的操作系统505,例如,来自华盛顿州雷蒙德市的微软公司的操作系统。系统存储器504还可以包括一个或多个软件应用,例如,生产力服务应用522和上下文模块524。
生产力应用522可以是提供诸如电子邮件应用、社交网络应用、协作应用、企业管理应用、消息传递应用、文字处理应用、电子表格应用、数据库应用以及演示应用等各种服务的应用。生产力应用522可以在远程服务器上托管,并且可以通过网络向本地客户端提供服务。作为生产力应用522的一部分的上下文模块524可以使得客户端能够建立与服务器的上下文,以便使得用户能够访问存储在远程服务器处的数据并与其进行交互,所述数据例如是电子邮件、联系人和日历数据。客户端可以采用通过HTTP协议的消息传递从远程服务器请求数据,所述通过HTTP协议的消息传递可以向远程服务器提供针对取回什么数据以及从哪里取回数据的指令,并且还可以指示远程服务器发送接收响应以及指示请求的处理的状态的一系列分块响应。通过上下文模块524,服务器可以建立上下文并且将表示该上下文的暂存信息提供给客户端。生产力应用522和上下文模块524可以是单独的应用或托管服务的集成模块。这样的基本配置在图5中由虚线508内的那些部件示出。
计算设备500可以具有额外的特征或功能。例如,计算设备500还可以包括额外的数据存储设备(可移动和/或不可移动),例如,磁盘、光盘、或磁带。这种额外的存储在图5中由可移动存储装置509和不可移动存储装置510示出。计算机可读存储介质可以包括以用于信息(例如计算机可读指令、数据结构、程序模块、或其他数据)的存储的任何方法或技术实现的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器504、可移动存储装置509和不可移动存储装置510都是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术;CD-ROM、数字多功能盘(DVD)或其他光学存储装置;磁带、磁盘存储装置或其他磁存储设备;或可用于存储所需信息并且可以由计算设备500访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备500的一部分。计算设备500还可以具有输入设备512,例如,键盘、鼠标、笔、语音输入设备、触摸输入设备、以及类似的输入设备。还可以包括输出设备514,例如显示器、扬声器、打印机、以及其他类型的输出设备。这些设备是本领域公知的并且不必在此详细讨论。
计算设备500还可以包括允许该设备与其他设备518进行通信的通信连接516,例如,通过分布式计算环境中的有线或无线网络、卫星链路、蜂窝链路、短程网络、以及类似的机制进行通信。其他设备518可以包括执行通信应用、网络服务器的计算机设备以及类似的设备。通信连接516是通信介质的一个示例。通信介质可以在其中包括计算机可读指令、数据结构、程序模块、或其他数据。以示例而非限制的方式,通信介质包括诸如有线网络或直接有线连接等的有线介质,以及诸如声学、RF、红外和其他无线介质等的无线介质。
示例实施例还包括方法。这些方法可以以包括本文中所描述的结构在内的任何数量的方式来实现。一种这样的方式是通过本文中所描述的类型的设备的机器操作。
另一个可选方式是结合执行一些操作的一个或多个人类操作者来执行方法的各个操作中的一个或多个。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。
图6示出了根据实施例的用于提供通过HTTP协议的消息传递以建立客户端与服务器之间的上下文并且通过网络来交换数据的过程600的逻辑流程图。过程600可以在计算设备上或在能够通过处理器来执行指令的类似的电子设备上实现。
过程600开始于操作610,其中可以建立客户端与服务器之间的连接。客户端可以是通过网络(例如云网络)从远程服务器访问信息和数据的生产力服务和/或通信服务。在操作620处,服务器可以从客户端接收POST请求以在服务器上发起数据取回。POST请求可以是通过HTTP协议的消息传递,其可以包括具有用于数据取回的指令的专门的报头,包括请求类型报头、请求标识报头、邮箱标识报头以及内容类型报头。操作630可以跟随操作620,在操作630中,服务器可以在接收到POST请求后向客户端发送接收响应。
在操作640处,服务器可以生成表示客户端和服务器之间的上下文的暂存信息。后续数据请求期间,该上下文可以在服务器处识别客户端。在操作650处,当服务器处理请求时,服务器可以将包括生成的暂存信息的中间分块响应发送给客户端。中间分块响应可以向客户端指示数据请求的状态。暂存信息可以被保存在客户端,并且可以在丢掉和转移连接期间、以及在客户端休眠期间被保持。在操作660处,服务器可以从客户端接收包括暂存信息的后续POST请求,并且服务器可以自动地将上下文验证为来自同一个被认证的客户端。
过程600中包括的操作是用于说明的目的。使用本文描述的原理,提供通过HTTP协议的消息传递来建立客户端与服务器之间的上下文并且通过网络来交换数据可以通过具有更少或额外的步骤的过程、以及以不同的操作顺序来实现。
以上说明、示例和数据提供了对实施例的组成部分的制造和使用的完整描述。尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解的是,在所附的权利要求书中定义的主题不必限于上面所描述的具体特征或动作。确切地说,上面所描述的具体特征和动作作为实现权利要求和实施例的示例形式被公开。
Claims (10)
1.一种至少部分地在计算设备中执行的方法,用于提供通过超文本传输协议(HTTP)的消息传递,以用于在客户端与服务器之间建立上下文并且通过网络来交换数据,所述方法包括:
接收来自客户端的连接请求;
通过所述连接接收来自所述客户端的数据请求;
向所述客户端发送接收响应;
生成表示所述客户端与所述服务器之间的上下文的暂存信息;以及
将所述暂存信息提供给所述客户端。
2.如权利要求1所述的方法,还包括:
在处理所述请求时,向所述客户端发送一系列中间分块响应。
3.如权利要求2所述的方法,其中,发送中间分块响应进一步包括:
在所述分块响应中包括具有以“分块”作为传送编码值的报头。
4.如权利要求3所述的方法,还包括:
在对所述客户端的所述中间分块响应中的至少一个中间分块响应中包括所述暂存信息,以将所述暂存信息提供给所述客户端。
5.如权利要求1所述的方法,还包括:
使得所述暂存信息能够在以下中的一个或多个期间被保持在所述客户端处:断开连接、重新连接、以及所述客户端的休眠状态。
6.如权利要求1所述的方法,还包括:
在后续数据请求期间,接收来自所述客户端的所述暂存信息;以及
验证与所述后续请求上的所述暂存信息相关联的上下文是由最初创建所述上下文和相关联的暂存信息的同一个被认证的客户端使用的。
7.一种用于通过网络在客户端与生产力服务之间进行数据交换的服务器,所述服务器包括:
存储指令的存储器;
耦合到所述存储器的处理器,所述处理器执行数据取回应用,其中,所述数据取回应用被配置为:
接收连接请求;
通过所述连接来接收数据请求;
响应于所述数据请求,发送接收响应;
生成表示所述客户端与所述服务器之间的上下文的暂存信息;以及
在处理所述请求时,在发送的一系列中间分块响应中的至少一个中间分块响应中提供所述暂存信息。
8.如权利要求7所述的服务器,其中,所述生产力服务被配置为提供以下中的一个或多个:电子邮件应用、社交网络应用、协作应用、企业管理应用、消息传递应用、文字处理应用、电子表格应用、数据库应用、演示应用、以及电子邮件、联系人和日历管理应用。
9.如权利要求7所述的服务器,其中,所述数据请求包括具有针对如何处理所述数据请求的指令的一个或多个报头。
10.一种计算机可读存储器设备,具有存储于其上的用于提供通过超文本传送协议(HTTP)的消息传递以用于在客户端和服务器之间建立上下文并且通过网络来交换数据的指令,所述指令包括:
接收连接请求;
通过所述连接接收数据请求;
响应于所述数据请求,发送接收响应;
处理所述请求以取回请求的数据;
生成表示所述客户端与所述服务器之间的上下文的暂存信息;
在处理所述请求时,在发送到所述客户端的一系列中间分块响应中的至少一个中间分块响应中发送所述暂存信息;以及
在提供请求的数据后,发送最终响应。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/956,014 US9961125B2 (en) | 2013-07-31 | 2013-07-31 | Messaging API over HTTP protocol to establish context for data exchange |
US13/956,014 | 2013-07-31 | ||
PCT/US2014/048756 WO2015017481A1 (en) | 2013-07-31 | 2014-07-30 | Messaging api over http protocol to establish context for data exchange |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105531979A true CN105531979A (zh) | 2016-04-27 |
CN105531979B CN105531979B (zh) | 2019-03-12 |
Family
ID=51390176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480042881.1A Active CN105531979B (zh) | 2013-07-31 | 2014-07-30 | 一种用于在客户端与服务器之间交换数据的方法及服务器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9961125B2 (zh) |
EP (1) | EP3028437B1 (zh) |
KR (1) | KR102208935B1 (zh) |
CN (1) | CN105531979B (zh) |
WO (1) | WO2015017481A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155749A (zh) * | 2016-06-21 | 2019-01-04 | 甲骨文国际公司 | 互联网云托管的自然语言交互式消息传送系统会话器 |
CN109313588A (zh) * | 2016-06-30 | 2019-02-05 | 微软技术许可有限责任公司 | 信号上传优化 |
CN113841373A (zh) * | 2019-05-17 | 2021-12-24 | 奈飞公司 | 用于基于网络的服务的“射后不理”卸载机制 |
US11240179B2 (en) | 2016-09-16 | 2022-02-01 | Oracle International Corporation | Internet cloud-hosted natural language interactive messaging system with virtual database |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150039675A1 (en) * | 2013-07-31 | 2015-02-05 | Microsoft Corporation | Messaging over http protocol for data exchange |
US10440066B2 (en) | 2013-11-15 | 2019-10-08 | Microsoft Technology Licensing, Llc | Switching of connection protocol |
EP3912826B1 (en) * | 2015-03-04 | 2023-01-25 | Stolle Machinery Company, LLC | Digital printing machine and method |
CN106034157A (zh) * | 2015-03-18 | 2016-10-19 | 国家计算机网络与信息安全管理中心 | 数据交换中传输http协议的方法、服务器及存储设备 |
EP3450172B1 (en) * | 2016-04-28 | 2023-09-13 | ALTEMIRA Co., Ltd. | Printing device |
CN109816538A (zh) * | 2018-12-14 | 2019-05-28 | 平安医疗健康管理股份有限公司 | 数据交互系统及方法和计算机可读存储介质 |
CN112954063A (zh) * | 2021-02-25 | 2021-06-11 | 福州创实讯联信息技术有限公司 | 一种tftp内网穿透方法及tftp服务端 |
CN113722126A (zh) * | 2021-09-09 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 一种请求处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1267862A (zh) * | 2000-04-29 | 2000-09-27 | 封�波 | 一种利用国际互联网进行实时文件交互传输方法 |
CN1688139A (zh) * | 2005-06-02 | 2005-10-26 | 威盛电子股份有限公司 | 批次传送数据的服务器及批次传送数据方法 |
US20090204666A1 (en) * | 2008-02-13 | 2009-08-13 | Microsoft Corporation | Push mechanism for efficiently sending aggregated data items to client |
US20110320820A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Restoring Secure Sessions |
Family Cites Families (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4929939A (en) | 1988-10-31 | 1990-05-29 | International Business Machines Corporation | High-speed switching system with flexible protocol capability |
US5978566A (en) | 1996-07-12 | 1999-11-02 | Microsoft Corporation | Client side deferred actions within multiple MAPI profiles |
US5974447A (en) | 1996-07-17 | 1999-10-26 | Motorola, Inc. | Method and system for coupling a selective call receiver to widely distributed information sources |
US5892915A (en) | 1997-04-25 | 1999-04-06 | Emc Corporation | System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list |
US5974503A (en) | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US6988141B1 (en) | 2000-05-17 | 2006-01-17 | Ricoh Company, Ltd. | Method and system of remote diagnostic, control and information collection using a dynamic linked library of multiple formats and multiple protocols with restriction on protocol |
US6931447B1 (en) * | 2000-09-27 | 2005-08-16 | Hewlett-Packard Development Company, L.P. | Remote hard copy apparatus control including firewall penetrating protocols |
US7493397B1 (en) * | 2001-06-06 | 2009-02-17 | Microsoft Corporation | Providing remote processing services over a distributed communications network |
US20030046586A1 (en) | 2001-09-05 | 2003-03-06 | Satyam Bheemarasetti | Secure remote access to data between peers |
US8396756B1 (en) | 2001-09-11 | 2013-03-12 | Shopatron, Inc. | System and method for processing product orders |
US6961759B2 (en) | 2001-09-24 | 2005-11-01 | International Business Machines Corporation | Method and system for remotely managing persistent state data |
US8166406B1 (en) | 2001-12-04 | 2012-04-24 | Microsoft Corporation | Internet privacy user interface |
US7447745B2 (en) | 2002-01-07 | 2008-11-04 | Flash Networks, Ltd | System and a method for accelerating communication between a client and an email server |
US7290267B2 (en) | 2002-01-23 | 2007-10-30 | International Business Machines Corporation | Multi-protocol object distribution |
US7437158B2 (en) | 2002-05-21 | 2008-10-14 | Incnetworks Inc. | Advanced multi-network client device for wideband multimedia access to private and public wireless networks |
US7143174B2 (en) | 2002-06-12 | 2006-11-28 | The Jpmorgan Chase Bank, N.A. | Method and system for delayed cookie transmission in a client-server architecture |
US20040168052A1 (en) | 2003-02-25 | 2004-08-26 | Clisham Allister B. | Electronic content communication system and method |
US7526640B2 (en) | 2003-06-30 | 2009-04-28 | Microsoft Corporation | System and method for automatic negotiation of a security protocol |
US8028078B2 (en) | 2003-08-07 | 2011-09-27 | Teamon Systems, Inc. | Communications system including protocol interface device providing enhanced operating protocol selection features and related methods |
US20050050159A1 (en) | 2003-09-03 | 2005-03-03 | Zeev Suraski | Remote debugging of web applications |
US20050071428A1 (en) | 2003-09-26 | 2005-03-31 | Khakoo Shabbir A. | Method and apparatus for delivering an electronic mail message with an indication of the presence of the sender |
US7780525B2 (en) | 2003-10-17 | 2010-08-24 | Igt | Systems and methods for determining a level of reward |
US7539722B2 (en) | 2003-10-24 | 2009-05-26 | Microsoft Corporation | Method and system for accessing a file |
KR100987768B1 (ko) | 2003-11-14 | 2010-10-13 | 삼성전자주식회사 | 대용량 쿠키 처리 방법 및 장치 |
JP2005151259A (ja) | 2003-11-17 | 2005-06-09 | Toshiba Corp | データ転送装置およびプログラム |
US20050182847A1 (en) | 2004-01-21 | 2005-08-18 | Dell Products L.P. | System and method for dynamic switching between wireless network protocols |
EP1617592A1 (de) | 2004-07-12 | 2006-01-18 | Siemens Aktiengesellschaft | Verfahren zur Auswahl eines Objektmodells für die Manager-Agent Kommunikation |
US20060095573A1 (en) | 2004-11-01 | 2006-05-04 | Microsoft Corporation | Delayed HTTP response |
US7600048B2 (en) | 2005-03-04 | 2009-10-06 | Microsoft Corporation | Web services processing using MAPI compliant mail applications |
US20060227805A1 (en) | 2005-03-31 | 2006-10-12 | Adc Telecommunications, Inc. | Buffers handling multiple protocols |
US7552213B2 (en) | 2005-05-12 | 2009-06-23 | Avocent Fremont Corp. | Remote network node management system and method |
US8332526B2 (en) | 2005-05-25 | 2012-12-11 | Microsoft Corporation | Data communication protocol including negotiation and command compounding |
US20060277596A1 (en) * | 2005-06-06 | 2006-12-07 | Calvert Peter S | Method and system for multi-instance session support in a load-balanced environment |
US7617525B1 (en) | 2005-06-21 | 2009-11-10 | Alto Ventures, Inc. | System and method for connectionless client-server communications |
US10764264B2 (en) * | 2005-07-11 | 2020-09-01 | Avaya Inc. | Technique for authenticating network users |
US8448182B2 (en) | 2005-09-27 | 2013-05-21 | Oracle International Corporation | System and method for pause and resume message operations on destinations |
US20070106670A1 (en) | 2005-11-08 | 2007-05-10 | Nortel Networks Limited | Interactive communication session cookies |
CN100505758C (zh) | 2005-11-19 | 2009-06-24 | 华为技术有限公司 | 移动邮件终端适配方法和系统 |
US7509350B2 (en) | 2006-06-01 | 2009-03-24 | Research In Motion Limited | Method and apparatus for synchronizing of databases |
US9021026B2 (en) | 2006-11-07 | 2015-04-28 | Tiversa Ip, Inc. | System and method for enhanced experience with a peer to peer network |
US7920823B2 (en) | 2006-12-08 | 2011-04-05 | Microsoft Corporation | System capability discovery for software defined radio |
JP4976121B2 (ja) | 2006-12-19 | 2012-07-18 | 株式会社エヌ・ティ・ティ・ドコモ | 移動通信ネットワークシステム及びサーバ装置 |
WO2008074133A1 (en) | 2006-12-21 | 2008-06-26 | Sxip Identity Corp. | System and method for simplified login using an identity manager |
AU2008222906A1 (en) | 2007-03-05 | 2008-09-12 | Paxfire, Inc. | Internet lookup engine |
US20080228880A1 (en) | 2007-03-12 | 2008-09-18 | Microsoft Corporation | Managed code mapi apis |
US20080250109A1 (en) | 2007-04-09 | 2008-10-09 | Gabriel Jakobson | Method and system for tracking time over instant messenger |
US8407298B2 (en) | 2007-04-13 | 2013-03-26 | Research In Motion Limited | Direct access electronic mail (email) distribution and synchronization system with out-of-coverage notification |
ATE541400T1 (de) | 2007-06-20 | 2012-01-15 | Alcatel Lucent | Verfahren und vorrichtungen zum aufbau eines rückrufs durch einen nutzer, der einen medienstrom empfängt |
US8621573B2 (en) | 2007-08-28 | 2013-12-31 | Cisco Technology, Inc. | Highly scalable application network appliances with virtualized services |
US7987275B2 (en) | 2007-09-18 | 2011-07-26 | International Business Machines Corporation | Method, apparatus and computer program product implementing a chat application proxy and a chat application wrapper in a chat system |
JP5194673B2 (ja) * | 2007-09-26 | 2013-05-08 | 株式会社日立製作所 | 携帯端末、及び情報の送受信方法 |
KR101366282B1 (ko) | 2007-10-15 | 2014-02-20 | 엘지전자 주식회사 | Supl 기반 트리거 위치 서비스에서의 트리거 세션 수행방법 |
US8505038B2 (en) | 2008-01-28 | 2013-08-06 | Blue Coat Systems, Inc. | Method and system for enhancing MS exchange (MAPI) end user experiences in a split proxy environment |
EP2254054A4 (en) | 2008-06-17 | 2013-06-05 | Panasonic Corp | SERVER DEVICE, SERVER PROCESSING METHOD AND PROGRAM |
US8032589B2 (en) | 2008-10-27 | 2011-10-04 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and systems for resuming, transferring or copying a multimedia session |
US8204998B1 (en) | 2008-12-16 | 2012-06-19 | Sprint Communications Company L.P. | Allocation of connection persistence to mobile browsers |
US8275890B2 (en) | 2009-06-03 | 2012-09-25 | International Business Machines Corporation | Detecting an inactive client during a communication session |
US9654505B2 (en) | 2009-06-22 | 2017-05-16 | Citrix Systems, Inc. | Systems and methods for encoding the core identifier in the session identifier |
US8738711B2 (en) | 2009-11-03 | 2014-05-27 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
EP2339798B1 (en) | 2009-12-23 | 2012-10-10 | Research In Motion Limited | Method for partial loading and viewing a document attachment on a portable electronic device |
US8228832B2 (en) | 2010-01-25 | 2012-07-24 | Motorola Mobility, Inc. | USSD transport method and device |
US20110214115A1 (en) | 2010-02-26 | 2011-09-01 | Nokia Corporation | Method and appartus for providing a high level mobile virtual machine |
US8490151B2 (en) | 2010-06-25 | 2013-07-16 | Nokia Corporation | Method and apparatus for performing a multi-role communication using a memory tag |
US20130279395A1 (en) | 2010-11-08 | 2013-10-24 | Sharp Kabushiki Kaisha | Mobile communication system, mobile station device, base station device, sgsn, ggsn, mme, mbms gw and mobile communication method |
US8943160B2 (en) | 2011-01-18 | 2015-01-27 | Htc Corporation | Methods for controlling ongoing triggered SUPL session by SLP and network-side SUPL agent |
US9311324B2 (en) | 2011-01-26 | 2016-04-12 | Mitre Corporation | Synchronizing data among a federation of servers with intermittent or low signal bandwidth |
KR20120137726A (ko) * | 2011-06-13 | 2012-12-24 | 삼성전자주식회사 | 컨텐츠 기반 네트워크(ccn)에서 전송 노드, 수신 노드 및 그 통신 방법 |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US8732810B2 (en) | 2011-10-27 | 2014-05-20 | Cellco Partnership | IP push platform and connection protocol in a push notification framework |
US9280867B2 (en) | 2012-01-13 | 2016-03-08 | Igt Canada Solutions Ulc | Systems and methods for adjusting 3D gaming images for mobile gaming |
US9295908B2 (en) | 2012-01-13 | 2016-03-29 | Igt Canada Solutions Ulc | Systems and methods for remote gaming using game recommender |
US8898752B2 (en) | 2012-02-01 | 2014-11-25 | Microsoft Corporation | Efficiently throttling user authentication |
US9578111B2 (en) | 2012-06-08 | 2017-02-21 | International Business Machines Corporation | Enabling different client contexts to share session information |
US8799756B2 (en) | 2012-09-28 | 2014-08-05 | Interactive Memories, Inc. | Systems and methods for generating autoflow of content based on image and user analysis as well as use case data for a media-based printable product |
US9363320B2 (en) | 2012-12-05 | 2016-06-07 | Microsoft Technology Licensing, Llc | Persistent connection between network devices |
US9037682B2 (en) | 2012-12-13 | 2015-05-19 | Google Technology Holdings LLC | System and methods for preventing interruptions due to battery drain during streaming media sessions between devices |
US20140201376A1 (en) | 2013-01-11 | 2014-07-17 | Andre Godin | Method and system for the handling of redundant long poll |
CN103152781B (zh) | 2013-03-26 | 2016-02-03 | 天地(常州)自动化股份有限公司 | 矿用sip移动终端在矿用无线基站间自动漫游切换方法 |
US20150039675A1 (en) * | 2013-07-31 | 2015-02-05 | Microsoft Corporation | Messaging over http protocol for data exchange |
US9866640B2 (en) | 2013-09-20 | 2018-01-09 | Oracle International Corporation | Cookie based session management |
US20150142982A1 (en) | 2013-11-15 | 2015-05-21 | Microsoft Corporation | Preservation of connection session |
US10440066B2 (en) | 2013-11-15 | 2019-10-08 | Microsoft Technology Licensing, Llc | Switching of connection protocol |
CN104702519B (zh) | 2013-12-06 | 2018-02-13 | 华为技术有限公司 | 流量卸载的方法、装置及系统 |
US9264662B2 (en) | 2013-12-30 | 2016-02-16 | OnCam Inc. | Chat preauthorization |
-
2013
- 2013-07-31 US US13/956,014 patent/US9961125B2/en active Active
-
2014
- 2014-07-30 CN CN201480042881.1A patent/CN105531979B/zh active Active
- 2014-07-30 WO PCT/US2014/048756 patent/WO2015017481A1/en active Application Filing
- 2014-07-30 KR KR1020167005533A patent/KR102208935B1/ko active Active
- 2014-07-30 EP EP14753366.5A patent/EP3028437B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1267862A (zh) * | 2000-04-29 | 2000-09-27 | 封�波 | 一种利用国际互联网进行实时文件交互传输方法 |
CN1688139A (zh) * | 2005-06-02 | 2005-10-26 | 威盛电子股份有限公司 | 批次传送数据的服务器及批次传送数据方法 |
US20090204666A1 (en) * | 2008-02-13 | 2009-08-13 | Microsoft Corporation | Push mechanism for efficiently sending aggregated data items to client |
US20110320820A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Restoring Secure Sessions |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155749A (zh) * | 2016-06-21 | 2019-01-04 | 甲骨文国际公司 | 互联网云托管的自然语言交互式消息传送系统会话器 |
CN109155749B (zh) * | 2016-06-21 | 2021-11-19 | 甲骨文国际公司 | 用于将消息与会话相关联的方法和系统 |
CN109313588A (zh) * | 2016-06-30 | 2019-02-05 | 微软技术许可有限责任公司 | 信号上传优化 |
US11206223B2 (en) | 2016-06-30 | 2021-12-21 | Microsoft Technology Licensing, Llc | Signal upload optimization |
US11240179B2 (en) | 2016-09-16 | 2022-02-01 | Oracle International Corporation | Internet cloud-hosted natural language interactive messaging system with virtual database |
CN113841373A (zh) * | 2019-05-17 | 2021-12-24 | 奈飞公司 | 用于基于网络的服务的“射后不理”卸载机制 |
Also Published As
Publication number | Publication date |
---|---|
CN105531979B (zh) | 2019-03-12 |
KR20160039280A (ko) | 2016-04-08 |
US9961125B2 (en) | 2018-05-01 |
EP3028437A1 (en) | 2016-06-08 |
KR102208935B1 (ko) | 2021-01-27 |
US20150039676A1 (en) | 2015-02-05 |
WO2015017481A1 (en) | 2015-02-05 |
EP3028437B1 (en) | 2020-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105531979A (zh) | 建立用于数据交换的上下文的http协议上的消息传递api | |
US9148333B2 (en) | System and method for providing anonymity in a session initiated protocol network | |
US20150039675A1 (en) | Messaging over http protocol for data exchange | |
US20150142982A1 (en) | Preservation of connection session | |
US9350791B2 (en) | System and method of injecting states into message routing in a distributed computing environment | |
US8756326B1 (en) | Using interactive communication session cookies in web sessions | |
US20070106670A1 (en) | Interactive communication session cookies | |
JP2018509672A (ja) | アプリケーションサービス・アバターを用いたアプリケーションサービス配信 | |
JPH1125042A (ja) | プロキシ及び共有状態サーバを使用してwwwでの認知、ツアー及び会議をポータブルに可能にする方法及びシステム | |
US11128677B2 (en) | Network call method, server, call terminal, network call system, and storage medium | |
US20160234157A1 (en) | System and method of message routing using name-based identifier in a distributed computing environment | |
US20150271301A1 (en) | System and method of message routing via connection servers in a distributed computing environment | |
KR20120102769A (ko) | 범용 플러그 앤 플레이 가능 텔레포니 장치들과 무선 영역 네트워크 장치들 사이의 멀티미디어 회의 시스템 및 방법 | |
CN101202716A (zh) | 一种信息存储方法及通讯系统以及相关设备 | |
US8423656B2 (en) | Push gateway systems and methods | |
CN102484655A (zh) | 专用网络中的公用机器人管理 | |
JP2014063430A (ja) | 通信制御装置、メッセージ転送方法およびメッセージ転送プログラム | |
CN105556549A (zh) | 将消费者关系管理信息集成到通信会话 | |
JP3964719B2 (ja) | プレゼンス情報バックアップサービス提供方法及びそのシステム並びに情報要求プログラム及び該プログラムを記録した媒体 | |
TWI275007B (en) | Font data processing system and method | |
EP3357265B1 (en) | Delivering anonymous communication between customers at customer care site | |
CN107004232B (zh) | 服务管理方法 | |
CN115086425B (zh) | 消息传输方法、装置、程序产品、介质及电子设备 | |
TWM601426U (zh) | 即時通訊服務系統 | |
CN116723290A (zh) | 一种信息传输方法、装置、电子设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |