# US 9,438,552 B2 · Messaging for notification-based clients

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,438,552 B2
- Document ID: US9438552B2
- Status: Granted
- Kind: B2
- Application number: 14/642,410
- Filed: 2015-03-09
- Published: 2015-07-09
- Granted: 2016-09-06
- Earliest claimed: 2011-03-17
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Yosef Firstenberg; Lan Tang
- Web page: https://patentgrep.com/patent/US9438552B2

## CPC

- H04L 51/224: providing notification on incoming messages, e.g. pushed notifications of received messages
- H04L 51/04: Real-time or near real-time messaging, e.g. instant messaging [IM]
- G06F 21/31: User authentication
- H04L 51/52: for supporting social networking services
- H04L 51/58: Message adaptation for wireless communication
- H04L 63/04: {for providing a confidential data exchange among entities communicating through data packet networks}
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The claimed subject matter provides a method for communicating with a client. The method includes receiving a notification token that identifies the client. The method further includes registering the client to receive a message when the client is not connected to the server. The method also includes sending the message to the client when the client does not have a connection to the server, based on the registering and the notification token. The message may be sent using a notification channel.

## Claims

### Claim 1

A messaging system for communicating with a client, comprising:
a processing unit of the messaging system; and
a system memory of the messaging system, wherein the system memory comprises code configured to direct the processing unit to:
register, at the messaging system, the client to a notification service;
receive, at the messaging system, a notification token from the client that identifies the client;
create, at the messaging system, a client entity in response to receiving the notification token, wherein the client entity is maintained even when the client is not connected to the notification service and the messaging system, and wherein creating the client entity comprises binding the client to the client entity and sending, from the messaging system, the authentication token back to the client entity, wherein the client entity is to use the authentication token to identify the client entity to the messaging system for future communications;
detect, at the messaging system, notification channel information used to communicate with the client when the client is not connected to the notification service based on the notification token;
provide, from the messaging system, an authentication token to the client, wherein the authentication token is configured to enable the client to receive notifications from the messaging system instead of the notification service when not connected to the notification service;
receive, at the messaging system, a command to retrieve messages queued at the messaging system; and
provide, from the messaging system, queued messages to the client in response to receiving the command.

### Claim 2 (depends on 1)

The system recited in claim 1, wherein the code is further configured to direct the processing unit to retrieve an access control list associated with contacts of the client from a cloud service.

### Claim 3 (depends on 1)

The system recited in claim 1, wherein the code is further configured to direct the processing unit to prevent the client from uploading any data to the messaging system that already exists in any authoritative entity comprising the messaging system as well as any third party cloud service.

### Claim 4 (depends on 1)

The system recited in claim 1, wherein the client does not maintain a connection to the messaging system during registration.

### Claim 5 (depends on 1)

The system recited in claim 1, wherein the authentication token is further configured to control a lifetime of the client entity in a cloud service by unregistering, wherein unregistering the client comprises:
unregistering the client upon receiving the authentication token specified in an unregister command at the messaging system; and
deleting the client entity associated with the authentication token.

### Claim 6 (depends on 5)

The method recited in claim 5, wherein the client's presence indicates one or more of availability, messaging capabilities, or any combination thereof.

### Claim 7 (depends on 1)

The system recited in claim 1, wherein the code is further configured to direct the processing unit to receive, at the messaging system, a get queued messages command from the client to retrieve messages from a queue.

### Claim 8 (depends on 1)

The system recited in claim 1, wherein the code is further configured to direct the processing unit to receive, at the messaging system, a subscribe command from the client to subscribe to contacts associated with the client, wherein receiving the subscribe command results in subscription to a contact's presence to be provided to the client, wherein providing a contact's presence information to the client is based on identification of the notification token associated with the client.

### Claim 9

A method for communicating with a client, comprising the following computer-implemented steps:
registering, at a messaging system, the client to a notification service;
receiving, at the messaging system, a notification token from the client that identifies the client;
creating, at the messaging system, a client entity in response to receiving the notification token, wherein the client entity is maintained even when the client is not connected to the notification service and the messaging system, and wherein creating the client entity comprises binding the client to the client entity and sending, from the messaging system, the authentication token back to the client entity, wherein the client entity is to use the authentication token to identify the client entity to the messaging system for future communications;
detecting, at the messaging system, notification channel information used to communicate with the client when the client is not connected to the notification service based on the notification token;
providing, from the messaging system, an authentication token to the client, wherein the authentication token is configured to enable the client to receive notifications from the messaging system instead of the notification service when not connected to the notification service;
receiving, at the messaging system, a command to retrieve messages queued at the messaging system; and
providing, from the messaging system, queued messages to the client in response to receiving the command.

### Claim 10 (depends on 9)

The method recited in claim 9, further comprising retrieving, at the messaging system, an access control list associated with contacts of the client from a cloud service.

### Claim 11 (depends on 9)

The method recited in claim 9, further comprising preventing the client from uploading any data to the messaging system that already exists in any authoritative entity comprising the messaging system as well as any third party cloud service.

### Claim 12 (depends on 9)

The method recited in claim 9, wherein the client does not maintain a connection to the messaging system during registration.

### Claim 13 (depends on 9)

The method recited in claim 9, wherein the authentication token is further configured to control a lifetime of the client entity in a cloud service by unregistering, wherein unregistering the client comprises:
unregistering the client upon receiving the authentication token specified in an unregister command at the messaging system; and
deleting the client entity associated with the authentication token.

### Claim 14 (depends on 9)

The method recited in claim 9, wherein the client's presence indicates one or more of availability, messaging capabilities, or any combination thereof.

### Claim 15 (depends on 9)

The method recited in claim 9, further comprising receiving, at the messaging system, a get queued messages command from the client to retrieve messages from a queue.

### Claim 16 (depends on 9)

The method recited in claim 9, further comprising receiving, at the messaging system, a subscribe command from the client to subscribe to contacts associated with the client, wherein receiving the subscribe command results in subscription to a contact's presence to be provided to the client, wherein providing a contact's presence information to the client is based on identification of the notification token associated with the client.

### Claim 17

One or more computer-readable storage memory device, comprising code configured to direct a processing unit to:
register, at a messaging system, a client to a notification service;
receiving, at the messaging system, a notification token from the client that identifies the client;
create, at the messaging system, a client entity in response to receiving the notification token, wherein the client entity is maintained even when the client is not connected to the notification service and the messaging system, and wherein creating the client entity comprises binding the client to the client entity and sending, from the messaging system, the authentication token back to the client entity, wherein the client entity is to use the authentication token to identify the client entity to the messaging system for future communications;
detect, at the messaging system, notification channel information used to communicate with the client when the client is not connected to the notification service based on the notification token;
provide, from the messaging system, an authentication token to the client, wherein the authentication token is configured to enable the client to receive notifications from the messaging system instead of the notification service when not connected to the notification service;
receive, at the messaging system, a command to retrieve messages queued at the messaging system; and
provide, from the messaging system, queued messages to the client in response to receiving the command.
