SLIDE 5 5
Networking Philosophy
- Components should be loosely coupled.
- Serverless protocol
– Broadcast
- Ridiculously simple programmer interface.
- Observer Design Pattern
– EventGenerators – EventListeners
M2MI
– Anhinga Project (A. Kaminksy/HP Bischoff) – Java based networking library – Serverless broadcast model – http://www.cs.rit.edu/~anhinga
M2MI
- Small mobile computing devices
– Not much CPU, memory, battery life
- Proximal wireless networks
– Broadcasting is inherent
– Automatic network configuration
- Collaborative applications
– Chat, groupware, file sharing, sensor networks, . . .
- Many-to-many communication patterns
– Every device talks to every other device
M2MI
- Object oriented abstraction of many-to-
many communication
M2MI Handles
- Handles (remote references)
– Omnihandle: Refers to all objects that implement an interface – Multihandle: Refers to a group of objects that implement an interface – Unihandle: Refers to one object that implements an interface
M2MI Handles
M2MI.export (a, Foo.class); Foo allFoos = (Foo) M2MI.getOmnihandle (Foo.class); allFoos.y();