====== Логическая структура проекта ======
{{ :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| кабинет]]