Service Oriented Architecture

Автор: Пользователь скрыл имя, 12 Января 2011 в 15:58, доклад

Описание работы

Service Oriented Architecture (SOA) - технология разработки распределенных систем, функциональность которых обеспечивается с помощью сервисов (служб). Службы взаимодействуют между собой посредством сообщений и реализуют бизнес-функции и правила, описанные их контрактом (интерфейсом). W3C определяет SOA как

Работа содержит 1 файл

Реферат тат.docx

— 217.60 Кб (Скачать)

Ниже показан скелет описания сервисов на языке WSDL. 

                  <?xml version="1.0" ?>

                  <definitions name="Stocks" tsrgetNamespace=url

                  xmlns:soap="http://(soaporg)/wsdl/soap"

                  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 используется поверх HTTP. 
SOAP является одним из стандартов, на которых базируется технология веб-сервисов.

     SOAP - это XML-способ определения: какая информация должна пересылаться и как. SOAP - это базовая однонаправленная модель соединения, обеспечивающая согласованную передачу сообщения от отправителя к получателю, потенциально допускающая наличие посредников, которые могут обрабатывать часть сообщения или добавлять к нему дополнительные элементы. Спецификация SOAP содержит соглашения по преобразованию однонаправленного обмена сообщениями в соответствии с принципом "запрос/ответ", популярным при организации соединения типа RPC, а также определяет, как осуществлять передачу всего XML-документа.

     SOAP включает дополнительные правила  кодирования для различных типов  данных, но конечные узлы SOAP-соединения  могут определить собственные  правила посредством конфиденциального  соглашения сторон. В ходе связи  зачастую используется буквенное  или встроенное в XML кодирование.

     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.xmlsoap.org/soap/envelope/">

   <soap:Body>

     <getProductDetails xmlns="http://warehouse.example.com/ws">

       <productID>12345</productID>

     </getProductDetails>

   </soap:Body>

</soap:Envelope>

Пример ответа:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

   <soap:Body>

     <getProductDetailsResponse xmlns="http://warehouse.example.com/ws">

       <getProductDetailsResult>

         <productID>12345</productID>

         <productName>Стакан граненый</productName>

         <description>Стакан граненый. 250 мл.</description>

         <price>9.95</price>

         <inStock>true</inStock>

       </getProductDetailsResult>

     </getProductDetailsResponse>

   </soap:Body>

</soap:Envelope>

     Недостатки

  • Использование SOAP для передачи сообщений увеличивает их объём и снижает скорость обработки. В системах, где скорость важна, чаще используется пересылка XML-документов через HTTP напрямую, где параметры запроса передаются как обычные HTTP-параметры.
  • Хотя SOAP является стандартом, различные программы часто генерируют сообщения в несовместимом формате.

 

     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/2001/XMLSchema, которое представлено в элементе schema. Префикс xsd: применяется в соответствие с соглашением для указания пространства имен XML Schema, хотя использоваться может любой префикс. Тот же самый префикс и, следовательно, та же самая связь представляет имена простых встроенных типов, например xsd:string. Назначение связи состоит в том, чтобы идентифицировать элементы и простые типы, как принадлежащие словарю языка XML Schema, а не словарю автора схемы. Ради ясности в тексте, мы только упоминаем имена элементов и простых типов (например, simpleType), и опускаем префикс.

     Схема может рассматриваться как коллекция (словарь) определений типов и  объявлений элементов, имена которых  принадлежат определенному пространству имен, которое называется целевым  пространством имен. Целевые пространства имен дают возможность нам видеть различия между определениями и  объявлениями из различных словарей. Например, целевое пространство имен дает возможность нам различить  между объявлением для element в словаре языка XML Schema, и объявлением для element в гипотетическом словаре языка по химии. Первый - часть целевого пространства имен http://www.w3.org/2001/XMLSchema, а второй - часть другого целевого пространства имен.

     В XML Schema основное различие между элементами сложных и простых типов заключается в том, что элементы сложного типа могут включать в себя другие элементы и иметь атрибуты, а элементы простого типа не могут. Также важное различие между определениями, которые создают новые типы (как простые, так и сложные) и объявлениями, которые доступны элементам и атрибутам со специфическими именами и типами (как простые, так и сложные) для представления в примерах документов.

     XML Schema обеспечивает ясную систему типов для XML, способную обеспечивать многие мощные сервисы.

     

     В приведенном примере представлено описание комплексного элемента типа USAddress,

     в состав которого входят элементы name, street и city.

     XML Schema способна описывать широчайший диапазон характеристик и использовать богатый набор основных типов данных - здесь и целые числа, и числа с плавающей запятой, и строки символов, и время, и даты. Кроме того, она дает возможность устанавливать приемлемые рамки для значений, описывать стандартные значения отсутствующих данных, вводить требуемые элементы данных.

     Описывает XML и комплексные типы, состоящие  из групп простых типов (допустим, тип “адрес”).

     Отраслевые  описания документов XML в формате XML Schema уже находят поддержку и в централизованных репозиториях информации о формате файлов XML.

Информация о работе Service Oriented Architecture