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