e-ProAdmin application Technological objectives: - stability - scalability - modularity - fast iterations Three main application layers: - web clients - communication layer - core application cluster software hosting environment -------------------------------------------------------- | Console | W user GUI | greffe GUI | Rest API | - 1 user interface web server | Access | E javascript clients | | - 1 greffe interface + api web server | | B - jQuery + some addons | - HMAC auth | (REST interface for back-office integration) | | - asynchronous requests | | | | to core application | | Each web server communicates with the | | - - - - - - - - - - - - - - - - - - - - - -| communication layer thru a high-speed | | Apache web servers: | dedicated & protected network connection | | - mpm_event, selected modules | | | - eID authentication | | | - static content & php-fpm | | | - load-balancing proxy to | | | communication layer | | |--------------------------------------------| | | C Communication layer: | - currently 2 nodes, with dedicated high-speed | O - Erlang/OTP + Mochiweb | network connection to each other, | M - data validation | shared iscsi san drive and distributed | M - access validation | database. | - in-memory buffering | | | - event generation | | |--- --- --- --- --- --- -- --- --- --- --- -| The communication layer and core application | | C Core application cluster: | run in the same nodes (being erlang, this | O - Erlang/OTP core application nodes | doesn't really matter). Each cluster member | R - Mnesia distributed database | runs a copy of each and has disc-copies | E - quasi-DSL "OPS" interpreter | of the distributed mnesia DB. | - Stable, scalable architecture | | - Python for maintenance & specific | | functionality / libraries | | - Prolog server for constraints-based | | | problem solving | Each server (Debian) is hosted inside a -------------------------------------------------------- HP bladesystem, virtualized with VmWare.