uf:guanotes
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| uf:guanotes [2008/10/01 10:40] – elisag | uf:guanotes [2009/11/18 15:12] (current) – elisag | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Guanotes application allows flockrs to post notes, called guanotes, to the ambient ( i.e any device available in the surroundings ranging from other flockr device to devices installed on public places such as KK). This is a concept similar to Stickies application in Mac but guanotes can hop from one device to another. | Guanotes application allows flockrs to post notes, called guanotes, to the ambient ( i.e any device available in the surroundings ranging from other flockr device to devices installed on public places such as KK). This is a concept similar to Stickies application in Mac but guanotes can hop from one device to another. | ||
| - | Flockrs can thus discover other flockrs guanotes, store them and exchange them later with other flockrs such that guanotes can be percolated through the entire Urbiflock. | + | Flockrs can thus discover other flockrs guanotes, store them and exchange them later with other flockrs such that guanotes can be 'percolated' |
| - | Flockrs can also subscribe to a particular type of guanotes such that they are automatically notified whenever they meet a flockr carrying guanotes of that particular type. | + | Flockrs can also subscribe to a particular type of guanotes such that they are automatically notified whenever they meet a flockr carrying guanotes of that particular type. Currently, flockrs can subscribe to receive guanotes sent to a particular flock. This functionality is reminiscent to the subscription to a mailing list. |
| Another idea is that flockrs can stop the percolation of guanotes. For example, if a flockr detects that a spam guanote or a guanote with unapropiate content, it could stop its propagation. | Another idea is that flockrs can stop the percolation of guanotes. For example, if a flockr detects that a spam guanote or a guanote with unapropiate content, it could stop its propagation. | ||
| - | ==== Design | + | ==== What is a guanote? |
| - | To implement | + | A guanote consists of a message and a receiver list (a flock or individual flockrs). |
| + | In order to avoid flooding the network, [[: | ||
| - | The idea is to build a framework similar to TOTA, called AmbientTOTA, | + | A guanote can be sent to a flock or an explicit collection of flockrs. In the later case end users can enumerate the targeted flockrs |
| - | AmbientTota 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). | + | ==== Usage Scenario ==== |
| - | ==== API ==== | + | {{: |
| - | Here comes the public interface to interact with an AmbientTota framework: | + | The above figure illustrates |
| - | + | ||
| - | < | + | |
| - | makeTupleSpace() | + | |
| - | makeTuple(tupleID) | + | |
| - | extendTuple: | + | |
| - | </ | + | |
| - | + | ||
| - | A tuple space (ts) in AmbientTota basically consists | + | |
| - | + | ||
| - | < | + | |
| - | // tota operations to manage | + | |
| - | def add(tuple) | + | |
| - | def delete(template) -> vector with the deleted tuples | + | |
| - | matching | + | |
| - | def read(template) -> vector with the matching tuples | + | |
| - | + | ||
| - | //publishes a tuple into the ambient ( ~ inject in TOTA) | + | |
| - | def inject(tuple) -> subscription object to cancel | + | |
| - | + | ||
| - | // places | + | |
| - | // 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| guanote.flock == " | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | // notifies | + | |
| - | // and starts the propagation protocol (send side) | + | |
| - | 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 | + | |
| - | + | ||
| - | < | + | |
| - | // 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 | + | |
| - | //new operation not in TOTA | + | |
| - | def decideDie() -> boolean | + | |
| - | </ | + | |
| - | + | ||
| - | decideDie() is there for discontinuous decidePropagation functions. for example, tuples that should be only propagated | + | |
uf/guanotes.1222850418.txt.gz · Last modified: (external edit)
