Почему веб службы?
Удаленная и распределительная обработка данных по сути не является чем-то новым. Тогда почему веб службам уделают все больше и больше внимания?
Вот основные причины:Веб службы покрывают все вышеперечисленные проблеммы.
Что такое веб службы?
Веб служба - это часть программного обеспечения, которая принимает запросы, обрабатывает их и возвращает результат обработки.Они могут быть написаны на любом языке (в том числе и на ColdFusion) и размещаться на любом современном сервере.
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 (переводим фразу "Привет, меня зовут Бен" с русского на французский): Как видите, вызов службы, использует два тега:Использование в ColdFusion полученных от веб службы данных ничем не отличается от использование какой-либо переменной. Чтобы отобразить результат, полученный из приведенного выше запроса, следует указать следующий код:
Как ColdFusion разработчику, вам ничего не нужно знать о внутренних командах wsdl файла и о кодировке SOAP. ColdFusion MX делает использование веб служб невероятно простым занятием.
Dreamweaver MX имеет встроенную поддержку для работы с веб службами. Закладка Components на панели Application содержит опцию для веб служб. Выбирая эту опцию из выпадающего меню вам будет представлен список доступных веб служб. По умолчанию этот список пуст, но его можно пополнять самому нажав на кнопочку '+' в этой же панели.Добавляя какую-либо службу DW MX всегда буде тзапрашивать у вас адрес к wsdl файлу, который затем он обработает (получит всю информацию о возможностях данной службы) и добавит вашу новую веб службу в список. Затем в списке веб служб вы сможете просматривать их методы и параметры, а также просто перетаскивать их мышкой в окно редактора и DW MX сам создаст тег <cfinvoke> со всеми нужными аттрибутами.
Самый лучший способ изучать веб службы - пользоваться ими. Список некоторых из них вы сможете найти по адресам:
Заключение
ColdFusion MX позволяет не только легко работать с веб службами, но и легко их создавать - в этом вы только что убедились. Кроме того, ColdFusion MX поддерживает новый тип многократно используемых блоков - компоненты (ColdFusion Components - CFC), которые в некоторых случаях при желании можно определять как веб службы. Но об этом более подробно читайте в документации по их описанию.
© 2002-2005 г. Вадим Пушкарев