Platform Team/Sugar Network/Architecture: Difference between revisions

No edit summary
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 [[#Synchronisation|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 [[#Synchronisation|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 [[#Synchronisation|synchronized]].


=== Synchronisation ===
=== 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.
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:
Server might be synchronised:


* With the Mothership, if connectivity presents;
* With the Master, if connectivity presents;
* With the Mothership or any other distributed servers via the [[Wikipedia:Sneakernet|Sneakernet]].
* With the Master or any other Node servers via the [[Wikipedia:Sneakernet|Sneakernet]].


== Conceptual level ==
== Conceptual level ==
Line 103: Line 103:
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.