SQL 2008 : Reporting Services Architecture
When referring to SSRS as a platform, we are actually talking about a cohesive set of development tools, configuration tools, web services, applications, and utilities, all working together to deliver enterprise-grade reporting.In a nutshell, the platform includes the following components:
- A single Windows service, listed in the Windows Service Control applet as SQL Server Reporting Services (InstanceName), which acts as a host for and provides centralized control of SSRS’s background processing engine, web services, and Report Manager web application. It also handles encryption and decryption of stored credentials and connection information.
- Two databases, known as the Report Server catalogs (note that the following are their default names; you can name them whatever you want using the Reporting Services Configuration Manager, or RSCM):
- ReportServer— Stores all reporting objects, including reports, security settings, schedules, subscriptions, snapshots, users, configuration settings, and encryption keys.
- ReportServerTempDB— Stores ephemeral report data (sometimes called intermediate processing products), such as cached reports, session and execution data.
- Four .NET web services, which serve as SSRS’s programmatic APIs:
- ReportService2005.asmx— Provides methods for managing all aspects of an SSRS instance configured in native mode.
- ReportService2006.asmx— Provides methods for managing all aspects of an SSRS instance configured in SharePoint-integrated mode.
- ReportService2010.asmx— Subsumes functionality of ReportService2005.asmx and ReportService2006.asmx.
- ReportExecution2005.asmx— Provides methods for custom report rendering and execution.
- Three command-line applications, all located in %PROGRAMFILES%Microsoft SQL Server100ToolsBinn:
- RSKeyMgmt.exe— Provides encryption management for securing database-stored Report Server content, such as credentials, connection strings, accounts, and the encryption key itself. This tool is also used to join servers in an SSRS farm configuration (via the -j option).
- RS.exe— Enables developers to write scripts in VB .NET that leverage the web service APIs.
- RSConfig.exe— Enables you to programmatically change SSRS configuration values in RSReportServer.config (the configuration file for the web service APIs), either on a single or multiple machines.
- Report Manager, an administrative website that provides Web-based control over SSRS, including the ability to
- Add or remove, organize, configure, and run all kinds of SSRS objects, including
- Administer the SSRS security model, including
- Users and roles.
- Role assignments (remember to keep these simple).
- Reporting Services Configuration Manager (RSCM), a configuration GUI application (covered in detail in the following section).
- A suite of SharePoint Web parts, pages, and documentation.
- Report Builder, a ClickOnce application for designing and executing ad hoc reports.
- BIDS, which includes Report Designer; Model Designer; specialized tool windows; and other capabilities for report development, testing, and deployment.
- Two Microsoft .NET Report Viewer controls (one for ASP.NET, one for Windows Forms), for integrating reporting in custom applications. Report Viewer offers a rich programming interface for controlling report execution and interactivity and is available for C#, VB .NET, and the other .NET languages.
- The Report Viewer control is capable of processing SSRS reports using two modes:
- A Windows Management Instrumentation (WMI) provider, which exposes a set of WMI interfaces that programmers can use to configure the Report Server or build other configuration utilities.
Figure 1 provides a tiered view of the SSRS architecture, illustrating each platform component.