Общая информация
BGBilling поддерживает возможность гибкого расширения функциональности системы путём написания пользовательских скриптов, которые могут: обрабатывать различные события системы, выполняться обособленно, управлять устройствами и т.д. Имеется возможность разработки расширений функциональности на следующих языках:
Язык Java - обработчики событий могут быть реализованы в виде Java-классов, которые компилируются и загружаются динамически; использование Java в качестве пользовательских скриптов предпочтительнее как с точки зрения удобства и возможностей разработки, так и с точки зрения производительности самих скриптов (быстрее до 50 раз).
Язык BGBS - это интерпретируемый Java-подобный язык программирования, который хорошо подходит для написания небольших скриптов, время выполнения которых не критично. BGBS представляет собой интегрированный в биллинг интерпретатор языка BeanShell (http://www.beanshell.org/) + API для управления данными биллинга и набор событий биллинга, которые можно обрабатывать. Разработка на BGBS требует знание языка Java, т.к. большинство вызовов BeanShell прозрачно переадресуются Java API. Синтаксис BeanShell также практически полностью идентичен Java.;
Язык BeanShell уже морально устарел и оставлен для совместимости чтобы работали старые скрипты. Все новые скрипты нужно писать на java.
Пользовательские скрипты Java/BGBS могут использоваться как:
-
Скрипты поведения - привязанные к договорам и обарабатывающие определенные события, происходящие с ними;
-
Функции глобальных событий - обработчики событий системы, не свзязанных с конкретными договорами;
-
Глобальные скрипты поведения - выполняемые периодически или единоразово действия.
Только пользовательские скрипты в виде динамических Java классов могут использоваться как:
-
Скрипты пред- и постобработки запросов, скрипты управления сервисом в модуле Inet.
Только пользовательские BGBS скрипты могут использоваться как:
-
Скрипты предобработки RADIUS запросов, привязаных к NASам модулей DialUp/VoiceIp и производящих предобработку RADIUS запросов;
-
Скриптовые шлюзы модуля IPN - скрипт производит управление шлюзом.