My knowledge base

понедельник, 28 октября 2013 г.

Как посчитать лицензии Microsoft SQL CAL в мультиплексной среде приложений

Предыстория такая. MS SQL Server можно лицензировать по ядрам процессора, а можно приобрести серверную лицензию и обязательно какое-то количество клиентских  лицензий CAL (Client Access Licence). Первый вариант дороже, но проще в расчетах. Второй вариант может быть дешевле, но расчет требуемого количества лицензий CAL может быть запутан и неоднозначен (видимо так Microsoft оставляет за собой возможность обвинить в пиратстве особо хитроумных). Давайте посмотрим подробнее основываясь на:
http://download.microsoft.com/documents/rus/sqlserver/SQL_Server_2012_Licensing_Reference_Guide_RU.pdf  
1. Есть два типа SQL CAL: на пользователя и на устройства. Стоят они одинаково и отличаются только что мы считаем пользователей СУБД или софт, который обращается к СУБД
2. Если ваше приложение использует СУБД напрямую, то приобрести SQL CAL надо для всех пользователей приложения, независимо от того как технически и под какими пользователями реализуется доступ к приложению. 
3. Если приложения имеет клиент-серверную архитектуру, то все равно надо приобретать SQL CAL на пользователя для все клиентских частей. Также могут быть варианты, тогда ваше приложение, серверная часть которого использует СУБД SQL Server, использует удаленные клиентские части, которые собирают информацию с других устройств. ВОТ здесь есть спорный момент: надо ли приобретать лицензии на устройства только на сборщиков данных с других устройств или на все устройства, с которых тоже собираются данные.  Давайте почитаем как этот момент описан в официальном руководстве:  



"Термин «мультиплексирование» относится к использованию оборудования или программного обеспечения для объединения подключений, перенаправления информации или сокращения числа устройств, или пользователей, осуществляющих непосредственный доступ к продукту SQL Server или его использование. Мультиплексирование также может в себя включать сокращение числа устройств или пользователей, которыми непосредственно управляет SQL Server.
При лицензировании программного обеспечения SQL Server по модели Server+CAL для пользователей и устройств, которые осуществляют косвенный доступ к данным SQL Server через другое приложение или оборудование, требуются клиентские лицензии SQL Server.
  Мультиплексирование не уменьшает число требуемых лицензий Майкрософт. Пользователи должны иметь соответствующее число лицензий независимо от того, осуществляют они прямое или косвенное подключение к SQL Server.
  Для любого пользователя или устройства, осуществляющего доступ к серверу либо файлам, данным или содержимому, предоставляемым сервером, доступность которого обеспечивается автоматическим процессом, требуются клиентские лицензии SQL Server.
  Число уровней оборудования или программного обеспечения между SQL Server и пользователем или устройством, которые в конечном счете используют его данные, службы или функции, не влияет на число необходимых клиентских лицензий.
  Ручное перемещение данных от сотрудника к сотруднику не требует наличия клиентской лицензии у сотрудника, получающего данные. Например, если сотрудник отправляет версию отчета в формате Microsoft Office Excel другому сотруднику, второму сотруднику не требуется клиентская лицензия (если только этот отчет каким-либо образом не связан с осуществлением доступа к работающему программному обеспечению SQL Server).
Клиентские лицензии SQL Server необходимы для пользователей или устройств, которые непосредствен-но вводят, запрашивают или просматривают данные в базе данных SQL Server. Клиентские лицензии SQL Server также необходимы для пользователей или устройств, которые вводят, запрашивают или просматривают данные в базе данных SQL Server через устройство, формирующее пулы. Сюда относятся пользователи, которые просматривают данные через веб-приложенияили вводят информацию в базу данных через промежуточный продукт.
Когда пользователи активно отправляют данные SQL Server по электронной почте или посредством другой технологии обмена сообщениями, пользователям-получателям клиентская лицензия SQL Server не требуется. При мультиплексировании эти правила не изменяются. Аналогичным образом, для распространения данных в печатной форме наличие клиентских лицензий SQL Server у получателей распечатанных отчетов не требуется. Для пользователей, которые прямо или косвенно получают данные из SQL Server, клиентские лицензии необходимы, но если эти пользователи распечатывают данные и передают их другим пользователям, то для пользователей-получателей клиентская лицензия SQL Server не требуется."
 Ключевой аргумент "Для любого пользователя или устройства, осуществляющего доступ к серверу либо файлам, данным или содержимому, предоставляемым сервером, доступность которого обеспечивается автоматическим процессом, требуются клиентские лицензии SQL Server."  
Давайте представим ситуацию у нас есть датчики (клиентские части - сборщики), которые собирают информацию об окружающей среде (параметрах других устройств). Субъектом является только датчик, а объектами - окружающая среда. Тогда утверждение Microsoft о том, что надо лицензировать объекты, потому что информация о них сохраняется в СУБД кажется абсурдом.
И теперь все становится на свои места. Очевидно, что нужно лицензировать только устройства, которые собирают данные, а не устройства о которых собирают данные.
Другой вариант - считать на ядра. А чтобы снизить стоимость лицензии можно использовать лицензии ISV, если конечно речь идет не о внутренней разработке организации. 

P.S. Не забывайте, что ещё есть свои CAL для Windows CAL - для всех устройств и пользователей подключающихся к Windows Server надо их приобрести.  

Комментариев нет:

Отправить комментарий