Роль протокола SOAP в службах Reporting Services
Веб-служба сервера отчетов использует обмен сообщениями по протоколу SOAP для отправки текстовых команд по сети. Эти команды имеют вид XML-текста, передаваемого через Интернет по протоколу HTTP. Использование протокола связи SOAP в веб-службе сервера отчетов позволяет приложениям и компонентам обмениваться данными с сервером отчетов, используя широко признанную открытую инфраструктуру. Стандарт SOAP определен на веб-сайте www.w3.org/TR/SOAP.
В качестве клиента SOAP может выступать любое приложение, которое поддерживает протокол SOAP и может отправлять SOAP-запросы. Примером такого клиента SOAP является диспетчер отчетов. Он предоставляет интерфейс к базе данных сервера отчетов, в которой хранятся все отчеты и относящееся к ним содержимое. Пользователи этого приложения могут просматривать папки и отчеты в пространстве имен сервера отчетов и работать с отчетами. Диспетчер отчетов построен на инфраструктуре веб-службы сервера отчетов.
Сервер отчетов выступает в роли сервера SOAP — службы, которая поддерживает протокол SOAP, может принимать запросы от клиентов SOAP и формировать необходимые ответные сообщения. Сервер обрабатывает запросы и посылает клиенту закодированные ответные сообщения.
Сообщения SOAP в службах Службы Reporting Services могут принимать множество различных форм в зависимости от типа запроса, выполненного клиентом. В следующем примере показан простой запрос клиента SOAP для удаления элемента из базы данных сервера отчетов.
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItem xmlns="https://www.microsoft.com/sql/ReportingServer">
<item>/Samples/Report1</item>
</DeleteItem>
</soap:Body>
</soap:Envelope>
Протокол SOAP требует, чтобы сообщения помещались в элемент Envelope, а большая часть сообщения располагалась в элементе Body. В этом примере элемент Body содержит вызов метода DeleteItem, который принимает строковый параметр, представляющий путь к удаляемому элементу. Можно создать класс-посредник клиента Microsoft .NET Framework, в котором все операции SOAP инкапсулируются в методы. Следующий метод Microsoft Visual C# представляет пример SOAP-запроса, приведенный ранее.
public void DeleteItem(string item);
Ответ от сервера имеет приблизительно следующий вид:
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItemResponse xmlns="https://www.microsoft.com/sql/ReportingServer" />
</soap:Body>
</soap:Envelope>
Метод DeleteItem не имеет возвращаемого значения, поэтому возвращается пустой ответ.
См. также
Основные понятия
Диспетчер отчетов (службы SSRS)