 | Уровень сложности: средний Энди Дж. Ф. Бравери, старший разработчик архитектуры информационных систем, IBM
Люба Чербаков, заслуженный инженер IBM, IBM
Аруп Пандья, старший разработчик архитектуры ПО, IBM
12.02.2009 В
первой
статье
данной
серии
рассказывалось о возможностях применения ситуативных приложений на базе Web (situational applications, SA) в
организации, их взаимосвязях с сервис-ориентированной архитектурой (Service-Oriented Architecture, SOA) и о том, как
эти приложения могут способствовать более эффективному использованию имеющихся в организации информационных систем. В статье описывается опыт
IBM®по созданию
среды ситуативных приложений (Situational Applications Environment, SAE), разработанной для поддержки
инициативы "Компьютинг силами сообщества пользователей" и использующей преимущества традиционной технологии SOA и развивающихся принципов и технологий Web 2.0.
Введение
В
первой части
данной
серии, посвященной ситуативным приложениям, рассказывалось об использовании шаблонов и технологий, которые
вносят свой вклад в наблюдаемый в последнее время рост доли разработки ситуативных приложений силами сообщества пользователей в
организациях, а также проводилось сравнение и сопоставление этих технологий с более традиционными
корпоративными SOA-инициативами. В статье были рассмотрены жизненные циклы, технологии и
социальные аспекты каждого из подходов. Затем мы рассказали о том, как можно использовать SA-приложения для повышения эффективности компьютинга в организации.
Во второй статье серии рассказывается о среде ситуативных приложений IBM SAE, которая была создана для того, чтобы помочь
индивидуальным разработчикам и коллективам разработчиков создавать специализированные составные приложения для решения
неотложных потребностей бизнеса. Из этой статьи вы можете узнать, что необходимо изменить в организации,
чтобы создать такую среду, и какие проблемы придется решать
в процессе ее создания. В частности, мы изучим организацию доступа к корпоративным данным,
жизненный цикл SA-приложений и их влияние на разработку традиционных приложений. Кроме того,
в этой статье вы найдете информацию о некоторых облегченных инструментах разработки.
В заключительной статье серии мы изучим несколько SA-приложений и опишем связанные с ними
бизнес-ситуации и проблемы, архитектуру, реальные бизнес-результаты,
технологии, лежащие в основе каждого решения, и полученные уроки.
Недавно появившиеся гибридные приложения (mashup) и API-концентраторы (API hubs), например, Programmableweb.com (см. ссылку в разделе
Ресурсы), способствовали
повышению популярности разработки простых приложений для удовлетворения неотложных и специфических потребностей заказчиков. Среда SAE создавалась с целью изучения возможностей создания в организации такой экосистемы, которая позволила бы бизнес-направлениям (LOB) быть более автономными за счет передачи части оперативных работ по автоматизации бизнеса от ИТ-подразделений на уровне организации отдельным коллективам разработчиков и индивидуальным разработчикам.
Для имитации действующей корпоративной экосистемы SA-приложений важно подобрать пользователей, имеющих взаимодополняющие квалификации.
Пользователи, занимающиеся вопросами бизнеса, знают, в каких областях создание новых приложений может обеспечить быстрое повышение эффективности бизнеса. Пользователи, занимающиеся вопросами технологий, имеют четкое представление о
концепциях программирования и сложности информационных ресурсов. В таблице 1 представлены
различные роли в SA-сообществе
Таблица 1. Роли пользователей в
сообществе, ориентированном на создание SA-приложений
| Роли | Атрибуты | Требования |
|---|
| Пользователи SA-приложений | Бизнес-пользователи:
- Знают потребности бизнеса
- Нуждаются в быстром реагировании
- Используют стандартные программные инструменты
|
- Оперативно находят SA-приложения и работают с ними.
- Оценивают SA-приложения и комментирует их
- Описывают бизнес-потребности для новых SA-приложений
- Требуют от SA-приложений получения реального бизнес-выигрыша
|
|---|
| Сборщики SA-приложений | Квалифицированные бизнес-пользователи или разработчики бизнес-направлений (LOB):
- Хорошо разбираются в формулах электронных таблиц
- Понимают/тесно связаны с бизнес-потребностями
- Умеют создавать SA-приложения
- Используют инструменты на базе браузера
|
- Могут обратиться к спектру инструментов, чтобы получить знания и навыки в предметной области
- Составляют приложения из компоновочных блоков
- Обеспечивают руководство через программирование с использованием примеров, шаблоны, утилиты и
т. п.
- Предоставляют SA в коллективное пользование и участвуют в их улучшении
|
|---|
| Создают компоновочные блоки | Разработчики LOB или IT:
- Имеют профессиональную квалификацию в традиционном программировании
- Понимают проблемы интеграции
- Используют весь спектр инструментов программирования
|
- Имеют доступ к корпоративным информационным ресурсам
- Используют инструменты и утилиты для создания компоновочных блоков
- Используют шаблоны в качестве ориентира для создания ресурсов многократного использования
- Используют для запуска компоновочных блоков облегченные серверы
|
|---|
С появлением социальных взаимодействий, связанных с Web 2.0, безграничная мощь и
креативность трудовых ресурсов корпорации стала более достижимой и сплоченной, чем когда-либо
раньше. Среда SAE предоставляет средства, необходимые для обеспечения взаимодействия
между этими группами пользователей, в результате чего мы получаем "действующую" лабораторию, в которой можно изучить бизнес-преимущества SA-приложений
для организации.
Архитектура SAE
Центром среды SAE является домашняя страница. Эта страница привлекает внимание пользователей к самым свежим и популярным дополнениям от сообщества (таким, как компоновочные блоки, SA-приложения и самые последние темы форума), предлагает инструменты для решения конкретных задач, а также информирует пользователей о корпоративных рекомендациях по интерпретации данных и использовании внешних и внутренних сервисов.
На рисунке 1 показаны некоторые основные функции домашней страницы SAE.
Рисунок 1. Домашняя страница SAE
На рисунке 2 показана схема основных архитектурных компонентов SAE
Рисунок 2. Компоненты
архитектуры SAE
Ресурсы, созданные или найденные членами сообщества, хранятся в каталоге. Эти ресурсы
представляют собой либо ссылки на готовые SA-приложения, либо фрагменты, из которых можно собрать SA-приложения. Это могут быть Web-
сервисы, виджеты на JavaScript, API или фрагменты кода, которые называются
компоновочными блоками.
Каждая запись в каталоге описывает детали ресурса и предоставляет примеры его
использования и соответствующую контактную информацию. Эти детали включают минимальную классификацию,
дополненную тэгами. Пользователи могут оставлять комментарии по поводу записей и регистрировать подробные описания
собственных примеров применения. Кроме того, они могут добавлять тэги, а записям и тэгам может
присваиваться рейтинг в зависимости от популярности и релевантности. Такая формируемая пользователями таксономия, или
так называемая "народная" таксономия (folksonomy), впоследствии используется для фильтрации записей наряду
с более традиционными методами поиска по ключевым словам.
Хотя каталог открыт для анонимного просмотра, чтобы пользователь мог добавить свою запись, ему необходимо
удостоверить свою личность через сервис корпоративной аутентификации. Такое подтверждение
личности ассоциирует контактную информацию пользователя из корпоративного
каталога с записью в каталоге, тем самым способствуя формированию сообщества.
Сами ресурсы могут размещаться либо в инфраструктуре SAE, либо на серверах, принадлежащих
пользователям, добавившим ресурс, или сторонним партнерам.
Среда SAE представляет сервис поиска по ключевым словам и тэгам, который доступен другим
приложениям через информационные каналы Atom и API OpenSearch. Это означает, что SAE
одновременно является гибридным приложением и предоставляет компоновочные блоки, которые можно включить в другие
гибридные приложения.
С большинством представлений каталога ассоциированы информационные каналы Atom, на которые можно подписаться через
программу для чтения информационных каналов, что дает возможность пользователям получать свежую информацию или информацию об
обновлениях на форуме сообщества, которая доставляется без предварительного запроса и без необходимости заходить в сам каталог.
Инструменты и утилиты SAE
Инструменты SAE поддерживают шаблоны технологий, которые применяются разработчиками SA-приложений, например,
Web-сервисы в стиле Representational State Transfer (REST) и виджеты пользовательского интерфейса на базе технологии Asynchronous
JavaScript + XML (Ajax). Использование этих шаблонов в качестве
ориентира позволяет разработчикам создавать компоновочные блоки, которые совместимы
друг с другом и имеющимся набором инструментов.
Инструмент Enterprise Business Innovation (EBI) REST Framework предназначен для
создания Web-сервисов по технологии REST в виде надстройки к информационным ресурсам, хранящимся в реляционных
базах данных организации. Эта самостоятельная инфраструктура позволяет пользователям с начальным знанием языка SQL
определить сервисы и выбрать ответный протокол, например, объектную нотацию JavaScript
Object Notation (JSON) или XML.
Инфраструктура SAE предоставляет инструменты, которые позволяют получать данные, доступные
только на существующих Web-страницах, использующих HTML. Эти инструменты также предназначены, главным образом, для создания
API REST-сервиса, который маскирует "накопительную" логику, чтобы потребитель
сервиса не имел представления о его закулисной работе.
Среда SAE также включает экземпляр продукта IBM Mashup Starter Kit, который
состоит из следующих компонентов: QEDWiki
(для компоновки страницы из виджетов),
концентратора гибридных приложений Mashup Hub (для
каталогизации виджетов и информационных каналов)и инструмента гибридизации данных, который позволяет
создавать новые каналы данных путем комбинирования существующих корпоративных данных, как это делается на Web-ресурсе Yahoo!
Pipes (см. раздел Ресурсы).
Project Zero (см. ссылку в разделе Ресурсы) предлагает
простую среду для создания, сборки и выполнения приложений, созданных на основе
популярных Web-технологий. Его модели программирования построены на шаблонах REST, Atom и
Ajax и включают среду выполнения сценариев для Groovy и PHP.
В таблице 2 показаны возможности некоторых инструментов SAE.
Таблица 2. Обзор возможностей инструментария SAE
| Ситуативные приложения (SA) | Компоновочные блоки |
|---|
QEDWiki
- Инструмент макетирования страниц
- Расширяемая библиотека виджетов
- Компоновочные блоки информационных каналов RSS и Atom
- Привязка атрибутов виджетов
Project Zero
- Поддержка Dojo
- Автоматизированное создание Web-страниц
- Инструментарий Eclipse
|
Инфраструктура EBI framework
- Генерирует Web-сервисы REST
- Расширяемая библиотека виджетов
- Компоновочные блоки информационных каналов RSS и Atom
- Привязка атрибутов виджетов
Mashup Hub
- Генерирует информационные каналы RSS и Atom
- Доступ к корпоративным данным
- Библиотека операторов данных
- Инструмент визуальной компоновки
Project Zero
- Генерирует и потребляет REST-сервисы
- Генерирует и потребляет информационные каналы RSS и Atom
- Работа со сценариями PHP или Groovy
|
Размещение в среде SAE
После того, как пользователь создаст компоновочный блок или ситуативное приложение, он должен где-нибудь
его разместить. Некоторые из описанных выше инструментов, так называемые генераторы гибридных приложений (mashup makers)
, не нуждаются в развертывании, потому что объединяют в себе среду создания и выполнения.
Пользователи создают Web-страницы при помощи палитры компонентов, тестируют их, а затем предоставляют в совместное использование
готовое приложение, не заботясь об инфраструктуре. Платформа размещения
управляет всем циклом сборки, выполнения и предоставления в общее пользование при помощи полнофункциональных
компонентов на стороне клиента, при этом у пользователя возникает ощущение работы в интегрированной среде.
Остальные инструменты, которые используются в режиме автономной разработки, напоминающем традиционную
интегрированную среду разработки (IDE), требуют обязательного размещения.
SAE предоставляет набор облегченных виртуальных сред размещения, которые позволяют
снять с разработчиков SA-приложений обязанности по управлению инфраструктурой. Стеки размещения
выбираются в соответствии с обычно используемыми пакетами для создания SA-приложений и настраиваются на
автономную работу для минимизации затрат на централизованное администрирование. Типичный стек размещения
включает Web-сервер, функции работы со сценариями на стороне сервера и хранилище данных. Пользователи
могут загрузить код и внести небольшие изменения в конфигурацию, которые будут влиять только на данную
виртуальную платформу размещения. На данный момент SAE поддерживает базовые версии Linux, Apache, MySQL, PHP/Perl (LAMP) и Ruby
. В будущем планируется аналогичное предложение для приложений Project
Zero в дополнение к таким средствам, как хранение данных общего характера, подключение
загружаемых библиотек и сервисов хранения данных.
Наблюдаем
экосистему в действии
С момента запуска SAE в декабре 2006 года растущая активность сообщества дополнила
представление об экономической ценности, которую такая среда может обеспечить для
организации, несколькими интересными моментами.
Жизненный цикл приложения
Хотя многие SA-приложения используются в течение очень короткого периода (после чего от них отказываются) или никогда не
используются за пределами создавшего их коллектива, среди них есть и такие, которые завоевывают
внимание большого количества пользователей.
Приложение IBM Travel Maps, которое было зарегистрировано в SAE одним из первых, первоначально
разрабатывалось двумя исследователями как конкурент PHP. Travel Maps
размещало полезную для путешественников информацию, такую, как адреса объектов IBM, рекомендуемых
отелей, аэропортов, компаний, предоставляющих автомобили на прокат, ресторанов и других интересующих пользователей мест на
карте с возможностью навигации.
Хотя один из бизнес-партнеров IBM предоставляет автономную систему планирования и заказа билетов для организованных поездок IBM Online Travel Reservations
(OTR), на данный момент
эти система не имеет удобной функции отображения на карте
информации по запросу. Travel Maps предлагает такую функцию. Это
приложение стало таким популярным, что группа по управлению операциями с недвижимостью IBM
добавила его в интрасеть IBM уже через три недели после запуска SAE.
Развитие приложения продолжалось через архитектуру
участия, функцию Web 2.0, позволяющую описывать участие членов сообщества в разработке.
Никогда до этого гибридные приложения для путешественников не демонстрировали информацию о погоде, состоянии погоды для авиапассажиров и информацию, имеющую отношению к клиенту.
Модерация данных
Многие комментарии членов сообщества, имеющие отношение к IBM Travel Maps, касались качества информации, предоставляемой приложением. Существенная часть информации была
ранее скрыта от конечных пользователей, и, возможно, использовалась небольшим количеством людей, которые не могли
оценить ее точность. После того, как эта информация была выставлена на обозрение тех специалистов, которые
хорошо в ней разбираются, все неточности стали
очевидными. Местные сотрудники заметили, что детали размещения подразделений IBM и других интересующих пользователей мест
наносятся на карту неправильно, о
чем они незамедлительно сообщили через SAE. Подробная информация о неточностях была
немедленно передана владельцам, которые смогли изменить исходные данные.
Такая модерация данных сообществом похожа на участие пользователей в редактировании популярных Web-сайтов на базе Web
2.0, например, Wikipedia. В настоящее время в SAE планируется автоматизировать сбор информации обратной связи
с конечным пользователем и поддержка функций модерации данных сообществом на уровне, совместимом с
корпоративными политиками управления данными и безопасности.
Управление ожиданиями
Ситуативные приложения должны быть достаточно эффективными для выполнения конкретного задания. Часто для
пользователей не вполне очевидно, что приложение - это не традиционный готовый производственный
инструмент, особенно это касается пользователей, не входивших в коллектив, для которого он первоначально был создан.. Если
принимается бизнес-решение, связанное с использованием SA-приложения, то очень важно, чтобы
предполагаемые пользователи понимали задачи, которые ставили перед собой составители этого приложения.
Передовые методы по SAE советуют составителям SA-приложений предоставлять достаточно подробное
описание своих приложений и включать в SA-приложения ссылки на каталог SAE,
чтобы пользователь мог определить источник SA-приложения, оценить приложение и сообщить разработчикам свое мнение о нем. Существует
специальный виджет, который разработчики могут включить в свои SA-приложения, чтобы предоставить
такую ссылку. В следующих версиях этот виджет будет интегрирован в инструменты создания SA-приложений,
в результате чего он станет интегрированной частью любого SA-приложения, созданного с
помощью данного инструмента.
Эффективность
При традиционной разработке приложений привлекаются обширные ресурсы, чтобы гарантировать
высокую эффективность при создании хорошо продуманной глобальной архитектуры. Ситуативное приложение
составляется на скорую руку, часто в него включаются компоненты, которые
не были проверены разработчиком. Например, единственным способом получить данные может быть
неэффективный или сложный запрос, объединяющий несколько источников данных, в том числе, Web
-сервисы, несколько баз данных и Web-страниц (через методы сбора данных). В этом сценарии
есть несколько возможностей оптимизировать сбор данных.
Здесь мы имеем дело с компромиссом между обеспечением доступности данных, которые раньше не были доступными,
и достижением достаточной эффективности. В этом могут помочь методики кэширования информации, ведь
SA-приложения часто создаются для работы с относительно устойчивыми данными.
В большинство комментариев пользователи жалуются на недостаточную
производительность SA-приложений. К сожалению, конечный пользователь редко представляет себе сложность реализации
SA-приложений, и поэтому необоснованно ожидает от них чего-то большего. Безусловно, когда SA-приложения
становятся популярными и значимыми для бизнеса, специалистам по информационным технологиям корпорации следует рассмотреть
возможность инвестиций в превращение SA-приложения или его отдельных элементов, в более
надежное в отношении производительности приложение.
Экономическая ценность
Для любой отрасли бизнеса экономическая ценность, поставляемая технологией, является главным показателем ее успешности.
Инициативная группа SAE провела работу с представителями бизнес-направлений, чтобы идентифицировать SA-приложения, которые демонстрируют
измеряемую экономическую ценность. Лучшие кандидаты имели целью автоматизацию задач обработки данных с
высокой долей выполняемых вручную операций.
В одном из таких случаев наблюдалось 50-процентное повышение производительности в коллективе из 25
аналитиков, использующих новое SA-приложение; в другом случае, время, затрачиваемое на выполнение задачи, было сокращено
с 2,5 часов до 4 минут! Подробно эти и другие ситуативные приложения мы рассмотрим в
третьей статье данной
серии.
Планы на будущее
Предоставление экосистемы для поддержки разработки и использование SA-приложений в
организациях дают потрясающий эффект, если удается реализовать бизнес-преимущества таких
приложений. Руководители играют важную и трудную роль в изменении корпоративной
культуры таким образом, чтобы она стимулировала и поддерживала инновационное мышление и
самостоятельность отдельных сотрудников. IBM активно устраняет существующие технологические и культурные
барьеры для поддержки атмосферы предприимчивости. SAE разрабатывалась как развивающийся
эксперимент по внедрению и одобрению ситуативных приложений на корпоративном уровне.
Базовая архитектура SOA должна предоставить достаточное количество компоновочных блоков
для развития этой среды и дать толчок, который позволит ей стать самостоятельной.
Многие организации внедряют SOA на уровне стратегии, но
если корпоративным ИТ-специалистам приходится продвигать развитие SA-приложений
в качестве основного инструмента, необходимо предоставить составителям SA-приложений сервисы.
Хотя первоначальная версия SAE предоставляла решение некоторых из описанных здесь проблем,
в этой области еще многое предстоит изучить и понять, например, следующие моменты:
- Организация доступа к корпоративным источникам данных через автоматизированные
системы предоставления прав с учетом ролей.
- Происхождение данных.
- Усиление общего руководства, особенно в сфере
компоновочных блоков, созданных за пределами корпорации.
- Развитие генераторов гибридных приложений, ориентированных на бизнес-пользователей.
Более эффективные инструменты для создания SA-приложений и компоновочных блоков должны обеспечивать корпоративную
безопасность и политики управления, не возлагая этой обязанности на составителя SA-приложения.
Инфраструктура SAE в настоящее время расширяется за счет средств для публикации детализированных описаний бизнес-потребностей, которые позволят бизнес-пользователям обсуждать свои проблемы с техническим
сообществом, которое может помочь в их решении при помощи SA-приложений. Эта функция из "списка пожеланий пользователей"
обеспечивается той же функцией кооперации в стиле Web 2.0, что и остальные части
каталога SAE.
В части 3 статьи этой
серии мы
рассмотрим несколько ситуативных приложений. Эти приложения
отобраны таким образом, чтобы показать весь спектр проблем бизнеса,
для решения которых используются SA-приложения. Некоторые из них, как правило, используются сразу в нескольких направлениях бизнеса (lines of business, LOB) и представляют
интерес для самых разных специалистов. Другие являются специфическими для конкретного направления бизнеса, однако имеют типичные проблемы, которые могут быть
успешно решены средствами SA.
Помимо общего бизнес-контекста, для каждого рассматриваемого приложения мы
будем описывать препятствия, которые пришлось преодолеть при его создании, и архитектурную
схему окончательного решения. Мы также рассмотрим лежащие в основе решения технологии,
используемые инструменты и методы, ознакомимся с реальными бизнес-результатами, полученные в результате применения
каждого из них, передовые методы и полученные уроки.
Ресурсы Научиться
Получить продукты и технологии
- Придайте новизны вашему следующему
проекту разработки при помощи
ознакомительных версий ПО IBM,
которые можно загрузить с Web-сайта или заказать на DVD.
Обсудить
Об авторах  | 
|  | Господин Бравери (Bravery) работает в качестве старшего разработчика архитектуры информационных систем в архитектурном совете группы программного обеспечения (IBM Software Group Architecture Board),
в рабочей группе венчурных проектов Incubator Projects). Он принадлежит к числу директоров по информационным технологиям в IBM, выполнявших функции
главного архитектора Среды ситуативных приложений (Situational Application Environment, SAE), за что ему
недавно вручили премию IBM за выдающиеся технические достижения (Outstanding Technical Achievement). Господин Бравери имеет
богатый опыт работы в таких сферах развивающихся технологий,
как объектно-ориентированное программирование, управление контентом и порталами, а также
многоканальные архитектуры. В последнее время он занимался упрощенными моделями
программирования и технологиями Web 2.0 и их применением к разработкам в
организации. Г. Бравери является членом Британского компьютерного сообщества (British Computer Society), имеет
степень бакалавра в области физики от Университета города Бирмингем, Великобритания. |
 | 
|  | Люба Чербаков (Luba Cherbakov), заслуженный инженер IBM, является ведущим техническим специалистом в отделе прикладных инновационных услуг (Application Innovation Services) в IBM Global Services. Госпожа Чербаков - признанный специалист в области архитектуры, проектирования и разработки сложных корпоративных приложений с использованием сервис-ориентированных и основанных на использовании компонентов методов. Кроме того, она является автором, приверженцем и распространителем методов сервис-ориентированного моделирования и архитектуры (Service-Oriented Modeling and Architecture, SOMA) (см. раздел Ресурсы), ссылочных архитектурных ресурсов, стандарта архитектурных описаний (Architectural Description Standard) и grid-вычислений. Госпожа Чербаков является членом Компьютерного сообщества IEEУ (IEEE Computer Society) и Ассоциации по вычислительной технике (ACM) и имеет степень магистра в области вычислительной техники от Университета имени Джорджа Вашингтона (George Washington University), с основной специализацией в области программного обеспечения и систем и дополнительной специализацией в области искусственного интеллекта и моделирования. |
 | 
|  | Аруп Пандья (Aroop Pandya) является старшим разработчиком архитектуры ПО в офисе директоров по информационным технологиям. Он
имеет обширный опыт разработки программного обеспечения при помощи IBM WebSphere® Application
Server, IBM DB2®, NNTP и HTTPServer. |
Выскажите мнение об этой странице
|  |