Web-сервис как программная система, идентифицируемая с помощью некоторого URI, общедоступный интерфейс и связывания которого определяются и описываются с помощью языка описания интерфейсов WSDL. История, коммерческие предпосылки использования сервисов.
Аннотация к работе
В ее недрах была разработана парадигма .NET (.NET Framework), которая кладет в основу своей идеологии представление любой программной системы как набора взаимодействующих между собой в распределенной сетевой среде агентов, называемых веб-сервисами (Web Services). При разработке приложений подобной архитектуры возникает проблема организации первичного взаимодействия между веб-сервисом и его клиентом, результатом которого должно стать получение клиентом информации об услугах, предоставляемых веб-сервисом, и способах обращения к ним. Как мы видим, описание сервисов представляет собой XML-документ, состоящий из нескольких элементов, в том числе из описания пространства имен (namespace), описания типов и элементов, сообщений, порта, а также возможных операций - запросов и ответов. Документ WSDL определяет Web-сервис и включает в себя приведенные ниже элементы: Сервис (Service). У элемента есть атрибут «name», который используется для того, чтобы присвоить имя сервису.В настоящий момент существует ряд апробированных на практике стандартов для передачи данных в гетерогенных распределенных системах: XML, XSD, SOAP и WSDL.
Введение
В связи с широчайшим распространением сетевых технологий в настоящее время многие производители аппаратного и программного обеспечения прилагают свои усилия к выработке различных парадигм и методологий использования этих самых технологий. Не осталась в стороне, разумеется, и корпорация Microsoft. В ее недрах была разработана парадигма .NET (.NET Framework), которая кладет в основу своей идеологии представление любой программной системы как набора взаимодействующих между собой в распределенной сетевой среде агентов, называемых веб-сервисами (Web Services). Последние, в свою очередь, являются "черным ящиком" для клиентов снаружи, предоставляя им доступ лишь к своему внешнему интерфейсу и скрывая все детали реализации. При разработке приложений подобной архитектуры возникает проблема организации первичного взаимодействия между веб-сервисом и его клиентом, результатом которого должно стать получение клиентом информации об услугах, предоставляемых веб-сервисом, и способах обращения к ним. Для решения этой проблемы фирмами Microsoft, IBM и Ariba был разработан Язык описания веб-сервисов (Web Service Description Language, WSDL).
История
WSDL 1.0 (Сент. 2000) был разработан IBM, Microsoft и Ariba для описания веб-сервисов для SOAP toolkit.
WSDL 1.1, выпущен в марте 2001. Фактически это формализованный WSDL 1.0. Между этими версиями нет никаких принципиальных отличий.
WSDL 1.2 (Июнь 2003) по прежнему работает под W3C. WSDL 1.2 не поддерживается большинством вендоров SOAP.
WSDL 2.0 получил официальную поддержку W3C в июне 2007. WSDL 1.2 был переименован WSDL 2.0 поскольку имел большие отличия от предыдущей версии.
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-документ, состоящий из нескольких элементов, в том числе из описания пространства имен (namespace), описания типов и элементов, сообщений, порта, а также возможных операций - запросов и ответов.
Файл, содержащий описание сервисов, является достаточно комплексным документом, поэтому для его создания по возможности следует пользоваться автоматическими генераторами, включенными в состав средств разработки.
Документ WSDL определяет Web-сервис и включает в себя приведенные ниже элементы: Сервис (Service). Web-сервис в целом. В документе WSDL сервис описывается элементом в корне дерева. Дочерними являются элементы , , , , . У элемента есть атрибут «name», который используется для того, чтобы присвоить имя сервису. Указывается порт, используемый Web-службой, и адрес, по которому можно активизировать Web-службу.
<soap:address location=
"http://localhost/SIMPLEWEBSERVICE/Add.asmx" />
Типы (Types). Типы данных, используемые сервисом. В документе WSDL типы данных описываются с помощью элемента , содержащего один или более элементов .
Сообщение (Message). Абстрактное описание данных, передаваемых или принимаемых сервисом. Допустимо любое количество сообщений. В документе WSDL каждое сообщение описывается элементом . Каждый элемент содержит один или более элементов , необходимых для описания данных по имени и типу.
Тип порта (PORTTYPE). Абстрактный набор операций, поддерживаемых сервисом. В документе WSDL тип порта описывается элементом . Каждый элемент содержит один или более элементов ().
Операция (Operation). Абстрактное описание действия, поддерживаемого сервисом. В документе WSDL операция описывается элементом . Каждый элемент содержит элементы и , определяющие связанные сообщения. Дополнительные элементы также могут быть определены.
Привязка (Binding). Определение протокола и формата данных, предназначенных для типа порта. В документе WSDL привязка описывается элементом . У элемента есть атрибут «type», который определяет название типа порта. Для кодирования SOAP используется элемент , содержащий элемент с атрибутами «style» («rpc» или «document») и «transport». Элемент содержит элементы , описывающие формат данных для каждой операции.
Порт (Port). Конечная точка, определенная в виде комбинации связывающего и сетевого адресов. В документе WSDL порт описывается элементом под элементом . У элемента есть атрибут «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-сервиса. программный система интерфейс язык
Версии 1.1 и 2.0
Последняя официальная версия 2.0 (WSDL Version 2.0 от 26 июня 2007 года), которая имеет статус рекомендации, и версия 1.1 (WSDL Version 1.1 от 15 марта 2001 года), которая имеет статус заметки (note).
Структура
Каждый документ WSDL можно разбить на следующие логические части: определение типов данных (types) - определение вида отправляемых и получаемых сервисом XML сообщений элементы данных (message) - сообщения, используемые web-сервисом абстрактные операции (PORTTYPE) - список операций, которые могут быть выполнены с сообщениями связывание сервисов (binding) - способ, которым сообщение будетдоставлено.
Пример WSDL
Коммерческие предпосылки использования Web-сервисов
Начиная с DOMINORELEASE 5 появилась возможность написания приложений вне сервера LOTUSDOMINO и получения доступа к данным LOTUSDOMINO напрямую. Этого удалось достичь за счет использования привязок COM и CORBA к внутренним классам. Тем не менее, проблема проверки достоверности и согласованности данных, возможно, не была решена соответствующим образом с помощью внешних приложений. Web-сервисы предоставляют хороший компромисс между прямым доступом к данным и возможностью выполнения сетевых операций. Они представляют собой путь раскрытия функций приложений и данных в сети. Разработчики приложений на языке Java, Microsoft .NET, а также многих других могут получить доступ к данным LOTUSDOMINO, просто используя Web-сервисы.
Преимущества приложения, в котором внедрены Web-сервисы, лучше всего продемонстрировать на приложении ITSO Electronics, которое предоставляет клиентам текущую информацию о продуктах. Например, если приложение ITSO Electronics обещает пользователям доступ к информации о продуктах компании ITSO Electronics, ему необходимо разрешить доступ внешних приложений к базе данных покупателей вне зависимости от используемого приложения, будь то Java, J2EE или .NET. В связи с тем, что приложение покупателя отправляет запрос о получении информации Web-сервису, оно должно быть не зависимо от платформы и операционной системы. Элемент Web-сервиса получает запрос о получении данных в виде сообщения XML. Следовательно, если пользователь введет запрос в форму приложения покупателя с целью получения информации о продукте компании ITSO Electronics, Web-сервис получит запрос в виде сообщения SOAP в формате XML и отправит ответ клиенту таким же образом. Используя расширенную поддержку, приложение ITSO Electronics может расширить свою функциональность в целях получения информации о цене продуктов от множества производителей. Используя Java, элемент Web-сервиса может отправлять запросы на получение данных на множество URL-адресов, запрашивая данные о цене, используя протокол XML. Все запросы отправляются в виде сообщений SOAP, и ответы приходят в таком же формате, в приложении ITSO Electronics. Пользователь при этом не знает ни о типе базы данных, из которой получает данные, ни об операционной системе, ни о платформе. Пользователи получают доступ, по-видимому, к неограниченному запасу данных, представленному с особой эффективностью.
Вывод
Для создания открытой распределенной системы необходимо использование общепринятых языков описания интерфейса программной компоненты. В настоящий момент существует ряд апробированных на практике стандартов для передачи данных в гетерогенных распределенных системах: XML, XSD, SOAP и WSDL. Их использование позволяет создавать системы, не привязанные жестко к какому либо средству разработки программ или транспортному протоколу. Однако открытый характер спецификации SOAP допускает как реализацию использующей ее промежуточной средой некоторой дополнительной функциональности, так и принятие все новых стандартов и расширений, использующих заголовки SOAP. Это может привести к определенным сложностям при взаимодействии основанных на WSDL и SOAP программных компонент различных разработчиков.
Список литературы
1.
2.
3.
4. Книга по Lotus. Разработка приложений в среде Domino 7