Логическая структура проекта
Ядро биллинга
При запуске считываются параметры из /var/mikbill/prod/config/admin.xml
Из участка <kernel> берутся параметры <ip> и <port> для общения с radius.
При первом запросе от radius будет проверено наличие файлов лицензии по пути:
/var/mikbill/license/client.key /var/mikbill/license/serv.crt
При их отсутствии установится ограничение на 123 пользователя.
Если файлы будут найдены, сформируется запрос на сервер лицензий:
cert1.celteh.com cert2.celteh.com cert3.celteh.com
При успешной проверке, будет прочитана информация и установится лимит абонентов по лицензии.
После создаются соединения с базой, количество соединений указывается в конфигурации radius.
Radius
При запуске загружается список и параметры BRAS из базы данных. Настройки подключения содержатся в файле sql.conf
Взаимодействие с ядром биллинга происходит за счет файла mikbill.pl где указаны ip и порт на котором запущено ядро:
my $sock = new IO::Socket::INET ( PeerAddr => 'localhost', PeerPort => '2007', Proto => 'tcp', );
cron
Взаимодействует с бекендом админки периодически запуская скрипты с помощи которых формируется логика тарифов, обновление графиков, очищение зависших сессий и т.д.
backend админки
Считывает конфигурацию из /var/mikbill/prod/config/admin.xml
Параметр <siteName> отвечает за титульное название страницы в браузере.
Сам index.php содержит в себе набор функций для обработки запросов от frontend админки, платежных систем и консольных команд.
Может вызывать скрипты находящиеся в /var/mikbill/prod/scripts или любую другую программу указанную в системных опциях.
frontend админки (flash)
Это файл mikbill.swf в корне админки, содержит в себе набор функций для обеспечения работоспособности GUI и общения с backend админки. (с 01-01-2020 не обновляется.)
frontend админки (html)
Это файл index.html в корне админки, взаимодействует с файлами в папке admin/MBPlatform.
Аналогично flash версии, содержит набор функций для обеспечения работоспособности GUI и общения с backend админки.
backend / frontend кабинета
Считывает конфигурацию из /var/mikbill/prod/config/stat.xml
Содержит набор функций для обеспечения работоспособности GUI кабинета и платежных форм.
Сам index.php содержит в себе набор функций backend и frontend.
Гибкость
Данные элементы можно размещать на разных серверах, завязывая их общение по внутренней сети либо по выделенным каналам.
- cron, backend и frontend админки