Server/Architecture

From cosmopool meta
Jump to navigation Jump to search

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>