Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #67, ИЮНЬ 2006 г.

получаем удовольствие от web-сервисов

ALEXEY SHOCKOV

Спецвыпуск: Хакер, номер #067, стр. 067-048-1


(ALEXEY.SHOCKOV@SPLENDOT.COM; ICQ 6311338; HTTP://SPLENDOT.COM)

СДЕЛАЕМ ПОИСК ПРОЩЕ С ПОМОЩЬЮ PHP5&ЯNDEX.XML

В ПОСЛЕДНЕЕ ВРЕМЯ В СЕТИ СТАЛИ ВСЕ ЧАЩЕ УПОМИНАТЬ СЛОВО «WEB-СЕРВИС». ЧТО ПРЕДСТАВЛЯЕТ СОБОЙ ЭТА ТЕХНОЛОГИЯ? ДЛЯ ЧЕГО ОНА ПРЕДНАЗНАЧЕНА? КАК ИСПОЛЬЗОВАТЬ ЕЕ? СТАТЬЯ ОТВЕЧАЕТ НА ВСЕ ВОПРОСЫ И ДЕМОНСТРИРУЕТ КОНКРЕТНЫЙ ПРИМЕР РАБОТЫ С WEB-СЕРВИСАМИ

Чего хочет любой человек, а особенно программист? Правильно! Совершать поменьше телодвижений, а получать от жизни как можно больше. Добиться этого можно не изобретая велосипед. Существует очень мало задач, с которыми еще не сталкивался никто, кроме тебя. Очень велик шанс, что кто-то уже решил задачу, — тебе остается только приспособить решение под свои нужды.

Web-сервис — это решение задачи. Внедряешь его в свою программу — и наслаждаешься жизнью. К примеру, поиск с учетом морфологии на нашей страничке реализуется очень простым способом с помощью Яndex.XML — web-сервиса, который недавно открылся на базе поисковой системы Яndex.

[немного теории] По сути, web-сервис — это обмен документами стандартизированного формата по существующему протоколу HTTP. Простейшим web-сервисом можно назвать RSS-ленты новостей — краткие обзоры новостей сайтов, информацию из которых можно публиковать, к примеру, на собственном сайте.

В последние несколько лет web-сервисы распространились широко благодаря тому, что были стандартизированы протоколы обмена данными и реализована поддержка этих протоколов в большинстве языков программирования. Самым известным и используемым протоколом на сегодня является SOAP (Simple Object Access Protocol), получивший статус стандарта консорциума World Wide Web. SOAP поддерживает основные типы данных, такие как числа и строки, а также произвольные пользовательские структуры данных, что позволяет приложениям, написанным на любом языке программирования, обмениваться произвольными данными по Сети.

Как дополнение к самому протоколу существует очень полезная технология WSDL. Web Services Description Language (язык описания web-сервисов) служит для того, чтобы упростить использование web-сервиса путем описания имен методов, их адресов и другой информации, нужной для работы с web-сервисом. Другими словами, нам совершенно не нужно знать и описывать эту информацию самостоятельно, если WSDL поддерживается библиотекой, используемой для работы с web-сервисами. Мы просто указываем ссылку на файл с описанием web-сервиса и вызываем методы, которые он предоставляет. Вся нужная информация будет взята из файла описания.

Протокол SOAP также открывает множество альтернатив. К примеру, более простой XML-RPC (разработан на несколько лет раньше, чем SOAP). Рассмотрение этих протоколов выходит за рамки статьи, к тому же каждый протокол имеет документацию — ознакомься, если возникнут вопросы.

[Яndex.XML] — это web-сервис, использующий для передачи данных собственный протокол (формат XML-файла). На момент написания статьи не написано никаких библиотек для работы с этим web-сервисом, кроме примера Perl-скрипта на официальном сайте проекта, так что мы в какой-то степени первопроходцы.

Содержание  Вперед на стр. 067-048-2