Rich Internet Applications

Mar 13, 2008 21:27

RIA уже давно закрепились на просторах всемирной сети. Всевозможные java-апплеты, приложения ASP.NET или ActiveX Controls имеют полное право называться "Rich Internet Applications". Однако, в последнее время намечается довольно сильный рывок в области создания подобных приложений. Причем, в конкуренцию почти одновременно вступили сразу несколько мастодонтов: Microsoft, Adobe, Google, Sun Microsystems...

RIA (Rich Internet Applications) - это веб-приложения, обладающие чертами и функциональностью традиционных настольных приложений. RIA предоставляют пользовательский интерфейс на стороне веб-клиента, но основные данные, с которыми работает пользователь, хранятся на сервере приложения. Такая технология позволяет запускать RIA в веб-браузере, не требуя установки приложения, а также проводить обновления автоматически.

RIA-приложения разрабатываются на интерпретируемых языках и запускаются в безопасной среде, так называемой, "sandbox" ("песочнице"). Sandbox'ы дают приложениям ограниченный доступ к ресурсам системы, поэтому угроза нанесения вреда компьютеру пользователя, или, не дай Бог, занесения вируса, минимальна.

Достоинств у RIA много, но примерно столько же и недостатков:
  •  Минимальная интеграция между RIA-технологиями разных производителей.
  • Зачастую, невозможность быть проиндексированными поисковыми движками.
  • Нарушение "Парадигмы веб-страниц", которая гласит, что веб-приложение состоит из нескольких веб-страниц, каждая из которых требует полной загрузки на компьютер пользователя, инициированной HTTP-запросом GET. У RIA же все наоборот: приложение, как правило, располагается на одной веб-странице и асинхронно общается с сервером.
  • Высокие требования к веб-браузеру клиента, а также, как правило, необходимость установки environment'а на компьютер пользователя.
  • Сложность разработки: с одной стороны, RIA предоставляют программисту свободу вкупе с высокоуровневым языком программирования, а с другой стороны, эта свобода часто влечет за собой обилие багов и ненужных велосипедов.

Ниже приведены основные технологии RIA, существующие на сегодняшний день.

AJAX (Asynchronous JavaScript and XML) - технология, заключающаяся в фоновом обмене данными между браузером и веб-сервером. При этом веб-страница не перегружается полностью. Это достигается засчет использования технологии DHTML, запроса XMLHTTPRequest, или JsHTTPRequest. Хорошим примером AJAX служит очень любимый мною Google Suggest (выпадающий список похожих результатов при вводе запроса). AJAX нельзя в полной мере отнести к классу RIA, однако он зачастую служит их основой и является их основным конкурентом. В 2006 году Google выпустила Google Web Toolkit (GWT) для разработки AJAX RIA. GWT позволяет писать логику приложения на Java, а затем с помощью транслятора переводить ее в JavaScript, "понимаемый" почти всеми веб-браузерами.

Adobe Flex - технология, основанная на Flash и MXML, позволяющая создавать пользовательские интерфейсы средствами Flex SDK и компилировать их в стандартные .swf файлы. Огромным и неоспоримым плюсом этой технологии является ее практически полная кроссплатформенность: Flash Player сейчас поддерживается каждым первым веб-браузером. Flex SDK является абсолютно бесплатным, однако за Flex Builder, среду разработки, основанную на Eclipse, придется выложить определенную сумму. Сразу после релиза Flex 3 компания Adobe открыла исходники Flex SDK.

Microsoft Silverlight - составная часть Windows Presentation Foundation (WPF), позволяющая разработчику создавать RIA. Язык описания интерфейсов основан на XAML. Сама же технология основана на .NET Framework 3.0. Плагин, который необходимо установить на компьютер клиента весит всего около 2 Мб, что, несомненно, является плюсом. Разработчики Mono (open-source реализации .NET под UNIX) тоже подсуетились и разработали аналог - Moonlight - позволяющий запускать приложения Silverlight на других системах.

Java FX - разработанное компанией Sun семейство продуктов, основанных на технологии Java, которые предоставляют возможность создавать как настольные, так и веб-приложения для широкого ряда устройств: мобильных телефонов, коммуникаторов, blu-ray устройств.

В этой статье описаны далеко не все технологии, позволяющие разрабатывать RIA. Также существует множество других, менее известных: Appcelerator, OpenLaszlo, Curl, Rebol и т. д.

flex, ria, ajax, silverlight

Next post
Up