<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Guardant &mdash; Разработка моделей лицензирования]]></title>
	<link rel="self" href="https://forum.guardant.ru/feed/atom/topic/395" />
	<updated>2014-03-19T16:24:47Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.guardant.ru/topic/395/</id>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1946/#p1946" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Антон Тихиенко пишет:</cite><blockquote><p>Тут нужно отметить, что ключи Guardant Code не выпускаются в сетевом варианте и являются исключительно локальными моделями.</p></blockquote></div><p>Опс, да действительно - моя ошибка.</p>]]></content>
			<author>
				<name><![CDATA[Александр (Rouse_) Багель]]></name>
				<uri>https://forum.guardant.ru/user/53/</uri>
			</author>
			<updated>2014-03-19T16:24:47Z</updated>
			<id>https://forum.guardant.ru/post/1946/#p1946</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1942/#p1942" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>safelog пишет:</cite><blockquote><p>Да, как раз и требуется понять, как с помощью локального ключа (например, Sign) ограничить максимальное число одновременно работающих копий приложения на терминально сервере (см. <a href="https://forum.guardant.ru/topic/401/">Guardant Sign на терминальном сервере</a>).</p></blockquote></div><p>Ответ был дан в указанном топике.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2014-03-19T08:24:27Z</updated>
			<id>https://forum.guardant.ru/post/1942/#p1942</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1941/#p1941" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Антон Тихиенко пишет:</cite><blockquote><p>Тут нужно отметить, что ключи Guardant Code не выпускаются в сетевом варианте и являются исключительно локальными моделями.</p></blockquote></div><p>Да, как раз и требуется понять, как с помощью локального ключа (например, Sign) ограничить максимальное число одновременно работающих копий приложения на терминально сервере (см. <a href="https://forum.guardant.ru/topic/401/">Guardant Sign на терминальном сервере</a>).</p>]]></content>
			<author>
				<name><![CDATA[safelog]]></name>
				<uri>https://forum.guardant.ru/user/733/</uri>
			</author>
			<updated>2014-03-19T08:22:50Z</updated>
			<id>https://forum.guardant.ru/post/1941/#p1941</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1938/#p1938" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Александр (Rouse_) Багель пишет:</cite><blockquote><p>2. это возможно реализовать только в случае использования Guardant Code (счетчик держим в самом ключе)</p></blockquote></div><div class="quotebox"><cite>safelog пишет:</cite><blockquote><div class="quotebox"><cite>Александр (Rouse_) Багель пишет:</cite><blockquote><p>2. это возможно реализовать только в случае использования Guardant Code (счетчик держим в самом ключе)</p></blockquote></div><p>Благодарю за ответ.</p><p>Думаю, здесь есть некоторая проблема:</p><p>1. При использовании сетевого ключа лицензиями управляет сервер GLDS. В случае аварийного завершения защищенного приложения<br />без выполнения GrdLogout не будет освобождения ранее захваченная лицензия. В крайнем случае можно через веб-интерфейс или перезагрузку GLDS освободить &quot;зависшие&quot; лицензии.</p><p>2. Если поместить счетчик захваченных лицензий в ключ Guardant Code, тогда невозможно его сбросить в случае аварийного завершения, кроме как из защищенного приложения. Если несколько копий приложения работает с ключом, то какое из них будет иметь высший приоритет при управлении счетчиком?</p></blockquote></div><p>Тут нужно отметить, что ключи Guardant Code не выпускаются в сетевом варианте и являются исключительно локальными моделями.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2014-03-19T08:15:44Z</updated>
			<id>https://forum.guardant.ru/post/1938/#p1938</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1937/#p1937" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Александр (Rouse_) Багель пишет:</cite><blockquote><p>2. это возможно реализовать только в случае использования Guardant Code (счетчик держим в самом ключе)</p></blockquote></div><p>Благодарю за ответ.</p><p>Думаю, здесь есть некоторая проблема:</p><p>1. При использовании сетевого ключа лицензиями управляет сервер GLDS. В случае аварийного завершения защищенного приложения<br />без выполнения GrdLogout не будет освобождения ранее захваченная лицензия. В крайнем случае можно через веб-интерфейс или перезагрузку GLDS освободить &quot;зависшие&quot; лицензии.</p><p>2. Если поместить счетчик захваченных лицензий в ключ Guardant Code, тогда невозможно его сбросить в случае аварийного завершения, кроме как из защищенного приложения. Если несколько копий приложения работает с ключом, то какое из них будет иметь высший приоритет при управлении счетчиком?</p>]]></content>
			<author>
				<name><![CDATA[safelog]]></name>
				<uri>https://forum.guardant.ru/user/733/</uri>
			</author>
			<updated>2014-03-19T08:07:36Z</updated>
			<id>https://forum.guardant.ru/post/1937/#p1937</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1930/#p1930" />
			<content type="html"><![CDATA[<p>2. это возможно реализовать только в случае использования Guardant Code (счетчик держим в самом ключе)</p>]]></content>
			<author>
				<name><![CDATA[Александр (Rouse_) Багель]]></name>
				<uri>https://forum.guardant.ru/user/53/</uri>
			</author>
			<updated>2014-03-14T21:05:21Z</updated>
			<id>https://forum.guardant.ru/post/1930/#p1930</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1918/#p1918" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><ol class="decimal"><li><p>Тут реализация вызывает некоторые сомнения. У электронных ключей есть дополнительные атрибуты, которые также можно учитывать. К примеру <a href="https://forum.guardant.ru/topic/184/">тут</a> описан один из вариантов (который косвенно показывает решение и Вашей задачи) сортировки электронных ключей;</p></li><li><p>Такими, готовыми, опциями Guardant API не располагает.</p></li></ol></blockquote></div><p>Благодарю за помощь. Ситуация, описанная <a href="https://forum.guardant.ru/topic/184/">тут</a>, совпадает с моей: раскрыта суть моего вопроса.</p>]]></content>
			<author>
				<name><![CDATA[safelog]]></name>
				<uri>https://forum.guardant.ru/user/733/</uri>
			</author>
			<updated>2014-03-13T09:18:11Z</updated>
			<id>https://forum.guardant.ru/post/1918/#p1918</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1917/#p1917" />
			<content type="html"><![CDATA[<p>Здравствуйте.</p><p>Отвечаем на Ваши вопросы:<br /></p><div class="quotebox"><cite>safelog пишет:</cite><blockquote><ol class="decimal"><li><p>Прошу оценить корректность вышеизложенных рассуждений. Прошу указать на ошибки, если таковые имеются.</p></li><li><p>Есть ли возможность задавать ограничения на число одновременных сеансов для локального ключа?<br />Может, использовать защищенную ячейку для учета числа подключений (вызовов GrdLogin)?</p></li></ol></blockquote></div><ol class="decimal"><li><p>Тут реализация вызывает некоторые сомнения. У электронных ключей есть дополнительные атрибуты, которые также можно учитывать. К примеру <a href="https://forum.guardant.ru/topic/184/">тут</a> описан один из вариантов (который косвенно показывает решение и Вашей задачи) сортировки электронных ключей;</p></li><li><p>Такими, готовыми, опциями Guardant API не располагает.</p></li></ol>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2014-03-13T08:56:12Z</updated>
			<id>https://forum.guardant.ru/post/1917/#p1917</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Разработка моделей лицензирования]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1915/#p1915" />
			<content type="html"><![CDATA[<p>Для лицензирования защищаемого приложения предполагается использовать две модели:</p><ol class="decimal"><li><p>Ограниченная. Конечное число лицензий для работы на терминальном сервере и в локальной сети.<br />Захват лицензий происходит попроцессно.</p></li><li><p>Терминальная (неограниченная). Неограниченное число лицензий для работы на терминальном сервере.<br />Возможность запускать неограниченное число процессов защищаемого приложения на терминальном сервере.</p></li></ol><p>Предполагается, что цена ключей для ограниченной модели будет в разы меньше, чем цена ключа для терминальной модели.<br />В ограниченной модели формируются ключи на 5, 10, 20 и т. п. лицензий.</p><p>Первая модель может быть реализована с помощью сетевых ключей, сервера лицензирования GLDS.exe.<br />В этом случае в функции GrdSetFindMode передается флаг GrdFMR_Remote.</p><p>Вторая модель основана на использовании локального ключа.<br />В функции GrdSetFindMode передается флаг GrdFMR_Local.</p><p>Таким образом, модель лицензирования определяется в двух местах: на стороне приложения, на стороне ключа.<br />Приложение должно обеспечить поиск нужного типа ключей, а ключ должен быть определенного типа (локальный/сетевой).</p><p>Т. е. модель лицензирования зависит от сборки приложения и ключа.</p><p>Получается, что для двух разных моделей нужно делать разные сборки приложения.</p><p>Но это будет неудобно как для пользователя (если захочет перейти на другую модель лицензирования),<br />так и для разработчика (необходимо поддерживать две сборки проекта).</p><p>Следующий шаг развития моделей - обеспечить работу на стороне приложения с обоими типами ключей.</p><p>Тогда снимается зависимость модели лицензирования от сборки приложения, остается зависимость только от ключа.</p><p>Требование: модель лицензирования должна зависеть только от ключа: есть терминальный ключ - работаем в терминале, есть сетевой ключ - работаем в сети и в терминале.</p><p>Например, клиент приобрел терминальную лицензию, но затем потребовалось работь в локальной сети.<br />Тогда просто докупает нужный ключ, подключает (аппаратный)/активирует (программный) его. Переустановка приложения не потребуется.</p><p>Но здесь есть нюанс с поиском ключей.<br />Для сетевого ключа есть возможность выполнить GrdLogin, как для локального.</p><p>Получается, что если задать GrdSetFindMode(GrdFMR_Local | GrdFMR_Remote), а потом GrdLogin,<br />то можем подключиться к сетевому ключу локально.</p><p>Тогда ограничения на максимальное число лицензий, заданные в сетевом ключе, снимаются.</p><p>Варианты подключений представлены в <a href="http://yadi.sk/d/W-XZGSBaKSDDP/"><span style="color:blue">таблице</span></a>.<br />(Не удается загрузить изображение в сообщение, поэтому пришлось использовать внешний сервис).</p><p>Для работы описанных моделей нужны варианты 1 и 4.<br />Вариант 3 (комбинация GrdFMR_Local + Sign/SP Net) нужно исключить разработчиком самостоятельно:<br />необходимо запрещать подключение к сетевому ключу с флагом GrdFMR_Local.</p><p>Алгоритм поиска и подключения на ключ, обеспечивающей работу моделей лицензирования:</p><ol class="decimal"><li><p>Выполнить GrdSetFindMode(GrdFMR_Local | GrdFMR_Remote);</p></li><li><p>Сформировать список всех найденных ключей с помощью GrdFind;</p></li><li><p>Выбрать ключ, с которым необходимо работать.<br />Для выбора ключа разработчиком создается стратегия, например, сначала пробовать подключиться к локальным ключам, потом - к сетевым.</p></li><li><p>Когда ключ выбран и известен его тип (локальный/сетевой), необходимо гарантировать, что тип ключа совпадает с типом модели: на локальный ключ подключаемся локально (по-другому не получится),&nbsp; на сетевой ключ - удаленно.<br />Например, выбрали сетевой ключ, тогда выполнить GrdSetFindMode(GrdFMR_Remote, ...).</p></li><li><p>Выполнить GrdLogin.</p></li></ol><p>Вопросы:<br /></p><ol class="decimal"><li><p>Прошу оценить корректность вышеизложенных рассуждений. Прошу указать на ошибки, если таковые имеются.</p></li><li><p>Есть ли возможность задавать ограничения на число одновременных сеансов для локального ключа?<br />Может, использовать защищенную ячейку для учета числа подключений (вызовов GrdLogin)?</p></li></ol>]]></content>
			<author>
				<name><![CDATA[safelog]]></name>
				<uri>https://forum.guardant.ru/user/733/</uri>
			</author>
			<updated>2014-03-13T07:38:02Z</updated>
			<id>https://forum.guardant.ru/post/1915/#p1915</id>
		</entry>
</feed>
