Rich Internet Application ( также известное как rich web application , [1] RIA или устанавливаемое Internet application ) — это веб-приложение , которое имеет многие характеристики программного обеспечения настольных приложений . Концепция тесно связана с одностраничным приложением и может предоставлять пользователю интерактивные функции, такие как перетаскивание , фоновое меню, редактирование WYSIWYG и т. д. Концепция была впервые представлена в 2002 году компанией Macromedia для описания продукта Macromedia Flash MX (который позже стал Adobe Flash ). [2] На протяжении 2000-х годов этот термин был обобщен для описания приложений на основе браузера, разработанных с использованием других конкурирующих технологий подключаемых модулей браузера, включая апплеты Java , Microsoft Silverlight .
С прекращением поддержки интерфейсов плагинов браузера и переходом на стандартные технологии HTML5 на смену насыщенным интернет-приложениям пришли веб-приложения JavaScript , включая одностраничные приложения и прогрессивные веб-приложения .
Термины «Rich Internet Application» и «Rich Client» были введены в официальном документе от марта 2002 года компанией Macromedia (теперь Adobe ) [2] , хотя эта концепция существовала уже несколько лет назад под такими названиями, как: « Remote Scripting » от Microsoft в апреле 1999 года [3] и «X Internet» от Forrester Research в октябре 2000 года [4].
В ноябре 2011 года было сделано несколько заявлений, которые продемонстрировали снижение спроса на архитектуры Rich Internet Application, основанные на подключаемых модулях браузера, в пользу альтернатив HTML5 . Adobe объявила, что Flash больше не будет выпускаться для мобильных устройств [5] или ТВ [6] (переориентировав свои усилия на Adobe AIR ). Эксперты усомнились в его дальнейшей актуальности даже на настольных компьютерах [7] и описали его как «начало конца». [8] Research In Motion (RIM) объявила, что продолжит разработку Flash для PlayBook , решение, которое некоторые комментаторы подвергли сомнению. [9] Ходили слухи, что Microsoft собирается отказаться от Silverlight после предстоящего выпуска версии 5 — позже так и оказалось. [10] [11] Сочетание этих заявлений заставило некоторых провозгласить его «концом линейки подключаемых модулей браузера». [12]
Многофункциональное мобильное приложение (RMA) — это мобильное приложение , которое наследует многочисленные свойства веб-приложений и обладает несколькими явными свойствами, такими как контекстная осведомленность и повсеместность. [13] [14] [2] RMA — это «энергоэффективные, многоуровневые, онлайновые мобильные приложения, возникшие в результате конвергенции мобильных облачных вычислений , будущего веба и будущих коммуникационных технологий, призванные обеспечить богатый пользовательский опыт с помощью высокой функциональности, иммерсивного взаимодействия и четкого отклика в безопасной беспроводной среде, обеспечивая при этом контекстную осведомленность, удобство использования в автономном режиме, портативность и повсеместность данных». [15]
После успешного развертывания веб-приложений на настольных компьютерах и растущей популярности мобильных устройств исследователи перенесли эти расширенные функции веб-приложений на платформу смартфонов. NTT DoCoMo из Японии приняла Adobe Flash Lite в 2003 году для улучшения функциональности мобильных приложений. В 2008 году Google представила Google Gears на устройствах Windows Mobile 5 и 6 для поддержки платформенно-нейтральных мобильных приложений в автономном режиме. Google Gears для мобильных устройств — это расширение мобильного браузера для разработки веб-приложений, дополненное отдельным, устанавливаемым пользователем дополнением. Эти приложения могут выполняться внутри мобильного устройства с помощью веб-браузера независимо от архитектуры, операционной системы и технологии. В апреле 2008 года Microsoft представила Microsoft Silverlight Mobile для разработки привлекательных интерактивных пользовательских интерфейсов для мобильных устройств. Silverlight — это подключаемый модуль .NET, совместимый с несколькими мобильными браузерами, который запускает мобильные приложения с поддержкой Silverlight. Android разместил подключаемый модуль Google Gear в браузере Google Chrome Lite для улучшения взаимодействия конечных пользователей Android.
Adobe Flash манипулирует векторной и растровой графикой для создания анимации текста, рисунков и неподвижных изображений. Он поддерживает двунаправленную потоковую передачу аудио и видео, а также может захватывать пользовательский ввод с помощью мыши, клавиатуры, микрофона и камеры. Flash содержит объектно-ориентированный язык ActionScript и поддерживает автоматизацию с помощью языка JavaScript Flash (JSFL). Flash - контент может отображаться на различных компьютерных системах и устройствах с помощью Adobe Flash Player , который доступен бесплатно для обычных веб-браузеров, некоторых мобильных телефонов и нескольких других электронных устройств (с использованием Flash Lite ). [16]
Apache Flex, ранее Adobe Flex, — это комплект средств разработки программного обеспечения (SDK) для разработки и развертывания кроссплатформенных RIA на базе платформы Adobe Flash . Изначально разработанный Macromedia , а затем приобретенный Adobe Systems , Flex был передан Adobe в дар Apache Software Foundation в 2011 году.
Java-апплеты использовались для создания интерактивных визуализаций и представления видео, трехмерных объектов и других медиа. Java-апплеты подходили для сложных визуализаций, которые требовали значительных усилий по программированию на языке высокого уровня или связи между апплетом и исходным сервером.
JavaFX — это программная платформа для создания и доставки RIA, которые могут работать на самых разных подключенных устройствах. Текущая версия (JavaFX 12, 11 марта 2019 г.) позволяет создавать приложения для настольных компьютеров, браузеров и мобильных телефонов и поставляется с поддержкой 3D. Планируются ТВ-приставки, игровые консоли, проигрыватели Blu-ray и другие платформы. Java FX работает как подключаемый Java-апплет или через Webstart . [17]
Silverlight был предложен Microsoft в качестве еще одной запатентованной альтернативы. Технология не получила широкого распространения и, например, не поддерживается многими мобильными устройствами. Некоторые примеры применения включают потоковую передачу видео для таких мероприятий, как летние Олимпийские игры 2008 года в Пекине [18] , зимние Олимпийские игры 2010 года в Ванкувере [19] и съезды 2008 года обеих основных политических партий в Соединенных Штатах. [20] Silverlight также использовался Netflix для его мгновенного потокового видеосервиса. [21] Silverlight больше не находится в стадии активной разработки и не поддерживается в Microsoft Edge , последнем браузере Microsoft.
Gears , ранее известный как Google Gears , — это устаревшая служебная программа, предоставляющая автономное хранилище и другие дополнительные функции для веб-браузеров, включая Google Chrome . Gears был упразднен в пользу стандартизированных методов HTML5 . Gears был удален из Google Chrome 12. [22]
RIA могут использовать XForms для улучшения своей функциональности. [ необходима цитата ] [ оригинальное исследование? ] Использование XML и XSLT [23] вместе с некоторым количеством XHTML , CSS и JavaScript также может быть использовано для создания более насыщенных клиентских компонентов пользовательского интерфейса, таких как таблицы данных, которые могут быть переработаны локально на клиенте без обращения к серверу. Браузеры Mozilla и Internet Explorer поддерживают это.
RIA создают проблемы для индексации поисковыми системами , но контент Adobe Flash теперь, по крайней мере, частично индексируется. [24]
Безопасность может быть улучшена по сравнению с прикладным программным обеспечением (например, за счет использования песочниц и автоматических обновлений), но сами расширения остаются уязвимыми , а доступ часто намного больше, чем у собственных веб-приложений . В целях безопасности большинство RIA запускают свои клиентские части в специальной изолированной области клиентского рабочего стола, называемой песочницей. Песочница ограничивает видимость и доступ к файловой системе и операционной системе на клиенте для сервера приложений на другой стороне соединения. Такой подход позволяет клиентской системе обрабатывать локальные действия, переформатирование и т. д., тем самым снижая объем и частоту клиент-серверного трафика, особенно по сравнению с реализациями клиент-сервер, построенными вокруг так называемых тонких клиентов. [25]