Difference between revisions of "Server/Architecture"

From cosmopool meta
Jump to navigation Jump to search
m (Created page with "== Information flow == <graphviz> digraph G { size="14,20"; node [URL="http://meta.cosmopool.net/wiki/\N"] Client; subgraph cluster_webserver { label="webserver"; style...")
 
m
Line 6: Line 6:
  
 
Client;
 
Client;
 +
 +
subgraph cluster_node1 {
 +
label="Node 1";
  
 
subgraph cluster_webserver {
 
subgraph cluster_webserver {
Line 14: Line 17:
 
     HttpServer [style="rounded", shape=box];
 
     HttpServer [style="rounded", shape=box];
 
     Authentication [shape=box];
 
     Authentication [shape=box];
     subgraph cluster_0 {
+
     Handler [shape=box];
        clusterrank=local;
+
    Session [shape=box];
        rankdir="LR";
 
        label="";
 
        style="";
 
        color=transparent;
 
        Handler [shape=box];
 
        Session [shape=box];
 
        Handler -> Session [dir="both"];
 
    }
 
 
}
 
}
  
Client -> HttpServer [dir="both"];
 
 
HttpServer -> Handler [dir="both"];
 
HttpServer -> Handler [dir="both"];
 
Authentication -> Request [dir="both"];
 
Authentication -> Request [dir="both"];
 
Handler -> Request [dir="both"];
 
Handler -> Request [dir="both"];
 
Handler -> Authentication [dir="both"];
 
Handler -> Authentication [dir="both"];
 +
Handler -> Session [dir="both"];
 +
Session -> Request [dir="both"];
  
 
subgraph cluster_storage {
 
subgraph cluster_storage {
Line 39: Line 35:
 
     LocalStorage [shape=box];
 
     LocalStorage [shape=box];
 
     RemoteStorage [shape=box];
 
     RemoteStorage [shape=box];
 +
    HttpClient [shape=box];
 +
    { rank=same; RemoteStorage; HttpClient; }
 
}
 
}
  
 
Request -> LocalStorage [dir="both"];
 
Request -> LocalStorage [dir="both"];
 +
Request -> RemoteStorage [dir="both"];
 +
RemoteStorage -> HttpClient [dir="both"];
  
Request -> RemoteStorage [dir="both"];
+
}
 +
 
 +
Client -> HttpServer [dir="both"];
 +
 
 +
 
 +
subgraph cluster_node2 { label="Node 2"; StorageNode2; }
 +
{ rank=same; HttpClient; StorageNode2 [shape=box, style=filled; label="webserver", fillcolor="olivedrab1"; ]; }
 +
HttpClient -> StorageNode2 [label="http", dir="both"];
  
Module
+
subgraph cluster_node3 { label="Node 3"; StorageNode3; }
 +
{ rank=same; HttpClient; StorageNode3 [shape=box, style=filled; label="webserver", fillcolor="olivedrab1"; ]; }
 +
HttpClient -> StorageNode3 [label="http", dir="both"];
  
 
}
 
}

Revision as of 19:39, 1 October 2011

Information flow

<graphviz> digraph G { size="14,20"; node [URL="http://meta.cosmopool.net/wiki/\N"]

Client;

subgraph cluster_node1 { label="Node 1";

subgraph cluster_webserver {

   label="webserver";
   style=filled;
   fillcolor=olivedrab1;
   HttpServer [style="rounded", shape=box];
   Authentication [shape=box];
   Handler [shape=box];
   Session [shape=box];

}

HttpServer -> Handler [dir="both"]; Authentication -> Request [dir="both"]; Handler -> Request [dir="both"]; Handler -> Authentication [dir="both"]; Handler -> Session [dir="both"]; Session -> Request [dir="both"];

subgraph cluster_storage {

   label="storage";
   style=filled;
   fillcolor=paleturquoise1;
   Request [shape=box, style="rounded"];
   LocalStorage [shape=box];
   RemoteStorage [shape=box];
   HttpClient [shape=box];
   { rank=same; RemoteStorage; HttpClient; }

}

Request -> LocalStorage [dir="both"]; Request -> RemoteStorage [dir="both"]; RemoteStorage -> HttpClient [dir="both"];

}

Client -> HttpServer [dir="both"];


subgraph cluster_node2 { label="Node 2"; StorageNode2; } { rank=same; HttpClient; StorageNode2 [shape=box, style=filled; label="webserver", fillcolor="olivedrab1"; ]; } HttpClient -> StorageNode2 [label="http", dir="both"];

subgraph cluster_node3 { label="Node 3"; StorageNode3; } { rank=same; HttpClient; StorageNode3 [shape=box, style=filled; label="webserver", fillcolor="olivedrab1"; ]; } HttpClient -> StorageNode3 [label="http", dir="both"];

} </graphviz>

Threading/Forking