Share via


Component Architecture

The following diagram shows the three-tier architecture of a Reporting Services deployment. It shows the report server database and data sources in the data tier, the report server components in the middle tier, and the client applications and built-in or custom tools in the presentation tier. It shows the flow of requests and data among the server components and which components send and retrieve content from a data store. For more information about how connections are made at run time, see Planning for Services, Accounts, and Connections.

Architecture Diagram

Reporting Services architecture diagram

Reporting Services architecture

Applications

The report server includes three applications that run in the same Windows service:

  • Report Manager, which is represented by the Report Manager component in the diagram. Report Manager is a browser application that provides front-end access to the Reporting Services Web service.

  • Reporting Services Web service, which is represented by the Web service components in the diagram. This application handles on-demand, interactive report processing.

  • Background processing application, which is represented by the Windows service components in the diagram. This application processes reports that are triggered from a schedule and delivers reports to target destinations.

For more information about each application, see Service Architecture (Reporting Services).

Data Storage

The report server is a stateless server that stores all properties, objects, and metadata in a SQL Server database. Stored data includes published reports, report models, and the folder hierarchy that provides the addressing for all items managed by the report server. A report server database can provide internal storage for a single Reporting Services installation or for multiple report servers that are part of a scale-out deployment.

Extensions

The report server supports custom authentication extensions, data processing extensions, report processing extensions, rendering extensions, and delivery extensions. A report server requires at least one authentication extension, data processing extension, and rendering extension. Delivery and custom report processing extensions are optional, but necessary if you want to support report distribution or custom controls.

Security Extensions

Security extensions are used to authenticate and authorize users and groups to a report server. The default security extension is based on Windows Authentication. You can also create a custom security extension to replace default security if your deployment model requires a different authentication approach (for example, if you require forms-based authentication for Internet or extranet deployment). Only one security extension can be used in a single Reporting Services installation. You can replace the default Windows Authentication security extension, but you cannot use it alongside a custom security extension.

Data Processing Extensions

Data Processing extensions are used to query a data source and return a flattened row set. Reporting Services uses different extensions to interact with different types of data sources. You can use the extensions that are included in Reporting Services, or you can develop your own extensions. Data processing extensions for SQL Server, Analysis Services, Oracle, SAP NetWeaver Business Intelligence, Hyperion Essbase, Teradata, OLE DB, and ODBC data sources are provided. Reporting Services can also use any ADO.NET data provider. Data processing extensions process query requests from the Report Processor component by performing the following tasks:

  • Open a connection to a data source.

  • Analyze a query and return a list of field names.

  • Run a query against the data source and return a rowset.

  • Pass parameters to a query, if required.

  • Iterate through the rowset and retrieve data.

Some extensions can also perform the following tasks:

  • Analyze a query and return a list of parameter names used in the query.

  • Analyze a query and return the list of fields used for grouping.

  • Analyze a query and return the list of fields used for sorting.

  • Provide a user name and password to connect to the data source.

  • Pass parameters with multiple values to a query.

  • Iterate through rows and retrieve auxiliary metadata.

For more information, see Adding Data to a Report (Report Builder 3.0 and SSRS).

Rendering Extensions

Rendering extensions transform data and layout information from the Report Processor into a device-specific format. Reporting Services includes seven rendering extensions: HTML, Excel, CSV, XML, Image, PDF, and Microsoft Word.

  • HTML Rendering Extension   When you request a report from a report server through a Web browser, the report server uses the HTML rendering extension to render the report. The HTML rendering extension generates all HTML using UTF-8 encoding. For more information, see Rendering to HTML (Report Builder 3.0 and SSRS) and Planning for Browser Support.

  • Excel Rendering Extension   The Excel rendering extension renders reports that can be viewed and modified in Microsoft Excel 97 or later. This rendering extension creates files in Binary Interchange File Format (BIFF). BIFF is the native file format for Excel data. Reports that are rendered in Microsoft Excel support all of the features available for any spreadsheet. For more information, see Exporting to Microsoft Excel (Report Builder 3.0 and SSRS).

  • CSV Rendering Extension   The Comma-Separated Value (CSV) rendering extension renders reports in comma-delimited plain text files, without any formatting. Users can then open these files with a spreadsheet application, such as Microsoft Excel, or any other program that reads text files. For more information, see Exporting to a CSV File (Report Builder 3.0 and SSRS).

  • XML Rendering Extension   The XML rendering extension renders reports in XML files. These XML files can then be stored or read by other programs. You can also use an XSLT transformation to turn the report into another XML schema for use by another application. The XML generated by the XML rendering extension is UTF-8 encoded. For more information, see Exporting to XML (Report Builder 3.0 and SSRS).

  • Image Rendering Extension   The Image rendering extension renders reports to bitmaps or metafiles. The extension can render reports in the following formats: BMP, EMF, GIF, JPEG, PNG, TIFF, and WMF. By default, the image is rendered in TIFF format, which can be displayed with the default image viewer of your operating system (for example, Windows Picture and Fax Viewer). You can send the image to a printer from the viewer. Using the Image rendering extension to render reports ensures that the report looks the same on every client. (When a user views a report in HTML, the appearance of that report can vary depending on the version of the user's browser, the user's browser settings, and the fonts that are available.) The Image rendering extension renders the report on the server, so all users see the same image. Because the report is rendered on the server, all fonts that are used in the report must be installed on the server. For more information, see Exporting to an Image File (Report Builder 3.0 and SSRS).

  • PDF Rendering Extension   The PDF rendering extension renders reports in PDF files that can be opened and viewed with Adobe Acrobat 6.0 or later. For more information, see Exporting to a PDF File (Report Builder 3.0 and SSRS).

  • Microsoft Word Rendering Extension   The Microsoft Word rendering extension renders a report as a Word document that is compatible with Microsoft Office Word 2000 or later. For more information, see Exporting to Microsoft Word (Report Builder 3.0 and SSRS).

Report Processing Extensions

Report processing extensions can be added to provide custom report processing for report items that are not included with Reporting Services. By default, a report server can process tables, charts, matrices, lists, text boxes, images, and other report items. If you want to add special features to a report that require custom processing during report execution (for example, if you want to embed a Microsoft MapPoint map), you can create a report processing extension to do so.

Delivery Extensions

The background processing application uses delivery extensions to deliver reports to various locations. Reporting Services includes an e-mail delivery extension and a file share delivery extension. The e-mail delivery extension sends an e-mail message through Simple Mail Transport Protocol (SMTP) that includes either the report itself or a URL link to the report. Short notices without the URL link or report can also be sent to pagers, phones, or other devices. The file share delivery extension saves reports to a shared folder on your network. You can specify a location, rendering format, and file name, and overwrite options for the file you create. You can use file share delivery for archiving rendered reports and as part of a strategy for working with very large reports. Delivery extensions work in conjunction with subscriptions. When a user creates a subscription, the user chooses one of the available delivery extensions to determine how the report is delivered.