170 likes | 388 Views
LIME Team. Adam Bazinet Hau San Si Tou. Project Goals. Implement a ‘lightweight’ version of Lime that works with the M2MP – Anhinga Spaces Devices will read and write from the tuple space without consuming large amounts of network bandwidth Demonstrate the technology. Solutions.
E N D
LIME Team • Adam Bazinet • Hau San Si Tou
Project Goals • Implement a ‘lightweight’ version of Lime that works with the M2MP – Anhinga Spaces • Devices will read and write from the tuple space without consuming large amounts of network bandwidth • Demonstrate the technology
Solutions • Communication with M2MP is directly between source and destination. • Change direct communication to indirect communication with a middleware – Anhinga Spaces – in between. • Data are stored in packets in M2MP • Data can be stored in tuples
Review of M2MP • Network protocol for many-to-many communication in an ad-hoc network of proximal mobile wireless devices. • No device addresses • Messages are broadcast to all devices • Allows filtering • Message delivery is mostly reliable
Review of LIME • Lime is a middleware which provides a coordination layer that can be exploited for designing applications which exhibit either logical or physical mobility---or both. • Coordination is achieved through a tuple space globally shared among components. • Tuples in the tuple space are physically stored across multiple hosts in the system.
LIME Infrastructure • Lime distribution contains 4 packages: • Provides coordination among processes (Lime agents) via a shared memory mechanism • LighTS includes 4 packages: • Java implementation of the tuple space concept • uCode includes 3 packages: • Provides a minimal set of primitives to support mobility of code & state
uCode • ClassSpace- Defines a name space for classes loaded by a µServer. • Group- The group is the unit of mobility provided by µCode. • MuClassLoader- Redefines class loading according to the policy of µCode. • MuServer- Provides an abstraction of the run-time support needed to receive and/or execute mobile code.
uCode.abstractions • MuAgent- Provides a "mobile agent" abstraction. • Relocator- This class provides some abstractions to deal with the relocation of classes and threads at a higher level than the one enabled by the primitives provided in the core mucode package. • RelocationHandler- The group handler for all the operations provided by the Relocator class.
lights • Field- Represents a single typed field of a tuple. • Tuple- The definition of a tuple, i.e., an ordered sequence of typed fields. • TupleSpace- Embodies the concept of a Linda-like tuple space.
lime • ILimeAgent- Any Lime agent must implement this interface. • StationaryAgent- In Lime, a Lime tuple space is always permanently associated with an ILimeAgent object. • MobileAgentThis class provides a Lime-enabled mobile agent, on top of µCode mobile agents.
lime • Location- The superclass of all locations, i.e., of both host and agent locations. • LimeServer- The runtime support needed to run Lime on a given host.
lime • LimeTupleSpace- provides an implementation for the Interface Tuple Space (ITS), the most basic component of a Lime-based application. • LimeSystemTupleSpace(LSTS)- gives the Lime Application Programmer the ability to access the system context information including which hosts are present, which agents are present, and which tuple spaces are at the agents.
lime • Reaction- The superclass of all reactions. • LocalizedReaction- concerned only with a localized projection of the shared tuple space. • LimeSystemReaction- concerned only with the Lime System Tuple Space. • UbiquitousReaction- Specifies reactions that are location-independent and get installed on the whole shared tuple space. • RegisteredReaction- Objects of this class represent a sort of a "receipt" for the registration of a reaction.