О начале обучения |
Моделирование. Архитектура решения
6.2 Интерфейсы
Итак, мы описали бизнес-процесс, компоненты и взаимодействия в решении. Мы обрисовали все интерфейсы на уровне названий операций, для которых они предназначены. Следующий этап – это описание интерфейсов на уровне детализации, достаточном для их реализации ИТ-специалистами.
Допущения
Мы ограничились в данном курсе рассмотрением интеграции процессов и ограничили объем используемых данных минимумом, достаточным для того, чтобы процесс работал. Если бы мы использовали модель данных, размер и сложность которой был бы сопоставим с теми, которые используются в промышленности, нам пришлось бы внести некоторые изменения в процесс разработки в соответствии с нуждами архитектора данных и нужно было бы использовать инструменты для моделирования данных. Нам бы понадобилось рассматривать взаимодействие между инструментами моделирования процесса и данных и решать проблемы, касающиеся трансформации данных между моделью данных и интерфейсами существующих компонентов.
Мы также предполагаем, что все автоматизированные службы (Assessor Management, Business Rules Engine, Claim System) и процесс Assessor уже доступны в виде EJB. Мы сконцентрируемся на построении бизнес-процесса и интеграции служб, а не на создании программ.
6.2.1 Выбор языка описания интерфейсов
Мы планируем использовать для соединения компонентов Web-службы; следовательно, для описания интерфейсов в архитектурной модели мы будем применять язык описания Web-служб (Web Services Description Language, WSDL). WSDL – это вполне естественный способ описания Web-служб.
Использование WSDL в качестве языка описания интерфейсов
Как язык описания интерфейсов WSDL обладает рядом преимуществ:
- Он не зависит от программной технологии, используемой для реализации интерфейсов.
- Ряд технологий программирования поддерживает применение WSDL для генерации и запуска Web-служб, независимо от того, будут ли это Java Beans, Enterprise Java Beans, службы .NET или потоки сообщений WebSphere Business Integration Message Broker.
- Он поддерживается прекрасными инструментами.
Однако поскольку данная технология является новой, в инструментарии имеются пробелы, и нам нужно ответить на ряд вопросов, прежде чем станет возможной ее реализация в разработке, управляемой моделями.
- Технология имеет как логический аспект, представленный типами портов (PortType) и сообщениями (Message), так и физический аспект, представленный службами (Services) и связями (Bindings), которые не соответствуют понятию интерфейса как раннего этапа превращения модели в реализацию. Простым решением будет избирательный подход к заполнению WSDL-определений на всех стадиях проектирования.
- Данная технология не интегрирована в инструментарий UML до такой степени, чтобы, скажем, EJB могли интегрироваться в Rational Software Architect. Не существует простого способа вводить WSDL-определения в UML модель и исключать их из нее. Мы предлагаем четыре метода обмена WSDL и UML в зависимости от того, откуда архитектор решения получил определения интерфейсов. Обращайтесь к рис. 6.5.
- Поскольку в различных инструментах отсутствуют средства импорта WSDL, существуют определенные трудности при формировании цепочки инструментов на основе WSDL как языка определения интерфейсов. Однако никаких конкурентов с лучшим охватом инструментов нет, за исключением, пожалуй, XML-схемы. Мы считаем, что WSDL как язык определения интерфейса лучше, чем XML-схема, поскольку XML-схема – это главным образом способ независимого от языка описания типа данных. WSDL описывает интерфейсы компонентов, составленные из операций и типизованных сообщений.
Комбинированное использование WSDL и встроенных файлов .xsd (XML-схем) имеет определенную привлекательность из-за того, что комбинацию WSDL и схем поддерживает более широкий набор инструментов. Мы склоняемся к тому, чтобы размещать определения типов в WSDL-файлах, поскольку использованные нами EJB- инструменты генерировали типы данных прямо в WSDL-файлах. Если бы мы уделяли больше внимания данным, мы, вероятно, больше использовали бы .xsd-файлы, а в WSDL-файлах применяли инструкции импорта. Выбор между использованием только WSDL или комбинации WSDL и .xsd, по сути, определяется цепочкой инстру- ментов. Мы вернемся к этому обсуждению в разделе 13.1.4, "Метаданные" и придем к противоположному заключению, что для нас нет ничего лучше использования сме- си файлов .WSDL и .xsd. Это действительно сложное решение!
С точки зрения управления проектом представление о том, что все интерфейсы, используемые в проекте, могут быть подробно описаны в едином формате, весьма ценно, поэтому мы решили, что все интерфейсы в решении будут определены на WSDL и собраны архитектором решения, который отвечает за их определение. В Rational Software Architect входит прекрасный WSDL-редактор. В WebSphere Studio Application Development Integration Edition также предлагается редактор файлов .xsd.
6.2.2 Создание WSDL-интерфейсов
Существует три основных способа создания WSDL-интерфейсов:
- Сверху вниз, с помощью редактора WSDL.
- Снизу вверх, путем генерации WSDL из других реализаций и типов интерфейсов. Например, Rational Software Architect генерирует WSDL-файлы из EJB-компонентов.
- От краев к центру, путем создания части интерфейсов в WSDL-редакторе и импортирования остальных из другого формата, например импортирования типов из файлов .xsd.
На рис. 6.5 показаны несколько разных трансформаций между WSDL и другими языками определения интерфейсов, которые могут использоваться для создания описания архитектуры на UML из артефактов реализации или, наоборот, для генерации артефактов реализации из UML.
- A. Этот способ используется, если у нас уже есть WSDL-определения. Подробности приводятся в разделе "А: WSDL в UML".
- В. Способ создания нового интерфейса. Используйте средство трансформации EJB в Rational Software Architect для генерации EJB, а затем сгенерируйте Web- службу. Процесс создания EJB из UML снабжен пояснениями. Подробности вы можете найти в разделе "В: UML в WSDL".
-
C. Используется для интерфейсов, созданных в WebSphere Business Integration
Message Broker. Эти типы интерфейсов создавались как схемы в WebSphere Studio
Application Development Integration Edition и импортировались в Broker с созда-
нием набора сообщений. Объяснения приводятся в разделе 9.4, "Реализация набо-
ров сообщений".
Схемы также встраиваются в WSDL-файлы в WebSphere Studio Application Development Integration Edition, и генерируется EJB-компонент. Этот EJB-компонент импортируется в Rational Software Architect, и из него извлекается UML-описание интерфейса. Детали этого процесса аналогичны пути А после импортирования .xsd-файла.
Данный EJB-компонент также может применяться для модульного тестирования клиентов Web-службы без необходимости ждать реализации WebSphere Business Integration Message Broker.
- D. Существующие EJB-интерфейсы (например, система Assessor Management) импортируются в Rational Software Architect, и из EJB генерируются UML- и WSDL- интерфейсы. Данный метод объясняется в разделе "В: UML в WSDL".
6.2.3 Источники информации об интерфейсах в нашем сценарии
WSDL-файлы и файл .xsd с определениями интерфейсов создаются либо из EJB-компонентов, которые должны использоваться для реализации некоторых служб, либо в ходе задачи по определению интерфейсов для процессов AutomatedAssessor и AssessorProxyService. Общим правилом является то, что владелец Web-службы должен при определении интерфейса службы сотрудничать с архитектором решения.
В табл. 6.2 перечислены WSDL-файлы, которые вы можете найти в директории дополнительных материалов, прилагаемых к этому курсу (.\SG24-6636\). Имена включают в себя номер потока для упрощения перекрестных ссылок. Все WSDL-файлы находятся в директории .\SG24-6636\RSA\Project Interchange\wsdl.
Поток | Компонент (владелец интерфейса) | Сведения об интерфейсе. Имя WSDL-файла. Источник, из которого он был сгенерирован |
---|---|---|
1 | Assessor Automation | ExternalClaimAssessorsInterface.wsdl. Происходит из папки в proxy(1).wsdl. Proxy(1).wsdl был создан с помощью инструмента fdl2wsdl и описывается в "Изменение процесса изучения претензий" , "Изменение процесса Claim Investigation" |
2 | Assessor Management | AssessorManagement(2).wsdl .\SG24-6636\WAS\Flow2\Flow2_AssessorManagementSe rvice_SOURCE.ear |
2a | Business Rules Engine | RequestResponseTimePT(2a).wsdl .\SG24-6636\WAS\Flow2A\Flow2A_ResponseTimeRules_ SOURCE.ear |
3 | Proxy Assessor System | AssessorAvailability(3).wsdl .\SG24-6636\WBIMB\schemas\AssessorAvailability_3.xsd |
4 | Assessor | Availability(4).wsdl .\SG24-6636\WAS\Flow4and7\AssessorAvailabilityApplications_withSource.ear |
4a | Proxy Assessor System | AssessorAvailabilityPT(4a).wsdl .\SG24-6636\WBIMB\schemas\AssessorAvailabilityPT.xsd |
3a | Assessor Automation | AssessorAvailablityList(3a).wsdl |
5 | Business Rules Engine | PreferredAssessor(5).wsdl .\SG24-6636\WAS\Flow5\Flow5_AssessorRules_SOURC E.ear |
6 | Proxy Assessor System | AllocateAssessmentReport(6).wsdl .\SG24-6636\WBIMB\schemas\AllocateAssessmentReque st_6.xsd |
7 | Assessor | DeliverAssessment(7).wsdl .\SG24-6636\WAS\Flow4and7\AssessorApps.ear |
7a | Proxy Assessor System | DeliverAssessmentResponse(7a).wsdl .\SG24-6636\WBIMB\schemas\DeliverAssessmentRespon se_7a.xsd |
6a | Assessor Automation | AllocateAssessorResponse(6a).wsdl |
8 | Proxy Assessor System | AssessorReport(8).wsdl .\SG24-6636\WBIMB\AssessorReport_8.xsd |
9 | Assessor Automation | AssessorReport(9).wsdl |
10 | Claim System | StoreAssessmentReport(10).wsdl .\SG24-6636\WAS\Flow10\Flow10_DocumentHandler_SO URCE.ear |