From 54bffca2e14dbbabc0b64e50a47156d03aca765d Mon Sep 17 00:00:00 2001 From: Petr Stefan Date: Thu, 26 Jan 2017 11:36:49 +0100 Subject: [PATCH] Broker dependencies --- Rewritten-docs.md | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/Rewritten-docs.md b/Rewritten-docs.md index c8c0d16..8202e6e 100644 --- a/Rewritten-docs.md +++ b/Rewritten-docs.md @@ -2627,6 +2627,32 @@ used. - API notification using curl, authentication using HTTP Basic Auth - asynchronous resending progress messages +### Additional libraries + +Broker implementation depends on several open-source C and C++ libraries. + +- **libcurl** -- Libcurl is used for notifying REST API on job finish event over + HTTP protocol. Due to lack of documentation of all C++ bindings the plain C + API is used. +- **cppzmq** -- Cppzmq is a simple C++ wrapper for core ZeroMQ C API. It + basicaly contains only one header file, but its API fits into borker's object + architecture. +- **spdlog** -- Spdlog is small, fast and modern logging library used for system + logging. It is highly customizable and configurable from broker's + configuration. +- **yaml-cpp** -- Yaml-cpp is used for parsing borker configuration text file in + YAML format. +- **boost-filesystem** -- Boost filesystem is used for managing logging + directory (create if necessary) and parsing filesystem paths from strings as + written in broker's configuration. Filesystem operations will be included in + future releases of C++ standard, so this dependency may be removed in the + future. +- **boost-program_options** -- Boost program options is used for + parsing of command line positional arguments. It is possible to use POSIX + `getopt` C function, but we decided to use boost, which provides nicer API and + is already used by worker component. + + ## Fileserver The fileserver component provides a shared file storage between the frontend and @@ -2862,10 +2888,10 @@ Monitor is an optional part of the ReCodEx solution for reporting progress of job evaluation back to users in the real time. It is written in Python, tested versions are 3.4 and 3.5. Following dependencies are used: -- zmq -- binding to ZeroMQ message framework -- websockets -- framework for communication over WebSockets -- asyncio -- library for fast asynchronous operations -- pyyaml -- parsing YAML configuration files +- **zmq** -- binding to ZeroMQ message framework +- **websockets** -- framework for communication over WebSockets +- **asyncio** -- library for fast asynchronous operations +- **pyyaml** -- parsing YAML configuration files There is just one monitor instance required per broker. Also, monitor has to be publicly visible (has to have public IP address or be behind public proxy