Для разработки web-приложений на базе Native Client выпущен специальный SDK
14 мая 2010 года
Компания Google выпустила предварительную версию SDK для упрощения разработки полноценных web-приложений, функционирующих в среде Native Client, позволяющей выполнять в окне web-браузера обычные бинарные программы, ограниченные в специальном изолированном окружении. Изначально Native Client был создан для адаптации существующих программ для работы в браузере, но теперь продвигается и как платформа для создания универсальных web-приложений, написанных на языке C/C++ и использующих для выполнения свойственных web-приложениям действий специальный API.
По заявлению разработчиков, web-приложения, созданные с использованием технологии Native Client, значительно превосходят по производительности программы на JavaScript и Flash, являясь при этом более надежными и безопасными. В отличие от традиционных web-приложений, в программах для Native Client могут без потери производительности выполняться действия, требующие интенсивных вычислений, производиться рендеринг 2D/3D-графики и проигрывание звука, организовываться более полное взаимодействие с клавиатурой и мышью.
В качестве примера web-приложений на базе Native Client в презентации приводятся программы для обработки фотографий и редактирования видео в online. Поддерживается создание комбинированных приложений, например, для web-сервиса по обработке видео, предлагается перенести с серверной стороны базовый костяк функций обработки данных в виде модуля Native Client, для клиентской части задействовать HTML/JavaScript и организовать отправку на сервер изменений или готовых результатов работы.
SDK базируется на GCC и стандартных инструментах разработки GNU. Пакет доступен для платформ Linux, Windows и MacOS X. Для тестирования созданных в SDK программ требуется последняя экспериментальная версия плагина Native Client, которая пока доступна только для браузера Chromium.
Тестирование производительности показало, что собранные с использованием Native Client приложения выполняются в виртуальном окружении внутри браузера всего на 3% медленнее по сравнению с производительностью работы немодифицированных версий тех же программ. Инструкции при работе программы в Native Client не преобразуются в байткод виртуальной машины, а выполняются как есть, с максимально возможной производительностью. Безопасность в Native Client достигается через изоляцию системных вызовов и прерываний - разрешено выполнение 46 системных вызовов, остальное либо запрещено, либо эмулируется специальным runtime-кодом. Сетевые и дисковые функции, а также операции для работы с памятью, обрабатываются специальной подсистемой. Обращение за пределы дозволенных областей памяти блокируются через задействования системы обработки исключений CPU.
В настоящее время Native Client поддерживает платформы x86 и ARM, дополнительно ведется работа по использованию для сборки программ системы LLVM, что позволит разработчикам создавать универсальные приложения, без пересборки работающие на всех поддерживаемых аппаратных архитектурах (программа будет поставляться в виде байткода, который будет транслироваться на лету в машинный код целевой платформы средствами LLVM).
С точки зрения разработчика окружение Native Client выглядит как небольшая операционная система со своим, основанным на GCC, инструментарием для кросс-компиляции, частичной поддержкой POSIX и базовым мультимедийным API, который можно использовать для работы с аудио и видео, обрабатываться события от мыши и клавиатуры. Также доступен ряд свойственных web-приложениям функций, таких как загрузка внешней страницы. В этом плане Native Client позволяет организовать выполнение тех же функций, что может обычное web-приложение на JavaScript. Клиентская часть Native Client состоит из универсального плагина, который поддерживает браузеры Firefox, Safari, Opera и Google Chrome на платформах Linux, Mac OS X и Windows.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.