The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Для разработки web-приложений на базе Native Client выпущен специальный SDK

14.05.2010 12:54

Компания 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.

  1. Главная ссылка к новости (http://blog.chromium.org/2010/...)
  2. OpenNews: Native Client портирован для архитектур ARM и x86-64
  3. OpenNews: Библиотека Qt портирована для работы внутри web-браузера
  4. OpenNews: Работа по интеграции языка Python в web-браузеры
  5. OpenNews: Компания Google выпустила средство для выполнения бинарных программ в браузере
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/26593-NativeClient
Ключевые слова: NativeClient
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (17) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ДяДя (?), 13:43, 14/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >Firefox, Safari, Opera и Google Chrome на платформах Linux, Mac OS X и Windows.

    empire strikes back

     
     
  • 2.6, cl (?), 17:56, 14/05/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >программа будет поставляться в виде байткода,
    >который будет транслироваться на лету в машинный код целевой
    >платформы средствами LLVM

    Самоделкины, блин :)

     
  • 2.18, andr.ru (?), 09:52, 24/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Обращение за пределы дозволенных областей памяти блокируются через задействования системы
    > обработки исключений CPU

    Как будто это мешает хакерам таки обращаться куда не следует и запускать код на уже существующих системах.

    Непонятно кстати, а зачем тут браузер? Можно и так выполнять нативный код, чего окна в окнах городить?

    За успех инструментария в итоге будет отвечать библиотека, эта самая SDK. Сделают как у жабы кучу готовых кубиков-лего, чтобы экономить на зарплате программистов за счёт эффективности - будет успех.

    Одно хорошо - С++ гораздо лучше жабы, может затухнет это гауно от здоровой конкуренции, да ещё от жадности новых хозяев.

     

  • 1.2, Pilat (ok), 14:39, 14/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Java'е нанесён удар в спину...
    Чем-то система стала похожа на гипервизор.
     
     
  • 2.13, User294 (ok), 16:00, 15/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно. Этакий виртуальный контейнер. Правда вот запускать ЭТО - еще более ссыкотно чем яву. Пардон, а оно системные вызовы может делать. Не дай боже где-то бага в этой конструкции, ОС или там что еще - pwnage обеспечен. Да и как бы вопрос еще какие применения этой технологии хацкеры найдут. Скажем, а сокеты там создавать можно или что-то в этом духе? Если да - ботнеты гарантированы, при том даже не маскирующиеся особо и выполняющиеся официально :-) А даже если и нельзя - то уж хотя-бы собрать из лабухов заходящих на ваш сайт сеть для распределенных вычислений - весьма заманчиво смотрится :-).
     

  • 1.3, Аноним (-), 15:31, 14/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    А что если Google отказаться от браузера совсем, а на его место поставить гипервизор с ОС с минимальным функционалом? А то все тащить в распухающий от всяких дополнений браузер, изначально предусмотренный для отображения html - страниц, выглядит как-то неэффективно.
     
     
  • 2.7, XoRe (ok), 17:56, 14/05/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >А что если Google отказаться от браузера совсем, а на его место
    >поставить гипервизор с ОС с минимальным функционалом? А то все тащить
    >в распухающий от всяких дополнений браузер, изначально предусмотренный для отображения html
    >- страниц, выглядит как-то неэффективно.

    Это оно и есть.
    Ну или его предшественник - можно будет сделать легкий браузер, который будет запускать все эти приблуды.

     
  • 2.14, User294 (ok), 16:01, 15/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, хром ос - это браузер + минимальная ОС :) в общем те еще велосипедисты этот гугл - опробуют все варианты чтобы вогнать всех покрепче в зависимость от веба (и себя стало быть).
     

  • 1.4, anthonio (ok), 16:10, 14/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Непонятно:
    >Для тестирования созданных в SDK программ требуется последняя экспериментальная версия плагина Native Client, которая пока доступна только для браузера Chromium.
    >Клиентская часть Native Client состоит из универсального плагина, который поддерживает браузеры Firefox, Safari, Opera и Google Chrome на платформах Linux, Mac OS X и Windows.

    Клиент доступен для Chromium, но поддерживает Firefox, Safari, Opera и Google Chrome :)

     
  • 1.5, Имя (?), 16:12, 14/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Также доступен ряд свойственных web-приложениям функций, таких как загрузка внешней страницы.

    это что за такая web-функция? имеет ввиду обычный window.XmlHttpRequest ?

    ...или прямотаки: загрузка ЛЮБОЙ внешней страниццы ? если последнее -- это это не безопасно вообще то... (потомучто Cross-site request forgery)

     
     
  • 2.15, User294 (ok), 16:25, 15/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >не безопасно вообще то... (потомучто Cross-site request forgery)

    А DDoS атаку силами хомячков усилнно грузящих страницы ЧУЖОГО сервера - не хотите? Это повеселее CSRF-ов будет.

     

  • 1.8, filosofem (ok), 18:39, 14/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Они таки хотят свой велосипед - ну и флаг им в руки. Один плюс, что опенсорс. Посмотрим, что получится: новый ActiveX, Java, XPCOM, или флэш позорный.
     
  • 1.10, Iv946n (?), 01:59, 15/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > полноценных web-приложений, функционирующих в среде Native Client

    Я один вижу здесь противоречие?

     
     
  • 2.11, Pilat (ok), 02:07, 15/05/2010 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >> полноценных web-приложений, функционирующих в среде Native Client
    >
    >Я один вижу здесь противоречие?

    Что такое, с точки зрения гугля, полноценное web приложение? Правильный ответ: приложение, в котором можно показать неотключаемую рекламу. Вот это и пытаются создать.

     

  • 1.12, anonymous (??), 09:40, 15/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Технология рапространения spyware, привязанная к вендору процессоров? Т.е. они высказываются в духе --- "Intel постабильнее будет, чем Microsoft"?
     
     
  • 2.16, User294 (ok), 16:59, 15/05/2010 [^] [^^] [^^^] [ответить]  
  • +/
    С LLVM будет отвязано от производителя процессоров :). Кстати УЖЕ появились кроссплатформенные трояны - писаные на яве. При запуске они пытаются нащупать контактлист юзера в какомнить IM клиенте и расспамить себя же по всем контактам юзера (как они это делают - хз, может баг какой-то в JVM юзают). В итоге - в аську периодически сыпется спам от этого троянца. Чем нас гугля порадует в этом плане? :)
     

  • 1.17, злыдень (?), 22:40, 18/05/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Те же, только в профиль и для всех :) Как говорится, новое - это хорошо забытое старое.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру