frePPLeOpen source Production Planning
  • Home
  • Documentation
  • C++ API

Architecture

architecture

FrePPLe has a 3-tier architecture, typical for most web applications.

  • Browser based front-end:
    The user interface is completely web browser based, using state of the art web techniologies such as HTML5 and ajax.
    FrePPLe supports most modern browsers: Google Chrome, Firefox, Safari, Internet Explorer(>8!) and Opera.

  • Web server:
    The web server retrieves data from the database and serves the content as HTML pages to the user.
    FrePPLe supports the Apache web server, and also has a built-in Python-based web server.

    Long running tasks (such as the planning algorithm, database backup, scenario copying, …) and the REST-api extension module don’t run in the web server process. Instead, the web server will spawn a separate worker process to execute these.

  • Database backend:
    The planning data are stored in a relational database.
    FrePPLe supports (in order of preference) PostgreSQL, SQLite, MySQL and Oracle as databases.
    The database schema is simple and stable, which makes is easy to integrate frePPLe data with external data source.

Given the choice of database and web server, different options are available to deploy frePPLe:

  • Windows all-in-one installation:
    The windows installer comes bundled with the SQLite database and a Python-based web server. No extra components need to be installed on your machine – just click through the installer, and you’re up and running in 2 minutes.
    This setup will work fine for small models in a single-user environment. It is also the recommended option to get started and try out frePPLe.

  • Enterprise deployment:
    In a production environment an Apache web server and a separate database(PostgreSQL, MySQL or Oracle) are required.
    This setup scales very well to large models and a large number of concurrent users. It is the recommended option for day-to-day robust production use of frePPLe.

    • Getting started
      • 1 – Introduction
      • 2 – Installation
      • 3 – Entering data
      • 4 – Modelling concepts
      • 5 – Your first model
      • 6 – Your first plan
    • Modeling guide
      • Simplified domain model
      • Detailed domain model
      • Environment variables
      • Python interpreter
      • Global parameters
      • Buffer
      • Calendar
      • Customer
      • Demand
      • Flow
      • Item
      • Load
      • Location
      • Operation
      • Suboperation
      • Operationplan
      • Problem
      • Resource
      • SetupMatrix
      • Skill
      • Resource skill
      • Solver
    • User guide
      • Supported browsers
      • Getting around
        • Logging in
        • Logging out
        • Changing password
        • Navigation
          • Menu bar
          • Jump search
          • Context menus
        • Filtering data
        • Sorting data
        • Selecting time buckets
        • Exporting data
        • Importing data
        • Customizing a screen
        • User preferences
        • User permissions and roles
        • Comments
        • History – Audit trail
      • Data maintenance screens
      • Supply Path / Where Used
      • Plan analysis screens
        • Problem report
        • Constraint report
        • Inventory report
        • Inventory detail report
        • Resource report
        • Resource Gantt report
        • Resource detail report
        • Operation report
        • Operation detail report
        • Demand report
        • Demand detail report
        • Demand Gantt report
        • Forecast report
        • Performance indicator report
      • Execution screen
      • Batch commands
        • frepplectl
        • frepple
        • freppleservice.exe (Windows only)
    • Installation guide
      • Windows installer
      • Compiling on Windows
      • Linux binary packages
      • Compiling on Linux
      • Compiling from the source code repository
      • Running the VMWare virtual machine
      • Other platforms
      • Configuring multiple models in the user interface
      • Configuring as a Python extension module
    • Extension modules
      • Forecast module
      • Order quoting module
      • REST web service module
      • OpenERP connector module
      • Linear programming solver module
    • Technical guide
      • Architecture
      • Source code repository
      • User interface
        • Creating an extension app
        • Translating the user interface
        • Adding or customizing a report
        • Style guide
      • Solver engine
        • Code structure
        • Class diagram
        • Planning algorithm
          • Top level loop
          • Demand solver
          • Buffer solver
          • Flow solver
          • Load solver
          • Operation solver
          • Resource solver
        • Cluster and level algorithm
        • Extension modules
        • Style guide
        • Portability
      • Security
      • Unit tests
        • buffer_procure_1
        • calendar
        • callback
        • cluster
        • constraints_combined_1
        • constraints_combined_2
        • constraints_leadtime_1
        • constraints_material_1
        • constraints_material_2
        • constraints_material_3
        • constraints_material_4
        • constraints_resource_1
        • constraints_resource_2
        • constraints_resource_3
        • constraints_resource_4
        • constraints_resource_5
        • datetime
        • deletion
        • demand_policy
        • flow_alternate_1
        • flow_alternate_2
        • flow_effective
        • forecast_1
        • forecast_2
        • forecast_3
        • forecast_4
        • forecast_5
        • forecast_6
        • jobshop
        • load_alternate
        • load_effective
        • lpsolver_1
        • multithreading
        • name
        • operation_alternate
        • operation_available
        • operation_effective
        • operation_pre_post
        • operation_routing
        • pegging
        • problems
        • python_1
        • python_2
        • python_3
        • safety_stock
        • sample_module
        • scalability_1
        • scalability_2
        • scalability_3
        • setup_1
        • setup_2
        • skill
        • xml
        • xml_remote
    • FAQ
    • License
      • GNU Affero General Public License
      • GNU Free Documentation License
    • Third party add-ons
  • Copyright © 2010-2013 frePPLe bvba