Untitled Document

IBM®

Кунал Митал, директор, Sony Pictures Entertainment

Управление SOA для разработчиков и архитекторов

Узнайте, как оно влияет на вас и на вашу работу сегодня

developerWorksИсточник: сайт представительства корпорации IBM в России, раздел « developerWorks Россия », 13 .12.2005

http://www.ibm.com/developerworks/ru/library/ar-soaben/

Уровень сложности: средний

Управление SOA становится предметом больших споров. Корпоративные группы IT и руководители информационной службы создают новую политику управления в отношении SOA, корпоративную архитектуру, жизненный цикл разработки программного обеспечения (ЖЦРПО), и т. д. Узнайте об управлении с точки зрения разработчика, включая основные этапы управления, важность управления, и то, как быть более продуктивным в повседневной деятельности. Понимая данную точку зрения, вы сможете узнать, как избежать столкновений с командами разработки по проблемам управления.

В статьях об управлении обычно обсуждается изменение той роли, которую начинает играть управление, когда компании более зрело внедряют сервис-ориентированную архитектуру (SOA). В то время, как группы корпоративной архитектуры разрабатывают политики управления и процедуры, а руководитель информационной службы формирует комитеты по обеспечению управления, группы по разработке приложений начинают интересоваться тем, как это повлияет на них. Часто эти группы занимают непримиримую позицию: "Эти корпоративные парни -- они не понимают мою работу и мои приоритеты. У меня нет времени и денег, чтобы заниматься этим!"

Эта статья проясняет ценность управления для команд по разработке приложений. Она также помогает архитекторам понять точку зрения групп разработки и то, как скорректировать их идеи таким образом, чтобы получить больше закупок и меньше противодействия.

Что же такое управление?

В последней статье developerWorks "Ведение в управление SOA" (ссылку см. в разделе Resources ) управление обсуждается подробно. В статье управление определяется как средство установления и обеспечения совместной работы группы.

Управление подразумевает наделение полномочиями. Оно обеспечивает основные принципы политики и лучшие способы, которые могут быть использованы, чтобы определить, кто имеет право принимать IT-решения разного рода. Оно также помогает людям чувствовать ответственность за принятие таких решений. Многие аналитики проводят чёткие различия между управлением и менеджментом, и важно снова повторить эти различия.

Управление не подразумевает конкретных IT-решений; оно определяет роли людей, которые способны принять эти решения. Конкретные IT-решения принимают уполномоченные менеджеры, руководствуясь этими указаниями.

Вы в замешательстве? Подумайте о ваших SOA-проектах; управление в таких проектах сложнее, чем в традиционных проектах. Сейчас вы создаёте небольшие сервисы, которые все хотят (и должны) многократно применять. Политики управления определяются таким образом, чтобы контролировать жизненный цикл этих сервисов с целью максимального увеличения их многократного использования. Вы постоянно должны отслеживать, кто выпускает сервис, как он разрабатывается и строится, кто платит за него, кто управляет безопасностью и ещё множество вещей.

Управление - это ключ к успеху вашего SOA-проекта. Без управления вы не сможете полностью осознать всю ценность вашей SOA; без него всё может закончиться неразберихой.

Почему управление?

Ценность управления может проявиться не сразу. Вы можете не оценить важность политик управления до тех пор, пока не завершится первый проект SOA. Тем не менее, многие практикующие специалисты SOA выступают против того, чтобы начинать этих определение политик заранее, даже до начала первого проекта по созданию сервисов.

Управление предотвращает возникновение хаоса, определяя правила и политики по созданию сервиса, обнаружению сервиса, идентификации и многократному использованию сервиса, и т. д. Оно определяет соглашения по уровню обслуживания, т. е как сервисы должны функционировать, чтобы и потребитель, и провайдер знали свои ограничения и ожидания. В двух словах, управление даёт и провайдеру и потребителю одинаковую точку зрения на качество сервиса. Управление также предотвращает или уменьшает число избыточных сервисов и лишних усилий, определяя процесс регистрации и обнаружение сервиса по всей корпорации.

Политики управления гарантируют, что вы выполняете стандартные процессы и обладаете надлежащей документацией на каждом шаге процесса. Это позволяет решить законодательные, регулирующие и другие вопросы соответствия, например Sarbanes-Oxley.

Как избежать типичных ошибок при внедрении структур управления

Команды по разработке приложений и централизованная группа по корпоративной архитектуре (КА) часто борются из-за того, что группа КА вырабатывают процессы, процедуры, руководящие принципы и т. д., находясь в вакууме. Очень часто они не советуются в подробностях со всеми командами проекта, чтобы понять их уникальные требования проекта, временные рамки и деловые управляющие программы. Ключевое слово в предыдущем предложении - всеми . Группы КА могут чувствовать, что достаточно побеседовать только с проектными группами, которые

  • работают над самым большим проектом
  • работают над самым заметным проектом
  • с которыми легче всего работать

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

Наилучшей тактикой для группы КА будет начать с маленького проекта и продемонстрировать ценность управления на этом проекте. Таким образом они смогут продемонстрировать ценность быстро, а затем перенести эти преимущества на большие проекты и на все остальные группы.

Рекомендация состоит в том, чтобы разделить лиц, ответственных за работу политики, и осуществляющих её лиц из этих групп КА. Группы КА должны функционировать как наставники. Они должны показывать группам разработки приложений, как использовать лучше сформулированные руководящие принципы, как следовать стандартной практике и объяснять политику управления этим группам. Они не должны выполнять функцию "надзора", стремясь убедиться, что группы разработчиков подчиняются всем руководящим требованиям. Исполнение политик управления должно быть возложено на руководящий комитет или орган управления, наделённый полномочиями для выполнения этой роли. Рисунок 1 показывает наивысший уровень того, как офис руководителя информационной службы может построить такую организацию.

Рисунок 1. Структуры управления


Структуры управления

Разные участники, показанные на рисунке 1, должны работать совместно, чтобы обеспечить успех SOA и отдельных проектов. Наблюдательный совет управления - это группа, определяющая политику, а корпоративный архитектор - это связующее звено между этой группой и специализированной IT-группой (архитекторов и разработчиков приложений). Вы не сможете создать успешную SOA, если эти группы будут постоянно находиться в состоянии войны. Оставшаяся часть статьи посвящена той роли, которую играют в проекте корпоративные архитекторы, архитекторы приложений и разработчики.

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

Управление SOA - это социальное изменение. Корпоративный архитектор играет роль учителя или воспитателя, а не полицейского. Контроль может обеспечиваться наблюдательным советом. Ваша роль как наставника команд по разработке приложений заключается в том, чтобы показать им ценность управления; как они могут выиграть от процессов управления, его политик и механизмов на месте; и как дополнительные усилия по следованию этим политикам может помочь им стать более продуктивными и представлять большую ценность для бизнеса. Вы должны стать продавцом, который пытается понять восприятие командой разработки приложений неудобств, возникающих от всей этой новой политики, и который помогает им внедрить управление в их деятельности. Проявите сочувствие к тому, как они себя ощущают, но будьте готовы ответить на непростые вопросы. Вам нужно самим понять и оценить важность управления перед тем, как вы поможете остальным сделать это.

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

Успех программы управления лежит на плечах корпоративного архитектора. Если ваше взаимодействие с архитекторами и разработчиками приложений будет проводиться правильно, вы поможете всему проекту продвигаться вперёд более гладко.

Управление для архитекторов приложений

При первом столкновении с управлением реакция большинства архитекторов приложений такова: "Большой Брат наблюдает за тобой." Эта реакция оправдана. Тем не менее, как архитектору приложений вам нужно начать понимать и принимать ту ценность, которую несёт управление. Управление поможет вам устранить все пробелы между людьми и процессами, чтобы вы концентрировались не только на приложениях или проектах. Ваша роль заключается не только в том, чтобы убедиться, что вы соответствуете всем политикам и процессам управления. Вы также должны продемонстрировать, насколько эти политики эффективны или неэффективны, и помочь вашей команде понять и извлечь выгоды от применения этих политик на месте. Вы должны убедиться, что инструменты на местах позволяют вам производить ваши приложения или сервисы более эффективным способом.

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

Также важно помнить, что управление не берёт на себя вашу работу. Вы всё ещё играете роль архитектора, который должен проектировать приложения или сервисы. Управление только даёт вам руководящие принципы и параметры, чтобы помочь вам в ваших разработках. Оно отвечает на некоторые вопросы, включая требования масштабируемости, доступности и т. д.

Управление для разработчиков

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

Политики управления показывает вам, как создать свои сервисы, как вы можете найти сервисы, созданными другими, и доступные для вас, и каким соглашениям по уровню обслуживания вам необходимо соответствовать. Она также обеспечивает вас всеми необходимыми инструментами для выполнения этой задачи. Управление уменьшает вероятность возникновения всего того непредсказуемого и неизвестного, что может появиться при внедрении SOA. Итак, управление на местах может уменьшить проблему перекладывания вины, обеспечивая чёткий набор стандартов и стратегий, которым нужно следовать.

Заключение

SOA - это корпоративная архитектура, которая основана на сервисах или ориентирована на сервисы. Вопросы управления не являются чем-то новым. Первым признаком управления в IT-организациях являлось формирование групп КА или служб управления проектами. Это принесло свои выгоды и проблемы. Тем не менее, управление становится всё более важным, в то время как IT-организации продвигаются по кривой зрелости SOA. Как члену команды IT -- архитектору или разработчику -- вам не нужно бояться управления; правильнее принять его, потому что оно поможет сделать вашу работу менее напряжённой. Вы сможете быть более продуктивными, потому что управление избавляет от неизвестного и отвечает на основные вопросы о SOA. Оно также помогает решить законодательные проблемы, например соответствие Sarbanes-Oxley.

Управление и SOA требуют командной работы. В конце дня разным людям, вовлечённым в процесс, нужно работать вместе, чтобы обеспечить успех SOA и отдельных проектов.

Об авторе

Кунал Миттал (Kunal Mittal) - консультант, специализирующийся на Java-технологиях, J2EE, технологиях Web-сервисов. Он соавтор нескольких книг, внёсший свой вклад в публикации по данной тематике. Он работает директором в группе информационных технологий Domestic TV для Sony Pictures Entertainment, где отвечает за техническую архитектуру и управление приложениями для этого подразделения. Более подробную информацию вы можете получить на сайте www.kunalmittal.com, или связавшись с ним по адресу kunal@kunalmittal.com

E-mail this page