- •1. Введение в веб-сервисы 4
- •2. Лабораторная работа №1. Расширяемый язык разметки xml. 17
- •3. Лабораторная работа №2. Схемы xml-документов. 28
- •3.1 Цель работы 28
- •3.3 Порядок выполнения работы 34
- •4. Лабораторная работа №3. Язык определения веб-сервисов wsdl. Реализация веб-сервисов. 38
- •4.1 Цель работы 38
- •5. Лабораторная работа №4. Протокол soap. Использование веб-сервисов. 59
- •1.1Основы веб-сервисов
- •1.2Использование веб-сервисов
- •1.Введение в веб-сервисы
- •1.3Технологический базис веб-сервисов
- •1.3.5Дополнительные технологии
- •1.4Принципы взаимодействия веб-сервисов
- •1.4.1Rpc-ориентированные взаимодействия
- •1.4.2Документно-ориентированные взаимодействия
- •1.4.3Взаимодействие в рамках сервисно-ориентированной архитектуры
- •1.5Веб-сервисы и другие технологии
- •1.5.1История развития
- •1.5.5Сравнение с веб-сервисами
- •2.Лабораторная работа №1. Расширяемый язык разметки xml.
- •2.1Цель работы
- •2.2Теоретическое введение
- •2.2.1Пример xml-документа
- •2.2.2Правила составления xml-документов
- •2.2.3Элементы xml
- •2.2.4Атрибуты xml
- •2.2.5Пространства имен xml
- •2.3Порядок выполнения работы
- •2.4Отчет по работе
- •2.5Контрольные вопросы
- •3.Лабораторная работа №2. Схемы xml-документов.
- •3.1Цель работы
- •3.2Теоретическое введение
- •3.2.1Схемы xml-документов
- •3.2.2Определение шаблона документа dtd
- •3.2.3Xml-Схемы
- •3.3Порядок выполнения работы
- •3.4Отчет по работе
- •3.5Контрольные вопросы
- •4.2.2Основные элементы языка wsdl
- •4.2.3Определение типов данных в wsdl
- •4.2.4Определение типов портов в wsdl
- •4.2.5Определение сервиса и его привязка к протоколам в wsdl
- •4.2.6Реализации веб-сервисов
- •4.2.7Создание веб-сервисов на платформе .Net
- •4.2.8Создание веб-сервиса интернет-магазина
- •4.3Порядок выполнения работы
- •4.4Отчет по работе
- •4.5Контрольные вопросы
- •5.2.2Основные элементы soap
- •5.2.3Привязка soap к http
- •5.2.4Создание на платформе .Net клиентских приложений использующих веб-сервисы
- •5.2.5Создание клиентского приложения для работы с веб-сервисом интернет-магазина
- •5.3Порядок выполнения работы
- •5.4Отчет по работе
- •6.2.2Основные элементы bpel
- •6.2.3BizTalk 2006 как средство интеграции приложений
- •6.2.4Пример использования bpel
- •6.3Порядок выполнения работы
- •7.3Порядок выполнения работы
- •7.4Отчет по работе
- •7.5Контрольные вопросы
- •8.2.2Обработка заказов через веб-сервис erp системы компании
- •8.2.3Регистрация заказа и оплата через платежную систему
- •8.2.4Конвертация валюты с помощью веб-сервиса цб
- •8.2.5Тестирование работоспособности приложения
- •8.3Порядок выполнения работы
- •9.Лабораторная работа №8. Интеграция веб-сервисов при помощи BizTalk 2006. Часть 2.
- •9.1Порядок выполнения работы
- •9.2Отчет по работе
- •9.3Контрольные вопросы
- •10.Варианты заданий
- •10.1Вариант 1
- •10.2Вариант 2
- •11.Список литературы
- •Введение в веб-сервисы
1.4.3Взаимодействие в рамках сервисно-ориентированной архитектуры
В рамках сервисно-ориентированной архитектуры можно выделить три компонента:
Реестр веб-сервисов производит хранение информации о реализуемых бизнес-функциях веб-сервисов, их поставщиках и способе вызова соответствующего веб-сервиса. Он также реализует интерфейсы поиска этой информации для пользователей сервиса и публикации этой информации для провайдера сервиса.
Провайдер сервиса – это приложение или программный модуль реализующий сам веб-сервис. Процесс публикации информации о веб-сервисе может осуществляться как автоматически провайдером сервера, так и вручную, организацией предоставляющей этот веб-сервис.
Пользователь сервиса – потребитель услуг веб-сервиса, предоставляемого провайдером сервиса. Для поиска подходящего провайдера сервиса он использует реестр веб-сервисов.
Таким образом, процесс взаимодействия в рамках сервисно-ориентированной архитектуры можно разделить на несколько этапов:
Публикация. В ходе этого этапа провайдер сервиса заносит данные о своем веб-сервисе в реестр веб-сервисов.
Поиск. На этом этапе пользователь сервиса с помощью реестра веб-сервисов производит поиск нужного ему веб-сервиса.
Использование потребителем сервиса веб-сервиса предоставляемого провайдером сервиса.
Рис. 1.3. Взаимодействие в рамках сервисно-ориентированной архитектуры.
Как уже отмечалось выше, реестр веб-сервисов реализует все свои интерфейсы поиска и публикации посредством соответствующих веб-сервисов. Таким образом, весь процесс взаимодействия в рамках сервисно-ориентированной архитектуры может осуществляться автоматически. Стандартизация этого процесса делает возможным создание приложений или систем, не привязанных к веб-сервису конкретного провайдера, а производящих самостоятельный поиск подходящих провайдеров.
Примером такого использования веб-сервисов может служить складская программа мелкого розничного магазина. Располагая информацией о находящихся на сладе товарах, она может автоматически пополнять запасы, заказывая товары через Интернет у оптовых поставщиков. Разумеется, что программа умеющая работать с ограниченным количеством выбранных поставщиков будет неудобна в эксплуатации. В тоже время если в ней будет реализована функция автоматического поиска веб-сервисов поставщиков нужных товаров с помощью реестра веб-сервисов, основываясь на их удаленности относительно розничного магазина, то эффективность ее работы будет существенно выше. При этом появится возможность заказать каждый товар по самой выгодной цене.
Стоит также отметить, что благодаря платформенной независимости веб-сервисов, подобный подход может также использоваться и в других устройствах. Например, это может быть «умный» холодильник, который заказывает необходимые продукты у розничных поставщиков, используя те же механизмы, что и крупная программа управления складом магазина.
1.5Веб-сервисы и другие технологии
1.5.1История развития
Развитие программного обеспечения представляет собой процесс постепенного перехода от изолированных систем, таких как отдельное приложение, к концепции распределенных вычислений. Первоначальные шаги в этом направлении были предприняты с созданием клиент-серверной архитектуры, которая позволила распределить нагрузку между несколькими системами и снизить вероятность возникновения узких мест. Однако в этой архитектуре имелись ограничения связанные с отказоустойчивостью и масштабируемостью приложений. Поэтому была предложена трехзвенная архитектура, разделяющая приложение на презентационную часть, бизнес логику и работу с данными. Взаимодействие между частями такого приложения может осуществляться с помощью вызовов удаленных процедур. Для организации этого взаимодействия были разработаны несколько стандартов, задачей которых было упрощение коммуникации между частями приложения по сети с точки зрения разработчиков программного обеспечения.
1.5.2COM, DCOM
В начале 90-х годов предложила архитектуру Component Object Model (COM), которая позволяла многократно использовать компоненты различных производителей, оформляя их в библиотеки со стандартным интерфейсом. При этом взаимодействие осуществлялось в рамках одного локального компьютера. По мере развития локальных сетей и Интернета перед разработчиками встала задача создания большого количества распределенных приложений, например по архитектуре клиент-сервер. При этом они могли пользоваться сокетами, для передачи данных по сети. Такой способ взаимодействия требовал разработки собственного протокола, больших трудозатрат и, как следствие, привносило дополнительный источник ошибок в разрабатываемое приложение.
В этой ситуации компания Microsoft выпустила в середине 90-х расширенную компонентную модель Distributed COM (DCOM). С помощью этой технологии клиенты получили возможность вызывать COM компоненты не только с локальной машины, но и по сети. DCOM позволяет переносить локальную межпроцессную связь с помощью сетевого протокола по сети. При этом увеличивается время отклика вызываемого компонента, однако ни клиент, ни вызываемый компонент не знают о том, что вызов происходит по сети (Рис. 1 .4), а не в рамках локальной машины.
Рис. 1.4. Архитектура DCOM.
1.5.3CORBA, IIOP
Технология CORBA (Common Object Request Broker Architecture), разработанная группой OMG, является аналогом технологии COM от Microsoft. В этой технологии используются диспетчеры объектных запросов (Object Request Broker, ORB), которые являются аналогами COM компонентов. Для обеспечения коммуникации ORB по сети был создан протокол IIOP (Internet InterORB Protocol).
Основное преимущество CORBA состоит в том, что клиенты и серверы могут быть написаны на любом языке программирования. Это возможно потому, что объекты определяются с высоким уровнем абстракции, обеспечиваемым языком определения интерфейса IDL (Interface Definition Language). Взаимодействия между объектами, клиентами и серверами обрабатываются с помощью диспетчеров объектных запросов ORB. Однако написание распределенных приложений с помощью CORBA - это очень сложная задача. Для того чтобы обеспечить преобразование IDL на различные языки программирования, приходится ограничиваться теми базовыми концепциями, которые реализованы в поддерживаемых языках. Таким образом, IDL является для них чем-то вроде общего знаменателя.
1.5.4Java RMI
Технология вызова удаленных методов была предложена компанией Sun для создания распределенных приложений Java-to-Java. В них методы удаленных Java-объектов могут вызываться из других виртуальных машин Java (JVM), наиболее вероятно находящихся на различных узлах сети. Коммуникация по сети осуществляется с помощью протокола JRMP (Java Remote Method Protocol).
Работа RMI зависит от многих уникальных особенностей языка Java, в частности сериализации объектов. Поэтому для работы с использованием RMI клиент и сервер должны быть написаны на Java и исполняться на виртуальных машинах Java. С одной стороны это является достоинством этой технологии, так как она не накладывает дополнительных ограничений на механизм общения и обладает простотой реализации. Однако с другой стороны это ограничивает ее применение языком Java.
