Документация по разработке marketplace
PDF

Лицензирование приложений marketplace

Glossary Item Box

Общие сведения

Платные приложения marketplace должны быть лицензированы для контроля их использования. Основные типы лицензий:

  • Именные лицензии — предоставляют доступ к приложению для конкретных пользователей. Эти лицензии привязываются к учетным записям и не могут быть использованы другими пользователями. Администратор системы может в любой момент перераспределить именные лицензии. Как распределить лицензии между пользователями bpm'online можно узнать из статьи "Распределение лицензий между пользователями".
  • Серверные лицензии — не предусматривают необходимости лицензирования отдельных пользователей. Все пользователи bpm’online, обладающие соответствующими правами, будут иметь доступ к функциональности, которая лицензируется.

Независимо от типа лицензии в нее могут входить:

  • Объекты лицензирования — названия пользовательских объектов, добавленных в приложение marketplace. В этот список могут входить любые пользовательские объекты, например, объект раздела, детали или справочника.
  • Операции лицензирования — названия операций, добавленных в логику приложения для проверки наличия лицензии на использование определенной функциональности. Например, в один из базовых разделов системы было добавлено дополнительное действие, с которым нужно связать операцию лицензирования. При вызове этого действия в программной логике приложения сначала должна выполняться проверка наличия лицензии, а затем, в зависимости от результата, работа функциональности должна быть либо продолжена, либо прервана.

Количество оплаченных и предоставленных пользователям лицензий разработчик приложения marketplace может узнать, обратившись в службу поддержки marketplace (marketplace@terrasoft.ru).

Какими могут быть способы лицензирования

Возможные способы лицензирования зависят от типа лицензии и предмета лицензирования (табл. 1).

Табл. 1. — Возможные способы лицензирования

Тип лицензии Предмет лицензирования Бизнес-кейсы
Именная Объекты Приложение marketplace представляет собой новый раздел в bpm'online. Разработчик хочет получить плату за каждого пользователя, работающего с разделом.
Именная Операции

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

Например, коннектор к системе телефонии, доступ к использованию которого оплачивается для отдельных пользователей.

Серверная Объекты Приложение marketplace представляет собой новый раздел в bpm'online. Разработчик хочет получить фиксированную плату, независимо от того, сколько пользователей будет работать с разделом.
Серверная Операции

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

Например, коннектор к Web-чату, в ходе работы которого регистрируются лиды/обращения в bpm'online. Клиент оплачивает лицензию независимо от количества пользователей.

Именная Объекты и/или операции

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

Например, в рамках вертикального решения доработан раздел [Заявки]. В нем реализована интеграция с внешней системой, в которой регистрируются заявки. Клиент оплачивает доступ к функциональности раздела для каждого пользователя.

ВАЖНО

Запрещается одновременное использование именных и серверных лицензий, лицензирующих одинаковые объекты и операции.

Каким может быть срок действия лицензии

В лицензии указывается срок ее действия. Платформа bpm'online следит контролирует сроки действия лицензий. Если срок действия истек, работа лицензируемого объекта или операции будет заблокирована.

В зависимости от срока действия, лицензии могут быть двух типов:

  • Годовая — предназначена для приложений marketplace, распространяемых с годовой подпиской. Срок действия лицензии — один год. После завершения срока действия лицензии клиент должен снова оплатить годовую подписку и получить новую лицензию.
  • Бессрочная — предназначена для приложений marketplace, которые необходимо оплатить один раз. Срок действия лицензии не ограничен.

Процесс выпуска лицензии для нового продукта

1. Во время создания приложения marketplace разработчик должен решить:

a) Что будет входить в лицензию — объекты лицензирования или операции (возможны оба варианта). Также он должен сформировать список лицензируемых объектов и/или операций.

b) Определить тип лицензии — именная или серверная. Основные типы лицензий bpm'online и варианты их использования перечислены в разделе "Лицензирование в bpm’online" документации пользователя.

с) Определить срок действия лицензии — лицензия годовая или бессрочная. 

К СВЕДЕНИЮ

Если в лицензию будут входить операции лицензирования, то в программном коде приложения необходимо реализовать проверку наличия лицензии. Для объектов лицензирования логика проверки уже реализована в базовой версии bpm'online.

2. После успешной проверки приложения сотрудниками marketplace разработчик должен предоставить список лицензируемых объектов и операций, а также информацию о типе и сроке действия лицензии команде поддержки marketplace (marketplace@terrasoft.ru).

3. На основании предоставленного списка служба поддержки marketplace генерирует лицензии для этого приложения.

4. В дальнейшем, после заказа и оплаты приложения marketplace, пользователю будут установлены необходимые лицензии службой поддержки marketplace.

Как реализовать проверку лицензий в продукте

Проверка объектов лицензирования

Если в лицензию приложения входят только объекты лицензирования, то никаких доработок в приложении marketplace не требуется. Проверка наличия лицензии для объектов лицензирования выполняется базовыми средствами bpm’online.

Проверка операций лицензирования

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

Для этого необходимо использовать один из методов класса LicHelper библиотеки Terrasoft.Core:

  • GetHasOperationLicense — возвращает true, если лицензия найдена, и false, если лицензия отсутствует.
  • CheckHasOperationLicense — возвращает true, если лицензия найдена. Если лицензия отсутствует — генерирует исключение LicException.

Сигнатуры методов:

public bool GetHasOperationLicense(string sysPackageOperationCode);
public bool CheckHasOperationLicense(string sysPackageOperationCode);

Здесь строковый параметр sysPackageOperationCode должен содержать название лицензируемой операции, переданное в службу поддержки marketplace.

Примеры использования методов:

UserConnection.LicHelper.GetHasOperationLicense("MyMarketplaceApplication.Use");
UserConnection.LicHelper.CheckHasOperationLicense("MyMarketplaceApplication.Use");

ВАЖНО

Проверку наличия лицензии на операцию можно выполнить только на серверной стороне приложения. Если приложение marketplace работает только с клиентской частью bpm'online, то необходимо:

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

ВАЖНО

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

Демонстрационный режим работы приложения

Если в приложении bpm'online нет загруженных лицензий ни для одного из продуктов, то по умолчанию включается демонстрационный режим работы приложения. В демонстрационном режиме пользователю доступна вся функциональность bpm'online, но в каждую таблицу базы данных можно добавить не более 1000 записей.

© Terrasoft 2002-2017.

Был ли данный материал полезен?

Как можно улучшить эту статью?