SOA и ситуативные приложения: Часть 1. Изменение компьютинга в организацииИсточник: IBM developerWorks Россия Энди Дж. Ф. Бравери, Аруп Пандья, Люба Чербаков
ВведениеНа протяжении последних нескольких лет SOA получает все более широкое распространение и развивается как основная архитектура организации для поддержки бизнес-преобразований, обеспечивая более тесную связь между бизнес-процессами и использованием IT. Об успешных реализациях SOA и препятствиях к внедрению и успешной реализации SOA было написано немало статей. Пока организации определяли и претворяли в жизнь свои SOA-инициативы, недавний подъем массового компьютинга как среди профессиональных программистов, так и среди сотрудников, обладающих знаниями в области программирования, привел к возникновению другого подхода к разработке. В соответствии с этим подходом специалисты, лучше всего разбирающиеся в бизнес-проблеме, разрабатывают решения ускоренным методом без обычных непроизводительных издержек и формализма традиционных IT-методов. Новое поколение ситуативных приложений (SA), которые зачастую разрабатываются программистами-любителями итеративным и коллективным способом, сокращают традиционный жизненный цикл разработки на этапах редактирования-компиляции-тестирования-запуска. SA имеют потенциал для решения неотложных бизнес-проблем наиболее рентабельным способом благодаря тому, что они фиксируются на той части информационных систем, которая непосредственно влияет на конечных пользователей, и нацелены на области, которые в организации до сих пор считались слишком узкоспециализированными или низкоприоритетными. В данной серии статей о ситуативных приложениях: Часть 1:
Часть 2:
Часть 3:
Подъем в сфере ситуативных приложений, использующих сеть Интернет
Признанный в широких кругах термин ситуативные приложения относится к таким приложениям, которые создаются для разрешения конкретной ситуации, проблемы или задачи. Жизненный цикл разработки для этого типа приложений отличается от традиционной разработки SOA-решений специалистами по IT. SA-приложения обычно создаются нештатными программистами с использованием коротких, итеративных жизненных циклов разработки, которые часто измеряются днями или неделями, а не месяцами или годами. По мере изменений требований малого коллектива, использующего данное приложение, SA часто продолжает развиваться, вбирая в себя эти изменения. Существенные изменения в требованиях могут привести к полному отказу от используемого приложения, в некоторых случаях легче разработать новое приложение, чем изменять старое. Идея компьютинга для конечного пользователя в организациях не нова. Разработка приложений непрофессиональными программистами при помощи IBM Lotus Notes, электронных таблиц Microsoft Excel в сочетании с Microsoft Access или других инструментов получила широкое распространение. Новое заключается в сочетании впечатляющего роста компьютинга силами пользовательских сообществ и общим повышением квалификации пользователей, появлением новых технологий и возрастающей потребности в динамичности бизнеса. Появление таких технологий, как Asynchronous JavaScript + XML (Ajax), которые используют упрощенный доступ к данным в сети Интернет и полнофункциональные элементы управления пользовательского интерфейса (UI), в сочетании с архитектурным стилем Web-сервисов Representational State Transfer, REST (передача репрезентативных состояний) предоставляет удобную палитру для сборки высокоинтерактивных приложений на основе браузера. Как и решения на базе SOA, SA-приложения редко разрабатываются с нуля, чаще они собираются из уже существующих компоновочных блоков (или запасных частей , как принято их называть). Наиболее известное подмножество SA - это гибридные приложения (Mashup). Обилие несложных интерфейсов прикладного программирования (API) и использование Web-компонентов в стиле Ajax (например, шаблоны проектирования Yahoo Developer Network и API, представленные на Web-сайте ProgrammableWeb.com) внесли свой вклад в рост популярности этого стиля разработки. В результате получили новую жизнь более старые Web-технологии, например JavaScript. В таблице 1 перечислены факторы, которые внесли свою лепту в рост популярности ситуативных приложений (SA), использующих интернет, среди обладающих специальными знаниями в области программирования сотрудников и профессиональных разработчиков.
Сравниваем SOA и SAОдни специалисты говорят о натянутых отношениях между SOA и SA. Они отмечают, что SOA фокусируется на предоставлении надежных масштабируемых на уровне организации решений, тогда как SA представляют собой "доморощенные" приложения, масштабирование которых для удовлетворения бизнес- потребностей невозможно. Другие отмечают синергизм в отношении этих двух технологий, как, например, в блоге, описывающем Web 2.0 (одним из аспектов которого и являются SA-приложения) как "реально самый масштабный образчик сервис-ориентированной архитектуры из всех возможных". Наши наблюдения показали, что хотя SOA и SA имеют контрастирующие жизненные циклы и мотивацию разработки, различные шаблоны применения и используют совершенно разные технологии, у них есть немаловажные общие аспекты.
В то время как компоновочный центр SOA размещается на стороне сервера прозрачно для пользователя, многие SA используют сеть Интернет как платформу, часто фокусируясь на компоновке сервисов на архитектурном уровне потребителя, "на стекле ". Жизненный цикл разработки и шаблоны примененияВ отличие от разработки на базе SOA, которая часто занимает много месяцев и даже лет, при разработке SA-приложений предполагаются значительно более короткие жизненные циклы от идентификации потребностей до начала эффективной работы с приложением и получения экономического эффекта от повышения производительности и функциональности (показатель time-to-value). Такие решения могут разрешить некоторые неотложные бизнес-проблемы рентабельным способом-за счет привлечения той части информационных систем, которая напрямую касается сотрудников, обладающих специальными знаниями в области программирования,-и нацелены на те области, которые ранее считались слишком узкоспециализированными или низкоприоритетными, чтобы включать их в SOA-проект; с легкой руки Криса Андерсона (Chris Anderson) их иногда называют "хвостатыми решениями" (the Long Tail). При помощи этой парадигмы разработки информационные системы могут осуществить автоматизацию бизнес-областей, которые ранее считались неохваченными. В отличие от корпоративной SOA разработки, SA можно рассматривать как движущиеся мишени и вечные бета-версии. Требования часто предлагаются и даже реализуются пользователями, которые не были первоначальными авторами или пользователями приложения; это свидетельствует о заинтересованности сообщества и психологии владельца, которые давно уже исчезли из традиционной контролируемой среды корпоративного приложения. В таблице 2 представлено подробное сравнение SOA и SA-приложений. Таблица 2. Жизненные циклы разработки SOA и SA
|
SOA |
Ситуативные приложения (SA) | |
---|---|---|
Заинтересованные лица |
Руководители направлений бизнеса / IT-специалисты организации |
Отдельные разработчики / самопроизвольно сформировавшиеся небольшие коллективы, сообщества пользователей, которые собрались для разработки SA |
Целевые пользователи |
Крупные, неспециализированные группы |
Известный отдельный пользователь (часто создатель приложения) или небольшой коллектив, привлекающий пользователей, для которых данное приложение специально не разрабатывалось |
Механизм руководства |
Централизованный, формальный |
Обычные люди, члены пользовательского сообщества |
Развитие |
Управляется по вертикали сверху вниз, проводится централизованно, зависит от наличия финансирования |
Естественное, постепенное, на основе обратной связи и участия пользователей |
Создатели SA говорят, что испытывают глубокое удовлетворение от результатов своей работы и чувствуют, что все "под контролем". Маркетинговое исследование IBM показывает, что пользователи SA-приложений рассматривают их как особенно важные. Больше половины пользователей считают их "критически важными для бизнеса" и дают им оценку "очень важно" для успеха их личной повседневной деятельности, а также деятельности подразделений и компаний в целом (из отчета "Changing the corporate IT development model: Tapping the power of grassroots computing" (Изменение корпоративной модели разработки информационных систем: эффективное использование массового компьютинга) (октябрь 2007 г.).
А теперь давайте рассмотрим технологические изменения (перечисленные в таблице 4), которые способствовали повышению роли SA-приложений.
Концентрация SA на использовании опыта пользователей и высокоинтерактивных клиентских приложений полностью соответствует тому, какие технологии и инструменты в ней применяются. Ajax, благодаря использованию эффективных элементов управления UI и доступа к данным, размещенным в сети Интернет, делает возможным значительное улучшение реактивности и производительности Web-приложений. Ajax достигает высокой интерактивности благодаря получению от сервера отдельных фрагментов страницы и обновления их в браузере.
Таблица 4. Особенности технологий SOA и SA
SOA |
Ситуативные приложения (SA) | |
---|---|---|
Зрелость |
Высокоразвитые, проверенные технологии |
Часто используются менее зрелые и развивающиеся технологии |
Предпочитаемые технологии, архитектурные модели и стандарты |
Язык описания Web-сервисов (Web Services Description Language, WSDL), WS-*, SOAP, язык исполнения бизнес-процессов (Business Process Execution Language, BPEL), платформа Java™ 2 Platform, Enterprise Edition (J2EE), XML |
Ajax, REST, Atom, RSS, нотация объектов JavaScript (JavaScript Object Notation, JSON), XML, микроформаты, Flash, Ruby on Rails, PHP, JavaScript |
Интерфейс пользователя |
Не имеет значения |
Предпочтение отдается стандарту полнофункциональных интернет-приложений Rich Internet Applications (RIA) через использование таких технологий, как Ajax, Adobe Flex, Adobe Integrated Runtime (AIR), OpenLaszlo и XAML Browser Application (XBAP), а также интеграции шаблонов "at the glass" (на стекле) |
Инструменты |
Автономная интегрированная среда разработки (IDE) |
На базе браузера |
Архитектурный стиль REST, использующий унифицированные идентификаторы ресурса Uniform Resource Identifiers (URI) для идентификации Web-ресурсов, делает возможной одинаковую доступность таких ресурсов из браузеров, мобильных устройств, серверных приложений, ссылки из сообщений электронной почты и закладки, благодаря чему этот стиль программирования становится привлекательным для широкого диапазона клиентских приложений. Поскольку сервисы в стиле REST могут использовать инфраструктуру Web для кэширования, они могут достигать более короткого времени отклика. Учитывая, что в REST не нужно обслуживать режим коммуникации, вы можете повысить масштабируемость сервера, используя этот стиль-можно использовать для обработки первого и последующих запросов разные серверы
Сообщества Web 2.0, сформировавшиеся в организации, часто считают, что деятельность IT-специалистов, отвечающих за реализацию SOA, является неэффективной и не может удовлетворить бизнес-потребности. Хотя многие энтузиасты SA считают SOA тяжеловесной, между этими двумя технологиями существует ряд замечательных сходств (как было показано ранее в данной статье).
Разработка и SOA, и SA-приложений часто мотивируется желанием привнести динамичность в бизнес. IT-специалисты не должны игнорировать комплементарный характер SOA и SA-приложений; SA-приложения вносят важные новшества, из которых SOA может извлечь выгоду, а именно:
Используя преимущества огромного потенциала разработки силами пользовательских сообществ в организации, SA могут сделать преимущества внедрившей SOA организации более всеобъемлющими. Эти возможности впечатляют, как показано ниже.
SA помогают в ведении бизнеса посредством:
SA улучшают бизнес-решения посредством:
SA способствуют повышению индекса ROI посредством:
В то же время введение SA в корпоративную вычислительную среду ставит новые проблемы перед подразделениями по информационным технологиям; эти проблемы перечислены ниже.
Отдел по информационным технологиям может рассматривать SA-приложения как "контролируемый" хаос, поскольку:
Интеграция SA-приложений выходит на передний план, поскольку:
Управление ситуативными и корпоративными приложениями вызывает сложности из-за:
SA вызывают проблемы с обеспечением безопасности, конфиденциальности и целостности данных, в том числе:
Внедрение SA-технологии в организации требует дополнительной гибкости от существующей инфраструктуры организации. SOA может способствовать смягчению некоторых проблем, например путем многократного использования сервисов и инфраструктуры, созданной SOA-инициативами, для управления, функционирования и руководства.
Хотя многие IT-подразделения скептически относятся к полезности SA для корпоративного компьютинга или остерегаются использовать разработанные за пределами организации API в периметре своих межсетевых экранов, дирекция по информационным технологиям IBM приняла решение разрешить использовать SA в своих организациях. Чтобы лучше разобраться в проблемах и возможностях внедрения разработки в рамках сообщества, дирекция по информационным технологиям IBM разработала инициативу, которая получила название среды ситуативных приложений (Situational Applications Environment, SAE). На рисунке 1 изображена схема динамического лабораторного эксперимента по изучению SAE и выработке передовых методов.
Рисунок 1. Концепция SAE в IBM
Следите за выходом части 2 данной серии статей, в которой описываются архитектура и уроки, полученные при создании описанной среды SAE. Ниже перечислены ранние преимущества для бизнеса, которые мы наблюдали при изучении данной темы:
Использование SA-разработки вместе с SOA в корпоративном компьютинге может полностью изменить роль IT-специалистов и превратить их из разработчиков решений в специалистов по внедрению решений. Мы полагаем, что это необходимо для того, чтобы IT-специалисты сохранили свои позиции в организации.