Server Platform
Application Server
Content Generation
Class Library API
Manual Index

next | previous

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.

nextprevioustopbecome a membercontact © Maxscape