Platform’s architecture design

The system’s architecture aligns functionality with technological infrastructure, orients the development and forms a solid basis for the evaluation of the final solution. The architecture model is structured based on the Three-Tier Architecture. Different layers, providing the desired degree of independence both on a physical and logical scale, represent its schema. The multitier architecture enables future platform’s extensions as it is characterized by a high degree of flexibility. It further allows the adoption of solutions of distributed and/or parallel logic, mainly in terms of data management and transfer.

The layers are:

  1. the Presentation layer corresponding to the front-end
  2. the Content Rendering module, which functionally lies between the Presentation and Application layer
  3. the Application layer with the platform’s business logic and
  4. the Persistence layer that comprises the back-end system.

At the Presentation layer, the 3DHOP framework and the Three.js library implement the 4D visualization system, the interaction with the 3D scene and the related to the 3D space search and retrieve services. Each of these services and tools are developed by extending or modifying the open-source codebase of the aforementioned software. The overall design follows the principles and standards of the web development (HTML, CSS and JavaScript). The JavaScript library jQuery and the library and toolkit Bootstrap are also integrated for an interactive and responsive result. At the Application layer, a RESTful service is developed based on the Apache web server and the PHP scripting language. Additional frameworks are used for access control, authentication and content management based on users’ roles. Finally, the MySQL relational database management system (RDBMS) undertakes the storage, organization and indexing of the platform’s datasets while Apache runs in the Linux operating system. The METEORA platform’s architecture diagram is presented in Figure 1. The Persistence layer with MySQL database is illustrated with gray color, the Application layer and the software components of the RESTful service with yellow color, the Content Rendering module with pink color and finally, the Graphical User Interface (GUI) with purple color. The last two graphic units form the Application layer. The following processes/interactions are represented:

  • Sending HTTP requests from the Apache server to the Presentation layer, matching them to the CRUD functions, determining the actions need to be taken for the resources by PHP calls and modelling them by the Application layer and, finally, the actions analysis and their execution or storage in SQL structures (in case of users inputs) from the Persistence layer.
  • The response of the MySQL in a JSON format, its analysis by the RESTful service (Application layer) and its transfer to the front-end infrastructure (Presentation Layer).
  • The log in of an authorized user with his/her credentials (username and password), their correspondence with the CRUD function POST/login, the data authentication, the authentication token retrieval from MySQL and its return to the user for access approval.

All of these procedures are enabled at runtime by the Linux operating system. The platform’s technologies are based on the LAMP web stack, named as an acronym of the names of Linux, Apache, MySQL and PHP.  The order of execution and the role they undertake indicate how they interact and consolidate in the overall system. LAMP is the oldest and most well-known stack model and it excels in safety, stability and flexibility regarding of all the aforementioned processes.