Tubes: Difference between revisions
(+cleanup tag. +high profile link to Low-level_Activity_API#Tubes) |
No edit summary |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Developers}} |
|||
⚫ | |||
{{Translations}} |
|||
{{TOCright}} |
|||
==Data transfer via Telepathy== |
|||
A tube is a [[Telepathy]] primitive for sending and receiving data, which can be to one person or to a group of people. Tubes can carry reliable byte streams or unreliable datagrams by analogy to TCP or UDP. When a tube is to a group, some different semantics may be more appropriate, since a shared stream is not coherent. It is up to the connection manager how tubes are implemented on top of its protocol. |
|||
{{stub}} |
|||
{{cleanup}} |
|||
Networking and presence tools used by Sugar. |
|||
⚫ | |||
DBus uses XML blobs. Tubes moves those around using Telepathy chatrooms. |
|||
[http://dgh.livejournal.com/3997.html Dafydd Harries on Tubes] |
|||
⚫ | |||
[http://www.robot101.net/2007/05/11/tubes-and-planets/ Rob McQueen's blog] |
|||
''see also [[Store and forward]]'' |
|||
There are two types of Tubes at present: D-Bus Tubes and Stream Tubes. |
|||
D-Bus Tubes provide D-Bus functionality to signal and call methods on everyone in the room. |
|||
⚫ | |||
⚫ | |||
Stream Tubes wrap TCP/IP sockets and are more suited to streaming data between two participants. |
|||
*[[Shared Sugar Activities]] |
|||
⚫ | |||
===D-Bus Tubes=== |
|||
A multi-user tube is represented as a D-Bus bus, and the connection manager makes a mapping between the participants in the tube and D-Bus bus name. Clients can then take advantage of D-Bus's serialisation and the bindings so that they have to do less protocol work. |
|||
===Stream Tubes=== |
|||
Stream Tubes allow you to establish TCP connections with contacts or participants in a multi-user chat or conference (MUC). |
|||
.---------. |
|||
|TP client|--|listening socket| B |
|||
'---------' ^ |
|||
C | |
|||
.----------. |
|||
|Connection| |
|||
| Manager | A |
|||
'----------' |
|||
| |
|||
_____ |
|||
__/ \___ |
|||
___/ \ |
|||
/ \____ |
|||
| \ |
|||
\__ / |
|||
\ Internets / |
|||
/ \ |
|||
/ \ |
|||
| ___ / |
|||
\____/\ / \____/ |
|||
\____/ |
|||
^ |
|||
| |
|||
.----------. |
|||
|Connection| |
|||
F | Manager |-|listening socket| E |
|||
'----------' ^ |
|||
| |
|||
.---------. |
|||
|TP client| D |
|||
'---------' |
|||
[http://cass.no-ip.com/~cassidy/blog/index.php/post/2007/06/05/Stream-tubes-a-new-generation-of-tubes Guillaume Desmottes on Stream Tubes] [http://cass.no-ip.com/~cassidy/blog/index.php/post/2007/10/06/Inet-socket-support-in-stream-tubes more] [http://cass.no-ip.com/~cassidy/blog/index.php/post/2007/10/21/GTetrinet-through-tubes more] |
|||
⚫ | |||
===Tubes Channel Type=== |
|||
In terms of the Telepathy API, we have created a channel type which has methods for enumerating existing tubes and requesting new ones. The channel might be attached to an existing channel (such as a MUC), in which case it will be automatically closed when the underlying channel is closed. |
|||
===Proposed Standards=== |
|||
See [[Telepathy#Proposed Standards]] for proto XEPs. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
*[[Collaboration Tutorial]] |
|||
*[[Presence Service]] |
|||
*[[Presence Service DBus API]] |
*[[Presence Service DBus API]] |
||
*[[Sugar TODO]] |
|||
*[[Software_projects#Telepathy_.28Networking.29]] |
*[[Software_projects#Telepathy_.28Networking.29]] |
||
[[category:Telepathy]] |
|||
[[category:Collaboration]] |
|||
[[category:Developers]] |
Latest revision as of 22:16, 5 July 2011
Please copy/paste "{{Translationlist | xx | origlang=en | translated={{{translated}}}}}" (where xx is ISO 639 language code for your translation) to Tubes/translations | HowTo [ID# 257702] +/- |
Data transfer via Telepathy
A tube is a Telepathy primitive for sending and receiving data, which can be to one person or to a group of people. Tubes can carry reliable byte streams or unreliable datagrams by analogy to TCP or UDP. When a tube is to a group, some different semantics may be more appropriate, since a shared stream is not coherent. It is up to the connection manager how tubes are implemented on top of its protocol.
There are two types of Tubes at present: D-Bus Tubes and Stream Tubes.
D-Bus Tubes provide D-Bus functionality to signal and call methods on everyone in the room.
Stream Tubes wrap TCP/IP sockets and are more suited to streaming data between two participants.
D-Bus Tubes
A multi-user tube is represented as a D-Bus bus, and the connection manager makes a mapping between the participants in the tube and D-Bus bus name. Clients can then take advantage of D-Bus's serialisation and the bindings so that they have to do less protocol work.
Stream Tubes
Stream Tubes allow you to establish TCP connections with contacts or participants in a multi-user chat or conference (MUC).
.---------. |TP client|--|listening socket| B '---------' ^ C | .----------. |Connection| | Manager | A '----------' | _____ __/ \___ ___/ \ / \____ | \ \__ / \ Internets / / \ / \ | ___ / \____/\ / \____/ \____/ ^ | .----------. |Connection| F | Manager |-|listening socket| E '----------' ^ | .---------. |TP client| D '---------'
Guillaume Desmottes on Stream Tubes more more
See Low-level_Activity_API#Stream_Tubes for more documentation.
Tubes Channel Type
In terms of the Telepathy API, we have created a channel type which has methods for enumerating existing tubes and requesting new ones. The channel might be attached to an existing channel (such as a MUC), in which case it will be automatically closed when the underlying channel is closed.
Proposed Standards
See Telepathy#Proposed Standards for proto XEPs.