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