The stand-alone client is implemented in Qt to run natively on each platform.<p>
-Furthermore MagicSmoke in organized in the classic three-tier layout:<p>
-
-<table frame="1" border="1">
-<tr><td>Layer 3<td>Qt-Client or Browser</tr>
-<tr><td><i>(Interface)</i><td><i>HTTP Protocol</i></tr>
-<tr><td>Layer 2<td>PHP/Apache based Server</tr>
-<tr><td><i>(Interface)</i><td><i>DB-Protocol</i></tr>
-<tr><td>Layer 1<td>(MySQL) Database</tr>
+This architecture follows the model of the <a href="../pack/index.html">PACK</a> framework.<p>
+
+A more complete rendering of the architecture:<br>
+<table>
+<tr>
+ <td bgcolor="#c0c0c0">Theater Access
+ <td bgcolor="#a0a0a0">Admin Access
+ <td bgcolor="#d0d0d0">Customer Access
+</tr>
+<tr><td height="5px" colspan="3" bgcolor="#000000"></tr>
+<tr>
+ <td bgcolor="#c0c000">Qt Client
+ <td bgcolor="#ffff80" colspan="2">Browser
+ </tr>
+<tr><td bgcolor="#e0e0e0" colspan="3" align="center"><i>Network (HTTP)</i></tr>
+<tr>
+ <td bgcolor="#ff4040">machine.php<br>(Theater Interface)
+ <td bgcolor="#ff8080">admin.php<br>(Admin Interface)
+ <td bgcolor="#ffc0c0">index.php<br>(Customer Interface)
+</tr>
+<tr><td bgcolor="#80ff80" colspan="3">MagicSmoke Middleware (Server)</tr>
+<tr><td bgcolor="#c080ff" colspan="3">PACK Framework<br>PHP5/Apache</tr>
+<tr><td colspan="3" bgcolor="#0000c0"><font color="#ffffff">MySQL or PgSQL Database</font></tr>
</table><p>
-<h2>Server: Overall Architecture</h2>
+<h2>Backend: WOBs and WOLFs</h2>
+
+<h2>Server: Interfaces</h2>
+
+<b>index.php</b> is the customer interface. It decides according to the parameters given to it by the users browser how to render itself and what data to show.<p>
+
+<b>admin.php</b> is the admin interface. It is used to create and initialize the database. Except for the option to create new admin users, actual account management is done from the Qt client. The purpose of this interface is to get MagicSmoke started far enough so that the client can continue.<p>
+
+<b>machine.php</b> is the machine interface for the stand alone Qt client. It uses the web service protocol of <a href="pack/index.html">PACK</a> to communicate and will not display anything to a normal browser. For details of the transactions it can handle see the <a href="wob/index.html">Web Object</a> documentation.
+
+<h2>Server: Files and Directories</h2>
+
+<b>www</b> is the root directory of the server - it can be used directly during development.<p>
+
+<b>autoload.php</b> is contained in most sub-directories of www. It registers all classes declared in that directory with the autoloading mechanism of PACK.<p>
+
+<b>www/images</b> and <b>www/styles</b> are part of the example layout pages of the customer interface.<p>
+
+<b>www/template</b> contains the template files for the customer interface. See the <a href="template.html">Template Documentation</a> for details.<p>
+
+<b>www/inc/*</b> contains all classes used by the server components.<p>
+
+<b>www/inc/wbase</b> is a symbolic link to the PHP base classes of the PACK framework.<p>
+
+<b>www/inc/Twig</b> is a symbolic link to the Twig template engine.<p>
+
+<b>www/inc/classes</b> some base classes for the system - mostly related to the customer interface.<p>
+<b>www/inc/db</b> special adaptations of database code for MagicSmoke.<p>
+<b>www/inc/machine</b> files related to the machine interface of MagicSmoke. Most of them are indirectly called by transactions.<p>
-<h2>Server: Machine Interface</h2>
+<b>www/inc/rendering</b> classes related to rendering pages of the customer interface.<p>
-<h2>Server: Browser Interface</h2>
+<b>www/inc/wob</b> automatically generated code for the transactions that the MagicSmoke server can perform. The web object classes (WO*) defined here are used throughout the server to represent data in the MagicSmoke database, The transaction classes (Wtr*) defined here are used both by the machine interface and the customer interface to execute specific queries on the backend. See the <a href="wob/index.html">Web Object</a> docu for a language independent description of those classes and the <a href="php-source/index.html">PHP source</a> docu for implementation details.<p>
+<b>www/inc/wext</b> extensions to abstract web object classes. These extensions implement specific handling of some data items, calculations of some properties, and the implementation of most of the transactions.<p>
<h2>Qt based Client</h2>