IP Library › Granted Patent US 9,361,636
Granted Patent B2
US 9,361,636 · App. 12/123,468 · Granted Jun 7, 2016

Creating, managing, and provisioning packages of online applications

Inventors: Yunus Mohammed (Bellevue, WA); Apurva F Dalia (Sammamish, WA); Christopher Gariepy (Bothell, WA); Venugopala Rao Moram (Redmond, WA); Joydeep Bhattacharyya (Bellevue, WA); Sandeep P Karanth (Bangalore, IN); Christopher J Saam (Kirkland, WA); Lizhong Huang (Sammamish, WA); Rodrigo Junqueira Lode (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06Q30/06G06Q30/016
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,361,636
App. No.
12/123,468
Granted
Jun 7, 2016
Kind
B2
Abstract

Methods and computer-readable media are provided herein for implementing custom application programming interfaces (API) for creating, managing, and provisioning packages of online applications. An offer management service API is implemented that provides methods for creating and modifying offers for packages of online applications. An offer provisioning API is implemented that provides methods enabling the provisioning of online applications for subscribers to offers. An application provider API is published and utilized to provision and maintain individual instances of online applications provided by application providers.

Claims (78)

1. An apparatus for managing packages of online applications comprising:

a processor; and

a computer-readable storage media having instructions stored thereupon which, when executed by the processor, cause the apparatus to

expose an application programming interface (API) for provisioning one or more online applications packaged in an offer for a subscriber,

receive a call to a method exposed by the API requesting an account be provisioned for the subscriber, the call specifying the offer and properties of the subscriber,

in response to receiving the call to the method exposed by the API, create an account associated with the subscriber in a subscription store,

retrieve the one or more online applications packaged in the offer,

utilize the API to provision each of the one or more online applications packaged in the offer for the account associated with the subscriber, the provisioning of an online application for the account comprising provisioning a new instance of the online application to execute on an application provider server associated with the online application upon a first use by the subscriber, and

return an identifier for the account.

2. The apparatus of claim 1 , wherein the computer-readable storage media has additional computer executable instructions stored thereon which, when executed by the processor, cause the apparatus to:

receive a call to a method exposed by the API requesting one of the one or more online applications provisioned for an account be re-provisioned, the call specifying the account, the online application, and properties for re-provisioning the online application; and

in response to receiving the call to the method exposed by the API, cause the online application to be re-provisioned for the account.

3. The apparatus of claim 1 , wherein the computer-readable storage media has additional computer executable instructions stored thereon which, when executed by the processor, cause the apparatus to:

receive a call to a method exposed by the API requesting an account be disabled, the call specifying the account;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account;

for each of the online applications provisioned for the account, cause the online application to be disabled;

receive a call to a method exposed by the API requesting the account be re-enabled, the call specifying the account;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account; and

for each of the online applications provisioned for the account, cause the online application to be enabled.

4. The apparatus of claim 1 , wherein the computer-readable storage media has additional computer executable instructions stored thereon which, when executed by the processor, cause the apparatus to:

receive a call to a method exposed by the API requesting an account be de-provisioned, the call specifying the account;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account;

for each of the online applications provisioned for the account, cause the online application to be de-provisioned; and

remove the account from the subscription store.

5. The apparatus of claim 1 , wherein the computer-readable storage media has additional computer executable instructions stored thereon which, when executed by the processor, cause the apparatus to:

receive a call to a method exposed by the API requesting an account be converted to a new account type, the call specifying the account and the properties of the new account type;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account;

for each of the online applications provisioned for the account, cause the online application to be de-provisioned;

update the account in the subscription store to reflect the new account type;

retrieve one or more online applications packaged in an offer associated with the new account type; and

for each of the one or more online applications, cause the online application to be provisioned for the account.

6. The apparatus of claim 1 , wherein accessibility to a method of the API and accessibility to an account in the subscription store is limited based upon an identity of a caller to the API.

7. The apparatus of claim 1 , wherein exposing the API further comprises making methods of the API available to callers over an Internet and wherein the method is callable by a personal computer application.

8. A computer-implemented method for provisioning and maintaining instances of online applications provided by application providers utilizing an application provider application programming interface (API), the method comprising:

publishing a specification of the application provider API for implementation by a plurality of application providers;

calling a method of the application provider API implemented by one of the plurality of application providers to determine if an instance of an online application can be provisioned by the application provider, the call specifying the online application and properties of the instance of the online application to be provisioned; and

determining the online application can be provisioned at least by a first use of the online application, calling a method of the application provider API implemented by the application provider to provision an instance of the online application, the call further specifying an identifier for the instance of the online application to be provisioned, the instance of the online application to be executed on an application provider server associated with the online application.

9. The computer-implemented method of claim 8 , wherein the call further specifies a base property value and one or more relative property values for at least one of the properties of the instance of the online application to be provisioned.

10. The computer-implemented method of claim 8 further comprising:

calling a method of the API implemented by the application provider to determine if an instance of the online application can be re-provisioned with new property values, the call specifying the identifier for the instance of the online application and the new property values with which to re-provision the online application; and

if the instance of the online application can be re-provisioned, calling a method of the API implemented by the application provider to re-provision the instance of the online application with the new property values.

11. The computer-implemented method of claim 8 further comprising:

calling a method of the API implemented by the application provider to determine if an instance of the online application can be converted to a new online application type, the call specifying the identifier for the instance of the online application; and

if the instance of the online application can be converted to the new online application type, calling a method of the API implemented by the application provider to convert the instance of the online application to the new online application type.

12. The computer-implemented method of claim 8 , further comprising calling a method of the API implemented by the application provider to de-provision an instance of the online application, the call specifying the identifier for the instance of the online application.

13. The computer-implemented method of claim 8 further comprising:

calling a method of the API implemented by the application provider to retrieve user interface details for an instance of an online application, the call specifying the identifier for the instance of the online application, the user interface details used to display a user interface allowing a user to modify the properties of the online application.

14. An optical disk, magnetic storage device, or solid state storage device encoding a sequence of computer-executable instructions thereupon which, when executed by a processor, cause the processor to:

expose an application programming interface (API) for provisioning one or more online applications packaged in an offer for a subscriber;

receive a call to a method exposed by the API requesting an account be provisioned for the subscriber, the call specifying the offer and properties of the subscriber;

in response to receiving the call to the method exposed by the API, create an account associated with the subscriber in a subscription store;

retrieve the one or more online applications packaged in the offer;

utilize the API to provision each of the one or more online applications packaged in the offer for the account associated with the subscriber, the provisioning of an online application for the account comprising provisioning a new instance of the online application to execute on an application provider server associated with the online application upon a first use by the subscriber; and

return an identifier for the account.

15. The optical disk, magnetic storage device, or solid state storage device of claim 14 , comprising further computer-executable instructions which, when executed by the processor, cause the processor to:

receive a call to a method exposed by the API requesting one of the one or more online applications provisioned for an account be re-provisioned, the call specifying the account, the online application, and properties for re-provisioning the online application; and

in response to receiving the call to the method exposed by the API, cause the online application to be re-provisioned for the account.

16. The optical disk, magnetic storage device, or solid state storage device of claim 14 , comprising further computer-executable instructions which, when executed by the processor, cause the processor to:

receive a call to a method exposed by the API requesting an account be disabled, the call specifying the account;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account;

for each of the online applications provisioned for the account, cause the online application to be disabled;

receive a call to a method exposed by the API requesting the account be re-enabled, the call specifying the account;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account; and

for each of the online applications provisioned for the account, cause the online application to be enabled.

17. The optical disk, magnetic storage device, or solid state storage device of claim 14 , comprising further computer-executable instructions which, when executed by the processor, cause the processor to:

receive a call to a method exposed by the API requesting an account be de-provisioned, the call specifying the account;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account;

for each of the online applications provisioned for the account, cause the online application to be de-provisioned; and

remove the account from the subscription store.

18. The optical disk, magnetic storage device, or solid state storage device of claim 14 , comprising further computer-executable instructions which, when executed by the processor, cause the processor to:

receive a call to a method exposed by the API requesting an account be converted to a new account type, the call specifying the account and the properties of the new account type;

in response to receiving the call to the method exposed by the API, retrieve from the subscription store the online applications provisioned for the account;

for each of the online applications provisioned for the account, cause the online application to be de-provisioned;

update the account in the subscription store to reflect the new account type;

retrieve one or more online applications packaged in an offer associated with the new account type; and

for each of the one or more online applications, cause the online application to be provisioned for the account.

19. The optical disk, magnetic storage device, or solid state storage device of claim 14 , wherein accessibility to a method of the API and accessibility to an account in the subscription store is limited based upon an identity of a caller to the API.

20. The optical disk, magnetic storage device, or solid state storage device of claim 14 , wherein exposing the API further comprises making methods of the API available to callers over an Internet and wherein the method is callable by a personal computer application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2008
From: MOHAMMED, YUNUS; DALIA, APURVA F; GARIEPY, CHRISTOPHER; MORAM, VENUGOPALA RAO; BHATTACHARYYA, JOYDEEP; KARANTH, SANDEEP P; SAAM, CHRISTOPHER J; HUANG, LIZHONG; LODE, RODRIGO JUNQUEIRA
To: MICROSOFT CORPORATION
Reel/Frame 020969/0262 →
Continuity (1)
Related Publication 20090292545A1 · Nov 26, 2009