О том, что Google давно уже превратился из поисковой машины в глобальную онлайновую платформу, знают все. Google Docs, Google Map, Google Talk -- масса служб и подсистем. Но портал iGoogle занимает особое место: это не просто один из многочисленных сервисов, это скорее "точка сборки" всех возможностей Google... И даже не только Google, но вообще всех возможностей Всемирной Сети.
Идея портала iGoogle во многом близка к классической для Web 2.0 схеме "перемешивания" (mash-up) сервисов: подборка информации, получаемой из самых разных источников и собранной воедино на общей странице. Своего рода "панель управления". Главное отличие iGoogle от массы других "Web-десктопов" и "стартовых страниц" -- прежде всего в том, что это не просто интерфейс, а самостоятельная программная платформа, на основе которой можно создавать очень интересные и порой совершенно необычные решения.
Программные модули, подключаемые к iGoogle, называются "гаджетами" (gadgets). Это слово сегодня встречается все чаще и чаще, причем в разных значениях: так называют и мобильные устройства, и программные модули, и даже садовый инвентарь. (Само по себе это слово переводится как "устройство, приспособление", отсюда и большое количество значений). Поскольку слово гаджет в русском языке уже более или менее устоялось, мы будем использовать его без кавычек и в значении «программный модуль, содержащий набор функций, которыми разработчик хочет дополнить стартовую страницу iGoogle. С этой страницей работают миллионы пользователей».
Зачем собственно нужен гаджет и какие возможности он предоставляет?
Гаджет изнутри
С технической точки зрения, гаджет для iGoogle представляет собой XML-файл, содержимое которого выводится во вложенном фрейме (iframe). В XML-тексте файла гаджета применяется специальная разметка и информационные теги; там же содержится и HTML-или JavaScript-код, использующий специальный API (Google Gadget API) для интеграции с порталом iGoogle.
Гаджет может содержать как простой текст на языке разметки HTML, так и программы на JavaScript. Такое сочетание функций позволяет использовать гаджет в роли интерфейсного блока к какой-либо внешней Web-системе. Например, в качестве мини-витринки для Интернет-магазина, на которой выводится информация о скидках, новых поступлениях и др.
В то же время, роль Google Gadgets API не сводится к выводу динамического или HTML-содержимого внешних источников. Предусматриваются развитые функции формирования пользовательского интерфейса (вкладки, раскрывающиеся разделы и др.), работы с XML, интеграции с Flash или Silverlight, учета и ведения статистики (средствами Google Analytics), внешнего хранилища информации (например, параметров настройки гаджета для конкретного пользователя), локализации и др.
XML-модуль может редактироваться любым удобным разработчику способом, кроме того, есть специальный «редактор гаджетов», пригодный для создания не всех типов гаджетов, а только «унаследованных» (об этом ниже).
Программный код конкретного гаджета, как правило, хранится на серверах Google (http://hosting.gmodules.com/). С точки зрения пользователя, на страницу портала iGoogle они инсталлируются нажатием соответствующей кнопки на этой страницы (фактически просто добавляется ссылка), на внешние по отношению к iGoogle сайты их можно установить, скопировав специальный код:
Листинг 1. Код установки модуля игры Lines для iGoogle на произвольный сайт
<script src="%C2%ABhttp://gmodules.com/ig/ifr?url=" com="" ig="" gadgets="" file="" 116455917826824671162="" synd="open&w=" h="340&title=" border="%23ffffff%7C3px%2C1px+solid+%23999999&output=">
</script>
Собственно гаджет — в данном случае файл lines.xml — хранится в подкаталоге разработчика (создается автоматически при сохранении исходного текста в редакторе гаджетов, откуда и вызывается с заранее заданными параметрами.
Разместить гаджет можно и на собственном сайте, а также на страницах проекта Google Code (в этом случае появляются интересные возможности, вроде управления версиями). Но если автор хочет добиться популярности, то гаджет настоятельно рекомендуется добавлять в каталог Google. Иначе как о нем узнают широкие массы?
Структура API платформы Google для гаджетов довольно эклектична и несет явный отпечаток эволюционного развития. Так например, гадежеты могут создаваться не только для iGoogle, но и для утилиты Google Desktop (исторически она и была первой). Когда-то давно у этих двух платформ был различный API, затем программисты Google унифицировали их. Сегодня обеспечивается некоторая совместимость, хотя не все гаджеты Google Desktop могут работать в «среде» iGoogle и наоборот (скажем, если применен специфичный программный модуль, использующий API Win32; есть также функции, которые недоступны на платформе Google Desktop).
Но и это еще не все. Существуют две версии Gadgets API: «унаследованная» (Legacy Gadgets API) и текущая, причем «унаследованная» не означает «устаревшая». Это скорее наиболее общая, универсальная платформа, разработки на базе которой совместимы с максимальным числом платформ (хотя и благодаря некоторому усечению функций). В некоторых случаях даже рекомендуется использовать именно «унаследованную» версию API, например, при необходимости установки гаджета на внешнем сайте.
Новая версия API в документации Google обычно обозначается как пространство имен gadgets.*. Функциональность и возможности в целом соответствуют Legacy Gadgets API, но кроме того, предоставляется возможность создавать разработки, интегрированные с подсистемой OpenSocial (функционирующие во всех социальных сетях, совместимых с этим стандартом), специализированные графические средства, подсистема авторизации, загрузки данных, управления шаблонами и др. Далее в примерах этой статьи мы ограничимся только Legacy Gadgets API, вопросы работы с прочими версиями будут рассмотрены позднее.
воскресенье, 6 июля 2008 г.
Подписаться на:
Комментарии (Atom)