CN105723685A - 连接会话的保留 - Google Patents

连接会话的保留 Download PDF

Info

Publication number
CN105723685A
CN105723685A CN201480062682.7A CN201480062682A CN105723685A CN 105723685 A CN105723685 A CN 105723685A CN 201480062682 A CN201480062682 A CN 201480062682A CN 105723685 A CN105723685 A CN 105723685A
Authority
CN
China
Prior art keywords
server
client
session
application
context identifier
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
CN201480062682.7A
Other languages
English (en)
Inventor
D·冈萨雷斯
S·威贴
J·沃伦
A·索萨
D·布伦施
C·克内斯屈克
R·诺维茨基
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 CN105723685A publication Critical patent/CN105723685A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • 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/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了用于在断开连接时间段之后连接到先前创建的服务器会话的方法和系统。客户端被配置成具有跨断开连接时间段维持和建立持久会话的能力。

Description

连接会话的保留
背景
在通信环境中,客户端/服务器关系常被用来互联可能跨不同远程位置分布的服务。通常,用户可在客户端设备上本地地执行应用而该应用可从通过网络连接至客户端设备的远程服务器检索数据。在示例场景中,在客户端设备和服务器之间建立连接之后,应用可将请求转发给服务器,且服务器可进而向数据库发送请求以检索所请求的数据和信息。服务器可将所检索的数据返回给客户端设备,客户端设备可向用户显示该信息并使得该用户能够与该数据交互。
通信协议被用来促成本地客户端与远程服务器之间的通信。一些协议可能需要与服务器的持久连接以用于通信、认证和交换数据。如果连接丢失,则客户端可重连,但是客户端必须与服务器建立新会话。其它协议不需要持久连接,而是改为周期性地连接到服务器(例如轮询)以用于通信、认证和交换数据。然而,在每次轮询期间或者如果客户端和服务器之间使用轮询协议的连接丢失,则客户端必须与服务器建立新会话。相应地,客户端必须在每次客户端和服务器之间的连接丢失时建立新会话。
各实施例正是对于这些和其它一般考虑事项而做出的。而且,尽管讨论了相对具体的问题,但是应当理解,各实施例不应被限于解决本背景技术中所标识的具体问题。
发明内容
概括而言,本公开涉及跨断开连接时间段在客户端和服务器之间维持会话。具体而言,本公开一般涉及用于在断开连接时间段之后连接至先前创建的会话的方法和系统。客户端被配置成具有跨不同连接性状态维持或建立持久会话的能力。
在第一方面,一种方法包括跨断开连接时间段在客户端和服务器之间维持会话以通过网络交换数据。该方法包括:
基于断开连接条件确定所述服务器和所述客户端之间的断开连接有暂停资格;
基于所述确定在第一重连尝试期间向所述服务器发送上下文标识符;以及
响应于被发送的上下文标识符从所述服务器接收所述会话的状态。
在第二方面中,一种系统包括计算系统,该计算系统具有至少部分由计算设备执行的用于与服务器进行数据交换的客户端。此外,计算设备具有可编程电路和包含计算机可执行指令的存储器。所述计算机可执行指令在被执行时使得所述计算系统基于断开连接条件确定所述服务器和所述客户端之间的断开连接有暂停足够,在第一重连尝试期间向所述服务器发送上下文标识符,以及基于响应于该上下文标识符接收到从所述服务器发送的会话的有效状态来恢复与所述服务器的所述会话。
在第三方面,揭示了包括存储于其上的计算机可执行指令的计算机可读存储介质。所述计算机可执行指令在被计算系统执行时使得所述计算系统执行一种方法。该方法包括:
通过网络连接在与服务器的会话中交换数据;
从所述服务器接收标识所述会话的上下文标识符;
存储所述上下文标识符;
基于断开连接条件确定断开连接有暂停资格;
在第一重连尝试期间向所述服务器发送回所述上下文标识符;
响应于所发送的上下文标识符从所述服务器接收所述会话的有效状态;
恢复所述会话,其中所述会话提供对在断开连接之前访问的任何资源的访问。
所述断开连接条件是以下的至少一个:休眠、接口的改变、连接性的丧失、密码过期、服务器请求扼流、以及无连接性。
提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图简述
参考以下附图描述非限制性和非穷尽的实施例,其中:
图1解说了根据一示例实施例的其中客户端可通过网络访问生产力和通信服务的示例性系统;
图2解说了根据一示例实施例的采用HTTP协议的客户端和服务器之间的示例性数据交换系统。
图3解说了根据一示例实施例的用于采用HTTP协议建立会话的客户端和服务器之间的示例性数据交换系统;
图4解说了根据一示例实施例的用于在客户端和服务器之间建立会话以通过网络交换数据并且在断开连接之后还原先前建立的会话的示例方法;
图5解说了根据一示例实施例的用于在断开连接时间段之后恢复会话的示例性方法;
图6解说了根据一示例实施例的用于在图5中解说的重连尝试期间在客户端和服务器之间建立新会话的示例性方法;
图7是解说可用来实施本公开的各实施例的计算设备的示例物理组件的示例的框图;
图8A和8B是可用来实施本公开的各实施例的移动计算设备的简化框图;以及
图9是可在其中实施本公开的各实施例的分布式计算系统的简化框图。
详细描述
在下面的详细描述中,参考构成其一部分的附图,在附图中,通过例图,示出了具体的实施例或示例。可以将这些方面组合起来,也可以理由其他方面,并且可以作出结构上的改变而在不背离本公开的精神或范围。因此,下面的具体实施方式不应以限制性的意义来理解,而是本公开的范围是由所附权利要求及其等效方案来定义的。
贯穿本说明书,术语“平台”可以是用于通过客户端和服务器之间的协议以及通过网络提供数据交换的软件和硬件组件的组合。平台的示例包括、但不限于:在多个服务器上执行的主存服务、在单个计算设备上执行的应用、及类似的系统。术语“服务器”一般是指一般在联网环境中执行一个或多个软件程序的计算设备。然而,服务器也可以被实现为在一个或多个计算设备上执行的虚拟服务器(软件程序),所述虚拟服务器被视为网络上的服务器。以下提供了关于这些技术和示例操作的更多细节。
如以上简要描述的,本公开的各实施例涉及在断开连接之后维持客户端和服务器之间的会话。具体而言,本公开一般涉及用于在断开连接之后连接至先前创建的会话的方法和系统。客户端被配置成具有跨不同连接性状态维持或建立持久会话的能力。
在通信环境中,客户端/服务器关系常被用来互联可能跨不同远程位置分布的服务。通常,用户可在客户端设备上本地地执行应用而该应用可从通过网络连接至客户端设备的远程服务器检索数据。协议可被用来促成客户端和服务器之间对数据的通信、认证和交换。一些协议可要求与服务器的持久连接而一些协议可周期性地连接到服务器以用于通信、认证和交换数据。在数据交换期间,会话被创建并存储在服务器内。会话(也被称为上下文)在本文中被用来指代在客户端和服务器之间的数据交换期间被客户端访问或请求的一个或多个服务器资源。在断开连接之后,服务器保留会话达预定时间量。在该预定时间量之后,服务器删除该会话或使该会话失效。
先前采用的协议和/或应用需要客户端在连接之后建立新会话。换言之,客户端必须重新开始会话来访问该服务器上的该应用所必需的资源。先前,客户端不能够重连到服务器上的保留的会话且必须使被访问(诸如被打开)的客户端侧资源失效或删除该客户端侧资源。相应地,由最终用户和/或客户端在断开连接之前作出但在断开连接之前未被保存的任何编辑或改变丢失且不被保存。例如,如果用户正在起草尚未被保存的电子邮件,则在网络断开连接之际,被起草的电子邮件在重连之后丢失或不能被保存和/或恢复。
为了解决上述限制,本公开的各实施例允许客户端跨越断开连接与服务器维持或建立持久会话。在一断开连接时间段上,持久会话可保留活动。如此,本文公开的实施例允许客户端重连至服务器,且在这样做时,提供对服务器上的先前创建的会话的访问。在各实施例中,客户端在数据交换期间和/或在会话创建之际从服务器接收标识被创建的会话的会话标识符或上下文标识符。在各实施例中,数据通信协议(在本文中也被称为“协议”)可包括但不限于:远程过程调用(RPC)协议、超文本传输(HTTP)协议、邮局协议(POP3)、因特网消息访问协议(IMAP)等。本领域技术人员将领会,任何类型的通信协议可以与本文公开的各实施例一起使用。客户端可利用会话标识符或上下文标识符来与服务器断开连接。上下文标识符或会话标识符认证客户端并提供对在客户端和服务器之间的先前连接中的会话期间被访问的资源(诸如对象)的访问。相应地,在暂停之后恢复服务器和客户端之间的连接在与先前所利用的需要建立新会话的连接过程相比时需要更少的时间和带宽。
然而,在各实施例中,并非所有断开连接条件均允许或能理想地使用会话标识符或上下文标识符进行重连。在各实施例中,有资格使用上下文标识符来恢复会话的断开连接条件在本文中被称为暂停。没有资格使用上下文标识符来恢复会话的断开连接条件在本文中被称为完全断开连接或完全被断开连接。在各实施例中,各种场景可决定连接是暂停还是完全断开连接。相应地,本文描述的实施例允许客户端确定断开连接是否有资格使用上下文标识符来与所建立的会话重连。本文公开的实施例可操作以基于断开连接条件确定断开连接是否有暂停资格。断开连接条件可以是引起断开连接的事件或者断开连接时的数据交换状态。
在各实施例中,暂停状态可在其中所需要的均是轻量级操作的场景下使用,诸如,举例而言,不需要对服务器侧函数的调用的情形。相应地,当客户端从暂停状态中恢复时,服务器会话和相关联的资源仍旧有效且可访问(例如,因为在客户端从服务器断开连接时它们尚未被修改或删除)。因为资源仍旧有效,所以在重连至服务器之前不需要客户端使客户端侧资源无效或删除客户端侧资源。
图1解说了根据本文公开的一些实施例的示例系统100,其中客户端设备102可通过网络访问生产力和/或通信服务。图1中示出的计算设备和计算环境是出于图示目的。本领域技术人员将领会,本文公开的实施例可采用各种计算设备和系统的在各种本地、联网和类似计算环境中实现。
如系统100中所示,客户端设备102可采用各种不同的应用以交换数据和/或与数据交互。在客户端设备执行的用于与数据交互的示例应用可以是一个或多个生产力应用106(例如,文字处理器、演示文稿应用、电子表格应用等)和一个或多个通信应用104(例如,电子邮件应用、即时消息收发应用、视频流传输应用等)或需要客户端设备和服务器通信的任何应用(例如,银行应用、内部公司应用等)。示例客户端设备102可包括台式计算机、膝上型计算机、平板计算机、智能手表、可穿戴计算机、移动电话、智能电话、电子白板、和/或其它类似客户端设备。通信服务和生产力服务也可协同工作以检索和交换电子邮件和其它数据。此外,尽管图1解说了单一客户端设备102和服务器110,本领域技术人员将领会,本公开的各实施例可包括与多个服务器110交互的多个客户端设备。
示例生产力应用106可被配置成提供对围绕生产力平台构建的各种服务。在各实施例中,服务器可被本地执行或被托管在远程设备(诸如服务器110)上。一些生产力服务可包括但不限于:协作应用、企业管理应用、消息收发应用、文字处理应用、电子表格应用、数据库应用、演示文稿应用等。生产力服务106可通过从例如远程服务器110检索数据来提供对与托管在远程设备上的各种生产力应用相关联的数据的访问。服务器110可通过网络112被访问,该网络可以是有线或无线网络、或云网络,且所检索的数据可在执行生产力服务106的用户的本地客户端设备处加载、操纵或另行访问。示例性网络可包括但不限于:蜂窝数据网络、工作区域网络(WAN)、局域网(LAN)、以及因特网。
类似地,示例通信应用104可以是被配置成提供电子邮件、联系人管理和/或日历服务的应用或服务。在各实施例中,通信应用104还可提供一个或多个实时通信平台,诸如即时消息收发、音频/视频会议以及在场检测。例如,用户可使用在客户端102上执行的通信应用104来接收、查看并回复电子邮件。
通信应用104和生产力应用106所提供的服务和/或功能可被托管在能够与通信应用104和/或生产力应用106通信或以其他方式交换数据的外部服务器处,且用户可在客户端设备102本地通过网络112访问所提供的服务和/或生产力。此外,数据可通过网络112在本地客户端设备和服务器之间交换,使得本地客户端设备在该网络上具有与服务器110的活动连接以访问通信应用104和生产力应用106所提供的数据或与该数据交互。
客户端102可使用通信应用104、生产力应用106或其它类型的应用或过程向服务器110发出多个请求以检索存储在服务器110上或存储在服务器110能够访问的数据存储中的数据。每当本地客户端请求来自服务器110的数据时,客户端可能必须向服务器认证它自己。此外,如果客户端和服务器110之间的连接在数据请求和交换期间被丢弃或改变,则客户端可能必须向服务器重新认证自己以重新建立连接以进行数据交换。在根据各实施例的系统中,可在初始数据请求期间在客户端和服务器110之间建立会话,且由上下文标识符标识的会话可被用作用于后续数据检索请求的认证基础。在断开连接之后,上下文标识符可被用于认证以及恢复在上次连接期间创建的会话。
在本文中使用的术语“会话”(或“上下文”)可表示在各唯一客户端请求之间保持的服务器上的状态的集合并可使用在“会话”被创建时且在每个后续响应之际返回的上下文标识符(诸如cookie(即,上下文cookie)或其它标识符)来引用。在各实施例中,状态信息集合可唯一特定于服务器实现,且不在协议本身内被具体标识或定义,因为它永远不被跨连线传送。状态信息集合也可能没有被绑定到客户端和服务器之间的任何物理或逻辑连接。如此,在各实施例中,客户端可自由地在新建立的连接上向服务器发出经由上下文标识符标识“会话”的后续请求,而不管该“会话”初始在其中创建的连接(例如,通过使用其它连接方法和/或协议)。
图2解说了根据本文描述的一些实施例的客户端和服务器之间使用HTTP协议的示例数据交换。在替换实施例中,除HTTP协议外的协议也可被用于客户端和服务器之间的数据交换。本领域技术人员将领会,任何通信协议可被本文描述的实施例使用(例如,RPC、POP3、IMAP等)。
如在系统200中解说的,客户端202可执行客户端202上的应用204,诸如生产力应用、通信应用、或其它类型的应用,诸如电子邮件应用、联系人应用、日历管理应用等。客户端202可通过网络(未示出)与服务器207通信以检索与应用204相关联的数据,诸如举例而言电子邮件数据。本领域技术人员将领会,通过网络被访问的数据的类型可取决于在客户端202上执行的应用204的类型来改变。
在系统200中,可在客户端202和服务器207之间建立连接以便使得数据、消息、和/或信息能在客户端202和服务器207之间被交换。客户端202可经由应用204或经由另一组件来发起经由网络与服务器207的连接并可请求来自服务器207的数据。服务器207可接受请求、处理请求并向客户端202返回所请求的信息。在初始请求期间,上下文标识符210可被创建以标识在客户端202和服务器208之间所建立的会话以认证客户端202以用于后续数据检索请求。客户端202的上下文模块224保留此上下文标识符210并利用此上下文标识符210来标识该会话以用于后续数据检索请求。
在一示例实施例中,HTTP协议可被用于促成客户端202和服务器207之间的通信、认证和数据交换。HTTP协议定义可被用来指示要由服务器执行以为客户端202检索所请求的信息的方法、命令、请求和/或消息。尽管本文描述了具体的HTTP方法,然而本领域技术人员将领会,除HTTP协议以外的通信协议所定义的其它HTTP方法或命令也可与本文公开的实施例一起使用。
在一示例实施例中,客户端202可合并通信协议206以便促成客户端202和服务器207之间经由网络的与应用204有关的数据(或其它数据)的通信。例如,在各实施例中,HTTP协议可使得客户端202能够通过HTTP连接向服务器207发送请求并通过同一HTTP连接从服务器207接收响应。HTTP协议206还可使得客户端202能够创建标识符210以标识通过HTTP连接与服务器208建立的会话以用于在未来请求期间认证该客户端。而且,客户端202可打开与服务器208的附加HTTP连接以向服务器208发送并发的独立请求。
当连接被断开或者当客户端202确定连接即将结束时,客户端202的暂停模块226确定断开连接条件是否有暂停资格的。断开连接条件可指代引起或导致断开连接的事件和/或在断开连接时的数据交换状态。在一些实施例中,断开连接条件可以是会话的无效状态、断开连接时的未完成客户端请求、断开连接时的未解决服务器请求、休眠、接口中的改变、连接性的损失、密码过期、服务器请求的扼流、和/或无连接性。断开连接条件可以是有暂停资格或无暂停资格。当条件为暂停合格条件时,断开连接被认为暂停(并可恢复会话)。当条件为无暂停资格条件时,断开连接被认为是完全断开连接(需要建立新会话)。当暂停模块226确定客户端202和服务器208之间的断开是完全断开连接时,客户端202利用需要建立新会话以重连至服务器208的连接规程。当暂停模块226确定客户端202和服务器208之间的断开连接是暂停时,客户端202利用标识已建立的会话的上下文标识符来恢复与服务器208的连接。
在一些实施例中,暂停模块226可将断开连接的条件与无暂停资格断开连接条件列表相比较。在一些实施例中,无暂停资格条件是会话的无效状态、断开连接时未完成的客户端请求、和/或断开连接时未解决服务器请求。使用无暂停资格条件列表使得客户端202默认为暂停状态,除非检测到无暂停资格条件。在这些实施例中,如果断开连接条件在无暂停资格条件列表上,则暂停模块226确定客户端202和服务器之间的断开连接被认为是完全断开连接(而不是暂停)。在这些实施例中,如果客户端202的暂停模块226确定该条件不在无暂停资格条件列表上,则暂停模块226确定客户端202和服务器208之间的断开连接被认为是暂停(而不是完全断开连接)。
在其它实施例中,暂停模块226可将断开连接的条件与有暂停资格的断开连接条件列表相比较。在一些实施例中,有暂停资格条件是休眠、接口中的改变、连接性的丧失、密码过期、服务器请求的扼流、和/或无连接性。在这些实施例中,如果断开连接条件不在有暂停资格条件列表上,则暂停模块226确定客户端202和服务器之间的断开连接被认为是完全断开连接(而不是暂停)。在这些实施例中,如果客户端202的暂停模块226确定该条件在有暂停资格条件列表上,则暂停模块226确定客户端202和服务器208之间的断开连接被认为是暂停(而不是完全断开连接)。
当客户端202和服务器208之间的断开连接被认为是暂停时,上下文模块224在尝试与服务器208重连尝试期间发送标识该会话的上下文标识符210。发送的上下文标识符210在断开连接之前先前建立的会话期间被客户端202接收。在一些实施例中,上下文标识符在会话开始时由服务器创建并发送至客户端。上下文标识符可包含会话标识符、状态信息、认证信息、和/或恢复先前会话所必需的任何其它信息。在一些实施例中,上下文标识符是cookie。服务器208评估上下文标识符210来确定该上下文标识符所标识的会话是否有效。如果该会话有效,则服务器208向客户端202发送该会话的状态为有效(即,有效状态)的通知。客户端202和服务器208之间的连接被形成且服务器208允许客户端202访问和/或利用先前创建的会话(例如,访问在上一次连接期间由该客户端打开或另行访问的对象或资源)。如果该会话无效,则服务器208向客户端202发送该会话的状态为无效的通知。基于无效会话状态的接收,客户端202的暂停模块226将断开连接状态从暂停改变为完全断开连接。如同上面讨论的,一旦客户端202确定连接是完全断开连接,则客户端202必须利用需要建立新会话(例如,访问每个所需的服务器对象)的先前连接过程来重连到服务器208。在一些实施例中,如果服务器208已删除了先前会话,则该会话无效。服务器208可在预定时间量之后删除会话或使该会话无效。
图3解说了根据一些示例实施例的在客户端和服务器之间交换的用于采用HTTP协议来建立会话的示例数据请求和响应。在所示实施例中,HTTP协议被图示。然而,其它通信协议可被采用而不背离本公开的范围。
如同前面结合图2描述的,客户端302可利用标准化的HTTP请求以便请求与在客户端302处执行的应用相关联的来自服务器302的数据。HTTP协议还可被配置成在客户端302和服务器304之间建立会话以向服务器认证客户端302以供未来数据请求。
如图300中所示,建立第一会话306。第一会话通过客户端302向服务器304发送凭证、服务器认证那些凭证且客户端发送一个或多个请求来访问任何所需的资源(诸如对象)来建立。
在根据各实施例的系统中,服务器304还可生成上下文标识符,诸如用于标识符客户端302以及用户标识和/或恢复客户端302与服务器304的会话的cookie(或其它标识符)。服务器304可用响应和/或用中间块响应向客户端302返回上下文标识符或cookie以便在客户端302和服务器304之间建立会话。服务器304可根据服务器策略定义上下文标识符名称和值。
从服务器304到客户端302的包括所生成的上下文标识符(本实施例中的cookie)的示例响应可以如下:
HTTP/1.1200OK
Host:mail.contoso.com
Transfer-Encoding:chunked
Content-Type:application/mapi-http
Set-Cookie:MapiContext=<opaquestring>
Set-Cookie:MapiSequence=<opaquestring>
X-RequestType:Connect
X-ResponseCode:<value>
<原始二进制响应主体>
例如,上下文标识符被列出为:Set-Cookie:MapiContext=<opaquestring>.
在接收到上下文标识符320之际,客户端302可存储上下标识符以用于与服务器304的未来交互。当客户端向服务器304发送后续数据请求时,客户端302可在后续请求322中包括该上下文标识符。
包括所接收的上下文标识符(在此实施例中为cookie)的示例后续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-RequestId:<GUID>:<ID>
<原始二进制请求主体>
在示例实施例中,因为客户端302存储上下文标识符并在后续请求期间返回该上下文标识符,所以客户端302可以不必须在每个后续数据请求期间与服务器304建立新连接。客户端302可向服务器304提供上下文标识符,且服务器可基于该上下文标识符认证该客户端并可自动使该上下文标识符所表示的会话有效。服务器304可在最终响应中向经认证的客户端302返回所请求的数据。
在根据各实施例的系统中,在丢失连接的情况下,上下文标识符可使得客户端和服务器之间的会话被保留。例如,在客户端去到范围之外、断开连接、改变连接、或进入休眠模式中时HTTP连接可能丢失。客户端可在断开连接期间仍旧维持上下文标识符和/或访问的资源,并且在重连之际,在客户端302发起数据请求时,客户端302可向服务器304提供(标识该会话的)该上下文标识符和/或所访问的资源。服务器304可被配置成将与上下文标识符相关联的会话存储达一时间段,以使得在上下文标识符过期之前客户端302可具有一定时间来重新建立与服务器304的该连接。在所定义的时间段之后,该会话可过期,且客户端302可能必须在数据请求期间在服务器304处认证自己。新上下文标识符(诸如cookie)可由服务器生成并与客户端交换以建立新会话。
然而,客户端302可能不想要使用由所存储的上下文标识符标识的先前建立的会话以在所有断开连接期间重连至该服务器。相应地,客户端302确定断开连接条件是否是有暂停资格。在一些实施例中,客户端302将断开连接条件与无暂停资格断开连接条件列表相比较。如果客户端确定断开连接条件不是有暂停资格,则客户端302利用需要建立新会话的先前连接过程来连接至服务器308而不是使用该上下文标识符。如果客户端确定断开连接条件为有暂停资格,则客户端302利用该上下文标识符来恢复连接而不是利用先前连接过程。在一些实施例中,断开连接条件可以是会话的无效状态、断开连接时的未完成客户端请求、断开连接时的现有服务器请求、休眠、接口的改变、连接性的损失、密码过期、服务器请求的扼流、和/或无连接性。在一些实施例中,无暂停资格包括会话的无效状态、断开连接时的未完成的客户端请求、断开连接时的未解决服务器请求、和/或任何其它未知的错误条件。在其它实施例中,因为休眠、接口的改变、连接性的丧失、密码过期、服务器请求的扼流、和/或无连接性而导致的断开连接是有暂停(或适于使用上下文标识符来连接服务器)。
在一些实施例中,服务器304和客户端302之间的断开连接由客户端302发起。例如,在一些实施例中,客户端302可确定有比当前使用的接口更好的接口可用。例如,使用无线连接的膝上型计算机可在插入到有线连接之后确定有线连接是更好的接口,或者反过来。接口中的切换是有暂停资格条件。相应地,客户端302可选择从服务器断开连接/暂停、切换到更好的接口、且随后利用标识该会话的上下文标识符来恢复该连接。
在一示例实施例中,用于保留会话的时间段可被预定义,并且还可以能够基于网络类型、客户端类型、与用户相关联的客户端设备、安全参数、以及其它类似参数来配置。用于保留会话的时间段还可以基于服务器处的可用资源是动态的。例如,如果仅一个客户端正与服务器304交互,则服务器可保留会话达更长时间段,因为客户端没有正在消耗大量服务器资源。如果有多个用户或客户端正与服务器304交互,则服务器304可限制保留的会话的数量以及用于保留会话的时间以保留服务器资源。服务器304还可与客户端302通信以告知客户端302该会话何时将过期。客户端302可以能够刷新所建立的会话以通过与服务器通信来延长该会话的保留时间段。例如,每当客户端302活动地与服务器304通信时,服务器304可刷新会话的过期时间。在会话过期之后,会话可在服务器304处被永久丢弃。
已经用具体配置、应用和交互描述了图1到3中的示例系统。各实施例不限于根据这些示例的系统。用于提供通信连接以在客户端和服务器之间建立会话以及通过网络交换数据的系统可在采用更少或更多组件以及执行其它任务的构造中实现。此外,可以使用此处描述的原理按类似的方式来实现特定的协议和/或接口。
图4解说了根据一示例实施例的用于在客户端和服务器之间建立会话并通过网络交换数据并且在断开连接之后还原先前建立的会话的示例方法。过程400可在能够通过处理器来执行指令的计算设备或类似电子设备上实现。
方法400开始于操作410,其中可在客户端和服务器之间建立连接。客户端可以是设备或应用,诸如通过网络(诸如云网络)访问来自远程服务器的信息和数据的生产力服务和/或通信服务。
服务器可生成表示客户端和服务器之间的会话的上下文标识符(诸如cookie)。该会话可在后续数据请求期间在该服务器处标识该客户端。在操作450,客户端从服务器接收所生成的标识该会话的上下文标识符并保存该上下文标识符和/或该会话。上下文标识符和/或会话可由客户端在被丢弃以及被传输的连接期间以及在客户端休眠期间被维持。在替换实施例中,客户端可生成上下文标识符并将其发送给服务器。在操作460,客户端向服务器发送包括该上下文标识符的后续请求。服务器可基于所接收的上下文自动验证该会话为来自同一被认证客户端。
方法400中包括的操作用于解说目的。根据本文描述的原理,在客户端和服务器之间建立会话以及通过网络交换数据可以通过具有更少或更多步骤、以及按照不同操作次序的类似过程来实现。
现在参考图5,示出了根据一示例实施例的用于在断开连接时间段之后恢复会话的示例性方法。根据本文公开的实施例,方法500可由客户端或者在客户端上执行的应用来实现。而且,执行根据本文公开的各实施例的方法500的客户端或者在客户端上执行的应用可被配置成具有在一断开连接时间段之后连接到先前创建的服务器会话的能力。在各实施例中,执行方法500的客户端可包括但不限于:台式计算设备、个人计算机、平板计算机、可穿戴计算机、智能手表、移动电话、智能电话、电子白板、和其它类似客户端设备。在一些实施例中,协议是RPC协议或HTTP协议。本领域的技术人员将领会,可采用许多不同类型的协议而不背离本公开的精神。
在所示实施例中,方法500包括通信操作502。在各实施例中,在操作502期间,执行方法500的客户端或应用使用通信协议与服务器通信。任何类型的通信协议可被采用。在一些实施例中,客户端在操作502期间与服务器通信以访问针对电子邮件应用、社交联网应用、协作应用、企业管理应用、消息收发应用、文字处理应用、电子表格应用、数据库应用、演示文稿应用、以及联系人应用、和/或日历应用的信息。在一些实施例中,客户端-服务器系统被用来同步邮箱(诸如电子邮件)、日历、和/或联系人中的项。然而,方法500可以应用于应当对其维持服务器-侧会话的任何客户端-服务器系统。
接着,流程继续至接收操纵504。在接收操作504,执行方法500的客户端或应用接收来自服务器的上下文标识符。如同上面讨论的,上下文标识符可以是cookie或标识在各唯一客户端请求之间保持的服务器上的状态集合的任何其它会话标识符。在替换实施例中,客户端可向服务器提供该上下文标识符。
流程继续至存储操作506。在存储操作506,执行方法500的客户端或应用存储所接收的上下文标识符和/或所访问的资源。在一些实施例中,客户端存储上下文标识符和/或所访问的资源达预定时间量。在其它实施例中,客户端存储上下文标识符和/或所访问的资源直到会话被服务器失效为止,例如,在一时间量过期之后或在满足一条件之际。在一些实施例中,上下文标识符被存储,直到确定完全断开连接状态为止。然而,客户端可存储上下文标识符和/或所访问的资源达任何期望的时间量。
流程继续至暂停判定操作508。在暂停判定操作508,执行方法500的客户端或应用基于断开连接条件确定服务器和客户端之间的断开连接是否有暂停资格。如果确定断开连接不是有暂停资格,则流程分支“否”到操作516。如果确定断开连接是有暂停资格,则流程分支“是”到操作510。断开连接条件可指代引起或导致断开连接的条件和/或在断开连接时的数据交换状态。在各实施例中,断开连接条件是休眠、接口的改变、连接性的丧失、无连接性、会话的失效状态、断开连接时的未完成客户端请求、和/或断开连接时未解决的服务器请求。
在一些实施例中,客户端将断开连接条件与无暂停资格断开连接条件列表相比较以确定一条件是否是有暂停资格。在一些实施例中,无暂停资格条件包括会话的无效状态、断开连接时的未完成的未完成客户端请求、和/或断开连接时的未解决服务器请求。在一些实施例中,客户端将断开连接条件与有暂停资格断开连接条件列表相比较以确定一条件是否有暂停资格。在各实施例中,有暂停资格断开连接条件包括休眠、接口的改变、连接性的丧失、密码过期、服务器请求的扼流、和/或无连接性是有暂停资格(或适于使用上下文标识符来连接服务器)。这些列表不是限制性的,且本领域技术人员理解,基于设备、应用、协议、网络、和/或服务器,有暂停资格和无暂停资格条件可改变。
在发送操作510,执行方法500的客户端或应用在第一重连尝试期间向服务器发送上下文标识符。服务器评估上下文标识符来确定该会话是否有效。如果该会话有效,则服务器向客户端发送该会话的状态为有效(即,有效状态)的通知。如果该会话无效,则服务器向客户端发送该会话的状态为无效(即,无效状态)的通知。如果服务器可认证该上下文标识符并且访问该上下文标识符中所引用的先前创建的会话,则该会话是有效的。在预定时间量之后,服务器可使会话失效或删除该会话,这可使会话和/或上下文标识符(诸如cookie)失效。
流程500行进至状态判定操作512。在状态判定操作512,执行方法500的客户端或应用监视从该服务器发送的会话。如果有效会话状态被从服务器接收,则流程分支“是”到恢复操作514且断开连接被认为是暂停。如果没有从服务器接收到有效会话状态(或接收到无效会话状态),则流程分支“否”到建立操作516且断开连接被认为是完全断开连接。
在恢复操作514,执行方法500的客户端或应用恢复该会话。执行方法500的客户端或应用可恢复在先前连接期间所创建的会话,因为该断开连接被认为是暂停而不是完全断开连接。被恢复的会话向该客户端提供了对一个或多个资源的访问,诸如在该断开连接之前被该客户端请求访问的资源。而且,因为该会话被恢复,所以在暂停之前对应用所做的编辑可在该会话别恢复之后被保存。例如,如果对电子邮件做了在暂停之前没有保存的编辑,则那些编辑可被保存且在会话被恢复时不丢失。相应地,在方法500期间执行操作514的设备或应用不必须在连接之后建立新会话(例如,找到和/或重新访问服务器上的必需的资源)。
在建立操作516处,执行方法500的客户端或应用在第二重连尝试期间建立新会话。执行方法500的客户端或应用可建立新会话,因为断开连接被认为是完全断开连接。在建立操作516处,执行方法500的客户端或应用在第二重连尝试期间利用任何已知的会话创建系统或方法来建立新会话。在一些实施例中,建立操作516可执行发送凭证操作602、接收认证操作604、和/或发送打开请求操作606来在第二重连尝试期间建立新会话。图6解说了根据一示例实施例的用于在图5中解说的操作516期间在客户端和服务器之间建立新会话的示例性方法。在建立操作602,执行操作516的客户端或应用向服务器发送凭证。服务器审阅凭证并通知客户端该客户端是否已被认证。流程继续至认证操作604。在操作604,执行操作516的客户端或应用响应于所述凭证接收来自服务器的认证。接着,流程继续至发送打开请求操作606。在操作606,执行操作516的客户端或应用发送一个或多个请求以个体地访问服务器上的每个所需的资源。
来自操作516的执行的重新建立的会话不向客户端提供对在断开连接之前的会话期间访问的任何资源的访问。而且,因为会话是被重新建立的(来自操作516的执行),所以在完全断开连接之前所做的对应用的编辑不能被保存且在该会话被重新建立之后丢失。与上面讨论的操作514相对比,如果在完全断开连接之前对电子邮件做了未被保存的编辑,则在会话被重建时那些编辑丢失且不能被保存。相应地,在方法500期间执行操作516的设备或应用必须重新认证自己以与服务器重连。而且,在方法500期间执行操作516的设备或应用必须在连接被重新建立之后建立新会话并个体地重新访问服务器上的任何必需的资源。而且,可针对新建立的会话提供上下文标识符。该上下文标识符可被用来在断开连接事件之后重连至新建立的会话。
在一个示例实施例中,方法500的执行包括以下示例。当不管出于什么原因客户端和服务器之间的连接被丢弃时,客户端可通过发送包括客户端保存的标识现有会话的上下文(或现有会话cookie)的连接请求来与该现有会话(或会话上下文)重连。如果先前会话在服务器上仍旧有效,则服务器可在创建新会话之前毁坏该会话。服务器可返回与新会话相关联的新会话标识符。服务器可忽略在重连场景中传递的序列验证cookie(或有效状态)。来自服务器的响应可使用set-context(设置-上下文)报头或set-cookie(设置-cookie)报头来向客户端传递任何所需的上下文标识符、资源、和/或cookie。该响应可传递内容长度报头。与任何新会话一样,客户端可存储所有返回的cookie、资源和/或上下文标识符并可不将新cookie、资源、和/或上下文标识符与来自先前会话的cookie、资源和/或上下文标识符相组合。如果该会话过期、不再有效、或对于邮箱当前所驻留的服务器无效,则服务器可通过X-ResponseCodeValue10使该请求失败,且客户端可重连并建立新会话。
在另一示例实施例中,方法500的执行包括以下示例。服务器可返回用来标识已被创建的会话的cookie、资源、和/或上下文标识符。客户端可存储所有返回的cookie、资源、和/或上下文标识符并将其与该会话相关联。客户端可在针对给定会话向服务器发出下一请求时包括从对于该会话对服务器的先前调用接收的所有cookie、资源、和/或上下文标识符。如果服务器使用会话序列cookie来确保请求的序列化,则客户端可在下一请求时向服务器传递此cookie以及上下文标识符。cookie报头可被用来传递cookie。
在一附加示例实施例中,方法500的执行包括以下示例。为了与过期的会话重连,客户端可发送使用该连接请求类型以及连接请求类型请求主体的新请求。重连和初始连接之间的唯一区别是:客户端可传递与过期会话相关联的所有现有cookie、上下文会话、和/或资源请求。如果客户端重连,则客户端可传递针对其尝试重连的会话存储的任何cookie值或资源。客户端可在最终用户强制重连时进行此动作。这允许服务器及时地清理先前的上下文标识符以防止达到会话限制。重连请求可看上去与建立新会话的请求非常像,不同在于传递与过期的会话相关联的所有现有cookie、上下文标识符、和/或资源请求。因为客户端可能没有意识到cookie、上下文标识符、和/或资源请求的语义含义,所以客户端可能总是传递客户端所具有的与该特定会话有关的所有cookie、上下文标识符、和/或资源请求。而且,在此示例期间,客户端可总是假定该会话仍旧有效。如果客户端不能够与服务器通信,则无论过去了多少时间,当客户端最终重新建立HTTP连接时,该客户端可在该客户端离开处继续。
在一进一步示例实施例中,方法500的执行包括以下示例。在此实施例中,客户端可在发送或接收电子邮件之前与服务器建立新会话。客户端使用X-RequestType报头字段值connect(连接)来发送请求并包括连接请求类型的请求主体,如下所示:
客户端请求
POST<Autodiscover-providedendpoint>HTTP/1.1
Host:<URLofthehostserver>
Content-Length:<lengthofREQUESTBODY>
Content-Type:application/mapi-http
X-RequestType:Connect
X-ClientInfo:<opaquestring>
X-RequestId:<uniqueidentifier>
X-ClientApplication:<clientversion>
<请求主体>
服务器可处理该请求并可返回如以下所示出的包括标识新会话的会话上下文标识符以及连接请求类型的成功响应主体的响应。
服务器响应
HTTP/1.1200OK
Host:<URLofthehostserver>
Content-Length:<lengthofRESPONSEBODY>
Content-Type:application/mapi-http
Set-Cookie:<sessioncontextcookie>=<opaquestring>
Set-Cookie:<requestsequencecookie>=<opaquestring>
X-RequestType:Connect
X-RequestId:<uniqueidentifier>
X-ResponseCode:0
X-ClientInfo:<opaquestring>
X-ServerApplication:<serverversion>
X-ExpirationInfo:<milliseconds>
PROCESSING<CLRF>
DONE<CRLF>
X-ResponseCode:0
X-ElapsedTime:<milliseconds>
X-StartTime:<date/time>
<CRLF>
<响应主体>
在另一示例实施例中,方法500的执行包括以下示例。此实施例描述了重新建立超时会话。这类似于建立新会话的过程,但是报头(诸如cookie报头)可与和过期会话相关联的上下文标识符一起被传递。新上下文标识符可使用setheader(设置报头)(诸如set-cookieheader(设置-cookie报头))来针对重新建立的会话在响应中被传递回。示例客户端请求和响应被示出如下:
客户端请求
POST<Autodiscover-providedendpoint>HTTP/1.1
Host:<URLofthehostserver>
Content-Length:<lengthofREQUESTBODY>
Content-Type:application/mapi-http
Cookie:<sessioncontextcookie>=<opaquestring>
Cookie:<requestsequencecookie>=<opaquestring>
X-RequestType:Connect
X-ClientInfo:<opaquestring>
X-RequestId:<uniqueidentifier>
X-ClientApplication:<clientversion>
<请求主体>
服务器响应
HTTP/1.1200OK
Host:<URLofthehostserver>
Content-Length:<length>
Content-Type:application/mapi-http
Set-Cookie:<sessioncontextcookie>=<newopaquestring>
Set-Cookie:<requestsequencecookie>=<newopaquestring>
X-RequestType:Connect
X-RequestId:<uniqueidentifier>
X-ResponseCode:0
X-ClientInfo:<opaquestring>
X-ServerApplicaiton:<serverversion>
X-ExpirationInfo:<milliseconds>
<CRLF>
PROCESSING<CRLF>
DONE<CRLF>
X-ResponseCode:0<CRLF>
X-ElapsedTime:<milliseconds>
X-StartTime:<date/time>
<CRLF>
<响应主体>
图7-9以及相关联的描述提供了对可用于实施本公开的各实施例的各种操作环境的讨论。然而,关于图7-9所解说和讨论的设备和系统是出于示例和说明目的,而不限制可被用于实施本文描述的本公开的各实施例的各种计算设备构造。
图7是示出可用来实施本公开的各实施例的计算设备700的物理组件(即硬件)的框图。下面描述的计算设备组件可以适用于担当上面描述的用于执行图2的上下文模块224和暂停模块228的计算设备。在基本配置中,计算设备700可包括至少一个处理单元702以及系统存储器704。取决于计算设备的配置和类型,系统存储器704可包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪存、或者此类存储器的任何组合。系统存储器704可包括操作系统705和适于运行软件应用的一个或多个程序模块706,诸如关于图2-3,具体而言,关于模块224和226的跨断开连接时间段维持会话。例如,操作系统705可适合于控制计算设备700的操作。此外,可结合图形库、其他操作系统、或者任何其他应用程序来实践本公开的实施例,并且这些实施例不限于任何特定的应用或系统。该基本配置在图7中用虚线708内的那些组件示出。计算设备700可具有附加特征或功能。例如,计算设备700也可以包括附加的数据存储设备(可移动和/或不可移动),诸如磁盘、光盘或带。这种附加存储器在图7中用可移动存储设备709和不可移动存储设备710示出。
如上所声明的,大量程序模块和数据文件可被存储在系统存储器704中。尽管在处理单元702上执行,程序模块706(例如,内容模块224和暂停模块226)可执行包括但不限于本文描述的电子邮件应用的过程。根据本公开的各实施例可使用的其它程序模块,且尤其是用于生成屏幕内容的其它程序模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图、消息收发应用、和/或计算机辅助应用程序等。
此外,本公开的各实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。例如,可以通过片上系统(SOC)来实践本公开的各实施例,其中,可以将图7中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,在此所述的关于客户端切换协议的能力的功能可以通过在单个集成电路(芯片)上集成有计算设备700的其它组件的专用逻辑来操作。本发明的实施例还可使用能够执行诸如例如,AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施例可以在通用计算机或任何其他电路或系统中实现。
计算设备700也可具有一个或多个输入设备712,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备714,如显示器、扬声器、打印机等等。前述设备是示例,并且可使用其他设备。计算设备700可包括允许与其他计算设备716通信的一个或多个通信连接718。合适的通信连接716的示例包括但不限于RF发射机、接收机、和/或收发机电路系统、通用串行总线(USB)、并行和/或串行端口。
如本文中所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储信息(诸如计算机可读指令、数据结构、或者程序模块)的任何方法和技术实现的易失性和非易失性、可移除和不可移除介质。系统存储器704、可移动存储设备709和不可移动存储设备710都是计算机存储介质(例如,存储器存储)的示例。计算机存储介质可包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可用于存储信息且可由计算设备700访问的任何其他制品。任何此类计算机存储介质可以是计算设备700的一部分。计算机存储介质不包括载波或者其他经传播或经调制的数据信号。
通信介质可通过计算机可读指令、数据结构、程序模块、或者经调制的数据信号(诸如载波或者其他传送机制)中的其他数据体现,并且包括任何信息传递介质。术语“已调制数据信号”可以描述以对信号中的信息进行编码的方式来设置或改变其一个或多个特征的信号。通过示例而非限制,通信介质可包括诸如有线网络或直接有线连接之类的有线介质、以及诸如声、射频(RF)、红外和其他无线介质之类的无线介质。
图8A和8B示出可用来实施本公开的各实施例的移动计算设备800,例如移动电话、智能电话、可穿戴计算机(诸如智能手表)、平板计算机、膝上型计算机等。参照图8A,解说用于实现各实施例的移动计算设备800的一个实施例。在基本配置中,移动计算设备800是具有输入元件和输出元件两者的手持计算机。移动计算设备800通常包括显示器805以及允许用户将信息输入移动计算设备800的一个或多个输入按钮810。移动计算设备800的显示器805还可用作输入设备(例如,触摸屏显示器)。如果被包括在内,任选的侧输入元件815允许进一步的用户输入。侧输入元件815可以是旋转开关、按钮、或者任何其他类型的手动输入元件。在替换实施例中,移动计算设备800可合并或多或少的输入元件。例如,在一些实施例中,显示器805可以不是触摸屏。在又一替换实施例中,移动计算设备800是便携式电话系统,诸如蜂窝电话。移动计算设备800还可包括任选的小键盘835。可选的小键盘835可以是物理小键盘或者在触摸屏显示器上生成的“软”键区。在各个实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器805、视觉指示器820(例如,发光二极管)、和/或音频换能器825(例如,扬声器)。在一些实施例中,移动计算设备800合并用于向用户提供触觉反馈的振动换能器。在又一实施例中,移动计算设备800合并输入和/或输出端口,诸如音频输入(例如,话筒插孔)、音频输出(例如,头戴式耳机插孔)、以及用于发送信号或接收来自外部设备的信号的视频输出(例如,HDMI端口)。
图8B是解说移动计算设备的一个实施例的体系结构的框图。即,移动计算设备800可结合系统(例如,架构)802以实现某些实施例。在一个实施例中,系统802被实现为能够运行一个或多个应用(如浏览器、电子邮件、日历、联系人管理器、消息收发客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在一些实施例中,系统802被集成为计算设备,诸如集成个人数字助理(PDA)和无线电话。
一个或多个应用程序866可被加载到存储器862中,并且在操作系统864上或者与其相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息收发程序等等。系统802还包括存储器862内的非易失性存储区域868。非易失性存储区域868可用于存储持久性信息,如果系统802断电,该持久性信息则不会丢失。应用程序866可使用和存储非易失性存储区域868中的信息,诸如电子邮件应用所使用的电子邮件或其他消息等。同步应用(未示出)还驻留在系统802上,并且被编程为与驻留在主机计算机上的相应同步应用交互以使存储在非易失性存储区域868中的信息保持与存储在主机计算机的相应信息同步。可以领会,其它应用可被加载到存储器862中并在移动计算设备800上运行,包括本文描述的跨断开连接时间段保留会话的能力(和/或任选地,客户端202、暂停模块226、以及上下文模块224)。在一些类似的系统中,可经由系统802来执行逆过程,其中该系统用作用于使用通用屏幕内容编解码器来解码所生成的比特流的远程设备120。
系统802具有可被实现为一个或多个电池的电源870。电源870可能进一步包括外部电源,诸如补充电池或对电池再充电的AC适配器或供电底座(powereddockingcradle)。
系统802还可包括执行发射和接收射频通信的功能的无线电872。无线电872通过通信运营商或服务供应商促进了系统802与“外部世界”之间的无线连接性。在操作系统864的控制下进行与无线电872之间的传输。换句话说,可经由操作系统864将无线电872接收到的通信散布到应用程序866反之亦然。
视觉指示器820可用于提供视觉通知,和/或音频接口874可用于经由音频换能器825生成听得见的通知。在所解说的实施例中,视觉指示器820是发光二极管(LED)而音频换能器825是扬声器。这些设备可直接耦合到电源870以使它们在激活时保持开启达通知机制所陈述的持续时间,即使处理器860以及其他组件可能关闭以节约电池电量。LED可被编程为无限地保持开启,直至用户采取措施来指示该设备的开启状态。音频接口874用于向用户提供听得见的信号且接收来自用户的听得见的信号。例如,除了耦合到音频换能器825以外,音频接口874还可耦合到话筒以接收听得见的输入,诸如促进电话交谈。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。系统802可进一步包括允许板载相机830的操作来记录静止图像、视频流等的视频接口876。
实现系统800的移动计算设备802可具有附加特征或功能。例如,移动计算设备800还可包括附加数据存储设备(可移除和/或不可移除),诸如磁盘、光盘或带。这种附加存储设备在图8B中用非易失性存储区868示出。
如上所述,通过移动计算设备800生成或捕捉且经由系统802存储的数据/信息可在本地被存储在移动计算设备800上,或者该数据可被存储在可由该设备经由无线电872或者经由移动计算设备800与关联于移动计算设备800的单独计算设备(例如,分布式计算网络中的服务器计算机(诸如因特网))之间的有线连接访问的任意数量的存储介质上。如应当领会的,可经由移动计算设备800、经由无线电872、或者经由分布式计算网络访问此类数据/信息。类似地,可以在根据熟知的数据/信息转移和存储装置(包括电子邮件和协同数据/信息共享系统)的用于存储和使用的计算设备之间容易地转移此类数据/信息。
图9示出了用于处理如以上描述的在计算系统处从远程源(诸如计算设备904、平板906或移动设备908)接收的数据的系统的架构的一个实施例。在服务器设备902处显示的内容可按不同的通信信道或其它存储类型来被存储。例如,可使用目录服务922、web门户924、邮箱服务926、即时消息收发存储928、或者社交网站930来存储各种文档。上下文模块224和暂停模块226可基于通过web(例如,通过网络915)与服务器902的通信来切换客户端协议。作为示例,客户端计算设备可被实现为通信服务设备94或生产力服务设备96,并体现为个人计算机904、平板计算设备906和/或移动计算设备908(如智能电话)中。除了接收被用于要在图形始发系统处预处理或在接收计算系统处后处理的图形数据之外,计算设备94、96、800、900、902、904、906、908的这些实施例中的任意可获得来自存储916的内容。
以上参考例如根据本发明的各实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的各实施例。框图中所注释的功能/动作可以不按照如任一流程图中所示的次序发生。例如,连续示出的两个框实际上可基本并发地执行,或者取决于所涉及的功能/动作,这些框有时可以相反的次序执行。
本申请中提供的一个或多个实施例的描述和说明不旨在以任何方式限制或约束如权利要求所要求保护的发明范围。本申请中提供的实施例、示例和细节被认为是足以传达所有权,且使得他人能够制作并使用所要求保护的发明的最佳模式。所要求保护的发明不应被理解为限制于本申请中所提供的任何实施例、示例或细节。不管是组合还是单独地示出和描述,各个(结构和方法)特征旨在选择性地包括或省略以产生具有一组特定特征的实施例。在被提供本申请的描述和说明的情况下,本领域的技术人员能够想象到落在所要求保护的发明的更宽泛方面以及本申请中所具体化的一般发明概念的精神内的变体、修改和替代实施例并不背离该更宽泛的范围。

Claims (10)

1.一种用于跨断开连接时间段在客户端和服务器之间维持会话以通过网络交换数据的方法,所述方法包括:
基于断开连接条件确定所述服务器和所述客户端之间的断开连接有暂停资格;
基于所述确定在第一重连尝试期间向所述服务器发送上下文标识符;以及
响应于所发送的上下文标识符从所述服务器接收所述会话的状态。
2.如权利要求1所述的方法,其特征在于,在所述确定之前,还包括:
通过网络连接与所述服务器在所述会话中交换数据;
从所述服务器接收所述上下文标识符;以及
存储所述上下文标识符。
3.如权利要求1所述的方法,其特征在于,接收所述会话的所述状态包括:
接收有效状态;以及
基于所述有效状态恢复所述会话,其中所述会话向所述客户端提供对在所述断开连接之前访问的至少一个资源的访问。
4.如权利要求1所述的方法,其特征在于,接收所述会话的所述状态包括:
接收无效状态;以及
基于所述无效状态在第二尝试重连尝试期间建立新会话。
5.如权利要求1所述的方法,其特征在于,所述断开连接条件是以下的至少一者:休眠、接口的改变、连接性的丧失、密码过期、服务器请求扼流、以及无连接性。
6.如权利要求1所述的方法,其特征在于,所述客户端包括以下的至少一者:
移动电话;
智能电话;
平板;
智能手表;
可穿戴计算机;
个人计算机;
台式计算机;以及
膝上型计算机。
7.一种系统,包括:
至少部分由计算设备执行的用于与服务器进行数据交换的客户端,所述计算设备包括:
可编程电路;
用于包含计算机可执行指令的存储器,所述计算机可执行指令在被执行时使得所述客户端:
基于断开连接条件确定所述服务器和所述客户端之间的断开连接有暂停资格;
在第一重连尝试期间向所述服务器发送上下文标识符;以及
基于响应于所述上下文标识符接收到从所述服务器发送的会话的有效状态来恢复与所述服务器的所述会话。
8.如权利要求7所述的系统,其特征在于,所述数据交换是以下的至少一者:
电子邮件应用、社交联网应用、协作应用、企业管理应用、消息收发应用、文字处理应用、电子表格应用、数据库应用、演示文稿应用、联系人应用、以及日历应用。
9.如权利要求7所述的系统,其特征在于,所述计算机可执行指令在被执行时在所述确定之前进一步使得所述客户端:
通过网络连接与所述服务器在所述会话中交换数据;
存储在数据交换期间从所述服务器接收的所述上下文标识符。
10.如权利要求7所述的系统,其特征在于,所述断开连接条件是以下的至少一个:休眠、接口的改变、连接性的丧失、密码过期、服务器请求扼流、以及无连接性。
CN201480062682.7A 2013-11-15 2014-11-12 连接会话的保留 Pending CN105723685A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361905034P 2013-11-15 2013-11-15
US61/905,034 2013-11-15
US14/089,604 US20150142982A1 (en) 2013-11-15 2013-11-25 Preservation of connection session
US14/089,604 2013-11-25
PCT/US2014/065111 WO2015073473A1 (en) 2013-11-15 2014-11-12 Preservation of connection session

Publications (1)

Publication Number Publication Date
CN105723685A true CN105723685A (zh) 2016-06-29

Family

ID=52464549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480062682.7A Pending CN105723685A (zh) 2013-11-15 2014-11-12 连接会话的保留

Country Status (4)

Country Link
US (1) US20150142982A1 (zh)
EP (1) EP3069498A1 (zh)
CN (1) CN105723685A (zh)
WO (1) WO2015073473A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019129344A (ja) * 2018-01-22 2019-08-01 キヤノン株式会社 通信装置、制御方法、及びプログラム
CN113596116A (zh) * 2021-07-13 2021-11-02 成都安恒信息技术有限公司 一种运维审计系统ssh会话恢复的方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9961125B2 (en) 2013-07-31 2018-05-01 Microsoft Technology Licensing, Llc Messaging API over HTTP protocol to establish context for data exchange
US10440066B2 (en) 2013-11-15 2019-10-08 Microsoft Technology Licensing, Llc Switching of connection protocol
US20150149531A1 (en) * 2013-11-27 2015-05-28 At&T Intellectual Property I, L.P. Dynamically Selected Message Refresh Interval
US9986042B2 (en) * 2014-11-05 2018-05-29 NCS Technologies, Inc. Zero client device with cached connections
US9882862B2 (en) * 2015-05-01 2018-01-30 Facebook, Inc. Techniques for coordinating a messaging experience across platforms
US10148607B2 (en) 2015-09-28 2018-12-04 Quest Software Inc. Electronic-messaging system interceptor forwarding client notifications
US10797977B2 (en) 2016-03-22 2020-10-06 Citrix Systems, Inc. Robust suspension and resumption of desktop virtualization
US10600108B2 (en) 2016-09-26 2020-03-24 Target Brands, Inc. Web session security and computational load management
US10637852B2 (en) * 2016-09-30 2020-04-28 Ricoh Company, Ltd. Shared terminal and display control method
RU2021123910A (ru) * 2016-11-03 2021-09-27 АйПиКОМ ГМБХ УНД КО.КГ Способ связи устройства мобильной связи с носимым устройством
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
US11928482B2 (en) * 2017-06-13 2024-03-12 Google Llc Interaction with electronic chat interfaces
CN109996243B (zh) * 2017-12-29 2021-10-15 华为技术有限公司 信息处理的方法、和通信设备
CN111356017B (zh) * 2018-12-24 2022-05-13 浙江宇视科技有限公司 一种视频监控网络设备保活方法及装置
US11233859B2 (en) * 2019-10-31 2022-01-25 Arm Ip Limited Machine-to-machine communications
ES2928485T3 (es) * 2019-12-06 2022-11-18 Broadpeak Procedimiento para suministrar contenidos de audio y/o vídeo a un reproductor
CN111669438B (zh) 2020-05-27 2022-10-04 北京百度网讯科技有限公司 直播消息传输方法、装置、电子设备及介质
US11368544B2 (en) * 2020-10-30 2022-06-21 Capital One Services, Llc Scalable server-based web scripting with user input
CN112565441B (zh) * 2020-12-11 2023-07-14 北京天融信网络安全技术有限公司 一种数据通信方法及电子设备
CN115568036B (zh) * 2022-10-14 2023-10-20 荣耀终端有限公司 一种应用连接方法、电子设备、芯片及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040168052A1 (en) * 2003-02-25 2004-08-26 Clisham Allister B. Electronic content communication system and method
CN101662474A (zh) * 2009-09-29 2010-03-03 中国电信股份有限公司 移动终端流媒体异常中断的自动恢复方法和系统
US20110320820A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Restoring Secure Sessions
US20130007518A1 (en) * 2011-06-30 2013-01-03 Microsoft Corporation Transparent failover

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
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
US20050050159A1 (en) * 2003-09-03 2005-03-03 Zeev Suraski Remote debugging of web applications
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 삼성전자주식회사 대용량 쿠키 처리 방법 및 장치
US20070106670A1 (en) * 2005-11-08 2007-05-10 Nortel Networks Limited Interactive communication session cookies
US7509350B2 (en) * 2006-06-01 2009-03-24 Research In Motion Limited Method and apparatus for synchronizing of databases
AU2007317889B2 (en) * 2006-11-07 2011-05-12 Kroll Information Assurance, Llc System and method for enhanced experience with a peer to peer network
JP4976121B2 (ja) * 2006-12-19 2012-07-18 株式会社エヌ・ティ・ティ・ドコモ 移動通信ネットワークシステム及びサーバ装置
US20100024015A1 (en) * 2006-12-21 2010-01-28 Sxip Identity Corp. System and method for simplified login using an identity manager
EP2127214A4 (en) * 2007-03-05 2010-05-26 Paxfire Inc INTERNET SEARCH ENGINE
US20080250109A1 (en) * 2007-04-09 2008-10-09 Gabriel Jakobson Method and system for tracking time over instant messenger
US7895463B2 (en) * 2007-08-28 2011-02-22 Cisco Technology, Inc. Redundant application network appliances using a low latency lossless interconnect link
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
KR101366282B1 (ko) * 2007-10-15 2014-02-20 엘지전자 주식회사 Supl 기반 트리거 위치 서비스에서의 트리거 세션 수행방법
JP5285069B2 (ja) * 2008-06-17 2013-09-11 パナソニック株式会社 サーバ装置、サーバ処理方法およびプログラム
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
US8490151B2 (en) * 2010-06-25 2013-07-16 Nokia Corporation Method and apparatus for performing a multi-role communication using a memory tag
WO2012063813A1 (ja) * 2010-11-08 2012-05-18 シャープ株式会社 移動通信システム、移動局装置、基地局装置、sgsn、ggsn、mme、mbms gw及び移動通信方法
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
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
US9866640B2 (en) * 2013-09-20 2018-01-09 Oracle International Corporation Cookie based session management
CN104702519B (zh) * 2013-12-06 2018-02-13 华为技术有限公司 流量卸载的方法、装置及系统
US9264662B2 (en) * 2013-12-30 2016-02-16 OnCam Inc. Chat preauthorization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040168052A1 (en) * 2003-02-25 2004-08-26 Clisham Allister B. Electronic content communication system and method
CN101662474A (zh) * 2009-09-29 2010-03-03 中国电信股份有限公司 移动终端流媒体异常中断的自动恢复方法和系统
US20110320820A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Restoring Secure Sessions
US20130007518A1 (en) * 2011-06-30 2013-01-03 Microsoft Corporation Transparent failover

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019129344A (ja) * 2018-01-22 2019-08-01 キヤノン株式会社 通信装置、制御方法、及びプログラム
JP7008514B2 (ja) 2018-01-22 2022-01-25 キヤノン株式会社 通信装置、制御方法、及びプログラム
CN113596116A (zh) * 2021-07-13 2021-11-02 成都安恒信息技术有限公司 一种运维审计系统ssh会话恢复的方法
CN113596116B (zh) * 2021-07-13 2024-02-06 成都安恒信息技术有限公司 一种运维审计系统ssh会话恢复的方法

Also Published As

Publication number Publication date
WO2015073473A1 (en) 2015-05-21
EP3069498A1 (en) 2016-09-21
US20150142982A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
CN105723685A (zh) 连接会话的保留
US10686655B2 (en) Proximity and context aware mobile workspaces in enterprise systems
US10778656B2 (en) Sharing resources across multiple devices in online meetings
CN104054301B (zh) 远程访问应用框架中的会话传递和挂起
CN105940657B (zh) 基于租户的签名验证
CN104915835B (zh) 信用账户创建装置、系统和方法
US8572199B2 (en) Dynamic instant comments
KR101996624B1 (ko) 분산 협약 프로토콜에서의 crud형 프로토콜 바인딩 기법
CN107431708A (zh) 资源之间的会话转移
CN105683896A (zh) 跨多个虚拟机共享虚拟硬盘
US20190306099A1 (en) System and method for delivering inline interactive objects encapsulated in a message
CN109691057A (zh) 经由私人内容分发网络可交换地取回敏感内容
US11716361B2 (en) Network call method, server, call terminal, network call system, and storage medium
CN105493446A (zh) 通过单个历史跟踪与使用多种模式的通话和机器进行通信
CN105721389B (zh) 多终端设备互通数据处理和服务响应方法、装置
CN105531979A (zh) 建立用于数据交换的上下文的http协议上的消息传递api
CN102422655A (zh) 多模会话保持和恢复
WO2012058989A1 (zh) 一种移动终端多用户协同图形编辑的方法及系统
US20160012738A1 (en) Interactive social learning network
CN111711528A (zh) 网络会议的管控方法、装置、计算机可读存储介质及设备
CN105556549A (zh) 将消费者关系管理信息集成到通信会话
CN104283771B (zh) 用于移动终端的im用户协同通讯方法与系统
CN106357524A (zh) 一种基于xmpp协议的即时消息服务方法
KR101368780B1 (ko) 멀티 커뮤니케이션 서비스 시스템 및 멀티 커뮤니케이션 서비스 방법
TWM460466U (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160629