logo
Язык описания интерфейсов WSDL

WSDL (WEB Services Description Language)

WSDL (WEB Services Description Language) -- языкописаниявеб-сервисов. Предназначен для точного описания веб-сервиса и его программных интерфейсов. В описании можно найти такую информацию, как адрес сервера, протокол, номер используемого порта, формат запроса и многое другое.

WSDL -- язык описания веб-сервисов, основанный на языке XML.

Язык описания веб-сервисов (Web Services Description Language, WSDL) - это формат XML-схем, определяющий расширенную структуру описания интерфейсов веб-сервисов. WSDL первоначально был разработан компаниями Microsoft и IBM. А затем его поддержали консорциум W3C и 25 компаний. WSDL - это сердце структуры веб-сервиса. Это общий способ представления передаваемых в сообщениях типов данных, указывающий действия, которые должны быть выполнены с данным сообщением и согласно которому сообщения привязываются к сетевым транспортам.

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

WSDL в соответствии с уровнем абстрагирования состоит из трех элементов. WSDL можно разделить на три основные составляющие:

· определение типов данных;

· абстрактные операции;

· связывание сервисов.

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

Типы данных веб-сервисов основаны на XML-схемах, но могут быть распространены на любые другие механизмы. WSDL-описания типов данных базируются на XML-схемах, но здесь годятся для использования и другие эквивалентные или аналогичные системы определения типов данных. Например, вместо типов данных XML-схемы может применяться язык описания интерфейса (InterfaceDefinition Language, IDL) CORBA. (Если используется иная модель определения типов, ее должны "понимать" обе стороны.)

Ниже показан скелет описания сервисов на языке 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), описания типов и элементов, сообщений, порта, а также возможных операций -- запросов и ответов.

Файл, содержащий описание сервисов, является достаточно комплексным документом, поэтому для его создания по возможности следует пользоваться автоматическими генераторами, включенными в состав средств разработки.

Документ WSDL определяет Web-сервис и включает в себя приведенные ниже элементы:

Сервис (Service). Web-сервис в целом. В документе WSDL сервис описывается элементом <definitions> в корне дерева. Дочерними являются элементы <types>, <message>, <portType>, <binding>, <service>. У элемента <service> есть атрибут «name», который используется для того, чтобы присвоить имя сервису. Указывается порт, используемый Web-службой, и адрес, по которому можно активизировать Web-службу.

<service name="Test"><!--имя = "Испытание -->

<port name="ТезtSoap" binding="s0:TestSoap">

<!--порт -->

<soap:address location=

"http://localhost/SimpleWebService/Add.asmx" />

</port><!--порт -->

</service>

Типы (Types). Типы данных, используемые сервисом. В документе WSDL типы данных описываются с помощью элемента <types>, содержащего один или более элементов <xsd:schema>.

<types>

<s:elemerz name="Add"><s: comjl.exType><s: sequence>

<salementminOccurs="1" maxOccurs="1"

name="x" type="s:int" />

<s:elementminOccurs="1" maxOccurs="1"

name="y" type="s:int" />

</s:sequence>

</s:complexType>

</s:element>

<s:element name="AddResponse">

<s:complexType>

<s:sequence>

<s:elementminOccurs="1" maxOccurs="1"

name="AddResult" type="s:int" />

</s:sequence>

</s:complexType>

</s :elment>

</types>

Сообщение (Message). Абстрактное описание данных, передаваемых или принимаемых сервисом. Допустимо любое количество сообщений. В документе WSDL каждое сообщение описывается элементом <message>. Каждый элемент <message> содержит один или более элементов <part>, необходимых для описания данных по имени и типу.

<message name="AddSoapIn"><!--сообщение ->

<part name="parameters" element="s0:Add" /><!-- параметры ->

</message><!-сообщение ->

<message name="AddSoapOut"><!-сообщение ->

<part name="parameters" element="s0:AddResponse" />

<!-- параметры ->

</message><!- сообщение ->

Тип порта (PortType). Абстрактный набор операций, поддерживаемых сервисом. В документе WSDL тип порта описывается элементом <portType>. Каждый элемент <portType> содержит один или более элементов <operation> (<действие>).

<portType name="TestSoap">

<operation name="Add"><!--операция -->

<input message="s0:AddSoap!n" />

<output message="s0:AddSoapOut" />

</operation><!--операция -->

</portType>

Операция (Operation). Абстрактное описание действия, поддерживаемого сервисом. В документе WSDL операция описывается элементом <operation>. Каждый элемент <operation> содержит элементы <input> и <output>, определяющие связанные сообщения. Дополнительные элементы <fault> также могут быть определены.

Привязка (Binding). Определение протокола и формата данных, предназначенных для типа порта. В документе WSDL привязка описывается элементом <binding>. У элемента <binding> есть атрибут «type», который определяет название типа порта. Для кодирования SOAP используется элемент <binding>, содержащий элемент <soap:binding> с атрибутами «style» («rpc» или «document») и «transport». Элемент <binding> содержит элементы <operation>, описывающие формат данных для каждой операции.

Порт (Port). Конечная точка, определенная в виде комбинации связывающего и сетевого адресов. В документе WSDL порт описывается элементом <port> под элементом <service>. У элемента <port> есть атрибут «binding», необходимый для присвоения имени связыванию, и атрибут «addresslocation», необходимый для присвоения имени конечной точке сети, связанной с привязкой.

В LotusDominoDesigner 7 разработчик приложения может импортировать существующий файл WSDL в приложение и DominoDesigner, затем сгенерирует классы на языке LotusScript или Java. Тем не менее, разработчики должны иметь в виду, что не все существующие WSDL-файлы могут быть интерпретированы LotusDominoDesigner 7. Некоторые файлы могут быть отклонены, в зависимости от используемых элементов XML.

Документ WSDL полностью описывает интерфейс веб-сервиса с внешним миром. Единственной проблемой остается поиск веб-сервисов и их контрактов для решения конкретных задач. Для этого был разработан протокол UDDI.

Web-сервис представляет собой программную систему, предназначенную для поддержки взаимодействия компьютеров через сеть. Интерфейс Web-сервиса описан в формате, который компьютер способен обработать (в особенности WSDL). Другие системы взаимодействуют с Web-сервисом способами, предусмотренными его описанием, с использованием сообщений SOAP, которые обычно передаются посредством HTTP с XML-преобразованием вместе с другими стандартами, связанными с Web. LotusDominoDesigner 7 включает элемент разработки приложений - Web-сервисы, а также встроенную поддержку языка описания Web-сервисов (WSDL). WSDL - это стандарт спецификации для описания сервисов, работающих по сети и основанных на XML. Он обеспечивает поставщиков услуг простым способом описания основного формата запросов к системам вне зависимости от основного времени выполнения.

Ограничения в реализации Web-сервисов в LotusDomino 7 выражаются в следующем:

На «родном» уровне поддерживаются только те элементы, которые предоставляются провайдером.

Связь должна выполняться по простому протоколу доступа к объектам (SOAP) с помощью протоколов HTTP POST. Элемент Web-сервиса характеризуется следующими параметрами:

Скомпилированный Web-сервис, подобно Web-агенту, представляет собой отдельную автономную программу в базе данных LotusDomino. Для того чтобы им воспользоваться, необходимо включить Web-сервис или от реплицировать его на сервер, к которому имеется Web-доступ. К нему можно получить доступ с помощью одной из приведенных ниже URL-команд LotusDomino:

· Open Web Service: используя протокол HTTP POST, запускает Web-сервис. Если использован протокол HTTP GET, то команда Open Web Service вернет некоторую информацию об этом сервисе.

· WSDL: запрашивает у Web-сервиса его WSDL-документ.

Web-сервис можно протестировать во время HTTP-сессии в режиме предварительного просмотра LotusNotes или LotusDominoDesigner.

Web-сервис имеет те же возможности безопасности, что и агент.

Вы можете импортировать существующий WSDL-документ, чтобы сгенерировать каркас Web-сервиса. Каркасный код соответствует описанию Web-сервиса. Затем вы добавляете исполнительный код.

В качестве альтернативы можно приступить к созданию Web-сервиса с черновика, написав собственный код на языке Java или LotusScript, чтобы создать описание Web-сервиса.

программный система интерфейс язык