| Sponsor | Karsten Schwan and Greg Eisenhauer {schwan,eisen}@cc.gatech.edu |
| Area | Systems / Software |
The Problem Domain
We have some innovative message passing software that supports remote filtering of messages in the form of "events". The idea behind this support is that many networked applications don't really need all the information they receive. For example, if you're playing multi-user Quake or Doom over the network, the game is continually broadcasting information about your position, orientation, weapon, etc. to all the other players. But if they can't see you because they are in another room, that information is useless. It wastes network bandwidth and CPU cycles to send and receive it.
One approach to suppressing this unnecessary data is to work inside the application, building complicated message exchange systems where both the event sender and the event receiver cooperate to try to suppress events. However, debugging such protocols is hard and requires a lot of application-specific knowledge. Creating protocols for one situation doesn't help you with another application, and you're back to square one if you get a new receiver with a different idea of what information is "unnecessary".
Our derived event channels offer a conceptually simple solution to this situation. Event senders don't have to do anything except blindly submit events. Event receivers can specify a function, F, that is to be used to remotely filter events. The event infrastructure takes care of moving F to the event source and running it to discard events. We use dynamic code generation to create a native-code version of F s o that we can work in heterogenous environments and so that event filtering is efficient. (You could do this heterogenous code motion with something like Java or TCL, but those interpreters are too slow to use in the event flow of something like Quake.)
The ProjectThe challenges and benefits of using this remote filtering capability are inherently application-specific. This project is to conceive and demonstrate the use of this facility in some new application. (Hopefully one in which you have some non-trivial familiarity.)
Here is what you need to do.
Deliverables
Evaluation
Based on novelty of the application and the quality of the report turned
in.
updated by eisen, 8/31/99