http://blagtalkan.ru
http://oktpoisk.ru
http://mysorru.ru/
http://san-okt.ru/
http://pes6evolution.ru/
http://chasikigov.ru
http://serafimsovet.ru
http://filmsgov.ru
http://free-domen.ru
http://fithonda.ru/forums/index.php
http://avtogov.ru
http://www.1001bilet.com.ua/base/on-line/
http://pravilavoini.ru
http://school41ufa.ru
http://rusrav4.ru
Удаленный вызов процедур | Книга AJAX
 

Способ, основанный на удаленном вызове процедур, интерпрет веб-службу как некий объект, содержащий один или более ме (практически точно так же, как если бы для установления соедине с базой данных использовался локальный класс). Запрос, отпра мый веб-службе, содержит описание имени вызываемого метода и i ные параметры, если таковые существуют.1 Сервер исполняет и отправляет обратно ответ с результатами, если таковые вообще < в формате XML или сообщение об ошибке, если что-то пошло не • Представьте себе простейшую веб-службу, которая реализует че арифметические операции: сложение, вычитание, умножение и де ние. Каждый из методов принимает два числа и возвращает результ В этом случае запрос RPC на выполнение операции сложения моН выглядеть так:
<?xml version="1.0" encoding="utf-8" ?>

4.5
5.4
Согласно спецификации оригинального протокола RPC от Sun, вз за прототип взаимодействия в SOAP, вызов удаленного метода требует i редачи еще третьей группы данных - версии затребованного имени ме (на удаленном узле, о котором априори должно быть мало что известно, i жет быть установлено одновременно несколько версий реализации тр мого метода или, наоборот, установлена реализация совсем не той вер которая вызывается, что может привести совсем не к тем действиям, ко рые предполагает вызывающая сторона). - Примеч. науч. ред.

Всякий раз, когда вы имеете дело с необычными документами, напри¬мер с документами, имеющими хождение только внутри предприятия шли нужными для обеспечения взаимодействия между конкретными приложениями, возникает необходимость в пространствах имен. Про¬странства имен в SOAP приобретают особое значение, поскольку доку¬менты должны генерироваться и интерпретироваться различными системами. Пространство имен SOAP, описанное в этом примере как http://schemas.xmlsoap.org/soap/envelope/, предназначено для версии
1.1 и может существенно изменяться в зависимости от версии. Версии
1.2 пространства имен соответствует TJRI http://www.w3.org/2003/05/ шоар-envelope.
Элемент определяет имя вызываемого метода (add) и в этом примере содержит описание другого пространства имен: http://www. wrox.com I services I math. Это пространство имен характерно для вызы¬ваемой службы и может задаваться разработчиком. Атрибут soap: enco-ringStyle указывает URI, который определяет способ кодировки дан¬ных в запросе. Существует еще целый ряд других способов кодирова¬ния, например система типов, содержащаяся в схеме документа XML.
Для передачи дополнительной информации, например данных о полномочи¬ях, может использоваться необязательный элемент , кото¬рый должен располагаться непосредственно перед .
Если запрос на сложение двух чисел выполнен без ошибок, сообщение с результатом сложения могло бы выглядеть так:
<?xml version="1.0" encoding="utf-8" ?>

9.9
Как видите, формат ответа очень похож на формат запроса. Стандарт¬ным приемом уже стало возвращение результата в элементе с именем метода, сопровождаемым словом «Response». В данном случае это эле¬мент , принадлежащий тому же пространству имен, что и элемент в запросе. Собственно результат возвращается в элементе . Обратите внимание, что разработчик веб-службы может сам определять все эти имена элементов.
Если в процессе обработки запроса SOAP на стороне сервера возникают какие-либо проблемы (если исходить из предположения, что запрос во¬обще достиг сервера), возвращается элемент . Например,
если бы в первом операнде по ошибке было передано не число, а наб нецифровых символов, вы могли бы получить в ответ такое сообщев
<?xmi version="1.0" encoding="utf-8" ?>

soap:Client CepBep не смог прочитать запрос.
Входная строка имеет ошибочный формат. Ошибка в документе XML (4, 13).
В документе может быть только один элемент , и он соде жит описание возникшей проблемы. Самая значимая информация i ходится в элементе . В нем может передаваться строго ог ничейное число вариантов, из которых чаще других встречаются зна ния soap: Server и soap: Client. Значение soap .Server указывает на то,' ошибка возникла на стороне сервера, например у сервера нет соедв ния с базой данных. В такой ситуации повторная попытка вызова i службы может увенчаться успехом. Значение soap:Client свидетел вует о некорректном форматировании запроса, и повторные попь вызова не увенчаются успехом, если запрос не будет перестроен.
Сообщение об ошибке в удобочитаемом для человека виде сохраняв в элементе . Это сообщение содержит детальное опв ние ошибки, характерное для данного приложения. Если ошибка i явилась в результате обращения к внешней системе, например к < данных, то информация, имеющая отношение к этой ошибке, моя быть возвращена в дополнительном элементе (в да примере не показан).