Механизм взаимодействия клиента и сервера SOAP
-
Клиентское приложение создает экземпляр объекта SOAPClient;
-
SOAPClient читает файлы описания методов веб-сервиса (WSDL и Web Services Meta Language - WSML). Эти файлы могут храниться и на клиенте;
-
Клиентское приложение, используя возможности позднего связывания методов объекта SOAPClient, вызывает метод сервиса. SOAPClient формирует пакет запроса (SOAP Envelope) и отправляет на сервер. Возможно использование любого транспортного протокола, но, как правило, используется HTTP;
-
Пакет принимает серверное приложение Listener (может представлять собой ISAPI приложение или ASP страницу), создает объект SOAPServer и передает ему пакет запроса;
-
SOAPServer читает описание веб-сервиса, загружает описание и пакет запроса в XML DOM деревья;
-
SOAPServer вызывает метод объекта/приложения, реализующего сервис;
-
Результаты выполнения метода или описание ошибки конвертируются объектом SOAPServer в пакет ответа и отправляются клиенту;
-
Объект SOAPClient проводит разбор принятого пакета и возвращает клиентскому приложению результаты работы сервиса или описание возникшей ошибки.
WSDL файл это документ в формате XML, описывающий методы, предоставляемые веб-сервисом. Также параметры методов, их типы, названия и местонахождение Listener`а сервиса.
Подключение к SOAP-серверу прописывается в модуле, который подключается на всех страницах, и разработчик просто вызывает необходимые функции.
Пример подключения к SOAP-серверу:
$client=newSoapClient(null,array('location'=>"http://is.iriit/soap/soap_is.php",
'uri' => "http://is.iriit/soap/soap_is.php",
'login' => "логин",
'password' => "пароль",
'encoding' => "WINDOWS-1251"));
Пример вызова SOAP-функции:
$massiv=$client->SpisokPred($user_id);
Разработчику нужно хорошо знать последний пример, так как ему необходимо для решения определенных задач вызывать SOAP-функции, а подключение к SOAP-серверу прописывается один раз в модуле, который подключается в каждом разрабатываемом модуле.
2006 © Захарова Анна (диплом)