3. Программная структура биллинга

Данная биллинговая система выполнена в клиент-серверном варианте. Общая структура изображена на рисунке.

На представленной схеме цветами выделены следующие виды компонентов:

Зелёным - отдельный процесс в операционной системе, запущенная программа;
Синим - библиотеки модулей, плагинов, либо ядра (серверные или клиентские части);
Жёлтым - часть базы данных;
Серым - визуальное отображение в клиентском приложении.

Можно выделить несколько основных частей:

Cерверная часть (BGBillingServer) - обрабатывает запросы клиента и Web-запросы;
Клиентская часть (BGBillingClient) - визуализирует работу с сервером, AРМ-оператора и администратора биллинга;
Web интерфейс пользователя (Web браузер клиента) - позволяет пользователям просматривать и модифицировать свои параметры, а также получать оперативные отчёты по модулям (просмотр сессий, звонков и т.д.);
Сервер ActiveMQ - сервер для обмена событиями между серверными приложениями биллинга;
База данных MySQL - единое хранилище и связующее звено компонентов биллинговой системы.

Можно заметить, что приложения BGBillingServer, BGScheduler, BGDataLoader используют общие библиотеки (BGBillingServer/lib), но физически являются разными процессами.

Связь клиента с сервером биллинга осуществляется через HTTP-протокол, также к серверу может обращаться браузер клиента провайдера для получения доступа к странице статистики. К серверу биллинга могут одновременно обращаться большое число клиентских приложений. Более того, под видом клиента для получения данных или их модификации к серверу могут обращаться сторонние приложения (например, бухгалтерское ПО). При этом сервер биллинга также производит авторизацию и контроль прав доступа этого клиентского приложения.

Все приложения, за исключением BGBillingClient, называются серверными приложениями биллинга, либо просто приложениями биллинга. Связь между всеми серверными приложениями осуществляется через базу данных и сервер ActiveMQ.

Также на схеме изображено, что экземпляр модуля (отдельный пункт в меню Модули) является ничем иным, как обособленным блоком данных в БД.

Преимущества клиент-серверной технологии заключаются в: