Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

Described is a method and system a unified mechanism for storing device, application, and service state, as well as a rich notification brokerage architecture. Clients register with a notification broker to receive notifications for changes to state properties. When a registered state property changes, a notification broker determines which clients to notify of the state change and provides the client with a notification regarding the change. Clients may be notified whenever a state changes, when a state change meets a predetermined condition, or based on a schedule. An application may also be launched in response to a state change. An application programming interface (API) is provided that provides a unified way of accessing state change information across different components within the device.

InventorsJan Karachale, Jason William Fuller, Robert Levy, Zeke Koch, Ardan Arac, Brian Cross, Ori M. Amiga
Original AssigneeMicrosoft Corporation
Primary Examiner: Weilun Lo
Secondary Examiner: Kim-Lynn Dam
Attorney: Merchant & Gould, P.C.
Current U.S. Classification715/864; 715/736; 715/859

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US6098093Mar 19, 1998Aug 1, 2000International Business Machines Corp.Maintaining sessions in a clustered server environment
US6208996Mar 5, 1998Mar 27, 2001Microsoft CorporationMobile device having notification database in which only those notifications that are to be presented in a limited predetermined time period
US6928300Nov 9, 2000Aug 9, 2005PalmSource, Inc.Method and apparatus for automated flexible configuring of notifications and activation
US20020046299Dec 6, 2000Internet2Anywhere, Ltd.Method and system for location independent and platform independent network signaling and action initiating
US20030028602Aug 1, 2001IBMMessaging systems

Claims

1. A method for providing notifications to clients in response to state property changes, comprising:

at a notification broker that is located on a mobile device, receiving an automatic notification request from a client application on the mobile device to receive a notification in response to an event that originates on the mobile device; wherein the event is associated with change in a state property of the mobile device, wherein execution of the client application on the mobile device is dependent upon a received notification; wherein the notification request comprises a permanent notification request and a transient notification request; wherein the permanent notification request is stored by the notification broker in a data-store on the mobile device that maintains the notification request across a reboot; wherein the transient notification is not maintained across the reboot;

ensuring that the state property is registered with the notification broker, wherein the notification broker includes state properties that are updated by different components within the mobile device;

determining when the state property changes;

determining when the client should receive notification of the state property change; and
the notification broker on the mobile device notifying the client of the state property change when determined.

2. The method of claim 1, further comprising utilizing an Application Program Interface (API) to perform actions involving the state properties, wherein the actions include at least one of the following: registering a state property; querying the state property; and setting the state property.

3. The method of claim 2, wherein determining when the client should receive the notification, comprises: applying a conditional expression to the state property and notifying the client of the state property change when the condition is met.

4. The method of claim 3, wherein the conditional expression is expressed using the following conditions: all, equal, not equal, greater than, greater or equal than, less than or equal, less than, contains, starts with, and ends with.

5. The method of claim 2, further comprising launching the client in response to at least one of: a state property change and a scheduled event.

6. The method of claim 2, further comprising notifying the client in response to a schedule defined by the client.

7. The method of claim 2, wherein determining when the state property changes further comprises: performing a batching operation on changes to the state property that occur within a predetermined time period.

8. The method of claim 1, wherein receiving the notification request from the client to receive the notification in response to the change associated with the state property, further comprises associating a group of state properties with the notification request from the client when an identifier associated with the request identifies a category of state properties, wherein the state properties are arrange in a hierarchy within the notification system.

9. The method of claim 2, further comprising providing pre-loaded state property data that may be accessed by the clients without the client having to register a state property with the notification broker; wherein the pre-loaded state property data comprises a majority of the following states; a display orientation state; an undismissed reminders state; an undismissed alarms state; a battery state; a memory state; a storage card state; a hardware state, a keyboard enabled state, a Wifi enabled state, a Bluetooth enabled state, a headphones state, a camera state; a messaging state; a tasks state; a calendar state; an Instant Messenger state; a connectivity state; a media player state; a synchronization status state; and a telephony state.

10. A system for state management and notifications, comprising:

a data store on a mobile device that is arranged to store information relating to state properties, wherein at least some of the state properties are modified by different components;

an Application Program Interface (API) configured to perform operations relating to the state properties;

client applications on the mobile device that are configured to automatically register notification requests and receive notifications in response to a change in a state property of the mobile device for which they have registered, wherein the notification requests indicate when the clients should receive notifications in response to changes associated with the state properties, and wherein execution of the client applications is dependent upon a received notification; wherein the change in the state property is responsive to an event that originates on the mobile device;

a notification list stored within the data store that is arranged to store the clients that have been registered to receive notification requests;
a notification broker on the mobile device that is coupled to the data store, the notification list, and the clients, wherein the notification broker, includes functionality configured to perform the following actions, including to:
receive a notification request to add at least one client to the notification list;
add the at least one client to the notification list; and
determine when a registered state property changes, and when the state property changes, determine the clients to receive a notification, and notify the determined clients of the state property change.

11. The system of claim 10, wherein the Application Program Interface (API) is further configured to perform at least one of the following actions: registering a state property; querying the state property; and setting the state property.

12. The system of claim 11, wherein determining the clients to receive the notification, comprises: applying a conditional expression to the state property and notifying the client of the state property when the condition is met.

13. The system of claim 12, wherein the conditional expression includes at least one of the following conditions: all, equal, not equal, greater than, greater or equal than, less than or equal, less than, contains, starts with, and ends with.

14. The system of claim 11, further comprising launching the client in response to at least one of a state property change and a scheduled event.

15. The system of claim 11, further comprising notifying the client in response to a schedule defined by the client.

16. The system of claim 11, wherein determining when the state property changes further comprises: performing a batching operation on changes to the state property that occur within a predetermined time period.

17. The system of claim 10, wherein the state properties are arranged in a hierarchy.

18. The system of claim 10, wherein content within the data store persists across device reboots.

19. A tangible computer-readable storage medium having computer executable instructions for performing operations on state properties, comprising:

receiving at a notification broker on a mobile device an automatic request from a client application that is executed on the mobile device to receive an identifier identifying at least one state property within a group of state properties of the mobile device such that the execution of the application on the mobile device is in response to the state properties associated with the mobile device on which the application resides; wherein the application on the mobile device is developed after development of the mobile device; wherein state properties within the group of state properties are updated by different components on the mobile device; wherein the state properties change is response to an event that originates on the mobile device;

receiving the identifier at the mobile device that indicates the at least one state property within a group of state properties of the mobile device;

determining an operation to perform on the mobile device relating to a state property within the group of state properties; and

performing the operation on the mobile device in response to the received identifier.

20. The computer-readable medium of claim 19, wherein the operation includes at least one of the following operations: registering a state property; querying the state property; associating a conditional expression with the state property; and setting the state property.

21. The computer-readable medium of claim 20, wherein performing the operation, comprises: applying the conditional expression to the state property and notifying the client of the state property when the condition is met.

22. The computer-readable medium of claim 21, wherein the conditional expression includes at least one of the following conditions: all, equal, not equal, greater than, greater or equal than, less than or equal, less than, contains, starts with, and ends with.

23. The computer-readable medium of claim 20, wherein performing the operation further comprises launching a client application in response to at least one of the following: a change in the state property and a scheduled event.

24. The computer-readable medium of claim 20, wherein performing the operation further comprises notifying the client in response to a schedule defined by the client.

25. The computer-readable medium of claim 20, wherein performing the operation further comprises: performing a batching operation on changes to the state property that occur within a predetermined time period.