They are also subject to dynamic changes in resource availability. Finally, the distributed applications running on such platforms exhibit dynamic behaviors with respect to their computation and communication needs. My research goal is to create software abstractions, tools, and methods for building efficient component-based applications for future platforms. High efficiency is attained for such applications by removing some of the abstraction barriers that now exist between their components. In this fashion, inter-component optimizations may be performed, even continuously, when components interact with each other, to address current application needs and platform resource availability.
Event systems provide anonymous group communication for dynamically coupled software components.
Sample applications implemented with such middleware include distributed collaboration systems, remote visualization, remote sensor data capture and processing, distributed multimedia applications like games and virtual environments, and e-business applications. The components being coupled include display and sensor endpoints producing or consuming information as well as computations that transform, filter, and manage information streams. The hardware platforms addressed utilize LAN, WAN, and wireless communications, with nodes ranging from computational clusters, to PCs, to handheld devices. Elements determining the performance of distributed event systems include the numbers and sizes of events being transported, and the numbers of event producers and subscribers that need these events. Event filtering, therefore, is one key activity that determines the performance of distributed event systems.