Line 8: |
Line 8: |
| | | |
| * Clients create, modify and browse different types of resources ([[Sugar_Network/Concept#Resources|resources]] from conceptual point of view, [[Platform_Team/Sugar_Network/API#Resources|resources]] from the API point of view) on a server; | | * Clients create, modify and browse different types of resources ([[Sugar_Network/Concept#Resources|resources]] from conceptual point of view, [[Platform_Team/Sugar_Network/API#Resources|resources]] from the API point of view) on a server; |
− | * If this server is a [[#Distributed_servers|distributed]] one, the system will take care about [[#Synchronisation|synchronizing]] its resources with other distributed servers and, finally, with the central one, the [[#Mothership|Mothership]]. | + | * If this server is a [[#Node_servers|Node]] server, the system will take care about [[#Synchronization|synchronizing]] its resources with other Node servers and, finally, with the central one, the [[#Master_server|Master]] server. |
| | | |
| === Components === | | === Components === |
Line 24: |
Line 24: |
| Server side is represented by: | | Server side is represented by: |
| | | |
− | * [[#Mothersip|Mothership]] server that keeps the whole Sugar Network information, clients might connect directly to this server (on-line case) or indirectly via distributed servers (off-line case); | + | * [[#Master_server|Master]] server that keeps the whole Sugar Network information, clients might connect directly to this server (on-line case) or indirectly via Node servers (off-line case); |
− | * Optional [[#Distributed_servers|distributed servers]], contain a [[#Synchronisation|synchronised]] copy of central server (might be not for the entire Network to save storage space); | + | * Optional [[#Node_servers|Node]] servers, contain a [[#Synchronization|synchronised]] copy of central server (might be not for the entire Network to save storage space); |
| | | |
− | In all cases the server [[Platform_Team/Sugar_Network/API|API]] is the same for clients. But depending on connectivity, clients might be connected to the [[#Mothership|Mothership]] or to an [[#Distributed_servers|intermediate server]]. | + | In all cases the server [[Platform_Team/Sugar_Network/API|API]] is the same for clients. But depending on connectivity, clients might be connected to the [[#Master_server|Master]] server or to a [[#Node_servers|intermediate server]]. |
| | | |
− | === Mothership === | + | === Master server === |
| | | |
− | The place where data is being collected from all distributed server. If clients have connectivity, they can connect to the Mothership to contribute to the Network directly. | + | The place where data is being collected from all Node servers. If clients have connectivity, they can connect to the Master to contribute to the Network directly. |
| | | |
− | === Distributed servers === | + | === Node servers === |
| | | |
| Servers that will be useful if: | | Servers that will be useful if: |
Line 41: |
Line 41: |
| * connectivity is not cheap and its usage needs to be minimized. | | * connectivity is not cheap and its usage needs to be minimized. |
| | | |
− | Distributed services provide full featured [[Platform_Team/Sugar_Network/API|API]] as the Mothership does. Distributed servers need to be [[#Synchronisation|synchronized]].
| + | Node servers provide full featured [[Platform_Team/Sugar_Network/API|API]] as the Master does. Nodes need to be [[#Synchronization|synchronized]]. |
− | | |
− | === Synchronisation ===
| |
− | | |
− | To let Network participant, connected to particular [[#Distributed_servers|distributed server]], interact with people from another distributed servers or with people from the Internet, distributed servers need to be synchronized.
| |
− | | |
− | Server might be synchronised:
| |
− | | |
− | * With the Mothership, if connectivity presents;
| |
− | * With the Mothership or any other distributed servers via the [[Wikipedia:Sneakernet|Sneakernet]].
| |
| | | |
| == Conceptual level == | | == Conceptual level == |
Line 61: |
Line 52: |
| | | |
| The model refers to the following additional information: | | The model refers to the following additional information: |
− |
| |
− | ==== Sugar Network layers ====
| |
− |
| |
− | This is an attempt to generalize the idea of [http://groups.google.com/group/sugar-network/browse_thread/thread/4cad05ec801f364c user/resource levels] with idea that objects should not be removed from the Network immediately (only hidden, and permanently removed by Network administrators). So, every resource is associated with a layer, i.e., it might be visible for observers only if they requested this layer and have permissions to see it.
| |
− |
| |
− | For now, implemented only the following list of layers, but it might be reused for [http://groups.google.com/group/sugar-network/msg/f5a1b4d78494a5d3 teachers related workflows] later:
| |
− |
| |
− | * {{Code|general}}, the default layer for observers and Network objects; all users can see objects on this layer;
| |
− | * {{Code|deleted}}, Network objects' layer will be changed to {{Code|deleted}} after removing objects by users.
| |
− |
| |
− | ==== Events types ====
| |
− |
| |
− | * {{Code|create}}<br>object was created;
| |
− | * {{Code|update}}<br>object's properties were modified;
| |
− | * {{Code|delete}}<br>object was deleted (hidden);
| |
− | * {{Code|vote}}<br>object was voted/unvoted.
| |
− |
| |
− | ==== Licences ====
| |
− |
| |
− | Short license names. The licenses should conform with the [[Activity Library]] licensing [[Activity_Library/Editors/Policy/Licensing|policy]].
| |
| | | |
| === Simplified editing workflow === | | === Simplified editing workflow === |
Line 103: |
Line 74: |
| Client application is local, for reasons: | | Client application is local, for reasons: |
| | | |
− | * Originally, Sugar Network was being developed for deployments where teachers' XOs will be distributed servers, thus, it will be useful to delegate some of computing to students' XOs; | + | * Originally, Sugar Network was being developed for deployments where teachers' XOs will be Node servers, thus, it will be useful to delegate some of computing to students' XOs; |
| * Stimulate doing behaviour when it should be possible to create new client application or tweak existing on a client side; | | * Stimulate doing behaviour when it should be possible to create new client application or tweak existing on a client side; |
| * It is all time possible to create Web application on a server side. | | * It is all time possible to create Web application on a server side. |
Line 114: |
Line 85: |
| * Data accessible from removable devices like USB sticks or SD cards. | | * Data accessible from removable devices like USB sticks or SD cards. |
| | | |
− | === Implementations === | + | == Synchronization == |
| + | |
| + | To let Network participant, connected to particular [[#Node_servers|Node server]], interact with people from another Node servers or with people from the Internet (Master server), Node servers need to be synchronized. |
| + | |
| + | Server might be synchronized: |
| | | |
− | * Sugar Network [[Platform_Team/Sugar_Network/Browser|Browser]]. | + | * With the Master, if connectivity presents; |
− | * Client to use for [http://pe.sugarlabs.org/go/Proyecto_Piloto_Hexoquinasa Puno pilot program].
| + | * With the Master or any other Node servers via the [[Wikipedia:Sneakernet|Sneakernet]]. |
| | | |
| == Getting involved == | | == Getting involved == |