SSRS has several Report Server components that it relies for the report rendering and report delivery to the user. These components are:
- Delivery Extension
- Scheduling and Delivery Processor – handles request to email or store reports on a file share.
- Programmatic Interface - there is also SSRS Web Services interface that exposed as .NET services API. This service is designed to handle all of the requests from the users for report generation. It can generate report as on-demand reports or snapshot reports.
- Report Processor – talks to ReportServer database for report processing. It relies on Report Processing Extensions (see below)
- Authentication - in SSRS relies on either IIS (SSRS 2005) or HTTP.SYS (SSRS 2008).
- Report Processing Extensions – it is responsible for all report requests.
- Rendering Extensions – transforms report requests into various formats including html, PDF, Excel, XML.
- Data Processing Extensions – initiates access to a data source and passes a query for the report.
SSRS creates two SQL Server database during installation process. First, it creates ReportingServer database which acts as primary database storing all information about reports. In addition, it stores all of the exceptions related to the reports. Second database is called ReportServerTempDB. This database is designed to store cached copies of reports. Finally, there is RSExecutionLog database which stores all the stats associated with the running of the database.