Design, Architecture and Building Blocks
Content Management and Application Server
The Maxscape server integrates various modules, components and programs to implement the functionality and services of a web and application server. Components are interacting via interfaces based on open Internet standards. A wide range of products are available for particular requirements as standard solutions. Additional software can be added on the demands of your project:
Integrated Components
- Apache HTTPD daemon with FastCGI interface and mod_perl
- Perl Fast CGI interface from Open Market
- Maxscape HTTPD daemon, written in Perl
- Open SSL for encrypted pages
- A preconfigured MySql database
- The Perl programming languages
- Many modules from the CPAN (e.g. DBD/DBI, libwww, XML-Parser, ...)
- Maxscape directory structure and data model
- Maxscape content management system
- Maxscape runtime system and API
Computing Platform
The computing platform provides the basic functionality for a web server, such as the hardware, the operating system, the network connection, compiler, editor, a.s.o. A computing platform for Maxscape is composed of standard hardware and software. Maxscape runs on UNIX, as UNIX is the best operating system for web servers, available.
Basic Web Server Platform
The generic server platform implements the functions and services required to run a website. Main components are the HTTP server, the scripting and programming language, the content and application database, generic modules and function libraries.
Development Environment
The build of the basic platform is automated by the use of the Red Hat
Package Manager. So, the integration of new tool versions and the adaption
to another operating system is relatively easy.
Maxscape is developed under the control of the configuration management
system CVS. Some little, but very helpful scripts are added, e.g.
to ease the use of CVS, to keep track of the change history or to find
strings, variables, functions or words in the program modules and the database.
The build of the Maxscape distribution is done by a central makefile.
Maxscape Distribution
Maxscape is published via ready to install distributions.
Server Application Programming Interface
The server API is given by an extensible set of modules and classes providing features, such as:
- Content Management
- Runtime System
- Dynamic Document Generation
- Template Technique
- Personalized Content
- Application specific Database Tables
- Multi-language Support
- Navigation and Menu System
- Search Facilities
- Server Administration
- Gateways to external Data Sources
The server API implements the functionality to dynamicaly generate content stored in the database, it is a layered (middleware) between the generic server platform and the project specific applications. It gives access to context, pages, templates, elements and other server data in a convenient way. Thus, the power of the SQL programming language is added to the content generation process.
Hierarchical Database Content Structure
An object oriented data model is applied, which allows to store content and
server side scripts in a common relational database. Database content is accessed
via the server API, thus hiding and encapsulating details to the application
program. The API classes are implementing the database queries and other
required functions. Storing content on the file system is possible, but only
recommended for binary files, such as images.
The data model implements a hierarchical view on the sites structure. Like in a
usual file approach, pages are structured in a hierarchical page tree, whereas
pages compares to files and categories to directories. Pages are generated
from template and page elements. Elements may contain plain text, HTML, XML,
CSS, Javascript and (embedded) server side Perl scripts and can freely be mixed.
Page elements can be invoked within templates elements and vice versa, as it
is convenient for the application.
Dynamic Document Generation
The runtime system supports the generation of dynamic, personalized content stored in a common database. This is implemented using a special data model and a template technique in conjunction with the decomposition of documents into template and page elements. The idea is to split the page content into smaller parts, which then can be reused. This allows to:
- separate content from layout
- separate dynamic from static elements
- define generic elements and templates
- reuse already defined elements
- inherit properties and functions
- define your own language
- reduce complexity and redundancy
- map elements to objects and callbacks
- individualize pages
- support multi languages
- ...
The concept of page decomposition is the definition of layout
templates, containing template and page elements. The templates reflects the
common look&feel, the general layout and the corporate design. The elements
represents the dynamic content, that is evaluated at runtime, given by the
state of variables and the objects implementing the element.
Within templates, elements are represented by variables, function or method
calls, encapsulating the implementation. The state of each element is
persistently stored in the content database.
Sophisticated Template Technique
Templates are used to implement layouts or features, which are common to several pages or page parts, thus reducing redundancy and administration effort. Global templates may be defined, to generalize common properties of a template type. Like pages, templates are composed of elements, which can be inserted into each other. Within template elements API functions are then called, in order to embedded page elements or vice versa.
Element Callbacks
For each element callbacks may be defined, that can be executed on several stages of the page generation process. hey can be used to attach a layout or trigger an action for example.
Application Plugin
Application code not stored in the database is plugged in via the plugin mechanism.
Runtime System and Process Concept
Server and application software of the runtime system are executed within permanent processes. Database connections are established at the initialization phase of each process and are reused, afterwards. Thus, there is no need to disconnect and reconnect to the database, the most time consuming process, when working with databases.
Site/Content Management and Administration Surface
Part of Maxscape is a content management and administration surface in order to administer the server and to provide access to the content database. The surface is based on HTML and HTTP, so you can administer your server from anywhere, using a common web browser. It is especially helpful for content provider, page and template designer and programmers. In fact, the administration surface is an implementation of the Maxscape server API. A lot of the tasks can be done via this surface, but others are better done by other tools.