# Состав программного комплекса CSP

#### Серверный кластер CarabiSol

Набор библиотек (framework) для создания приложения, организующего стандартную структуру модулей (сервисов), управления ими, взаимодействия между ними, и удаленного взаимодействия между сервисами из других приложений, использующих эту библиотеку или совместимую с ней. Система из группы связанных приложений формирует единую среду для выполнения задач системы.

#### Базовый набор сервисов

Эти модули организуют системные задачи, необходимые для работы всей системы:

· Системный журнал (Logger) - собирает и хранит специальные сообщения и ошибки из всех сервисов системы

· HTTP Сервер - модуль-сервер, который позволяет сервисам обрабатывать HTTP запросы, для взаимодействия с клиентскими приложениями и интеграцией со сторонними сервисами

· HTTP Шлюз - предоставляет автоматический доступ к методам сервиса, с проверкой прав доступа

· Хранилище Сессий - хранит идентификационные данные для проверки прав доступа

· Сервисы Nats - реализуют взаимодействие между сервисами в разных приложениях через брокера сообщений NATS

#### Специализированная база данных carabiDB

Содержит набор библиотек для СУБД PostgreSQL и СУБД Oracle.

Виды информационных объектов в carabiDB:

- Процесса-зависимые - например заявка от клиента, заказ на производство
- Вспомогательные - например состав заявки от клиента, состав накладной, так как действия и события связаны с процесса-зависимым информационным объектом
- Справочные -например номенклатурные позиции, категории услуг
- Статистические и информационные, например баланс по финансовому источнику
- Нормативные, например среднее время выполнения операции на производстве, цена продажи по заданной марже.
  
  CarabiDB служит для создания, хранения, поиска и ограничения прав доступа к информационным объектам. carabiDB состоит из следующих рабочих модулей:
  
- Модуль управления хранилищем информационных объектов
- Модуль Проектирование структур хранения информационных и настройка прав доступа по ролям
- Модуль управления реквизитами информационных объектов 
- Модуль управления транзакциями информационных объектов 
- Модуль управления файловым хранилищем и правами доступа по пользователям и ролям 
- Модуль генерации SQL запросов к СУБД из XML 
- Модуль импорта и экспорта carabiDB в формате XML
- Модуль для обработки информационных объектов
- Модуль для сборки экранных форм ввода-вывода
- Модуль управления сценариями бизнес-логики
  
#### Набор базовых сервисов, необходимых для работы комплекса

- Сервис работы с carabiDB (pool) - ключевой компонент, реализующий связь между запросами carabiDB и всеми сервисами, контролирует нагрузку на используемую СУБД.
- Сервис авторизации - управляет сессиями, для доступа в шлюз, в связке с carabiDB
- Сервис генерации отчетов - собирает данные из carabiDB и создает, на их основе, файлы для печати, удобной обработки внешними программами или просмотра
- Хранилище файлов - состоит из автономного приложения, обслуживающего размещение пользовательских файлов на диске и управляющего модуля, который контролирует доступ к файлам
- Хранилище файлов - обеспечивает доступ к пользовательским файлам в carabiDB
- Сервис событий  - позволяет сервисам отправлять клиентам сообщения для уведомления о событиях системы.
- Сервис отправки EMail
- Сервис отправки SMS
 
#### Клиент администрирования системы
Специальный web клиент, позволяющий наблюдать за работой системы и упрощающий отладку, и обслуживание системы.
 
#### Основной клиент для пользователей (Carabi Solutions Web)
Пользовательский WEB – клиент для работы с CarabiDB.