git clone https://github.com/IIIUBA/lms.git
- Отправить выражение, где " 2p3*4 " ваш пример | в http нельзя использовать +, поэтому вместо него пишите - p
curl -X POST -d "expression=2p3*4" http://localhost:8080/expression
curl -X GET http://localhost:8080/expressions
curl -X GET http://localhost:8080/agents_status
- Добавить агента(ов), где " add=2 " кол-во агентов
curl -X POST -d "add=2" http://localhost:8080/computation_agent
-
ArithmeticExpression
: представляет одно выражение с его идентификатором, строкой выражения, состоянием, временем создания, временем последнего обновления, результатом оценки и оцененным флагом.
-
ExpressionStore
: хранит объекты ArithmeticExpression и управляет ими потокобезопасным способом с использованием карты.
-
ComputationAgent
: имитирует работника, который обрабатывает выражения в фоновом режиме. У него есть идентификатор и состояние (простой, рабочий).
-
ComputationManager
: контролирует создание и управление ComputationAgents, назначает им выражения и отслеживает их состояния.
+---------------+ +-------------------+ +----------------------------+
| Пользователь | ----> | HTTP-сервер | ----> | Менеджер вычислений |
+---------------+ +-------------------+ +----------------------------+
|
v
+-------------------------+ +------------------+ +------------------+
| Хранилище выражений | ----> | Агент вычислений | ----> | Результат |
+-------------------------+ +------------------+ +------------------+
+----------------------+ +---------------------+
| ArithmeticExpression | ----> | (1) ExpressionStore |
+----------------------+ +---------------------+
|
v
+-------------------+ +--------------------------+
| ComputationAgent | ----> | (2) ComputationManager |
+-------------------+ +--------------------------+