当前位置:首页 > 系统运维 > 正文内容

SQL Server 2005报告服务架构的正确剖析

a8116255316年前 (2010-07-14)系统运维8

以下的文章主要介绍的是正确剖析SQL Server 2005报告服务架构的实际操作步骤,SQL Server数据库的报告服务(SSRS)主要是一个综合性与可扩展的报告平台,它包括一组集成化的处理组件、可编程接口和工具。在本文中,我们将详细地讨论SQL Server报告服务(SSRS)架构。

一、 简介

SSRS是一个综合性的可扩展报告平台,它包括一组集成的处理组件、编程接口和工具。处理组件是SSRS多层架构的基础,并且能够彼此交互以检索数据、处理布局、生成和把一个报告提交到一个目标。SSRS支持两种类型的组件:

处理器-确保SSRS的一致性,并提供一个基础结构供开发人员添加新的功能(扩展)。在当前的SSRS发行版本中,处理器本身是不可扩展的。

扩展-由处理器调用的程序集,执行特定的处理功能,例如数据检索。开发人员能够编写定制扩展。

描述了SQL Server 2005报告服务架构图;本文后面将更详细地描述这些组件。该图中的箭头显示在SSRS的内部和外部的各组件(外部工具,应用程序,服务和工具)之间的数据流。

SQL Server报告服务架构。

二、 ReportServer Web和windows服务

Report Server被实现为web服务和windows服务的"共同体"。这些服务共同工作以宿主、处理和提交报告。

当SSRS Windows服务启动时,它开始加载基本支持程序集(例如一个SQL数据提供者和接口库),但是它不加载扩展。在这个版本中,SSRS Windows服务处理加密和解密,用作调度和提交处理器的一个宿主。调度和提交处理器使用一个PollingInterval配置来监视"事件"(例如定时订阅)的SSRS目录和事件表格。事件指示SSRS"醒来"并开始处理。

类似于任何.net web服务,SSRS web服务经由IIS激活("唤醒")并且在ASP.NET工作进程(aspnet_wp.exe)中执行。可编程接口使"唤醒"事件更容易。

三、 可编程接口

报告服务可编程接口接收SOAP(经由SSRS web服务)和HTTP请求(经由URL存取)。

SSRS 2005 web服务提供三种端点:

http://localhost/ReportServer/ReportService.a *** x的提供是为实现与SSRS2000的向后兼容性。

http://<server>/ReportServer/ReportService2005.a *** x是SSRS 2005中新的管理端点。

http://<server>/ReportServer/ReportExecution2005.a *** x是新的执行端点。

一个端点名描述了相应的使用目的。例如,执行端点的设计是为了提供报告执行(处理)接口,并且相应地提供对函数(例如Render)的存取功能。Render函数把生成的报告以一个指定格式(例如HTML)的流形式返回。

可编程接口便利了从SSRS目录中实现信息检索和在SSRS组件之间的信息交换。

当请求一个报告时(或者通过交互方式或者通过调度和提交处理器),可编程接口初始化该报告处理器组件并开始处理一个报告。

四、 Report Processor(报告处理器)

报告处理器把一个Report Server的所有组件绑定到一起,并且负责在SSRS内部的缓冲。缓冲是指,当一个用户打开该报告时,SSRS能够保持处理过的报告的一个副本并且返回该副本。缓冲能够缩短检索一个报告要求的时间,特别假如该报告很大或经常被存取的情况下。

所有的报告缓存存储在SSRS目录(具体地说,是存储在ReportServerTempDB数据库)下,并且能够在SQL Server和Report Server重启时仍然存在。

报告处理器执行下列操作:

执行-检索一个报告定义,并且通过数据处理扩展把它与检索的数据相结合。该操作生成一个中间格式。

生成-使用生成扩展把中间格式生成为一个请求的输出格式。

模型处理-这类似Report Builder生成的报告的执行操作,其中包含一个语义模型(或一个简单的模型,它用作一个报告的一个数据源)和一个语义查询。语义查询是指针对一个模型的一个查询;就象一个SQL查询一样,它生成一个报告的数据集。

下面是报告处理器响应用户请求的方式:

新的交互式报告请求-中间格式被生成并被传递以便生成扩展;用户接收生成的报告。

请求生成缓存或快照-中间格式被生成并被存储在数据库中。

请求缓冲的报告或快照-中间格式被从缓存(或快照)中检索并被传递以便生成扩展;用户接收生成的报告。

剖析SQL Server 2005报告服务架构五、 命令行工具

在安装报告服务期间,自动地安装三个管理助理工具:

rs.exe-宿主脚本操作。例如,开发人员能够创建VB.NET脚本以发布一个组报告。

rsconfig.exe-用于修改到Report Server数据库的加密的连接信息。

rskeymgmt.exe-备份/恢复加密数据的对称密钥,该数据为一个Report Server所用;或假如该密钥被丢失的话,删除加密的数据。

注意 SSRS 2005已经放弃了rsactivate.exe工具,这个工具在以前的版本中用于在web场所下激活新的SSRS实例。在SSRS 2005中,激活是使用报告服务配置工具实现的。

六、 报告服务扩展

一个扩展是一个.NET程序集,为报告处理器所调用以执行某种处理功能。存在若干类型的扩展:数据处理,提交,生成,安全(认证和授权),SemanticQuery,ModelGeneration和EventProcessing,等等。

对于一个被Report Server使用的扩展来说,必须把它安装到(假定是默认的SSRS配置)"C:Program Filesmicrosoft SQL ServerMSSQL.3Reporting ServicesReportServerbin"目录下,并且在"C:Program FilesMicrosoft SQL ServerMSSQL.3Reporting ServicesReportServerrsreportserver.config"下进行配置。

一个扩展文件名的最后一部分通常暗示了该扩展的功能。例如,HTML生成扩展的文件名是"Microsoft.ReportingServices.HtmlRendering.dll"。

定制扩展允许开发人员添加在SSRS中不能用的补充功能。例如,一个公司能够实现一个把报告提交到一个 *** 或一个传真的扩展。

注意 该版本的SSRS不允许定制SemanticQuery,ModelGeneration或EventProcessing扩展。

剖析SQL Server 2005报告服务架构七、 数据处理扩展

数据处理扩展负责从报告数据源检索数据。详细说来,这些任务包括打开到一个数据源的连接,分析查询并返回字段名,传递参数,以及检索和遍历数据集等。表格1概括了包括在SSRS中以及可以用之配置的数据处理扩展。

表格1.能够使用SSRS进行配置的数据处理扩展

扩展 描述/注意事项

SQL Server 连接到并且从SQL Server数据库引擎(从7.0到2005版本)中检索数据。

OLE DB 连接到并且从OLE DB兼容的数据源中检索数据。

Microsoft SQL Server Analysis 连接到并且从SQL Server分析服务2000和2005中检索数据。对于分析服务2005来说,这个扩展支持Multidimensional Expressions(MDX)和Data Mining Expressions(DMX)。对于分析服务2000来说,这个扩展仅支持非参数化MDX。

oracle 连接到并且从一个Oracle数据库中检索数据;这时,要求在一台安装有Reporting Server的计算机上安装Oracle客户端8i Release 3(8.1.7)。

ODBC 连接到并且从ODBC兼容的数据源中检索数据。

XML 从能够通过URL存取的任何XMLweb源(例如一个web服务器)中检索XML数据。

所有的扩展(它们都(除了XML)使用SSRS进行安装)都利用了相应的.NET数据提供者。Microsoft.ReportingServices.DataExtensions库提供包装类,这些类负责提供到.NET数据提供者的SSRS数据处理扩展接口。

开发人员可以创建其它定制数据处理扩展。

剖析SQL Server 2005报告服务架构八、 提交扩展

提交扩展负责把报告提交到特定的设备或格式。在RS中的扩展包括电子邮件和文件共享提交。当用户(或管理员)创建一个订阅时,选择提交 *** 及相应的扩展。

表格2概括了这些(包括在SSRS中的和使用SSRS进行配置的)提交扩展。

表格2.SSRS包括的提交扩展

扩展 目的

邮件提交 把一个生成的报告提交到一个邮件收件箱。允许设置提交选项-控制输出格式以及是否该报告被提交为一个链接或作为一个附件。

文件共享提交 把一个生成的报告提交到一个共享文件夹。允许设置提交选项-控制一个目的地文件夹路径,一个输出格式以及是否该报告能够覆盖一个更旧版本或被添加为一个新的版本。

开发人员可以创建其它定制提交扩展。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21967.html

分享给朋友:

“SQL Server 2005报告服务架构的正确剖析” 的相关文章

windows 7系统开机提示press any key to restart的故障分析及解

windows 7系统开机提示press any key to restart的故障分析及解

Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...

Windows7开机后出现黑一下屏性能降低

Windows7开机后出现黑一下屏性能降低

打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...

windows 7玩网游PING高即网络延时比较高的解决方法

windows 7玩网游PING高即网络延时比较高的解决方法

经常听见有人说用Windows 7玩网络游戏的时候网络延时比较高,也就是ping比平时xp的时候高一点,一直找不到原因,很苦恼。今天我们终于找到理由了,原来是Windows 7的一个服务在作怪,这个服务叫:Multimedia Class Scheduler,就是这个服务让我的PING如此高,问题是...

windows 7系统中不能把程序锁定到任务栏的解决方法图文讲解

windows 7系统中不能把程序锁定到任务栏的解决方法图文讲解

最近小编在使用Windows 7的时侯遇到一个问题,就是应用程序和快捷方式不能锁定到任务栏,我当时不知道怎么回事,但是很多现有的方法都不能解决这个问题。现在我把我的解决的方法分享给大家以作参考。 问题分析 经过思考,初步判断出现该问题的原因是由于使用第三方优化软件消除快捷方式的小箭头引起的。...