
Под таким заголовком прошел очередной круглый стол CNews посвященный сервис-ориентированной архитектуре. Я так и не понял, кто и каким образом подчитал, что SOA-решения продаются существенно лучше прогноза. Но дело не в этом. Термин SOA по-прежнему жив, по крайней мере, в нашей стране. О нем действительно продолжают говорить, а значит эта тема до конца не раскрыта. Потому, позволю себе еще один «подход к снаряду».
Как выглядела архитектура до SOA? В общем-то, выглядела она довольно неплохо – разноцветные квадратики соединенные стрелочками. Квадратики олицетворяют системы или отдельные модули, а может и сервера, зависит от того, диаграмму чего вы рисуете. С появлением SOA старые архитектурные картинки, как бы, теряют свою актуальность. Новую архитектуру надо строить из сервисов. Что такое сервис и как его рисовать не очень понятно. Но какие-то основные отличия сервисов сформулировать можно.
Во-первых, сервис это нечто принимающее и обрабатывающее запросы. Модуль понятие статическое. На картинке он может вообще висеть в пустоте, без стрелок, олицетворяя факт своего существование. Сервис же он работает. Хорошо работает или плохо – другой вопрос. Для того чтоб это понять, есть второе отличие сервиса – сервисный контракт. Соглашение о том, какие запросы и как часто принимает сервис, насколько хорошо их отрабатывает и т.д. Кстати, и в связи с этим, сервис не обязан существовать вечно и работать так же хорошо как в первый день своего творения. Денег [клиент] не заплатил и сервис выключили. Ну и в третьих сервис в SOA это бизнес-сервис. Т.е. он не просто работает, а приносит какую-то ощутимую для клиента пользу. Про сервис мы знаем не только то, что он делает, но и зачем он это делает.
А теперь внимание вопрос архитекторам! Где вот эта новая архитектура, построенная из сервисов. В каком инструменте, с использованием какой нотации её рисовать. Где этот замечательный язык моделирования, который избавит нас от необходимости рисовать разные диаграммы (одну с серверами, другую с компонентами, третью с классами, а четвертую с процессами). Вопрос риторический. На просьбу показать просто архитектуру практически любой ИТ-шник способен предоставить ту или иную картинку. Но если нахмурить брови и строгим голосом спросить: «А где же здесь сервисы? Вы мне какую архитектуру принесли, сервис-ориентированную или как?!»… Скорее всего, в окружающем пространстве повиснет недоуменное молчание.