|
|
|||||||||||||||||||||||||||||
|
Моделируем сервис-ориентированную архитектуру при помощи Rational Software Architect: Часть 3. Моделирование внешней системыИсточник: IBM Грегори Ходжкинсон, ведущий специалист по SOA & Бертран Портье Автор, разработчик Web-сайтов, IBM
В настоящем, третьем, учебном руководстве серии рассказывается о том, как можно использовать модель внешних систем при моделировании сервис-ориентированной архитектуры по принципу "от краев к центру", на отрезке "снизу вверх". Мы продолжим использовать учебный пример компании по прокату DVD-дисков из первых двух частей серии, и при помощи IBM Rational Software Architect сгенерируем модель внешней системы на основе этого учебного примера. Требуемый опытЧтобы извлечь больше пользы из этого учебного руководства, желательно (но не обязательно) иметь представление о следующих технологиях и программах:
Системные требованияДля успешного выполнения заданий руководства необходимо, чтобы на вашей рабочей станции были установлены следующие программные продукты (доступны пробные версии):
Перед началом работы Вам следует знать, что предлагает наше учебное руководство, и как извлечь из его изучения максимум полезных знаний и навыков. О данной серииВ данной серии учебных руководств подробно рассматривается моделирование решений сервис-ориентированной архитектуры (service-oriented architecture, SOA) при помощи IBM® Rational® Software Architect. Хотя первоначально этот программный продукт предназначался для разработчиков архитектуры программного обеспечения и для поддержки действий, которые они выполняют, он может оказаться полезным также специалистам, выполняющим другие роли в процессе разработки программного обеспечения, в том числе тем, кто активно участвует в разработке архитектуры ПО, например, бизнес-аналитикам, или тем, кто использует эту архитектуру на входе своей собственной деятельности, например, разработчикам программного обеспечения и разработчикам других специализаций (занимающихся реализацией архитектуры, проектированием и внедрением). В серии также освещаются некоторые основные концепции SOA, которые могут быть полезными широкой аудитории. Эти учебные руководства концентрируются на трех темах:
После описания архитектуры программного обеспечения и определения значения, которое отводится в ней сервисам, в серии рассказывается об инструменте Rational Software Architect и его функциях, имеющих отношение к SOA и архитектуре. На примере воображаемой компании по прокату DVD-дисков в этих трех учебных руководствах вы найдете:
О данном учебном руководствеВ части 1 мы представили учебный пример "Прокат видеодисков", который будет использоваться во всех учебных руководствах данной серии. Мы поместили сервисную архитектуру в инфраструктуру Rational Unified Process и для справки рассказали о стеке SOA-решения IBM. Мы упомянули о различных рабочих продуктах, которые были использованы на входе архитектуры сервиса, а затем воспользовались учебным примером для того, чтобы на примере продемонстрировать два таких продукта: модель архитектуры бизнеса (описана в Части 1 как компонентная модель бизнеса) и модель бизнес-процесса. В части 2 мы разобрали, что такое модель предметной области и как можно представить ее в Rational Software Architect. Мы на практике приступили к работе с этим инструментом и создали модель предметной области, которая используется в данной серии. В этом выпуске (Часть 3) мы расскажем о том, как можно использовать модель внешней системы при моделировании по принципу "от краев к центру", на отрезке "снизу вверх". ЦелиИзучив данное учебное руководство, вы должны уметь:
Необходимые условияЧтобы извлечь максимум пользы из этого учебного руководства, очень полезно (но не обязательно) иметь представление о следующих программных продуктах и технологиях:
Мы настоятельно рекомендуем вам прочитать первые две части данной серии учебных руководств, и лишь после этого переходить к изучению данной части. Позиционирование внешних систем и анализ по принципу "снизу вверх"В части 1 данной серии учебных руководств упоминалась модель внешних систем как входной рабочий продукт для деятельности "создание архитектуры сервисов". Было дано следующее краткое описание: "Внешние системы - это системы, не использующие SOA, которые можно использовать в модели. Как уже говорилось ранее, модель внешних систем можно использовать в моделировании по принципу "от краев к центру", на отрезке "снизу вверх". Далее объясняется, почему наличие представления систем, не основанных на SOA, но используемых в составе решения, важно для проекта интеграции в стиле SOA, а также о том, как можно создать его при помощи модели внешних систем. Позиционирование модели внешних систем Формально в RUP модель внешних систем не предусмотрена. Однако можно создать ее отображение на имеющийся в RUP рабочий продукт - модель проекта. На рисунке 1 мы попытались проиллюстрировать, как работает это отображение. Рисунок 1. Отображение модели внешних систем на модель проекта
Воспользовавшись рисунком 1 как образцом, мы примем следующие допущения о модели внешней системы:
Сервисная модель также является моделью на уровне проекта. Если провести различие между моделью сервиса и моделью проекта, то модель сервиса будет содержать спецификацию проекта на более высоком уровне абстракции и использовать только SOA-элементы (например, поставщик сервиса, сервис, потребитель сервиса, спецификацию сервиса). Впоследствии модель проекта используется как детализированная модель проекта и содержит как SOA, так и не-SOA артефакты. В практическом смысле модель внешней системы можно рассматривать либо как набор пакетов в модели проекта, содержащей информацию, как показано на рисунке 1, либо совсем отдельно от модели проекта, но на том же уровне абстракции. Примечание: Анализ по принципу "снизу вверх" в SOA или проекте интеграции В SOA принцип "снизу вверх" используется для анализа существующих IT-ресурсов (например, унаследованных приложений и систем) и поиска функций, которые могут быть представлены как сервисы для многократного использования с различными целями. Например, в ходе анализа по принципу "снизу вверх" анализируются транзакции имеющейся системы управления информацией (Information Management System, IMS) или программ на языке COBOL. Многократное использование является важным компонентом SOA, причем критически важным для ее успеха. Как вам, вероятно, известно, унаследованные приложения (то есть те, которые уже развернуты на предприятии) являются самыми ценными ресурсами вашей компании, таким образом очень важно использовать их везде, где только можно. Примечание: Этот принцип используется в проектах интеграции, в которых некоторые программы необходимо интегрировать в общее решение, причем эти программы не были спроектированы и созданы как сервис-ориентированные программы. То есть, мы имеем в виду такие программы, в которых компоненты архитектуры не были специально разработаны как взаимодействующие поставщики и потребители сервисов. С учетом этого, недостаточно просто добавить сервисы в компоненты программного обеспечения. В частности, логика сервис-ориентированного решения должна быть построена таким образом, чтобы его отдельные компоненты могли интегрироваться в несколько сервис-ориентированных систем. Анализ по принципу "снизу вверх" используется для исследования внешней формы ПО, которое интегрируется в ваше решение, чтобы вы явно представляли себе два момента:
Аналитические задачи для проекта интеграции выполняются в ходе начальной фазы (Inception) процесса RUP, потому что эта информация может иметь важное значение для финансирования и графика проекта. Несколько примеров:
Важно: Моделируем внешние системы и их интерфейсыСоздаем модель внешней системы в Rational Software ArchitectИсходной точкой здесь будет служить учебный проект SOA, который мы создали в результате изучения Части 2; этот проект содержит модель предметной области. Загрузите файл (по ссылке из раздела Загрузка), а затем выполните инструкции по импорту проекта в рабочую область. Примечание:
Рисунок 2. Импорт обменной информации проекта
Рисунок 3. Импорт учебного проекта SOA
Рисунок 4. Первоначальный вид представления Project Explorer
Мы используем секцию нашей модели проекта в качестве модели внешней системы. Следовательно, сначала необходимо создать новую UML-модель для модели проекта.
Теперь в нашем учебном проекте SOA появилась пустая модель проекта.
Рисунок 5. Новый пакет внешней системы (в модели проекта)
Идентифицируем внешние системыТеперь необходимо понять, какие внешние системы станут частью нашего проекта. Моделируя бизнес-процесс Return Video, мы заметили, что автоматизированная задача Retrieve member's standing должна выполняться путем интеграции с имеющейся системой управления взаимоотношениями с потребителями (Customer Relationship Management, CRM). Предположим, что в результате обсуждения ситуации с владельцем бизнес-процесса вы получили некоторую информацию от старшего разработчика, который отвечает за систему CRM, а именно:
Это хорошая новость, потому что в PDF-документе должно быть достаточно информации для создания модели внешних систем. Однако это еще надо проверить.
Результат описанных действий показан на рисунке 6. Рисунок 6. Внешняя система CustomerRelationshipMgt
Теперь можно приступить к созданию модели внешней системы. Идентифицируем предоставляемые интерфейсыПрочитав документ "Интеграция с API CRM-системы", мы узнали, что система имеет несколько API-интерфейсов на базе Web-сервисов, каждый из которых предлагает отличный от других набор функций для CRM. Однако мы нашли особое API, которое называется Customer Functions API и предоставляет доступ к информации CRM, которая нам необходима. Вместо того, чтобы моделировать все предлагаемые API, ограничимся моделированием того API-интерфейса, который нам необходим. Мы создадим интерфейс для этого API на основе информации в документе:
На рисунке 7 показано, как будет выглядеть диаграмма после выполнения этих действий. Рисунок 7. Диаграмма CustomerFunctionsAPI InterfaceSpec
О детализации этого интерфейса мы поговорим позже (обратите внимание, что у нас есть только предоставляемый интерфейс --- запрашиваемые интерфейсы отсутствуют). Теперь создадим ссылку на нашу спецификацию внешней системы:
После этого диаграмма должна выглядеть примерно так, как на рисунке 8. Рисунок 8. Диаграмма CustomerRelationshipMgt ExternalSystemSpec
Теперь мы изменим способ отображения диаграммы и добавим ссылку на диаграмму спецификации интерфейса.
Внешнее представление показывает предоставляемый интерфейс в нотации, которая обычно называется lollipop (или lollypop) , потому что ее элементы (кружки с чертой) напоминают леденцы (lollipop) на палочке.
Совет:
Рисунок 9. Создание элемента "примечание"
На рисунке 10 показано, как будет выглядеть диаграмма после выполнения этих действий. Рисунок 10. Окончательный вариант диаграммы CustomerRelationshipMgt ExternalSystemSpec
Моделируем информацию и интерфейсы внешней системыКак мы уже знаем из материала части 2, наша модель предметной области представляет собой структурированное представление информации, существующей в данной предметной области бизнеса. Такая модель исключительно полезна при внутреннем общении специалистов в отделе информационных технологий, а также в тех случаях, когда этим специалистам приходится общаться по бизнес-вопросам. Однако важно отметить, что, хотя модель предметной области будет влиять на форму программного решения, само по себе она не моделирует программное обеспечение. Тем не менее, полезно иметь представление типа модели предметной области для информации, которая управляется конкретной системой. Вместо того, чтобы структурировать термины (типы предметной области), используемые в бизнесе, эта модель будет структурировать термины, используемые интерфейсами внешней системы (предоставляемыми и запрашиваемыми). Она будет уделять особое внимание тем типам, которые хранятся и управляются внешней системой. Это представление информации по типу модели предметной области называется информационной моделью. Мы создадим информационную модель для каждой внешней системы, которая хранит какую-либо информацию (а это можно сказать о большинстве систем). (Кроме того, мы можем использовать информационные модели в нашей модели сервиса - подробнее об этом читайте в одном из следующих выпусков данной серии.) Моделируем представление информацииИнформационная модель во многом похожа на модель предметной области. Основное отличие заключается в том, что эта модель содержит типы информации (инфотипы), а не типы предметной области. Во многих отношениях инфотип не отличается от типа предметной области. Различаются они тем, что инфотип описывает структурированный тип информации, которая существует в предметной области программного обеспечения (внешняя система или компонент архитектуры), тогда как тип предметной области описывает структурированный тип информации, существующий в предметной области бизнеса. Еще раз просмотрев документ "Интеграция с API CRM-системы", мы узнали, что из всех типов информации, хранящейся в системе управления взаимоотношениями с клиентами, значимыми для Customer Function API являются customer и customer category. Мы также заметим описание атрибутов этих двух типов информации и отметим, что один customer относится к одной customer category. Давайте добавим эту информацию в нашу модель.
Результат описанных действий показан на рисунке 11. Если вы не совсем понимаете, как это сделать, прочитайте статью "Часть 2. Моделирование предметной области бизнеса" о создании модели предметной области. Обратите внимание, что <<infoType>> - это ключевое слово. Рисунок 11. Диаграмма CustomerRelationshipMgt InfoTypes
Хотя в этом примере мы не создавали перечислений и ограничений, как и в модели предметной области, в информационной модели они могут иметь место. В завершение нам нужно добавить в нашу модель ярлык для диаграммы CustomerRelationshipMgt ExternalSystemSpec (см. рисунок 12). Рисунок 12. Добавление ярлыка диаграммы в информационную модель
Детализируем интерфейсыТо, что мы смоделировали в предыдущих абзацах - это представление информации, хранимой во внешней системе. Кроме того, нам необходимо обновить созданную ранее спецификацию интерфейса. Мы сделаем это путем детализации операций, имеющихся в интерфейсе. Сигнатура операции выражается параметрами и, по желанию, типом возврата. Они основаны на другой модификации типов: типе параметра. Рассмотрим пример. Еще раз вернувшись к документу "Интеграция с API CRM-системы", мы нашли описание операций, предоставляемых Web-сервисом. Давайте добавим эту информацию в нашу модель.
Давайте сначала займемся параметрами операции.
Рисунок 13. Вставка нового параметра - команда Insert New Parameter
Теперь надо изменить диаграмму, чтобы на ней отображалась эта информация.
Теперь CustomerFunctionsAPI InterfaceSpec должна выглядеть как на рисунке 14. Рисунок 14. Операция retrieveCustomer с добавленным параметром
Теперь нужно задать тип возврата операции. Он тоже должен быть производным от типа параметра. Обратите внимание, что в нашем примере мы используем для типа возврата тип параметра. Однако там, где это необходимо, параметры могут описываться в терминах типов параметров.
Рисунок 15. Новый пакет Parameter Types
На рисунке 16 показано, как будет выглядеть диаграмма после выполнения этих действий. Рисунок 16. Операция retrieveCustomer с заданным типом возврата
Мы создали конкретное представление внешней системы, подлежащей интеграции (хотя это всего лишь очень простой пример для этого учебного руководства). Мы имеем ясное представление о том, как должен выглядеть интегрируемый интерфейс; мы также понимаем, какую информацию из данной системы мы будем использовать и как она структурирована. Хотя это довольно простой пример, те же принципы необходимо использовать при работе с крупными и сложными внешними системами. Что дальше?В данной части серии учебных руководств мы рассмотрели моделирование по принципу "от краев к центру", на отрезке "снизу вверх"; если конкретнее, сосредоточие этого принципа - внешние системы, не использующие SOA. Мы рассказали о важности этой деятельности в рамках SOA-проекта, а затем подробно изучили создание модели внешних систем при помощи инструмента Rational Software Architect Точнее, мы рассмотрели моделирование предоставляемых интерфейсов и информационных моделей. В следующих выпусках учебных руководств из данной серии мы изучим основную тему SOA -моделирования: создание модели сервиса.
Ссылки по теме
Файлы для загрузки
|
|