Links Publications People Download

Technical Approach

Architecture | Implementation Overview | Status

Architecture

Meteor is an infrastructure for content-based decoupled interactions in pervasive Grid environments providing services for content routing, content discovery and associative interactions. It is essentially a dynamic P2P network of Rendezvous Peers (RP). To use Meteor, applications must have access to at least one RP and can post messages to this RP. A schematic overview of the Meteor stack is presented in Figure. It consists of 3 key components: (1) a self-organizing overlay, (2) a content-based routing infrastructure (Squid), and (3) the Associative Rendezvous Messaging Substrate (ARMS).

Overlay Network: The Meteor overlay network is composed of RP nodes, which may be access points or message forwarding nodes in ad-hoc sensor networks and servers or peer nodes in wired networks. RP nodes can join or leave the network at any time.
Content-based Discovery and Routing (Squid): Content-based discovery and routing services in Meteor are provided by Squid. Squid builds on top of the overlay to enable flexible content-based routing. Squid effectively maps complex queries consisting of keyword tuples (multiple keywords, partial keywords, wildcards, and ranges) onto clusters of identifiers, which is provided by overlay, and guarantees that all peers responsible for identifiers in these clusters will be found with bounded costs in terms of number of messages and the number of intermediate RP nodes involved.

Associative Rendezvous Messaging Substrate (ARMS): Associative Rendezvous (AR) is a paradigm for content-based decoupled interactions with programmable reactive behaviors. AR extends the conventional name/identifier-based rendezvous in two ways. First, it uses flexible combinations of keywords (i.e, keyword, partial keyword, wildcards, ranges) from a semantic information space, instead of opaque identifiers (names, addresses) that have to be globally known. Interactions are based on content described by keywords, such as the type of data a sensor produces (temperature or humidity) and/or its location, the type of functionality a service provides and/or its QoS guarantees, and the capability and/or the cost of a resource. Second, it enables the reactive behaviors at the rendezvous points to be encapsulated within messages increasing flexibility and expressibility, and enabling multiple interaction semantics (e.g. broadcast, multicast, notification, publish/subscribe, mobility, etc.).

Implementation Overview

The current implementation of Meteor builds on Project JXTA, a general-purpose peer-to-peer framework. JXTA defines concepts, protocols, and a network architecture. Note that JXTA is an application level technology and does not introduce any limitations on the underlying infrastructure or the routing protocols.

The overlay network, Squid and the ARMS layers of the Meteor stack are implemented as event-driven JXTA services. Each layer registers itself as a listener for specific messages, and gets notified when a corresponding event is raised. Since Meteor is designed as an overlay network of rendezvous peers, it is incrementally deployable. A joining RP uses the Chord protocol and becomes responsible for an interval in the identifier space. In this way, the addition of a new rendezvous node is transparent to the end-hosts.

Each layer exposes an API for the upper layer

Chord interacts directly with JXTA, it uses: (1) JXTA discovery mechanism to find other nodes already in the group; (2) JXTA resolver service to send messages between peers.

Squid uses Chord's lookup primitive, to route clusters to their destination. Squid's API consists one primitive: post(AR_Message) -- routes based on the keywords extracted from the message's profile.

Associative Rendezvous (AR) Messaging layer: API consisting of a single function: post(header, action, data) is provided to end-applications.

Overview of Meteor Package at TASSL

Meteor at JXTA and its development

Status

To test the proposed approach, we currently have implemented the meteor programming framework. For this purpose, Meteor uses JXTA Technology to enable discovery between peers as well as a p2p messaging substrate. The Meteor development team chose JXTA because it offered all the services and mechanisms that they needed to build their application. An ad-hoc testbed prototype is being instrumented to support programming and prototype studies in the sensor environments.


Meteor is designed and developed at Rutgers University's TASSL lab at the CAIP Center