{{indexmenu_n>30}}
====== Структура биллинга [чистовик] ======
{{:introduction:mikbill_logic_structure.jpg?nolink|}}
===== Ядро биллинга =====
При запуске считываются параметры из **admin/app/etc/config.xml**\\
Из участка <**kernel**> берутся параметры <**ip**> и <**port**> для общения с **radius**.\\
При первом запросе от **radius** будет проверено наличие файлов лицензии по пути:\\
admin/app/etc/client.key
admin/app/etc/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:how_it_work:cron|скрипты]] с помощи которых формируется логика тарифов, обновление графиков, очищение зависших сессий и т.д.
===== backend админки =====
Считывает конфигурацию из **admin/app/etc/config.xml**\\
Параметр <**siteName**> отвечает за титульное название страницы в браузере.\\
Сам **index.php** содержит в себе набор функций для обработки запросов от **frontend** админки, платежных систем и [[billing:preferences:management:console|консольных команд]].\\
Может вызывать скрипты находящиеся в **admin/sys/scripts** или любую другую программу указанную в системных опциях.\\
===== backend кабинета =====
Считывает конфигурацию из **stat/app/etc/config.xml**\\
Сам **index.php** содержит в себе набор функций для обработки запросов от **frontend** кабинета.\\
Может вызывать скрипты находящиеся в **stat/sys/scripts**\\
===== backend платежных форм =====
Это файл **pay.php** с открытым кодом в корне папки кабинета, взаимодействует с файлами из **stat/res/paysystem** для формирования формы, адреса и суммы оплаты. Результат отдает на **frontend** кабинета.
===== frontend админки (flash) =====
Это файл **mikbill.swf** в корне админки, содержит в себе набор функций для обеспечения работоспособности GUI и общения с **backend** админки.
===== frontend админки (html) =====
Это файл **index.html** в корне админки, взаимодействует с файлами в папке **admin/MBPlatform**.\\
Аналогично flash версии, содержит набор функций для обеспечения работоспособности GUI и общения с **backend** админки.
===== frontend кабинета =====
Это файл **main.php** c открытым кодом в корне кабинета, взаимодействует с файлами в папке **stat/data** и **stat/res**.\\
Содержит набор функций для обеспечения работоспособности GUI и общения с **backend** кабинета и платежных форм.