CN106663015B - 恢复会话状态 - Google Patents

恢复会话状态 Download PDF

Info

Publication number
CN106663015B
CN106663015B CN201580035327.5A CN201580035327A CN106663015B CN 106663015 B CN106663015 B CN 106663015B CN 201580035327 A CN201580035327 A CN 201580035327A CN 106663015 B CN106663015 B CN 106663015B
Authority
CN
China
Prior art keywords
state
server
web application
session
session state
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.)
Active
Application number
CN201580035327.5A
Other languages
English (en)
Other versions
CN106663015A (zh
Inventor
亚历山大·弗里德里希·库舍尔
阿尔伯特·斯科特·博登哈默
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.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Publication of CN106663015A publication Critical patent/CN106663015A/zh
Application granted granted Critical
Publication of CN106663015B publication Critical patent/CN106663015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

向服务器系统状态信息包括访问用于web应用的文档对象模型(DOM),DOM对应于表示web应用的第一状态的树状结构。基于DOM向服务器提供web应用的第一状态的指示。进行在系统处已经发生预定事件的确定,该预定事件指示不同于web应用的第一状态的web应用的第二状态将被提供给服务器。响应于该确定,向服务器提供对应于DOM的更新版本的web应用的第二状态的指示。

Description

恢复会话状态
背景技术
本公开一般地涉及会话状态,并且具体地涉及向服务器提供会话状态信息。
现在的计算通常取决于物理设备之间的链接。例如,当用户设备被放错地方或变得不可操作时,数据可能丢失。另外,移动设备之间的状态对于用户而言可能是麻烦或不直观的。
发明内容
公开主题涉及一种向服务器提供状态信息的系统。该计算机系统包括一个或多个处理器以及包括存储在其中的指令的机器可读介质,该指令在由处理器执行时使得处理器执行操作,操作包括访问用于web应用的文档对象模型(DOM),DOM对应于表示web应用的第一状态的树状结构;以及基于DOM向服务器提供web应用的第一状态的指示。该操作还包括确定在系统处已经发生预定事件,该预定事件指示不同于web应用的第一状态的web应用的第二状态将被提供给服务器,以及向服务器并且响应于该确定提供与DOM的更新版本相对应的web应用的第二状态的指示。
公开主题还涉及一种包括存储在其中的指令的机器可读介质,该指令在由处理器执行时使得处理器执行操作,操作包括访问用于web应用的文档对象模型(DOM),DOM对应于表示web应用的第一状态的树状结构;以及基于DOM向服务器提供web应用的第一状态的指示。该操作还包括确定在系统处已经发生预定事件,该预定事件指示不同于web应用的第一状态的web应用的第二状态将被提供给服务器,以及向服务器并且响应于该确定提供与DOM的更新版本相对应的web应用的第二状态的指示。另外,该操作包括确定系统的状态信息,该状态信息包括窗口位置数据、滚动位置数据、文件夹创建数据、应用位置数据、打开窗口信息、最小化窗口信息以及显示设置信息中的至少一个,以及向服务器提供所确定状态信息的指示,以用于从服务器的后续检索。
公开主题进一步涉及一种用于向服务器提供会话状态的系统。所述系统包括一个或多个处理器以及包括存储在其中的指令的机器可读介质,该指令在由处理器执行时使得处理器执行操作,该操作包括:确定关于在系统上运行的一个或多个应用已经发生第一预定事件,该第一预定事件指示用于一个或多个应用的第一会话状态将被提供给服务器。该操作还包括向服务器并且响应于确定已经发生第一预定事件来发送用于一个或多个应用的第一会话状态;以及确定关于一个或多个应用已经发生第二预定事件,该第二预定事件指示用于一个或多个应用的第二会话状态将被提供给服务器。另外,该操作包括向服务器并且响应于确定已经发生第二预定事件来发送用于一个或多个应用的第二会话状态,以及向服务器提供用于第一会话状态和第二会话状态中的每一个的场境信息,该场境信息用于向用户提供用于将第一会话状态与第二会话状态进行区分的场境。
公开主题还涉及一种包括存储在其中的指令的机器可读介质,该指令在由系统执行时使得系统执行操作,该操作包括:确定关于在系统上运行的一个或多个应用已经发生第一预定事件,该第一预定事件指示用于一个或多个应用的第一会话状态将被提供给服务器。该操作还包括向服务器并且响应于确定已经发生第一预定事件来发送用于一个或多个应用的第一会话状态;以及确定关于一个或多个应用已经发生第二预定事件,该第二预定事件指示用于一个或多个应用的第二会话状态将被提供给服务器。该操作进一步包括向服务器并且响应于确定已经发生第二预定事件来发送用于一个或多个应用的第二会话状态,向服务器提供用于第一会话状态和第二会话状态中的每一个的场境信息,该场境信息用于向用户提供用于将第一会话状态与第二会话状态进行区分的场境,以及向服务器发送对检索在先会话的请求。另外,该操作包括从服务器并且响应于该发送来接收用于第一会话状态和第二会话状态的场境信息,响应于接收到的场境信息来接收对第一会话状态或第二会话状态的用户选择;以及基于接收到的用户选择来从服务器接收第一会话状态或第二会话状态。
应理解的是根据以下详细描述,主题技术的其它配置将变得对于本领域的技术人员而言显而易见,其中,以图示的方式示出并描述了主题技术的各种配置。如将认识到的,主题技术能够有其它和不同配置,并且其多个细节能够在各种其它方面进行修改,全部不脱离主题技术的范围。因此,应将附图和详细描述视为本质上是说明性而非限制性的。
附图说明
在所附权利要求中阐述了主题技术的一些特征。然而,出于说明的面对,在以下各图中阐述了主题技术的若干实施方式。
图1图示向服务器提供会话状态信息的示例性网络环境。
图2图示根据本技术的各方面的向服务器提供会话状态信息的客户端设备的示例性过程。
图3图示根据本技术的各方面的具有用于不同会话状态的场境信息的示例性用户界面。
图4图示根据本技术的各方面的客户端设备向服务器提供会话的示例性过程。
图5在概念上图示实现主题技术的一些实施方式的电子系统。
具体实施方式
下面结合附图而阐述的详细描述意图作为主题技术的各种配置的描述,而不意图表示可在其中实施主题技术的仅有配置。附图被结合在本文中,并且组成详细描述的一部分。详细描述出于提供主题技术的透彻理解的目的而包括特定细节。然而,主题技术不限于在本文中阐述的特定细节,并且可以在没有这些特定细节的情况下实施。在一些情况下,以框图形式示出了结构和组件以便避免使主题技术的概念混淆。
如上所述,现在的计算通常取决于物理设备之间的链接。例如,当用户设备被放错地方或变得不可操作时,数据可能丢失。另外,移动设备之间的状态对于用户而言可能是麻烦或不直观的。
通常,状态信息报但不限于由坐标定义的窗口定位和位置(例如,x、y、z坐标)、窗口和应用内的滚动条位置、用于浏览器或应用的打开窗口或最小化窗口状态、显示设置、活动标签信息以及窗口内的所有标签或用应用启动程序创建的文件夹。除上述之外,状态信息包括用于web应用的文档对象模型(DOM)。
DOM对应于表示web应用的当前黄台的树状结构。文档对象模型(DOM)是用于表示web应用文档中的对象并与之相交互的跨平台且语言无关的约定。可以通过对对象使用方法来处理和操纵DOM树中的对象。web应用的状态可以完全由其DOM表示,并且保存DOM以用于稍后检索允许web应用从其被保存时刻开始的完整(或基本上完整)再现。
在这方面,本公开支持向服务器提供状态信息。访问用于web应用的DOM,该DOM对应于表示web应用的第一状态的树状结构。基于DOM向服务器提供web应用的第一状态的指示,并且进行在系统处发生预定事件的确定,该预定事件指示不同于web应用的第一状态的web应用的第二状态将被提供给服务器。响应于该确定,将基于DOM的更新版本而提供web应用的第二状态的指示。在示例性方面,本公开支持确定附加状态信息(例如,由坐标定义的窗口定位和位置、窗口的和在应用内的滚动条位置、用于浏览器或应用的打开窗口或最小化窗口状态、显示设置、活动标签信息以及窗口内的所有标签或者用应用启动程序创建的文件夹),并向服务器提供该附加状态信息的指示。
本公开进一步涉及向用户呈现例如与用户参与的在先会话相对应的不同会话状态的表示(例如,经由用户接口)。用户可以从多个在先会话状态中选择会话状态。响应于该选择,用户的计算设备可以恢复与该会话状态相关联的会话信息。然而,为了向用户提供足够的用于每个在先会话的信息,可能期望向用户呈现与在先会话相关联的场境信息。此外,当参与当前会话时,可能期望计算设备确定要在哪个点处确定用于存储到服务器的新会话何时将被触发。
在这方面,本公开还支持向服务器提供会话状态。进行关于在系统上运行的一个或多个应用已经发生第一预定事件的确定,该第一预定事件指示用于一个或多个应用的第一会话状态将被提供给服务器。响应于确定第一预定事件已经发生,用于一个或多个应用的第一会话状态被发送到服务器。进行关于一个或多个应用已经发生第二预定事件的确定,该第二预定事件指示用于一个或多个应用的第二会话状态将被提供给服务器。响应于确定第二预定事件已经发生,用于一个或多个应用的第二会话状态被发送到服务器。另外,向服务器提供用于第一会话状态和第二会话状态中的每一个的场境信息,该场境信息用于向用户提供用于将第一会话状态与第二会话状态进行区分的场境。
图1图示向服务器提供会话状态信息的示例性网络环境100。网络环境100包括计算设备102、104和106(在下文中“102-106”)和计算系统110。计算设备102-106和计算系统110可以通过网络108相互通信。计算系统110可以包括一个或多个计算设备112(例如,一个或多个服务器)以及一个或多个计算机可读存储设备114(例如,一个或多个数据库)。
计算设备102-106中的每一个可以表示各种形式的处理设备。示例性处理设备可以包括台式计算机、膝上型计算机、手持式计算机、个人数字助理(PDA)、蜂窝式电话、网络设施、相机、智能电话、增强型通用分组无线电服务(EGPRS)移动电话、媒体播放器、导航设备、电子邮件设备、游戏控制台或任何这些数据处理设备或其它数据处理设备的组合。可以向计算设备102-106和112提供对在任何其它计算系统102-106和112上执行或存储的应用软件的访问或者接收该应用软件。
计算设备112可以是具有处理器、存储器以及用于向电子设备提供内容的通信能力的任何系统或设备。在一些示例性方面,服务器110可以是单个计算设备,例如计算机服务器。在其它实施例中,服务器110可以表示一起工作以执行服务器计算机的动作(例如,云计算)的多于一个的计算设备。此外,计算设备112可以表示各种形式的服务器,包括但不限于web服务器、应用服务器、代理服务器、网络服务器、同步服务器或服务器群。
在一些方面,计算设备可以通过通信接口(未示出)进行无线通信,该通信接口在必要的情况下可以包括数字信号处理电路。通信接口可以支持各种模式或协议下的通信,例如全球移动通信系统(GSM)语音呼叫、短信息服务(SMS)、增强型通讯服务(EMS)或多媒体消息收发服务(MMS)消息收发、码分多址(CDMA)、时分多址(TDMA)、个人数字蜂窝(PDC)、宽带码分多址(WCDMA)、CDMA2000或通用分组无线电系统(GPRS)等。例如,通信可以通过射频收发机(未示出)发生。另外,短距离通信可以例如使用蓝牙、WiFi或其它此类收发机发生。在一些方面,网络环境100可以是分布式客户端/服务器系统,其跨越一个或多个网络,例如网络108。
网络108可以是连接任何数目的移动客户端、固定客户端以及服务器的大的计算机网络,例如局域网(LAN)、广域网(WAN)、因特网、蜂窝网络或其组合。此外,网络108可以包括但不限于以下网络拓扑中的任何一个或多个,包括总线网络、星形网络、环形网络、网状网络、星形总线网络、树形或层级网络等。在一些方面,每个客户端(例如,计算设备102-106)与服务器(例如,服务器110)之间的通信可以经由虚拟专用网(VPN)、安全壳(SSH)隧道或其它安全网络连接发生。
在示例性方面,计算设备(例如,计算设备102-106中的任何一个)访问用于web应用(例如,在计算设备的浏览器内示出)的DOM,该DOM对应于表示web应用的第一状态的树状结构。计算设备基于DOM向服务器(例如,服务器110)提供web应用的第一状态的指示。计算设备确定在设备处已经发生预定事件,该预定事件指示不同于web应用的第一状态的web应用的第二状态将被提供给服务器。计算设备向服务器并且响应于该确定提供与DOM的更新版本相对应的web应用的第二状态的指示。
在其它示例性方面,计算设备(例如,计算设备102-106中的任何一个)确定关于在设备上运行的一个或多个应用已经发生第一预定时间,第一预定事件指示用于一个或多个应用的第一会话状态将被提供给服务器(例如,服务器110)。计算设备向服务器并且响应于确定第一预定事件已经发生来发送用于一个或多个应用的第一会话状态。计算设备确定关于一个或多个应用已经发生第二预定事件,该第二预定事件指示用于一个或多个应用的第二会话状态将被提供给服务器。计算设备向服务器并且响应于确定第二预定事件已经发生来发送用于一个或多个应用的第二会话状态,并且向服务器提供用于第一会话状态和第二会话状态中的每一个的场境信息,该场境信息用于向用户提供将第一会话状态与第二会话状态进行区分的场境。
因此,可以保存web应用的DOM状态或者响应于确定一个或多个预定事件来保存会话状态信息和场境信息。替换地或另外,可以保存用于应用的其它状态信息。如上所述,该状态信息包括但不限于由坐标定义的窗口定位和位置(例如,x、y、z坐标)、窗口和应用内的滚动条位置、用于浏览器或应用的打开窗口或最小化窗口状态、显示设置、活动标签信息以及窗口内的所有标签或用应用启动程序创建的文件夹。
因此,当涉及将用户活动的状态保存在该设备上时,可以减少或消除用户对一个物理设备的依赖性。允许用户保存其当前状态并且从状态被保存的同一设备或者从该状态的不同设备恢复,使得设备可任意处理但数据不是。本公开允许通过保存信息状态和状态会话(例如,在基于云的服务器中)而进行设备的状态的完整或基本是完整的备份,具有检索状态以用于从状态被保存的最后时刻开始进行该状态的活动的无缝恢复的选项。在一些方面,本公开将表示与该状态有关的用户的活动的某个状态的静态图像备份到服务器,具有在任何时间从任何设备检索该状态并提供从状态最后被保存时开始的副本的选项。
图2图示根据本技术的各方面的客户端设备向服务器提供会话状态的示例性过程200。出于说明性目的,示例性过程200的框在本文中被描述为并行地或线性地发生。然而,示例性过程200的多个框可以并行地发生。另外,可以按照与所示顺序不同的顺序执行示例性过程200的框和/或可以不执行示例性过程200的框中的一个或多个。此外,虽然参考图1中的系统讨论了过程200,但应注意的是过程200不限于此类,并且可以应用于不同的系统和配置。
在示例性过程200中,客户端设备(例如,102-106中的任何一个)访问web应用DOM并在框202处向服务器112提供web应用的第一状态。服务器在框204处从客户端设备接收web应用DOM的第一状态并保存第一状态DOM以用于后来的检索或进一步计算。在示例性方面,在框204处提供的DOM的第一状态表示整体DOM。访问并保存web应用的整体DOM提供用于在稍后阶段检索web应用的状态的方式。
在框206处由客户端设备(例如,102-106中的任何一个)检查一组预定事件。第一预定事件是要测试的预定义条件。例如,预定事件可以是从DOM的第一状态被保存的时间开始已经流逝的特定时间段(例如,从保存第一状态开始的5分钟)。替选地或另外,预定事件可以与网络资源可用性的水平有关,例如,其中网络资源可用性低于阈值可用性水平。例如,如果在网络上存在轻业务,则这可能是测试保存DOM的第二状态的良好时机。此外,可以通过跟踪对DOM的改变来触发预定事件,其中,在DOM中存在阈值量的累积改变(例如,10%、25%、50%变化)。
在一些方面,在预定事件是流逝预定时间段的情况下,客户端设备(例如,102-106中的任何一个)捕捉DOM的第二状态并向服务器112提供第二状态的指示。第二状态的指示可以是在DOM的第一状态与DOM的第二状态之间的差异。在这种情况下,在DOM的第二状态与DOM的第一状态之间的差异不一定需要满足用于在DOM的第一状态与DOM的第二状态之间的变化的阈值变化量(Δ)。
在预定事件是网络资源可用性的情况下,意味着在网络上存在足够低的高业务,以指示使设备采用DOM的第二状态的带宽可用性,客户端设备(例如,102-106中的任何一个)捕捉DOM的第二状态并将第二状态的指示提供给服务器112。第二状态的指示可以是在DOM的第一状态与DOM的第二状态之间的差异。在这种情况下,在DOM的第二状态与DOM的第一状态之间的差异不一定需要满足用于在DOM的第一状态与DOM的第二状态之间的显著改变的阈值变化量。
如上所述,在其中预定事件对应于流逝预定时间段和/或网络资源的可用性的情况下,在DOM的第一状态与第二状态之间的差异不一定需要满足用于向服务器112发送第二状态的指示的阈值。这提供了当在预定事件已经同时发生的情况下缺少网络资源并且在DOM的第一状态与DOM的第二状态之间几乎没有检测到改变时,不向服务器提供第二状态的增加的灵活性。
另外,预定事件可以是在DOM内累积的阈值量,意味着在DOM的第一状态与DOM的第二状态之间的改变满足预设置阈值(例如,对应于DOM中的显著变化)。在该情况下,客户端设备(例如,102-106中的任何一个)捕捉DOM的第二状态,并且如框208中所示向服务器112提供DOM的第二状态的指示。在在判定框206处没有发生预定事件的情况下,系统等待直至预定事件已经发生。
在一些方面,在框210处提供给服务器的DOM的第二状态表示在第一状态与第二状态之间的计算的变化量。服务器112接收web应用DOM的第二状态的指示,并且根据在框212处接收的DOM的第二状态的指示来更新第一状态web应用DOM。在一些方面,服务器112在其不具有用于立即处理第二状态的资源的情况下可以保存第二状态以用于稍后与DOM的第一状态一起处理。服务器112稍后可以用在第二状态的指示上提供的信息来更新DOM的第一状态,并且将第一状态保存为第一状态的更新版本。服务器可以保持第一状态的各版本和第二状态的指示(在其被提供时),或者可以在更新第一状态之后删除第一状态和第二状态的指示,并且仅将第一状态的更新版本保持为将在请求时提供的web应用的当前状态。后者更加高效,因为保持早先状态的各版本可能要求更多的存储器资源。
在示例性方面,客户端设备(例如,102-106中的任何一个)可以在框218处从服务器请求更新状态web应用DOM。响应于该请求,服务器112在框220处检索(例如,从存储器)更新状态web应用DOM,并在框222处将第一状态的更新版本发送到客户端设备。客户端设备在框224处接收web应用的更新状态以供在设备内使用。此外,如在框220处,在服务器112处生成的DOM可以包括DOM的整个更新版本。在框202处的web应用的DOM状态可以对应于web应用的当前JavaScript状态,并且可以从系统的RAM访问。
图3图示根据本技术的各方面的具有用于不同会话状态的场境信息的示例性用户界面300。场境信息可以是但不限于,用于分类不同的状态会话的会话的时间314、会话内的活动的性质316、会话发生的日期318、在该会话期间使用的应用320和会话名称312(例如,可以按字母顺序布置)。在一个或多个实施方式中,场境信息可以包括用于第一会话状态和第二会话状态中的每一个的截屏。场境信息还可以包括通过第一会话状态和第二会话状态访问的web资源的指示。
在一些方面,可以将会话的时间314指示为会话开始时的时间和/或会话结束时的时间,用于会话的时间条目可以响应于用户请求而按照时间顺序或倒时间顺序被存储在存储器中,允许用户在300中更容易地识别要从多个会话状态中还原哪个会话状态。
会话316的活动的性质是用于布置设备的会话状态的替选。用户可以基于与会话有关的活动来存储会话。例如,可以将活动分类为使用基于云的服务或使用用于在客户端设备(例如,102-106中的任何一个)上进行编辑的应用来编辑在线文档。用于会话的活动的另一示例可以是在线玩游戏或使用客户端设备上的应用。此外,活动可以是例如使用web应用浏览器来浏览在线内容或者在web上冲浪。
在一些方面,可以基于会话发生的日期318来布置会话状态。活动的日期提供用于定义会话状态的另一替选,在一个或多个实施方式中,活动的日期可以按周、月或年被分组。可以向用户提供例如对在给定年内的某个月中产生的活动的会话状态的搜索。在示例性方面,可以向用户提供用于选择用户可以在时间上向回多远以检索会话状态的界面。
替选地或另外,在会话状态320期间使用的应用可以提供用于布置状态会话的手段。例如,应用可以是文字文件编辑应用、在线游戏应用、电子邮件提供商或在线文档应用。在不同应用与会话状态相关联地运行的情况下,可以用两个条目保存会话状态,每个应用一个条目。状态会话可以进一步通过向用户提供保存会话状态并且指派由用户指定的名称的选项来保存会话状态,其中,会话状态的名称可以按字母顺序布置。这可以向用户提供用于从会话状态的按字母顺序列表中选择会话状态的选项。
在一些方面,客户端设备(例如,102-106中的任何一个)访问与其在设备内的活动有关的一系列场境信息,其中,该场境信息(例如,312-320)向用户提供用于不同分类中搜索与其活动有关的先前会话状态的手段。这提供了在选择会话状态方面的更多灵活性以及在多个会话之间进行区分并基于会话状态场境信息来选择要检索的会话状态的能力。一旦用户基于场境信息选择了会话状态,客户端设备(例如,102-106中的任何一个)就向服务器发送用于从服务器检索所选会话状态并传递到客户端设备的请求。
在一些方面,可以向用户给予关于如何保存会话状态和基于哪些场境信息的选项。例如,可以向用户给予用于仅按日期布置和保存会话(如果由用户指定)的选项。替选地,可以由客户端设备(例如,102-106中的任何一个)来应用用于所有上述场境信息或场境信息的子集(312-320)的默认设置。
图4图示根据本技术的各方面的客户端设备(例如,102-106中的任何一个)向服务器提供会话的示例性过程400。出于说明性目的,示例性过程400的框在本文中被描述为并行地或线性地发生。然而,示例性过程400的多个框可以并行地发生。另外,可以按照与所示顺序不同的顺序执行示例性过程400的框和/或可以不执行示例性过程400的框中的一个或多个。此外,虽然参考图1中的系统讨论了过程400,但应注意的是过程400不限于此类,并且可以应用于不同的系统和配置。
在示例性过程400中,客户端设备(例如,102-106中的任何一个)在框402处检查预定事件的发生。该预定事件是要由客户端设备测试的预定义条件。例如,预定事件可以是检测到下述中的一个或多个已经发生:用户已经从系统登出、用户已经从在系统内运行的应用中的一个或多个登出、另一个用户已经登录到客户端设备、用于在系统内运行的应用中的一个或多个的预定阈值时间段中的不活动时段、先前不运行的新的活动类型(例如,打开新的应用)或者由用户进行的对不同会话的活动中的切换(例如,切换到会话可以是新的会话状态或者从服务器112检索的预先保存的会话状态)。
在已经发生与会话状态有关的预定事件的情况下,会话状态被保存,并且在框404处由客户端设备(例如,102-106中的任何一个)连同其场境信息一起被发送到服务器112。会话状态可以包括所有运行的web应用的DOM、由例如其(x、y、z)坐标定义的窗口定位和位置、窗口的并且在应用内的滚动条位置、用于浏览器或应用的打开窗口或最小化窗口、显示设置、活动标签信息以及窗口内的所有标签或者用应用启动程序创建的文件夹。场境信息可以是会话状态开始的时间、会话内的活动的性质、会话发生的日期和/或在该会话期间使用的应用。
服务器112作为回答而在框406处接收会话状态和会话状态的场境信息,并在框408处保存该会话和场境信息以供稍后检索。在框402处,在没有发生预定事件的情况下,客户端设备(例如,102-106中的任何一个)保持对预定事件的发生的检查,直至对于至少预定事件的发生检查是肯定的。
此外,客户端设备(例如,102-106中的任何一个)在框410处检查第二预定事件发生。第二预定事件是将由客户端设备(例如,102-106中的任何一个)测试的预定义条件,例如,第二预定事件可以是与第一预定事件相同的集合、第一预定事件的子集或者具有附加预定事件的第一预定事件的子集。预定事件可以检测到下述中的一个或多个已经发生:用户已经从系统登出、用户已经从在系统内运行的应用中的一个或多个登出、另一个用户已经登录到客户端设备、用于在系统内运行的应用中的一个或多个的预定阈值时间段中的不活动时段、先前不运行的新的活动类型(例如,打开新的应用)或者由用户进行的到不同会话的活动中的切换(例如,切换到会话可以是新的会话状态或者从服务器112检索的预先保存会话状态)。
在第二预定事件已经发生的情况下,客户端设备(例如,102-106中的任何一个)在框412处将该会话状态连同其场境信息一起发送到服务器112。服务器112作为回答而在框414处接收会话状态和会话状态的场境信息并在框416处保存该会话状态和场境信息以供稍后检索。在没有发生预定事件的情况下,客户端设备在框410处保持检查,直至对于第二预定事件的发生检查是肯定的。
在一个或多个实施方式中,如果预定事件例如是检测到用于在系统上运行的应用中的一个或多个的预定阈值时间段中的不活动,则在将第二会话状态发送到服务器112之前可能需要在第一会话状态与第二会话状态之间的比较。可能需要该比较以验证在第二状态与需要发送第二会话状态的第一状态之间是否存在任何改变。例如,可以将在第一会话状态与第二会话状态之间的改变检测为设备的状态信息中的改变、如在检测窗口位置的改变、用于web应用的滚动条的改变或者运行的web应用的DOM的改变。在第一会话状态与第二会话状态之间的改变可以是在第一会话状态期间没有打开的处于第二会话状态的新应用的开始。
在一些示例性方面且在后续时间,客户端设备(例如,102-106中的任何一个)在框440处从服务器112请求在先会话状态(例如,从而恢复用户参与的在先会话)。在框442处,服务器112检索关于与客户端设备或用户帐户相关地保存的状态会话的场境信息,并在框444处将该场境信息发送至客户端设备。客户端设备(例如,102-106中的任何一个)在框446处接收场境信息并基于不同的场境信息向用户提供用于所有会话状态的界面。例如,呈现的场境信息可以包括如在图3中指示的不同参数。用户界面向用户提供用于在框448处基于会话状态的场境信息来选择期望会话状态的选项。客户端设备在框450处从服务器112请求用于检索的所选会话状态。服务器112如在框452处检索所请求会话并在框454处将所请求会话状态发送到客户端设备,该客户端设备作为回答在框456处接收所请求会话状态以供显示和使用。
图5在概念上图示可以用于实现主题技术的实施方式的计算系统500,诸如服务器112和无线客户端设备(例如,102-106中的任何一个)。电子系统500可以是服务器、计算机、电话、PDA、膝上计算机、平板计算机、具有嵌入其中或与之耦合的一个或多个处理器的电视或任何其它种类的电子设备。这种电子系统包括各种类型的计算机可读介质和用于各种其它类型的计算机可读介质的接口。电子系统500包括总线508、处理器512、系统存储器504、只读存储器(ROM)510、永久性存储设备502、输入设备接口514、输出设备接口506以及网络接口516。
总线508共同地表示通信地连接电子系统500的许多内部设备的所有系统、外围设备以及芯片组总线。例如,总线608将处理器512与ROM 510、系统存储器504以及持久性存储设备502通信地连接。
从这些不同存储器单元,处理器512检索要执行的指令和要处理的数据以便执行本公开的过程。处理单元在不同实施方式中可以是单个处理器或多核处理器。
ROM 510存储处理器512和电子系统的其它模块所需的静态数据和指令。另一方面,持久性存储设备502是读写存储器设备。此设备是即使当电子系统500关掉时也存储指令和数据的非易失性存储器单元。本公开的一些实施方式使用大容量存储设备(诸如磁盘或光盘及其相应磁盘驱动器)作为持久性存储设备502。
其它实施方式使用可移动存储设备(诸如软盘、闪速驱动器以及其相应磁盘驱动)作为持久性存储设备502。类似于持久性存储设备502,系统存储器504是读写存储器设备。然而,不同于存储设备502,系统存储器504是易失性读写存储器,诸如随机存取存储器。系统存储器504存储处理器在运行时需要的一些指令和数据。在一些实施方式中,本公开的过程被存储在系统存储器504、永久存储设备502和/或ROM 510中。例如,各种存储器单元包括用于根据各种实施方式来处理会话状态信息的指令。从这些不同存储器单元,处理器512检索要执行的指令和要处理的数据以便执行一些实施方式的过程。
总线508还连接到输入和输出设备接口514和506。输入设备接口514使得用户能够向电子系统传送信息和选择命令。与输入设备接口514一起使用的输入设备包括例如字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备接口506使得例如能够显示由电子系统500生成的图像。与输出设备接口506一起使用的输出设备包括例如打印机和显示设备,诸如阴极射线管(CRT)和液晶显示器(LCD)。一些实施方式包括诸如充当输入和输出设备两者的触摸屏之类的设备。
最后,如图5中所示,总线508还将电子系统500通过网络接口516耦合到网络(未示出)。以这种方式,计算机可以是计算机网络(诸如局域网(“LAN”)、广域网(“WAN”)或内部网)或网络的网络(诸如因特网)的一部分。可以与本公开相结合地使用电子系统500的任何或所有部件。
许多上述特征和应用被实现为被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令的软件过程。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器的核或其它处理单元)执行时,其促使处理单元执行指令中所指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪速驱动、RAM芯片、硬驱、EPROM等。计算机可读介质不包括无线地或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”意图包括常驻于只读存储器中的固件或存储于磁性存储中的应用,其可以被读取到存储器中以便由处理器处理。并且,在一些实施方式中,本本公开的多个软件方面可以被实现为较大程序的子部分,同时仍是本本公开的不同软件方面。在一些实施方式中,还可以将多个软件方面实现为单独程序。最后,一起实现这里所述的软件方面的单独程序的任何组合在本公开的范围内。在一些实施方式中,软件程序当被安装成在一个或多个电子系统上操作时定义执行并实行软件程序的操作的一个或多个特定机器实施方式。
可以用任何形式的编程语言(包括编译或解释语言或者说明或过程语言)来编写计算机程序(也称为程序、软件、软件应用、脚本或代码),并且可以将其以任何形式部署,包括作为队列程序或作为模块、组件、子例程、对象或适合于在计算环境中使用的其它单元。计算机程序可以但不需要对应于文件系统中的文件。可以将程序存储在保持其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于正在讨论中的程序的单个文件中或者在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。可以将计算机程序部署成在一个计算机上或者在位于一个地点处或跨多个地点分布并被通信网络互连的多个计算机上。
可以用数字电子电路、计算机软件、固件或硬件来实现上述这些功能。可以使用一个或多个计算机程序产品来实现所述技术。可以将可编程处理器和计算机包括在移动设备中或者封装为移动设备。过程和逻辑流程可以由一个或多个可编程处理器和由一个或多个可编程逻辑电路执行。可以将通用和专用计算设备和存储设备通过通信网络互连。
一些实施方式包括电子部件,例如微处理器、在机器可读或计算机可读介质(替换地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储和存储器。此类计算机可读介质的一些示例包括RAM、ROM、只读紧凑式磁盘(CD-ROM)、科技路紧凑式磁盘(CD-R)、可重写紧凑式磁盘(CD-RW)、只读数字式多功能磁盘(例如,DVD-ROM、双层DVD-ROM)、多种可记录/可重叠DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存(例如,SD卡、迷你SD卡、微型SD卡等)、磁性和/或固态硬驱、只读和可记录磁盘、超密度光盘、任何其它光学或磁性介质以及软盘。计算机可读介质可以存储可被至少一个处理单元执行并包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括例如由编译程序产生的机器代码以及包括高级代码的文件,其由计算机、电子部件或微处理器使用解释程序来执行。
虽然以上讨论主要提及执行软件的微处理器或多核处理器,但一些实施方式由一个或多个集成电路执行,例如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施方式中,此类集成电路执行被存储在电路本身上的指令。
如在本说明书和本说明书的任何权利要求中所使用的术语“计算机”、“服务器”、“处理器”以及“存储器”全部指代电子或其它技术设备。这些术语不包括人或人群。出于本说明书的目的,术语显示或正在显示意指在电子设备上显示。如在本申请的本说明书和任何权利要求中所使用的术语“计算机可读介质”完全局限于以可被计算机读取的形式存储数据的有形物理对象。这些术语不包括任何无线信号、有线下载信号以及任何其它短暂信号。
为了提供与用户的交互,在本说明书中描述的主题的实施方式可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户可以用来向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也可以使用其它种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、话音或触觉输入。另外,计算机可以通过向和从用户所使用的设备发送文档和接收文档来与用户相交互;例如,通过响应于从网络浏览器接收到的请求而向用户的客户端设备上的网络浏览器发送网页。
在本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括例如作为数据服务器的后端部件或者包括例如应用服务器之类的中间件部件或者包括前端部件,例如具有用户可以通过其与在本说明书中描述的主题的实施方式相交互的图形用户接口或网络浏览器的客户端计算机或者一个或多个此类后端、中间件或前端部件的任何组合。可以用数字数据通信的任何形式或介质(例如,通信网络)来将系统的组件互连。通信互连网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)以及端对端互连网络(例如,自组式端对端互连网络)。
计算系统可以包括客户端和服务器。客户端和服务器一般地相互远离并通常通过通信网络进行交互。客户端和服务器的关系借助于在各计算机上运行且相互具有客户-服务器关系的计算机程序发生。在一些实施例中,服务器向客户顿设备发射数据(例如,HTML页面)(例如,出于向和从与客户端设备相交互的用户显示数据和接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
应理解的是公开的过程中的步骤的任何特定顺序或分级结构是示例性方法的举例说明。基于设计偏好,应理解的是过程/流程图中的步骤的特定顺序或分级结构可以被重新布置,或者所有所示步骤都被执行。一些步骤可同时地执行。例如,多重任务和并行处理可能是有利的。此外,不应将上述实施例中的各种系统部件的分离理解为在所有实施例中都要求此类分离,并且应理解的是所述程序部件和系统一般地可以在单个软件产品中被集成在一起或者封装到多个软件产品中。
提供先前的描述是为了使得本领域的技术人员能够实施本文所述的各种方面。对这些方面的各种修改对于本领域的技术人员而言将是显而易见的,并且可将本文所述的一般原理应用于其它方面。因此,权利要求并不意图局限于本文所示的各方面,而是根据依照语言权利要求的全范围,其中,以单数方式对元件的提及并被意图意指“一个且仅一个”,除非具体地这样说明,而是“一个或多个”。除非另外具体地说明,术语“一些”指代一个或多个。男性的代词(即,他的)包括女性和中性性别(例如,她的或它的),并且反之亦然。标题和副标题(如果有的话)仅仅是为了方便而使用的且并不限制本本公开。
诸如“方面”之类的短语并不意味着此类方面对于主题技术而言必不可少,或者此类方面适用于主题技术的所有配置。关于一方面的公开可适用于所有配置或者一个或多个配置。诸如方面之类的短语可指代一个或多个方面且反之亦然。诸如“配置”之类的短语并不意味着此类实施例对于主题技术而言必不可少,或者此类实施例适用于主题技术的所有配置。涉及配置的公开可以应用于所有配置或者一个或多个配置,诸如配置之类的短语可以指代一个或多个配置且反之亦然。

Claims (21)

1.一种用于向服务器提供状态信息的系统,所述系统包括:
一个或多个处理器;以及
机器可读介质,所述机器可读介质包括存储在其中的指令,所述指令在由处理器执行时使得所述处理器执行操作,所述操作包括:
访问用于web应用的文档对象模型(DOM),所述DOM对应于表示所述web应用的第一状态的树状结构;
基于所述DOM向服务器提供所述web应用的第一状态的指示;
计算所述web应用的所述第一状态与所述web应用的第二状态之间的差异,所述web应用的所述第二状态不同于所述web应用的所述第一状态;
当计算出的差异满足阈值并且从向所述服务器提供所述web应用的所述第一状态的指示起已经流逝了至少阈值时间量时,确定所述web应用的所述第二状态将被提供给所述服务器;
响应于所述确定向所述服务器提供与所述DOM的更新版本相对应的所述web应用的所述第二状态的指示;
向所述服务器发送检索在向所述服务器提供所述web应用的所述第二状态之前已被提供给所述服务器的所述web应用的所述第一状态的请求;
响应于所述发送从所述服务器接收与所述web应用的所述第一状态相对应的DOM信息;以及
至少部分地基于与所述web应用的所述第一状态相对应的接收到的DOM信息来恢复所述web应用的所述第一状态。
2.根据权利要求1所述的系统,所述操作进一步包括:
确定所述系统的状态信息,所述状态信息包括下述中的至少一个:窗口位置数据、滚动位置数据、文件夹创建数据、应用位置数据、打开窗口信息、最小化窗口信息以及显示设置信息;以及
向所述服务器提供所确定的状态信息的指示,以用于从所述服务器的后续检索。
3.根据权利要求1所述的系统,其中,所述DOM信息包括使用所述web应用的所述第二状态的指示在所述服务器处生成的所述DOM的更新版本的整体。
4.根据权利要求1所述的系统,其中,所述DOM对应于所述web应用的当前javascript状态。
5.根据权利要求1所述的系统,其中,所述DOM从所述系统的RAM被访问。
6.根据权利要求1所述的系统,其中,提供给所述服务器的所述第一状态的指示对应于所述DOM的整体。
7.根据权利要求1所述的系统,其中,计算在所述web应用的所述第一状态与所述web应用的所述第二状态之间的差异包括:
计算对应于表示所述web应用的所述第一状态的所述树状结构的DOM与对应于表示所述web应用的所述第二状态的另一个树状结构的另一个DOM之间的差异。
8.根据权利要求1所述的系统,其中,提供所述第二状态的指示包括向所述服务器提供计算出的差异。
9.根据权利要求1所述的系统,其中,确定所述web应用的所述第二状态要被提供给所述服务器包括:
确定用于所述系统的网络资源可用性水平;以及
当计算出的差异满足阈值并且从向所述服务器提供所述web应用的所述第一状态的指示起已经流逝了至少阈值时间量时,确定所述web应用的所述第二状态将被提供给所述服务器并且所确定的网络资源可用性水平低于阈值可用性水平。
10.根据权利要求1所述的系统,其中,所述服务器是用于同步用于所述系统的所述web应用的会话的同步服务器。
11.根据权利要求1所述的系统,其中,所述web应用是从web服务器访问的网页。
12.一种包括存储在其中的指令的机器可读介质,所述指令在由系统执行时使得所述系统执行操作,所述操作包括:
访问用于web应用的文档对象模型(DOM),所述DOM对应于表示所述web应用的第一状态的树状结构;
基于所述DOM向服务器提供所述web应用的所述第一状态的指示;
计算所述web应用的所述第一状态与所述web应用的第二状态之间的差异,所述web应用的所述第二状态不同于所述web应用的所述第一状态;
当计算出的差异满足阈值并且从向所述服务器提供所述web应用的所述第一状态的指示起已经流逝了至少阈值时间量时,确定所述web应用的所述第二状态将被提供给所述服务器;
响应于所述确定向所述服务器提供与所述DOM的更新版本相对应的所述web应用的所述第二状态的指示;
确定所述系统的状态信息,所述状态信息包括下述中的至少一个:窗口位置数据、滚动位置数据、文件夹创建数据、应用位置数据、打开窗口信息、最小化窗口信息以及显示设置信息;以及
向所述服务器提供所确定的状态信息的指示,以用于从所述服务器的后续检索。
13.根据权利要求12所述的机器可读介质,其中,所述指令在由所述系统执行时使得所述系统执行进一步的操作,包括:
向所述服务器发送检索所述web应用的所述第一状态或者所述第二状态的请求;
基于所述请求从所述服务器接收所述web应用的所述第一状态或者所述第二状态;以及
恢复接收到的所述web应用的所述第一状态或者所述第二状态。
14.根据权利要求12所述的机器可读介质,其中,计算在所述web应用的所述第一状态与所述web应用的所述第二状态之间的差异包括:
计算对应于表示所述web应用的所述第一状态的所述树状结构的DOM与对应于表示所述web应用的所述第二状态的DOM的更新版本之间的差异。
15.一种用于向服务器提供会话状态的系统,所述系统包括:
一个或多个处理器;以及
机器可读介质,所述机器可读介质包括存储在其中的指令,所述指令在由所述处理器执行时使得所述处理器执行操作,所述操作包括:
确定关于在所述系统上运行的一个或多个应用已经发生预定事件,所述预定事件指示用于所述一个或多个应用的第一会话状态将被提供给所述服务器;
向所述服务器并且响应于确定所述预定事件已经发生来发送用于所述一个或多个应用的所述第一会话状态;
计算所述一个或多个应用的所述第一会话状态与所述一个或多个应用的第二会话状态之间的差异,所述第二会话状态不同于所述第一会话状态;
当计算出的差异满足阈值并且从向所述服务器提供所述第一会话状态起已经流逝了至少阈值时间量时,确定所述一个或多个应用的所述第二会话状态将被提供给所述服务器;
向所述服务器并且响应于确定所述一个或多个应用的所述第二会话状态将被提供给所述服务器来发送所述一个或多个应用的所述第二会话状态;以及
向所述服务器提供用于所述第一会话状态和所述第二会话状态中的每一个的场境信息,所述场境信息用于向用户提供用于将所述第一会话状态与所述第二会话状态进行区分的场境。
16.根据权利要求15所述的系统,其中,所述场境信息包括用于所述第一会话状态和所述第二会话状态中的每一个的截屏。
17.根据权利要求15所述的系统,其中,所述场境信息包括用于所述第一会话状态和所述第二会话状态中的每一个的会话结束时间。
18.根据权利要求15所述的系统,其中,所述场境信息包括针对所述第一会话状态和所述第二会话状态中的每一个被访问的web资源的指示。
19.根据权利要求15所述的系统,其中,确定预定事件已经发生包括下述中的至少一个:检测用户已经从所述系统登出或者已经从所述一个或多个应用中的至少一个登出、
登录检测为关于所述系统或所述一个或多个应用中的至少一个的不同用户、检测关于所述系统或所述一个或多个应用中的至少一个的预定阈值时间中的不活动、检测关于所述系统或所述一个或多个应用中的至少一个的新的活动类型、或者检测对不同会话的切换。
20.根据权利要求15所述的系统,所述操作进一步包括:
向所述服务器发送用于检索在先会话的请求;
从所述服务器并且响应于所述发送来接收用于所述第一会话状态和所述第二会话状态的所述场境信息;
响应于所接收的场境信息来接收对所述第一会话状态或所述第二会话状态的用户选择;
基于所接收的用户选择来从所述服务器接收所述第一会话状态或所述第二会话状态;以及
恢复接收到的所述第一会话状态或所述第二会话状态。
21.一种包括存储在其中的指令的机器可读介质,所述指令在由系统执行时使得所述系统执行操作,所述操作包括:
确定关于在所述系统上运行的一个或多个应用已经发生第一预定事件,所述第一预定事件指示用于所述一个或多个应用的第一会话状态将被提供给服务器;
向所述服务器并且响应于确定所述第一预定事件已经发生来发送用于所述一个或多个应用的所述第一会话状态;
计算所述一个或多个应用的所述第一会话状态与所述一个或多个应用的第二会话状态之间的差异,所述第二会话状态不同于所述第一会话状态;
当计算出的差异满足阈值并且从向所述服务器提供所述第一会话状态起已经流逝了至少阈值时间量时,确定所述一个或多个应用的所述第二会话状态将被提供给所述服务器;
响应于确定所述一个或多个应用的所述第二会话状态将被提供给所述服务器,向所述服务器发送所述一个或多个应用的所述第二会话状态;
向所述服务器提供用于所述第一会话状态和所述第二会话状态中的每一个的场境信息,所述场境信息用于向用户提供用于将所述第一会话状态与所述第二会话状态进行区分的场境;
向所述服务器发送用于检索在先会话的请求;
响应于所述发送从所述服务器接收用于所述第一会话状态和所述第二会话状态的场境信息;
响应于所接收的场境信息,接收对所述第一会话状态或所述第二会话状态的用户选择;
基于所接收的用户选择来从所述服务器接收所述第一会话状态或所述第二会话状态;以及
恢复接收到的所述第一会话状态或所述第二会话状态。
CN201580035327.5A 2014-08-27 2015-08-19 恢复会话状态 Active CN106663015B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/470,899 US9641590B2 (en) 2014-08-27 2014-08-27 Resuming session states
US14/470,899 2014-08-27
PCT/US2015/045926 WO2016032827A1 (en) 2014-08-27 2015-08-19 Resuming session states

Publications (2)

Publication Number Publication Date
CN106663015A CN106663015A (zh) 2017-05-10
CN106663015B true CN106663015B (zh) 2020-02-28

Family

ID=55400354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580035327.5A Active CN106663015B (zh) 2014-08-27 2015-08-19 恢复会话状态

Country Status (6)

Country Link
US (1) US9641590B2 (zh)
EP (1) EP3186719B1 (zh)
CN (1) CN106663015B (zh)
DE (1) DE112015003888T5 (zh)
GB (1) GB2542964B (zh)
WO (1) WO2016032827A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10250596B2 (en) 2016-06-29 2019-04-02 International Business Machines Corporation Monitoring encrypted communication sessions
FI127994B (en) * 2017-02-15 2019-07-15 Crf Box Oy Method and equipment for reliably commissioning a clinical trial user device
US10547641B2 (en) 2017-06-01 2020-01-28 International Business Machines Corporation Transparently converting a TLS session connection to facilitate session resumption
US10542041B2 (en) 2017-06-01 2020-01-21 International Business Machines Corporation Cacheless session ticket support in TLS inspection
US11140242B2 (en) 2017-12-15 2021-10-05 New Relic, Inc. System for processing coherent data
CN110445826B (zh) * 2018-05-04 2021-11-30 阿里巴巴集团控股有限公司 一种会话信息获取方法、装置及服务器
US10726091B2 (en) 2018-05-04 2020-07-28 Siteimprove A/S Dynamic content modifications
US11520573B2 (en) * 2020-07-08 2022-12-06 Vmware, Inc. Guided application rollback and migration
CN112685672B (zh) * 2020-12-24 2024-05-17 京东科技控股股份有限公司 页面会话行为轨迹的回溯方法、装置及电子设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066037A1 (en) 2002-04-10 2005-03-24 Yu Song Browser session mobility system for multi-platform applications
US20030233361A1 (en) 2002-06-13 2003-12-18 Cady C. Conrad Resumption of user authentication and restoration of interrupted virtual sessions in a stateless network
US7386855B2 (en) 2002-08-12 2008-06-10 Ntt Docomo, Inc. Application mobility service
CN100463469C (zh) 2002-10-25 2009-02-18 国际商业机器公司 在多通道上共享应用程序会话信息的方法、装置和系统
WO2004063900A2 (en) * 2003-01-10 2004-07-29 Nexaweb Technologies, Inc. System and method for network-based computing
US7761878B2 (en) * 2003-11-19 2010-07-20 Nexaweb Technologies, Inc System and method for stateful web-based computing
US20060059556A1 (en) * 2004-09-10 2006-03-16 Royer Barry L System for managing inactivity in concurrently operating executable applications
US20060075088A1 (en) * 2004-09-24 2006-04-06 Ming Guo Method and System for Building a Client-Side Stateful Web Application
US7953861B2 (en) 2006-08-10 2011-05-31 International Business Machines Corporation Managing session state for web applications
US8082227B2 (en) 2006-10-10 2011-12-20 Emc Corporation Session sensitive data backups and restores
US7962547B2 (en) 2009-01-08 2011-06-14 International Business Machines Corporation Method for server-side logging of client browser state through markup language
US9171097B2 (en) 2009-03-31 2015-10-27 Qualcomm Incorporated Memoizing web-browsing computation with DOM-based isomorphism
EP2558958B1 (en) * 2010-04-12 2016-06-08 Google, Inc. Row heights in electronic documents
US8825874B2 (en) * 2010-06-14 2014-09-02 Alcatel Lucent Extending revalidation-time of diameter sessions
US8838679B2 (en) 2010-12-22 2014-09-16 Microsoft Corporation Providing state service for online application users
US20120210243A1 (en) * 2011-02-11 2012-08-16 Gavin Andrew Ross Uhma Web co-navigation
US20130041790A1 (en) 2011-08-12 2013-02-14 Sivakumar Murugesan Method and system for transferring an application state

Also Published As

Publication number Publication date
WO2016032827A1 (en) 2016-03-03
CN106663015A (zh) 2017-05-10
GB2542964B (en) 2021-07-14
GB2542964A (en) 2017-04-05
DE112015003888T5 (de) 2017-05-11
US9641590B2 (en) 2017-05-02
EP3186719B1 (en) 2021-08-04
EP3186719A1 (en) 2017-07-05
EP3186719A4 (en) 2018-08-15
GB201621536D0 (en) 2017-02-01
WO2016032827A4 (en) 2016-04-21
US20160063131A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
CN106663015B (zh) 恢复会话状态
US8413046B1 (en) System and method for optimizing rich web applications
US20140189546A1 (en) Web Application Pinning Including Task Bar Pinning
US9514199B1 (en) Sorting and pagination of content item streams
US20150178064A1 (en) Providing a software update to computing devices on the same network
KR101998313B1 (ko) 디바이스들 간의 애플리케이션 상태 전달
US20110307810A1 (en) List integration
US20110307738A1 (en) Web Application Transitioning and Transient Web Applications
US20110307811A1 (en) Web application home button
EP3030989B1 (en) Providing information in association with a search field
WO2014026066A1 (en) Facetted browsing
US9727201B2 (en) Contextual help
KR20130097739A (ko) 사용자 언어 의도를 결정하기 위한 시스템 및 방법
US9270760B2 (en) Cross-platform child mode for applications
CN107835981B (zh) 在设备之间传送通知
US20160078005A1 (en) Adaptive table rendering
CN112424737A (zh) 调节用于触摸屏和鼠标/键盘环境的用户界面
US10108732B2 (en) Social wallet
US10282395B2 (en) Handling timer-based resizing events based on activity detection
JP6388962B2 (ja) 最適化されたリソーススケジューリングによるページダウンロード時間の認知
US20140337404A1 (en) System and method for providing access points
US10095773B1 (en) Processing a social endorsement for an item
US9830401B2 (en) Automatically selecting optimization filters for optimizing webpages
US9282071B1 (en) Location based message discovery
US20170103049A1 (en) System and method for loading a web page

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant