IP Library Granted Patent US 9,692,837
Granted Patent B2
US 9,692,837 · App. 14/593,215 · Granted Jun 27, 2017

Federated application services

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,692,837
App. No.
14/593,215
Granted
Jun 27, 2017
Kind
B2
Abstract

In one embodiment, a method includes receiving a request from an application for access to a service. The application is one of a number of applications that each includes software for accessing the service. The method includes selecting one of the applications to use to access the service, and providing the requesting application access to the service through the selected application's software for accessing the service.

Claims (66)

1. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive, from one of a plurality of applications of a client device, a request for access to a service, each of the plurality of applications comprising software for accessing the service;

determine, based on one or more criteria, one of the plurality of applications to use to access the service, wherein the criteria comprise:

first criterion comprising information identifying a protocol version of the software for accessing the service;

second criterion comprising an attribute of the one of the plurality of applications; and

third criterion comprising information identifying a version of the software for accessing the service; and

the first criterion tales precedence over the second criterion, and the second criterion takes precedence over the third criterion;

select the determined application; and

provide the requesting application access to the service through the selected application's software for accessing the service.

2. The media of claim 1 , wherein the service comprises a push service.

3. The media of claim 1 , wherein one or more of the plurality of applications further comprise the software that is operable when executed to:

receive a request from an application for access to a service, the application comprising one of a plurality of applications that each comprises software for accessing the service;

select one of the plurality of applications to use to access the service; and

provide the requesting application access to the service through the application determined to be used access the service.

4. The media of claim 1 , wherein the attribute comprises one or more permissions to access data on a client device on which the one of the plurality of applications resides.

5. The media of claim 1 , wherein the software that is operable when executed to provide the requesting application access to the service comprises software that is further operable when executed to:

determine whether the application to be used to access the service is running at least in the background on a client device; and

when the application is not running at least in the background on the client device, cause at least the portion of the application comprising the software for accessing the service to be executed by the client device.

6. The media of claim 5 , wherein the software that is operable when executed to cause at least the portion of the application comprising the software for accessing the service to be executed by the client device comprises software that is further operable when executed to cause only the portion of the application comprising the software for accessing the service to be executed by the client device.

7. The media of claim 1 , wherein the software that is operable when executed to select one of the plurality of applications to use to access the service comprises software that is further operable when executed to:

submit a request to access the service to a selection service for selecting one of the plurality of applications to use to access the service; and

receive from the selection service an identification of the selected application.

8. The method of claim 7 , wherein each application further comprises an instance of the selection service; and

the software that is operable when executed to submit a request to access the service to a selection service comprises software that is further operable when executed to:

select one of the instances of the selection service; and

submit the request to the selected instance of the selection service.

9. The method of claim 8 , wherein the software that is operable when executed to select one of the instances of the selection service comprises software that is further operable when executed to select, based on one or more criteria, the instance of the selection service, the criteria comprising one or more of:

first criterion comprising information identifying a protocol version of the instance of the selection service;

second criterion comprising an attribute of the application comprising the instance of the selection service; and

third criterion comprising information identifying a version of the instance of the selection service.

10. The media of claim 1 , wherein the software that is operable when executed to receive a request from an application for access to a service comprises software that is further operable when executed to receive a notification that the application is running on a client device.

11. The media of claim 1 , wherein the software that is operable when executed to receive a request from an application for access to a service comprises software that is further operable when executed to receive a notification that one of the plurality of applications was installed on a client device.

12. The media of claim 1 , wherein the software that is operable when executed to receive a request from an application for access to a service comprises software that is further operable when executed to receive a notification that an update for one of the plurality of applications was installed on a client device.

13. A method comprising:

by a computing device, receiving, from one of a plurality of applications of a client device, a request for access to a service, each of the plurality of applications comprising software for accessing the service;

by a computing, device, determining, based on one or more criteria, one of the plurality of applications to use to access the service, wherein the criteria comprise:

first criterion comprising information identifying a protocol version of the software for accessing the service;

second criterion comprising an attribute of the one of the plurality of applications; and

third criterion comprising information identifying a version of the software for accessing the service; and

the first criterion takes precedence over the second criterion, and the second criterion takes precedence over the third criterion;

by a computing device, selecting the determined application; and

by a computing device, providing the requesting application access to the service through the selected application's software for accessing the service.

14. The method of claim 13 , further comprising:

determining, by a computing device, whether the application to be used to access the service is running at least in the background on a client device; and

when the application is not running at least in the background on the client device, causing, by a computing device, at least the portion of the application comprising the software for accessing the service to be executed by the client device.

15. The method of claim 13 , further comprising:

submitting, by a computing device, a request to access the service to a selection service for selecting one of the plurality of applications to use to access the service; and

receiving from the selection service an identification of the selected application.

16. The method of claim 13 , wherein the service comprises a push service.

17. A system comprising:

one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

receive, from one of a plurality of applications of a client device, a request for access to a service, each of the plurality of applications comprising software, for accessing the service;

determine, based on one or more criteria, one of the plurality of applications to use to access the service, wherein the criteria comprise:

first criterion comprising information identifying a protocol version of the software for accessing the service;

second criterion comprising an attribute of the one of the plurality of applications; and

third criterion comprising information identifying a version of the software for accessing the service; and

the first criterion takes precedence over the second criterion, and the second criterion takes precedence over the third criterion;

select the determined application; and

provide the requesting application access to the service through the selected application's software for accessing the service.

18. The system of claim 17 , wherein the processors are further operable when executing the instructions to:

determine whether the application to be used to access the service is running at least in the background on a client device; and

when the application is not running at least in the background on the client device, cause at least the portion of the application comprising the software for accessing the service to be executed by the client device.

19. The system of claim 17 , wherein the processors are further operable when executing the instructions to:

submit a request to access the service to a selection service for selecting one of the plurality of applications to use to access the service; and

receive from the selection service an identification of the selected application.

20. The system of claim 17 , wherein the service comprises a push service.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2015
From: PENOV, FRANCISLAV; MARUCHECK, MICHAEL J.; LONGINO, AUSTIN RANDOLPH
To: FACEBOOK, INC.
Reel/Frame 036222/0313 →