Changes

Jump to navigation Jump to search
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 [[#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 96: Line 87:  
=== Implementations ===
 
=== Implementations ===
   −
* [[Platform_Team/Sugar_Network/Mejorar_Sistema|Mejorar Sistema]].
+
* [[Platform_Team/Sugar_Network/Web_UI|Web UI]].
 +
 
 +
== 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:
 +
 
 +
* With the Master, if connectivity presents;
 +
* With the Master or any other Node servers via the [[Wikipedia:Sneakernet|Sneakernet]].
 +
 
 +
=== Sneakernet ===
 +
 
 +
Packets' structure:
 +
 
 +
* '''PUSH''' packet:
 +
:* {{Code|type}}: {{Code|push}}
 +
:* {{Code|sender}}: sender's GUID to push from
 +
:* {{Code|[receiver]}}: receiver's GUID to push to, optional for packets from master
 +
:* {{Code|sequence}}: Sequence associated with packet's payload
 +
 
 +
* '''ACK''' packet:
 +
:* {{Code|type}}: {{Code|ack}}
 +
:* {{Code|sender}}: master's GUID
 +
:* {{Code|receiver}}: receiver's GUID ack is intended for
 +
:* {{Code|push_sequence}}: original PUSH packet's sequence
 +
:* {{Code|pull_sequence}}: Sequence after merging original PUSH packet
 +
 
 +
* '''PULL''' packet:
 +
:* {{Code|type}}: {{Code|pull}}
 +
:* {{Code|sender}}: sender's GUID to pull to
 +
:* {{Code|receiver}}: receiver's GUID to pull from
 +
:* {{Code|sequence}}: Sequence to pull for
    
== Getting involved ==
 
== Getting involved ==

Navigation menu