SQL Server Reporting Services, due to its robust but user friendly architecture, is an obvious choice for Enterprise or in-house reporting, for product management, sales, and human resource and finance departments. Its flexibility makes it an ideal for usage in applications as well (Deliver User-Friendly Reports from Your Application with SQL Server Reporting Services - MSDN Magazine August 2004). Reporting Services offer various delivery methods, from ftp to email and it provides various rendering formats therefore it makes adds easiness to business to business reporting. Similarly because of its flexibility and industry standard security model, it makes extranet and secure internet reporting easily achievable.
The reporting system comprises for following main components.
Report Server & Report Server Database
Report Server is an integrated web service which controls report generation and management. Report Server database is a SQL server database which is used as data dictionary about reports (catalogue, groups) and caching. SQL server agent is used for scheduling the reports.
An ASP.NET based Web interface for managing the reports, setting security and user permissions.
Report Designer is considered as a part of reporting services in Microsoft documentation but because RDL (Report definition language) is an XML based open standard, any vendor can implement it and therefore a single tool can’t be categorized as report designer. However, Microsoft provides a graphical report authoring tool with Visual Studio.NET 2003 or later for creating reports which automatically creates RDL markup at the backend.
Reporting services were designed with concept of disparate data sources in mind. A single report can retrieve data from multiple heterogeneous databases and render it to make it look like it’s from a single source. It provides built-in windows authentication security however one can write custom security wrapper to fit particular enterprise needs.
With SQL Server reporting services, multiple delivery methods and formats work like a charm. You design a generic report and reporting server takes care of exporting it into HTML, Excel, PDF, WAR(web archive), TIFF, CSV and XML format. As always, one can write his own custom format writer wrapper class for any custom format.
Reporting Services Delivery Formats
Reporting Services provide four distinct formats of report delivery also known as subscription in Reporting Services arena; Individual subscription, data driven subscription, SMTP delivery and file share directory (FTP) based subscriptions.
Reporting Services Architecture
Above diagram schematically explains Reporting services architecture
Beside the code segments which can be written within a report in VB.NET, these API provides makes it more programmable. The application program interface can be classified into following categories.
- Data processing extension application programming interface (API)
- Delivery extension API
- Rendering extension API
- Security extension API
- Web service API
- Windows Management Instrumentation (WMI) configuration API
Interactive interfaces are another salient feature of SQL Server Reporting Services. Reports designed in SQL server reporting services supports charts, document map, freeform, cross tab matrix, sub reports and tables. Reports can also be parameterized and event driven (supports actions). Management is one of the most important parts in any reporting system; SQL server reporting services has it all planned. It manages jobs from a user friendly console, provides personalization "my reports", tracks report history, manage shared data sources, provide search, subscription and snapshot features with shared subscription from one stop shop, the management console. Reporting Services supports report caching and stores reports execution data in execution logs,
Report Generation and Publishing
As defined in the diagram above, the process of report generation and publishing consists of the following main steps.
- Reporting server engine (Report Processor) receives the request for a particular report. A request includes parameters and formatting instructions.
- Report Processor retrieves the report definition on the basis of request.
- For the corresponding RDL, the report processor then retrieves the report data for specified data sources.
- Report Processor performs transformation on reporting data and sends the document data along with schema to rendering engine (rendering extension).
- The extension publishes the final rendered report.
- The following steps are basics of how reporting services work. The extensions (data processing extensions, rendering extensions etc) can be custom built and wrap around the existing set of API to provide extended functionality.
SSRS Integration with SharePoint 2007
- SQL Server 2005 SP2 is installed on report server in Native mode along with WSS Object Model (farm install)
- SSRS Configuration Tool creates a new Report Server database in “SharePoint Integration mode”
- SSRS Add-In is installed on WSS 2007
- WSS Central Admin web pages register SSRS web service and windows service with WSS farm
Database Integration Points
- WSS Content Database stores the master copy of SSRS items
- Schedules, caching, and subscriptions are stored in SSRS database only