CN105453520B - 用于管理web服务的状态信息的技术的方法和装置 - Google Patents
用于管理web服务的状态信息的技术的方法和装置 Download PDFInfo
- Publication number
- CN105453520B CN105453520B CN201480040525.6A CN201480040525A CN105453520B CN 105453520 B CN105453520 B CN 105453520B CN 201480040525 A CN201480040525 A CN 201480040525A CN 105453520 B CN105453520 B CN 105453520B
- Authority
- CN
- China
- Prior art keywords
- state
- internet resources
- application program
- status information
- communication session
- 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
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- 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/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
描述了用于管理web服务(128)的状态信息(140)的技术。一种装置(100)可包括处理器电路,以及用于由处理器电路执行以提供用于修改由网络服务(128)提供的网络资源(130)的状态的一组操作的应用程序(120)。该应用程序(120)可包括状态管理器组件(122‑2),该状态管理器组件被安排用于在第一通信会话期间随网络服务(128)提供的网络资源(130)发生状态改变记录网络资源(130)的状态信息(140),并在状态数据库(124)中存储网络资源(130)的资源标识符和相关联的状态信息(140),状态信息(140)用于在第二通信会话期间自动重现网络资源(130)的状态。对其他实施例也予以描述并要求保护。
Description
背景
经济的计算能力、接近无限的存储容量、以及高带宽通信信道的发展已经刺激了网络服务(有时称为“基于云的”服务)的迁移。web服务是基于云的存储的示例。web服务是可以通过诸如万维网(WWW)的网络在网络地址处访问的软件功能。服务请求者可通过经网络向web服务提供方发送对web资源的请求来访问web服务。在许多情况中,使用无状态通信协议(诸如代表性状态转移REST协议等)将web服务设计成用于“无状态”操作。无状态设计的优点是其简化了服务器设计,因为不需要在服务器处管理和存储状态信息。无状态设计的缺点是一旦给定通信会话终止则对web服务web资源的改变可能丢失。
发明内容
下面提供了简明的概述,以便提供对本文所描述的一些新颖实施例的基本理解。本概述不是广泛的概览,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更详细说明的序言。
各个实施例一般涉及管理由网络提供的服务的状态信息的技术。某些实施例特别涉及通过在客户端设备处存储由web服务提供的web资源的状态信息来管理web服务的状态信息的技术。
在一个实施例中,例如,一种装置可包括处理器电路,以及用于由处理器电路执行以提供用于修改web资源的状态的一组操作的应用程序。该应用程序可包括状态管理器组件,该状态管理器组件被安排用于,在第一通信会话期间随着对由诸如web服务的网络服务提供的web资源的状态改变的发生,监视并收集web资源的状态信息。状态管理器组件可将web资源的web资源标识符和相关联的状态信息存储在状态数据库中供将来使用。
该状态管理器组件可随后在第二通信会话期间检测对web资源的访问,并检索所访问的web资源的web资源标识符。该状态管理器组件可搜索状态数据库以寻找与所访问的web资源的web资源标识符相匹配的web资源,并从状态数据库检索先前存储的与所访问的web资源相关联的状态信息。应用程序可将状态信息发送到网络服务,其可根据检索到的状态信息来修改web资源,并以与在第一通信会话终止时基本上相同的状态返回经修改的web资源。对其他实施例也予以描述并要求保护。
为了实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其他优点和新颖特征将变得显而易见。
附图简述
图1示出管理状态信息的装置的实施例。
图2示出了装置的集中式系统的实施例。
图3示出了装置的分布式系统的实施例。
图4示出了装置的第一逻辑流程的一实施例。
图5示出了装置的第二逻辑流程的一实施例。
图6示出了装置的第三逻辑流程的一实施例。
图7示出了第一图形用户界面(GUI)视图的实施例。
图8示出了第二GUI视图的实施例。
图9示出了第三GUI视图的实施例。
图10示出了装置的网络的实施例。
图11示出计算体系结构的一实施例。
图12示出通信体系结构的一实施例。
详细描述
各个实施例一般涉及管理由网络提供的服务的状态信息的技术。这例如对于使用无状态设计的基于网络的服务(诸如web服务)特别有用。尽管各实施例参考web服务和web资源以示例地方式描述,可以理解各实施例可用任何类型的网络服务或网络资源来实现。各实施例不限于该上下文。
在通过web控件(例如,web服务)与内容进行交互时,本机应用通常不知晓内容的当前状态。作为结果,本机应用不能示出在该应用内但在web控件外的相关内容或指示符。各实施例允许应用对在web控件中呈现的内容作出反应。随后,当应用对web控件呈现的内容作出反应时,它能够捕捉那些动作、应用的状态和web服务的状态。所捕捉的状态允许应用返回先前状态(故障恢复、或web服务的状态,例如排序和过滤状态)而不涉及任何服务器侧持久保存。
除了进行交互之外,用户现在想要共享、发布、或返回他们正在查看的内容的状态。以前,共享的方法通过进行截屏并简单地共享图像来完成。各实施例允许用户与其他用户共享他们的内容的状态并允许其它本机应用使接收方用户沉浸在相同体验中。
例如,在示例操作中,用户可查看客户端软件(诸如web控件)内的内容。用户可与web服务进行交互,其中web控件嵌入本机应用内。用户可利用任何人类界面设备通过某个模式的交互来改变web控件视图的状态。替换地,可从应用、机器到机器交互或其它自动化源接收各命令。在发出成功的调用且接收响应之后,应用捕捉并本地地存储此交互的状态。如果需要,应用改变本机地呈现的UI的状态。当用户想要共享应用和内容的确切状态时,他们可以通过在应用内共享功能性来这样做。接收共享内容的用户能够打开该应用并进入共享状态,归因于作为共享动作的一部分被传输的状态信息。如果用户要导航离开web控件并返回,该应用可进入最后所见状态(例如,本机和web控件内容)。当应用崩溃时,从容恢复允许该应用返回到最后所见的状态(例如,本机和web控件内容)。在全部这些情况中,没有状态数据需要由web服务来保存,即使web内容正被呈现。应用本地地或在远程存储设备上存储这个状态。
更具体地,各实施例可在客户端设备处存储web服务提供的web资源的状态信息。更具体地,在客户端设备上执行的应用程序可存储并管理该状态信息。在一个实施例中,应用程序可包括生产力应用程序。在另一个实施例中,应用程序可包括任何非基于浏览器的应用程序。
所存储的状态信息可代表在第一通信会话的终止处的web资源的状态。所存储的状态信息可被用于在第二通信会话期间将该web资源返回到同一或类似状态。例如,所存储的状态信息可被传达到通过无状态协议(诸如网际协议IP、超文本传输协议HTTP、REST协议等)来管理web资源的web服务。在另一示例中,所存储的状态信息可使用在不同协议层中实现的有状态和无状态协议的组合来被传达到web服务。有状态协议的示例可包括传输控制协议(TCP)和边界网关BC协议(BGP)等等。
在各种各样的实施例中,所存储的状态信息可被共享以由用户、客户端设备、或应用程序的任何组合来使用。在一个实施例中,例如,所存储的状态信息可由在单个客户端设备上执行的单个应用程序来使用。在一个实施例中,例如,所存储的状态信息可由单个用户的不同客户端设备来使用。在一个实施例中,例如,所存储的状态信息可由在单个客户端设备上执行的不同应用程序来使用。在一个实施例中,例如,所存储的状态信息可由在不同客户端设备上执行的不同版本的同一应用程序来使用。许多共享变换是可能的,且各实施例不限于该上下文。
对状态信息的选择性捕捉可提供许多优点和使用情形。例如,通过捕捉应用和web服务交互的状态,本机应用能够基于通过web控件与web服务交互所发出的命令来更新并示出相关用户界面(UI)视图。本机应用还能存储此状态信息,这使得能够共享情形并从应用崩溃中恢复。各实施例还允许用户体验在本机应用和web服务器之间的集成。各实施例还允许本机应用知晓web服务以及在web控件中被查看的内容的状态。各实施例允许应用和web服务的状态信息的本地地捕捉和存储。各实施例基于web控件中所示的内容来示出应用内的相关内容。各实施例允许本机应用将内容呈现为先前状态。各实施例允许用户与其他用户或设备共享沉浸式内容体验。各实施例允许本机应用从容地从故障或崩溃中恢复。还存在其它优点和使用情形。
结果,各实施例可提高操作者、设备或网络的可承受性、可伸缩性、模块性、可扩展性或互操作性。其它优点和使用情形也适用。
大致参考此处所使用的概念和命名,之后的详细描述可以按照在计算机或计算机的网络上执行的程序过程来呈现。这些过程描述和表示被本领域的技术人员用来将其工作的实质最有效地传达给本领域的其他技术人员。
过程在此处通常被认为是导致所需结果的自相一致的操作序列。这些操作是需要对物理量的物理操纵的那些操作。尽管并非必需,但这些物理量通常采用能够被存储、传输、组合、比较、和/或以其它方式操纵的电、磁或光信号的形式。原则上出于常见用法的原因将这些信号称作位、值、元素、符号、字符、项、数字等被证明有时是方便的。然而,应当注意,所有这些和类似术语都应与适当的物理量相关联并且仅仅是应用于这些物理量的方便的标签。
此外,所执行的操纵经常被称为诸如添加或比较等术语,这些术语通畅与人类操作员所执行的心理操作相关联。在大多数情况下,在此处描述的形成一个或多个实施例的一部分的操作中的任一个中,人类操作员的这一能力并非必需或合乎需要。相反,操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机或类似设备。
各种实施例还涉及用于执行这些操作的装置或系统。该装置可以出于需要的目的来专门构造,或者它可包括如由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此处所呈现的过程并非固有地相关于特定计算机或其它装置。还可以将各种通用机器与根据此处的教示来编写的程序一起使用,或可以证明构造更专用的装置来实现所需的方法步骤是便利的。用于各种这些机器的所需的结构将从所给予的描述中出现。
现在将参考附图,全部附图中相同的附图标记用于指代相同的元素。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施例。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明涵盖与所要求保护的主题相一致的所有修改、等效方案和替换方案。
图1示出了装置100的框图。在一个实施例中,装置100可包括计算机实现的装置100,该计算机实现的装置具有包括一个或多个组件122-a的软件应用程序120。尽管图1中示出的装置100具有按照某种拓扑结构的有限数量的元素,但可以理解,装置100可以视给定实现的需要而包括按照替代拓扑结构的更多或更少元素。
值得指出的是,本文所使用的“a”、“b”、“c”以及类似的指示符是表示任何正整数的变量。因此,例如,如果一实现将a值设为a=5,则组件122-a的完整集合可包括组件122-1、122-2、122-3、122-4以及122-5。各实施例不限于该上下文。
如以下更详细描述的,装置100一般可包括应用程序120,该应用程序被安排用于提供一组操作以修改由网络服务128提供的网络资源130的状态。除了其它元素以外,该应用程序120可包括状态管理器组件122-2,该状态管理器组件被安排用于,在第一通信会话期间随着对由网络服务128提供的网络资源130发生状态改变,记录网络资源130的状态信息140。该状态管理器组件122-2可将网络资源130的资源标识符和相关联的状态信息140存储在状态数据库124中。状态信息140可被应用程序120或另一应用程序使用,以在第二通信会话期间自动再现网络资源130的状态。对其他实施例也予以描述并要求保护。
装置100可包括应用程序120。应用程序120可一般地被安排来访问网络资源130。网络资源130可包括电子数据的任何可寻址集合。例如,在一实施例中,网络资源130可包括web资源。web资源通常是在web体系结构中的原始的以定义其基础元素,并可包括统一web资源定位符(URL)、统一web资源标识符(URI)、URL或URI的指示物、国际化web资源标识符(IRI)等的任何目标。在一个实施例中,网络资源130可包括抽象资源和使用特定语言(诸如资源描述框架RDF语言等)描述的语义属性。
在一个实施例中,网络资源130可包括由网络服务器主存的应用程序的内容。例如,网络资源130可包括应用程序的电子文件。电子文件是以持久且有组织的方式存储信息集合的数据结构。不同应用通常利用不同文件格式。例如,文字处理应用可以以文字处理格式来存储文档,电子表格应用可以以电子表格格式来存储文档等等。在某些实例中,电子文件的文件格式和内容保持静态,除非由用户手动修改。在其它实例中,电子文件的文件格式和内容在存储在服务器上时可被自动刷新或修改,完全无需任何用户干预。
在一个实施例中,网络资源130可由实现装置100的同一电子设备来提供。在一个实施例中,网络资源130可由与实现装置100(例如客户端)不同的电子设备(例如服务器)来提供。在这样的实施例中,网络资源130可例如被诸如web服务的网络服务128提供。一般而言,网络服务128可包括通过网络连接提供对网络资源130的访问的服务。网络服务128一般地,以及特定地web服务,可在下面更详细地描述。
应用程序120可包括能够创建、修改、管理或以其他方式使用网络资源130的任何软件应用。在一个实施例中,应用程序120可包括或被实现为生产力应用。生产力应用可包括被设计成执行用于知识工作者的特定的功能集的软件应用程序。生产力应用通常可用于创建、修改、发送、接收或以其他方式管理一个或多个文档的内容。生产力应用的示例可包括但不限于:为特定操作系统设计的互相关的客户端应用、服务器应用和/或web服务的生产力套件,诸如用于由美国华盛顿州雷蒙德市的微软公司制作的MICROSOFT的OFFICE生产力套件。生产力应用的示例可包括但不限于:MICROSOFTWORD、MICROSOFTMICROSOFTMICROSOFTMICROSOFTMICROSOFTMICROSOFTMICROSOFT PROJECT、MICROSOFT PUBLISHER、MICROSOFTWORKSPACE、MICROSOFTMICROSOFT OFFICE INTERCONNECT、MICROSOFT OFFICE PICTUREMANAGER、MICROSOFT SHAREPOINT DESIGNER、以及MICROSOFT LYNC。服务器应用的示例可包括但不限于:MICROSOFT SHAREPOINT SERVER、MICROSOFT LYNC SERVER、MICROSOFT OFFICEFORMS SERVER、MICROSOFT OFFICESERVER、MICROSOFT OFFICE PROJECTSERVER、MICROSOFT OFFICE PROJECT PORTFOLIO SERVER、以及MICROSOFT OFFICESERVER。也可以理解,各实施例可实现除根据所描述的实施例的生产力应用之外的其他类型的应用。各实施例不限于这些示例。
应用程序120可以能够与诸如服务器的网络设备进行通信,该服务器提供诸如web服务的网络服务。web服务的示例可包括但不限于:MICROSOFT WINDOWSMICROSOFTOFFICE WEB APPLICATIONS、MICROSOFT OFFICE LIVE,MICROSOFT LIVE MEETING、MICROSOFT OFFICE PRODUCT WEB SITE、MICROSOFT UPDATE SERVER、MICROSOFT OFFICE365以及MICROSOFT OFFICE 365 POWER BI等等。
应用程序120和web服务可以按任何数量的不同方式来实现。作为示例,假设应用程序120包括报告生成器而网络服务128包括提供电子表格文件和操作的MICROSOFT EXCELweb服务。报告生成器可访问MICROSOFT EXCEL web服务以生成动态图表或表格以嵌入到报告中。在每次由用户通过应用程序120打开该报告时,作出调用以从MICROSOFT EXCEL web服务检索该图表或表格。这仅仅是一个示例,可应用其它使用情形。
应用程序120可包括网络访问组件122-1。该网络访问组件122-1可被一般地安排以提供对实现为网络体系结构(例如,web体系结构)的一部分的网络资源130的访问和控制。网络访问组件122-1可与网络服务128进行通信、通过网络服务128访问网络资源130、并发送一个或多个控制指示110以向网络服务128改变网络资源130的状态。
网络访问组件122-1可允许应用程序120访问应用程序120的上下文内的各种web服务。网络访问组件122-1可实现适于接入如网络设备(诸如网络服务器或web服务器)实现的web服务的接口。网络访问组件122-1可实现适于与web服务对接并与web服务互操作的一组web应用程序接口(API)。在一个实施例中,例如,网络访问组件122-1可实现与用于基于REST的通信的一组REST API兼容的、能够通过简单对象访问协议(SOAP)传递可扩展标记语言(XML)消息的、解释基于XML的接口描述语言(诸如web服务描述语言WSDL)等的接口。这些仅仅是一些示例,且任何合适的网络接口可被实现。
响应于一个或多个控制指示110-b,网络访问组件122-1可被使用以访问并修改网络资源130。控制指示110可表示通过输入设备输入到执行装置100的电子设备的用户命令。网络访问组件122-1可接收控制指示110,并响应于该控制指示110通过从web服务发送对网络资源130的请求来发起通信会话。请求可使用任何数量的通信协议来发送,包括无状态协议、有状态协议、或两者某个组合。在一个实施例中,例如,网络访问组件122-1可使用REST和SOAP协议的组合来发送请求。
控制指示110可表示以某种方式修改网络资源130以改变其当前状态的指令。例如,根据先前的示例,假设网络资源130是具有已定义配置的一组列和行(可被称为第一状态)的电子表格文档。控制指示110可包括以不同次序排序电子表格文档的行(可被称为第二状态)的命令。网络访问组件122-1可向web服务发送排序命令。web服务可根据排序命令排序该电子表格文档,并以经排序的次序返回电子表格文档。在另一个示例中,控制指示110可包括从行和/或列中过滤特定信息的命令。控制指示110可表示由应用程序120和/或管理网络资源130的web服务允许的任何命令。
在无状态体系结构中,一旦通信会话和/或应用程序120终止,则响应于控制指示110对网络资源130作出的任何修改可能丢失。在先前的示例中,由于状态信息没有由web服务存储,对电子表格文档作出的任何修改(例如第一状态到第二状态)将被丢失。
应用程序120可包括状态管理器组件122-2。状态管理器组件122-2可被一般地安排以监视并捕捉网络资源130的状态信息140。这可保留对网络资源130作出的任何修改,而不向web服务和底层服务器平台增加存储和管理开销。可用适合被应用程序120和/或web服务检索的已定义的数据方案来将状态信息140存储在状态数据库124中。状态信息140可包括用于如下信息的信息字段:web服务标识符、web服务地址(例如URL)和其它定址信息、服务器标识符、web资源标识符、控制指示、配置信息、简档信息、用户标识符、应用标识符、以及适合再现网络资源130的给定状态的任何其它信息。状态数据库124可被存储在执行装置100的本地设备中、在与执行装置100的本地设备通信的远程设备中、在本地和远程设备两者中、在多个本地设备中、或在多个远程设备中。当在本地和/或远程设备之间共享时,同步技术可被用于保持状态信息140在各设备之间同步。远程设备的示例可包括网络存储服务器,及其它类型的设备。
状态管理器组件122-2可展现一个或多个用户界面(UI)元素,以给予用户记录网络资源130的状态信息140的选项。在激活时,状态管理器组件122-2可监视通信流,以寻找诸如控制指示110、对web服务的请求、来自web服务以及网络资源130的响应的信息。状态管理器组件122-2可接着根据用于存储状态信息140的给定数据方案来捕捉并格式化信息的可选择部分。例如,状态管理器组件122-2可仅监视控制指示110并利用该控制指示来形成状态信息140。在另一示例中,在请求被拒绝或失败的情况中,状态管理器组件122-2可等待直到web服务对请求作出响应。
在某些情况中,状态管理器组件122-2还可监视应用程序120的状态,并将应用程序120的状态信息用作用于重现由应用程序120呈现的网络资源130的状态的上下文。
状态管理器组件122-2可在连续地、周期性地、非周期性地、或基于命令的基础上捕捉状态信息140。捕捉间隔可以是如给定用户、应用程序120、web服务、网络资源130、通信会话等期望地可配置参数。
一旦给定网络资源130的状态信息140被存储在状态数据库124中,状态管理器组件122-2就可使用该状态信息140以在未来的通信会话和/或应用程序120的实例化期间重现网络资源130的给定状态。在一个实施例中,例如,状态管理器组件122-2可通过重新发送在先前通信会话和/或应用程序120的实例化期间用于创建网络资源130的状态的相同序列的控制指示110来重现网络资源130的状态。用于以无状态协议传达状态信息的其他技术也可以被使用。各实施例不限于该上下文。
应用程序120可包括状态共享组件122-3。状态共享组件122-3可被一般地安排来与其它应用程序、设备、系统、和/或用户共享状态信息140。这可允许其它应用程序、设备、系统和/或用户重现网络资源130的给定状态。
图2示出了集中式系统200的框图。集中式系统200可在单个计算实体(诸如完全在单个设备220内)中实现装置100的结构和/或操作的一些或全部。
设备220可包括能够为装置100接收、处理和发送信息的任何电子设备。电子设备的示例可包括但不限于:超移动设备、移动设备、个人数字助理(PDA)、移动计算设备、智能电话、电话、数字电话、蜂窝电话、电子书阅读器、手机、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、游戏设备、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。各实施例不限于该上下文。
设备220可使用处理组件230执行装置100的处理操作或逻辑。处理组件230可包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括:设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定一实施例是否使用硬件元件和/或软件元件来实现可根据如给定实现所需的任何数量的因素而变化,这些因素诸如所需计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器web资源、数据总线速度以及其他设计或性能约束。
设备220可使用通信组件240来执行装置100的通信操作或逻辑。通信组件240可以实现任何公知的通信技术和协议,如适用于与分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)一起使用的技术。通信组件240可以包括各种类型的标准通信元件,如一个或多个通信接口、网络接口、网络接口卡(NIC)、无线电、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等。作为示例而非限制,通信介质212、242包括有线通信介质和无线通信介质。有线通信介质的示例可以包括导线、电缆、金属线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤、所传播的信号等。无线通信介质的示例可以包括声学、射频(RF)频谱、红外和其他无线介质。
设备220可经由通信组件240使用通信信号214、244分别通过通信介质212、242与其他设备210、250通信。按照给定实现的需要,设备210、250可以内置于或外置于设备220。
如图2所示,设备220可实现整个装置100以访问另一设备实现的web服务(诸如设备250实现的web服务260)。装置100还可与实现装置100的部分或全部的另一设备(诸如设备210)共享状态信息140。状态信息140可以任何数量的方式来被共享,诸如通过消息收发接口(例如,电子邮件、短消息服务SMS、多媒体消息服务MMS、即时消息收发IM等)、共享网络存储空间、对等通信,以及其它通信形态。设备210可接着使用装置100来以类似于设备220的方式与web服务260进行通信。设备220还可实现与计算和/或通信设备(诸如参考图7描绘的)共同的其它平台组件。
图3示出了分布式系统300的框图。分布式系统300可使装置100的结构和/或操作的各部分跨多个计算实体分布。分布式系统300的示例可包括但不限于,客户端-服务器架构、3层架构、N层架构、紧耦合或群集的架构、对等架构、主-从架构、共享数据库架构、以及其他类型的分布式系统。各实施例不限于该上下文。
分布式系统300可包括客户端设备310和服务器设备350。一般而言,客户端设备310和服务器设备350可以与参考图2描述的客户端设备220相同或类似。例如,客户端系统310和服务器系统350可各自包括分别与参考图2描述的处理组件230和通信组件240相同或类似的处理组件330和通信组件340。在另一示例中,设备310、350可经由通信组件340使用通信信号314通过通信介质312通信。
客户端设备310可包括或采用一个或多个客户端程序,所述客户端程序操作以执行根据所描述的各实施例的各方法。例如,在一个实施例中,客户端设备310例如可实现诸如生产力程序120的装置100的一部分。
服务器设备350可包括或采用一个或多个服务器程序,所述服务器程序操作以执行根据所描述的各实施例的各方法。例如,在一个实施例中,服务器设备350例如可实现诸如状态数据库124的装置100的一部分。分布式模型可适于在多个设备或用户之间共享状态信息140。
此处所包括的是一组表示用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流程图或流程图表形式示出的一个或多个方法被示出并且描述为一系列动作,但是可以理解,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。
图4示出逻辑流程400的一个实施例。逻辑流400可表示由在此描述的一个或多个实施例所执行的操作中的部分或全部。例如,逻辑流400可由装置100来执行。
在图4所示的实施例中,在框402,逻辑流程400可以接收修改由web服务提供的web资源的控制指示。例如,应用程序120的网络访问组件122-1可接收修改由web服务260提供的网络资源130的控制指示110。该控制指示110-b可源自人类用户控制的输入设备。
在框404,逻辑流400可将第一请求从应用程序发送到web服务以将web资源从第一状态修改为第二状态。例如,网络访问组件122-1可将第一请求从应用程序120发送到web服务260以将网络资源130从第一状态修改为第二状态。可使用REST和SOAP协议的组合来发送第一请求。
在框406,逻辑流400可从web服务接收带有处于第二状态的web资源的响应。例如,web服务260可接收第一请求以修改网络资源130,并根据与第一请求一起提供的指令修改网络资源130。web服务260可向应用程序120发送带有经修改的网络资源130的响应。网络访问组件122-1可从web服务260接收带有处于第二状态的网络资源130的响应,并利用由接收方设备实现的UI和显示来呈现经修改的网络资源130。
在框408,逻辑流400可存储表示由应用程序将web资源从第一状态转换到第二状态的信息的状态信息。例如,状态管理器组件122-2可监视并存储表示由应用程序120将网络资源130从第一状态转换成第二状态所需的信息的状态信息140。这可在新会话中、应用程序120的实例化中、(例如在不同设备上执行的)应用程序120的不同版本中、来自应用程序120的不同应用程序和其它情形中发生。状态管理器组件122-2可将状态信息140存储在实现在同一设备(例如,设备220)或与应用程序120的设备不同的设备(例如,服务器设备350)中的状态数据库124中。
在框410,逻辑流400可将第二请求从应用程序发送到web服务以使用状态信息将web资源从第一状态修改到第二状态。例如,在状态信息140被存储且所呈现的经修改的网络资源130不再对应用程序120可用(例如,终止会话、终止程序、通信错误、设备故障等)之后某时,web控件122-1可将第二请求从应用程序120发送到web服务260以使用存储在状态数据库124中的状态信息140来将网络资源130从第一状态修改为第二状态。
图5示出逻辑流500的一个实施例。逻辑流500可表示由在此描述的一个或多个实施例所执行的操作中的部分或全部。例如,逻辑流500可由装置100执行以生成网络资源130的状态信息140。
在图5显示的所示实施例中,在框502,逻辑流500可在客户端设备和服务器设备之间建立连接以用于第一通信会话,该服务器设备用于存储网络资源。例如,设备220可利用通信组件240经由介质242和信号244建立与设备250的连接以用于第一通信会话。设备250可存储诸如web资源270的网络资源。可通过网络服务(诸如web服务260)来管理和/或访问web资源270。
在框504,逻辑流500可在客户端设备处呈现处于第一状态的网络资源。例如,响应于经由人类输入设备(例如,触摸屏上的手势、诸如鼠标的定点设备、声音命令、眼睛移动命令等)的用户命令,应用程序120可利用网络访问组件122-1(诸如嵌入式web控件)来向web服务260请求web资源270。web服务260可访问web资源270并使用一个或多个通信协议将其递送到设备220。应用程序120可在设备220处在电子显示器(例如触摸屏)上呈现处于第一状态的web资源270。web资源270的示例可以是包括行和列的表格。web资源270的第一状态的示例可以是以第一排序次序安排的行和列中的数据。
在框506,逻辑流500可接收第一控制指示以在客户端设备处将网络资源从第一状态修改为第二状态。例如,网络访问组件122-1从人类输入设备接收第一控制指示110-1,以在设备220处将web资源270从第一状态修改为第二状态。第一控件指示110-1的示例可以是排序命令,以根据第二排序次序在行和列中排序数据。
在框508,逻辑流500可通过连接将第一控制指示发送到服务器设备。例如,网络访问组件122-1可利用通信组件240通过介质242经由信号244将第一控制指示110-1发送到设备250。
在框510,逻辑流500可从服务器设备接收处于第二状态的网络资源。例如,web服务260可接收第一控制指示110-1,并据此修改web资源270以形成第二状态。web服务260可接着利用类似的通信组件240通过介质242经由信号244将web资源270发送到设备220。网络访问组件122-1可从设备250接收处于第二状态的web资源270。应用程序120可在设备220处在电子显示器上呈现处于第二状态的web资源270。web资源270的第二状态的示例可以是以第二排序次序安排的行和列中的数据。
在框512,逻辑流500可存储表示将网络资源从第一状态转换到第二状态的信息的状态信息。例如,状态管理器组件122-2可监视并捕捉用于将web资源270从第一状态修改成第二状态的控制指示110的一个或多个,并将所捕捉的控制指示110-b存储为状态信息140。
状态管理器组件122-2可将状态信息标识符分派到状态信息140。状态信息标识符可由唯一地标识状态信息140的任何信息组成。状态信息140的状态信息标识符可包括用于web资源270的同一或不同标识符。
状态管理器组件122-2可检索和/或生成web资源270的资源标识符。web资源270的资源标识符可包括唯一地标识web资源270的任何信息。状态管理器组件122-2可利用资源标识算法来检索有关特定web资源270的信息。状态管理器组件122-2可从控制指示110-1本身、web服务260、web资源270、web资源数据库,或某其它源处检索信息。所述信息可包括这样的信息:文件名和/或文件名扩展、一个或多个搜索项、搜索请求、链接、统一资源定位符(URL)、统一资源标识符(URI)、内容、元数据、web服务、设备信息、连接信息等等。资源标识算法可接着利用一组规则以利用检索到的信息来构建web资源270的标识符。
在某些情况中,标识符可包括对于资源标识目的而言足够唯一的单片段信息。例如,资源标识算法可从去往web资源270的URL、web资源270的文件名、web资源270的全局唯一标识符(GUID)等等中,生成资源标识符。
在其它情况中,标识符可包括不同片段信息的组合来为资源标识目的创建足够唯一性。例如,当文件名是公共文件名时,资源标识算法可通过将收集到的附加片段的信息添加到文件名来使其更唯一(诸如将文件名与提供该文件名的web服务名进行组合),以生成资源标识符。
一旦状态信息标识符和资源标识符被生成,状态管理器组件122-2可接着关联标识符,并将相关联的标识符作为状态信息140的一部分存储在状态数据库124中。可以理解,状态数据库可本地地被实现为设备220的一部分,或远程地被实现为另一设备(例如,服务器设备350)的一部分。状态信息140可接着被用于在某将来时间点(诸如设备220的第二通信会话、能够访问状态信息140的另一设备的第一通信会话等)上将web资源270从第一状态转换到第二状态。
逻辑流500可在框514处终止第一通信会话。例如,一旦用户完成修改web资源270,用户可发送另一控制指示110以终止设备220和250之间的连接。
图6示出逻辑流600的一个实施例。逻辑流600可表示由在此描述的一个或多个实施例所执行的操作中的部分或全部。例如,逻辑流600可由装置100执行以利用网络资源130的状态信息140。
在图6显示的所示实施例中,在框602,逻辑流600可在客户端设备和服务器设备之间建立用于第二通信会话的连接。例如,设备220可利用通信组件240经由介质242和信号244建立与设备250的另一连接以用于第二通信会话。在一个实施例中,第二通信会话可在一旦第一通信会话被终止(例如框514)在第一通信对话之后的时间点上发生。在一个实施例中,第二通信会话可与第一通信会话同时发生,诸如当不同于应用程序120的应用程序(或应用程序120的不同实例化)建立与web服务260的连接以访问处于第一状态的同一web资源270时。各实施例不限于该上下文。
在框604,逻辑流600可在第二通信会话期间接收第二控制指示以在客户端设备处从服务器设备检索网络资源。例如,响应于经由人类输入设备的用户命令(例如,触摸屏上的手势、诸如鼠标的定点设备、声音命令、眼睛移动命令等),应用程序120可接收第二控制指示110-2以利用网络访问组件122-1(诸如嵌入式web控件)来向web服务260请求web资源270。
在框606,逻辑流600可检索表示在第二通信会话期间将网络资源从第一状态转换到第二状态的信息的状态信息。如先前结合逻辑流500所描述的,状态管理器组件122-2可将表示将网络资源270从第一状态转换成第二状态的信息的状态信息140存储在状态数据库124中。当网络访问组件122-1接收第二控制指示110-1时,其可通知状态管理器组件122-2。状态管理器组件122-2可利用如参考逻辑流500描述的资源标识算法的相同或类似逻辑来检索和/或生成web资源270的资源标识符。状态管理器组件122-2可接着利用资源标识符来搜寻与web资源270相对应的状态信息140。
在框608,逻辑流600可在第二通信会话期间通过连接向服务器设备发送带有网络资源的状态信息的第三控制指示。例如,网络访问组件122-1可接收web资源270的状态信息140,并将其与第二控制指示110-2组合,以形成第三控制指示110-3。网络访问组件122-1可接着利用通信组件240通过介质242经由信号244将第三控制指示110-3发送到设备250。
在框610,逻辑流600可在第二通信会话期间从服务器设备接收处于第二状态的网络资源。例如,web服务260可接收第三控制指示110-3。web服务260可访问web资源270、将web资源270从第一状态修改为第二状态、并利用一个或多个通信协议将处于第二状态的web资源270递送到设备220。应用程序120可在设备220处在电子显示器(例如触摸屏)上呈现处于第二状态的web资源270。web资源270的第二状态的示例可以是以第二排序次序安排的行和列中的数据。
图7示出了示例性第一图形用户界面(GUI)视图700。GUI视图700提供由web服务260所排序的并呈现在客户端设备的电子显示器上的处于第一状态的web资源270的示例。
如在图7中所示,GUI视图700可将web资源270示为如由设备220的显示器702上的应用程序120的用户界面所呈现。web资源270可包括具有一组列706-k(在此情况中包括列706-1、706-2和706-3)的表格704的实例化。表格704可包括标题为“按区域的销售”的报告的一部分,并可任选地包括各个国家的产品份数的季度销售数据。
web资源270可由web服务260提供,在此示例中可包括实现在设备250上的MICROSOFT OFFICE 365POWER BI web服务。GUI视图700还可包括web控件710,其可被用于从web服务260请求表格704。GUI视图还进一步包括共享控件720。该共享控件720可向用户提供各种选项以将表格704与其它用户和设备共享。
GUI视图700示出处于第一状态的表格704。在第一状态中,表格704按对应于“一季度”销售数据的列706-2来排序。如在第一状态所示,一季度销售数据的排序次序是从最高到最低,从美国1000份、欧洲700份、亚洲500份、以及最后加拿大100份。
图8示出了示例性第二GUI视图800。该GUI视图800提供由应用程序120修改的并呈现在客户端设备的电子显示器上的处于第二状态的web资源270的示例。
继续在图7中介绍的先前示例,假设用户在显示器702的触摸屏表面上发起利用手势812以按表示“二季度”销售数据的列706-3来排序表格704。触摸屏表面可将手势812转成包括排序命令的控制指示110-1。web控件710可将该控制指示110-1发送到web服务260,其可修改表格704以符合第二状态,其中表格704按二季度销售数据排序。在此示例中,二季度销售数据可包括亚洲1500份、欧洲900份、美国800份、以及最后加拿大200份。设备220可随后将表格704以第二状态呈现在显示器702上。
此时,假设用户利用手势814来激活邮件控件720-1以将表格704与另一设备(诸如设备210)共享。触摸屏表面可将手势814转换成控制指示110-2以经由电子邮件与设备210共享处于第二状态的表格704。设备210可能由相同用户或不同用户(从他发出控制指示110-2)拥有和/或操作。
图9示出了示例性第三GUI视图900。GUI视图900提供用于在一组设备之间共享处于第二状态的web资源270的示例邮件界面。
GUI视图900示出了可由应用程序120在邮件控件720-1被手势814激活时响应于控制指示110-2来呈现的邮件界面902。邮件界面902可包括各种GUI元素,它包括用于输入名为“Jane Doe”的第二用户的电子邮件地址“janedoe@live.com”的字段。邮件界面还可包括一组链接904-1、904-2。链接904-1、904-2可包括web资源270的状态信息140。状态信息140可包括链接904-1、904-2的集成的部分。替换地,状态信息140可包括与链接904-1、904-2的每一个相关联的单独的文件或过程调用,其可在链接904-1、904-2被激活时被应用程序120使用。
假设第二用户在设备210处接收到带有链接904-1、904-2的电子邮件。进一步假设第二用户通过手势912激活链接904-2。设备210的应用程序120可向存储表格704的web服务260发出控制指示110-3。由于web服务260是无状态web服务,它不保留任何web资源270(在此情况中包括表格704)的任何状态信息。因此,缺乏状态信息140,web服务260将如GUI视图700所示那样递送处于第一状态的表格704。然而,由于状态信息140对于应用程序120可用,设备210的应用程序120可向存储表格704的web服务260发出带有状态信息140的控制指示110-3。web服务260可将表格704从第一状态修改为第二状态,并将修改后的表格704递送到设备210。应用程序120可随后在设备210的显示器上如GUI视图800所示的那样呈现处于第二状态的表格704。
在某些情况中,用户可能不想要查看如GUI视图800所示的处于第二状态的表格704。在这样的情况中,用户可使用手势来忽略第二状态并将表格704返回如最初发布的那样的第一状态。
图10示出网络1000的框图。网络1000可包括多个客户端设备1002-p。客户端设备1002可各自实现装置100以与web服务器1012进行对接。web服务器1012可实现web服务260以访问一个或多个web资源130。
在操作中,客户端设备1002-1可执行应用程序120的状态管理器组件122-2以监视并收集由web服务器1012实现的web服务260提供的网络资源130-1的状态信息140。例如,状态改变可在第一通信会话期间响应于从用户控制的输入设备转发到web服务器1012的控制指示针对网络资源130-1发生。该状态管理器组件122-2可将网络资源130-1的web资源标识符和相关联的状态信息140存储在状态数据库124中供将来使用。
该状态管理器组件122-2可随后在第二通信会话期间检测对网络资源130-1的访问,并检索随后访问的网络资源130-1的web资源标识符。该状态管理器组件122-2可搜索状态数据库124以寻找与所访问的网络资源130-1的web资源标识符相匹配的网络资源130-1,并从状态数据库124检索先前存储的与所访问的网络资源130-1相关联的状态信息124。网络访问组件122-1可将状态信息140发送到web服务260,以指令web服务260根据接收到的状态信息140来修改网络资源130-1,并返回处于和第一通信会话被终止时基本相同的状态的经修改的网络资源130-1。
状态管理器组件122-2可将状态信息140存储到状态数据库124中。状态数据库124可实现在客户端设备1002-1中,或客户端设备1002-1的同一所有者拥有的另一客户端1002-2中。附加地或替换地,状态数据库124可被实现为存储服务器1014(诸如举例而言MICROSOFT LIVE网络存储服务器)的一部分。
状态共享组件122-3可与执行同一或类似版本的应用程序120的客户端设备1002-2共享经修改的网络资源130-1的状态信息140。客户端设备1002-2的应用程序120可利用共享的状态信息140来以与客户端设备1002-1的应用程序120产生的相同或类似的状态来重现经修改的网络资源130-1。
图11示出适用于实现上述各实施例的示例性计算体系结构1100的实施例。在一个实施例中,计算体系结构1100可包括电子设备的一部分或作为电子设备的一部分实现。电子设备的各实施例可包括参考图8描述的那些等等。各实施例不限于该上下文。
如在本申请中所使用的,术语“系统”和“组件”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件,其示例由示例性计算体系结构1100提供。例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一个计算机上和/或分布在两个或更多的计算机之间。此外,组件可以通过各种类型的通信介质可通信地彼此耦合以协调操作。协调可涉及信息的单向或双向交换。例如,组件可以传递通过通信介质传递的信号形式的信息。该信息可被实现成分配给各条信号线的信号。在这些分配中,每一消息都是信号。然而,其他实施例可另选地采用数据消息。这些数据消息可以跨各个连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算体系结构1100包括各种常见计算元件,如一个或多个处理器、多核处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源,等等。然而,各实施例不限于由计算体系结构1100来实现。
如图11所示,计算体系结构1100包括处理单元1104、系统存储器1106以及系统总线1108。处理器单元可以是可购得的各种处理器中的任何一种,包括但不限于:和处理器;应用、嵌入和安全处理器;和和处理器;IBM和Cell处理器;Core(2) 和处理器;以及类似处理器。双微处理器、多核处理器和其它多处理器体系结构也可用作处理单元1104。
系统总线1108向包括但不限于系统存储器1106的各系统组件提供到处理单元1104的接口。系统总线1108可以是若干类型总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。接口适配器可经由插槽体系结构连接到系统总线1108。示例性的插槽体系结构可包括但不限于:加速图形端口(AGP)、卡总线、(扩展)工业标准体系结构((E)ISA)、微通道体系结构(MCA)、NuBus、外围组件互连(扩展)(PCI(X))、PCIExpress、个人计算机存储卡国际联合会(PCMCIA)、等等。
计算体系结构1100可包括或实现各种制品。制品可包括存储逻辑的计算机可读的存储介质。计算机可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可包括使用任何合适类型的代码(诸如源代码、已编译代码、已解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。各实施例还可以被至少部分地实现为非瞬态计算机可读介质中或上所包含的指令,这些指令可由一个或多个处理器读取并执行以使得能够执行本文描述的操作。
系统存储器1106可以包括一个或多个更高速的存储器单元的形式的各种类型的计算机可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器等聚合物存储器、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)驱动器等设备阵列、固态存储器设备(例如,USB存储器、固态驱动器(SSD))、和适于存储信息的任何其他类型的介质。在图11示出的所示实施例中,系统存储器1106可包括非易失性存储器1110和/或易失性存储器1112。基本输入/输出系统(BIOS)可以存储在非易失性存储器1110中。
计算机1102可包括一个或多个较低速的存储器单元的形式的各种类型的计算机可读存储介质,包括内置(或外置)硬盘驱动器(HDD)1114、用于读写可移动磁盘1118的磁软盘驱动器(FDD)1116、以及用于读写可移动光盘1122(例如,CD-ROM或DVD)的光盘驱动器1120。HDD 1114、FDD 1116、以及光盘驱动器1120可分别由HDD接口1124、FDD接口1126和光盘驱动器接口1128连接到系统总线1108。用于外置驱动器实现的HDD接口1124可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两者。
驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可被存储在驱动器和存储器单元1110、1112中,包括操作系统1130、一个或多个应用程序1132、其他程序模块1134和程序数据1136。在一个实施例中,这一个或多个应用程序1132、其他程序模块1134、以及程序数据1136可包括例如系统100的各应用和/或组件。
用户可以通过一个或多个有线/无线输入设备,例如键盘1138和诸如鼠标1140等定点设备将命令和信息输入到计算机1102中。其他输入设备可包括:红外(IR)遥控器、射频(RF)遥控器、游戏垫、指示笔、读卡器、道尔芯片、指纹读取器、手套、图形板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式触摸屏、电阻式触摸屏等)、跟踪球、跟踪垫、传感器、指示设备等等。这些和其他输入设备通常通过耦合到系统总线1108的输入设备接口1142连接到处理单元1104,但也可通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等其他接口连接。
监视器1144或其他类型的显示设备也经由诸如视频适配器1146等接口连接到系统总线1108。监视器1144可以在计算机1102的内部或外部。除了监视器1144之外,计算机通常包括诸如扬声器、打印机等其他外围输出设备。
计算机1102可使用经由有线和/或无线通信至一个或多个远程计算机(诸如远程计算机1148)的逻辑连接在联网环境中操作。远程计算机1148可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见的网络节点,并且通常包括相对于计算机1102描述的许多或所有元件,但为简明起见仅示出了存储器/存储设备1150。所描绘的逻辑连接包括到局域网(LAN)1152和/或例如广域网(WAN)1154等更大网络的有线/无线连接。这种LAN和WAN联网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN联网环境中使用时,计算机1102通过有线和/或无线通信网络接口或适配器1156连接到LAN 1152。适配器1156可以方便到LAN 1152的有线和/或无线通信,并且还可包括其上设置的用于使用适配器1156的无线功能进行通信的无线接入点。
当在WAN联网环境中使用时,计算机1102可包括调制解调器1158,或连接到WAN1154上的通信服务器,或具有用于诸如通过因特网等在WAN 1154上建立通信的其他装置。或为内置或为外置以及有线和/或无线设备的调制解调器1158经由输入设备接口1142连接到系统总线1108。在联网环境中,相对于计算机1102所描绘的程序模块或其部分可以存储在远程存储器/存储设备1150中。将明白,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
计算机1102可用于使用IEEE 802标准族与有线和无线设备或实体通信,诸如可操作地置于无线通信(例如,通过空中调制技术的IEEE 802.11)的无线设备。这至少包括Wi-Fi(即无线保真)、WiMax和蓝牙TM无线技术等。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi网络使用称为IEEE802.11x(a、b、g、n等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802.3相关的介质和功能)。
图12示出适用于实现上述各实施例的示例性通信体系结构1200的框图。通信体系结构1200包括各种常见通信元件,如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器、电源,等等。然而,各实施例不限于由通信体系结构1200来实现。
如图12所示,通信体系结构1200包括一个或多个客户端1202和服务器1204。客户端1202可实现客户端设备220、310。服务器1204可实现服务器设备350。客户端1202和服务器1204可操作地连接到可被用来存储相应客户端1202和服务器1204本地的信息(如cookie和/或相关联的上下文信息)的一个或多个相应客户端数据存储1208和服务器数据存储1210。
客户端1202和服务器1204可以使用通信框架1206在彼此之间传递信息。通信框架1206可实现任何公知的通信技术和协议。通信框架1206可以被实现为分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)。
通信框架1206可实现被安排成接受、通信、并连接到通信网络的各种通信接口。网络接口可被看作一种专门形式的输入输出接口。网络接口可采用连接协议,包括但不限于:直接连接、以太网(例如,厚、薄、双绞10/100/1000Base T等等)、令牌环、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等。而且,可使用多个网络接口来与各种通信网络类型结合。例如,可采用多个网络接口来允许通过广播、多播和单播网络通信。如果处理要求规定了更大量的速度和容量,则可类似地使用分布式网络控制器体系结构来汇合(pool)、负载平衡、以及以其他方式增加客户端1202和服务器1204所需的通信带宽。通信网络可以是有线和/或无线通信网络中的任何一个或其组合,所述有线和/或无线通信网络包括但不限于:直接互连、安全定制连接、私有网络(例如,企业内网)、公共网络(例如,因特网)、个人区域网络(PAN)、局域网(LAN)、城域网(MAN)和操作任务即因特网上的节点(OMNI)、广域网(WAN)、无线网络、蜂窝网络、以及其他通信网络。
一些实施例可使用表述“一个实施例”和“一实施例”及其派生词来描述。这些术语意味着结合该实施例描述的特定特征、结构、或性质包括在至少一个实施例中。出现在说明书中各个地方的短语在“一个实施例中”并不必全都指的是同一实施例。此外,一些实施例可使用表述“耦合的”和“连接的”及其派生词来描述。这些术语不需要旨在相互同义。例如,一些实施例可使用术语“连接的”和/或“耦合的”来描述以指示两个或更多元件彼此有直接的物理或电接触。然而,术语“耦合的”还可以意味着两个或更多元件彼此不直接接触,而仍彼此合作或交互。
要强调,本公开的摘要是为了允许读者快速确定本技术公开的性质而提供的。提交摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到,出于将本公开连成一个整体的目的而将各种特征组合在一起放在单个实施例中。此公开方法将不被解释为反映所要求保护的实施例要求比每个权利要求中明确陈述的更多特征的意图。相反,如下面的权利要求所反映的,本发明的主题在于少于单个所公开的实施例的所有特征。从而,据此将所附权利要求结合进详细描述中,其中每个权利要求独立地代表一个单独的实施例。在所附权利要求书中,术语“包括”和“其中”分别用作术语“包含”和“其特征在于”的易懂的英文等价词。而且,术语“第一”、“第二”、“第三”等等只用作标记,而不旨在将数字要求强加于其对象上。
上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。
Claims (3)
1.一种计算机实现的方法,包括:
在客户端设备和服务器设备之间建立用于第一通信会话的连接,所述服务器设备存储网络资源,所述网络资源是用于多个生产力应用程序中的第一生产力应用程序的电子文件,所述多个生产力应用程序包括文本处理应用、电子表格应用、幻灯片处理应用或电子邮件应用;
由所述第一生产力应用程序在所述客户端设备处呈现处于第一状态的网络资源;
接收第一控制指示以在所述客户端设备处将所述网络资源从所述第一状态修改为第二状态;
通过所述连接将所述第一控制指示发送到所述服务器设备;
从所述服务器设备接收处于所述第二状态的所述网络资源;
存储表示将所述网络资源从所述第一状态转换到所述第二状态的信息的状态信息;
终止所述第一通信会话;
在所述客户端设备和所述服务器设备之间建立用于第二通信会话的连接;
在所述第二通信会话期间接收第二控制指示以在所述客户端设备处从所述服务器设备检索所述网络资源;以及
由所述多个生产力应用程序中的不同于所述第一生产力应用程序的第二生产力应用程序使用所存储的状态信息以将所述网络资源返回到所述第二状态,包括:
在所述第二通信会话期间检索所存储的状态信息;
在所述第二通信会话期间通过所述连接向所述服务器设备发送带有所存储的网络资源的状态信息的第三控制指示;
在所述第二通信会话期间从所述服务器设备接收处于所述第二状态的所述网络资源;以及
在所述客户端设备处呈现处于所述第二状态的网络资源。
2.一种计算机系统,包括:
用于在客户端设备和服务器设备之间建立用于第一通信会话的连接的装置,所述服务器设备存储网络资源,所述网络资源是用于多个生产力应用程序中的第一生产力应用程序的电子文件,所述多个生产力应用程序包括文本处理应用、电子表格应用、幻灯片处理应用或电子邮件应用;
用于由所述第一生产力应用程序在所述客户端设备处呈现处于第一状态的网络资源的装置;
用于接收第一控制指示以在所述客户端设备处将所述网络资源从所述第一状态修改为第二状态的装置;
用于通过所述连接将所述第一控制指示发送到所述服务器设备的装置;
用于从所述服务器设备接收处于所述第二状态的所述网络资源的装置;
用于存储表示将所述网络资源从所述第一状态转换到所述第二状态的信息的状态信息的装置;
用于终止所述第一通信会话的装置;
用于在所述客户端设备和所述服务器设备之间建立用于第二通信会话的连接的装置;
用于在所述第二通信会话期间接收第二控制指示以在所述客户端设备处从所述服务器设备检索所述网络资源的装置;以及
用于由所述多个生产力应用程序中的不同于所述第一生产力应用程序的第二生产力应用程序使用所存储的状态信息以将所述网络资源返回到所述第二状态的装置,包括:
用于在所述第二通信会话期间检索所存储的状态信息的装置;
用于在所述第二通信会话期间通过所述连接向所述服务器设备发送带有所存储的网络资源的状态信息的第三控制指示的装置;
用于在所述第二通信会话期间从所述服务器设备接收处于所述第二状态的所述网络资源的装置;以及
用于在所述客户端设备处呈现处于所述第二状态的网络资源的装置。
3.一种装置,包括:
状态数据库;
处理器电路;
多个生产力应用程序中的第一生产力应用程序,所述多个生产力应用程序包括文本处理应用、电子表格应用、幻灯片处理应用或电子邮件应用,用于由所述处理器电路执行以提供用于由在与网络服务的第一通信会话期间将服务器设备提供的网络资源的状态从第一状态修改为第二状态的一组操作,所述第一生产力应用程序包括:
状态管理器组件,所述状态管理器组件被安排用于记录表示将所述网络资源从所述第一状态转换为所述第二状态的信息的状态信息,并在所述
状态数据库中存储网络资源的资源标识符和相关联的状态信息,以及
所述多个生产力应用程序中的第二生产力应用程序,所述第二生产力应用程序不同于所述第一生产力应用程序并被适配用于使用所存储的状态信息来在第二通信会话期间通过以下步骤将所述网络资源返回到所述第二状态:
在所述第二通信会话期间检索所存储的状态信息;
在所述第二通信会话期间将带有所述网络资源的所存储的状态信息的控制指示发送到所述服务器设备;
在所述第二通信会话期间从所述服务器设备接收处于所述第二状态的所述网络资源;以及
将所述网络资源以所述第二状态呈现。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361846250P | 2013-07-15 | 2013-07-15 | |
US61/846,250 | 2013-07-15 | ||
US14/101,201 | 2013-12-09 | ||
US14/101,201 US9712622B2 (en) | 2013-07-15 | 2013-12-09 | Techniques to manage state information for a web service |
PCT/US2014/046455 WO2015009584A1 (en) | 2013-07-15 | 2014-07-14 | Techniques to manage state information for a web service |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105453520A CN105453520A (zh) | 2016-03-30 |
CN105453520B true CN105453520B (zh) | 2019-04-09 |
Family
ID=52278027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480040525.6A Active CN105453520B (zh) | 2013-07-15 | 2014-07-14 | 用于管理web服务的状态信息的技术的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9712622B2 (zh) |
EP (1) | EP3022890B1 (zh) |
CN (1) | CN105453520B (zh) |
WO (1) | WO2015009584A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10356364B2 (en) | 2013-09-10 | 2019-07-16 | Minerva Project, Inc. | Registering and displaying visual attention metadata in a web video conferencing and seminar system |
US9350624B2 (en) * | 2013-10-15 | 2016-05-24 | Rawllin International Inc. | Dynamic assignment of connection priorities for applications operating on a client device |
US9961119B2 (en) * | 2014-04-22 | 2018-05-01 | Minerva Project, Inc. | System and method for managing virtual conferencing breakout groups |
US10303660B2 (en) | 2015-11-12 | 2019-05-28 | Microsoft Technology Licensing, Llc | File system with distributed entity state |
KR102418668B1 (ko) * | 2015-12-15 | 2022-07-12 | 삼성전자 주식회사 | 전자장치, 사물인터넷 환경을 위한 시스템 및 그들의 제어방법 |
EP4170493B1 (en) * | 2016-02-01 | 2024-04-10 | Microsoft Technology Licensing, LLC | Recall service for productivity applications |
US10169065B1 (en) | 2016-06-29 | 2019-01-01 | Altera Corporation | Live migration of hardware accelerated applications |
US11327706B2 (en) | 2017-02-23 | 2022-05-10 | Autodesk, Inc. | Infrastructure model collaboration via state distribution |
US20190065032A1 (en) * | 2017-08-23 | 2019-02-28 | Lanjia Lin | Method and system for capturing, storing, and recreating current state of an application |
US11822637B2 (en) * | 2018-10-18 | 2023-11-21 | Oracle International Corporation | Adaptive authentication in spreadsheet interface integrated with web service |
CN110795154B (zh) * | 2019-10-10 | 2024-02-06 | 深圳市证通电子股份有限公司 | 跨平台设备驱动方法、装置、设备及计算机可读存储介质 |
CN111563219B (zh) * | 2020-04-20 | 2023-10-20 | 北京明略软件系统有限公司 | 一种web应用的状态管理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1918572A (zh) * | 2004-02-26 | 2007-02-21 | 国际商业机器公司 | 使web应用能够访问企业管理的数据的方法、装置和计算机程序 |
CN101291337A (zh) * | 2008-05-30 | 2008-10-22 | 同济大学 | 一种网格资源管理系统及管理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020038388A1 (en) | 2000-09-13 | 2002-03-28 | Netter Zvi Itzhak | System and method for capture and playback of user interaction with web browser content |
US20020090934A1 (en) | 2000-11-22 | 2002-07-11 | Mitchelmore Eliott R.D. | Content and application delivery and management platform system and method |
US7127514B2 (en) * | 2000-12-28 | 2006-10-24 | Microsoft Corporation | Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client |
US7895296B1 (en) | 2006-12-29 | 2011-02-22 | Google, Inc. | Local storage for web based native applications |
US8418060B2 (en) | 2008-03-03 | 2013-04-09 | International Business Machines Corporation | Method, apparatus and computer program product for capturing and viewing stored web resource interactions |
US20120010995A1 (en) | 2008-10-23 | 2012-01-12 | Savnor Technologies | Web content capturing, packaging, distribution |
US8589810B2 (en) * | 2008-11-18 | 2013-11-19 | At&T Intellectual Property I, L.P. | Methods, systems, and products for recording browser navigations |
US20100153866A1 (en) | 2008-12-11 | 2010-06-17 | Accenture Global Services Gmbh | Method and system for modifying the execution of a native application running on a portable electronic device |
US8549395B2 (en) | 2009-12-16 | 2013-10-01 | Ca, Inc. | Method and system for transforming an integrated webpage |
US8903897B2 (en) | 2011-07-08 | 2014-12-02 | Google Inc. | System and method for providing interactive content to non-native application environments |
-
2013
- 2013-12-09 US US14/101,201 patent/US9712622B2/en active Active
-
2014
- 2014-07-14 EP EP14755439.8A patent/EP3022890B1/en active Active
- 2014-07-14 CN CN201480040525.6A patent/CN105453520B/zh active Active
- 2014-07-14 WO PCT/US2014/046455 patent/WO2015009584A1/en active Application Filing
-
2017
- 2017-06-09 US US15/618,553 patent/US9992285B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1918572A (zh) * | 2004-02-26 | 2007-02-21 | 国际商业机器公司 | 使web应用能够访问企业管理的数据的方法、装置和计算机程序 |
CN101291337A (zh) * | 2008-05-30 | 2008-10-22 | 同济大学 | 一种网格资源管理系统及管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US9992285B2 (en) | 2018-06-05 |
US20170289260A1 (en) | 2017-10-05 |
WO2015009584A1 (en) | 2015-01-22 |
US20150019624A1 (en) | 2015-01-15 |
CN105453520A (zh) | 2016-03-30 |
EP3022890A1 (en) | 2016-05-25 |
EP3022890B1 (en) | 2017-09-13 |
US9712622B2 (en) | 2017-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453520B (zh) | 用于管理web服务的状态信息的技术的方法和装置 | |
US11265378B2 (en) | Cloud storage methods and systems | |
JP6339155B2 (ja) | ネットワークにおける検索可能なデータに対するインデックス構成 | |
US10664885B2 (en) | Method, system and recording medium for transaction processing using real-time conversation | |
US20190087707A1 (en) | Artificial conversational entity methods and systems | |
CN109074402A (zh) | 基于示例会话使用自然语言机器学习来响应用户请求的技术 | |
CN108292323A (zh) | 使用数据源的元数据的数据库操作 | |
US10154312B2 (en) | Systems and methods for ranking and providing related media content based on signals | |
US20150281250A1 (en) | Systems and methods for providing an interactive media presentation | |
Alani et al. | Live social semantics | |
CN103246748B (zh) | 自动管理文件描述符的技术 | |
US11460973B1 (en) | User interfaces for converting node-link data into audio outputs | |
Pfeil et al. | Opensensemap-a citizen science platform for publishing and exploring sensor data as open data | |
US20190200154A1 (en) | Systems and methods for audio-based augmented reality | |
Marchenkov et al. | A smart space-based design of semantic layer for advancing museum information services | |
US20220180900A1 (en) | Systems and methods for generating music recommendations | |
US20170076009A1 (en) | Systems and methods for presenting events | |
Trinh et al. | A web-based platform for dynamic integration of heterogeneous data | |
Boullier | The Drift of Attention Regimes in the Age of Digital Platforms: When Curiosity Was Taken Over by Reputation | |
Skevakis et al. | A crowdsourcing framework for the management of mobile multimedia nature observations | |
Khan et al. | Enhanced service-oriented open sensor web architecture with application server based mashup | |
Cui et al. | PrEV: Preservation Explorer and Vault for Web 2.0 User-Generated Content | |
Di Giovanni | Enhancing Ubiquitous Computing Environments Through Composition of Heterogeneous Services | |
Elton | A novel platform incorporating multiple forms of communication to support applications in a mobile environment | |
Talukder et al. | Medical Consultation system for community clinics in remote area |
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 |