uf:totam
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
uf:totam [2009/11/18 15:10] – adding elisag | uf:totam [2010/10/20 17:17] – Rewriting elisag | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Tuples | + | ====== Scoped |
- | TOTAM is a communication abstraction to enable pervasive social interactivity: | + | TOTAM is tuple space model geared towards mobile ad hoc networks which provides |
- | The basic communications API of the framework provides means to address | + | TOTAM adopts features |
- | However, communicating | + | In TOTAM, tuple spaces are annotated |
- | Instead, we have designed | + | The novelty |
- | ==== Design | + | ===== Motivation ===== |
- | We have reused the concepts developed by | + | [[http:// |
+ | These propagation rules are crucial to provide programmers with a flexible mechanism to achieve context-awareness based not only on connectivity but also on semantic information. | ||
- | The original idea was to build a framework similar to TOTA to be able to exchange and percolate guanotes. Tota proposes relying on distributed | + | However, in TOTA tuples |
- | TOTAM has been designed to be independent from service discovery. So, Guanotes will also have to implement some glue codeto plug in the discovery mechanism of Urbiflock (via Flockr). | + | ===== Scoped Tuples for the Ambient ===== |
- | ==== API ==== | + | TOTAM provides the programmer with means to scope the tuples themselves, i.e the tuples can dynamically adjust their scope as they hop from location to location. By means of tuple space descriptors, |
- | Here comes the public interface to interact with an AmbientTota framework: | + | {{:research: |
- | < | + | Figure above illustrates how a scoped tuple is propagated through the TOTAM network. It depicts two types of locations, the blue and red locations corresponding to two teams of a multi-player game scenario where users (blue team) can use their PDA’s to chase dangerous |
- | makeTupleSpace() | + | |
- | makeTuple(tupleID) | + | |
- | extendTuple: | + | |
- | </ | + | |
- | A tuple space (ts) in AmbientTota basically consists of a local ts, an ambient ts (to inject tuples in the ambient). The public interface of an ts is the following: | + | ==== API ==== |
- | + | ||
- | < | + | |
- | // tota operations to manage a local ts | + | |
- | def add(tuple) | + | |
- | def delete(template) -> vector with the deleted tuples | + | |
- | matching the template | + | |
- | def read(template) -> vector with the matching tuples | + | |
- | + | ||
- | //publishes a tuple into the ambient ( ~ inject in TOTA) | + | |
- | def inject(tuple) -> subscription object to cancel the injection | + | |
- | // places a listener on to the local TS ( ~ subscribe in TOTA) | ||
- | // it returns a publication object to be able to unsusbscribe | ||
- | when: template matches:{ | tuple | | ||
- | // code | ||
- | } | ||
- | //Templates are currently boolean expressions on tuples. | ||
- | Example of template applied to guanotes: | ||
- | { |guanote| | ||
- | //methods belonging to the propagation protocol | + | ===== Further Reading ===== |
- | // notifies | + | **TOTAM: Scoped Tuples for the Ambient**, C. Scholliers, E. Gonzalez Boix, W. De Meuter. Proceedings |
- | // and starts the propagation protocol | + | ([[ http://prog.vub.ac.be/Publications/2009/ |
- | def notifyTSDiscovered(ts) | + | |
- | // notifies the arrival of tuples from a ts | + | |
- | // receive side of the propagation protocol | + | |
- | def receiveTyples(tuples) | + | |
- | </ | + | |
- | A tuple in our system is just the object contained in a local TS offering the following API to propagate itself: | ||
- | < | ||
- | // called in every tuple at pass() | ||
- | def decidePropagation() -> boolean | ||
- | // specifies operations on the local TS | ||
- | def doAction (); | ||
- | // specifies operations on the tuple itself | ||
- | def changeTupleContent() -> tuple | ||
- | // if true -> note gets added to local TS | ||
- | def decideStore () -> boolean | ||
- | // if true -> tuple gets unexported and deleted from local TS. | ||
- | //new operation not in TOTA | ||
- | def decideDie() -> boolean | ||
- | </ | ||
- | decideDie() is there for discontinuous decidePropagation functions. for example, tuples that should be only propagated every Tuesday could not implemented with TOTA because the propagation protocol only gets called once. We change this by providing decideDie() that gets called when you decide not to propagate. Like this a tuple can still be propagate at a later point in time, despite the fact that the decidePropagation function has evaluated to false at a certain moment. |
uf/totam.txt · Last modified: 2021/09/24 10:49 by elisag