CN107925607B - 使用阴影代理对数据服务器进行连续监控 - Google Patents

使用阴影代理对数据服务器进行连续监控 Download PDF

Info

Publication number
CN107925607B
CN107925607B CN201580082854.1A CN201580082854A CN107925607B CN 107925607 B CN107925607 B CN 107925607B CN 201580082854 A CN201580082854 A CN 201580082854A CN 107925607 B CN107925607 B CN 107925607B
Authority
CN
China
Prior art keywords
computing device
user account
client computing
client
server
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
CN201580082854.1A
Other languages
English (en)
Other versions
CN107925607A (zh
Inventor
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN107925607A publication Critical patent/CN107925607A/zh
Application granted granted Critical
Publication of CN107925607B publication Critical patent/CN107925607B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • 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/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

呈现用于提供对数据服务器的监控的方法、***和计算机可读媒体。在一些实施例中,计算平台可从计算装置接收与用户帐户相关联的第一轮询请求,同时与所述用户帐户相关联的客户端代理在被动模式中操作。随后,所述计算平台可将所述第一轮询请求转发到与所述用户帐户相关联的服务器。接着,所述计算平台可检测所述计算装置处于休眠。响应于检测到所述计算装置处于休眠,所述计算平台可发起所述客户端代理的主动模式。随后,所述计算平台可将第二轮询请求发送到所述服务器。随后,所述计算平台可基于轮询响应而确定唤醒所述计算装置。响应于确定唤醒所述计算装置,所述计算平台可将通知发送到所述计算装置。

Description

使用阴影代理对数据服务器进行连续监控
相关申请的交叉引用
本申请要求2015年8月11日提交的题为“使用阴影代理对数据服务器进行连续监控(CONTINUOUS MONITORING OF DATA SERVERS USING A SHADOWINGPROXY)”的第14/823,268号美国专利申请的权益和优先权,所述美国专利申请以全文引用的方式并入本文中。
技术领域
本公开的方面涉及计算机硬件和软件。确切地说,本公开的一个或多个方面大体上涉及使用阴影代理来提供对数据服务器的连续监控的计算机硬件和软件。
背景技术
例如电邮或“电子邮件”等许多电子数据服务是使用例如电子邮件客户端应用程序等客户端应用程序提供在客户端计算装置上。通常,此类客户端应用程序配置成周期性地连接到和/或轮询中心服务和/或提供此类服务的中心服务器,以检查更新后的数据,例如新的电子邮件消息,以及可在服务器与客户端之间交换的任何其它信息。
在连接到和/或轮询中心服务器时,客户端应用程序和/或客户端计算装置会消耗有限的电池资源、有限的处理资源和有限的网络带宽资源。然而,在尝试减少此类资源消耗时,可能会妨碍客户端应用程序和/或客户端计算装置运行,或可能使其过早地退出。因此,可能存在如下例子:当可获得新的信息时,例如当递送新的电子邮件时,或当发生其它重大改变时,客户端应用程序和/或此类应用程序的用户未被告知。
发明内容
本公开的方面使用阴影代理为解决这些和/或其它问题提供高效、有效、便利且可扩展的方式,所述阴影代理可提供对一个或多个数据服务器的连续监控。
举例来说,且如下文更详细地说明,解决上述问题中的一个或多个的一种方式是提供代表所有客户端应用程序运行并代替客户端应用程序监控一个或多个服务器的代理服务器。当注意到重大改变时,例如当如新电子邮件消息的新数据变得可获得时,可例如使用用以发送通知的通知服务来通知适当的客户端应用程序和/或客户端计算装置。然而,此布置自身可能产生其它问题。举例来说,因为代理服务器需要能够代表所有客户端应用程序起作用,所以代理服务器可能需要能够模仿所有用户,这可能引发潜在的安全问题。另外,代理服务器可能需要扩展以支持相对较大数目的客户端装置。举例来说,给定组织可能希望使用此类代理服务器来支持至少每个用户一个装置,并且对于大型企业组织来说,可以容易地达到数万到数十万客户端装置。这会带来相当大的可扩展性挑战。
然而,通过实施根据本公开的一个或多个方面的代理服务器,可克服这些和/或其它问题。举例来说,且如下文更详细地说明,实施本公开的一个或多个方面的代理服务器可利用模态方式来代表一个或多个客户端监控数据服务器。举例来说,虽然客户端能够主动地与数据服务器交谈,但代理服务器可在被动模式中起作用以消耗最少资源。然而,一旦客户端出故障,代理服务器就可切换成主动模式,在所述主动模式中,代理服务器代表客户端监控数据服务器并当重大事件出现时,例如当接收到新电子邮件时通知客户端。有利地,且如下文更详细地说明,代理服务器可利用其在被动模式中操作时看到的凭证,使得当代理服务器转换成主动模式时,可能不需要明确访问特定用户的完整凭证。另外,因为代理服务器仅需要针对整个客户端群体的一部分是主动的,所以相比于代理服务器在监控用于各种客户端的各种服务器时不能够在模式之间切换的情况,代理服务器能够支持相对更大数目的客户端。
根据一个或多个实施例,具有至少一个处理器、存储器和通信接口的阴影代理计算平台可通过通信接口从第一客户端计算装置接收与第一用户帐户相关联的第一轮询请求,同时与第一用户帐户相关联的智能客户端代理在被动模式中操作。随后,阴影代理计算平台可通过通信接口将第一轮询请求转发到与第一用户帐户相关联的服务器,同时与第一用户帐户相关联的智能客户端代理在被动模式中操作。随后,阴影代理计算平台可检测第一客户端计算装置处于休眠。响应于检测到第一客户端计算装置处于休眠,阴影代理计算平台可发起与第一用户帐户相关联的智能客户端代理的主动模式。接着,阴影代理计算平台可通过通信接口将第二轮询请求发送到与第一用户帐户相关联的服务器,同时与第一用户帐户相关联的智能客户端代理在主动模式中操作。随后,阴影代理计算平台可基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置。响应于基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置,阴影代理计算平台可通过通信接口将唤醒第一客户端计算装置的通知发送到第一客户端计算装置。
在一些实施例中,在接收与第一用户帐户相关联的第一轮询请求之前,阴影代理计算平台可通过通信接口从第一客户端计算装置接收注册请求,以对与第一用户帐户相关联的服务器进行代理监控。随后,阴影代理计算平台可存储与注册请求相关联的注册信息,从而对与第一用户帐户相关联的服务器进行代理监控。随后,阴影代理计算平台可通过通信接口将与相关联于第一用户帐户的服务器的代理监控相关联的配置信息发送到第一客户端计算装置。
在一些例子中,在发送与相关联于第一用户帐户的服务器的代理监控相关联的配置信息之后,阴影代理计算平台可通过通信接口将与相关联于第一用户帐户的服务器的代理监控相关联的第二配置信息发送到第二客户端计算装置。
在一些实施例中,阴影代理计算平台可向不同于第一用户帐户的第二用户帐户提供第二智能客户端代理。
在一些实施例中,在将第一轮询请求转发到与第一用户帐户相关联的服务器之前,阴影代理计算平台可存储用于访问与第一用户帐户相关联的服务器的一个或多个凭证,且用于访问与第一用户帐户相关联的服务器的一个或多个凭证可使用第一轮询请求从第一客户端计算装置接收到。
在一些例子中,用于访问与第一用户帐户相关联的服务器的一个或多个凭证可包含一个或多个长期凭证,包含与第一用户帐户相关联的用户名或与第一用户帐户相关联的密码中的一个或多个。在一些例子中,将第二轮询请求发送到与第一用户帐户相关联的服务器可包含将一个或多个长期凭证发送到与第一用户帐户相关联的服务器。
在一些实施例中,在将第一轮询请求转发到与第一用户帐户相关联的服务器之后,阴影代理计算平台可通过通信接口从与第一用户帐户相关联的服务器接收第一轮询响应。随后,阴影代理计算平台可通过通信接口将从与第一用户帐户相关联的服务器接收到的第一轮询响应发送到第一客户端计算装置。
在一些例子中,从与第一用户帐户相关联的服务器接收到的第一轮询响应可包含用于访问与第一用户帐户相关联的服务器的一个或多个短期凭证。在一些例子中,阴影代理计算平台可存储用于访问与第一用户帐户相关联的服务器的一个或多个短期凭证。
在一些例子中,用于访问与第一用户帐户相关联的服务器的一个或多个短期凭证包含至少一个会话cookie。在一些例子中,将第二轮询请求发送到与第一用户帐户相关联的服务器可包含将与一个或多个短期凭证相关联的会话信息发送到与第一用户帐户相关联的服务器。
在一些实施例中,检测第一客户端计算装置处于休眠可包含确定在从第一客户端计算装置接收到最末轮询请求开始经过预定量的时间之后,尚未从第一客户端计算装置接收到后续轮询请求。
在一些实施例中,响应于检测到第一客户端计算装置处于休眠,阴影代理计算平台可通过通信接口将命令发送到与第一用户帐户相关联的第二客户端计算装置,所述命令配置成致使与第一用户帐户相关联的第二客户端计算装置进入休眠模式。
在一些实施例中,基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置可包含基于指示可在第一用户帐户的服务器处获得新数据的与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置。
在一些实施例中,基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置可包含基于指示在访问与第一用户帐户相关联的服务器时使用的一个或多个所存储凭证已过期的与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置。
在一些实施例中,在发送唤醒第一客户端计算装置的通知之后,阴影代理计算平台可通过通信接口将唤醒与第一用户帐户相关联的第二客户端计算装置的通知发送到与第一用户帐户相关联的第二客户端计算装置。
在一些实施例中,在发送唤醒第一客户端计算装置的通知之后,阴影代理计算平台可通过通信接口从第一客户端计算装置接收与第一用户帐户相关联的第三轮询请求,同时与第一用户帐户相关联的智能客户端代理在主动模式中操作。响应于从第一客户端计算装置接收到与第一用户帐户相关联的第三轮询请求,阴影代理计算平台可发起与第一用户帐户相关联的智能客户端代理的被动模式。
下文更详细地论述这些特征连同许多其它特征。
附图说明
可以通过参考考虑附图的以下描述来获取对本文中描述的方面和其优点的更完整理解,在附图中相似参考数字指示相似特征,并且在附图中:
图1描绘根据本文中所论述的一个或多个说明性方面的可用于实施本公开的一个或多个方面的计算装置的实例;
图2描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的实例。
图3描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的说明性计算环境。
图4A到4G描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的实例事件序列;并且
图5描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的说明性方法。
具体实施方式
在各种实施例的以下描述中,参考上文指出且形成本文的一部分的附图,且其中借助于说明展示可实践本文中描述的方面的各种实施例。应理解,在不脱离本文中所描述的范围的情况下,可利用其它实施例,且可进行结构和功能修改。各种方面能够有其它实施例并且以各种不同方式实践或进行。
应理解,本文中使用的措词和术语是出于描述的目的且不应被看作是限制性的。相反地,应对本文中使用的短语和术语给予其最广泛的解释和意义。“包含(including)”和“包括(comprising)”和其变体的使用打算涵盖其后列出的项目和其等效物以及额外项目和其等效物。术语“安装”、“连接”、“耦合”、“定位”、“接合”和类似术语的使用打算包含直接和间接安装、连接、耦合、定位和接合两者。
如上文所提及,本文中论述涉及使用阴影代理来提供对数据服务器的连续监控的某些实施例。然而,在更详细地论述这些概念之前,将首先关于图1论述可用于实施和/或另外提供本公开的各种方面的计算装置的若干实例。
图1描绘根据本文中所论述的一个或多个说明性方面的可用于实施本公开的一个或多个方面的计算装置100的实例。举例来说,在一些例子中,计算装置100可通过读取和/或执行指令并相应地执行一个或多个动作来实施本公开的一个或多个方面。在一个或多个布置中,计算装置100可表示以下装置、并入到以下装置中和/或包含以下装置:台式计算机、计算机服务器、移动装置(例如笔记本电脑、平板计算机、智能手机、任何其它类型的移动计算装置,等等),和/或任何其它类型的数据处理装置。在一些例子中,计算装置100可在独立环境中操作。在其它例子中,计算装置100可在联网环境中操作。举例来说,在一些例子中,计算装置100可连接到一个或多个其它计算装置和/或以其它方式与一个或多个其它计算装置通信,所述一个或多个其它计算装置可在计算装置100本地和/或在物理上远离计算装置100。
如图1中所见,在一些实施例中,计算装置100可包含处理器105、存储器110、输入/输出接口135和网络接口140。在一些实施例中,这些仅仅是可包含在计算装置100中的组件和/或子***的一些实例。在其它实施例中,计算装置100可包含任何或全部这些组件中的两个或多于两个(例如两个或多于两个处理器、两个或多于两个存储器,等等)和/或此处未列出的其它组件和/或子***。
在一些实施例中,处理器105可控制计算装置100的总操作,包含计算装置100中所包含的其它组件中的一个或多个的操作,所述其它组件例如存储器110、输入/输出接口135和/或网络接口140。举例来说,存储器110可存储软件、指令、数据和/或其它信息。举例来说,软件可存储在存储器110和/或其它存储装置中以将指令提供到处理器105,从而将计算装置100配置成专用计算装置以便执行本文中所论述的各种功能中的一个或多个。
在一些布置中,存储器110可存储、提供和/或以其它方式包含操作***115、控制逻辑120、一个或多个应用程序125和/或数据130。操作***115可例如控制计算装置100的总操作。控制逻辑120可例如指示计算装置100和/或包含在其中的包含处理器105的各种组件,以执行和/或以其它方式提供本公开的各种方面。一个或多个应用程序125可例如提供次要支持和/或可结合本公开的各种方面使用的其它功能性。另外,数据130可例如用于执行本公开的一个或多个方面,并且在一些例子中可包含一个或多个数据库、数据表等等。
在一些布置中,输入/输出接口135可包含键盘、鼠标、显示器、打印机、扫描仪、光学阅读器、触控笔和/或一个或多个其它组件。举例来说,输入/输出接口135可包含用于读取、写入、显示和/或打印文件和/或其它数据的各种接口单元和/或驱动器。在一些实施例中,输入/输出接口135可包含音频接口,所述音频接口包含用于捕获音频输入的一个或多个麦克风和/或用于提供音频输出的一个或多个扬声器。另外或替代地,输入/输出接口135可包含用于提供文字、视听和/或图形输出的视频显示装置。
在一些实施例中,包含在输入/输出接口135中和/或通过输入/输出接口135以其它方式提供的至少一个显示器可以是触敏式显示屏幕(也被称作“触摸屏”)。此类触摸屏可例如配置成显示由计算装置100呈现和/或以其它方式产生的图形内容。另外,触摸屏可配置成从计算装置100的用户接收用户输入,所述用户输入包含用户所提供的使用由计算装置100的用户操作、控制和/或以其它方式使用以与触摸屏交互的触控笔、手指或其它指向方面的触摸式用户输入。
如上文所指示,在一些例子中,计算装置100可在支持连接到一个或多个远程计算机、服务器和/或装置的联网环境中操作。在一些实施例中,可由网络接口140提供此类连接性。举例来说,网络接口140可包含一个或多个通信接口、端口、适配器、天线和/或其它元件以促成各种网络连接。此类网络连接可包含局域网连接、广域网(WAN)连接(例如连接到因特网),和/或任何其它类型的连接。在一些布置中,可通过专用LAN接口和/或适配器建立和/或提供LAN连接,和/或可通过专用WAN接口和/或适配器建立和/或提供WAN连接。可例如通过其它通信接口建立和/或提供其它连接,所述其它通信接口例如有线通信接口(例如以太网)、无线通信接口(例如无线LAN(WLAN)、蜂窝式、蓝牙等等)和/或其它通信接口。
如图1中所见,在一些例子中,计算装置100可连接到一个或多个服务器和/或与一个或多个服务器通信,所述服务器例如服务器145和服务器150。此类服务器可例如实施计算装置100的一个或多个方面,并且相应地可包含一个或多个处理器、存储器等等。可通过LAN建立到一个或多个服务器的一些连接(例如计算装置100与服务器145之间的连接),而可通过WAN建立到一个或多个服务器的其它连接(例如计算装置100与服务器150之间的连接)。在一些实施例中,一个或多个服务器中的一些或全部可以是通过在一个或多个计算装置上执行的软件提供的虚拟服务器。
另外,本公开的一个或多个方面可体现在计算机可用或可读数据和/或计算机可执行指令中,例如体现在由如本文中所论述的一个或多个计算机或其它装置执行的一个或多个程序模块中。通常,程序模块包含在由计算机或其它装置中的处理器执行时执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等等。模块可按随后被编译以供执行的源代码编程语言写入,或可按例如(但不限于)HTML或XML的脚本语言写入。计算机可执行指令可存储于例如非易失性存储装置等计算机可读媒体上。可利用任何合适的计算机可读存储媒体,包含硬盘、CD-ROM、光学存储装置、磁性存储装置和/或其任何组合。另外,表示如本文中所论述的数据或事件的各种传输(非存储)媒体可以穿过信号传导媒体的电磁波形式在源与目的地之间传送,所述信号传导媒体例如金属线、光纤和/或无线传输媒体(例如空气和/或空间)。本文中所论述的各种方面可体现为方法、数据处理***或计算机程序产品。因此,可全部或部分地以软件、固件和/或硬件或例如集成电路、现场可编程门阵列(FPGA)等硬件等效物来体现各种功能性。可使用特定数据结构来更有效地实施本公开的一个或多个方面,且此类数据结构涵盖在本文中所论述的计算机可执行指令和计算机可用数据的范围内。
此外,本公开的一些方面还可使用众多其它通用或专用计算***环境或配置来操作。可适合与本文中所论述的方面一起使用的其它计算***、环境和/或配置的实例包含但不限于个人计算机、服务器计算机、手持式装置或笔记本电脑装置、多处理器***、基于微处理器的***、机顶盒、可编程消费型电子装置、网络PC、微型计算机、大型计算机、包含上述***或装置中的任一个的分布式计算环境,等等。
在论述另外可用于提供和/或实施本公开的各种方面的计算***架构的若干实例之后,现将更详细地论述若干实施例。确切地说,且如上文所介绍,本公开的一些方面大体上涉及使用阴影代理来提供对数据服务器的连续监控。在以下描述中,将论述根据一个或多个实施例的说明如何可使用阴影代理来提供对数据服务器的连续监控的各种实例。
图2描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的实例。参考图2,说明了实施本公开的一个或多个方面的代理的实例生命周期。
确切地说,在状态A中,客户端应用程序在客户端装置205上运行,并且在计算平台210上运行的代理被动地将请求转发到数据服务器215。在这样做时,代理消耗最小资源,因此允许扩展。在此被动状态中,代理可通过和/或拦截可由客户端应用程序在与数据服务器215通信的装置205上使用的任何验证头、小数据文件等等。另外,在此被动状态中,代理可监控连接故障,但可能不需要较高程度地处理装置205与数据服务器215之间的通信。
继续参考图2,在状态B中,在计算平台210上运行的代理可能已检测到,客户端装置205上的客户端应用程序已经停止监控数据服务器215。这可能是因为,由于客户端装置205所经历的网络问题和/或由于其它问题,客户端装置205上的客户端应用程序出了故障,被客户端装置205上的操作***退出。在检测到客户端装置205上的客户端应用程序已经停止监控数据服务器215后,在计算平台210上运行的代理可开始代表客户端装置205上的客户端应用程序起作用。为此,在计算平台210上运行的代理可利用在状态A期间捕获的凭证,并且可使用适当的高级协议检测来自服务器215的重大事件。此类事件可例如包含将电子邮件递送到用户的收件箱,或递送以某种方式标记为重要的消息。如果在此监控期间,客户端装置205上的客户端应用程序重新连接到计算平台210上的代理,同时计算平台210上的代理在代表客户端装置205上的客户端应用程序监控数据服务器215,那么计算平台210上的代理可后退到说明为状态A且在上文所论述的被动模式。
另一方面,在计算平台210上的主动代理检测到数据服务器215上的重大事件之后,代理可例如通过使用例如推送通知服务等通知***将事件发送到客户端装置205来将事件发送给客户端装置205的用户,如图2中所说明的状态C中所见。此事件(其可例如通过计算平台210上的代理发送到客户端装置205)可含有用于客户端装置205的用户的信息,例如接收到的电子邮件消息的细节,和/或可含有用于客户端装置205上的客户端应用程序的信息,例如对‘未读’电子邮件数目的更新和/或客户端应用程序应运行的指示。在发送此类通知之后,如状态C中所见,计算平台210上的代理可退出,或在一些例子中可继续运行以便检测额外事件,例如递送新的电子邮件消息。
在连接到数据服务器215和/或从数据服务器215检索数据时,计算平台210上的代理可使用从客户端装置205上的主动客户端应用程序‘借用’的凭证。另外或替代地,计算平台210上的代理可使用外部凭证存储装置。另外或替代地,计算平台210上的代理可使用到数据服务器215的可信通路,从而不需要凭证。计算平台210上的代理还可检测或预测先前由计算平台210上的代理使用的凭证是否已超时或以其它方式过期。举例来说,如果计算平台210上的代理使用会话cookie以连接到数据服务器215和/或从数据服务器215检索数据,那么当cookie超时时,计算平台210上的代理会警示客户端装置205和/或警告客户端装置205上的客户端应用程序:计算平台210上的代理不再能够针对事件监控数据服务器215。此类通知可例如产生客户端装置205上的客户端应用程序并重新建立到计算平台210上的代理的连接。
有利的是,通过此实例代理实施的方法可以是相对可扩展的,这是因为在任何时间,计算平台210上的代理可能不需要代表给定群体中的所有客户端应用程序和/或客户端装置监控数据服务器215。另外,因为计算平台210上的代理可能不需要针对给定群体中的所有用户维持永久凭证,所以通过此实例代理实施的方法也可以是相对安全的。此外,通过使用此实例代理,相比于此类客户端在永久主动且监控状态中的情况,客户端装置上的资源消耗(例如有限处理资源的消耗、有限电力和/或电池资源的消耗和/或有限网络资源的消耗,等等)可有所减少。
图3描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的说明性计算环境。参考图3,计算环境300可包含一个或多个计算装置。举例来说,计算环境300可包含一个或多个客户端计算装置,例如客户端计算装置335(其可例如由阴影代理服务器的第一用户拥有、操作和/或以其它方式使用)、客户端计算装置340(其也可例如由阴影代理服务器的第一用户拥有、操作和/或以其它方式使用)和客户端计算装置345(其可例如由不同于阴影代理服务器的第一用户的阴影代理服务器的第二用户拥有、操作和/或以其它方式使用)。在一些例子中,客户端计算装置335、客户端计算装置340和客户端计算装置345可实施、并入有和/或以其它方式包含计算装置100的一个或多个方面。客户端计算装置335、客户端计算装置340和客户端计算装置345可以是能够通过一个或多个用户接口接收并处理输入、通过一个或多个用户接口提供输出并且将输入、输出和/或其它信息传达到一个或多个其它计算装置和/或从一个或多个其它计算装置传达输入、输出和/或其它信息的任何类型的计算装置。举例来说,客户端计算装置335、客户端计算装置340和客户端计算装置345可以是台式计算机、笔记本电脑、平板计算机、智能手机,等等。另外,并且如下文更详细地说明,在一些例子中,客户端计算装置335、客户端计算装置340和客户端计算装置345中的任一个和/或全部可以是配置成执行特定功能的专用计算装置。
计算环境300还可包含一个或多个计算机服务器。举例来说,计算环境300可包含第一数据服务器320(其可以例如是与第一电子邮件服务相关联的电子邮件服务器,所述第一电子邮件服务例如通过第一组织提供的电子邮件服务)、第二数据服务器325(其可以例如是与第二电子邮件服务相关联的电子邮件服务器,所述第二电子邮件服务例如通过不同于第一组织的第二组织提供的电子邮件服务)和推送通知服务器330(其可例如配置成代表一个或多个其它服务器和/或计算装置将一个或多个推送通知发送到一个或多个计算装置,例如客户端计算装置335、客户端计算装置340和/或客户端计算装置345,如下文所说明)。在一些例子中,数据服务器320、数据服务器325和/或推送通知服务器330可实施、并入有和/或以其它方式包含计算装置100的一个或多个方面。另外,数据服务器320、数据服务器325和/或推送通知服务器330可以是能够通过一个或多个用户接口接收并处理输入、通过一个或多个用户接口提供输出并且将输入、输出和/或其它信息传达到一个或多个其它计算装置和/或从一个或多个其它计算装置传达输入、输出和/或其它信息的任何类型的计算装置。另外,且如下文更详细地说明,在一些例子中,数据服务器320、数据服务器325和/或推送通知服务器330中的任一个和/或全部可以是配置成执行特定功能的专用计算装置。
计算环境300还可包含一个或多个计算平台。举例来说,计算环境300可包含阴影代理计算平台310。阴影代理计算平台310可包含配置成执行本文中所描述的各种功能中的一个或多个的一个或多个计算装置。举例来说,阴影代理计算平台310可包含一个或多个计算机(例如笔记本电脑、台式计算机、服务器,等等)。
计算环境300还可包含一个或多个网络,所述网络可使以下中的一个或多个互连:阴影代理计算平台310、数据服务器320、数据服务器325、推送通知服务器330、客户端计算装置335、客户端计算装置340和/或客户端计算装置345。举例来说,计算环境300可包含网络350,网络350可包含一个或多个专用网络(例如可例如通过操作阴影代理计算平台310且可包含一个或多个局域网、广域网、虚拟专用网络等等的组织来操作和/或与所述组织相关联的一个或多个网络)和/或一个或多个公用网络(其可例如包含因特网和/或一个或多个其它网络,且可使一个或多个专用网络和连接到其的一个或多个计算装置互连到未连接到此类专用网络的一个或多个其它计算装置)。
如图3中所见,阴影代理计算平台310可包含一个或多个处理器311、存储器313和通信接口312。存储器313可存储和/或以其它方式包含一个或多个程序模块,所述程序模块包含在由一个或多个处理器311执行时致使阴影代理计算平台310执行本文中所描述的一个或多个功能的指令。举例来说,存储器313可存储和/或以其它方式包含代理客户端模块314,代理客户端模块314可包含在由一个或多个处理器311执行时致使阴影代理计算平台310执行本文中所描述的一个或多个功能的指令,所述功能例如使用阴影代理来提供对一个或多个数据服务器的连续监控。另外,存储器313可存储、维持和/或以其它方式提供一个或多个数据库,例如代理客户端数据库315,在代理客户端数据库315中,阴影代理计算平台310可存储和/或维持各种类型的信息,包含与使用阴影代理来提供对一个或多个数据服务器的连续监控相关联的信息。另外,通信接口312可以是配置成支持阴影代理计算平台310与网络350和/或其一个或多个子网之间的通信的网络接口。
图4A到4G描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的实例事件序列。如图4A到4G中所见,所描绘实例事件序列的一个或多个步骤可形成算法的全部或部分,所述算法可由一个或多个计算装置在使用阴影代理来提供对数据服务器的连续监控时根据一个或多个实例实施例执行。参考图4A,在步骤401处,客户端计算装置335可接收请求用代理服务器进行注册的输入。在步骤402处,客户端计算装置335可将注册请求发送到阴影代理计算平台310(例如基于在步骤401处接收到的输入)。
在步骤403处,阴影代理计算平台310可从客户端计算装置335接收注册请求。举例来说,在步骤403处,阴影代理计算平台310可通过通信接口(例如通信接口312)从第一客户端计算装置(例如客户端计算装置335)接收注册请求,以对与第一用户帐户相关联的服务器(例如数据服务器320、数据服务器325)进行代理监控。在步骤404处,阴影代理计算平台310可存储与从客户端计算装置335接收到的注册请求相关联的注册信息。举例来说,在步骤404处,阴影代理计算平台310可存储与注册请求相关联的注册信息,从而对与第一用户帐户相关联的服务器进行代理监控。阴影代理计算平台310可例如存储此类注册信息以创建与第一用户帐户相关联的智能客户端代理。另外或替代地,注册信息(其可例如在步骤404处由阴影代理计算平台310存储)可包含启用与第一用户帐户相关联的智能客户端代理以代表第一客户端计算装置(例如客户端计算装置335)针对新数据轮询服务器所需的连接设置、凭证和/或其它信息。
在步骤405处,阴影代理计算平台310可将配置信息发送到客户端计算装置335。举例来说,在步骤405处,阴影代理计算平台310可通过通信接口(例如通信接口312)将与相关联于第一用户帐户的服务器的代理监控相关联的配置信息发送到第一客户端计算装置(例如客户端计算装置335)。阴影代理计算平台310可例如发送此类配置信息以在针对新数据轮询时使和/或致使第一客户端计算装置(例如客户端计算装置335)能够连接到阴影代理计算平台310,而非直接连接到数据服务器(例如数据服务器320、数据服务器325)。
参考图4B,在步骤406处,客户端计算装置335可从阴影代理计算平台310接收配置信息。在步骤407处,客户端计算装置335可基于从阴影代理计算平台310接收到的配置信息而更新设置信息。
在步骤408处,阴影代理计算平台310可将配置信息发送到客户端计算装置340。举例来说,在发送与相关联于第一用户帐户的服务器的代理监控相关联的配置信息(例如在步骤405处)之后,阴影代理计算平台310可通过通信接口(例如通信接口312)将与相关联于第一用户帐户的服务器的代理监控相关联的第二配置信息发送到第二客户端计算装置(例如客户端计算装置340)。举例来说,第二客户端计算装置(例如客户端计算装置340)可由与第一客户端计算装置(例如客户端计算装置335)相同的用户使用,且在配置一个客户端装置上的代理监控之后,阴影代理计算平台310可自动地配置由同一用户使用的其它装置,例如第二客户端计算装置(例如客户端计算装置340),以同样通过阴影代理计算平台310针对新数据轮询。举例来说,第二配置信息可在针对新数据轮询时使和/或致使第二客户端计算装置(例如客户端计算装置340)能够连接到阴影代理计算平台310,而非直接连接到数据服务器(例如数据服务器320、数据服务器325)。
在步骤409处,客户端计算装置340可从阴影代理计算平台310接收配置信息。在步骤410处,客户端计算装置340可基于从阴影代理计算平台310接收到的配置信息而更新设置信息。
参考图4C,在步骤411处,客户端计算装置335可将轮询请求发送到阴影代理计算平台310。在步骤412处,阴影代理计算平台310可从客户端计算装置335接收轮询请求。举例来说,在步骤412处,阴影代理计算平台310可通过通信接口(例如通信接口312)从第一客户端计算装置(例如客户端计算装置335)接收与第一用户帐户相关联的第一轮询请求,同时与第一用户帐户相关联的智能客户端代理在被动模式中操作。
在一些实施例中,***可向不同于第一用户帐户的第二用户帐户提供第二智能客户端代理。举例来说,在一些例子中,阴影代理计算平台310可向不同于第一用户帐户的第二用户帐户提供第二智能客户端代理。举例来说,阴影代理计算平台310可向多个其它用户帐户提供多个智能客户端代理,所述用户帐户可由不同于第一客户端计算装置(例如客户端计算装置335)的用户的其它装置(例如客户端计算装置345)的其它用户使用。
在步骤413处,阴影代理计算平台310可存储与从客户端计算装置335接收到的轮询请求相关联的一个或多个凭证。举例来说,在步骤413处,在将第一轮询请求转发到与第一用户帐户相关联的服务器之前,阴影代理计算平台310可存储用于访问与第一用户帐户相关联的服务器的一个或多个凭证。另外,可使用第一轮询请求从第一客户端计算装置(例如客户端计算装置335)接收(例如通过阴影代理计算平台310)用于访问与第一用户帐户相关联的服务器的一个或多个凭证。
在一些实施例中,用于访问与第一用户帐户相关联的服务器的一个或多个凭证可包含一个或多个长期凭证,包含与第一用户帐户相关联的用户名或与第一用户帐户相关联的密码中的一个或多个。举例来说,用于访问与第一用户帐户相关联的服务器的一个或多个凭证(其可例如在步骤413处由阴影代理计算平台310存储)可包含一个或多个长期凭证,例如与第一用户帐户相关联的用户名、与第一用户帐户相关联的密码,和/或一个或多个其它凭证。
在步骤414处,阴影代理计算平台310可将轮询请求转发到数据服务器(例如数据服务器320、数据服务器325,等等),同时用于与客户端计算装置335相关联的用户帐户的阴影代理计算平台310所提供的代理客户端在被动模式中操作。举例来说,在步骤414处,阴影代理计算平台310可通过通信接口(例如通信接口312)将第一轮询请求转发到与第一用户帐户相关联的服务器,同时与第一用户帐户相关联的智能客户端代理在被动模式中操作。
在步骤415处,阴影代理计算平台310可从数据服务器接收轮询响应。举例来说,在将第一轮询请求转发到与第一用户帐户相关联的服务器之后,阴影代理计算平台310可通过通信接口(例如通信接口312)从与第一用户帐户相关联的服务器接收第一轮询响应。在一些实施例中,从与第一用户帐户相关联的服务器接收到的第一轮询响应可包含用于访问与第一用户帐户相关联的服务器的一个或多个短期凭证。举例来说,在一些例子中,从与第一用户帐户相关联的服务器接收到(例如在步骤415处)的第一轮询响应可包含用于访问与第一用户帐户相关联的服务器的一个或多个短期凭证。参考图4D,在步骤416处,阴影代理计算平台310可存储从数据服务器接收到和/或与从数据服务器接收到的轮询响应相关联的一个或多个凭证。举例来说,在步骤416处,阴影代理计算平台310可存储用于访问与第一用户帐户相关联的服务器的一个或多个短期凭证。
在一些实施例中,用于访问与第一用户帐户相关联的服务器的一个或多个短期凭证包含至少一个会话cookie。举例来说,阴影代理计算平台310可从与第一用户帐户相关联的服务器接收会话cookie和/或其它短期凭证,同时在被动模式中轮询服务器,并且会话cookie和/或其它短期凭证可自身或结合长期凭证由代理***使用,以便在主动模式中轮询服务器时访问与第一用户帐户相关联的服务器,如下文更详细地说明。
在步骤417处,阴影代理计算平台310可将从数据服务器接收到的轮询响应发送到客户端计算装置335。举例来说,在步骤417处,阴影代理计算平台310可通过通信接口(例如通信接口312)将从与第一用户帐户相关联的服务器接收到的第一轮询响应发送到第一客户端计算装置(例如客户端计算装置335)。
在步骤418处,阴影代理计算平台310可检测客户端装置(例如客户端计算装置335)处于休眠。举例来说,在步骤481处,阴影代理计算平台310可检测第一客户端计算装置(例如客户端计算装置335)处于休眠。在一些实施例中,检测第一客户端计算装置处于休眠可包含确定在从第一客户端计算装置接收到最末轮询请求开始经过预定量的时间之后,尚未从第一客户端计算装置接收到后续轮询请求。举例来说,在检测第一客户端计算装置(例如客户端计算装置335)处于休眠时,阴影代理计算平台310可确定在从第一客户端计算装置(例如客户端计算装置335)接收到最末轮询请求开始经过预定量的时间之后,尚未从第一客户端计算装置(例如客户端计算装置335)接收到后续轮询请求。举例来说,阴影代理计算平台310可基于在从第一客户端计算装置(例如客户端计算装置335)接收到最末轮询请求的预定量的时间(例如一分钟、两分钟,等等)内未从第一客户端计算装置(例如客户端计算装置335)接收到轮询请求而确定第一客户端计算装置(例如客户端计算装置335)处于休眠。预定量的时间可例如限定在由阴影代理计算平台310使用的一个或多个配置设置中。在一些例子中,第一客户端计算装置(例如客户端计算装置335)可中止针对新数据轮询阴影代理计算平台310,这是因为第一客户端计算装置(例如客户端计算装置335)和/或在第一客户端计算装置(例如客户端计算装置335)上运行的客户端应用程序已经进入休眠模式,因为第一客户端计算装置(例如客户端计算装置335)已失去其网络连接或以其它方式无法连接到阴影代理计算平台310,和/或因为一个或多个其它原因。举例来说,在一些例子中,阴影代理计算平台310可确定客户端计算装置335因为客户端计算装置335已崩溃、耗尽电池或以其它方式终止而处于休眠。在一些例子中,阴影代理计算平台310可确定客户端计算装置335因为客户端计算装置335上的客户端应用程序已主动地退出(例如通过客户端计算装置335的用户)或已通过在客户端计算装置335上运行的操作***退出而处于休眠。在一些例子中,阴影代理计算平台310可确定客户端计算装置335因为客户端计算装置335已移动到信号覆盖区域之外、信用透支(信用可例如为客户端计算装置335连接到一个或多个网络服务提供商和/或与一个或多个网络服务提供商交换数据所需)或以其它方式停止与阴影代理计算平台310和/或一个或多个其它计算机***通信而处于休眠。在一些例子中,阴影代理计算平台310可确定客户端计算装置335因为在客户端计算装置335上运行的客户端操作***已经使计算资源的客户端计算装置335上的客户端应用程序停止和/或已经拒绝或以其它方式阻止此类客户端应用程序在客户端计算装置335上运行而处于休眠。
在步骤419处,阴影代理计算平台310可发起用于与客户端计算装置335相关联的用户帐户的阴影代理计算平台310所提供的代理客户端的主动模式。举例来说,响应于检测到第一客户端计算装置(例如客户端计算装置335)处于休眠,阴影代理计算平台310可发起与第一用户帐户相关联的智能客户端代理的主动模式。举例来说,与第一用户帐户相关联的智能客户端代理可在被动模式中或在主动模式中操作,在被动模式中,智能客户端代理从第一客户端计算装置(例如客户端计算装置335)接收轮询请求并将其转发到与第一用户帐户相关联的服务器(例如数据服务器320、数据服务器325)上,在主动模式中,智能客户端代理自身将轮询请求发送到服务器而没有来自第一客户端计算装置(例如客户端计算装置335)的输入或提示,举例来说,这是因为第一客户端计算装置(例如客户端计算装置335)不再将轮询请求发送到阴影代理计算平台310。
在步骤420处,阴影代理计算平台310可将休眠命令发送到客户端计算装置340。举例来说,响应于检测到第一客户端计算装置处于休眠,阴影代理计算平台310可通过通信接口(例如通信接口312)将命令发送到与第一用户帐户相关联的第二客户端计算装置(例如客户端计算装置340),所述命令配置成致使与第一用户帐户相关联的第二客户端计算装置进入休眠模式。举例来说,阴影代理计算平台310可命令第二客户端计算装置(例如客户端计算装置340)进入休眠模式和/或以其它方式中断轮询阴影代理计算平台310,这是因为阴影代理计算平台310将要进入主动操作模式并开始轮询数据服务器,因此第二客户端计算装置(例如客户端计算装置340)不需要继续轮询阴影代理计算平台310,这是因为在新数据变得可在数据服务器处获得的情况下,阴影代理计算平台310可通知和/或唤醒第一客户端计算装置(例如客户端计算装置335)和第二客户端计算装置(例如客户端计算装置340)两者,如下文更详细地说明。
参考图4E,在步骤421处,阴影代理计算平台310可将轮询请求发送到数据服务器。举例来说,在步骤421处,阴影代理计算平台310可通过通信接口(例如通信接口312)将第二轮询请求发送到与第一用户帐户相关联的服务器,同时与第一用户帐户相关联的智能客户端代理在主动模式中操作。
在一些实施例中,将第二轮询请求发送到与第一用户帐户相关联的服务器可包含将一个或多个长期凭证发送到与第一用户帐户相关联的服务器。举例来说,在将第二轮询请求发送到与第一用户帐户相关联的服务器时,阴影代理计算平台310可将一个或多个长期凭证发送到与第一用户帐户相关联的服务器。举例来说,与第一用户帐户相关联的智能客户端代理可使用所存储的凭证来访问数据服务器,同时与第一用户帐户相关联的智能客户端代理在主动模式中操作(例如并且代表客户端计算装置335和/或客户端计算装置340针对新数据轮询与第一用户帐户相关联的数据服务器)。
在一些实施例中,将第二轮询请求发送到与第一用户帐户相关联的服务器可包含将与一个或多个短期凭证相关联的会话信息发送到与第一用户帐户相关联的服务器。举例来说,在将第二轮询请求发送到与第一用户帐户相关联的服务器时,阴影代理计算平台310可将与一个或多个短期凭证相关联的会话信息发送到与第一用户帐户相关联的服务器。举例来说,此类会话信息可包含至少一个会话cookie和/或其它信息,并且会话信息可由数据服务器接收和/或检验,且可因此使阴影代理计算平台310能够在主动模式中轮询数据服务器时访问与第一用户帐户相关联的数据服务器。
在步骤422处,阴影代理计算平台310可从数据服务器接收轮询响应。在步骤423处,阴影代理计算平台310可确定唤醒客户端装置(例如客户端计算装置335)。举例来说,在步骤423处,阴影代理计算平台310可基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置(例如客户端计算装置335)。
在一些实施例中,基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置可包含基于指示可在第一用户帐户的服务器处获得新数据的与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置。举例来说,在基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置(例如客户端计算装置335)时,阴影代理计算平台310可基于指示可在第一用户帐户的服务器处获得新数据的与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置(例如客户端计算装置335)。在一些例子中,阴影代理计算平台310可确定可获得特定类型的新数据和/或确定可获得特定量的新数据,并且因此可决定相应地唤醒第一客户端计算装置(例如客户端计算装置335)。在一些例子中,可由阴影代理计算平台310使用和/或可由第一客户端计算装置(例如客户端计算装置335)的用户和/或一个或多个网络管理员限定的一个或多个策略和/或设置可限定用于唤醒第一客户端计算装置(例如客户端计算装置335)和/或以其它方式将通知发送到第一客户端计算装置(例如客户端计算装置335)和/或第二客户端计算装置(例如客户端计算装置340)的一个或多个状况和/或条件。
在一些实施例中,基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置可包含基于指示在访问与第一用户帐户相关联的服务器时使用的一个或多个所存储凭证已过期的与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置。举例来说,在基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置(例如客户端计算装置335)时,阴影代理计算平台310可基于指示在访问与第一用户帐户相关联的服务器时使用的一个或多个所存储凭证已过期的与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置(例如客户端计算装置335)。举例来说,阴影代理计算平台310可基于由阴影代理计算平台310上的客户端代理使用以访问数据服务器的所存储凭证过期而确定唤醒第一客户端计算装置(例如客户端计算装置335),这是因为唤醒第一客户端计算装置(例如客户端计算装置335)可致使阴影代理计算平台310上的客户端代理再次进入被动模式,如下文所说明,其中阴影代理计算平台310可从第一客户端计算装置(例如客户端计算装置335)接收更新后的凭证,例如一个或多个更新后的长期凭证,和/或可从数据服务器接收更新后的凭证,例如一个或多个更新后的短期凭证。
在步骤424处,阴影代理计算平台310可将通知发送到客户端计算装置335。举例来说,响应于基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置(例如客户端计算装置335),阴影代理计算平台310可通过通信接口(例如通信接口312)将唤醒第一客户端计算装置(例如客户端计算装置335)的通知发送到第一客户端计算装置(例如客户端计算装置335)。在步骤425处,阴影代理计算平台310可将通知发送到客户端计算装置340。举例来说,在发送唤醒第一客户端计算装置(例如客户端计算装置335)的通知之后,阴影代理计算平台310可通过通信接口(例如通信接口312)将唤醒与第一用户帐户相关联的第二客户端计算装置(例如客户端计算装置340)的通知发送到与第一用户帐户相关联的第二客户端计算装置(例如客户端计算装置340)。
在一些额外和/或替代的例子中,阴影代理计算平台310可识别和/或检测待发送到第一客户端计算装置(例如客户端计算装置335)的可能实际上无法唤醒第一客户端计算装置(例如客户端计算装置335)的消息,而非基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置(例如客户端计算装置335)并且发送唤醒第一客户端计算装置(例如客户端计算装置335)的通知。举例来说,阴影代理计算平台310可将指示可在服务器处获得新邮件或其它内容的文本消息或其它消息发送到第一客户端计算装置(例如客户端计算装置335),这可引导第一客户端计算装置(例如客户端计算装置335)的用户自身重启第一客户端计算装置(例如客户端计算装置335)上的客户端应用程序,并且已经通过第一客户端计算装置(例如客户端计算装置335)的用户手动重启的第一客户端计算装置(例如客户端计算装置335)上的客户端应用程序接着可恢复针对新数据轮询阴影代理计算平台310。
参考图4F,在步骤426处,客户端计算装置335可从阴影代理计算平台310接收通知。在步骤427处,客户端计算装置335可将轮询请求发送到阴影代理计算平台310。在步骤428处,阴影代理计算平台310可从客户端计算装置335接收轮询请求。举例来说,在发送唤醒第一客户端计算装置(例如客户端计算装置335)的通知之后,阴影代理计算平台310可通过通信接口(例如通信接口312)从第一客户端计算装置(例如客户端计算装置335)接收与第一用户帐户相关联的第三轮询请求,同时与第一用户帐户相关联的智能客户端代理在主动模式中操作。
在步骤429处,阴影代理计算平台310可发起用于与客户端计算装置335相关联的用户帐户的阴影代理计算平台310所提供的代理客户端的被动模式。举例来说,响应于从第一客户端计算装置(例如客户端计算装置335)接收到与第一用户帐户相关联的第三轮询请求,阴影代理计算平台310可发起与第一用户帐户相关联的智能客户端代理的被动模式。举例来说,在步骤429处,当第一客户端计算装置(例如客户端计算装置335)再次被唤醒并主动地轮询阴影代理计算平台310时,阴影代理计算平台310可将代理客户端从主动模式切换回到被动模式,所述阴影代理计算平台310随后轮询数据服务器。
在步骤430处,阴影代理计算平台310可存储与从客户端计算装置335接收到的轮询请求相关联的一个或多个凭证(例如类似于在步骤413处阴影代理计算平台310可存储一个或多个凭证的方式,如上文所论述)。参考图4G,在步骤431处,阴影代理计算平台310可将轮询请求转发到数据服务器(例如类似于在步骤414处阴影代理计算平台310可将轮询请求转发到数据服务器的方式,如上文所论述)。在步骤432处,阴影代理计算平台310可从数据服务器接收轮询响应(例如类似于在步骤415处阴影代理计算平台310可从数据服务器接收轮询响应的方式,如上文所论述)。在步骤433处,阴影代理计算平台310可存储从数据服务器接收到和/或与从数据服务器接收到的轮询响应相关联的一个或多个凭证(例如类似于在步骤416处阴影代理计算平台310可存储此类凭证的方式,如上文所论述)。在步骤434处,阴影代理计算平台310可将轮询响应发送到客户端计算装置335(例如类似于在步骤417处阴影代理计算平台310可发送此类轮询响应的方式,如上文所论述)。
随后,事件序列可继续,其中阴影代理计算平台310上的代理客户端基于客户端计算装置335是否针对来自服务器的新信息结合与阴影代理计算平台310相关联的用户帐户轮询阴影代理计算平台310而在主动模式与被动模式之间切换。另外或替代地,在用于其它用户帐户和/或其它装置的阴影代理计算平台310上运行和/或由所述阴影代理计算平台310提供的一个或多个其它代理客户端可以类似方式继续操作,以便使用阴影代理向一个或多个其它用户提供对一个或多个数据服务器的连续监控。
图5描绘根据一个或多个实例实施例的使用阴影代理来提供对数据服务器的连续监控的说明性方法。参考图5,在步骤505处,计算平台可从第一客户端计算装置接收与第一用户帐户相关联的第一轮询请求,同时与第一用户帐户相关联的智能客户端代理在被动模式中操作。在步骤510处,计算平台可将第一轮询请求转发到与第一用户帐户相关联的服务器,同时与第一用户帐户相关联的智能客户端代理在被动模式中操作。在步骤515处,计算平台可检测第一客户端计算装置处于休眠。在步骤520处,响应于检测到第一客户端计算装置处于休眠,计算平台可发起与第一用户帐户相关联的智能客户端代理的主动模式。在步骤525处,计算平台可将第二轮询请求发送到与第一用户帐户相关联的服务器,同时与第一用户帐户相关联的智能客户端代理在主动模式中操作。在步骤530处,计算平台可基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置。在步骤535处,响应于基于与第二轮询请求相关联的轮询响应而确定唤醒第一客户端计算装置,计算平台可将唤醒第一客户端计算装置的通知发送到第一客户端计算装置。
如上文所说明,本公开的各种方面涉及使用阴影代理来提供对数据服务器的连续监控。虽然已经以特定地针对结构特征和/或方法动作的语言来描述主题,但应理解,所附权利要求书中所限定的主题未必限于上文所描述的特定特征或动作。相反,上文所描述的特定特征和动作被描述为所附权利要求的一些实例实施方案。

Claims (20)

1.一种使用阴影代理对数据服务器进行连续监控的***,包括:
至少一个处理器;
通信接口,通信地耦合到所述至少一个处理器;以及
存储器,存储计算机可读指令,所述计算机可读指令在由所述至少一个处理器执行时,致使所述***:
通过所述通信接口从第一客户端计算装置接收与第一用户帐户相关联的第一轮询请求,同时与所述第一用户帐户相关联的智能客户端代理在被动模式中操作;
通过所述通信接口将所述第一轮询请求转发到与所述第一用户帐户相关联的服务器,同时与所述第一用户帐户相关联的所述智能客户端代理在所述被动模式中操作;
检测所述第一客户端计算装置处于休眠;
响应于检测到所述第一客户端计算装置处于休眠:
通过所述通信接口将命令发送到与所述第一用户帐户相关联的第二客户端计算装置,所述命令配置成致使与所述第一用户帐户相关联的所述第二客户端计算装置进入休眠模式;以及
发起与所述第一用户帐户相关联的所述智能客户端代理的主动模式;
通过所述通信接口将第二轮询请求发送到与所述第一用户帐户相关联的所述服务器,同时与所述第一用户帐户相关联的所述智能客户端代理在所述主动模式中操作;
基于与所述第二轮询请求相关联的轮询响应而确定唤醒所述第一客户端计算装置;以及
响应于基于与所述第二轮询请求相关联的所述轮询响应而确定唤醒所述第一客户端计算装置,通过所述通信接口将唤醒所述第一客户端计算装置的通知发送到所述第一客户端计算装置。
2.根据权利要求1所述的***,其中所述存储器存储额外计算机可读指令,所述额外计算机可读指令在由所述至少一个处理器执行时进一步致使所述***:
在接收与所述第一用户帐户相关联的所述第一轮询请求之前:
通过所述通信接口从所述第一客户端计算装置接收注册请求,以对与所述第一用户帐户相关联的所述服务器进行代理监控;
存储与所述注册请求相关联的注册信息,从而对与所述第一用户帐户相关联的所述服务器进行代理监控;以及
通过所述通信接口将与相关联于所述第一用户帐户的所述服务器的所述代理监控相关联的配置信息发送到所述第一客户端计算装置。
3.根据权利要求2所述的***,其中所述存储器存储额外计算机可读指令,所述额外计算机可读指令在由所述至少一个处理器执行时进一步致使所述***:
在发送与相关联于所述第一用户帐户的所述服务器的所述代理监控相关联的所述配置信息之后,通过所述通信接口将与相关联于所述第一用户帐户的所述服务器的所述代理监控相关联的第二配置信息发送到第二客户端计算装置。
4.根据权利要求1所述的***,其中所述***向不同于所述第一用户帐户的第二用户帐户提供第二智能客户端代理。
5.根据权利要求1所述的***,其中所述存储器存储额外计算机可读指令,所述额外计算机可读指令在由所述至少一个处理器执行时进一步致使所述***:
在将所述第一轮询请求转发到与所述第一用户帐户相关联的所述服务器之前,存储用于访问与所述第一用户帐户相关联的所述服务器的一个或多个凭证,且用于访问与所述第一用户帐户相关联的所述服务器的所述一个或多个凭证是使用所述第一轮询请求从所述第一客户端计算装置接收到的。
6.根据权利要求5所述的***,其中用于访问与所述第一用户帐户相关联的所述服务器的所述一个或多个凭证包括一个或多个长期凭证,包含与所述第一用户帐户相关联的用户名或与所述第一用户帐户相关联的密码中的一个或多个。
7.根据权利要求6所述的***,其中将所述第二轮询请求发送到与所述第一用户帐户相关联的所述服务器包括将所述一个或多个长期凭证发送到与所述第一用户帐户相关联的所述服务器。
8.根据权利要求1所述的***,其中所述存储器存储额外计算机可读指令,所述额外计算机可读指令在由所述至少一个处理器执行时进一步致使所述***:
在将所述第一轮询请求转发到与所述第一用户帐户相关联的所述服务器之后,通过所述通信接口从与所述第一用户帐户相关联的所述服务器接收第一轮询响应;以及
通过所述通信接口将从与所述第一用户帐户相关联的所述服务器接收到的所述第一轮询响应发送到所述第一客户端计算装置。
9.根据权利要求8所述的***,
其中从与所述第一用户帐户相关联的所述服务器接收到的所述第一轮询响应包括用于访问与所述第一用户帐户相关联的所述服务器的一个或多个短期凭证,以及
其中所述存储器存储额外计算机可读指令,所述额外计算机可读指令在由所述至少一个处理器执行时进一步致使所述***存储用于访问与所述第一用户帐户相关联的所述服务器的所述一个或多个短期凭证。
10.根据权利要求9所述的***,其中用于访问与所述第一用户帐户相关联的所述服务器的所述一个或多个短期凭证包含至少一个会话cookie。
11.根据权利要求9所述的***,其中将所述第二轮询请求发送到与所述第一用户帐户相关联的所述服务器包括将与所述一个或多个短期凭证相关联的会话信息发送到与所述第一用户帐户相关联的所述服务器。
12.根据权利要求1所述的***,其中检测所述第一客户端计算装置处于休眠包括确定在从所述第一客户端计算装置接收到最末轮询请求开始经过预定量的时间之后,尚未从所述第一客户端计算装置接收到后续轮询请求。
13.根据权利要求1所述的***,其中基于与所述第二轮询请求相关联的所述轮询响应而确定唤醒所述第一客户端计算装置包括基于指示能够在所述第一用户帐户的所述服务器处获得新数据的与所述第二轮询请求相关联的所述轮询响应而确定唤醒所述第一客户端计算装置。
14.根据权利要求1所述的***,其中基于与所述第二轮询请求相关联的所述轮询响应而确定唤醒所述第一客户端计算装置包括基于指示在访问与所述第一用户帐户相关联的所述服务器时使用的一个或多个所存储凭证已过期的与所述第二轮询请求相关联的所述轮询响应而确定唤醒所述第一客户端计算装置。
15.根据权利要求1所述的***,其中所述存储器存储额外计算机可读指令,所述额外计算机可读指令在由所述至少一个处理器执行时进一步致使所述***:
在发送唤醒所述第一客户端计算装置的所述通知之后,通过所述通信接口将唤醒与所述第一用户帐户相关联的所述第二客户端计算装置的通知发送到与所述第一用户帐户相关联的第二客户端计算装置。
16.根据权利要求1所述的***,其中所述存储器存储额外计算机可读指令,所述额外计算机可读指令在由所述至少一个处理器执行时进一步致使所述***:
在发送唤醒所述第一客户端计算装置的所述通知之后:
通过所述通信接口从所述第一客户端计算装置接收与所述第一用户帐户相关联的第三轮询请求,同时与所述第一用户帐户相关联的所述智能客户端代理在所述主动模式中操作;以及
响应于从所述第一客户端计算装置接收到与所述第一用户帐户相关联的所述第三轮询请求,发起与所述第一用户帐户相关联的所述智能客户端代理的所述被动模式。
17.根据权利要求1所述的***,其中发送配置成致使与所述第一用户帐户相关联的所述第二客户端计算装置进入休眠模式的所述命令致使与所述第一用户帐户相关联的所述第二客户端计算装置中断向所述***发送轮询请求。
18.一种使用阴影代理对数据服务器进行连续监控的方法,包括:
在包括至少一个处理器、存储器和通信接口的计算平台处:
由所述至少一个处理器通过所述通信接口从第一客户端计算装置接收与第一用户帐户相关联的第一轮询请求,同时与所述第一用户帐户相关联的智能客户端代理在被动模式中操作;
由所述至少一个处理器通过所述通信接口将所述第一轮询请求转发到与所述第一用户帐户相关联的服务器,同时与所述第一用户帐户相关联的所述智能客户端代理在所述被动模式中操作;
由所述至少一个处理器检测所述第一客户端计算装置处于休眠;
响应于检测到所述第一客户端计算装置处于休眠:
由所述至少一个处理器通过所述通信接口将命令发送到与所述第一用户帐户相关联的第二客户端计算装置,所述命令配置成致使与所述第一用户帐户相关联的所述第二客户端计算装置进入休眠模式;以及
由所述至少一个处理器发起与所述第一用户帐户相关联的所述智能客户端代理的主动模式;
由所述至少一个处理器通过所述通信接口将第二轮询请求发送到与所述第一用户帐户相关联的所述服务器,同时与所述第一用户帐户相关联的所述智能客户端代理在所述主动模式中操作;
由所述至少一个处理器基于与所述第二轮询请求相关联的轮询响应而确定唤醒所述第一客户端计算装置;以及
响应于基于与所述第二轮询请求相关联的所述轮询响应而确定唤醒所述第一客户端计算装置,由所述至少一个处理器通过所述通信接口将唤醒所述第一客户端计算装置的通知发送到所述第一客户端计算装置。
19.根据权利要求18所述的方法,其中检测所述第一客户端计算装置处于休眠包括确定在从所述第一客户端计算装置接收到最末轮询请求开始经过预定量的时间之后,尚未从所述第一客户端计算装置接收到后续轮询请求。
20.一种计算机可读存储介质,存储指令,所述指令在由包括至少一个处理器、存储器和通信接口的计算机***执行时致使所述计算机***:
通过所述通信接口从第一客户端计算装置接收与第一用户帐户相关联的第一轮询请求,同时与所述第一用户帐户相关联的智能客户端代理在被动模式中操作;
通过所述通信接口将所述第一轮询请求转发到与所述第一用户帐户相关联的服务器,同时与所述第一用户帐户相关联的所述智能客户端代理在所述被动模式中操作;
检测所述第一客户端计算装置处于休眠;
响应于检测到所述第一客户端计算装置处于休眠:
通过所述通信接口将命令发送到与所述第一用户帐户相关联的第二客户端计算装置,所述命令配置成致使与所述第一用户帐户相关联的所述第二客户端计算装置进入休眠模式;以及
发起与所述第一用户帐户相关联的所述智能客户端代理的主动模式;
通过所述通信接口将第二轮询请求发送到与所述第一用户帐户相关联的所述服务器,同时与所述第一用户帐户相关联的所述智能客户端代理在所述主动模式中操作;
基于与所述第二轮询请求相关联的轮询响应而确定唤醒所述第一客户端计算装置;以及
响应于基于与所述第二轮询请求相关联的所述轮询响应而确定唤醒所述第一客户端计算装置,通过所述通信接口将唤醒所述第一客户端计算装置的通知发送到所述第一客户端计算装置。
CN201580082854.1A 2015-08-11 2015-08-18 使用阴影代理对数据服务器进行连续监控 Active CN107925607B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/823,268 US9860149B2 (en) 2015-08-11 2015-08-11 Continuous monitoring of data servers using a shadowing proxy
US14/823,268 2015-08-11
PCT/US2015/045647 WO2017027047A1 (en) 2015-08-11 2015-08-18 Continuous monitoring of data servers using a shadowing proxy

Publications (2)

Publication Number Publication Date
CN107925607A CN107925607A (zh) 2018-04-17
CN107925607B true CN107925607B (zh) 2021-06-15

Family

ID=54015227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580082854.1A Active CN107925607B (zh) 2015-08-11 2015-08-18 使用阴影代理对数据服务器进行连续监控

Country Status (3)

Country Link
US (1) US9860149B2 (zh)
CN (1) CN107925607B (zh)
WO (1) WO2017027047A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262200B2 (en) 2014-06-25 2016-02-16 Independenceit, Inc. Methods and systems for provisioning a virtual resource in a mixed-use server
US10462265B2 (en) * 2017-02-17 2019-10-29 Plex, Inc. On-demand startup of offline servers and connection routing
MX2019011257A (es) 2017-03-28 2019-11-01 Cloudjumper Corp Metodos y sistemas para proporcionar acceso de activacion por demanda a los servidores de sesiones.

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523806A (zh) * 2006-08-03 2009-09-02 思杰***有限公司 用于使用动态响应时间来确定网络服务的响应度的方法和设备
CN102369509A (zh) * 2009-03-31 2012-03-07 亚马逊技术股份有限公司 关系数据管理的控制服务
CN104202389A (zh) * 2014-08-28 2014-12-10 深圳市银翔科技有限公司 云环境下的存储空间和运行状态的监测方法及云存储***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100459504C (zh) * 2003-08-20 2009-02-04 苹果公司 为网络上的服务实现休眠代理的方法和装置
TW201008234A (en) 2008-08-12 2010-02-16 Acer Inc Energy-saving method for handheld Internet accessing device, the handheld Internet accessing device, and the real-time message system
US20100083255A1 (en) 2008-09-26 2010-04-01 Microsoft Corporation Notification batching based on user state
US20100088387A1 (en) 2008-10-03 2010-04-08 Apple Inc. Email Notification Proxy
US9524198B2 (en) * 2012-07-27 2016-12-20 Google Inc. Messaging between web applications
US8990778B1 (en) * 2012-09-14 2015-03-24 Amazon Technologies, Inc. Shadow test replay service
KR102037416B1 (ko) * 2012-12-17 2019-10-28 삼성전자주식회사 외부 기기 관리 방법, 외부 기기의 동작 방법, 호스트 단말, 관리 서버 및 외부 기기
CN104348989B (zh) * 2013-08-05 2017-11-21 ***通信集团公司 机顶盒与通话终端切换通话的方法及应用服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523806A (zh) * 2006-08-03 2009-09-02 思杰***有限公司 用于使用动态响应时间来确定网络服务的响应度的方法和设备
CN102369509A (zh) * 2009-03-31 2012-03-07 亚马逊技术股份有限公司 关系数据管理的控制服务
CN104202389A (zh) * 2014-08-28 2014-12-10 深圳市银翔科技有限公司 云环境下的存储空间和运行状态的监测方法及云存储***

Also Published As

Publication number Publication date
CN107925607A (zh) 2018-04-17
US20170048125A1 (en) 2017-02-16
US9860149B2 (en) 2018-01-02
WO2017027047A1 (en) 2017-02-16

Similar Documents

Publication Publication Date Title
US10129109B2 (en) Managing change events for devices in an enterprise system
US10439916B2 (en) Client-side fault tolerance in a publish-subscribe system
US10404642B2 (en) Message notification method, system, and device for a communication account
US9544396B2 (en) Remote application installation and control for a mobile device
JP7389791B2 (ja) コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装
US11516160B1 (en) Techniques for efficient messaging client communication by updating user subscription stores based on subscription type and commands
US10582004B2 (en) Resilient messaging infrastructure
US10512053B2 (en) System and method for selectively hibernating and restarting a node of an application instance
US20170195275A1 (en) Delivery of email to a mobile device
US11122000B1 (en) Notifying a publisher of life-cycle events for topic subscription
US11381537B1 (en) Message transfer agent architecture for email delivery systems
US20140282988A1 (en) Retry and Snapshot Enabled Cross-Platform Synchronized Communication Queue
US10404635B2 (en) Optimizing data replication across multiple data centers
CN107925607B (zh) 使用阴影代理对数据服务器进行连续监控
US8639965B1 (en) Client based high availability method for message delivery
US20220053007A1 (en) System and method for device quarantine management
CN112256447A (zh) 消息通知方法以及***
CN110113437B (zh) 一种用于提供web服务的增强的可靠性的方法和装置
CN111835857B (zh) 用于访问数据的方法和装置
CN115190125A (zh) 一种缓存集群的监控方法和装置
WO2021126400A1 (en) Preventing notification loss during temporary network disconnection
US11838219B1 (en) Event subscription for serviceability via bidirectional proxy

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
GR01 Patent grant
GR01 Patent grant