Десктопная сборка и что именно она отправляет
WebCAE Desktop запускает нативное ядро на вашей машине, работает офлайн с подписанным файлом лицензии и ставится на Windows без прав администратора. Он также отправляет немного телеметрии — вот полный список полей и переключатель, который её выключает.
Большая часть опубликованного в этом месяце — мортарный контакт, гексаэдральные зоны, решатель на Accelerate, топологическая оптимизация — работает в десктопной сборке. Дело не в порядке выпуска. У вкладки браузера один поток и потолок памяти, а у нативной сборки — вся машина. Поэтому стоит описать, что такое десктопное приложение на самом деле, и быть точным насчёт единственного, что оно отправляет по сети.
Что это
Приложение на Tauri, оборачивающее то самое нативное ядро на C++, на которое мы сами и ориентируемся при разработке: геометрическое ядро, генератор сеток и конечно-элементный решатель, собранные под вашу архитектуру, а не под WebAssembly. На Apple Silicon это означает доступ к векторным блокам и ко всем производительным ядрам — отсюда и двадцатикратное ускорение прямого решателя.
Установщики — исполняемый файл для Windows и образ диска для macOS — сразу для Apple Silicon и Intel, подписанный и заверенный у Apple вместе со всеми вложенными исполняемыми модулями. Установщик Windows кладёт приложение в профиль пользователя и не требует прав администратора, показывает лицензионное соглашение первым шагом и сам проверяет наличие среды выполнения Visual C++. Обновления доставляются встроенным механизмом.
Лицензирование, работающее офлайн
Есть четырнадцатидневный пробный период, стартующий при первом запуске. Его даты хранятся зашифрованными с солью на основе идентификатора машины и с монотонной отметкой последнего запуска — так что перевод часов назад его не продлевает.
Купленная лицензия — это привязанный к устройству файл, подписанный Ed25519 и проверяемый приложением локально. Чтобы начать сеанс, обращение к сети не нужно, и это существенно для тех, у кого на расчётной рабочей станции нет общего доступа в интернет. Для остальных доступна онлайн-активация через веб-кабинет. Идентификатор машины выводится из устойчивых аппаратных признаков, хешируется и показывается в привычном сгруппированном виде — сами аппаратные данные машину не покидают, уходит только хеш.
Проверка лицензии стоит на границе нативного решателя и генератора сеток, а не в интерфейсе: фронтенд знает, какие у вас права, но не может выдать себе право считать.
Телеметрия целиком
Приложение сообщает небольшое событие при старте пробного периода, при активации лицензии и при запуске. Полное содержимое отправки: хешированный идентификатор машины, какое из трёх это событие, статус и уровень лицензии, идентификатор клиента при активной лицензии, платформа, число оставшихся дней и версия приложения. Это весь список. Ни файлов проектов, ни геометрии, ни названий моделей, ни путей к файлам, ни персональных данных — а браузерная версия не отправляет вообще ничего.
Основание обработки — законный интерес по ст. 6(1)(f) GDPR, и на вкладке «Конфиденциальность» в настройках есть переключатель, который отключает отправку. Отказ проверяется первой же строкой пути отправки, так что запрос даже не собирается, не то что уходит. Если машина офлайн, событие не теряется и ничего не блокирует: оно ждёт единственного уведомления о появлении сети и отправляется один раз, а сетевые ошибки гасятся молча, а не всплывают тревожным сообщением о том, что вас не касается.
Лицензии компонентов, на которых всё построено
Вкладка «О программе» содержит уведомления, которых эти библиотеки от нас требуют: OpenCASCADE и Netgen под LGPL с соответствующими исключениями и отметкой о наших изменениях, FreeType под собственной лицензией, MFEM под BSD. Обязательства открытых лицензий — часть выпуска программ, и мы предпочитаем их показывать, а не закапывать.
Браузерная версия никуда не денется. Она остаётся самым быстрым способом открыть STEP и получить поле напряжений, ничего не устанавливая, и всё, что может работать там, там и будет. Но когда возможность требует настоящей машины — двадцатиминутный контактный расчёт, сборка из восьмидесяти восьми тел, пятьдесят итераций оптимизации, — мы предпочтём выпустить её на десктопе и сказать об этом прямо, а не делать вид, что вкладка справится.