CN102664909B - 通过用户标识符重新建立推送通知信道 - Google Patents

通过用户标识符重新建立推送通知信道 Download PDF

Info

Publication number
CN102664909B
CN102664909B CN201210020280.3A CN201210020280A CN102664909B CN 102664909 B CN102664909 B CN 102664909B CN 201210020280 A CN201210020280 A CN 201210020280A CN 102664909 B CN102664909 B CN 102664909B
Authority
CN
China
Prior art keywords
user
computing equipment
identifier
service
agency service
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
CN201210020280.3A
Other languages
English (en)
Other versions
CN102664909A (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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102664909A publication Critical patent/CN102664909A/zh
Application granted granted Critical
Publication of CN102664909B publication Critical patent/CN102664909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1094Inter-user-equipment sessions transfer or sharing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/20Manipulation of established connections
    • H04W76/25Maintenance of established connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及通过用户标识符重新建立推送通知信道。各实施例允许通过与用户标识符相关联的会话信息来恢复推送通知信道。代理服务创建描述用户的推送通知信道(例如订阅)的会话信息,并将会话信息与用户标识符相关联。会话信息被存储在云服务或与代理服务分开的其它存储区域中。在用户计算设备或代理服务故障之后,通过用户标识符获得会话信息并且用会话信息来重新创建推送通知信道。在一些实施例中,代理服务允许将相同的通知递送给与用户标识符相关联的多个计算设备。

Description

通过用户标识符重新建立推送通知信道
技术领域
本申请涉及重新建立推送通知信道,特别是通过用户标识符重新建立推送通知信道。
背景技术
现有的推送通知框架通过代理服务将通知从应用服务递送到客户端设备。代理服务维护用于将通知递送给在客户端设备上执行的应用的信道,并存储描述所述信道的会话信息。如果客户端设备或代理服务重启或故障,应用就重新开始并尝试重新建立到代理服务以及到应用服务的连接。
尽管某些现有系统允许应用在没有用户介入的情况下创建通知信道,但会话信息被绑定到所述代理服务和/或客户端设备。在重启或故障后,客户端设备仍然必须重新建立到代理服务和到应用服务的连接。
发明内容
本公开的实施例将会话信息与用户相关联。代理服务从推送环境中的用户计算设备处接收建立用于从应用服务接收通知的至少一个推送通知信道的请求。该请求包括用户标识符。代理服务基于所述用户标识符获得会话信息并基于所获得的会话信息建立推送通知信道。代理服务通过所建立的推送通信信道将通知从应用服务递送到用户计算设备。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
图1是说明将通知从应用服务递送到用户计算设备的代理服务的示例性框图。
图2是说明存储有关推送环境并对应于用户标识符的会话信息的存储器区域的示例性框图。
图3是说明创建对应于用户标识符的会话信息并持久保存所述信息的代理服务的操作的示例性流程图。
图4是说明使用对应于用户标识符的会话信息重新建立推送通知信道的代理服务的操作的示例性流程图。
图5是说明在用户计算设备、代理服务和云服务之间的用以重新组合(rehydrate)推送环境中的会话的通信的示例性顺序图。
图6是说明基于从会话标识符确定的用户标识符来将通知递送给用户计算设备的代理服务的操作的示例性流程图。
在全部附图中,相应的附图标记指示相应的部分。
具体实施方式
参考附图,本发明的各实施例能够在故障的情况下基于用户标识符118来重新创建推送通知信道108。在一些实施例中,描述推送通知信道108的会话信息202与用户标识符118相关联并被存储在与代理服务102或其它网关分开的存储器区域中。代理服务102从应用服务104接收用于递送给用户计算设备106的通知。
本发明的各方面进一步允许用户计算设备106在经历通知会话故障之后重新连接到与代理服务102相关联的任意服务器,并且呈现用户标识符118以允许该服务器使用存储在云服务312中的信息来重新建立通知会话。
接着参考图1,一个示例性框图说明了在推送环境中将通知从应用服务104递送给用户计算设备106的代理服务102。在如图1所示的示例性推送环境中,应用服务104中的一个或多个生成要被推送给在用户计算设备106上执行的应用107的通知。所述通知被异步地推送,并且所述通知流是单向的,因为通知被从应用服务104发送到应用107以供消费。示例性应用服务104包括诸如社交网站、新闻网站和金融网站之类的网站。可考虑其它应用服务104,包括电子邮件和其它消息收发服务。示例性的通知包括对在线社交简档的更新、天气和交通状况、包裹递送通知、文本消息、电子邮件消息、语音消息、图像和视频。
代理服务102表示执行指令(例如,应用程序、操作系统功能或两者)以实现与代理服务102相关联的操作和功能的任意一个或多个计算设备。代理服务102可以包括诸如服务器、云计算布置、个人计算机之类的任意计算设备。另外,代理服务102可以表示一组处理单元或其他计算设备。
代理服务102具有至少一个处理器110和第一存储器区域112。处理器110包括任何数量的处理单元,并且被编程为执行用于实现本发明的各方面的计算机可执行指令。指令可由处理器110或由在代理服务102内执行的多个处理器执行,或者由代理服务102外部的处理器来执行。在一些实施例中,处理器110被编程为执行诸如各附图(例如图3和图4)中示出的那些指令。
代理服务102还具有一个或多个计算机可读介质,诸如第一存储器区域112。第一存储器区域112包括与代理服务102相关联或可以由代理服务102访问的任意数量的介质。第一存储器区域112可以在代理服务102的内部(如图1所示)、在代理服务102的外部(未示出)、或内部和外部两者(未示出)。
第一存储器区域112存储一个或多个队列114或其它消息缓冲区以及其它数据。在一些实施例中,队列114中的每一个与在用户计算设备106上执行的应用107之一相关联。
存储器区域还存储一个或多个计算机可执行组件。示例性的组件包括通信接口组件124、配置组件126、查找组件128以及重新组合(rehydration)组件130。各组件的操作在下文中参考图3和图4来讨论。
推送环境还包括第二存储器区域116。第二存储器区域116表示,例如,云服务312或与所述代理服务102分开的或远离代理服务102来提供存储功能的其它服务。代理服务102通过网络可以访问第二存储器区域116。在图1的示例中,第二存储器区域116包括多个用户标识符118,例如用户标识符#1到用户标识符#M。用户标识符118中的每一个对应于或映射到至少一个会话标识符120以及与该用户标识符118相关联的用户的用户计算设备组122。会话标识符120对应于或链接到会话信息202(例如,如在图2中)。该用户计算设备组122表示执行应用107的用户计算设备106,所述应用107被订阅为从应用服务104接收通知。在一些实施例中,用户计算设备组122被考虑为在第二存储器区域116中维护的会话信息202的一部分。例如,在用户计算设备组122中的每个设备由设备标识符206来标识。
在第二存储器区域116中存储的示例性的会话信息202包括订阅信息、用户计算设备信息(例如设备标识符206)、状态、用户计算设备106的网际协议(IP)地址以及例如应用标识符(ID)等有关应用107的信息。在一些实施例中,特定应用107在多个平台(例如移动设备、膝上型计算机、游戏控制台等)上具有相同的应用标识符。
用户计算设备106包括,例如,用户计算设备#1到用户计算设备#N。每个用户计算设备106包括任意计算设备,例如移动计算设备或任意其它便携式设备。在一些实施例中,移动计算设备106包括移动电话、平板电脑、膝上型计算机、上网本、游戏控制台和/或便携式媒体播放器。用户计算设备106还可包括较不便携的设备,诸如台式个人计算机、自助服务终端和桌面设备。用户计算设备106执行应用107中的一个或多个。应用107在被用户计算设备106执行时用于执行用户计算设备106上的功能。示例性应用107包括邮件应用程序、web浏览器、日历应用程序、地址簿应用程序、消息收发应用程序、媒体应用、基于位置的服务、搜索程序等。应用107可与对应的应用或服务通信,诸如可经由网络访问的web服务。例如,应用107可表示与在云中执行的服务器侧服务相对应的所下载的客户机侧应用。
在操作中,代理服务102从应用服务104接收通知,并将所接收的通知存储在队列114中。基于(例如从第二存储器区域116中获得的或在第一存储器区域112中缓存的)会话信息202来将通知存储在队列114中。基于会话信息202,由代理服务102通过推送通知信道108将通知从队列114发送到对应的应用107。推送通知信道108是在代理服务102和应用107之间建立的通信信道。
接着参考图2,示例性的框图说明了第二存储器区域116,该第二存储器区域116存储了与推送环境相关的并对应于所述用户标识符118之一的会话信息202。存储在第二存储器区域116中的数据可以以诸如关系型数据库、文本文件和超文本链接之类的任意形式或格式被组织和/或被存储。每个用户标识符118对应于会话标识符120中的一个或多个,例如会话标识符#1到会话标识符#Y。每个会话标识符120具有对应的会话信息202。会话信息202包括一个或多个订阅的描述。由订阅标识符204所表示的订阅(例如通过应用标识符)标识了被订阅为从特定应用服务104接收通知的应用107。会话信息还包括对应于与会话相关联的特定用户计算设备106的设备标识符206。
接着参考图3,示例性流程图说明了创建对应于用户标识符118的会话信息202并持久保存所述信息的代理服务102的操作。每个会话与用户计算设备106之一以及在该用户计算设备106和代理服务102之间的连接相对应。在用户计算设备106上执行的应用107期望从应用服务104接收通知。作为响应,用户计算设备106(例如在其上执行的客户端堆栈)建立或定义与设备标识符206以及用户标识符118相关联的会话。用户计算设备106将设备标识符206以及用户标识符118提供给代理服务102。在一些实施例中,作出请求的应用的应用标识符也被发送给代理服务102。
如果代理服务102接收在302处创建推送通知信道108之一(例如创建订阅)的请求,则代理服务102创建与由用户计算设备106所提供的设备标识符206以及用户标识符118相关联的会话标识符120。随后,代理服务102在304处定义与会话标识符120相关联的会话信息以包括,例如订阅标识符204以及设备标识符206。订阅标识符204表示所请求的订阅。
如果已经存在对应于设备标识符206和用户标识符118的会话标识符120,则代理服务102更新与会话标识符120相关联的会话信息202以包括订阅标识符204。另外,代理服务102将相同的订阅标识符204添加到与用户标识符118相关联的任意其它会话标识符120。例如,用户标识符118可以具有与其相关联的三个会话标识符120:一个用于移动设备、一个用于膝上型计算机以及一个用于游戏控制台。
代理服务102在306向作出请求的用户计算设备106提供订阅标识符204。代理服务102在310处通过将链接到用户标识符118的会话信息202存储在例如云服务312中来持久保存会话信息202。
在一些实施例中,所提供的订阅标识符204采用了包含了代理服务102的域名服务、用户标识符118以及应用标识符的统一资源位置(URL)的形式。所述URL的格式可以包括,例如,http://<proxyservice(代理服务)>/<useridentifier(用户标识符)><applicationidentifier(应用标识符)>。作出请求的应用107随后将该URL提供给对应的应用服务104。对应的应用服务104使用该URL来推送通知给代理服务102以便递送给预期的用户计算设备106。例如,如下所述,代理服务102从该URL中提取用户标识符118,查找与所提取的用户标识符118相关联的会话,并且对于每个活动的会话将通知进行排队以供递送。
在一些实施例中,图3所述的操作可以由在图1中所述的计算机可执行组件中的一个或多个来实现。例如,当由处理器110执行时,通信接口组件124使得处理器110从用户计算设备106接收创建包括推送通知信道108(例如订阅)的会话的请求。所述请求包括,例如,用户标识符118以及应用标识符。在一些实施例中,通信接口组件124包括网络接口卡和/或用于操作网络接口卡的计算机可执行指令(例如驱动程序)。
当由处理器110执行时,配置组件126使得处理器110定义建立从代理服务102到用户计算设备106的推送通知信道108的会话信息202,并将会话信息202存储到云服务312中。会话信息202包括与用户标识符和应用标识符相对应的订阅标识符和会话标识符。通信接口组件124将订阅标识符204发送给用户计算设备106。
在从代理服务102接收订阅标识符204之后,用户计算设备106(例如在用户计算设备106上执行的应用107)将订阅标识符204注册到应用服务104,应用107期望从应用服务104订阅通知。在这样的示例中,应用服务104被配置为通过订阅标识符204将通知推送到应用107。
接着参考图4,示例性流程图说明了使用对应于用户标识符118的会话信息202来重新建立推送通知信道108的代理服务102的操作。例如,代理服务102和/或用户计算设备106可以经历重启、崩溃或其它故障。或者或另外,承载有推送通知信道108的会话可以发生故障。如果用户计算设备106所连接的与代理服务102相关联的服务器发生故障,用户计算设备可以经由图4所述的操作来寻求与代理服务102相关联的另一服务器以进行连接。如果用户计算设备106被重启,则用户计算设备106(重启之后)尝试通过图4所示的操作来重新连接到代理服务102。
代理服务102在402处可以从用户计算设备106接收建立用于接收来自应用服务104的通知的至少一个推送通知信道108的请求。所述请求包括与用户计算设备106的用户相关联的用户标识符118以及用户计算设备106的设备标识符206。如果代理服务102在402接收到请求,则代理服务102在404处获得与所述用户标识符118和设备标识符206相关联的会话信息202。例如,代理服务102向云服务312提供来自所接收的请求的用户标识符118和设备标识符206,并且作为其响应,从云服务312接收相关联的会话信息202。会话信息202包括与由用户标识符118所标识的用户计算设备106相关联的应用107的订阅标识符。
在一些实施例中,代理服务102基于所述用户标识符118和设备标识符206获得会话标识符120,并且从云服务312获得会话信息。在这样的实施例中,代理服务102可以首先与云服务312通信以获得会话标识符120(例如如果云服务存储了在用户标识符118、设备标识符206以及会话标识符120之间的映射),并且随后与云服务312(或另一云服务)进行通信以基于会话标识符120获得会话信息202。在代理服务102缓存在用户标识符118、设备标识符206以及会话标识符120之间的映射的实施例中,代理服务102通过访问所述缓存来获得会话标识符120,随后与云服务312进行通信以基于所述会话标识符120获得会话信息202。
代理服务102行进到406处使用从云服务312获得的会话信息202来重新建立包含推送通知信道的会话。在重新建立推送通知信道之后,代理服务102能够通过建立的推送通知信道108将从应用服务104接收到的通知递送给用户计算设备106。通知中的每一个包括,例如,标识应该将通知递送到的应用107的全局唯一标识符(GUID)。在一些实施例中,GUID包括用户标识符118。
在用户具有两个设备并且其中之一重启的示例中,重启的设备将重新连接请求发送给代理服务102,所述请求包括重启的设备的设备标识符206以及该用户的用户标识符118。如果由与已经缓存了有关该用户的会话信息202的代理服务102相关联的服务器来处理该重新连接请求,则该服务器(例如使用设备标识符206)获得相关会话的订阅标识符204,并重新建立与重启设备相关联的订阅。如果由与没有缓存有关该用户的会话信息202的代理服务102相关联的服务器来处理该重新连接请求,则该服务器使用用户标识符118和设备标识符206从云服务312获得相关的会话信息202。服务器进而重新建立与重启的设备相关联的订阅。在这种方式中,仅重新组合与重启的设备相关联的订阅,而与该用户的其它用户计算设备106相关联的会话仍然不受影响。
在一些实施例中,用户计算设备106建立多个推送通知信道108(例如,在用户计算设备106上执行的多个应用107订阅以接收通知)。如果在特定用户计算设备106故障之前在该用户计算设备106上的应用107是活动的并且在该用户计算设备106从故障恢复之后变得非活动,则该用户计算设备106可向代理服务102提供这种通知。例如,在用户计算设备106上的客户端堆栈在从故障恢复之后向代理服务102标识了第一组应用107。第一组应用107表示在用户计算设备106上当前是活动的应用107。代理服务102将第一组应用107与和会话信息202相关联的第二组应用107进行比较来标识一个或多个非活动的应用。第二组应用107表示先前在用户计算设备106上执行的应用107。代理服务102阻止到所标识的非活动的应用的通知递送。
在另一实施例中,如果通知的预期接收应用107是非活动的,则代理服务102从用户计算设备106接收出错响应。代理服务102阻止到非活动的应用107的将来的通知递送。例如,与用户计算设备106相关联的会话信息202被更新以反映与非活动的应用107相关联的订阅被阻止。如果用户随后安装或重新激活应用107,则应用107将包括应用107的应用标识符的订阅请求发送给代理服务102。作为响应,代理服务更新会话信息202以(例如通过应用标识符)不再阻止与用户计算设备106相关联的先前被阻止的订阅。在一些实施例中,代理服务102将不再阻止现有订阅的消息返回给用户计算设备106。
在一些实施例中,图3所示的操作可以由在图1中所示的计算机可执行组件中的一个或多个来实现。例如,通信接口组件124从用户计算设备106接收重新建立已故障的推送通知信道108的请求。当由处理器110执行时,查找组件128使得处理器110基于用户标识符118从云服务312获得会话信息202。当由处理器110执行时,重新组合组件130使得处理器110基于由查找服务组件使用用户标识符118所获得的会话信息202来重新建立包含推送通知信道108的会话。
而且,由通信接口组件124接收的请求可以标识与用户计算设备106相关联的一组活动应用。当由处理器110执行时,重新组合组件130仅针对该组活动应用中所标识的活动应用来重新建立推送通知信道108。
接着参考图5,示例性顺序图说明了在用户计算设备106、代理服务102和云服务312之间的用以重新组合推送环境中的会话的通信。在图5的示例中,用户计算设备106尝试通过经由Reconnect()(重新连接)函数调用将请求发送给代理服务102来重新建立推送通知信道108。该函数调用是由代理服务102所提供的应用程序编程接口(API)的一部分。在一些实施例中,Reconnect()函数调用的自变量包括用户标识符118。代理服务102通过将用户标识符118作为LookupSession()(查找会话)函数调用中的自变量发送给云服务312来获得与该请求相关联的会话信息202。响应于LookupSession()函数调用,云服务312确定会话信息202并将其提供给代理服务102。代理服务102通过RehydrateSession()(重新组合会话)或另一函数调用来重新组合会话。重新组合会话使得会话状态被复制到代理服务102和/或被重新填充入与会话管理器相关联的存储器中以重新建立推送通知信道108,其中所述会话管理器与代理服务102相关联。
在重新组合会话之后,代理服务102通过例如UpdateState(Connected)(更新状态(已连接))函数调用来向云服务312告知会话状态。其它示例性会话状态包括断开和非活动。代理服务102还通过ReconnectResponse()(重新连接响应)函数调用来向用户计算设备106告知该重新组合。
在一些实施例中,图5所示的代理服务102包括会话管理器和查找服务。在这样的实施例中,会话管理器执行来自图1中的配置组件126和重新组合组件130,而查找服务执行查找组件128。
接着参考图6,示例性流程图说明了基于从会话标识符120确定的用户标识符118来将通知递送给用户计算设备106的代理服务102的操作。在图6的示例中,建立推送通知信道108。如果代理服务102在602处从应用服务104之一接收要递送给用户计算设备106中的至少一个的通知,代理服务102则在604处确定与该通知相关联的会话标识符120。在一些实施例中,所接收的通知包括用户标识符118(例如是GUID的一部分或在通知的首部中的别处)。代理服务102基于用户标识符118确定会话标识符120。例如,代理服务102可以与云服务312或第二存储器区域116通信以获得会话标识符120。
使用会话标识符120,代理服务102可以在606处获得与通知相关联的会话信息202。例如,代理服务102可以与云服务312或第二存储器区域116通信以获得会话信息202。使用会话标识符120和/或其它会话信息202,代理服务102在608将通知存储在适合的队列114中以供最终递送给预定的用户计算设备106。
代理服务102使用所获得的会话信息202来确定如何递送所接收的通知。而且,在610,代理服务102标识要接收通知的用户计算设备106。而且,代理服务102可以与云服务312或第二存储器区域116通信以确定与用户标识符118(或会话标识符120)相关联的用户计算设备组122。
代理服务102在612处通过由会话信息202所描述的推送通知信道108将通知从队列114递送到所标识的用户计算设备组122。
补充示例
图1中的各元件的功能中的至少一部分可以由图1中的其他元件或图1中未示出的实体(例如,处理器、web服务、服务器、应用程序、计算设备等)执行。
在一些实施例中,图3和图4所示的操作可以以在计算机可读介质上编码的软件指令、以被编程或设计为执行这些操作的硬件或这两者来实现。例如,本发明的各方面可被实现为片上系统。
虽然本发明的各方面没有跟踪个人可标识的信息,但参考了从用户监视和/或收集的数据来描述了各实施例。在这样的实施例中,向用户提供收集数据的通知(例如,经由对话框或偏好设置)并且给予用户对监视和/或收集给出同意或拒绝的机会。该同意可以采用选择加入同意或选择退出同意的形式。
示例性操作环境
示例性计算机可读介质包括闪存驱动器、数字多功能盘(DVD)、紧致盘(CD)、软盘以及磁带盒。作为示例而非限制,计算机可读介质包括计算机可读存储介质和通信介质。计算机可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。计算机可读存储介质将传播的数据信号排除在外。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。
尽管结合示例性计算系统环境进行了描述,但本发明的各实施例可用于众多其它通用或专用计算系统环境或配置。适用于本发明各方面的公知的计算系统、环境和/或配置的示例包括但不限于,移动计算设备、个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、游戏控制台、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、网络PC、小型计算机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等等。
可以在由一个或多个计算机或其它设备执行的诸如程序模块等计算机可执行指令的一般上下文中来描述本发明的各实施例。计算机可执行指令可以被组织成一个或多个计算机可执行组件或模块。一般而言,程序模块包括但不限于,执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件,以及数据结构。可以利用任何数量的这样的组件或模块及其组织来实现本发明的各方面。例如,本发明的各方面不仅限于附图中所示出并且在此处所描述的特定计算机可执行指令或特定组件或模块。本发明的其它实施例可以包括具有比此处所示出和描述的功能更多或更少功能的不同的计算机可执行指令或组件。
本发明的各方面在被配置成执行此处所描述的指令时将通用计算机变换成专用计算设备。
在此所说明和描述的实施例以及并未在此特别描述但在本发明的各方面的范围之内的实施例构成了用于将推送环境内的会话信息202与用户相关联的示例性手段,以及用于供代理服务102使用对应于用户标识符118的会话信息202重新建立推送通知信道108的示例性手段,所述会话信息202与代理服务102分开存储。
此处所示出和描述的本发明的各实施例中的操作的执行或实现的顺序不是必需的,除非另外指定。即,除非另外指定,否则操作可以按任何顺序执行,且本发明的各实施例可以包括比此处所公开的操作更多或更少的操作。例如,构想了在一个操作之前、同时或之后执行另一个操作是在本发明的各方面的范围之内的。
当介绍本发明的各方面的元素或其实施例时,冠词“一”、“一个”、“该”、“所述”旨在表示有元素中的一个或多个。术语“包括”、“包含”以及“具有”旨在是包含性的,并意味着除所列出的元素以外还可以有额外的元素。
已经详细地描述了本发明的各方面,显然,在不偏离所附权利要求书所定义的本发明的各方面的范围的情况下,可以进行各种修改和变化。在不偏离本发明的各方面的范围的情况下,可以对上面的构造、产品以及方法做出各种更改,上面的描述中所包含的和各个附图中所示出的所有主题应该解释为说明性的,而不是限制性的。

Claims (9)

1.一种在系统中的用于通过用户标识符重新建立推送通知信道的方法,所述系统包括:
与代理服务相关联的第一存储器区域,所述第一存储器区域存储一个或多个队列;
可由所述代理服务访问的第二存储器区域,所述第二存储器区域存储了在会话标识符和用户标识符之间的映射,所述第二存储器区域还存储了在所述用户标识符和用户计算设备组之间的映射,其中所述代理服务通过推送通知信道与用户计算设备通信;
其特征在于,所述方法包括:
由所述代理服务从推送环境中的应用服务接收要递送给多个用户计算设备中的至少一个的通知,其中所述通知具有与其相关联的用户标识符;
从所述第二存储器区域获得对应于所述用户标识符的会话标识符;
基于所述会话标识符将所接收的通知存储在所述第一存储器区域中的队列中的至少一个中;
从所述第二存储器区域确定与所述用户标识符相关联的用户计算设备组;以及
由所述代理服务通过所述推送通知信道将所述通知从所述第一存储器区域中的队列发送给所确定的用户计算设备组中的每个用户计算设备;
其中,所述方法还包括:
由所述代理服务从所述用户计算设备接收在所述用户计算设备上执行的第一组应用;
将所述第一组应用与和会话信息相关联的第二组应用相比较以标识一个或多个非活动应用;以及
由所述代理服务阻止旨在到所述非活动应用的通知递送。
2.如权利要求1所述的方法,其特征在于,所述用户标识符被包括在所述通知的首部中,并且其中所述通知包括全局唯一标识符(GUID),所述全局唯一标识符包括所述用户标识符以及应用标识符。
3.如权利要求1所述的方法,其特征在于,所述用户计算设备组包括以下的一个或多个:移动计算设备、平板计算设备、游戏控制台以及媒体播放器。
4.如权利要求1所述的方法,还包括:
将所述推送环境中的会话信息与用户相关联;以及
所述代理服务使用对应于所述用户标识符的会话信息来重新建立所述推送通知信道,所述会话信息与所述代理服务分开存储。
5.一种用于通过用户标识符重新建立推送通知信道的方法,包括:
由代理服务从推送环境中的用户计算设备接收建立用于从应用服务接收通知的至少一个推送通知信道的请求,所述请求包括与用户相关联的用户标识符以及与所述用户计算设备相关联的设备标识符;
基于所述用户标识符和所述设备标识符获得会话信息;以及
通过所述代理服务基于所获得的会话信息建立所述推送通知信道,其中所述代理服务通过所建立的推送通知信道将通知从所述应用服务递送到所述用户计算设备;
其中,所述方法还包括:
由所述代理服务从所述用户计算设备接收在所述用户计算设备上执行的第一组应用;
将所述第一组应用与和所述会话信息相关联的第二组应用相比较以标识一个或多个非活动应用;以及
由所述代理服务阻止旨在到所述非活动应用的通知递送。
6.如权利要求5所述的方法,其特征在于,接收所述请求包括接收重新建立由于所述代理服务和/或所述用户计算设备故障或重启而出故障的至少一个推送通知信道的请求,并且还包括基于所述用户标识符和所述设备标识符来标识会话标识符,并且其中获得所述会话信息包括基于所述会话标识符获得所述会话信息。
7.如权利要求5所述的方法,其特征在于,接收所述请求包括接收包括所述用户标识符和应用标识符的请求,其中云服务存储了在所述用户标识符、所述设备标识符和会话标识符之间的映射,并且其中获得所述会话信息包括从所述云服务获.得所述会话信息。
8.如权利要求5所述的方法,其特征在于,获得所述会话信息包括:获得与在所述用户计算设备上执行的并被订阅以从所述应用服务接收所述通知的应用相对应的至少一个应用标识符。
9.一种提供用于通过用户标识符重新建立推送通知信道的代理服务的系统,所述系统包括:
通信接口组件,当由至少一个处理器执行时使得所述至少一个处理器从用户计算设备接收创建包括至少一个推送通知信道的会话的请求,所述请求包括用户标识符和应用标识符;
配置组件,当由至少一个处理器执行时使得所述至少一个处理器定义包括与所述用户标识符和所述应用标识符相对应的订阅标识符和会话标识符的会话信息,建立从所述代理服务到所述用户计算设备的推送通知信道,并将所述会话信息存储到云服务中,其中所述通信接口组件将所述订阅标识符发送给所述用户计算设备,并且其中所述用户计算设备将所述订阅标识符注册到应用服务,所述应用服务被配置为通过所述订阅标识符将通知发送给所述用户计算设备,
其中由所述配置组件建立的所述推送通知信道随后出现故障,并且其中所述通信接口组件从所述用户计算设备接收重新建立故障的推送通知信道的请求,所述请求包括所述用户标识符和设备标识符;
查找组件,当由至少一个处理器执行时使得所述至少一个处理器基于由所述通信接口组件接收到的所述用户标识符和所述设备标识符从所述云服务获得所述会话信息;以及
重新组合组件,当由至少一个处理器执行时使得所述至少一个处理器基于由所述查找组件使用所述用户标识符和所述设备标识符所获得的所述会话信息来重新建立所述推送通知信道。
CN201210020280.3A 2011-01-28 2012-01-29 通过用户标识符重新建立推送通知信道 Active CN102664909B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/015,602 US8713365B2 (en) 2011-01-28 2011-01-28 Re-establishing push notification channels via user identifiers
US13/015,602 2011-01-28

Publications (2)

Publication Number Publication Date
CN102664909A CN102664909A (zh) 2012-09-12
CN102664909B true CN102664909B (zh) 2014-11-05

Family

ID=46578412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210020280.3A Active CN102664909B (zh) 2011-01-28 2012-01-29 通过用户标识符重新建立推送通知信道

Country Status (2)

Country Link
US (3) US8713365B2 (zh)
CN (1) CN102664909B (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713365B2 (en) 2011-01-28 2014-04-29 Microsoft Corporation Re-establishing push notification channels via user identifiers
US8407776B2 (en) 2011-02-11 2013-03-26 Good Technology Corporation Method, apparatus and system for provisioning a push notification session
EP2715617A4 (en) * 2011-05-23 2014-11-26 Mastercard International Inc COMBICARD TRANSACTION METHOD AND SYSTEM HAVING APPLICATION PARAMETER UPDATE MECHANISM
CN103703474B (zh) * 2011-07-14 2018-01-19 瑞典爱立信有限公司 处理装置生成的数据
US8649768B1 (en) * 2011-08-24 2014-02-11 Cellco Partnership Method of device authentication and application registration in a push communication framework
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US9386105B2 (en) * 2011-11-02 2016-07-05 Microsoft Technology Licensing, Llc Techniques for dynamic domain-based isolation
US9524198B2 (en) * 2012-07-27 2016-12-20 Google Inc. Messaging between web applications
US9167050B2 (en) * 2012-08-16 2015-10-20 Futurewei Technologies, Inc. Control pool based enterprise policy enabler for controlled cloud access
EP2706727B1 (en) * 2012-09-11 2014-09-10 BlackBerry Limited Systems, devices and methods for authorizing endpoints of a push pathway
US9712600B2 (en) * 2012-12-06 2017-07-18 Facebook, Inc. Transmission of notifications for retrieving an application on a mobile client device
US10356204B2 (en) * 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
JP5720706B2 (ja) * 2013-01-30 2015-05-20 コニカミノルタ株式会社 データ処理装置、データ送信方法およびデータ送信プログラム
US10122827B2 (en) 2013-02-25 2018-11-06 Microsoft Technology Licensing, Llc Interaction between devices displaying application status information
EP2974125B1 (en) * 2013-03-14 2019-04-24 Intel Corporation Systems, methods, and computer program products for providing a universal persistence cloud service
US8918529B1 (en) * 2013-03-15 2014-12-23 Mobile Iron, Inc. Messaging gateway
US10482506B2 (en) 2013-06-14 2019-11-19 Blue Kai, Inc. Client caching identification tracking
US10650412B2 (en) * 2013-06-14 2020-05-12 Blue Kai, Inc. Multi-profile tracking identification of a mobile user
US9699625B2 (en) * 2013-07-18 2017-07-04 International Business Machines Corporation Push notification middleware
US9780994B2 (en) 2013-07-18 2017-10-03 International Business Machines Corporation Notification normalization
US9706002B2 (en) 2013-07-18 2017-07-11 International Business Machines Corporation Push notification via file sharing service synchronization
CN104468649B (zh) * 2013-09-16 2018-06-05 北大方正集团有限公司 服务器、终端、数据推送系统和数据推送方法
CN103631586B (zh) * 2013-11-15 2017-04-19 北京奇虎科技有限公司 进行场景化交互处理的方法和系统
KR20150059687A (ko) * 2013-11-22 2015-06-02 삼성전자주식회사 통신 시스템에서 커뮤니케이션 서비스에 대한 소셜 활동 관리 장치 및 방법
US9960964B2 (en) 2014-02-18 2018-05-01 Cellos Software Ltd System, method and apparatus to manage services in a network
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US10187483B2 (en) * 2014-08-12 2019-01-22 Facebook, Inc. Managing access to user information by applications operating in an online system environment
US9847918B2 (en) 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
US9876872B1 (en) * 2015-04-03 2018-01-23 Symantec Corporation Method or mechanism for self notification avoidance
CN106487541B (zh) * 2015-08-25 2020-07-24 平安科技(深圳)有限公司 多通讯模块故障控制方法及服务器
CN105511727B (zh) * 2015-12-14 2019-02-15 魅族科技(中国)有限公司 一种消息处理方法及装置
US10893113B2 (en) * 2016-06-06 2021-01-12 International Business Machines Corporation Generating push notifications
RU2654854C1 (ru) * 2016-08-28 2018-05-23 Фонд Социальных Информационно-Технологических Инноваций Способ сбора данных о пользователе устройства беспроводной связи и машиночитаемый носитель для реализации этого способа
CN106991108A (zh) * 2016-09-27 2017-07-28 阿里巴巴集团控股有限公司 一种信息的推送方法及装置
CN108023909B (zh) * 2016-11-01 2021-08-06 鲸彩在线科技(大连)有限公司 信息推送方法、装置及网络系统
CN108632130B (zh) * 2017-03-16 2021-04-30 北京京东尚科信息技术有限公司 多终端聊天输入转移的方法、装置、电子设备和存储介质
US10924570B2 (en) * 2018-05-04 2021-02-16 Microsoft Technology Licensing, Llc Notification updates for saved sites
US10826998B2 (en) * 2018-07-19 2020-11-03 Adobe Inc. Protocol to initiate session with partner site
CN110971421B (zh) * 2018-09-30 2021-06-01 华为技术有限公司 订阅更新方法、设备及系统
US10963331B2 (en) 2018-12-13 2021-03-30 Microsoft Technology Licensing, Llc Collecting repeated diagnostics data from across users participating in a document collaboration session
CN112702801B (zh) * 2019-10-22 2022-12-16 大唐移动通信设备有限公司 一种建立会话的方法及装置
CN112994918B (zh) * 2019-12-17 2022-05-31 华为技术有限公司 一种设备管理方法及装置
CN114584602B (zh) * 2022-03-01 2023-08-29 百果园技术(新加坡)有限公司 一种会话状态管理方法、系统、装置、设备及存储介质
CN115277834B (zh) * 2022-07-29 2024-03-29 苏州创意云网络科技有限公司 任务数据的处理方法、装置和服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1939034A (zh) * 2004-03-31 2007-03-28 诺基亚公司 对通信系统中的服务的访问进行控制
CN101009576A (zh) * 2006-01-07 2007-08-01 国际商业机器公司 用于分布式即时消息传送的方法和系统

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463078B1 (en) * 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
US6801914B2 (en) 1999-03-15 2004-10-05 Microsoft Corporation Persistent client-server database sessions
WO2001077844A1 (fr) * 2000-04-10 2001-10-18 Fujitsu Limited Systeme de traitement d'informations et serveur associe
US6760861B2 (en) * 2000-09-29 2004-07-06 Zeronines Technology, Inc. System, method and apparatus for data processing and storage to provide continuous operations independent of device failure or disaster
US20030054810A1 (en) * 2000-11-15 2003-03-20 Chen Yih-Farn Robin Enterprise mobile server platform
US20040073512A1 (en) 2001-02-23 2004-04-15 David Maung Unique session storage design
US7191233B2 (en) * 2001-09-17 2007-03-13 Telecommunication Systems, Inc. System for automated, mid-session, user-directed, device-to-device session transfer system
US7386855B2 (en) * 2002-08-12 2008-06-10 Ntt Docomo, Inc. Application mobility service
US20090125591A1 (en) * 2002-09-30 2009-05-14 Ficus Kirkpatrick Instant messaging proxy apparatus and method
US7487248B2 (en) * 2002-10-08 2009-02-03 Brian Moran Method and system for transferring a computer session between devices
JP2005025337A (ja) * 2003-06-30 2005-01-27 Sony Corp 機器登録システム、機器登録サーバ、機器登録方法、機器登録プログラム、記憶媒体、及び端末機器
US8219621B2 (en) * 2003-09-04 2012-07-10 Nokia Corporation Method and device for handling push type e-mails for a mobile terminal device according to a user profile
US7441011B2 (en) 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US20060291481A1 (en) * 2005-06-27 2006-12-28 Matsushita Electric Industrial Co., Ltd. Application session resumption in mobile environments
US20080091489A1 (en) * 2005-06-27 2008-04-17 Larock Garrison J Acquiring, storing, and correlating profile data of cellular mobile communications system's users to Events
CA2633341A1 (en) * 2005-12-23 2007-07-12 Wms Gaming Inc. Transient or persistent game play in wagering games
CN101558623B (zh) * 2006-12-14 2012-03-21 艾利森电话股份有限公司 用于处理客户数据订阅的方法和装置
WO2008157343A1 (en) * 2007-06-13 2008-12-24 W2Bi, Inc. Synchronizing information through profile management between a host system and a mobile device
US20090063690A1 (en) 2007-09-05 2009-03-05 Motorola, Inc. Continuing an application session using a different device from one that originally initiated the application session while preserving session while preserving session state and data
US8392580B2 (en) * 2008-02-20 2013-03-05 Research In Motion Limited Methods and systems for facilitating transfer of sessions between user devices
US8023498B2 (en) * 2008-05-20 2011-09-20 International Business Machines Corporation Controlling access to a destination in a data processing network
US8793384B2 (en) * 2008-08-22 2014-07-29 Microsoft Corporation Recovery of disconnected channels over a reliable protocol
CN101764828B (zh) * 2008-12-23 2013-08-07 华为终端有限公司 推送会话的建立方法、推送系统和相关设备
US8713584B2 (en) * 2009-08-13 2014-04-29 Google Inc. Event-triggered server-side macros
US8688826B2 (en) * 2009-11-30 2014-04-01 Motorola Mobility Llc Mobile computing device and method with intelligent pushing management
US8793388B2 (en) * 2009-12-28 2014-07-29 At&T Intellectual Property I, L.P. Method and apparatus for processing a call to an aggregate endpoint device
US8280954B2 (en) * 2010-03-25 2012-10-02 Scomm, Inc. Method and system for providing live real-time communication via text between mobile user devices
US8956231B2 (en) * 2010-08-13 2015-02-17 Cfph, Llc Multi-process communication regarding gaming information
US8713365B2 (en) 2011-01-28 2014-04-29 Microsoft Corporation Re-establishing push notification channels via user identifiers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1939034A (zh) * 2004-03-31 2007-03-28 诺基亚公司 对通信系统中的服务的访问进行控制
CN101009576A (zh) * 2006-01-07 2007-08-01 国际商业机器公司 用于分布式即时消息传送的方法和系统

Also Published As

Publication number Publication date
US20160150046A1 (en) 2016-05-26
US20140229626A1 (en) 2014-08-14
CN102664909A (zh) 2012-09-12
US8713365B2 (en) 2014-04-29
US9185179B2 (en) 2015-11-10
US9794365B2 (en) 2017-10-17
US20120198268A1 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
CN102664909B (zh) 通过用户标识符重新建立推送通知信道
US8467817B2 (en) Generic business notifications for mobile devices
US8495434B2 (en) Failure source server and mail server administrator alert management programs, systems, and methods
US8037191B2 (en) Low-level remote sharing of local devices in a remote access session across a computer network
EP3103023B1 (en) Private cloud connected device cluster architecture
US20190102237A1 (en) Recommending applications based on call requests between applications
US9152441B2 (en) Systems and methods involving virtual machine host isolation over a network via a federated downstream cluster
US9047308B2 (en) Methods and apparatus for providing unified access to various data resources using virtualized services
US20220366066A1 (en) Display method, display device, and electronic device
US9374417B1 (en) Dynamic specification auditing for a distributed system
US20230328147A1 (en) Smart notification system
US10733036B2 (en) Programmatic implementations generated from an API call log
US11243755B1 (en) Resource aware patching service
US10635508B1 (en) Programmatic implementations generated by recording user actions via an ephemeral user account
US20140157104A1 (en) Dynamic sharing and updating of a web page
CN110324432B (zh) 应用于终端的数据处理方法、装置、介质和计算设备
CN102326371B (zh) 门户应用组件信息的传递方法及从站和主站
US11381665B2 (en) Tracking client sessions in publish and subscribe systems using a shared repository
US20230123860A1 (en) Facilitating access to api integrations
US20220338292A1 (en) Network architecture for virtual mobile phones
US20220309356A1 (en) Web elements-based virtual assistant for distributed applications
US11797465B2 (en) Resource recommendation system
CN113452539B (zh) 源站切换方法、装置、电子设备及存储介质
US20230139834A1 (en) Asynchronous network inventory system
EP4303729A1 (en) Exposing standardized events within an api proxy system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.