Для нужд дистрибуции/обновления по интернету созданных приложений в состав SkyEngine2 входит специальный компонент – SkyUpdate (сокращенно SkyUD). SkyUD реализует гибридную парадигму распространения информации: в системе используются как центральный сервер (или группа серверов, для повышения надёжности), так и p2p-механизм скачивания (протокол, используемый SkyUD является полностью открытым). Такое решение позволяет обслуживать большое кол-во клиентов (с характерной пиковой нагрузкой в момент выхода обновлений) с минимальными затратами: один сервер может обслуживать от 2-х тысяч до миллиона одновременно скачивающих клиентов (о преимуществах данного решения имеется отдельная статья).
В состав SkyUD входят следующие компоненты:
- SkyUD Image – утилита для генерации метафайлов с информацией об образах приложений
- SkyUD Sign – утилита для создания сертификатов и подписей образов приложений
- SkyUD Server – сервер для ОС Linux, выступающий первичным источником образов и единой точкой обмена информацией о других клиентах, скачивающих данный образ
- SkyUD Client – библиотека для скачивания дистрибутивов/обновлений
Использование SkyUD предполагает наличие у приложения специальной запускающей программы (при её создании используется SkyUD Client), которая занимается скачиванием/обновлением приложения. Сама эта программа скачивается/обновляется отдельно с использованием простейших механизмов, т.к. имеет крайне незначительный объём: менее 600КБ в простейших случаях и до 768-1024КБ в более сложных.
При разработке SkyUD рассматривались 3 основных варианта использования запускающей программы:
- Простейшая запускающая программа
В задачу такого приложения входит только проверка целостности образа/наличия обновлений (при необходимости – скачивание требуемых данных) и передача управления основному приложению. В качестве источника обновлений для запускающего приложения и метафайлов с информацией об образе приложения обычно используется web-сервер. - Запускающая программа, отвечающая за настройку параметров основного приложения
От предыдущего варианта отличается тем, что вместо немедленной передачи управления основной программе позволяет настраивать параметры основной программы (например разрешение экрана, качество рендеринга и т.п.). Также такая программа может иметь возможность бенчмаркинга/автоматического подбора параметров основного приложения путём запуска последнего в режиме тестирования производительности (при автоматическом подборе параметров может потребоваться несколько запусков). - Запускающая программа для МО/ММО игр
Т.к. подобные игры обычно содержат процедуру авторизации пользователя, а также другие специфические вещи (вроде управления аккаунтом, оплаты, специального интерфейса обращения в службу тех. поддержи и т.д.), то предполагается что такие механизмы будут вынесены именно в запускающую программу. В таком случае запускающая программа устанавливает безопасное соединение (в том числе с подтверждением подлинности сервера) с логин-сервером игры, а значит его можно использовать вместо web-сервера, как источник обновлений для запускающего приложения и метафайлов с информацией об образе приложения.