 | Уровень сложности: средний Ин Чунь Го, инженер-программист, IBM Навьен Сачдева, инженер-программист консультант, IBM Индраит Поддар (Indrajit Poddar), инженер-программист и консультант, IBM
03.02.2009 Обычно вопросы управления архитектурой SOA рассматривают со стороны провайдера сервисов, особенно если говорят о жизненном цикле сервиса. При этом почти не обращают внимания на потребителя или подписчика. Кому нужно предоставить возможность доступа к соответствующим конечным точкам сервисов? И как человеку, который обнаружил сервис, послать запрос о его использовании? Какой процесс предстоит ему при авторизации доступа к этому сервису? Ответы будут всегда разными, в зависимости от клиента. В данной статье ответы даются на основе примера с вымышленным приложением прототипа, которое мы называем Банк Jivaro, и здесь вы увидите, как можно применять WebSphere® Service Registry and Repository, а также WebSphere Process Server для реализации управления использованием сервисов и подпиской.
Введение
Банк Jivaro - вымышленный пример составного приложения, которое публикует банковские сервисы в специально настроенном реестре и хранилище сервисов WebSphere Service Registry and Repository под названием Jivaro Bank Service Registry (Реестр сервисов Банка Jivaro). Предполагается, что эти сервисы будут использоваться другими внутренними клиентами (внутренним мы называем клиента, у которого имеется учётная запись в реестре клиентов). Первая статья серии, Разработка составных бизнес-сервисов на базе сервис-ориентированной архитектуры (SOA), Часть 1: Разработка составных приложений на базе SOA для реализации бизнес-сервисов, познакомила вас с несколькими сценариями, которые поддерживает банковское приложение Jivaro. Инфраструктура безопасности Банка Jivaro при авторизации использует реестр клиентов с облегчённым протоколом доступа к сетевому каталогу (LDAP) на основе ПО Tivoli® Directory Server. При авторизации в качестве точки принятия решения используется Tivoli Access Manager как на машине пользователя WebSphere Portal, так и на сервере WebSphere Process Server. Чтобы вызвать банковские сервисы Jivaro, внутреннему клиенту нужно пройти авторизацию и согласиться с определенными условиями, которые являются частью контракта между провайдером сервисов и пользователем.
Для управления со стороны подписчиков и клиентов Банк Jivaro установил следующие политики:
- Подписчики на сервисы не могут видеть информацию о конечных точках сервисов и пользоваться ей без предварительной авторизации со стороны провайдера сервисов.
- Подписчики на сервисы должны иметь право на регистрацию интересующего их сервиса путем заполнения формы или контракта в реестре сервисов, который предлагает им провайдер сервисов.
- После одобрения подписчик на сервисы должен иметь возможность просмотра информации о конечных точках сервисов, вызова конечных точек, а также получать автоматические уведомления об обновлениях метаданных сервиса.
- Провайдер сервиса должен иметь возможность управлять сервисными контрактами с подписчиками на сервисы в реестре сервисов.
- Любой опубликованный сервис может иметь несколько конечных точек, а они могут быть приватными или публичными, тестовыми или производственными. Подписчики на сервисы имеют право просмотра только публичных конечных точек.
В данной статье дается обзор реализации этих политик в Банке Jivaro с помощью WebSphere Process Server и WebSphere Service Registry and Repository.
На рисунке 1 показан пример того, как потенциальный подписчик г-н Джеймс Ху в ходе выполнения своих бизнес-операций, например, проверки кредиторской задолженности, хочет вызвать опубликованный сервис Банка Jivaro (в данном случае - сервис Jivaro Bank Batch ACH Service для автоматического клиринга чеков). Сначала такому подписчику нужно подписаться на опубликованный сервис. После подтверждения подписки администратором он может найти публичные конечные точки для данного сервиса и пользоваться ими в своей деятельности. Вызовы из процесса проверки кредиторской задолженности будут проходить через модуль Jivaro Bank Batch ACH Service Mediation Module, который будет направлять такой вызов на одну из приватных конечных точек, основываясь на нескольких критериях. Этот модуль-посредник использует в пакетном запросе несколько проверочных процедур в качестве критериев для определения того, на какую внутреннюю конечную точку направлять данный запрос. Пример использования модулей-посредников WESB совместно с WebSphere Service Registry and Repository см. в разделе Ресурсы.
Банк Jivaro зарегистрировал две внутренних конечных точки в реестре сервисов Jivaro:
- highVolumeEndPoint (стоимость: 5 центов за одну проверку; быстрота реагирования: 2 миллисекунды на одну проверку; 10000 > проверок на пакет > 1000)
- lowVolumeEndPoint (стоимость: 3 цента за один запрос; быстрота реагирования: 20 миллисекунды на одну проверку; 1000 > проверок на пакет > 1)
Рисунок 1. Обзор процесса авторизации подписчика на сервисы Банка Jivaro
Анализ сценария
В этом сценарии 4 роли: абонент, подписчик, провайдер сервиса и ИТ-администратор (см. рисунок 2).
Рисунок 2. Вариант использования и роли в управлении процессом авторизации подписчика на сервисы Jivaro
Любой внутренний клиент, имеющий идентификатор в реестре клиентов Банка Jivaro, может стать абонентом реестра сервисов Банка Jivaro. Войдя реестр сервисов Банка Jivaro, абонент может видеть все сервисы, доступные по подписке (см. рисунок 3).
Рисунок 3. Представление для абонента реестра сервисов Банка Jivaro
Абонент может выбрать сервис и просматривать базовую информацию для него, например, версию, владельца и описание. Если сервис заинтересовал абонента, он может на него подписаться: см. рисунок 4.
Рисунок 4. Представление для абонента с подробной информацией по выбранному сервису в реестре сервисов Банка Jivaro
Подписываясь на опубликованный сервис, абоненту нужно создать экземпляр заранее заданного шаблона контракта в реестре сервисов Банка Jivaro, как показано на рисунке 5.
Рисунок 5. Создание экземпляра шаблона контракта Банка Jivaro Batch ACH Service в реестре сервисов Банка Jivaro
При создании экземпляра шаблона контракта абонент должен ввести значения для нескольких его пунктов, например, ожидаемое максимальное количество проверок в любом запросе, ожидаемое максимальное количество вызовов в час, ожидаемая быстрота реагирования и контактный адрес электронной почты (см. рисунок 6). Эта информация представляет интерес администраторам, потому что она нужна при планировании вычислительной мощности.
Рисунок 6. Элементы контракта Jivaro Bank Batch ACH Service при его создании из шаблона контракта в реестре сервисов
После того, как абонента выполнит запрос о подписке на сервис, реестр сервисов Банк Jivaro автоматически вызывает процесс предоставления прав подписчику, что показано на рисунке 7. Этот процесс выполняется в экземпляре WebSphere Process Server.
Рисунок 7. Процесс предоставления прав подписчику, связанный с реестром сервисов Банка Jivaro
Можно просмотреть более подробный вариант рисунка 7.
Выполнение задач
Первая задача в процессе предоставления прав подписчику выполняется вручную провайдером сервиса (см. рисунок 8). Провайдер сервиса - это владелец сервиса. В данном случае он проверяет способность инфраструктуры сервиса обрабатывать максимальное количество запросов в час с ожидаемой быстротой реагирования, которую указывает потенциальный подписчик в контракте Batch ACH Service Contract. Если мощности это позволяют, запрос подтверждается. Сервис-провайдер также предоставляет стоимость пользования различными внутренними конечными точками в рамках данного запроса.
Рисунок 8. Ручная обработка задач провайдером сервиса: подтверждение запроса о подписке и сообщение стоимости услуг Jivaro Bank Batch ACH Service
Следующая задача абонента - принять стоимость, сообщённую провайдером сервиса. После согласия со стоимостью в реестре сервисов будет создана модель контракта между провайдером сервиса и абонентом.
Следующая задача ИТ-администратора - наделить абонента правами просмотра публичных конечных точек сервисов, на которые он подписан в реестре сервисов Банка Jivaro. Это делается добавлением учетной записи пользователя - абонента в список соответствующих ролей, например, CHServiceSubscriberRole, в реестре пользователей LDAP-каталога. На заключительной стадии этого процесса ИТ-администратор создает запись о подписке в WebSphere Service Registry and Repository с помощью электронного адреса, предоставленного абонентом. Запись о подписке автоматически информирует абонента при изменении атрибутов в записи сервиса в реестре сервисов Банка Jivaro .
На этом процесс наделения подписчика правами завершается, и абонент переходит в статус подписчика. Теперь абонент может войти в реестр сервисов Банка Jivaro для просмотра подробностей о сервисе, на который он подписан, например, публичных конечных точек и зависимых сервисов. Подписчик также имеет право вызывать сервисы, на которые он подписан, в точке принятия решения политики авторизации на основе Tivoli Access Manager.
Заключение
Данная статья познакомила вас со сценариями Банка Jivaro и с обзором методов использования WebSphere Process Server, а также с WebSphere Service Registry and Repository для реализации управления на стороне подписчика. Вы увидели, как WebSphere Service Registry and Repository предоставляет контроль доступа на основе ролей и как его можно использовать для управления сервисами и компонентами, связанными с сервисами, например, контрактами. В этой статье также показано, как WebSphere Process Server может расширять WebSphere Service Registry and Repository и содействовать оптимизации выполняемых человеком рабочих процессов, например, процесса предоставления подписчику определённых прав.
В следующей статье данной серии
это решение будет описано более подробно. В ней будет рассмотрена индивидуальная настройка WebSphere Service Registry and Repository, интеграция WebSphere Service Registry and Repository с WebSphere Process Server, а также рабочие процессы и разработка соответствующего пользовательского интерфейса в WebSphere Integration Developer.
Ресурсы Научиться
- Оригинал статьи: Building SOA composite business services, Part 10: Providing governance over service consumption using WebSphere Process Server and WebSphere Service Registry and Repository (EN).
- Подпишитесь на RSS-канал и получайте уведомления о новых статьях этой серии. (Узнайте подробнее об RSS-каналах на сайте developerWorks).
- Прочтите статью "Адаптация составных бизнес-сервисов с помощью точек изменчивости, часть 5: Использование WebSphere Service Registry and Repository" (developerWorks, 2007 г.) и узнайте, как использовать модули-посредники WESB с WebSphere Service Registry and Repository (EN).
- Посетите Информационный центр по WebSphere Service Registry and Repository для получения дополнительной информации.
- Посетите Информационный центр по WebSphere Process Server и ознакомьтесь с более подробной информацией
- Прочтите статью "Разработка составных бизнес-сервисов на базе сервис-ориентированной архитектуры (SOA), Часть 1: Разработка составных приложений на базе SOA для реализации бизнес-сервисов" и вспомните основы составных бизнес-сервисов SOA.
- Узнайте о конфигурации системы безопасности Банка Jivaro: выход статьи планируется на сентябрь 2007 г., ее название: "Обеспечение безопасности составного бизнес-сервиса, поставляемого в режиме "ПО как сервис" (software-as-a-service), часть 1: Реализация безопасной множественной принадлежности с помощью WebSphere Portal Server и с применением Tivoli Directory Server и Tivoli Directory Integrator" (EN).
- Раздел SOA и Web-сервисы на сайте IBM developerWorks содержит сотни статей и руководств (для начинающих, среднего уровня и продвинутых) по разработке приложений Web-сервисов.
- Web-сайт IBM по SOA предлагает обзор SOA и показывает, как IBM поможет вам ей пользоваться.
- Чтобы быть в курсе последних новостей, посещайте сайт технических мероприятий и Web-трансляций developerWorks. Особенное внимание обратите на следующие материалы по SOA и Web-сервисам:
- Книги по данной и другим техническим темам можно найти в книжном магазине Safari.
Получить продукты и технологии
- Реализуйте инновации в вашем следующем проекте разработки с открытым кодом с помощью ознакомительного ПО IBM, которое можно загрузить с сайта или заказать на DVD.
Обсудить
Об авторах  | |  | Ин Чунь Го (Ying Chun Guo) работает инженером-программистом в Китайском технологическом институте, в Китайской лаборатории IBM по разработке программного обеспечения (China Software Development Laboratory). Сейчас она занимается составными бизнес-сервисами (CBS) и сервис-ориентированной архитектурой (SOA). |
 | |  | Навьен Сачдева (Naveen Sachdeva) - инженер-програмист, консультант группы Application Integration Middleware IBM. Он имеет более чем 10 лет опыта работы в крупномасштабной системной интеграции, дизайне и развитии распределенных вычислительных систем. В настоящее время, он помогает деловым партнерам IBM в разработке технических средств и создании концепций, при помощи продуктов WebSphere. |
 | 
|  | Индражит Поддар (Indrajit Poddar) состоит в команде по разработке стратегии, технологии, архитектуры и доработки отдела групповых программных стратегий компании IBM (Software Group Strategy), в которой он занимается концепцией интегрирования при создании составных бизнес-сервисов. Он имеет степень магистра по информатике и вычислительной технике (диплом Университета штата Пенсильвания) и бакалавра по информатике и вычислительной технике (Индийский технологический институт, Хагагпур, Индия). Он также был призером IBM за выдающиеся достижения в технологии 2005 года за вклад в диагностическую систему разгрузки памяти (memory dump) в инструментарии Java. |
Выскажите мнение об этой странице
|  |