Работая длительное время в кредитных организациях, в том числе крупных, на позициях от рядового программиста до руководителя отдела информационных систем, я изучил внутреннее устройство автоматизированных систем и технологий, используемых в банковской среде.
Полученные навыки позволили мне разработать собственную линейку программных решений -
Апостол.
При разработке Апостол я вдохновлялся исходными кодами nginx. Поэтому системные приложения, созданные на этой платформе, отвечают высоким стандартам и рассчитаны на высоконагруженные системы.
Программная платформа Апостол разработана на C++ с использованием парадигмы событийно-ориентированного программирования с применением API epoll.
Событийно-ориентированное программирование используется в серверных приложениях для решения задачи масштабирования на 10 000 одновременных соединений и более.
Программная платформа имеет модульную структуру и включает интегрированный набор инструментов для приема и отправки данных по таким протоколам, как UDP, TCP, HTTP и WebSocket. Она также поддерживает отправку SQL-запросов к системе управления базами данных PostgreSQL с использованием библиотеки libpq.
При создании Апостол CRM я опирался на архитектурные решения, применяемые в банковской системе Новая Афина.
Архитектурно это очень схожие решения. Но, если "Новая Афина" представляет собой готовый продукт с графическим интерфейсом, работающим на Oracle, то у Апостол CRM в качестве СУБД используется PostgreSQL, а вместо графического интерфейса применяется программный интерфейс, или иначе API.
Графический интерфейс, как правило, это Web или мобильное приложение, разрабатывается отдельно под каждый проект.
Апостол CRM позволяет создавать многопользовательские, многоязычные информационные системы с модульной структурой и событийно-ориентированной архитектурой.
Событие можно определить как «изменение состояния» объекта в системе. Например, когда покупатель приобретает автомобиль, состояние автомобиля изменяется с «продаваемого» на «проданный». Системная архитектура продавца автомобилей может рассматривать это изменение состояния как событие, создаваемое, публикуемое, определяемое и потребляемое различными приложениями в составе архитектуры.
Модульный подход позволяет поэтапно добавлять в систему новые бизнес-задачи, оценивая результат их работы ещё до завершения полного цикла разработки.
Доступ к системе осуществляется с помощью цифровых интерфейсов:
API серверной части описано с помощью спецификации OpenAPI и доступно через Swagger UI.
Пример API:
OCPP CSS APIСервер данных – это программа для сбора данных с множества промышленных устройств по протоколам UDP/TCP/HTTP/WebSocket.
С последующей передачей и обработкой данных в СУБД PostgreSQL.
Сервер приложений (Application Server) – это программный комплекс, предназначенный для доставки контента и средств его представления для клиентских приложений.
Клиентами могут быть веб-приложения, браузеры или мобильные приложения.
Веб-сервер – это компьютерная программа, которая хранит, обрабатывает и доставляет веб-страницы для клиента.
Прокси-сервер — это промежуточное звено между пользователем и сайтом.
Из готовых модулей Апостол CRM можно быстро собрать и запустить серверную часть информационной системы.
Что позволит вам немедленно приступить к проекту, не тратя время на разработку бэкенда, и сосредоточить усилия на фронтенде, будь то веб или мобильное приложение.
Готовая сборка будет предоставлена в виде файлов с исходными кодами и документацией для запуска в среде Docker (docker-compose.yml).