Программная структура биллинга
Данная биллинговая система выполнена в клиент-серверном варианте. Общая структура изображена на рисунке.
На представленной схеме цветами выделены следующие виды компонентов:
Зелёным - отдельный процесс в операционной системе, запущенная программа;
Синим - библиотеки модулей, плагинов, либо ядра (серверные или клиентские части);
Жёлтым - часть базы данных;
Серым - визуальное отображение в клиентском приложении.
Можно выделить несколько основных частей:
Cерверная часть (BGBillingServer) - обрабатывает запросы клиента и Web-запросы;
Клиентская часть (BGBillingClient) - визуализирует работу с сервером, AРМ-оператора и администратора биллинга;
Web интерфейс пользователя (Web браузер клиента) - позволяет пользователям просматривать и модифицировать свои параметры, а также получать оперативные отчёты по модулям (просмотр сессий, звонков и т.д.);
Сервер ActiveMQ - сервер для обмена событиями между серверными приложениями биллинга;
База данных MySQL - единое хранилище и связующее звено компонентов биллинговой системы.
Можно заметить, что приложения BGBillingServer, BGScheduler, BGDataLoader используют общие библиотеки (BGBillingServer/lib), но физически являются разными процессами.
Связь клиента с сервером биллинга осуществляется через HTTP-протокол, также к серверу может обращаться браузер клиента провайдера для получения доступа к странице статистики. К серверу биллинга могут одновременно обращаться большое число клиентских приложений. Более того, под видом клиента для получения данных или их модификации к серверу могут обращаться сторонние приложения (например, бухгалтерское ПО). При этом сервер биллинга также производит авторизацию и контроль прав доступа этого клиентского приложения.
Все приложения, за исключением BGBillingClient, называются серверными приложениями биллинга, либо просто приложениями биллинга. Связь между всеми серверными приложениями осуществляется через базу данных и сервер ActiveMQ.
Также на схеме изображено, что экземпляр модуля (отдельный пункт в меню Модули) является ничем иным, как обособленным блоком данных в БД.
Преимущества клиент-серверной технологии заключаются в:
возможности удалённого управления серверной частью с помощью клиента;
одновременном доступе неограниченного количества рассредоточенных операторов к данным биллинговой системы;
независимости автономной работы сервера от наличия запущенного клиентского приложения;
наличии единой точки доступа к биллингу: отсутствие базы данных на машине оператора позволяет жёстко контролировать права доступа, гарантировать целостность данных биллинга.