Одиннадцать идей для СОА-архитекторов в 2007 году
Дайан Хинчклиф в своем блоге на сайте hinchcliffe.org
опубликовал идеи и тенденции развития сервисной архитектуры, которые
вероятно будут ключевыми в 2007 году. Всеобщее помешательство на SOA
очевидно идет уже не первый год (см. статистику с Google Trends), но
теперь за лесом стали видны деревья: отдельные технологии в рамках СОА
растут и развиваются, другие — остаются уделом новостного бума. Ввиду
того, что статья будет интересна многим читателям, сделаю вольный
пересказ статьи на русском языке.
Последние несколько лет изрядное количество компаний-разработчиков
внедряют веб-сервисы как формат интерфейсов, но получающиеся продукты
всё равно не складываются в общую СОА. Если задуматься почему это так,
то напрашивается ответ — при создании СОА забывают про букву А. Если
спросить программистов в софтверной компании, что они разрабатывают, то
они ответят веб-сервисы. А если обратиться с тем же вопросом к
системным архитекторам, то они ответят "мы строим СОА". Реалии
бизнес-процесса разработки таковы, что сжатые сроки и требования к
функциональности начинают играть основную роль, а архитектура остается
только брошюрах и презентациях.Есть отличная сфера, на примере которой
можно пронаблюдать и научиться как выстраиваются системы предоставления
и потребления сервисов, — это наш любимый World Wide Web. Amazon имеет
тысячи покупателей и большое количество веб-сервисов. Каждый месяц
появляется огромное количество примеров новых бесплатных сервисов,
доступных через браузер и составленных из удачного сочетания обращений
к публичным сервисам google, yahoo, flickr и других. Все эти проекты
базируются на простых веб-протоколах HTTP, XML, REST. Этого достаточно
для создания виджетов и Ajax-приложений.
Однако, правила сетевого мира сильно отличаются от мира традиционных
ИТ-инфраструктур, построенных вокруг операционных систем Windows/Linux
и стека приложений работающего поверх них. Именно за счет ориентации на
коммуникацию сетевые платформы принимают социальный характер и в
результате дают гораздо больший эффект, чем просто компьютеры
соединенные в сеть.
Для системных архитекторов, привыкших выстраивать единую структуру,
идеи коммуникации могут показаться странными или уж как минимум
несерьезными. Но тем более внимательно предлагаю вам присмотреться к
излагаемым ниже идеям:
11 идей для архитекторов СОА на 2007 год
- Делайте сервисы доступными через браузер. Веб-браузер всё
более становится тем окном, через которое пользователь получает сервисы
и где происходит интеграция разной информации. Если ваш сервис
недоступен через браузер, то пользователи и администраторы замучаются
использовать и настраивать отдельное приложение для вашего сервиса или
ещё хуже им придется дописывать какой-то адаптер, который необходимо
менять при изменении версии или платформы. Итак, не сделав сервис
доступным через браузер, вы просто вычеркиваете большое количество
потенциальных пользователей. Это не значит, что надо выбрость ваши WS-*
интерфейсы, но предусмотрите возможность использования REST или JSON. - Рассмотрите представление сервиса в виде ленты. Браузер —
важная точка потребления сервиса, а в нем растут экосистемы синдикации
контента, и блогосфера — лучший тому пример. Всё больше становится
инструментов для потребления потоков RSS и ATOM (как через браузер, так
и отдельных приложений). Очень внимательно рассматривайте варианты
предоставления сервиса в RSS формете или тем более ATOM, в который
заложена модель REST. Это также разнообразит включение вашего сервиса в
более сложные сценарии. Не каждый сервис может или должен быть
представлен в виде ленты; но задумайтесь, сейчас доступно более 10
миллионов RSS -потоков, хотя начиналось всё с нуля в начале 2003 года.
А сколько SOAP-сервисов сейчас общедоступно в мире? Малая, очень малая
часть. - Адресуйте информацию с помощью URI. Это пожалуй самая важная
идея. Гиперссылка — это фундаментальный элемент веба и он должен быть
заложен в дизайн вашего сервиса. Создав для каждой дискретной порции
информации свой URI моментально позволяет сервису и всем данным,
которые передаются через интерфейс, быть бесконечное количество раз
адресованными и употребленными в разных сценариях. Один из наиболее
важных социальных эффектов — распространение ссылок, а также их
последующая индексация и попадание в базы поисковых систем. - Используйте Ajax для веб-интерфейса. Это идея продолжает
идею про браузер. С распространением быстрых машин и широких каналов
форма работы через браузер стала общедоступной. Ajax-приложения не
требуют обновлений на клиентской стороне, не требуют административных
прав на машине, не требуют установки дополнительных плагинов, а также
удобны и привычны для пользователя. Использование Ajax подразумевает
выполнение функциональности на сервере, поэтому Ajax и SOA могут идти
рука об руку и дополнять друг друга в предоставлении услуги. Ещё раз
обращаясь к идее 1, главный недостаток современных СОА — они не
доступны для Ajax. - Превращайте СОА в деньги. В СОА-проектах зачастую те, кто
владеет системами, функции которых делаются доступными как сервисы, не
любят краткосрочные результаты: большие проблемы с поддержкой,
дополнительная плата за расширение каналов, дополнительное железо для
вспомогательных элементов и так далее, и так далее. Выбор и измерение
показателей использования сервиса, назначение платы за обращения,
выстраивание бизнес-модели работы с клиентами и партнерами, — всё это
поможет держать под контролем предоставляемую услугу и дать новые
источники дохода. - Дайте пользователям инструмент. Раз уж у каждого
пользователя стоит на столе PC, то он должен иметь возможность получать
ваш сервис. Но помимо самого сервиса, у пользователя должен быть
инструмент комбинирования и сборки чего-то собственного с
использованием вашего сервиса. Хорошие новости заключаются в том, что
подобные инструменты появляются и постепенно распространяются. - Задумывайтесь о масштабах Сети. Многи компании строят СОА
масштаба своей организации, но очень редко они могут быть
масштабированы на весь интернет. Например, если заказ или
предоставление услуги включает фазу обработки человеком. Гибкость,
адаптируемость и легкая масштабируемость может оказаться невозможной,
если СОА была неправильно спроектирована. Не забывайте
концентрироваться на выстраивании операций и следите за доступностью и
временем задержки. - Предлагайте СОА как графический сервис через виджеты.
Становление и распространение виджетов, позволяющих легко добавить
некую функциональность на собственную страничку, было очень важной
вехой в 2006 году. Виджеты обычно обращаются к серверной инфраструктуре
(читай к СОА-сервисам) и являются блоками на Javascript или Flash,
визуализирующими результаты. Это ещё один эффективный способ сделать
для СОА "лицо" и дать возможность использовать её разными и порой
непредсказуемыми путями. Замечание: Если вы считаете, что это несерьезно, то посмотрите какие сервисы уже доступны на WidgetBox. - Реализуйте JSON как опцию серсива. При всей своей
универсальности, XML далеко не самый быстрый способ работы с данными,
особенно, если приходится иметь дело с большим количеством числовых
данных. JSON (Javascript Object Notation) получил распространение
совсем недавно как очень компактный способ пересылки информации по
проводам. Наличие JSON может относится не к ядру сиситемы, а к
интерфейсам. Так например, упростит использования на Flash-платформах. - Наберитесь мужества быть онлайн. Предоставление онлайн
сервисов кардинально отличается от распространения софта на CD. Многие
это понимают, но не всегда осознают какой набор новых задач порождает
решение "быть онлайн". Продукт эволюционирует, постоянно включает новые
изменения. Пользователи оказываются тесно связанными с системой,
отвечая на каждые изменения и экспериментируя над вашим сервисом. Даже
если ваша корпоративная СОА ещё не работает в таком режиме,
использование онлайн метрик, мониторинга и управления в реальном
времени всё равно является первоочередной задачей. Концепция Enterprise
2.0 — это передняя линия, на которой происходят все изменения и
нововведения в компании, с использованием социальных инструментов,
таких как блоги и wiki. Но не ошибитесь; слепое разворачивание платформ
для wiki не создает Enterprise 2.0. Только удержание общей архитектуры
и понимание роли каждого инструмента даст успешный результат. - Используйте Глобальную СОА. Всё чаще встречаю корпоративные
приложения, обращаюшиеся к информации, хранящейся в интернете. Web уже
сейчас может предложить самое богатое разнообразие сервисов, не важно
внутри или вне стен компании. Поэтому нет смысла строить свой маленький
изолированный островок СОА и не включаться в Глобальную СОА. В вебе уже
существует большое количество API и миллионы потоков RSS и ATOM.
Главные задачи — управляемость, безопасность и возможность провиженинга
новых сервисов внутрь СОА вашей компании. Тот, кто их решит успешно,
может получить самую большую отдачу от SOA.
Большая часть озвученных идей — аспекты главной тенденции года:
смотрите на лучший опыт, который появился с приходом Web 2.0 и был
протестирован на тысячах пользователей сети, и используйте его в своих
компаниях.
Если у вас есть другие идеи в рамках общей тенденции, я с
удовольствием устроил бы их обсуждение и включил бы в указанный
Хинчклифом список.
- Войдите на сайт для отправки комментариев