Веб службы (Web services)

Веб службы позволяют компьютерам соединяться и взаимодействовать между собой с помощью интернета и его протоколов. С их появлением простая передача данных между хостами осталась в прошлом. Веб службы позволяют осуществлять удаленную обработку данных, т.е. хост делает запрос удаленному серверу, который в свою очередь обрабатывает его и возвращает результат.

 

Почему веб службы?

Удаленная и распределительная обработка данных по сути не является чем-то новым. Тогда почему веб службам уделают все больше и больше внимания?

Вот основные причины: Работа с данными через http запрос требует создания дополнительного кода для контроля над получением данных, т.к. этот процесс сильно чувствителен ко всякого рода ошибкам. Даже если между серверами очень быстрая и качественная связь, это все-равно не избавляет вас от появления ошибок при передаче данных. Несовместимость систем взаимодействующих между собой серверов также зачастую приводит к невозможности обмена данными.

Веб службы покрывают все вышеперечисленные проблеммы.

 

Что такое веб службы?

Веб служба - это часть программного обеспечения, которая принимает запросы, обрабатывает их и возвращает результат обработки.

Они могут быть написаны на любом языке (в том числе и на ColdFusion) и размещаться на любом современном сервере.

 

WSDL файл

Пользуясь веб службами следует знать о них некоторые детали: Эта информация хранится в файле с расширением wsdl.

Разработчики, создающие веб службы, должны создавать соответствующие wsdl файлы. Чтобы веб служба была доступна, следует обеспечить доступ к этому wsdl файлу через адресную строку. Прочитав wsdl файл (в xml формате) пользователь сможет узнать все о данной веб службе.

Alta Vista предлагает к использованию службу под названием Babel Fish, которая переводит текст с одного языка на другой в указанном направлении. Alta Vista предлагает использовать html форму, как основной способ взаимодействия с этой службой - заполняем какой-то текст, указываем с какого на какой язык перевести и Babel Fish отобразить ваш текст на нужном вам языке.

Это прекрасно срабатывает для текста, введенного вручную. Но что, если вы хотите использовать возможность перевода текста в собственном приложении? Для этого html форма будет не лучшим интерфейсом для получения данных.

Чтобы решить эту задачу, на сайте xmethods.com предлагается свой интерфейс веб службы Babel Fish на Alta Vista. Здесь веб служба определена wsdl файлом (доступным на xmethods.com), прочитав который можно понять, что она требует два вида данных (выборы изыка и текста для перевода) и возвращает результат в виде строковой переменной. Зная об этом, любое приложение может делать запросы к этой веб службе и осуществлять перевод текста.

 

Веб службы в ColdFusion

ColdFusion MX полностью поддерживает использование веб служб, и даже более того, их .легче всего использовать в ColdFusion MX, чем на каких-либо других платформах или языках.

Чтобы вызвать веб службу средствами ColdFusion, следует использовать тег <cfinvoke>. Тег <cfinvoke> требует указания пути к wsdl файлу в аттрибуте webservice, вызоваемую функцию в аттрибуте method и название переменной, в которой будут содержаться возвращенные данные.

Пример CFML кода, который позволяет осуществить запрос к веб службе Babel Fish (переводим фразу "Привет, меня зовут Бен" с русского на французский):
Как видите, вызов службы, использует два тега: В приведенном выше примере было указано два параметра: translationmode, который указывает с какого на какой язык переводить, и sourcedata, указывающий текст для перевода.

Использование в ColdFusion полученных от веб службы данных ничем не отличается от использование какой-либо переменной. Чтобы отобразить результат, полученный из приведенного выше запроса, следует указать следующий код:

Как ColdFusion разработчику, вам ничего не нужно знать о внутренних командах wsdl файла и о кодировке SOAP. ColdFusion MX делает использование веб служб невероятно простым занятием.

Dreamweaver MX имеет встроенную поддержку для работы с веб службами. Закладка Components на панели Application содержит опцию для веб служб. Выбирая эту опцию из выпадающего меню вам будет представлен список доступных веб служб. По умолчанию этот список пуст, но его можно пополнять самому нажав на кнопочку '+' в этой же панели.

Добавляя какую-либо службу DW MX всегда буде тзапрашивать у вас адрес к wsdl файлу, который затем он обработает (получит всю информацию о возможностях данной службы) и добавит вашу новую веб службу в список. Затем в списке веб служб вы сможете просматривать их методы и параметры, а также просто перетаскивать их мышкой в окно редактора и DW MX сам создаст тег <cfinvoke> со всеми нужными аттрибутами.

Самый лучший способ изучать веб службы - пользоваться ими. Список некоторых из них вы сможете найти по адресам:

 

Заключение

ColdFusion MX позволяет не только легко работать с веб службами, но и легко их создавать - в этом вы только что убедились. Кроме того, ColdFusion MX поддерживает новый тип многократно используемых блоков - компоненты (ColdFusion Components - CFC), которые в некоторых случаях при желании можно определять как веб службы. Но об этом более подробно читайте в документации по их описанию.


Автор статьи: Бен Форта (ben(at)forta.com)

 


Hosted by uCoz