Главная
Новости
Статьи и обзоры
Горожанин
Обнинск в Internet
Web Design
Hardware
Software
Безопасность
Серфинг
Игродром
Relax
Технологии
Web-обзор
Интернет-ликбез
Опросник
УП-Технологии
ART.net
Ссылки
Архив
О нас
Контакты
Форумы
Основатель: К.Николаенко
Главный Редактор: С.Коротков
Web Design: Neutron
|
|
= Технологии =
ВВЕДЕНИЕ В ВЕБ-СЕРВИСЫ
Андрей Филёв, Михаил Плизкин
Многие уже знакомы с новой технологией компании 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: [здесь должна указываться длина]
Продолжение следует.
|
|