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.
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.
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.
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
Server Service Host Creation

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.