Difference between revisions of "Server/Architecture"

From cosmopool meta
Jump to navigation Jump to search
m
m
Line 8: Line 8:
  
 
subgraph cluster_node1 {
 
subgraph cluster_node1 {
label="Node 1";
+
    label="Node 1";
 
+
    subgraph cluster_webserver {
subgraph cluster_webserver {
+
        label="webserver";
    label="webserver";
+
        style=filled;
    style=filled;
+
        fillcolor=olivedrab1;
    fillcolor=olivedrab1;
+
       
 
+
        HttpServer [style="rounded", shape=box];
    HttpServer [style="rounded", shape=box];
+
        Authentication [shape=box];
    Authentication [shape=box];
+
        Handler [shape=box];
    Handler [shape=box];
+
        Session [shape=box];
     Session [shape=box];
+
     }
 +
    subgraph cluster_storage {
 +
        label="storage";
 +
        style=filled;
 +
        fillcolor=paleturquoise1;
 +
        Request [shape=box, style="rounded"];
 +
        Klocation [shape=box];
 +
        Cache [shape=box];
 +
        KcategoryManagers [shape=box, label="KclassManager\nKattributeManager\nKinstanceManager\nKrelationmanager\nKnotationManager\nKaccessManager"];
 +
        Request -> KcategoryManagers [dir="both"];
 +
        Cache -> KcategoryManagers [dir="both"];
 +
        Klocation -> KcategoryManagers [dir="both"];
 +
        {rank=same; Klocation; KcategoryManagers; Cache; }
 +
        LocalStorage [shape=box, label="KclassLocal\nKinstanceLocal\nKrelationLocal"];
 +
        RemoteStorage [shape=box];
 +
        HttpClient [shape=box];
 +
        { rank=same; RemoteStorage; HttpClient; }
 +
    }
 +
    HttpServer -> Handler [dir="both"];
 +
    Authentication -> Request [dir="both"];
 +
    Handler -> Request [dir="both"];
 +
    Handler -> Authentication [dir="both"];
 +
    Handler -> Session [dir="both"];
 +
    Session -> Request [dir="both"];
 +
    KcategoryManagers -> LocalStorage [dir="both"];
 +
    KcategoryManagers -> RemoteStorage [dir="both"];
 +
    RemoteStorage -> HttpClient [dir="both"];
 
}
 
}
 +
Client -> HttpServer [dir="both"];
  
HttpServer -> Handler [dir="both"];
+
subgraph cluster_node2 {
Authentication -> Request [dir="both"];
+
     label="Node 2";
Handler -> Request [dir="both"];
+
     StorageNode2 [shape=box, style=filled; label="webserver 2", fillcolor="olivedrab1"];
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"];
 
    Klocation [shape=box];
 
    Cache [shape=box];
 
    KcategoryManagers [shape=box, label="KclassManager\nKattributeManager\nKinstanceManager\nKrelationmanager\nKnotationManager\nKaccessManager"];
 
    Request -> KcategoryManagers [dir="both"];
 
    Cache -> KcategoryManagers [dir="both"];
 
    Klocation -> KcategoryManagers [dir="both"];
 
    {rank=same; Klocation; KcategoryManagers; Cache; }
 
    LocalStorage [shape=box, label="KclassLocal\nKinstanceLocal\nKrelationLocal"];
 
    RemoteStorage [shape=box];
 
    HttpClient [shape=box];
 
    { rank=same; RemoteStorage; HttpClient; }
 
 
}
 
}
 +
{ rank=same; HttpClient; StorageNode2; }
 +
HttpClient -> StorageNode2 [label="https", dir="both"];
  
KcategoryManagers -> LocalStorage [dir="both"];
+
subgraph cluster_node3 {
KcategoryManagers -> RemoteStorage [dir="both"];
+
    label="Node 3";
 
+
    StorageNode3 [shape=box, style=filled; label="webserver 3", fillcolor="olivedrab1"];
RemoteStorage -> HttpClient [dir="both"];
 
 
 
 
}
 
}
 
+
{ rank=same; HttpClient; StorageNode3; }
Client -> HttpServer [dir="both"];
+
HttpClient -> StorageNode3 [label="https", 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>
 
</graphviz>
 
== Threading/Forking ==
 
 
 
 
[[Category:Server]]
 

Revision as of 20: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];
   }
   subgraph cluster_storage {
       label="storage";
       style=filled;
       fillcolor=paleturquoise1;
       Request [shape=box, style="rounded"];
       Klocation [shape=box];
       Cache [shape=box];
       KcategoryManagers [shape=box, label="KclassManager\nKattributeManager\nKinstanceManager\nKrelationmanager\nKnotationManager\nKaccessManager"];
       Request -> KcategoryManagers [dir="both"];
       Cache -> KcategoryManagers [dir="both"];
       Klocation -> KcategoryManagers [dir="both"];
       {rank=same; Klocation; KcategoryManagers; Cache; }
       LocalStorage [shape=box, label="KclassLocal\nKinstanceLocal\nKrelationLocal"];
       RemoteStorage [shape=box];
       HttpClient [shape=box];
       { rank=same; RemoteStorage; HttpClient; }
   }
   HttpServer -> Handler [dir="both"];
   Authentication -> Request [dir="both"];
   Handler -> Request [dir="both"];
   Handler -> Authentication [dir="both"];
   Handler -> Session [dir="both"];
   Session -> Request [dir="both"];
   KcategoryManagers -> LocalStorage [dir="both"];
   KcategoryManagers -> RemoteStorage [dir="both"];
   RemoteStorage -> HttpClient [dir="both"];

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

subgraph cluster_node2 {

   label="Node 2";
   StorageNode2 [shape=box, style=filled; label="webserver 2", fillcolor="olivedrab1"];

} { rank=same; HttpClient; StorageNode2; } HttpClient -> StorageNode2 [label="https", dir="both"];

subgraph cluster_node3 {

   label="Node 3";
   StorageNode3 [shape=box, style=filled; label="webserver 3", fillcolor="olivedrab1"];

} { rank=same; HttpClient; StorageNode3; } HttpClient -> StorageNode3 [label="https", dir="both"];

} </graphviz>