Just Pages of jno

nothing special


Project maintained by jn0 Hosted on GitHub Pages — Theme by mattgraham

«Когда я на почте служил ямщиком…»

В середине 1995 года я присоединился к команде одного из первых советских/российских ISP GlasNet (glas.apc.org, glas.net, glasnet.ru).

Тогдашний биллинг этого ISP состоял из тарификатора (на ksh) и собственно биллинга на foxpro for unix. CDRы хранились в ASCII-файлах, тарификация - по времени онлайн, тарифная сетка - плоская.

Со временем маркетниг перестало устраивать такое положение вещей - требовались “акции”, разнообразие тарифных планов, ночные скидки и т.п.

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

Основной идеей являлся отказ от табличного представления тарифных планов.

Было принято определение, по которому тарифный план есть функция контекста потребления ресурса (куда входит пользователь, ресурс и обстоятельства потребления, вроде даты/времени и т.п.), возвращающая сумму к списанию с баланса пользователя.

Так же было принято решение о нередактируемости таблиц CDRов и балансов. Все изменения оформлялись соответствующими проводками - так называемая “банковская схема”.

В качестве бэкенда была принята РСУБД Oracle 7, как единственная на тот момент, имеющая работающие хранимые процедуры (Postgres их уже имел тоже, но в сильно non-production виде).

Для взаимодействия с бэкендом был доработан питоновый модуль DCOracle.

Интерфейс пользователя был реализован в виде оболочки (командной строки). Позже в тот же интерфейс была добавлена возможность просмотра таблиц в графическом окошке (через Tkinter) при наличии сервера X11.

Позже появился и web-интерфейс, реализованный на PHP/FI.

Штат сотрудников, занимавшихся технической стороной биллинга состоял из 2 человек.

После поглощения GlasNet компанией ТелеРосс (“Россия Онлайн”, online.ru, rol.ru) появилась задача интеграции биллингов. Биллинг РОЛ базировался также на Oracle, но вся бизнес-логика находилась во внешних perl-скриптах. На них же был сделан и web-интерфейс. В результате “интеграции” биллинг РОЛ был переписан в технологическую платформу GlasNet (бизнес-логика - в хранимых процедурах Oracle). Web-интерфейс также переехал на PHP.

Штат сотрудников, занимавшихся технической стороной биллинга вырос до 3.5 человек.

Были реализованы средства автоматизированного построения программного кода PL/SQL и PHP по спецификации таблиц (на Python), что заметно сократило время разработки за счёт уменьшения ошибок кодирования и повысило унификацию кода и интерфейса (генерировался HTML 3).

Отдельной работой в рамках биллинга/OSS ISP стала реализация поддержки продаж предоплаченных карточек РОЛ, которая включала web-интерфейсы продавцов (с возможностью формирования и печати всех документов на сделку) и операторов поддержки, механизмы заказа/генерации/загрузки сертификатов, заказа и учёта физических карт, процедуры “расхода” сертификатов и шлюз в бухгалтерию. В процессе была написана и моя единственная программа на Java: криптомодуль bluefish для Oracle.

Как-то так.

EOF