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
      • Reports, report resources, data sources, shared datasets, report parts, and folders.
      • Report models and data source views (used with Report Builder).
    • Administer the SSRS security model, including
      • Users and roles.
      • Role assignments (remember to keep these simple).
    • Manage
      • Report snapshot, history, and caching configuration.
      • Schedules, subscriptions, and related settings (Note: SQL Agent must be enabled for automated report execution).
      • Report execution timeout duration.
  • 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:
      • Local— Using this mode, report processing happens in your application, meaning that SSRS is not required to run your application’s reports.
      • Remote— Using this mode, report processing happens via the Report Server web services.
    • 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.

Figure 1. SSRS Tiered Architecture Diagram.

Leave a Comment