Роль SOAP в службах отчетов

Веб-служба сервера отчетов использует обмен сообщениями по протоколу 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="http://www.microsoft.com/sql/ReportingServer">  
            <item>/Samples/Report1</item>  
        </DeleteItem>  
    </soap:Body>  
</soap:Envelope>  

Протокол SOAP требует, чтобы сообщения помещались в элемент Envelope, а большая часть сообщения располагалась в элементе Body. В этом примере элемент Body содержит вызов метода DeleteItem, который принимает строковый параметр, представляющий путь к удаляемому элементу. Вы можете создать класс прокси клиента Microsoft платформа .NET Framework, который инкапсулирует все операции SOAP в методы. Следующий метод Microsoft 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="http://www.microsoft.com/sql/ReportingServer" />  
    </soap:Body>  
</soap:Envelope>  

Метод DeleteItem не имеет возвращаемого значения, поэтому возвращается пустой ответ.

Доступ к API SOAP
Диспетчер отчетов (службы SSRS в основном режиме)
Сервер отчетов служб Reporting Services
Веб-служба сервера отчетов