Platform Team/Sugar Network/Architecture: Difference between revisions

No edit summary
mNo edit summary
 
(7 intermediate revisions by the same user not shown)
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 [[#Node_servers|Node]] server, the system will take care about [[#Synchronisation|synchronizing]] its resources with other Node servers and, finally, with the central one, the [[#Master_server|Master]] server.
* 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 25: Line 25:


* [[#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);
* [[#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 [[#Node_servers|Node]] 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 [[#Master_server|Master]] server or to a [[#Node_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]].
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.


Node servers provide full featured [[Platform_Team/Sugar_Network/API|API]] as the Master does. Nodes 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 [[#Node_servers|Node server]], interact with people from another Node servers or with people from the Internet, Node servers need to be synchronized.
 
Server might be synchronised:
 
* With the Master, if connectivity presents;
* With the Master or any other Node 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 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 ==


* Sugar Network [[Platform_Team/Sugar_Network/Browser|Browser]].
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:
 
* With the Master, if connectivity presents;
* With the Master or any other Node servers via the [[Wikipedia:Sneakernet|Sneakernet]].


== Getting involved ==
== Getting involved ==