System Architecture

Architecture Outline

  • Specification
    System will be implemented as a client - server based web application. Clients will be standard web browsers and server will be set of dynamic scripts communicating with a database. Communication between clients and server will run on standard http protocol, displayed pages will be coded in html language.
  • Scripting
    PHP language will be used for scripts. Detailed information about its version and configuration can be found on platform description page.
  • Database
    MySQL will be used as a database application. Communication will be done through common routines of PHP and SQL language. Detailed information about database can be found on database description page.
  • Server Concept
    Server will be implemented as a set of independent modules. The modules should not communicate directly with each other. Each module will carry out specific operation communicating with the user and the database, leaving the database in consistent state. After finishing the task user will be returned back to the main page where he will be able to choose next task and use other module.
  • Authorization
    Authorization of user will be done through user login. Session will be created and maintained until user logs of. Information about the session and thus the user will be only information which will be passed between modules. This task will be done by unified page header (for details, see page description), which will handle the session, user identification as well as some security functions.

Module Hierarchy

 

 

 Server Directory Structure

Assume that the directory “/” is the www entry point of the server. Then:

/index.htm will be the entry page (containing links)
/images/
   will hold images and data files used by supplementary pages
/data/
     will hold extracted thumbnails of object images
/doc/
      will be the place for complete project documentation
/help/
     will contain the user’s manual
/script/
   will hold all the .php files
/script/images/
   will hold images used by scripts
/script/include/
 will contain used template files and files with common headers
/tmp/
      directory for temporary files

Directory listing should be forbidden from security reasons by default in all directories.

 

Use Cases

Please go to use cases page.

 

Deployment Scheme

Notation: UML

Both web and database servers may or may not run on single machine.
Reference implementation has both servers on one machine.