URL addressability vs. RS Web service

Judging by the questions post on the RS newsgroup, many developers are often confused about which implementation choice will best meet their integration requirements. I hope the following comparison will help you evaluate them:



 


URL addressability  (HTTP-GET)                                    


·          Implementation–The report request is submitted on the client side of the application directly to the Report Server. For Internet reporting, the Report Server has to be accessible on Internet.


·          Functionality–Limited to requesting reports only.


·          Interactive features (drilldown, drill-through, etc.)–Yes


·          HTML Viewer toolbar–Available


·          Integration effort–Easy, especially if the HTML Viewer meets your reporting requirements. For example, you can hardcode the report URL address in a hyperlink.      


·         Security–Windows-based (intranet reporting) or Form Authentication (Internet reporting)


·         Vulnerability– A malicious user can see and exploit the report request


·         Flexibility–Less flexible


·         Performance—Better than RS Web service


 


RS Web Service  (SOAP)                                               


·          Implementation– With web-based applications the report request is typically submitted on the server side of the application.


·          Functionality–Exposes all RS functionality, including requesting reports, managing the report catalog, subscribed delivery, etc.


·          Interactive features (drilldown, drill-through, etc.)–No


·          HTML Viewer toolbar—Not available


·          Integration effort– More involved. You need to take care of downloading the report images explicitly, handling report parameters, and rendering the report to the end user.     


·          Security– Typically Windows-based authentication


·          Vulnerability– More secured, since the report is generated entirely on the server side.


·          Flexibility– Flexible integration scenarios, e.g. reporting off ADO.NET datasets, evaluating business rules, unattended report generation, etc.


·          Performance– The report payload needs to be serialized on the server-side to a byte array and de-serialized on the client side.