Новый подход к разработке систем биллинга. Волков М.

В данной статье представлен обзор некоторых особенностей нового подхода к разработке систем биллинга.

Сервисы

В основе существующих биллинговых систем лежит возможность изменять сервисы клиентов "налету" — администратор может добавить или изменить набор сервисов клиента или сам клиент может подписатья или отписаться от потребляемых сервисов.

Данная возможность накладывает ограничения:

  • заранее предопределены виды сервисов,
  • заранее созданы модули (шаблоны) для настройки тарифных планов.

Поэтому для добавления нового сервиса в систему необходимо вносить ощутимые изменения.

Предлагается иной подход: для каждого клиента может быть создан объект. Данный объект будет содержать правила, по которым обрабатываются первичные данные, относящиеся к клиенту. При изменении правил обработки создается другой объект. История изменений объектов сохраняется в свойствах клиента. Объекты создаются, тестируются и никогда более не изменяется.

Разбив создаваемые объекты на независимые достаточно мелкие части и соединив их через интерфейсы, можно создавать сколь угодно сложные пакеты услуг и тарифные планы. При этом создаются базовые объекты, содержащие правила для обработки только одного вида данных. Далее из них комбинируются объекты клиентов.

Добавление сервисов в подобной системе сводится к созданию нового базового объекта.

Сбор статистики

Большинство биллинговых систем включают в себя средства сбора статистики.

Что накладывает ограничения: необходимо вносить существенные изменения в систему для использования других или дополнительных средств сбора статистики.

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

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

Изменение средств сбора статистики или интерфейсов бэкендов в подобной системе сводится к замене существующего объекта и написанию соответствующих скриптов.

Интеграция с другими системами

Большинство биллинговых систем поддерживают только один, редко, несколько интерфейсов отображения данных; ведут бухгалтерский учет сами или тесно интегрируются со сторонней бухгалтерской системой.

Что опять же накладывает ограничения: необходимо вносить существенные изменения в систему для использования других средств отображения данных или бухгалтерских систем.

Предлагается иной подход: унифицировать элементы отображения до такой степени, чтобы любой используемый фронтенд (средство отображения данных) сможет их корректно отобразить. И для каждого фронтенда создается объект, преобразующий унифицированные элементы в понятный фронтенду вид.

Если же какую-то форму (например, счет-фактуру) достаточно сложно описать в таких элементах, то создается объект, специфический для данного вида фронтенда и описывающий форму в понятном фронтенду виде.

Добавление любого вида интерфейса (например, коммандной строки, XFree или поддерживающего XML-теги) в подобной системе ничуть не сложнее, чем интеграция с бухгалтерской программой.