Собственно проблема возникла в этой ветке.
viewtopic.php?f=5&t=4027&p=28135Вызвана использованием в скриптах BGBS BGBilling API отличных от DialUp модулей.
Как способ решения - единый набор BGBilling API библиотек для всех приложений биллинга.
Как планируется реализовать:
1) Библиотеки сервера биллинга разделяются на:
lib
+ ext - внешние
+ app - BGBilling API
2) Процесс обновления биллинга не отличается от текущего. Обновление с FTP сайта, только в библиотеку kernel будут включены в т.ч. поддержка всех RADIUS, NetFlow и т.п. протоколов.
3) Все сторонние компоненты биллинга имеют следующую структуру каталогов библиотек.
lib
+ ext - внешние, состав библиотек существенно меньше чем у сервера
+ app - BGBilling API
lib.app.update - в этот каталог складываются обвновлённые библиотеки.
4) После обновления сервера биллинга следует вызвать утилиту bg_installer.sh update для каждого из сторонних приложений .
При этом стороннее приложение обращается к серверу по JMS протоколу и сравнивает свои lib/app библиотеки с библиотеками сервера.
Полученные новые библиотеки складываются в lib.app.update и будут перемещены в lib/app при следующем рестарте приложения.
5) У каждого приложения реализовать аларм, периодически проверяющий библиотеки сервера на возможность своего обновления и напоминающий администратору о сей необходимости.
А может пусть вытягивает апдейты автоматом в lib.app.update и пишет о необходимости ребута.
Сложности:
1) Библиотека kernel.jar будет меняться достаточно часто, что будет требовать рестарта например радиуса.
Хотя реально в ней может изменится какой-то только веб сервис, радиусу и не нужный.
Возможно стоит разделить API и акшены/веб сервисы. Хотя излишнее деление усложнит сборку и публикацию обновлений.
Это же, хотя и в меньшей мере относится к dialup.jar, из которого также можно вычленить акшены.
2) Если внешнее приложение постоянно будет требовать всего состава библиотек, опять же придётся его рестартовать по каждому обновлению любого модуля.
Возможно в штатной поставке стоит поставлять только, например kernel.jar, dialup.jar а необходимые скриптам библиотеки сначала вручную скопировать в lib.app
с последующим автоматическим обновлением.
Преимущества:
1) Работа скрипта в контексте любого приложения биллинга.
2) Возможность отправки событий радиуса на обработку, например, серверу. Т.к. классы везде будут единые.