Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lect.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
223.23 Кб
Скачать

4.4 Технологии ria.

Rich Internet application (RIA, «Насыщенное („богатое“) Интернет-приложение») — это приложение, доступное через Интернет, насыщенное функциональностью традиционных настольных приложений, которое предоставляется либо уникальной спецификой браузера, либо через плагин, либо путём «песочницы» (виртуальной машины).

Как правило, приложение RIA:

  • передаёт веб-клиенту необходимую часть пользовательского интерфейса, оставляя большую часть данных (ресурсы программы, данные и пр.) на сервере;

  • запускается в браузере и не требует дополнительной установки ПО;

  • запускается локально в среде безопасности, называемой «песочница» (sandbox).

В настоящее время тремя наиболее распространенными подобными платформами являются Adobe Flash, Java и Microsoft Silverlight с уровнем проникновения 99 %, 80 % и 54 % соответственно (по состоянию на июль 2010 года).

Работа традиционных веб-приложений сконцентрирована вокруг клиент-серверной архитектуры с тонким клиентом. Такой клиент переносит все задачи по обработке информации на сервер, а сам используется лишь для отображения статического контента (в нашем случае HTML). Основной недостаток этого подхода в том, что все взаимодействие с приложением должно обрабатываться сервером, что требует постоянной отправки данных на сервер, ожидания ответа сервера, и загрузки страницы обратно в браузер. При использовании технологии запуска приложений на стороне клиента, RIA могут обойти этот медленный цикл синхронизации за счёт большего взаимодействия с пользователем. Эта разница примерно аналогична разнице между архитектурой с «тонким клиентом» (Thin client) и архитектурой с «толстым клиентом» (Thick client), а также между терминалом и мейнфреймом.

Постепенное развитие стандартов сети Интернет привело к возможности реализовать подобные технологии на практике, однако сложно провести четкую границу между тем, какие именно технологии включают в себя приложения RIA, и какие нет. Но все RIA имеют одну схожую особенность: они включают в себя некую промежуточную часть кода приложения, находящуюся между пользователем и сервером, которую обычно называют «движком клиента». Этот движок загружается в самом начале и в дальнейшем может догружаться по ходу работы приложения. Движок клиента выступает в роли надстройки браузера и обычно отвечает за рендеринг пользовательского интерфейса и взаимодействие с сервером.

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

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

Не требуется установка приложения; обновление и распространение приложения — быстрый и автоматизированный процесс

Пользователи могут использовать приложение на любом компьютере, имеющем соединение с Интернетом, причем неважно, какая операционная система на нём установлена

При работе веб-приложения компьютер пользователя гораздо меньше подвержен вирусному заражению, чем при запуске исполняемых бинарных файлов.

Поскольку RIA используют движок клиента для взаимодействия с пользователем, они:

Богаче. RIA предлагают пользовательский интерфейс, не ограниченный лишь использованием языка HTML, применяемого в стандартных веб-приложениях. Расширенная функциональность позволяет использовать такие возможности пользовательского интерфейса, как drag-and-drop, использование ползунка для изменения данных, а также возможность производить вычисления, которые не отправляются обратно на сервер, а выполняются прямо на машине пользователя (например, ипотечный калькулятор).

Более интерактивные. Интерфейсы RIA более интерактивны, чем стандартные интерфейсы веб-браузеров, которые требуют постоянного взаимодействия с удалённым сервером.

Наиболее сложные приложения RIA предлагают внешний вид и функциональность, близкие к настольным приложениям. Использование движка клиента позволяет добиться и других преимуществ в производительности:

Сбалансированность клиент-сервера. Использование вычислительных ресурсов клиента и сервера лучше сбалансировано. Поэтому сервер не должен быть «рабочей лошадкой», как в традиционных веб-приложениях. Это освобождает вычислительные ресурсы сервера, позволяя обрабатывать большее количество сессий одновременно за счёт одного и того же аппаратного обеспечения.

Асинхронная коммуникация. Движок клиента может взаимодействовать с сервером, не дожидаясь, пока пользователь совершит действие в приложении, нажав на кнопку или ссылку. Это позволяет пользователю просматривать страницу и взаимодействовать с ней асинхронно с помощью коммуникации между движком и сервером. Эта возможность позволяет разработчикам RIA передавать данные между клиентом и сервером без ожидания пользователя. В Google Maps эта техника используется для того, чтобы подгружать прилегающие сегменты карты, прежде чем пользователь пролистает, чтобы их посмотреть.

Adobe Flash (ранее Macromedia Flash), или просто Flash (/flæʃ/, по-русски часто пишут флеш или флэш) — мультимедийная платформа компании Adobe для создания веб-приложений или мультимедийных презентаций. Широко используется для создания рекламных баннеров, анимации, игр, а также воспроизведения на веб-страницах видео- и аудиозаписей.

Платформа включает в себя ряд средств разработки, прежде всего Adobe Flash Professional и Adobe Flash Builder (ранее Adobe Flex Builder); а также программу для воспроизведения flash-контента — Adobe Flash Player, хотя flash-контент умеют воспроизводить и многие плееры сторонних производителей. Например, SWF-файлы можно просматривать с помощью свободных плееров Gnash или swfdec, а FLV-файлы воспроизводятся через мультимедийный проигрыватель Quicktime, и различные проигрыватели в UNIX-подобных системах при наличии соответствующих плагинов.

Adobe Flash позволяет работать с векторной, растровой и ограниченно с трёхмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. Для КПК и других мобильных устройств выпущена специальная «облегчённая» версия платформы Flash Lite, функциональность которой ограничена в расчёте на возможности мобильных устройств и их операционных систем.

Стандартным расширением для скомпилированных flash-файлов (анимации, игр и интерактивных приложений) является .SWF (Shockwave Flash или Small Web Format). Видеоролики в формате Flash представляют собой файлы с расширением FLV или F4V (при этом Flash в данном случае используется только как контейнер для видеозаписи). Расширение FLA соответствует формату рабочих файлов в среде разработки.

Flash Player представляет собой виртуальную машину, на которой выполняется загруженный из Интернета код flash-программы.

В основе анимации во Flash лежит векторный морфинг, то есть плавное «перетекание» одного ключевого кадра в другой. Это позволяет делать сложные мультипликационные сцены, задавая лишь несколько ключевых кадров. Производительность Flash Player при воспроизведении анимации в несколько раз превышает производительность виртуальной машины Javascript в браузерах, поддерживающих предварительный стандарт HTML5, хотя во много раз уступает приложениям, работающим вообще без использования виртуальных машин. Flash использует язык программирования ActionScript, основанный на ECMAScript.

В поддержку проекта и распространение платформы Flash на мобильных устройствах на данный момент выступило 58 компаний, среди которых AMD, ARM, Google, HTC, Intel, Motorola, Nokia, NVIDIA, QNX, Sony Ericsson и др.

Технология векторного морфинга применялась задолго до Flash. В 1986 году была выпущена программа Fantavision, которая использовала эту технологию. В 1991 году на этой технологии была выпущена игра Another World, а двумя годами позже — Flashback.

Разработка Flash была начата компанией FutureWave, создавшей пакет анимации FutureSplash Animator. В 1996 году FutureWave была приобретена компанией Macromedia, которая переименовала FutureSplash Animator в Flash. Под этим наименованием платформа продолжает развиваться и поныне (хотя после того, как в 2005 году компания Macromedia была поглощена Adobe, Macromedia Flash стал официально называться Adobe Flash).

Adobe Flex — технология для создания Rich Internet Applications, основанная на Flash. Flex расширяет базовые возможности Flash, позволяя описывать интерфейс приложения на XML, ускоряя и упрощая процесс разработки насыщенных веб-приложений. Логика приложения пишется на ActionScript 3. Результатом компиляции является файл SWF, предназначенный для выполнения в браузере (на платформе Flash Player) или как самостоятельное приложение (на платформе AIR).

Flex-приложение может компилироваться на сервере (для этого потребуется mod_flex.so или mod_flex.dll в зависимости от ОС и веб-сервера), а может — из IDE или непосредственно из командной строки с помощью компилятора mxmlc (начиная с Flex 2), как и во Flash, результатом является файл swf, исполняемый в Flash Player.

Flex — это большой набор классов, расширяющих возможности Flash. Flex-framework включает возможности локализации, стилизации приложения, разработки модульного приложения, встроенные валидаторы и форматоры текстовых полей — все те инструменты, которые нужны разработчикам приложений, работающих online.

Инструменты создания RIA основаны на flex-framework (Adobe Catalyst, Adobe Flex, Aptana Studio и т. д.). Инструменты для работы с анимацией и графикой используют только базовые возможности flash (поэтому баннеры и медийная реклама делаются без использования flex).

Интегрированная среда разработки Adobe Flash Builder (ранее известна как Flex Builder), которая обеспечивает более высокую производительность, создана на свободно распространяемой платформе разработки Eclipse. Поскольку многие разработчики уже используют Eclipse при программировании на Java, Flex Builder 2 предоставляет им знакомую среду для создания и Java-приложений, и полнофункциональных клиентов.

Flex, помимо скорости разработки, предоставляет полные мультимедийные возможности Flash Platform: включая потоковое мультимедиа, возможность получить доступ к веб-камере и микрофону пользователя, бинарные сокеты, обширные возможности сетевых коммуникаций (HTTP-запросы, веб-сервисы, встроенный формат сериализации AMF), оперирование координатами трехмерного пространства, возможности использования встроенных фильтров (таких как расфокусировка, падающая тень и др.), и написания собственных.

Благодаря Flex, веб-сервисы могут использоваться для связи с сервером при частом обращении к данным при небольшой полезной нагрузке. Для более ресурсоемких приложений Adobe предлагает программное обеспечение Flex Data Services 2 Express, которое может поддерживать связь между источником данных и уровнем представления.

Flex Data Services 2 способен передавать данные с сервера на клиент. Серверный компонент может, например, извлечь данные из серверного приложения SAP и переслать их клиенту. Теперь функции Flex Presentation Server встроены в Flex Data Services.

Ещё одно неоспоримое достоинство технологии Flex, тесно связанное с достоинствами ActionScript 3 — это возможность OpenSource разработки Flash-проектов без использования Adobe Flash Professional, с помощью «чистого» программирования. При этом Flash-разработка становится принципиально доступна в том числе и на Unix-платформах.

Работа flex-framework основана на относительно большом количестве собственного AS3-кода. Для примерной оценки: стандартный набор классов, включаемый по умолчанию в каждое разрабатываемое flex-приложение, занимает более 700 килобайт в итоговом swf-файле. Таким образом, общий объём кода, необходимый для исполнения flex-приложения, заметно увеличивается. В более поздних версиях флеш-плеера реализован механизм, который даёт возможность использовать классы flex, не включая их в каждый отдельный swf. При первом запуске такого swf, флеш-плеер подгрузит необходимые файлы с официального сайта в отведённый для этого кэш флеш-плеера. Однако, подгрузка дополнительных файлов из внешнего источника в некоторых случаях является неприемлемой или нежелательной. В этом случае, компоненты flex-framework должны быть скомпилированы и добавлены непосредственно в swf-файл, что заметно увеличивает размер swf-файла, если речь идёт о "легковесных" приложениях.

Microsoft Silverlight — это программная платформа, включающая в себя плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application). Версия 2.0 добавила поддержку для языков .NET и интеграцию с IDE.

Silverlight предоставляет графическую систему, схожую с Windows Presentation Foundation, и объединяет мультимедиа, графику, анимацию и интерактивность в одной программной платформе. Он был разработан, чтобы работать с XAML и с языками .NET. XAML используется для разметки страниц, использующих векторную графику и анимацию. Текст, содержащийся в приложениях Silverlight, доступен для поисковых систем, так как он не компилируется, а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать виджеты для Windows Sidebar в Windows Vista.

Silverlight может воспроизводить WMV, WMA и MP3 для всех поддерживаемых браузеров, не требуя при этом дополнительных компонентов, таких как Windows Media Player. Так как Windows Media Video 9 является реализацией стандарта SMPTE VC-1, Silverlight поддерживает видео VC-1, только внутри контейнера ASF. Кроме того, лицензионное соглашение говорит, что VC-1 разрешено использовать только в личных, некоммерческих целях («personal and non-commercial use of a consumer»). Silverlight позволяет динамически загружать XML и использовать DOM для взаимодействия с ним так же, как это делается в Ajax. Silverlight содержит объект Downloader, благодаря которому можно скачивать скрипты, медиа файлы и т. д., если это необходимо приложению. Начиная с версии 2.0, логика программы может быть описана в любом из языков .NET, включая динамические языки программирования такие как Iron Ruby и Iron Python, которые в свою очередь исполняются в DLR (Dynamic Language Runtime), а не CLR (Common Language Runtime).

Adobe Integrated Runtime (AIR) — это платформо-независимая среда от компании Adobe для запуска приложений, позволяющая использовать HTML/CSS, Ajax, Adobe Flash и Adobe Flex для переноса веб-приложений (в т. ч. Rich Internet Applications) на настольные ПК. Приложения, написанные с использованием AIR, могут быть запущены на нескольких платформах, для которых Adobe или ее партнеры поставляют среду выполнения, а именно: Microsoft Windows NT (XP, Vista, Win7 и 8), Mac OS X (PowerPC и Intel), Linux (только для 32-битных процессоров x86), QNX и Android. Начиная с версии 2.7.1, компания Adobe отказалась от поддержки AIR для платформы Linux, последней доступной для этой системы версией продукта AIR, является версия 2.6.0.

Приложения могут функционировать без подключения к интернет, отправляя накопленные в процессе работы данные в момент появления связи. Например, программа eBay Desktop работает именно по такому принципу, позволяя продавцам вводить данные о лоте без подключения к интернету.

Ряд крупных компаний используют в своей деятельности решения на базе Adobe AIR. Среди них AOL, NASDAQ, CleVR, Pownce. В Российской Федерации можно упомянуть Яндекс, использующий Adobe Air для разработки приложения «Директ Коммандер», Rambler с кроссплатформенным IM-клиентом «Virtus», Molotok.ru с приложением для загрузки лотов «ALoader».

Соседние файлы в предмете Компьютерная Графика