IP Library Granted Patent US 9,176,720
Granted Patent B1
US 9,176,720 · App. 13/453,232 · Granted Nov 3, 2015

Installation of third-party web applications into a container

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,176,720
App. No.
13/453,232
Granted
Nov 3, 2015
Kind
B1
Abstract

Techniques are shown for installing third-party applications onto a network system in appropriate containers on the network system. The containers store data and content of the same internet media type or MIME-type as the third-party applications.

Claims (73)

1. A computer-implemented method that facilitates installation of a third-party application onto a network system, the method comprising:

receiving a selection from a user of a third-party application to be installed onto the network system;

obtaining configuration information for the third-party application;

based upon the obtained configuration information, selecting a container on the network system for receiving the third-party application;

installing the third-party application into the selected container;

storing a record of the installation of the third-party application into the selected container by linking the user with the third-party applications on the network system, wherein the record comprises an application expiration time;

sending an authorization code from a token-grant server to a third-party application along with one or more document identifications (IDs) identifying the user resources when the user installs the third-party application;

receiving the authorization code at a token-grant server from the third-party application along with a client secret that identifies the third-party application as the intended recipient of the authorization code; and

sending an authorization access token to the third-party application after receiving the authorization code and client secret from the third-party application.

2. The computer-implemented method according to claim 1 , wherein storing the record of the installation of the third-party applications into the selected container further comprises storing:

a user identifier; and

an application identifier.

3. The computer-implemented method according to claim 1 , wherein selecting the container comprises selecting the container based on a file type description of the third-party application.

4. The computer-implemented method according to claim 3 , wherein the file type description of the third-party application comprises a Multipurpose Internet Mail Extensions (MIME) type.

5. The computer-implemented method according to claim 1 , wherein selecting a container comprises:

determining a container on the network system that contains the type of data the third-party application is capable of one or more of opening, creating, or modifying.

6. The computer-implemented method according to claim 1 , wherein installing the third-party application into the container comprises:

registering a relationship between the third-party application and a user's account.

7. The computer-implemented method according to claim 1 , wherein the container is an operating environment on the network system in which homogenous or like data types are one or more of handled, managed, or used by the third-party application.

8. A non-transitory machine-readable storage medium having stored

thereon program instructions that facilitate installation of third-party applications onto a network system, the instructions when executed by a machine cause the machine to perform operations comprising:

receiving an indication of one or more to-be-installed third-party applications; obtaining configuration information about the one or more to-be-installed third-party applications;

based upon the obtained configuration information, selecting a container on the network system for receiving the one or more to-be-installed third-party applications;

installing the one or more third-party applications into the selected container; storing a record of the installation of the one or more third-party applications into the

selected container, linking the user with identifications of the one or more third-party applications installed by the user in the selected container on the network system; wherein

the record of the installation comprises an application expiration time;

sending an authorization code from a token-grant server to a third-party application along with one or more document identifications (IDs) identifying the user resources when the user installs the third-party application;

receiving the authorization code at a token-grant server from the third-party application along with a client secret that identifies the third-party application as the intended recipient of the authorization code; and

sending an authorization access token to the third-party application after receiving the authorization code and client secret from the third-party application.

9. The non-transitory storage medium according to claim 8 , the operations further comprising:

creating an Application Programming Interface (API) library configured to be queried to discover the one or more third-party applications installed by the user in the selected container on the network system.

10. The non-transitory storage medium according to claim 8 , the operations further comprising:

storing descriptions of the third-party applications that include an open standard authorization token that enables a user to share their user resources stored on the network system with a third-party web site or one or more third-party applications, without having to provide their full credentials to the third party for accessing the network system where the user's resources are stored.

11. The non-transitory storage medium according to claim 8 , wherein:

storing a record of the installation of the one or more third-party applications into the selected container further comprises storing information linking a user with an identification of each third-party application installed by the user on the network system, wherein the identification of each third-party application comprises a tuple, or ordered list of elements, of the form:

{long user_id; // a large number that uniquely identifies the user

long app_id; // a large number that uniquely identifies the application

optional long expiration — time; // an optional expiration date for this installation, stored as milliseconds since the Unix epoch date}.

12. The non-transitory storage medium according to claim 8 , wherein:

the obtained configuration information comprises an internet media type or a Multipurpose Internet Mail Extensions (MIME) type.

13. An application installation system configured to facilitate installation of third-party applications onto a network system, the application installation system comprising:

an application description database configured to store descriptions of third-party applications, wherein the descriptions of the third-party applications enable the third-party applications to access user resources stored on the network system;

a uniform resource locator (URL)-accessible installation utility configured to provide a URL destination address from which a user can initiate an installation action to install a third-party application on the network system;

a record indicating a container on the network system into which a third-party application is installed;

an application installation database configured to store a record of user installation actions including information linking a user with an identification of each third-party application installed by the user on the network system;

a processor configured to:

receive a user selection of a third-party application to be installed onto the network system,

obtain configuration information for the user-selected third-party application,

select, based upon the obtained configuration information, a container on the network system for receiving the user-selected third-party application,

install the user-selected third-party application into the selected container,

store a record of the installation of the third-party application in the application installation database, wherein the record comprises an application expiration time; and

identify one or more third-party applications associated with a user in response to an Application Programming Interface (API) library command;

send an authorization code and a document identification (ID) to a third-party application in response to a user installation of the third-party application for use with a resource identified by the document ID;

receive, from the third-party application, the authorization code and a client secret that

identifies the third-party application as the intended recipient of the authorization code; and

send an authorization access token to the third-party application in response to receiving the authorization code and the client secret from the third-party application.

14. The system according to claim 13 , further including:

an API that conforms to Representational State Transfer (REST) architecture.

15. The system according to claim 13 , wherein:

the descriptions of the third-party applications stored in the application description database include an internet media type or a Multipurpose Internet Mail Extensions (MIME) type.

16. The system according to claim 13 , wherein:

the user resources comprise one or more of files, photographs, videos, documents, contact lists, data, or other content that a user has created or otherwise obtained, and that the user has one or more of ownership of, access to, or control over.

17. The system according to claim 13 , further including:

the application description database further configured to store descriptions of the third-party applications that include an open standard authorization token that enables a user to share their user resources stored on the network system with a third-party web site or one or more third-party applications, without having to provide full credentials for accessing the network system to the third party.

18. The system according to claim 17 , wherein:

the user's resources comprise one or more of files, photographs, videos, documents, contact lists, data, or other content that a user has created or otherwise obtained, and that the user has one or more of ownership of, access to, or control over.

19. The system according to claim 13 , wherein:

the record indicating an appropriate web-based application on the network system designates a Multipurpose Internet Mail Extensions (MIME) type of data to be stored in the web-based application and manipulated by the third-party application installed into the web-based application.

20. The system according to claim 13 , further including:

the application installation database further configured to store a record of user installation actions including information linking a user with an identification of each application installed by the user on the network system, wherein the identification of each application comprises a tuple, or ordered list of elements, of the form:

{long user_id; // a large number that uniquely identifies the user

long app_id; // a large number that uniquely identifies the application

optional long expiration — time; // an optional expiration date for this installation, stored as milliseconds since the Unix epoch date}.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
CORRECTIVE ASSIGNMENT TO CORRECT THE FILING DATE; FILING NUMBER PREVIOUSLY RECORDED ON REEL 028161 FRAME 0360. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 10, 2012
From: RICHTER, JOHN DAY, MR.; CAIRNS, BRIAN LEWIS, MR.; SCHOEFFLER, ERIC BENSON, MR.; PROCOPIO, MICHAEL JEFFREY, DR.; LEMONIK, MICAH, MR.; BESEN, ADAM WAYNE, MR.; EATON, BRIAN EDGAR, MR.; WYRICK, ROBERT EUGENE, MR.
To: GOOGLE INC.
Reel/Frame 028187/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2012
From: RICHTER, JOHN DAY, MR.; CAIRNS, BRIAN LEWIS, MR.; SCHOEFFLER, ERIC BENSON, MR.; PROCOPIO, MICHAEL JEFFREY, PHD, DR.; LEMONIK, MICAH, MR.; BESEN, ADAM WAYNE, MR; EATON, BRIAN EDGAR, MR.; WYRICK, ROBERT EUGENE, MR.
To: GOOGLE INC.
Reel/Frame 028161/0360 →