Claims
- 1. A method for dynamically coordinating application interactions and communications in a ubiquitous computing environment having a plurality of heterogeneous machines running a plurality of heterogeneous software applications, said method comprising:
enabling said applications to exchange events via an Event Heap, a dynamic application interactions coordination infrastructure, wherein each event is characterized by a set of unordered, named fields; and routing each event by matching certain attributes in said fields.
- 2. The method of claim 1, wherein
said attributes include application instance, application name, device name, person, and group.
- 3. The method of claim 1, wherein
said fields include EventType, SourceID, TargetID, PersonID, GroupID, SequenceID, TimeToLive, and TimeStamp.
- 4. The method of claim 1, wherein
each field contains field type, field name, post value, and template value.
- 5. The method of claim 1, further comprising:
enabling each of said applications to control event delivery and receipt by setting said fields to specific values.
- 6. The method of claim 1, further comprising:
enabling said applications to register interest in certain events and to receive a notification with each matching event posted in said Event Heap.
- 7. The method of claim 1, further comprising:
automatically setting source and target version of each field of an event when said event is posted in said Event Heap or used as a template.
- 8. The method of claim 1, further comprising:
enabling said applications to listen for events posted in said Event Heap and emit events as users of said environment interact.
- 9. The method of claim 1, further comprising:
retrieving an event based on query registration or with an event template.
- 10. The method of claim 1, further comprising:
supporting a plurality of routing patterns including unicast, broadcast, multicast, and anycast.
- 11. The method of claim 1, further comprising:
ordering said events first-in-first-out per source at most once.
- 12. The method of claim 1, further comprising:
implementing said machines with modular restartability such that each of said applications automatically reconnects to said Event Heap upon restart, allowing users of said ubiquitous computing environment to restart one or more of said applications at will without causing adverse affects.
- 13. The method of claim 1, wherein said ubiquitous computing environment is characterized as having bounded environment (H1), human centered interaction and flexible reconfiguration (H2), human level performance needs (H3), hardware heterogeneity (T1), software heterogeneity (T2), short timescale change (T3), and long timescale change (T4).
- 14. A computer-readable medium storing a computer program implementing the method of claim 1.
- 15. A computer system programmed to perform the method of claim 1.
- 16. A dynamic application coordination infrastructure for a ubiquitous computing environment having a plurality of heterogeneous machines running a plurality of heterogeneous software applications, said dynamic application coordination infrastructure comprising:
an Event Heap Model having
an Event Heap where said applications exchange events based on content thereof, and a plurality of properties supporting characteristics of said ubiquitous computing environment; wherein said characteristics include bounded environment (H1), human centered interaction and flexible reconfiguration (H2), human level performance needs (H3), hardware heterogeneity (T1), software heterogeneity (T2), short timescale change (T3), and long timescale change (T4); and wherein said properties include limited temporal decoupling (P1), referential decoupling (P2), extensibility (P3), expressiveness (P4), portable client application programming interface (P5), ease of debugging (P6), perceptual instantaneity (P7), scalability (P8), failure tolerance and recovery (P9), and application portability (P10).
- 17. The dynamic application coordination infrastructure of claim 16, further comprising:
computer-readable media storing computer-executable instructions implementing a plurality of features causing said Event Heap model to possess said properties, wherein said features comprise standard routing fields, limited data persistence, query persistence and registration, self-description, flexible typing, at most once per source first-in-first-out ordering, and modular restartability.
- 18. The dynamic application coordination infrastructure of claim 16, wherein
each of said events consists of a set of unordered, named fields; wherein said fields include EventType, SourceID, TargetID, PersonID, GroupID, SequenceID, TimeToLive, and TimeStamp; and wherein said applications control event delivery and receipt by setting said fields to specific values.
- 19. The dynamic application coordination infrastructure of claim 17, further comprising:
snooping means to allow said applications to monitor communications between other applications in said dynamic application coordination infrastructure without effecting sequencing; and interposability means to allow an intermediary application to pick up messages from a source application, translate said messages to a new format, and forward said messages onto a receiver application recognizing said new format.
- 20. A method for constructing a dynamic application coordination infrastructure for a ubiquitous computing environment having a plurality of heterogeneous machines running a plurality of heterogeneous software applications and platforms, said method comprising:
identifying characteristics of said ubiquitous computing environment based on human factors and technology factors, wherein said characteristics include bounded environment (H1), human centered interaction and flexible reconfiguration (H2), human level performance needs (H3), hardware heterogeneity (T1), software heterogeneity (T2), short timescale change (T3), and long timescale change (T4); determining properties supporting and optimizing said characteristics, wherein said wherein said properties include limited temporal decoupling (P1), referential decoupling (P2), extensibility (P3), expressiveness (P4), portable client application programming interface (P5), ease of debugging (P6), perceptual instantaneity (P7), scalability (P8), failure tolerance and recovery (P9), and application portability (P10); and implementing features that cause said infrastructure to possess said properties, wherein said features comprise standard routing fields, limited data persistence, query persistence and registration, self-description, flexible typing, per source first-in-first-out at most once ordering, and modular restartability.
- 21. A computer-readable medium storing a computer program implementing the method of claim 20.
- 22. A computer system programmed to perform the method of claim 20.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from a U.S. Provisional Patent Application No. 60/461,520, filed Apr. 8, 2003, and incorporates by reference herein the content and appendices thereof, including computer source code of an embodiment implementing the present invention.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
[0002] This invention was supported in part by the Department of Energy (DOE) under Grant Number B504665. The U.S. Government may have certain rights in the invention.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60461520 |
Apr 2003 |
US |