Ruolo di SOAP in Reporting Services

Il servizio Web ReportServer utilizza la messaggistica SOAP (Simple Object Access Protocol) per inviare comandi basati su testo in una rete. Questi comandi sono in formato di testo XML e vengono inviati nel World Wide Web utilizzando HTTP. Grazie all'utilizzo di SOAP come protocollo di comunicazione, il servizio Web ReportServer consente alle applicazioni e ai componenti di scambiare dati con il server di report utilizzando un'infrastruttura aperta molto diffusa. Lo standard SOAP è definito nel sito www.w3.org/TR/SOAP.

Qualsiasi applicazione client può fungere da client SOAP purché sia compatibile con SOAP e possa inviare richieste SOAP. Gestione report è un client SOAP. Questo client fornisce un'interfaccia per il database del server di report in cui vengono archiviati tutti i report e il contenuto correlato ai report. Gli utenti finali possono utilizzare l'applicazione per esplorare e gestire report e cartelle nello spazio dei nomi del server di report. Gestione report è basato sull'infrastruttura del servizio Web ReportServer.

Un server di report funge da server SOAP, un servizio che supporta SOAP in grado di accettare le richieste dai client SOAP e di creare risposte appropriate. Il server gestisce le richieste e restituisce al client risposte codificate.

I messaggi SOAP in Reporting Services possono avere formati diversi, a seconda del tipo di richiesta effettuata dal client. Nell'esempio seguente viene rappresentata una semplice richiesta client SOAP per la rimozione di un elemento dal database del server di report.

<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 richiede che i messaggi siano inseriti in un elemento Busta e che il blocco del messaggio sia inserito in un elemento Corpo. In questo esempio il corpo contiene una chiamata al metodo DeleteItem che accetta un parametro stringa che rappresenta il percorso dell'elemento da eliminare. È possibile creare una classe proxy client Microsoft .NET Framework che incapsula tutte le operazioni SOAP nei metodi. Il metodo Microsoft C# seguente rappresenta l'esempio SOAP specificato in precedenza.

public void DeleteItem(string item);  

La risposta dal server potrebbe essere simile all'esempio seguente:

<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>  

Il metodo DeleteItem non restituisce alcun valore, pertanto viene restituita una risposta vuota.

Accesso all'API SOAP
Gestione report (modalità nativa SSRS)
Reporting Services Report Server
Servizio Web ReportServer