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.