Difference between revisions of "Features/Ad hoc Networking"

From Sugar Labs
Jump to: navigation, search
(Created page with '<noinclude>{{TOCright}} SugarAdhocNetworks </noinclude> == Summary == This features removes the need for the Presence Service, meaning that activities and t...')
 
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<noinclude>{{TOCright}}
+
<noinclude>
[[Category:Feature|SugarAdhocNetworks]]
+
[[Category:Feature Accepted 0.90]]
 +
[[Category:FeatureLanded|Ad hoc Networking]]
 
</noinclude>
 
</noinclude>
  
 
== Summary ==
 
== Summary ==
This features removes the need for the Presence Service, meaning that activities and the Shell need to interact directly with non-Sugar-specific services such as Telepathy.
+
The Feature will add three default ad hoc networks, for channel 1, 6, and 11. They will be represented with designated icons in the Neighborhood view.
  
 
== Owner ==
 
== Owner ==
* Name: [[User:Tomeu| Tomeu Vizoso]]
+
* Name: [[User:Erikos| Simon Schampijer]]
* Email: tomeu.vizoso@collabora.co.uk
+
* Email: simon AT sugarlabs DOT org
  
 
== Current status ==
 
== Current status ==
 
* Targeted release: 0.90
 
* Targeted release: 0.90
* Last updated: 11/08/2010
+
* Last updated: 13/08/2010
 
* Percentage of completion: 100%
 
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== Detailed Description ==
The Presence Service caches all the information about presence and provides an API that is closer to what Sugar activities would need. But the presence information is of use only to the Shell, and the simpler API can be provided to activities with means of a library, so there's no real need for a session service that consumes memory, introduces one more layer of interprocess communication and makes activities only work inside the Sugar environment.
+
The Feature will add three default ad hoc networks, for channel 1, 6, and 11. They will be represented with designated icons in the Neighborhood view. This will mimic the mesh behavior on devices where mesh hardware is not available and make the "under a tree"-scenario possible in those cases. If Sugar sees no "known" network (the learner has not been connected to an currently available Access Point before) when it starts, it does autoconnect to an ad hoc network. First we try if there is an ad hoc network that is used by other learners in the area, if not we default to channel 1.
 
 
This work moves the functionality that the Shell used into the Shell itself and moves the simpler API implementation into the sugar.presence package, and it does so without changing the python activity API.
 
 
 
For Etoys, as it used the Presence Service API directly, a legacy PS will be provided until it is modified to use the telepathy APIs directly. Etoys developers have expressed interest on this work.
 
  
 
== Benefit to Sugar ==
 
== Benefit to Sugar ==
This is the first step in making the collaboration features of Sugar stable and maintainable. The immediate benefit will be that bugs in collaboration will get fixed (yay!) and the total memory footprint will be reduced.
+
The Feature will allow small groups of learners to collaborate without the need of an infrastructure, the so called "under a tree"-scenario more easily. In previous Sugar releases the learner could create an ad hoc network by using an option in the wireless device palette. This representation will be more accessible to the learners.
 
 
Benefits coming in future releases will be:
 
 
 
* simplify the code by using Telepathy-GLib via introspection instead of DBus calls,
 
* drop the custom extensions and move to standard specs that will allow activities work outside of Sugar,
 
* use other protocols such as ICQ, MSN, GSM, etc
 
* interact with services not specific to Sugar (ie. public Jabber servers),
 
* benefit from improvements to the Telepathy framework from other desktops such as Meego, GNOME and KDE.
 
  
 
== Scope ==
 
== Scope ==
* sugar: move the presence code and connection management from the PS into neighborhood.py
+
The sugar module is affected by this Feature and the sugar-artwork module by the addition of the six icons (3 channels, two states each). The patch tries to not be too invasive as it is meant to be back ported to 0.84.
* sugar-toolkit: move the code that sets up a shared activity from the PS into sugar.presence.activity
 
* sugar-presence-service: remove the connection management code, retrieve activity and contact information synchronously so it's inmediately available when the service is auto-activated.
 
  
 
==UI Design==
 
==UI Design==
The user experience should be unchanged.
+
The ad hoc networks are represented using [http://en.wikipedia.org/wiki/Maya_numerals Maya numerals]. They use the same representation as access points to show the status of the connection [[Features/Ad hoc_Networking/Testing#Connect_both_machines_to_the_same_channel | (picture Connected)]]. The fill color is used to indicate if other members are connected to the network. It does not indicate the number of people that are connected though. If the fill color of the ad hoc icon is set then there is at least one person listening [[Features/Ad hoc_Networking/Testing#Members | (picture members)]].
  
 
== How To Test ==
 
== How To Test ==
Line 45: Line 32:
  
 
== User Experience ==
 
== User Experience ==
No changes.
+
The user experience should be similar to the one with mesh networks. With having the ability to indicate if a network has members there should even be an improvement to know which network (channel) one should connect to.
  
 
== Dependencies ==
 
== Dependencies ==
Will add a dependency on [http://telepathy.freedesktop.org/wiki/Mission%20Control telepathy-mission-control] and will need updated versions of telepathy-gabble and telepathy-salut.
+
There was an [http://mail.gnome.org/archives/networkmanager-list/2010-April/msg00127.html issue in NetworkManager] reporting not the correct channel for ad hoc networks. The patch has been landed to master and the [http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?h=NETWORKMANAGER_0_7 NETWORKMANAGER_0_7 branch]. Make sure you have at least NetworkManager-0.7.2.997-1.
  
 
== Contingency Plan ==
 
== Contingency Plan ==
None necessary, revert to previous release behaviour. I will be able to invest 3-4 days per week until the 0.90 release making sure the feature is more stable than the code it replaces.
+
None necessary, revert to previous release behavior. I am available until the 0.90 release (and after) to fix any bugs that may be introduced by the Feature.
  
 
== Documentation ==
 
== Documentation ==
http://wiki.sugarlabs.org/go/Development_Team/Collaboration_Refactoring
+
* [http://lists.laptop.org/pipermail/devel/2009-December/026831.html Initial discussion at OLPC.]
  
http://wiki.sugarlabs.org/go/Development_Team/Presence_Service_Removal
+
* [http://lists.sugarlabs.org/archive/sugar-devel/2010-April/023584.html Design thread on sugar-devel.]
  
http://lists.sugarlabs.org/archive/sugar-devel/2010-August/025857.html
+
* {{OlpcBug|9845}} {{Bug|1610}}
  
 
== Release Notes ==
 
== Release Notes ==
TBW
+
Still coming.
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
 
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. -->
 
* See [[{{TALKPAGENAME}}|discussion tab for this feature]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page. -->

Latest revision as of 15:15, 5 November 2013


Summary

The Feature will add three default ad hoc networks, for channel 1, 6, and 11. They will be represented with designated icons in the Neighborhood view.

Owner

Current status

  • Targeted release: 0.90
  • Last updated: 13/08/2010
  • Percentage of completion: 100%

Detailed Description

The Feature will add three default ad hoc networks, for channel 1, 6, and 11. They will be represented with designated icons in the Neighborhood view. This will mimic the mesh behavior on devices where mesh hardware is not available and make the "under a tree"-scenario possible in those cases. If Sugar sees no "known" network (the learner has not been connected to an currently available Access Point before) when it starts, it does autoconnect to an ad hoc network. First we try if there is an ad hoc network that is used by other learners in the area, if not we default to channel 1.

Benefit to Sugar

The Feature will allow small groups of learners to collaborate without the need of an infrastructure, the so called "under a tree"-scenario more easily. In previous Sugar releases the learner could create an ad hoc network by using an option in the wireless device palette. This representation will be more accessible to the learners.

Scope

The sugar module is affected by this Feature and the sugar-artwork module by the addition of the six icons (3 channels, two states each). The patch tries to not be too invasive as it is meant to be back ported to 0.84.

UI Design

The ad hoc networks are represented using Maya numerals. They use the same representation as access points to show the status of the connection (picture Connected). The fill color is used to indicate if other members are connected to the network. It does not indicate the number of people that are connected though. If the fill color of the ad hoc icon is set then there is at least one person listening (picture members).

How To Test

Flash at least two XOs with the latest version of Sugar and the latest version of NetworkManager.

Autoconnect

  • connect to an Access Point on one machine and restart the machine

---> the machine does autoconnect with the AP

  • start the machine without having connected to an AP before

---> the machine should autoconnect to ad hoc network 1

  • start machine A and connect to the ad hoc network 6, start machine B without having been connected to an AP before

---> machine B should autoconnect to the ad hoc network 6

Connect both machines to the same channel

---> the buddies should be present on the neighborhood view of the other machine

The learner is connected to channel 11.

Share an activity

---> the shared activity is displayed correctly in the Neighborhod view and the sharing does work

Members

The ad hoc icons in the Neighborhood view do indicate whether the network has members or not, here channel 11 has members.

The ad hoc icons in the Neighborhood view do indicate whether the network has members or not, whether it is used by more than one person. It does not indicate the number of people that are connected though. If the fill color of the ad hoc icon is set then there is at least one person listening.

  • On machine A connect to an ad hoc network. Start machine B which has been connected to an access point before.

---> On machine B it should automatically connect to the access point and the icon representing the ad hoc network machine A is connected to should be colored, the fill color is set.

  • Shut down machine A.

---> after 10-15 minutes the icon representing the ad hoc network machine A is connected to should be uncolored, the fill color is NOT set. This is indicates that there are no members on the network.

Collaborate between XO-1.0 and XO-1.5 without infrastructure

The XO-1.5 and XO-1.0 will see ad hoc networks in his neighborhood view, so it the XO-1.0 can connect to an ad hoc network that has been created by a learner on the XO-1.5.

The XO-1.5 and XO-1.0 will see ad hoc networks in his Neighborhood view, so it the XO-1.0 can connect to an ad hoc network that has been created by a learner on the XO-1.5.

User Experience

The user experience should be similar to the one with mesh networks. With having the ability to indicate if a network has members there should even be an improvement to know which network (channel) one should connect to.

Dependencies

There was an issue in NetworkManager reporting not the correct channel for ad hoc networks. The patch has been landed to master and the NETWORKMANAGER_0_7 branch. Make sure you have at least NetworkManager-0.7.2.997-1.

Contingency Plan

None necessary, revert to previous release behavior. I am available until the 0.90 release (and after) to fix any bugs that may be introduced by the Feature.

Documentation

Release Notes

Still coming.

Comments and Discussion