Rich Internet application
16.2. Технологии RIA
Рассмотрим, какие технологии создания RIA-приложений существуют на сегодняшний день.
16.2.1. Технологии Adobe
Фирма Adobe последовательно продвигает свои RIA -технологии на базе Flash-платформы и предоставляет полный стек решений и инструментов для создания визуальной и медийной составляющих, а также серверных решений [5]. Flash-плеер доступен на всех основных платформах и во всех основных браузерах. Кроме того, существует версия для мобильных устройств.
Стек технологий Adobe для создания RIA-приложений выглядит, как показано на рис. 16.6.
Источник: Adobe Flash Platform ActionScript reference for RIA development [7]
16.2.1.1. Adobe Flash
Adobe Flash (ранее известная как Macromedia Flash) – мультимедийная платформа, используемая для создания векторной анимации и интерактивных приложений (в том числе, игр), а также для интеграции видеороликов в веб-страницы [8].
Разработка Flash была начата компанией FutureWave, создавшей пакет анимации FutureSplash Animator. В 1996 году FutureWave была приобретена компанией Macromedia, которая переименовала FutureSplash Animator в Flash. Под этим наименованием платформа продолжает развиваться и поныне (хотя после того, как в 2005 году компания Macromedia была поглощена Adobe, Macromedia Flash стал официально называться Adobe Flash ).
Adobe Flash позволяет работать с векторной, растровой и ограниченно с трехмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. Для КПК и других мобильных устройств выпущена специальная "облегченная" версия платформы Flash Lite, чья функциональность ограничена в расчете на возможности мобильных операционных систем и их аппаратных показателей.
В качестве основных средств разработки используются пакеты Adobe Flash Professional и Adobe Flash Builder 4, позволяющие создавать интерактивные приложения (в том числе, веб-приложения, игры и мультфильмы) (рис. 16.7).
Стандартным расширением для скомпилированных Flash-файлов (анимации, игр и интерактивных приложений) является SWF (Shockwave Flash или Small Web Format). Видеоролики в формате Flash представляют собой файлы с расширением FLV (при этом Flash в данном случае используется только как контейнер для видеозаписи). Расширение FLA соответствует формату рабочих файлов в среде разработки.
Flash-контент воспроизводится с помощью целого ряда программных средств, но доминирующее положение на рынке занимает официальный Adobe Flash Player, распространяемый в качестве бесплатного плагина для большинства современных браузеров. Также SWF-файлы можно просматривать с помощью различных свободных плееров, например, Gnash или swfdec. FLV-файлы воспроизводятся через Adobe Flash Player или через мультильтимедийные проигрыватели, такие как Quicktime и Windows Media Player, при наличии соответствующих плагинов.
В основе Flash лежит векторный морфинг, то есть плавное "перетекание" одного ключевого кадра в другой. Это позволяет делать сложные мультипликационные сцены, задавая лишь несколько ключевых кадров для каждого персонажа.
Flash использует язык программирования ActionScript, основанный на ECMAScript.
Основной недостаток Flash-приложений – чрезмерная требовательность к ресурсам процессора. Недостаточная мощность компьютера может повлиять на производительность операционной системы в целом, либо привести к искажению результатов работы Flash-приложения, связанных с отображением анимации или подсчетом времени. Иногда это связано с недостатками программного обеспечения отвечающего за обработку Flash-компонентов, либо низким качеством самого Flash-приложения.
Другой важный недостаток заключается в том, что не всегда есть возможность запустить Flash-приложение, либо она связана с некоторыми трудностями (например, необходимо установить плагин или обновить его до последней версии). Некоторые пользователи (или системные администраторы в рамках целой сети) отключают в настройках браузера возможность загружать контент, обрабатываемый плагинами или загружаемый во фреймах в целях информационной безопасности (в связи с возможной угрозой со стороны контента, например, перехват буфера обмена), экономии системных ресурсов, или для избавления от надоевшей рекламы.
Это делает технологию в целом ненадежной также для разработчиков, которым никто не гарантирует, что веб-приложение на основе Flash будет вообще воспроизведено. Поэтому Flash, в основном, используется для написания игр, небольших полуинтерактивных анимаций и для красиво оформленной рекламы, то есть в сфере развлечений и дизайна. Для серьезных веб-приложений, где взаимодействие с пользователем должно быть без ущерба красоте, обычно используется JavaScript, либо вообще не используются никакие технологии кроме тех, что 100 % работают (HTML, CGI).
В Интернете можно найти сайты, полностью оформленные в виде Flash-приложения (весь контент, а также элементы навигации). Обычно это сайты, посвященные играм, дизайнерские студии, личные странички и прочие сайты, целью которых является поразить посетителя красотой и необычностью реализации. Крупные порталы и информационные ресурсы стараются избегать использования Flash (за исключением вставки рекламных баннеров, невозможность вывода которых не вызывает неудобств для пользователей).
Использование Flash для размещения текстовой информации препятствует ее индексированию поисковыми системами. Однако существует множество способов решить эту проблему.
16.2.1.2. Adobe Flex
Adobe Flex также позволяет разрабатывать приложения на базе Flash-платформы, но без применения временной шкалы [5]. Вместо этого появляется язык разметки MXML, дающий возможность в декларативной форме задавать изменения состояний и переходы между ними. Adobe Flex предназначен исключительно для разработчиков. С его помощью создаются сложные интернет-приложения для бизнес-задач и для повседневного применения. Вся разработка во Flex ориентирована на применение готового набора расширяемых компонентов, подходящих почти для всех задач. CSS позволяет гибко настраивать внешний вид, как отдельных компонентов, так и всего приложения. Связывание данных помогает отображать измененную информацию практически без единой строки кода.
Flex приложение может компилироваться на сервере (для этого потребуется mod_flex.so или mod_flex.dll в зависимости от ОС и веб-сервера), а может – из IDE или непосредственно из командной строки с помощью компилятора mxmlc (начиная с Flex 2). Как и во Flash, результатом является файл swf, исполняемый Flash Player [9].
Принцип работы Flex показан на рис. 16.8 [10].
Flex – это большой набор классов (Flex SDK), содержащий многие не вошедшие во Flash компоненты. Достоинства Flex тесно связаны с его спецификой, MXML. Например, Flex компоненты для построения графиков сделаны удобными для использования и выглядят очень приемлемо для использования "как есть".
Основными преимуществами технологии Flex являются [4]:
- быстрый цикл освоения и разработки;
- развитое community;
- много учебных материалов и документации;
- интеграция с дизайнерскими инструментами от Adobe;
- надежная простая и эффективная платформа.
Основными недостатками технологии Flex являются [4]:
- предрассудок "Flex это для мультиков", несмотря на надуманность и не серьезность одна из очень серьезных проблем;
- существенные (по сравнению с Java) ограничения "песочницы";
- многие разработчики акцентированы на визуализации, как следствие плохой серверный код.
Бесплатный инструментарий Adobe Flex SDK предлагается с июня 2006 г. Он содержит все необходимое для построения эффективных Flex-программ, включая компилятор MXML и библиотеки ActionScript 3.0.
Kомпания Adobe решила открыть исходный код среды Flex к концу 2007 года и начать распространение этого продукта на условиях Mozilla Public License (MPL).
Интегрированная среда разработки Flex Builder 3, которая обеспечивает более высокую производительность, создана на свободно распространяемой платформе разработки Eclipse. Поскольку многие разработчики уже используют Eclipse при программировании на Java, Flex Builder 3 предоставляет им знакомую среду для создания и Java-приложений, и полнофункциональных клиентов (рис. 16.9).
Источник: Adobe Flex Builder 3 [11]
Кроме того, возможна разработка Flex (ActionScript 3) проектов с помощью средств OpenSource – в частности, FlashDevelop (Windows), axdt, flex2ant (оба последних средства являются плагинами Eclipse и кроссплатформенны, однако по удобству работы с ними значительно уступают FlashDevelop).
Flex 2, помимо скорости разработки, предоставляет полные мультимедийные возможности платформы Flash: включая потоковое видео, звук (в том числе и программный), бинарные сокеты и большое число прочих новых возможностей ActionScript 3.
Благодаря Flex 2, веб-сервисы могут использоваться для связи с сервером при частом обращении к данным при небольшой полезной нагрузке. Для более ресурсоемких приложений Adobe предлагает программное обеспечение Flex Data Services 2 Express, которое может поддерживать связь между источником данных и уровнем представления. Flex Data Services 2 способен передавать данные с сервера на клиент. Серверный компонент может, например, извлечь данные из серверного приложения SAP и переслать их клиенту. Теперь функции Flex Presentation Server встроены в Flex Data Services.
Еще одно неоспоримое достоинство технологии Flex, тесно связанное с достоинствами ActionScript 3 – это возможность OpenSource разработки Flash-проектов без использования Adobe Flash IDE, с помощью "чистого" программирования. При этом Flash-разработка становится принципиально доступна в том числе и на платформе Linux.