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-сервиса.
программный система интерфейс язык