====== Логическая структура проекта ====== {{ :billing:screenshot_14.jpg?800 |}} ===== Ядро биллинга ===== При запуске считываются параметры из **/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 ===== Взаимодействует с бекендом админки периодически запуская [[billing/scripts|скрипты]] с помощи которых формируется логика тарифов, обновление графиков, очищение зависших сессий и т.д. ===== backend админки ===== Считывает конфигурацию из **/var/mikbill/prod/config/admin.xml**\\ Параметр <**siteName**> отвечает за титульное название страницы в браузере.\\ Сам **index.php** содержит в себе набор функций для обработки запросов от **frontend** админки, платежных систем и [[billing:preferences:management:console|консольных команд]].\\ Может вызывать скрипты находящиеся в **/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.\\ ===== Гибкость ===== Данные элементы можно размещать на разных серверах, завязывая их общение по внутренней сети либо по выделенным каналам. * [[billing:external:kernel|Ядро билинга]] * [[billing:external:radius|Radius]] * [[billing:external:database|База данных]] * cron, backend и frontend админки * [[billing:external:backend_cabinet| кабинет]]