Mashup-приложения - эволюция SOA: Часть 1. Web 2.0 и основополагающие концепции

Это первая статья серии, состоящей из трех частей . В ней представлен общий обзор характеристик и технологий, связанных с понятием Web 2.0, как основа для детального обсуждения их связи с развитием сервис-ориентированной архитектуры (SOA - Service-Oriented Architecture). Во второй части рассматривается текущее состояние информационных технологий и SOA на предприятиях, а также обсуждается, что могут предложить ситуативные приложения и mashup-экосистема. В третьей части описывается пакет программ IBM® Mashup Starter Kit (IBMMSK) и обсуждаются способы его применения для разработки ситуативных приложений.

Стивен Уатт, сертифицированный разработчик программного обеспечения, IBM

Стивен Уатт (Stephen Watt) - разработчик программного обеспечения, занимающийся развивающимися технологиями, в стратегической структуре IBM Software Group в лаборатории IBM в Остине, штат Техас. До этого Стивен несколько лет занимался консультированием на Ближнем Востоке и работал в "стартапах" в США и у себя на родине в ЮАР. Стив опубликовал несколько книг и статей в издательстве Wrox Press и на сайте IBM developerWorks.



16.02.2009

Введение

Web 2.0 - это чрезвычайно обширная тема, поэтому для упрощения в данной статье выделяются различные ее компоненты, чтобы сформировать платформу для более детального обсуждения SOA, ситуативных приложений и IBMMSK во второй и третьей частях серии . Более широкое и подробное описание Web 2.0 приведено в статье Тима О’Рейли (Tim O'Reilly), ссылку на которую вы найдете в разделе "Ресурсы".

Что такое Web 2.0

Web 2.0 лучше всего описывается как базовый набор принципов, общих для всех приложений, носящих ярлык Web 2.0. Этими принципами являются сервисы, простота и сообщество (см. графическое представление на рисунке 1). После рассмотрения этих принципов в данной статье исследуются некоторые технологии, стоящие за ними.

Рисунок 1. Общие принципы Web 2.0-приложений
Рисунок 1. Общие принципы Web 2.0-приложений

Сервисы

Для поддержки Web-сообщества, которое является основным принципом новой фазы использования Web и разработки приложений, необходимо прежде всего, реализовать общий доступ к данному приложению. Для этого приложения переходят на модель сервисов, в которой один экземпляр обслуживает всех пользователей. Это полная противоположность модели, когда каждый пользователь должен загружать и устанавливать приложение. Кроме того, модель совместно используемых сервисов предоставляет единую "песочницу", необходимую для обеспечения эффективности механизмов сообщества.

Простота

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

Простота для пользователя. Можно заметить, что современные Web-приложения предоставляют пользователю богатое содержимое и удобство работы, а с приходом Ajax (Asynchronous JavaScript + XML) грань между традиционными автономными ("толстыми" клиентами) и Web-приложениями размывается или исчезает вовсе. Современные Web-приложения выходят за пределы модели Web 1.0 (перезагрузка страницы для просмотра нового содержимого) и обеспечивают полнофункциональную интерактивную работу пользователя.

Благодаря успеху основанных на фидах (feed) технологий (рассматриваемых далее), пользователи теперь могут подписываться на синдицированное содержимое, предоставляющее нужную им конкретную информацию через стандартные для отрасли технологии и протоколы. Фиды теперь позволяют упаковывать и передавать информацию в специализированном формате, обеспечивая удобство ее потребления и смешения. Это отвечает общей тенденции: программное обеспечение освобождает дорогу для информации, чтобы полностью раскрыть ценность информации (т.е. сосредоточение на информации в противоположность функции). В результате владельцы сервиса обнаруживают, что информация, которую они предоставляют, продуктивно используется способами, которых они не предвидели.

Механизмы сообщества

Появление Web привело к социальному сдвигу в способах организации информации, доступа к ней и ее использования. Одним из примеров является Wikipedia (ссылка приведена в разделе Ресурсы), позволяющая человечеству совместно работать над сбором и управлением информацией с эффективностью, которая намного превышает возможности отдельной личности. Это одновременно и хорошо и плохо, поскольку дает возможность быстро пополнять информацию, но ее объем становится огромным. Следствием являются проблемы поиска нужной информации, поэтому в сообществе применяются дополнительные механизмы фильтрации этой информации, позволяющие пользователям помечать информацию значимыми и доступными для поиска метаданными. Одним из примеров является сайт del.icio.us (ссылка приведена в разделе Ресурсы), который позволяет пользователям сохранять и помечать тегами свои закладки (bookmark) в интерактивном режиме. Это дает другим пользователям возможность вести поиск в списках закладок по тегам, что обеспечивает средство поиска результата в данных, которые уже были помечены (отфильтрованы) сообществом.

Достоверность данных сообщества. Еще одной проблемой является необходимость проверять достоверность предоставляемых сообществом данных. Это же самое сообщество можно использовать для оценивания информации. Пользователи могут добавлять и редактировать комментарии и рекомендации, которые можно агрегировать для формирования коллективного взгляда сообщества на данный ресурс. В результате создается Web с реальным доступом на чтение и запись. Эта модель также используется для создания тесной обратной взаимосвязи между производителями и потребителями; в качестве примера можно привести систему оценивания покупателей и продавцов на eBay (ссылка приведена в разделе Ресурсы). Эту взаимосвязь можно использовать для влияния на процессы разработки программного обеспечения. Теперь программы могут разрабатываться в партнерстве с сообществом пользователей и, следовательно, предоставляться как постоянно обновляемый сервис, улучшающийся вместе с расширением применяемости.

Объединение людей. Возможности социальных сетей также используются для поиска и управления ресурсами другого рода, а именно людьми. Социальные сети – это эффективный способ поиска людей, интересующихся какой-либо общей темой. Например, эти сети позволяют людям, которые вместе учились в определенном учебном заведении, или входящим в определенный промышленный консорциум, совместно использовать ресурсы, общаться и даже вести совместную работу в своем собственном Web-"пространстве". Кроме того, эти сети могут быть достаточно автономны в том смысле, что пользователи сети могут добавлять и приглашать других пользователей, повышая таким образом ценность сети. Это совершенно отличается от концепций Web 1.0, которые фокусировались на объединении компьютеров, а не людей.

"Длинный хвост" и более свободное лицензирование. Еще одним примечательным аспектом Web 2.0-приложений является их повышенная эффективность в обслуживании "длинного хвоста" (пользователей, не входящих в массовые категории; ссылки на дополнительную информацию приведены в разделе Ресурсы) благодаря технологиям, позволяющим охватить большое количество индивидуумов и предоставлять высокоперсонализированные товары или услуги, в противоположность массовому обслуживанию. Кроме того, поскольку Web 1.0 фокусировалась на приложениях, устанавливаемых на компьютер, в отношении разрешенных способов использования приложений лицензионные соглашения были довольно жесткими (по принципу "Все права защищены"); в Web 2.0 обычно приветствуется интеграция с другими технологиями, содержимым и приложениями (по принципу "Некоторые права защищены").

Эти аспекты воплощены во многих популярных Web-сайтах - флагманах Web 2.0, например, в Digg, где механизмы сообщества применяются для добавления, сортировки и комментирования информации, в YouTube, позволяющем пользователям отмечать тегами медиа-файлы так, чтобы они были значимыми для них и легко могли быть найдены другими, в Facebook, позволяющем пользователям создавать социальные сети и взаимодействовать в них. Ссылки на эти сайты приведены в разделе Ресурсы.


Технологии, продвигающие принципы и концепции Web 2.0

Сдвиг в сторону основанной на сервисах модели влияет на способы разработки Web 2.0-приложений. Теперь инфраструктура Web рассматривается как нижний уровень стека разработки приложений (в противоположность серверу для загружаемых приложений). Этот программируемый Web играет роль API, на базе которого создаются Web 2.0-приложения. Примерами таких API являются общедоступные Web-сайты, например, Flickr, Google Maps и Digg.

Набор (стек) средств в составе Linux®, Apache, MySQL и PHP (LAMP) является популярным, бесплатным и простым инструментом для разработки Web-приложений. Он позволяет снизить затраты на создание полезных Web-приложений, что, в свою очередь, расширяет круг Web-разработчиков. Стек LAMP является современным поколением той технологической базы массового Интернета.

Концепция Web как новой платформы разработки базируется на допущении, что основная часть инфраструктуры уже сформирована и существует в Web. Новые Web 2.0-приложения просто должны использовать имеющийся хостинг, и вместо применения традиционных уровней API (таких как Java™ Platform, Enterprise Edition (Java EE) или Microsoft® .NET) теперь можно создавать приложения при помощи Web API (или Web-сервисов), предоставляемых существующими Web-приложениями, такими как Flickr и Google Maps. Широкое распространение подобных Web API избавляет от необходимости самостоятельной разработки многих функциональных возможностей, уменьшая тем самым нагрузку на разработчиков и ускоряя процесс создания приложений.

Кроме того, два и более таких Web API можно интегрировать для создания новых уникальных приложений, известных под названием mashup. Примером является сайт www.housingmaps.com, накладывающий информацию о недвижимости (предоставляемую Craigslist) на карту (предоставляемую Google Maps) и позволяющий визуально перемещаться и выбирать информацию о недвижимости в конкретном месте.

На рисунках 2 и 3 показана инфраструктура Web 2.0.

Рисунок 2. Ключевые технологии в стеке Web 2.0
Рисунок 2. Ключевые технологии в стеке Web 2.0
Рисунок 3. Стек разработки традиционных приложений в сравнении с программируемым Web
Рисунок 3. Стек разработки традиционных приложений в сравнении с программируемым Web

Для вызова этих Web API можно использовать технологии, подобные Ajax, позволяющие браузерам взаимодействовать с сервером через JavaScript (синхронно и асинхронно). Это означает, что приложению не нужно перезагружать всю страницу каждый раз, когда клиент должен связаться с сервером.

Чтобы объекты можно было передавать между браузером и сервером через Ajax, их можно сериализовать и десериализовать с помощью JavaScript Object Notation (JSON). Во многом подобно Ajax можно использовать спецификацию SOAP и технологию Representational State Transfer (REST) как стандартное средство передачи данных между приложениями. Сегодня широко встречаются сервисы, предоставляющие одновременно SOAP-, Ajax- и REST-интерфейсы.

REST - это стиль проектирования сервисов с использованием простых HTTP-действий при работе с адресуемыми по URL объектами.

Эффективно использовать Ajax и обеспечить доступные сегодня полнофункциональные пользовательские интерфейсы помогают дополнительные технологии, такие как Dojo (экономящий время, кросс-браузерный DHTML-пакет (Dynamic HTML) инструментальных программ с открытыми исходными кодами), и расширения браузеров, такие как Greasemonkey и Firebug, которые позволяют писать сценарии, расширяющие браузер, и настраивать внешний вид или функциональность Web-страницы. Например, можно установить сценарий Greasemonkey для Facebook, чтобы при любом помещении указателя мыши над уменьшенной копией (thumbnail) изображения автоматически появлялось полноразмерное изображение в левой части окна браузера. Это ускоряет и облегчает просмотр изображений и определенно обогащает работу пользователя.

Микроформаты позволяют использовать XHTML для передачи семантического значения в (X)HTML, Atom, RSS или произвольном XML-документе. Микроформаты могут легко читаться как машиной, так и человеком, позволяя таким приложениям, как браузеры, автоматически обнаруживать их и действовать в зависимости от описываемой в них информации. Например, если вы хотите встроить визитную карточку в документ, можно использовать микроформат hcard (ссылки на дополнительную информацию приведены в разделе Ресурсы), который описывает визитную карточку на XHTML (см. рисунок 4).

Рисунок 4. Пример микроформата hcard
Рисунок 4. Пример микроформата hcard

Наконец, фиды RSS и Atom в настоящее время вышли за рамки использования только для подписки на блоги и новостные фиды и рассматриваются как потенциально возможные подходы к упрощению специфичных, сконцентрированных на содержимом, архитектур приложений. Спецификация Atom является результатом эволюции идей, первоначально заложенных в RSS, и предоставляет полезные функциональные возможности, такие как Atom Publishing Protocol (APP), которые позволяют публиковать информацию для добавления в фид. Если управляемые событиями архитектуры являются сегодня частью SOA-среды, то фиды могут рассматриваться как часть парадигмы сервисов и должны использоваться в качестве таковых.


Заключение

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

Благодарности

Выражаю благодарность Стью Николасу (Stew Nickolas), Дэну Джисолфи (Dan Gisolfi) и Рику Робинсону (Rick Robinson) за рецензирование и вклад в данную статью.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=SOA и web-сервисы
ArticleID=369804
ArticleTitle=Mashup-приложения - эволюция SOA: Часть 1. Web 2.0 и основополагающие концепции
publish-date=02162009