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

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

Структура

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

  • Зелёным - отдельный процесс в операционной системе, запущенная программа;

  • Синим - библиотеки модулей, плагинов, либо ядра (серверные или клиентские части);

  • Жёлтым - часть базы данных;

  • Серым - визуальное отображение в клиентском приложении.

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

  • Cерверная часть (BillingServer) - обрабатывает запросы клиента и Web-запросы;

  • Клиентская часть (BillingClient) - визуализирует работу с сервером, AРМ-оператора и администратора биллинга;

  • Web интерфейс пользователя (Web браузер клиента) - позволяет пользователям просматривать и модифицировать свои параметры, а также получать оперативные отчёты по модулям (просмотр сессий, звонков и т.д.);

  • Сервер ActiveMQ - сервер для обмена событиями между серверными приложениями биллинга;

  • База данных MySQL - единое хранилище и связующее звено компонентов биллинговой системы.

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

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

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

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

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

  • возможности удалённого управления серверной частью с помощью клиента;

  • одновременном доступе неограниченного количества рассредоточенных операторов к данным биллинговой системы;

  • независимости автономной работы сервера от наличия запущенного клиентского приложения;

  • наличии единой точки доступа к биллингу: отсутствие базы данных на машине оператора позволяет жёстко контролировать права доступа, гарантировать целостность данных биллинга.