Автор: Пользователь скрыл имя, 12 Января 2011 в 15:58, доклад
Service Oriented Architecture (SOA) - технология разработки распределенных систем, функциональность которых обеспечивается с помощью сервисов (служб). Службы взаимодействуют между собой посредством сообщений и реализуют бизнес-функции и правила, описанные их контрактом (интерфейсом). W3C определяет SOA как
Ниже показан скелет
описания сервисов на языке WSDL.
<?xml version="1.0" ?>
<definitions name="Stocks" tsrgetNamespace=url
xmlns:soap="http://(soaporg)/
xmlns="http://(soaporg)/wsdl/"
<types>
<elements>...</elements>
</types>
<message>...</message>
<portType>...</portType>
<binding>
<operation>
<input>...</input>
<output>...</output>
</operation>
</binding>
<service>...</service>
</definitions>
Как мы видим, описание сервисов представляет собой XML-документ, состоящий из нескольких элементов, в том числе из описания пространства имен (namespace), описания типов и элементов, сообщений, порта, а также возможных операций — запросов и ответов.
Файл, содержащий описание сервисов, является достаточно комплексным документом, поэтому для его создания по возможности следует пользоваться автоматическими генераторами, включенными в состав средств разработки.
Simple Object Access Protocol - протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался, в основном, для реализации удалённого вызова процедур (RPC), а название было аббревиатурой: Simple Object Access Protocol — простой протокол доступа к объектам. Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур.
SOAP
может использоваться с любым
протоколом прикладного уровня:
SMTP, FTP, HTTP и др. Однако его взаимодействие
с каждым из этих протоколов
имеет свои особенности,
SOAP является одним из стандартов, на которых
базируется технология веб-сервисов.
SOAP
- это XML-способ определения:
SOAP
включает дополнительные
SOAP-сообщения содержат конверт, заголовок и тело сообщения. SOAP-сообщения состоят из нескольких основных частей.
Envelope (конверт) - определяет начало и конец сообщения.
Header (заголовок) - содержит любые дополнительные атрибуты сообщения, используемые в ходе обработки сообщения как посредником, так и конечным получателем.
Body (тело сообщения) - содержит XML-данные, передаваемые данным сообщением.
Attachment (вложение) - состоит из одного и более документов, "прикрепленных" к основному сообщению. (Относится только к SOAP with Attachments ("SOAP с вложениями").)
RPC interaction (SOAP:RPC-взаимодействие) - определяет, как моделировать взаимодействия RPC-типа.
Encoding (кодировка) - определяет, как будут представлены простые и сложные данные, передаваемые в сообщении.
Обязательными являются только конверт и тело сообщения.
Сообщение SOAP выглядит так:
SOAP-конверт
SOAP-заголовок
Элемент заголовка 1
Элемент заголовка 2
…
Элемент заголовка N
Тело SOAP
Элемент тела N
…
Элемент тела 2
Элемент тела 1
Пример SOAP-запроса на сервер интернет-магазина:
<soap:Envelope xmlns:soap="http://schemas.
<soap:Body>
<getProductDetails
xmlns="http://warehouse.
<productID>12345</productID>
</getProductDetails>
</soap:Body>
</soap:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.
<soap:Body>
<getProductDetailsResponse
xmlns="http://warehouse.
<getProductDetailsResult>
<productID>12345</productID>
<productName>Стакан граненый</productName>
<description>Стакан граненый. 250 мл.</description>
<price>9.95</price>
<inStock>true</inStock>
</getProductDetailsResult>
</getProductDetailsResponse>
</soap:Body>
</soap:Envelope>
XML Schema — один из языков описания структуры XML документа.
XML Schema получила статус рекомендации Консорциума W3C 2 мая 2001 года, став первым стандартом описания XML, получившим статус рекомендации.
Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.
После проверки документа на соответствие XML Schema, читающая программа может создать модель данных документа, которая включает:
Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти объект, соответствующий структуре XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.
Другим удобством XML Schema является то, что один словарь может ссылаться на другой, и, таким образом, разработчик может использовать уже существующие словари и легче устанавливать и распространять стандарты XML структуры для определённых задач (например, словарь протокола SOAP).
Файл, содержащий XML Schema, обычно имеет расширение «.xsd» (XML-schema-definition).
Каждый
из элементов в схеме имеет
префикс xsd:, который связан с пространством
имен XML Schema через объявление xmlns:xsd=”http://www.w3.org/
Схема
может рассматриваться как
В XML Schema основное различие между элементами сложных и простых типов заключается в том, что элементы сложного типа могут включать в себя другие элементы и иметь атрибуты, а элементы простого типа не могут. Также важное различие между определениями, которые создают новые типы (как простые, так и сложные) и объявлениями, которые доступны элементам и атрибутам со специфическими именами и типами (как простые, так и сложные) для представления в примерах документов.
XML Schema обеспечивает ясную систему типов для XML, способную обеспечивать многие мощные сервисы.
В
приведенном примере
в состав которого входят элементы name, street и city.
XML Schema способна описывать широчайший диапазон характеристик и использовать богатый набор основных типов данных - здесь и целые числа, и числа с плавающей запятой, и строки символов, и время, и даты. Кроме того, она дает возможность устанавливать приемлемые рамки для значений, описывать стандартные значения отсутствующих данных, вводить требуемые элементы данных.
Описывает XML и комплексные типы, состоящие из групп простых типов (допустим, тип “адрес”).
Отраслевые описания документов XML в формате XML Schema уже находят поддержку и в централизованных репозиториях информации о формате файлов XML.