Adobe AIR: веб-технологии для десктопных решений

7 апрель, 2008 - 11:29Вячеслав Колдовский

Так исторически сложилось, что технологии, используемые при создании веб-приложений и их десктопных собратьев, значительно разнятся. Универсальные подходы (чаще всего основанные на десктопных идеях), приемлемые в обоих случаях, так и не прижились, хотя попытки изобрести их не прекращаются с момента появления первых динамических веб-страниц. И уж совсем никто, пожалуй, не ожидал, что веб-инструменты не только окажутся пригодными для разработки традиционного ПО, но и смогут предложить определенные преимущества.

В ожидании Rich Internet Applications

Adobe AIR веб-технологии для десктопных решений

Который год не утихает шумиха вокруг веб-приложений – многим кажутся привлекательными такие их качества, как доступ отовсюду, где есть браузер и подключение к Интернету, врожденные способности для организации совместной работы, отсутствие потребности в создании локальных резервных копий и, конечно, бесплатность. Действительно, если для десктопного ПО бизнес-модель, предусматривающая безвозмездное его распространение, не лишена недостатков, то для веб-приложений она подходит гораздо лучше, ведь сопутствующие им сервисы и сайты выступают в качестве рекламной площадки, способной во многих случаях приносить вполне адекватные доходы.

Adobe AIR веб-технологии для десктопных решений
Архитектура Adobe AIR

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

Adobe AIR веб-технологии для десктопных решений
Среда AIR полностью управляет процессом установки приложения

Первым значительным шагом в этом направлении стала технология AJAX, призванная в первую очередь сократить количество используемых веб-страниц и переходов между ними, дабы обеспечить «реактивность» интерфейса, характерную для десктопных решений (сегодня AJAX является де-факто стандартом). Затем возникло понимание того, что веб-приложения хоть отчасти должны сохранять свою функциональность при работе в офлайне – речь должна идти как минимум о локальном хранении файлов (и прозрачной синхронизации), а также предоставлении доступа к возможностям ОС.

Впрочем, в последнем вопросе (и особенно в деталях реализации) единого мнения пока нет. Поэтому каждый стремится предложить нечто свое, как и поступила в конце февраля компания Adobe, объявив о выпуске технологии для создания RIA под названием AIR (Adobe Integrated Runtime), ранее известной как проект Apollo. И очень похоже, что традиционные в подобных случаях обещания чего-то инновационного не так уж далеки от действительности.

Знакомство с AIR

Adobe AIR веб-технологии для десктопных решений
Работать с онлайновым аукционом при помощи eBay Desktop оказывается куда приятнее, чем посредством браузера

Прежде всего отметим, что AIR, как платформа для выполнения RIA в том числе и в офлайновом режиме, подобно обычным десктопным приложениям предполагает развертывание на локальном компьютере некой среды (размер загружаемого модуля чуть превышает 11 МБ). Предоставляется она совершенно бесплатно, равно как и соответствующий SDK для разработчиков. Очень похвально, что Adobe не стала изобретать велосипед и построила свое решение на базе наиболее признанных и распространенных технологий вроде HTML и JavaScript, в том числе и собственных – Flash и PDF.

Однако в отличие от многих других RIA AIR-приложения исполняются вне браузера и потому практически не отличаются от обычных программ. Они распространяются в виде файлов с расширением .air, при попытке запуска которых открывается управляющая панель AIR, где и происходит инсталляция. К примеру, в Windows весь код копируется в стандартную папку Program Files, а ярлыки приложений появляются в меню Пуск или на рабочем столе – по выбору пользователя. В процессе дальнейшей работы «опознать» их по каким-либо внешним признакам почти невозможно.

Но главное, конечно, что AIR предоставляет разработчикам.

Во-первых, AIR доступна на различных платформах – сейчас поддерживаются Mac OS X и Windows, вскоре к ним присоединится Linux, а в будущем, вероятно, и мобильные платформы.

Adobe AIR веб-технологии для десктопных решений
Adobe Kuler делает доступной на десктопе одноименную службу по подбору цветовых палитр с официального сайта компании

Во-вторых, AIR обеспечивает тесное взаимодействие с локальной ОС, что вообще-то нехарактерно для RIA. Приложения получают доступ к файловой системе, регистрируют обработчики расширений файлов, используют стандартные меню и диалоговые окна, обращаются к буферу обмена, размещаются в списке автозапуска ОС. Они могут оформляться в многооконном стиле, поддерживать операции Drag-n-Drop, взаимодействовать по сети и пр.

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

В-четвертых, AIR подразумевает привычные способы разработки. Среда исполнения, по сути, представляет собой специализированный браузер на движке WebKit, также используемый в Safari. Соответственно, приложения строятся из HTML и JavaScript, при этом можно задействовать популярные AJAX-инструментарии, а внешний контент помещается в «песочницу», подобную той, посредством которой современные браузеры ограничивают потенциально опасные скрипты от доступа к системе. Помимо прочего, все это позволяет существенно сократить объем работы при необходимости одновременного создания онлайновой и AIR-версий.

В-пятых, AIR получила все атрибуты для реализации именно веб-приложений с возможностью офлайновой работы, в частности, криптостойкое хранилище данных, реляционную СУБД (SQLite), механизмы взаимодействия с удаленными веб-службами и окном браузера, исполняемого локально.

Наконец, отметим тесную интеграцию AIR с прочими инструментами Adobe – обеспечивается рендеринг PDF-файлов, для построения интерфейса и декодирования мультимедиа задействуется Flash (с помощью открытой виртуальной машины Tamarin), а для многих прежних инструментов Adobe имеются функциональные расширения. Например, после установки AIR SDK популярная программа для создания HTML-страниц DreamWeaver CS3 может использоваться для создания и предварительного просмотра AIR-приложений. В качестве же основного средства разработки предлагается IDE Flex Builder, основанная на Eclipse и способная отлаживать AIR-код.

Решения на основе AIR

Еще на этапе подготовки AIR компания Adobe успела заручиться поддержкой широкого круга программистов, и к моменту выхода первой версии платформы публике было представлено достаточно интересных проектов.

Пожалуй, самое заметное решение на основе AIR – eBay Desktop – приложение, позволяющее без браузера воспользоваться услугами популярнейшего онлайнового аукциона. Оно устойчиво работает даже на медленных соединениях, а его интерфейс функциональнее и удобнее традиционных веб-страниц. К тому же имеется ряд возможностей, по определению недоступных в браузере (к примеру, свертывание в системную область панели задач). Многие остались чрезвычайно довольны eBay Desktop – вполне вероятно, что большинство из тех, кто уже испытал его в деле, больше не станут пользоваться браузером для совершения покупок.

В качестве примера из несколько иной области приведем еще один продукт – Analytics Reporting Suite, с помощью которого можно получать информацию от службы Google Analytics и строить отчеты на ее основе. Причем программа не просто дублирует возможности упомянутой онлайновой службы Google, но кое в чем и превосходит ее.

Сама Adobe пока не выпустила серьезных AIR-приложений (несколько простых демонстрационных программ на сайте не в счет), но дала понять, что не собирается ограничиваться исключительно поставкой среды исполнения и инструментальных средств. В частности, имеется подтверждение того, что полным ходом идет разработка AIR-версии текстового редактора Buzzword, который был создан компанией Virtual Ubiquity, приобретенной Adobe осенью прошлого года. Также ходят слухи о возможной подготовке AIR-версии онлайнового аналога Photoshop, определенно занимающего не последнее место в планах компании.

Таким образом, Adobe AIR постепенно приобретает популярность среди программистов, чему, несомненно, способствуют знакомые им технологии, на которых основана эта платформа.

Конкуренты

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

Среди последних, пожалуй, прежде всего следует выделить инструмент Google Gears, основанный на схожих с AIR принципах (разве что приложения, созданные с его применением, выполняются в браузере) и представляющий собой подключаемый модуль. Он все еще находится на стадии бета-тестирования, но становится все популярнее, как, впрочем, и многие другие решения и сервисы от Google. На ее стороне – непререкаемый авторитет в области интернет-технологий, хотя в техническом плане никаких особых преимуществ у Gears не обнаруживается (скорее, все говорит в пользу Adobe AIR). Компактность (а размер дистрибутива Gears составляет всего 200 КБ) в данном случае вряд ли можно отнести к достоинствам, поскольку возможности, предоставляемые AIR, гораздо шире.

У Google имеется и еще одна технология, хоть и отличающаяся идейно от Gears и рассматриваемой нами AIR, но также вполне пригодная для создания RIA – Google Web Toolkit (GWT). Она примечательна тем, что помогает кардинально упростить разработку веб-приложения за счет того, что вся его логика изначально программируется на Java, а затем автоматически трансформируется в AJAX-приложение. Хотя GWT и не позиционируется сама по себе как средство для создания офлайновых приложений, она имеет встроенную поддержку Google Gears и совместно с ней представляет весьма мощную платформу с гибкими возможностями. Таким образом, в данном вопросе связка Gears/GWT напрямую конкурирует с AIR/Flex.

Много шума наделала Microsoft со своей технологией Silverlight, вторая версия которой должна увидеть свет уже в нынешнем году. Ожидается, что именно она откроет для большой армии .NET-разработчиков ворота в мир веб-приложений. Маловероятно, что Silverlight будет напрямую конкурировать с AIR или Gears в Вебе, а вот в десктопном сегменте их борьба обещает быть весьма напряженной. Занятно, что изначально Silverlight вроде бы противопоставлялась Flash, но выход AIR явил нового и, пожалуй, более сильного конкурента.

Adobe AIR веб-технологии для десктопных решений
Analytics Reporting Suite предоставляет иной взгляд на службу Google Analytics

Не собирается стоять в стороне и Sun Microsystems. Известно, что Java, чрезвычайно распространенная на всевозможных устройствах – от мобильных телефонов до бытовой техники – так и не смогла завоевать популярность среди веб-разработчиков, которые в своем большинстве Java-апплетам предпочитают более привычные HTML и JavaScript. И вот на конференции JavaOne в мае 2007 г. была представлена новая инициатива JavaFX (sun.com/javafx), объединяющая целое семейство продуктов, нацеленных именно на создание интернет-приложений с развитым пользовательским интерфейсом, в том числе мультимедийных. Изначально JavaFX воспринималась как ответ Sun Microsystems на технологию Silverlight от Microsoft, но теперь, очевидно, ей предстоит конкурировать и с Adobe AIR.

Приложениям на JavaFX требуется среда Java Runtime Environment (JRE), причем исполняться они могут и в браузере, и в собственном окне. Кроме того, уже существует специальная платформа JavaFX Mobile (ориентированная на мобильные устройства), представляющая собой мини-дистрибутив Linux, поверх которого функционирует все та же JRE.

Еще, пожалуй, следует упомянуть OpenLaszlo – открытый проект, поддерживаемый компанией LaszloSystems. Он довольно близок AIR в том, что для создания интерфейса веб-приложений активно использует Flash. Хотя OpenLaszlo и не относится к технологиям, находящимся постоянно на слуху, это достаточно зрелая платформа: ее первая версия увидела свет еще в 1993 г. Сегодня ее применяют, к примеру, такие именитые компании, как Yahoo! и EarthLink, а число пользователей приложений, созданных на ее основе, исчисляется миллионами.

Архитектура OpenLaszlo предусматривает клиентский и серверный уровни. На первом функционирует среда исполнения, использующая локальный Flash-проигрыватель, а на втором предполагается применение платформы J2EE с соответствующим серверным компонентом OpenLaszlo. Впрочем, от специализированного сервера можно и отказаться, отдав предпочтение таким технологиям, как PHP или CGI. В таком случае приложения OpenLaszlo трансформируются в SWF-файлы и работают полностью под управлением Flash-проигрывателя. Полновесный же вариант позволяет создавать довольно сложные и масштабируемые решения, вписывающиеся в глобальную концепцию J2EE.

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

Заключение

Подводя итог знакомству с AIR, следует признать, что Adobe смогла удивить. Учитывая внушительный перечень конкурирующих технологий, компания предложила весьма оригинальный подход к RIA, среди прочего отказавшись от такого вроде бы обязательного промежуточного звена, как браузер – и это очень принципиальный момент. Действительно, для современного веб-разработчика создание приложений, интенсивно использующих JavaScript, в особенности в рамках AJAX, нередко превращается в сущий кошмар из-за тонкостей реализации отдельных механизмов браузерами. Кроме того, после относительного затишья ситуация на рынке браузеров вновь накаляется и, несмотря на все обещания, впереди нас наверняка ждет еще немало проблем с совместимостью. На этом фоне единая стабильная среда, позволяющая создавать универсальные решения, совершенно не заботясь о различиях ОС и браузеров, выглядит весьма перспективно.

Немаловажно также, что Adobe воздержалась от изобретения очередных технологий и инструментов (что, несомненно, усложнило бы освоение AIR), а просто объединила существующие для применения в новом качестве. Стоит отметить, что в этом есть смысл – от веб-разработчиков требуются особенные навыки, и многие из них попросту не готовы трудиться над десктопными решениями. Именно для них AIR может стать настоящей панацеей, позволив перенести свой опыт в совершенно новую сферу. При этом сама Adobe оценивает число потенциальных пользователей AIR, ни много ни мало, в 5 млн человек и, видимо, имеет на то все основания. Кроме того, тесная интеграция с Flash и PDF, несомненно, поспособствует взаимной поддержке всех технологий Adobe. Нельзя исключить, что в более отдаленной перспективе AIR может стать стратегической платформой для создания RIA-аналогов популярных десктопных приложений компании.

В заключение еще раз акцентируем внимание на том, что AIR – это не просто очередной гибрид веб- и десктопных технологий. В данном случае произошло вторжение первых в вотчину вторых, что несколько неожиданно, особенно с учетом того, что они выбрались за пределы браузера и теперь грозят потеснить такие зрелые платформы, как .NET и Java – похоже, реальность в данном случае даже превзошла ожидания. Помимо прочего, компанию Adobe не упрекнешь в недостатке амбиций, и вполне вероятно, что в ходе дальнейшей эволюции AIR превратится в некий аналог ОС, подобно упомянутой выше JavaFX Mobile от Sun Microsystems. Так или иначе, AIR действительно очень хороша с технической точки зрения, и Adobe лишь осталось придумать способы скорейшей ее популяризации среди разработчиков, что, впрочем, по сегодняшним меркам представляется весьма непростой задачей.

Сайт автора: koldovsky.com