Architecture

Overview

SsrsRenderStudio Server component is a WCF web service that listens to client requests, processes them by executing and rendering the requested report to a destination, such as a printer or an email. The Server component can be installed on the SSRS instance for improved communication performance with the ReportExecutionService, but is not required. SsrsRenderStudio WcfShared library contains the client channel factory as well as all service and data contracts. WcfShared library must be distributed with the clients and maintained. This design decision was made because SsrsRenderStudio was built for internal, WCF based, use only.

ssrsRenderStudio_ArchitectureOverview.png

Scalability

The Server component was designed with scalability in mind. All Server components share a master configuration file. This configuration file defines each Server's SSRS URLs and all supported printers and reports. Therefore any one Server is capable of processing any report to any printer. This requires that each Server component has all the printer drivers installed. It also requires that each SSRS instance has the exact same reports deployed to it.

Geolocation

Report execution performance is dependent on report datasource and output destination locations. For example, if a Chicago client is unable to connect to the Chicago Server, it will attempt to connect to a Los Angeles Server. Since all SSRS instances hold the same report definitions, the Chicago client is able to request report execution from the Los Angeles Server. The Los Angeles Server will execute the report, querying the datasources in Chicago, rendering the report and sending the output to a printer in Chicago. In this scenario, the performance might not be ideal, but the entire printing subsystem maintains uptime.

ssrsRenderStudio_Geolocation.png

Server Recovery

Internally, the Server is able to recover from an unreachable SSRS ReportExecutionService. Since all SSRS servers are identical copies of one another, the Server is able to pass the report execution request to the next available SSRS instance.

ssrsRenderStudio_RS_Redundancy.png

Configuration Server

Upon startup the SsrsRenderStudio Client or Server do not know what address to connect to or what address to listen on, respectively. Both components need to contact a configuration server for that information. Locally, both components hold a application.config file that contains a URL of the remote configuration. A stale copy of the configurations are stored locally to prevent downtime when a configuration server is not available.

Client Channel Creation

ssrsRenderStudio_ConfigFarm_Client.png

Server Service Host Creation

ssrsRenderStudio_ConfigFarm_Server.png

When a Server receives a request to process and print a report, it is the Server's responsibility to match the incoming request to a SSRS report and a networked printer. The Server holds another section in its application.config file, which contains information such as the Server name and a URL to the master configuration. The master configuration is an XML document that is common to all Servers; it holds information about all the Servers, SSRS instances, reports and printers. The master configuration is also hosted on the configuration server.

Last edited Apr 28, 2011 at 11:41 PM by fixitchris, version 21

Comments

No comments yet.