Компания CloudReports (далее все совпадения названий с реальными компаниями прошу считать случайными) предоставляет облачный сервис по подготовке отчетов в облаке. Рассмотрим бизнес задачу моделирования расчета стоимости формирования подобных услуг. Для более глубокого понимания ситуации, рассмотрим, в качестве примера, реальный продукт компании FastReports доступный в open-source версии для генерации отчетов (демонстрационную версию вы можете бесплатно скачать на сайте компании). Возьмем демонстрационный отчет Employees
![](https://habrastorage.org/r/w1560/webt/gp/os/e4/gpose4jkw95pxv4mcgwlwmemviy.png)
Модифицируем отчет. Для этого добавим еще одну страницу к отчету (Page2)
![](https://habrastorage.org/r/w1560/webt/ql/qq/8x/qlqq8xgmvshyzerhqlpqwfatq0e.png)
На странице кода
![](https://habrastorage.org/r/w1560/webt/us/op/i0/usopi0k1f0ou_7tj94_gcejlx8u.png)
Отчет можно скачать по ссылке.
Запускаем отчет и проматываем до последней страницы
![](https://habrastorage.org/r/w1560/webt/2o/wa/mq/2owamqu_ubfpyiuvuejenxhtrwq.png)
В качестве простой модели можно рассмотреть линейную, тогда стоимость построения отчета рассчитывается по формуле
![](https://habrastorage.org/r/w1560/webt/5m/kh/me/5mkhmedulygmg5bh5h-knikvori.png)
где a_i — набор некоторых весовых коэффициентов, b_i — билинговый параметр. Например, выберем в качестве ключевых параметров при расчете себестоимости: Величина использования памяти (Physical memory usage = Pm), Время загрузки процессора (Total processor time = Tt) и количество страниц в отчете (Pages = P)
![](https://habrastorage.org/r/w1560/webt/mb/6z/3f/mb6z3fyvzlqsdr9ldpp_bz4cabk.png)
a_1 это коэффициент, который подбирается исходя из маркетинговой модели и имеет размерность рубль/бит при условии что Pm измеряется в битах. Предположим, установлены следующие тарифы
![](https://habrastorage.org/r/w1560/webt/nu/g0/uc/nug0uchj212dxyvulpexd8dgokq.png)
Рассчитываем
![](https://habrastorage.org/r/w1560/webt/r-/-f/r0/r--fr0gptlceg4gxzdv3zodrjgg.png)
где время работы процессора округлено до 4 секунд.
В реальности выбор может быть более сложным, оставляем эту задачу за пределами данной статьи — приведем лишь пример: Вы тарифицируете первые 100 страниц по рублю 101-199 по 0,50 копеек все что выше 200 не тарифицируется или тарифицируется по 0,10 копеек. Смысл данного примера в том, чтобы показать, что вариантов маркетинга бесчисленное множество.
Важной частью облачных отчетов является их лицензирование. Приведем пример, клиент приобретает пакет из 100 отчетов. Каждый отчет имеет свой уникальный код. Структура каждого отчета может быть разработана на усмотрение клиента. При продаже пакета лицензий на 100 отчетов клиент вносит определенную сумму на свой лицевой счет. Вы можете учитывать каждый запуск отчета и снимать за это в добавок к потребленным ресурсом фиксированную сумму S+Fix, тогда перед запуском отчета необходимо указать его уникальный ключ в ответ на данный запрос сервер лицензий учтет этот запуск и уменьшит счетчик на единицу. Если срок действия лицензии истек, то а запуске отчета будет отказано. Возможны продажи с неограниченным количеством запусков или с периодическим обновлением, когда лицензия выдается на 10 тысяч запусков, по исчерпании которых с лицевого счета вновь снимается фиксированная сумма и счетчик запусков вновь устанавливается в 10 тысяч.
![](https://habrastorage.org/webt/gp/os/e4/gpose4jkw95pxv4mcgwlwmemviy.png)
Модифицируем отчет. Для этого добавим еще одну страницу к отчету (Page2)
![](https://habrastorage.org/webt/ql/qq/8x/qlqq8xgmvshyzerhqlpqwfatq0e.png)
На странице кода
![](https://habrastorage.org/webt/us/op/i0/usopi0k1f0ou_7tj94_gcejlx8u.png)
Отчет можно скачать по ссылке.
Запускаем отчет и проматываем до последней страницы
![](https://habrastorage.org/webt/2o/wa/mq/2owamqu_ubfpyiuvuejenxhtrwq.png)
В качестве простой модели можно рассмотреть линейную, тогда стоимость построения отчета рассчитывается по формуле
![](https://habrastorage.org/webt/5m/kh/me/5mkhmedulygmg5bh5h-knikvori.png)
где a_i — набор некоторых весовых коэффициентов, b_i — билинговый параметр. Например, выберем в качестве ключевых параметров при расчете себестоимости: Величина использования памяти (Physical memory usage = Pm), Время загрузки процессора (Total processor time = Tt) и количество страниц в отчете (Pages = P)
![](https://habrastorage.org/webt/mb/6z/3f/mb6z3fyvzlqsdr9ldpp_bz4cabk.png)
a_1 это коэффициент, который подбирается исходя из маркетинговой модели и имеет размерность рубль/бит при условии что Pm измеряется в битах. Предположим, установлены следующие тарифы
![](https://habrastorage.org/webt/nu/g0/uc/nug0uchj212dxyvulpexd8dgokq.png)
Рассчитываем
![](https://habrastorage.org/webt/r-/-f/r0/r--fr0gptlceg4gxzdv3zodrjgg.png)
где время работы процессора округлено до 4 секунд.
В реальности выбор может быть более сложным, оставляем эту задачу за пределами данной статьи — приведем лишь пример: Вы тарифицируете первые 100 страниц по рублю 101-199 по 0,50 копеек все что выше 200 не тарифицируется или тарифицируется по 0,10 копеек. Смысл данного примера в том, чтобы показать, что вариантов маркетинга бесчисленное множество.
Важной частью облачных отчетов является их лицензирование. Приведем пример, клиент приобретает пакет из 100 отчетов. Каждый отчет имеет свой уникальный код. Структура каждого отчета может быть разработана на усмотрение клиента. При продаже пакета лицензий на 100 отчетов клиент вносит определенную сумму на свой лицевой счет. Вы можете учитывать каждый запуск отчета и снимать за это в добавок к потребленным ресурсом фиксированную сумму S+Fix, тогда перед запуском отчета необходимо указать его уникальный ключ в ответ на данный запрос сервер лицензий учтет этот запуск и уменьшит счетчик на единицу. Если срок действия лицензии истек, то а запуске отчета будет отказано. Возможны продажи с неограниченным количеством запусков или с периодическим обновлением, когда лицензия выдается на 10 тысяч запусков, по исчерпании которых с лицевого счета вновь снимается фиксированная сумма и счетчик запусков вновь устанавливается в 10 тысяч.