This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
uf:guanotes [2008/09/26 13:57] elisag |
uf:guanotes [2009/11/18 15:11] 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, TOTAM ensures that only flockrs belonging to the receiver list are used as //routers// (so that only potential targeted flockrs carry guanotes). | ||
- | The idea is to build a framework similar | + | 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 in the receiver list or take a snapshot of a flock. It is important |
- | Here comes the primitive operations to interact with the AmbientTota framework: | + | ==== Usage Scenario ==== |
- | < | + | {{:uf:guanotes_scenario.png? |
- | //publishes a tuple into the ambient ( ~ inject in TOTA) | + | |
- | def inject(tuple) | + | |
- | export: tuple as: Tuple | + | |
- | }; | + | |
- | // places | + | The above figure illustrates the propagation of a guanote in a campus-based scenario. It shows six flockrs connected in Urbiflock and running the Guanotes application. The communication range of their devices is depicted with a dotted line while the colored dot on their devices denotes |
- | // it returns | + | |
- | when: template matches:{ | tuple | | + | |
- | + | ||
- | } | + | |
- | //Templates are currently boolean expressions on tuples. | ||
- | Example of template applied to guanotes: | ||
- | { |guanote| | ||
- | </ | ||
- | |||
- | 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 | ||
- | </ | ||