You are on page 1of 39

SQL Server 2008 Reporting Services

Architecture

Agenda
Feature Overview Architecture Components Deployment Scenarios Performance

Traditional Reporting Challenges


Expensive and complex server-side solutions Proprietary report formats Limits to scalability Difficulties
Integrating with internal applications Embedding in line-of-business applications Automating delivery to a large internal or external audience Extending with additional features

SQL Server 2008 Reporting Services


Delivers enterprise, Web-enabled reporting functionality Queries a wide variety of data sources Publishes reports in various formats Supports pull- or push-driven report delivery Manages security on content and tasks centrally Scales to support thousands of users Enables extensions to core functionality Delivers ad hoc reporting capabilities

What is SSRS?
Server based reporting platform Framework comprising services, tools and APIs to implement, deploy and manage reporting solutions Leverages SQL Server, Windows Server and .NET framework infrastructure
Security Scalability Deployment Configuration

Feature Overview - Reports


Report from variety of data sources Multiple report layouts (table, matrix, tablix) Ad hoc reporting Interactivity (subreports and drillthrough) Multiple presentation formats Custom controls and report items Navigation Aggregations Graphical Elements

Feature Overview Deployment and Administration


Server based report storage, processing and management SharePoint Integration Graphical Configuration Report Manager Integration with SQL Management Studio and Configuration Manager Command line utilities Role Based Security

Feature Overview Access and Delivery


Desktop or Web Enabled SharePoint Web Parts My Reports and My Subscriptions E-mail, SharePoint and File Share delivery Data Driven Subscriptions

Feature Overview Programming and Extensibility


RDL SOAP API (Web Services) URL Access WMI Provider Extensible
Delivery Data Processing Rendering Security Report Processing

Architecture: Native Mode


Report Designer Model Designer Browser Microsoft Office Custom Applications Report Builder
Report Manager Report Viewer

Programmatic Interfaces: XML Web Service and URL Access Report Server
Report Builder Query generation Drill-through Report generation

Report Sources Output Formats

Report Processing Data Processing Rendering Report Server Databases Security Delivery

Security Services Delivery Channels

Architecture: SharePoint Integrated Mode


Report Designer Model Designer Browser Microsoft Office Custom Applications Report Builder
Report Manager Report Viewer

Programmatic Interfaces: XML Web Service and URL Access Report Server
Report Builder Query generation Drill-through Report generation

SharePoint
Report Server Proxy Endpoint

Report Sources

Report Processing Data Processing Document Mgmt

Output Formats

Rendering Report Server Databases

Delivery

Security SharePoint Content Database

Collaboration Config Database

Components: Report Server


Implemented as an ASP.NET Web service Accessed by administrators to manage SSRS
Report Manager or SQL Server Management Studio RSS scripts or programmatic interfaces embedded in applications

Accessed by users to render reports by using


URL access in Report Manager or embedded in portals Programmatic interfaces embedded in applications

Components: Report Manager


Implemented as an ASP.NET Web application Launched by administrators to configure
Report Server properties Report execution properties Security

Launched by users to
Explore and view reports Subscribe to report delivery Launch Report Builder

Components: Miscellaneous
Report Builder 1.0
Delivers ad hoc reporting functionality

Report Designer / Report Builder 2.0


Enables the design of interactive, complex reports

Model Designer
Supports the development and deployment of report models used in Report Builder

Report Server Command-Prompt Utilities


Includes configuration utilities Includes the RS script host to perform scripted operations

Service Architecture

Service Architecture Changes


One service architecture
Easier to deploy, configure and manage

Does not depend on IIS


Report Server tools provide required IIS capabilities Do not need IIS on your database servers

Shares internal components with SQL Server


Network interfaces are shared with SQL Server Report Server service hosts ASP.NET in SQL CLR

Does not change deployment topologies


Supports SOAP, URL Access and Report Manager Upgrades are supported

Design Goal: Dont break anything!

Networking Capabilities
Reporting Services is not a general purpose web server!! Report Server supports HTTP and SSL
Specific IP address, host headers, multiple ports SSL certificates and usage Security modes
NTLM, Kerberos, Negotiate, Basic, Custom

Tools support is provided for common settings


Configuration tool is updated WMI API Support for setting URLs, SSL bindings

RS supports a W3C compliant HTTP request log


Can be analyzed using standard IIS tools

Report Server & IIS Coexistence


Report Server & IIS 6+ use HTTP.SYS
Single network stack built into Windows RS & IIS can share a single port Exception: Windows XP 32-bit due to IIS 5.1

HTTP.SYS sends requests to Report Server


RS makes explicit URL Reservations for is Virtual Directories IIS gets all requests not covered by explicit URL Reservations

SPN conflicts are possible


Solved by running RS under the Network Service account Alternately, configure host headers and specific SPNs

IIS is not required for RS to function

URL Reservations
URL Reservations (URLs) replace IIS Web Sites
Used to direct requests to a particular service Define the protocol, URL String, port, and virtual directory

Multiple URL Reservations are allowed


Independently specified for Report Server, Report Manager Recommend using identical URLs for both

Virtual Directory is simplified


In IIS, Virtual Directories have many settings In RS 2008, Virtual Directory is just a name Only one virtual directory name is allowed for RS or RM

URL Reservation Hierarchy


Name All Assigned (Strong Wild card) URL Reservation http://+:80/vdir Meaning Get all requests on port 80 for the vdir. http://computername/vdir http://myserver.com/vdir http://192.268.0.1/vdir Only get requests that explicitly ask for myserver.com on port 80 for the vdir. http://myserver.com/vdir Get any request NOT handled by someone else http://yourserver.com/vdir

Specific

http://myserver.com:80/vdir

All Unassigned (Weak Wild Card)

http://*:80/vdir

IIS behaves like All Unassigned reservations RS makes All Assigned reservations by default Recommend making All Assigned URL reservations

Deployment Differences
Some IIS functionality is not provided
Anonymous and Digest authentication Client certificates

ISAPIs are not supported


Use ASP.NET HTTP Modules instead Most impact to Single Sign-On (SSO) solutions ISA server is the recommended solution

DEMO

REPORTING SERVICES CONFIGURATION

Deployment Scenarios
Local Catalog Remote Catalog Scale-out Deployment

Local Catalog
User
SMTP HTTP Listener Report Manager Report Server MSSQL
BI Developer Studio / Report Designer Client

Report Author

Report Designer Client

Report Server Catalog

Remote Catalog
User

IIS Listener HTTP


Report Manager Report Server

SMTP

MSSQL Report Server Catalog

Scale-out Deployment
User Scale-out - Virtual Report Server MSRS
HTTP Listener

MSRS

HTTP Listener

Report Manager

Report Manager

SMTP

Report Server

Report Server

MSSQL

MSSQL

Report Server Catalog

Failover Cluster

Report Server Catalog

Connections Used in a Reporting Services Deployment

Deploying RS 2008 at a Glance


Usage Scenario Applications built for RS 2005 Applications built for RS 2000 RS Database hosted in SQL 2008 RS Database hosted in SQL 2005 RS Database hosted in SQL 2000 SharePoint integration SharePoint v2 WebParts Single Server deployment Multi-Server deployment Scale-out deployment Support Statement Continue to work RS 2000 SOAP APIs are not supported URL Access will work Supported Supported Not supported New RS 2008 SharePoint Add-in is provided Supported Supported Supported - RS on computer 1 and RSDB on computer 2 Supported

Memory Management
Server infrastructure for process memory monitoring
Dynamic, self-managing with memory pressure Reduces throughput in memory pressure situations

File system cache


Used to adapt to memory pressure Used when processing receives memory events from server

Administrator is able to set targets (Min, Max)


Minimum threshold defines the amount of memory the server thinks belongs to it The memory is used only if a request needs it Maximum threshold defines the not to exceed value

Adapts to other processes consuming memory

Memory Pressure Response


Low Medium
Memory allocation for all components reduced Larger reductions to background process

High
Memory allocation further reduced Memory requests denied In memory data moved to disk

Memory Configuration
WorkingSetMaximum
Default = machine memory no new memory allocations are granted

WorkingSetMinimum
Default = 60% of WorkingSetMaximum

MaximumThreshold
% of Max defines boundary between high and medium Default = 90%

MemorySafetyNet
% of Max defines boundary between low and medium Default = 80%

Configuration Files
<install>\Reporting Services\ReportServer RSReportServer.config
Settings for Report Manager, WS and background

RSSrvPolicy.config
CAS for server extensions

ReportingServicesService.config
Trace and logging levels for the service

Web.config
Web service

Configuration Files
<install>\Reporting Services\ReportManager RSMgrPolicy.config
CAS for Report Manager

Web.config
Report Manager

Other
RSReportDesigner.config
BIDS report designer <drive>:\Program Files \Microsoft Visual Studio 8 \Common7 \IDE \PrivateAssemblies.

RSPreviewPolicy.config
CAS policy for server extensions during preview <drive>:\Program Files \Microsoft SQL Server \100 \Tools \ReportDesigner

Logging
Report Server Execution Log
Database

Report Server Service Trace Log


\Microsoft SQL Server\<Instance Name>\Reporting Services\LogFiles

Report Server HTTP Log


Location same as above

Windows Application Event Log

Query Execution Log Data


http://www.codeplex.com/ Create a table Copy data from RS instance to new table Query data (sample reports provided)

Performance Options
Performance Counters
SSRS 2008 Web Service SSRS 2008 Windows Service Report Server: Service .NET CLR Data and .NET CLR Memory

Rendering Reports
On demand report rendering
Improves time to first page (one page at a time) Configure large reports for pagination

Fastest formats
CSV, XML, HTML

Slowest
PDF (CPU), Excel (RAM)

DEMO

CONFIGURATION FILES AND MEMORY MANAGEMENT

2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.