Новость из категории: Информация

Сбор данных с сайтов с помощью веб-служб на базе SOAP и REST

Сбор данных с сайтов с помощью веб-служб на базе SOAP и REST

Веб-серфинг от компьютера к компьютеру

Поскольку наши потребности вышли за рамки простого анализа экранных данных, в отрасли были разработаны стандарты, упорядочивающие взаимодействие между компьютерами и веб-сервером и реализуемые в виде веб-служб. Помимо конкретных URL-адресов, по которым мы переходим из окна браузера, чтобы проверить состояние акций, посмотреть погоду, курс валюты и т. д., существуют и другие URL-адреса, позволяющие создавать хотя и неудобные для зрительного восприятия, но зато содержательные документы в формате XML, так что было бы ошибкой упустить возможность сбора данных с веб-страниц с помощью веб-служб.

Следует, однако, понимать, что для предмета поиска может и не существовать веб-службы. Возможно, бюджет владельца данного веб-ресурса не предусматривает построение удобных для чтения веб-страниц и соответствующих веб-служб. А может, и вовсе, для сбора данных используется локальная машина - к примеру,ноутбуки Acer (http://www.elmarket.by/catalog/tags~noutbuki~acer/).

Сбор данных с сайтов с помощью веб-служб на базе SOAP и REST

SOAP или REST?

Каждая веб-служба реализует уникальную схему организации запросов, но обычно используются два варианта: простой протокол доступа к объектам Simple Object Access Protocol (SOAP) и передача репрезентативного состояния Representational State Transfer (REST). По сути, веб-служба — это реализация набора протоколов информационного обмена между компьютерами, подобно технологии Microsoft RPC. Однако веб-службы с самого начала ориентированы на независимость от платформы. К счастью, у первых конструкторов уже были службы TCP/IP, HTTP. DNS и т. д. Не было у них, однако, удобной конструкции, позволяющей компьютеру 1 послать компьютеру 2 запрос: «Могу ли я получить некие данные и в какой упаковке они будут доставлены?»



Сбор данных с сайтов с помощью веб-служб на базе SOAP и REST

Самым первым ответом на этот вопрос стал стандарт упакованного в XML запроса-ответа, который получил название SOAP.

Минимальный запрос SOAP выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
 <soap12:Body>
 <GetTime xmlns="http://timecurrentime88.com/WebServices">
 <Request>EST</Request>
 </GetTime>
 </soap12:Body>
</soap12:Envelope>

Запись выглядит громоздкой, но при внимательном рассмотрении видно, что данная воображаемая служба возвращает текущее время (запрашиваемый часовой пояс — EST, то есть североамериканское восточное время). Языку XML присущи иерархии, поэтому он способен манипулировать структурированными данными. Отвечает веб-служба также в стандарте SOAP. У большинства веб-служб на базе SOAP есть еще один файл XML, встроенный в язык описания веб-служб Web Service Description Language (WSDL). Этот файл содержит пояснение, как следует форматировать запросы и ответы SOAP для данной веб-службы. Поэтому мы проведем небольшое XML-исследование, что не должно вас пугать, так как существует команда New-WebServiceProxy, которая читает WSDL и несколько упрощает дело.

Сбор данных с сайтов с помощью веб-служб на базе SOAP и REST

REST, который является альтернативой SOAP, позволяет запрашивать сервер с помощью простых URL-адресов. REST-версия рассмотренного выше примера запроса SOAP принимает вид простого URL-адреса:
http://timegetcurrentime.com/timezone/EST 

Заметим, что этот запрос содержит запись limezone, а не gettimezone, поскольку REST глагольным формам предпочитает существительные. Результат, возвращаемый этой воображаемой веб-службой, может быть в формате XML, CSV либо в текстовом формате javascript Object Notation (JSON) — очередном формате представления иерархических структур данных.

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх