Консорциум OpenAjax Alliance стремится обеспечить совместимость различных интегрированных сред разработки (IDE) для AJAX и облегчить создание защищенных составных приложений (mash-up).
На конференции Rich Web Experience Джон Феррайоло, инженер IBM и директор OpenAjax Alliance, объявил, что опубликованы проекты спецификаций, которые позволят улучшить совместимость различных AJAX IDE, обеспечить создание защищенных составных приложений и облегчить использование в них виджетов.
По его словам, такие возможности AJAX IDE, как функция Code Assist, отладка и визуальная компоновка, должны быть согласованы между различными платформами, но поскольку каждый пакет инструментов AJAX документирует API и виджеты по-своему, это создавало некоторые проблемы. Альянс OpenAjax стремится устранить эти различия с помощью новой спецификации под названием OpenAjax Metadata for AJAX Libraries, которая позволит использовать стандарт XML для JavaScript API и элементов управления пользовательского интерфейса.
Кроме того, как заявил Феррайоло, необходима “интеллектуальная” функция Code Assist для API по различным AJAX-библиотекам и должна быть возможна визуальная разработка с использованием виджетов из AJAX-библиотек. Спецификации OpenAjax Alliance помогут достичь этих целей.
Феррайоло также отметил, что стандарты позволят повысить эффективность и откроют путь новациям. AJAX-библиотеки могут иметь один формат для своих API — OpenAjax Metadata (OAM), и тогда они будут совместимы со многими IDE. Если библиотека использует JSDoc, то, значит, возможно автогенерирование OpenAjax Metadata. “Мы исследуем автогенерирование для других форматов встроенной (inline) документации, например таких, которые использует Dojo, — сказал Феррайоло. — Разные AJAX IDE смогут принимать один формат OAM, а каждая IDE будет теперь поддерживать десятки AJAX-библиотек. Предлагая один XML-файл, мы даем возможность вводить новации в IDE и конкурировать в других областях”.
В рабочую группу консорциума OpenAjax входит несколько участников, но ведущей силой там является компания Aptana, предлагающая наиболее развитую среду разработки. В ядро команды, участвующей в еженедельных телеконференциях, входят также разработчики из групп Adobe Dreamweaver и Microsoft Visual Studio. По словам Феррайоло, хотя Microsoft и понесла наказание за слабый вклад в стандартизацию и разработку свободного ПО, ныне корпорация работает над поддержкой формата OAM в Visual Studio. Из других участников рабочей группы можно назвать Eclipse Foundation, Sun Microsystems, TIBCO и OpenLink Software.
Большой вклад в разработку внесла Aptana, которая поделилась своим обширным опытом над проектом ScriptDoc.org. Она, в частности, прокомментировала JavaScript таким образом, что функции Code Assist и Code Completion можно получить в Aptana Studio — IDE с открытым исходным кодом для приложений Web 2.0, использующих AJAX.
“Microsoft принимала активное участие в этой работе наряду с Adobe, IBM, Eclipse, Sun, OpenLink и другими, — отметил Кевин Хакман, председатель правления IDE Working Group и директор по стратегии Aptana. — Все внесли посильную лепту в проекты спецификаций, вложив в них знание собственных IDE и опираясь на сообщества пользователей и соглашения по комментированию кода. Не хочу преуменьшить роли других, но Бертран Ле Рой из Microsoft был постоянным участником в этом процессе, и его вклад был очень ценным и созидательным”.
Что уже сделано?
По словам Феррайоло, имеется проект спецификации OpenAjax Metadata, который находится в стадии реализации. “На данном этапе наш свободный инструмент смешения контента поддерживает формат виджетов, но не API, — заявил он. — Имеется версия преобразования из JSDoc 0.1 в OpenAjax Metadata. Мы еще не начали работу по другим форматам встроенной документации, таким как Dojo. Не приступили пока и к работе над транскодерами из Aptana в OpenAjax и наоборот”.
“Главная идея OpenAjax Metadata в том, чтобы упростить использование JavaScript-библиотек и включить AJAX-виджеты при создании веб-страниц, веб-приложений и составных приложений, — продолжил эту мысль Хакман. — Спецификация OpenAjax Metadata позволяет описывать JavaScript-объекты стандартным способом, который быстро могут создать разработчики, чтобы принимать различные IDE и составные приложения. Формат метаданных может описывать полные JavaScript-библиотеки, такие как Dojo, либо отдельные AJAX-компоненты типа YUI [пользовательский интерфейс Yahoo] Tree Control или полнофункциональные AJAX-гаджеты для составных приложений, такие как Google Maps, и даже обычную простую функцию на JavaScript. Это работает на всех уровнях”.
Как пояснил Хакман, есть две главные спецификации, использующие общий набор дескрипторов. Одна из них — спецификация API для описания API-интерфейсов JavaScript-объектов — была основана главным образом на ScriptDoc с большим заимствованием из JSDoc и соглашений Microsoft. Метаданные API полезны для разработчиков, пишущих прикладной код. Вторая — это спецификация разметки, основанная главным образом на поддержке Adobe Dreamweaver и обычной практике Web-разработчиков по вставке разметки и изменению параметров в ней. Поэтому в дополнение к JavaScript имеется также блок HTML, нужный для того, чтобы включить виджет или гаджет в веб-страницу.
“Эта спецификация предполагает, что XML-файл с утилитами преобразователей встанет между JSON [нотация JavaScript-объектов] и этим XML для тех, кто предпочитает JSON, — сказал Хакман. — Кроме того, участники создают преобразователи для JSDoc и ScriptDoc, которые, вероятно, будут предложены как свободный код для использования сообществом”.
Технология OpenAjax Hub
По словам Феррайоло, виджеты, используемые для создания составных приложений, как правило, несовместимы между собой и также представляют потенциальный риск для безопасности, поскольку могут оказаться вредоносными. Разработчикам виджетов обычно приходится создавать разные версии для работы с различными контейнерами, и нет всеобъемлющего, основанного на стандартах подхода к изоляции виджетов.
Альянс OpenAjax стремится исправить ситуацию с помощью технологии OpenAjax Hub и спецификации OpenAjax Metadata for Widgets. Версия OpenAjax Hub 1.1 дает платформу для загрузки и изоляции виджетов и защищенного управления сообщениями. Затем OpenAjax Metadata for Widgets задает стандартный формат упаковщика виджетов. После этого свободные транскодеры преобразуют существующие популярные фирменные форматы гаджетов в OpenAjax Metadata, и свободное составное мини-приложение альянса OpenAjax показывает, как использовать все эти технологии.
OpenAjax Hub — это небольшой блок стандартного JavaScript-кода, позволяющий множеству рабочих модулей AJAX работать вместе, и его версия 1.1 обеспечивает безопасность виджетов. Есть проект спецификации OpenAjax Hub 1.1, который, как заявил Феррайоло, должен быть завершен к концу года.
OpenAjax Metadata for Widgets устраняет два главных недостатка виджетов при использовании в составных приложениях. Эта спецификация задает принятый в отрасли XML для виджетов составного приложения и, по словам Феррайоло, очень близка к Google Gadgets. Она предназначена для работы с OpenAjax Hub 1.1, которая обеспечивает защищенное исполнение составных приложений.
“Google Gadgets доминирует в пространстве веб-виджетов, и мы хотим соответствовать ей, где только возможно”, — подчеркнул Феррайоло.
Тестирование OpenAjax Metadata: мобильный AJAX?
Как сказал Феррайоло, спецификация OpenAjax Metadata for Widgets находится в стадии первого проекта и должна быть завершена и утверждена к концу этого года.
Прогресс разработки спецификаций во многом будет зависеть от результатов OpenAjax InteropFest, где консорциум займётся тестированием OpenAjax Metadata на совместимость с инструментарием различных вендоров, а OpenAjax Hub 1.1 — на надежность, производительность и пригодность.
“На эту осень наша цель состоит в том, чтобы каждый поставщик инструментария в рабочей группе IDE продемонстрировал через OAA InteropFest, как он может принимать эти файлы описаний для самых разных виджетов из различных источников, таких как Google, Yahoo, Dojo, jQuery, EXT JS, Prototype, Scriptaculous, Mootools... и чтобы описанные объекты легко было использовать в контексте инструмента, — пояснил Хакман. — Мы надеемся, что разработчики, создающие библиотеки и виджеты, получат сильный стимул к тому, чтобы давать файлы описаний или комментировать свои коды с использованием ScriptDoc/JSDoc, так что их библиотеки и виджеты только выиграют от применения инструментов множества ведущих компаний”.
“Мы также рассматриваем AJAX для мобильных устройств как следующий большой рубеж. Мы стараемся сделать так, чтобы AJAX мог успешно использоваться в таких проектах”, — добавил Феррайоло.
OpenAjax Alliance намерен продвигать API для мобильных устройств, включая свободный JavaScript, для доступа к GPS, камере, адресной книге, SMS и т. п. Сюда входят как уже существующие фирменные API, зависящие от систем (через плагины), так и новые стандарты отрасли. Помимо этого консорциум сотрудничает с OMTP (Open Mobile Terminal Platform) и следит за работой, которую ведет World Wide Web Consortium в области геолокации.
Феррайоло отметил, что консорциум составляет список пожеланий, опросив с этой целью 222 участника, и на его основе подготовил перечень основных требований. Главные требования включают двумерную графику, безопасность, улучшенные низкоуровневые программные ловушки объектной модели документа (DOM) для визуальной компоновки, улучшение производительности DOM, редактирование сложно форматируемого текста, передачу данных по инициативе сервера, поддержку видео и аудио.