Еженедельник Свет в Интернет

Главная

Новости

Статьи и обзоры
  Горожанин
  Обнинск в Internet
  Web Design
  Hardware
  Software
  Безопасность
  Серфинг
  Игродром
  Relax
  Технологии
  Web-обзор
  Интернет-ликбез
  Опросник
  УП-Технологии
  ART.net

Ссылки

Архив

О нас

Контакты

Форумы


Основатель:
К.Николаенко

Главный Редактор:
С.Коротков

Web Design:
Neutron


Наш спонсор






Порт POPULAR.RU
POPULAR.RU RegionalBanner Network.






Океан


НПП Метра - промышленные электронные автомобильные вагонные весы
Goldy Interior - салон офисной мебели: кабинеты руководителей, мебель для персонала

= Технологии =

ВВЕДЕНИЕ В ВЕБ-СЕРВИСЫ

Андрей Филёв, Михаил Плизкин

Многие уже знакомы с новой технологией компании Microsoft - .NET. но далеко не все знают, что одним из первоначальных имен платформы .NET было NGWS (Next Generation Web Service), ведь новая технология позиционировалась как базовая для создания интеренет-приложений нового типа - веб-сервисов. На поддержку и продвижение данной технологии компания Microsoft затратила огромные ресурсы, и эту инициативу подхватили многие гиганты индустрии, такие как IBM, Sun, Hewlett-Packard, SAP AG и другие.

Веб-сервисы - это новый способ программного доступа к функциональности веб-серверов, в основе которого лежат два стандарта - НТТР (используется в качестве протокола для передачи данных) и XML (используется в качестве способа представления самих данных). Для вызовов методов и передачи данных в сервисах используется протокол SOAP (Simple Object Access Protocol), для описания сервисов - язык WSDL (Web Service Description Language), а для структурирования, каталогизирования и поиска сервисов - служба UDDI (Universal Description, Discovery and Integration).
Именно с помощью UDDI вы можете поместить сервис в каталог, где клиенты, работающие на серверах, настольных компьютерах и мобильных устройствах, динамически могут его обнаружить. Это открывает новые горизонты для предоставления программных услуг. Но почему именно веб-сервисы? Приложения и раньше обменивались информацией через Интернет - для этого служат DCOM-, CORBA-, Java RMI-, HTTP GET/POS-запросы. Все эти способы обладают одним или несколькими недостатками: у них отсутствует расширяемость, есть проблемы с доступом через сетевой экран, они привязаны к определенной платформе программирования, возникают сложности при разработке сервиса и клиентского приложения.
Типичные примеры - различные финансовые серверы выдают котировки и курсы валют по-разному, та же неразбериха с погодой, статистикой и другими данными, что заметно усложняет разработку 2b2-систем и порождает сложные системы с доминированием связей "многие-ко-многим".
Кроме того, многие веб-мастера из-за сложности старых технологий и не задумывались о возможности написания программной функциональности для своих серверов. Тот, кто хотел иметь доступ к этой информации из своих программ, вынуждены были запрашивать HTML-код с помощью НТТР-запросов и затем производить его разбор, вычленяя нужные данные по частям.
Технологии, лежащие в основании веб-сервисов, помогают избавиться от перечисленных недостатков. Протокол НТТР является одним из самых распространенных, используемый им порт 80 чаще всего открыт на межсетевых экранах. Программные вызовы с использованием этого протокола в качестве носителя можно делать из любой среды, поддерживающей TCP/IP, а к ним относятся большинство современных сред программирования (Java, Perl, Win32, .NET).
Сообщения SOAP и документы WSDL представляют собой XML. A XML является стандартом де-факто для кросс-платформенного представления структурированной информации, библиотек, поддерживающих XML, нет разве что в древнейших манускриптных языках программирования. В результате сервис, написанный на .NET, можно использовать в программе на Perl или Java. Разработка таких сервисов достаточно проста, поэтому постоянно создаются новые библиотеки, делающие работу с веб-сервисами все более простой и "родной" для той или иной среды разработки.
Рассмотрим в статье работу с веб-сервисами с использованием платформы Microsoft .NET, так как эта сравнительно недавно появившаяся среда программирования хорошо приспособлена для их создания.

SOAP

Знание SOAP не обязательно для работы с веб-сервисами, так что нетерпеливые читатели могут пропустить этот фрагмент. Тем не менее, знакомство с данным протоколом поможет глубже понять механизм работы веб-сервисов.
Структура сообщения SOAP очень проста - это XML-документ, помещенный в рамки НТТР-сообщения. SOAP определяет механизм передачи команд и параметров по НТТР вне зависимости от операционной системы, языка программирования или объектной модели на клиентской или серверной стороне. SOAP основан на наиболее распространенных интернет-технологиях и не требует специальных настроек маршрутизаторов, межсетевых экранов или прокси-серверов.
Ниже приведены примеры одного и того же запроса к веб-сервису, выполненному разными способами: SOAP, HTTP GET, HTTP POST.

SOAP

POST /webservices/usergroupservice.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-length: [здесь должна указываться длина]
SOAPAction: "http://localhost/webservices/getUserGroups"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetUserGroups xmlns="http://localhost/webservices/"/>
</soap:Body>
</soap:Envelope>

HTTP GET

GET /webservices/usergroupservice.asmx/GetUserGroups? HTTP/1.1
Host: localhost

HTTP POST

POST /webservices/usergroupservice.asmx/GetUserGroups HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: [здесь должна указываться длина]

Продолжение следует.


Copyright © Свет в Internet   Designed by Свет в Internet