Skip to content
Snippets Groups Projects

Web Server

  • Solutions:
    • Apache (with mod WSGI)
    • or nginx (with gunicorn I guess)
  • Serves content
  • handels HTTP requests etc.
  • serves forms for user request and inputs
  • has copy of Joblist to display those for the user according to requests etc.
  • talks to the Manager service
  • Users CANNOT talk directly with the manager
  • has list of all currently running user sessions (maybe used for authentication)

Application Server

  • Solution: Flask

Authentication and session management

  • Solutions:
    • Flask-Login (minimal)
    • Flask-Session (maybe a bit more functions)
  • handels both internal and external users
  • Relational Database
    • Solutions_
      • PostgreSQL
      • MariaDB
  • Object Relational Mapper
    • Solutions:
      • Flask-SQLAlchemy

Manager Service:

  • Part of the Application Server
  • Joblist
  • REST API
    • Solution
      • Flask internal
    • Passes requests to the joblist/celery
    • Functions:
      • create_job
      • delete_job
      • get_job (JSON Object or metadata or both?)
      • alter_job
  • manages also files on file server

Compute pool: Docker Cluster

  • Solutions:
    • Kubernetes
    • swarm
  • How to handle job and resource management for user Jobs and processes.
  • gets requests and tasks from the manager

File Server (Scans, pdfs etc.)

  • stores user input and
  • output files
  • Maybe WebDAV

Database

  • document based data base like mongoDB preferred
  • could be possible that a python framework for jobs and tasks exist mongo Db would not be necessary then