From 18571ac8b953215f264ba5ebfb79ec369d3bd7e4 Mon Sep 17 00:00:00 2001 From: konrad Date: Thu, 22 Jul 2010 20:28:05 +0000 Subject: [PATCH] architecture description git-svn-id: https://silmor.de/svn/softmagic/smoke/trunk@570 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33 --- doc/prog_arch.html | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 87 insertions(+), 2 deletions(-) diff --git a/doc/prog_arch.html b/doc/prog_arch.html index e8f9f81..de4119a 100644 --- a/doc/prog_arch.html +++ b/doc/prog_arch.html @@ -33,7 +33,35 @@ A more complete rendering of the architecture:
MySQL or PgSQL Database

-

Backend: WOBs and WOLFs

+

Backend: Howling with the WOLFs

+ +The storage and communication infrastructure of MagicSmoke is based on the PACK framework. It is controlled by WOLFs - or Web Object Language Files. Those files are located in the wob folder:

+ +wob/magicsmoke.wolf links all of the control files together and configures what is generated from them.

+ +wob/db/* contains a complete description of the database layout.

+ +wob/classes/* contains classes describing the domain objects of MagicSmoke and how they are converted to and from database objects.

+ +wob/transact/* contain all transactions that can be performed on the server - input and output parameters of the transactions and what part of the server code is responsible for implementing it.

+ +.../basics.wolf helping classes and transactions that do basic bookkeeping for MagicSmoke.

+ +.../audit.wolf auditing functionality - auditing stores historical changes for certain data elements.

+ +.../cart.wolf configures functionality related to the shoppin cart in the web UI.

+ +.../customer,wolf contains customer data and related functions.

+ +.../db.wolf basic configuration of the database.

+ +.../event.wolf contains data and functions related to events, their scheduling, changing them, etc.

+ +.../order.wolf is about ordering things, contains tickets, ordered items, vouchers, ...

+ +.../template.wolf contains the infrastructure to store document templates used by the MagicSmoke to render tickets, vouchers, bills,...

+ +.../user.wolf management of users, roles and rights for the standalone client.

Server: Interfaces

@@ -67,11 +95,68 @@ A more complete rendering of the architecture:
www/inc/rendering classes related to rendering pages of the customer interface.

-www/inc/wob 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 Web Object docu for a language independent description of those classes and the PHP source docu for implementation details.

+www/inc/wob 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 Web Object docu for a language independent description of those classes and the PHP source docu for implementation details.

www/inc/wext 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.

Qt based Client

+

External Dependencies

+ +The client relies on several external libraries:

+ +pack/qtbase - the PACK base classes, used for the communication with the server.

+ +tzone - the time zone database, which is used for converting time stamps received from the server into the correct time zone of the theater.

+ +zip - code to read and write ZIP files - this is used for templates.

+ +

Sources

+ +The client itself is stored in the src directory, with the following sub-directories:

+ +crypto - implementations of some basic cryptographic functions used for authentication.

+ +dialogs - various dialogs used by the program.

+ +iface - an extension to the communication interface of PACK to meet MagicSmoke's needs.

+ +images - image files used by MagicSmoke.

+ +misc - small helper classes, minor widgets

+ +mwin - tabs of the main window.

+ +templates - rendering classes for ODF and ticket printing.

+ +tests - unit tests.

+ +wext - extensions of abstract generated classes.

+ +widgets - base utility widgets.

+ +wob - generated Web Object code. Do not change anything in this directory.

+ +

Build Order

+ +Either build the entire system using the Makefile in the main directory or follow these steps: + +
    +
  1. build the web object compiler in pack/woc +
  2. go to the wob directory and call make (or call ../pack/woc/woc magicsmoke.wolf) +
  3. build the libraries in pack/qtbase, tzone, and zip +
  4. go to src and build MagicSmoke +
+ +Each of the libraries and MagicSmoke itself are built by using qmake to create the necessary makefiles and make to compile. + +

Source Documentation

+ + \ No newline at end of file -- 1.7.2.5