Reporting Services – Business Intelligence Light
Artikel erschienen in Swiss IT Magazine 2005/04
Business Intelligence ist für jede Firma ein Muss. Richtig eingesetzt, hilft sie, fundierte Entscheide zu treffen und erfolgreicher im Markt zu agieren. Business Intelligence verlangt aber nicht immer nach komplexen OLAP und Datamining-Tools, in vielen Fällen reicht bereits eine durchdachte Reporting-Lösung. Mit den Reporting Services bietet Microsoft für seinen SQL Server 2000 seit einigen Monaten eine kostenlose Erweiterung für den Aufbau einer umfassenden und flexiblen Reporting-Infrastruktur. Wer bereits über einen SQL Server 2000 verfügt, kann die Reporting Services von der Microsoft-Homepage herunterladen und ohne zusätzliche Lizenzkosten einsetzen, solange beide Produkte auf demselben Server betrieben werden. Für Evaluationszwecke kann zudem eine 120 Tage lauffähige Testversion bezogen werden.
Microsofts Reporting-Lösung basiert auf einem zentralen Server, über den sich Berichte via Web zur Verfügung stellen lassen. Reports werden zunächst mit einem Design-Werkzeug – beispielsweise mit dem mitgelieferten Report Designer für Visual Studio.Net – erstellt und anschliessend im XML-basierten RDL-Format (Report Definition Language) auf dem Server publiziert. Der grosse Vorteil einer serverbasierten Reporting-Lösung liegt darin, dass Berichte viel universeller genutzt werden können. So können Reports nicht nur Benutzern zur Verfügung gestellt werden, sondern lassen sich auch direkt aus anderen Client-Anwendungen nutzen. Zu diesem Zweck wurden die Reporting Services mit einer umfangreichen Web-Services-Schnittstelle ausgestattet. Diese erlaubt es, gespeicherte Reports via SOAP in eigene Web- oder Windows-Anwendungen einzubinden. So kann beispielsweise über die Web-Service-API direkt aus einer Web-Anwendung ein Bericht im HTML-Format angefordert und in den eigenen Seitenaufbau eingebettet werden. Obwohl Microsofts Reporting-Lösung auf dem hauseigenen Datenbankserver aufsetzt, lassen sich nicht nur ausschliesslich Daten anzapfen, die in einem SQL Server abgelegt wurden. Über die ADO.Net-Data-Providers können die Reporting Services via ODBC, OLE-DB und XML/A (XML for Analysis) auf eine breite Palette von Datenquellen (SQL Server, Oracle, DB2, Access u.v.a.m.) zurückgreifen. Zudem lassen sich auch OLAP-Daten der SQL Server Analysis Services in einen Report integrieren. Sehr praktisch ist auch, dass sich Daten aus mehreren unterschiedlichen Datenquellen in einem einzigen Report zusammenfassen lassen.
Berichte für die Reporting Services können, wie bereits erwähnt, mit dem mitgelieferten Report Designer erstellt werden. Das Werkzeug lässt sich allerdings nur mit Visual Studio.Net 2003 einsetzen. Dazu müssen die Reporting Services zusätzlich auch auf einen Rechner aufgespielt werden, auf dem Visual Studio.Net bereits installiert ist. Während des Setups klinkt sich das Report-Designer-Add-in selbsttätig in die .Net-Entwicklungsumgebung ein und steht von da an zur vollen Nutzung bereit. Alternativ dazu können die Berichte auch mit Tools von Drittherstellern gestaltet werden. Einzige Voraussetzung ist, dass das Design-Werkzeug in der Lage ist, die Reports im RDL-Format zu speichern. Eine Auflistung mit einigen verfügbaren RDL-Tools ist unter www.microsoft.com/sql/reporting/partners/softwareapps.asp zu finden.
Die Erstellung eines Berichts kann mit dem Report Designer wahlweise manuell oder per Wizard vorgenommen werden. Die durchzuführenden Arbeitsschritte sind bei beiden Varianten dieselben: Zunächst muss die Datenquelle (Data Source) angegeben werden, von welcher der Report die Daten anzapfen soll. Anschliessend wird die Selektion des eigentlichen Datenmaterials vorgenommen. Hierzu stellt der Report Designer den aus Access oder SQL Server bekannten Query Designer zur Verfügung, mit dem sich die benötigten SQL-Abfragen bequem zusammenklicken lassen.
Der letzte und zugleich umfangreichste Arbeitsschritt ist die Festlegung des Reportlayouts. Ähnlich wie beim Design von Web- oder Windows-Oberflächen in Visual Studio.Net 2003 können dazu Controls im Drag&Drop-Verfahren auf einer Arbeitsfläche plaziert werden. Geboten werden dazu Controls wie Textboxen, Tabellen, Matrizen, Listen, Charts und Sub-Reports. Nachdem die Controls plaziert sind, müssen diese mit dem eigentlichen Datenmaterial verknüpft und mit den gewünschten Formatierungen ausgestattet werden. Wer bei der Formatierung auf Handarbeit verzichten möchte, kann sich Standardreports auch automatisch per Wizard generieren lassen.
Mit Hilfe von Visual-Basic.Net-Ausdrücken lassen sich Reports mit eigenen Berechnungen oder bedingten Formatierungen ausstatten. So ist es etwa möglich, Zahlen, welche einen bestimmten Schwellenwert überschreiten, mit einer anderen Farbe hervorzuheben.
Reports können unter Verwendung von parametrisierten Abfragen auch mit einem gewissen Mass an Interaktivität ausgestattet werden. Dabei lassen sich auch dem Benutzer beim Betrachten des Reports Auswahlfelder zur Verfügung stellen, über die er wählen kann, welche Daten er angezeigt haben möchte. Interessieren ihn beispielsweise nur die Verkaufszahlen einer bestimmten Region, kann er diese über ein entsprechendes Pull-Down-Menü auswählen.
Die Reporting Services unterstützen eine Vielzahl von Ausgabeformaten. Neben HTML, Excel oder PDF können die Berichte auch in den Formaten CSV, TIFF oder XML ausgeliefert werden. Wem das nicht ausreicht, kann eigene Rendering Extensions programmieren, um die Daten im Wunschformat ausgeben zu können. Reports werden bei den Reporting Services in zwei Stufen erzeugt. In einem ersten Schritt werden sogenannte Intermediate Reports angelegt, die bereits mit einem Layout und den nötigen Daten ausgestattet sind, aber noch nicht in ein bestimmtes Format gerendert wurden. Ausgehend von diesen zwischengespeicherten Reports werden dann die Berichte in das angeforderte Format umgewandelt. Dies hat den Vorteil, dass die Daten nicht jedesmal neu von der Datenbank abgerufen werden müssen, wenn der Report in einem anderen Format ausgegeben werden soll. Die Reporting Services unterstützen sowohl On-Demand- als auch Snapshot-Reports. Erstere kommen dann zum Zug, wenn damit zu rechnen ist, dass sich die Daten häufig ändern. Der Bericht wird dann bei jedem Aufruf inklusive Abfrage der Daten komplett neu erstellt. Snapshot-Reports machen dann Sinn, wenn die Daten selten oder gar nicht mehr (z.B. Umsätze des abgelaufenen Monats) mutiert werden. Bei diesem Verfahren werden die Berichte zu einem bestimmten Zeitpunkt generiert und für den schnellen Abruf in einem Cache gespeichert.
Für die Auslieferung der Berichte unterstützen die Reporting Services sowohl Push- als auch Pull-Mechanismen. Im Pull-Verfahren fordert der Benutzer via Web (HTTP) den Report an, der ihm dann im gewünschten Format angezeigt wird. Mit der Push-Variante lassen sich Reports automatisch an bestimmte Empfänger (per E-Mail) verschicken oder in einem Verzeichnis abspeichern. Zu diesem Zweck können serverseitig Abonnements (Subscriptions) auf Berichte abgeschlossen werden, in denen das Zeitintervall, das Ausgabeformat und der Zielort definiert werden. Die Reporting Services unterstützen auch die sogenannten Data-Driven-Subscriptions, bei denen zur Laufzeit der Report-Generierung anhand einer Abfrage automatisch bestimmt wird, wer den Report wann und in welchem Format bekommen soll.
Mit dem Report Manager verfügen die Reporting Services über eine webbasierte Konsole, mit der die publizierten Berichte an zentraler Stelle verwaltet werden können. Mit ihrer Hilfe lassen sich Sicherheitseinstellungen vornehmen, Abonnements einrichten oder Shared Data Sources managen. Bei letzteren handelt es sich um zentral definierte Datenquellen, die von mehreren Berichten gemeinsam genutzt werden können. Der Vorteil dieses Konzepts äussert sich vor allem darin, dass bei allfälligen Änderungen der Konfiguration der Datenquelle die entsprechenden Anpassungen nicht in jedem Bericht, sondern nur an einer Stelle vorgenommen werden müssen.
Ein niet- und nagelfestes Sicherheitskonzept ist das A und O einer jeden Reporting-Lösung. Da Berichte den Zugang zu unternehmenskritischen Daten vereinfachen, ist es um so wichtiger, dass exakt definiert werden kann, wer auf welche Informationen zugreifen darf. Dazu liegt den Reporting Services ein rollenbasiertes Sicherheitssystem zu Grunde, bei dem Benutzern oder Gruppen eine bestimmte Rolle zugewiesen werden kann. Anhand dieser Rollen wird bestimmt, wer welche Operationen vornehmen und welche Reports ausführen darf.
Die Reporting Services bieten SQL-Server-Kunden eine interessante und lizenzkostenfreie Lösung für das unternehmensweite Bereitstellen von Berichten. In Microsofts Produktportfolio wird das Reporting-Tool künftig gar eine zentrale Rolle spielen, denn es soll künftig bei zahlreichen Microsoft-Produkten als Lösung für die Berichterstellung zum Einsatz kommen. Der Microsoft Operations Manager 2005 (MOM 2005) beispielsweise nutzt das Berichtswerkzeug bereits heute für die Erstellung von Status-Reports. Bei künftigen Microsoft Produkten wie etwa dem Commerce Server 2006, dem Visual Studio 2005 Team System oder dem System Center 2005 Reporting Server werden die Reporting Services ebenfalls als Berichts-Engine zum Einsatz kommen.