Crystal 三种报表解决方案大对比:.NET 对象模型,报表应用服务器对象模型,水晶企业对象模型

对象|服务器|解决

概述

对于使用 .NET 平台的 Web 应用程序开发,Crystal Decisions 为开发者提供了三种愈加高级的报表对象模型:

1. 水晶报表 Visual Studio .NET 版 (.NET) 对象模型:捆绑在微软 Visual Studio .NET 和水晶报表 9 开发者版及高级版中。

2. 新增的报表应用服务器 (RAS) 对象模型:捆绑在水晶报表 9 开发者版及高级版中。

3. 水晶企业 (Crystal Enterprise) (CE) 对象模型:在水晶企业 9 中单独提供,而且也可以通过新的 .NET SDK 使用。

本文档意图比较 .NET, RAS, 及 CE 对象模型,并且对于每种对象模型的使用时机提供指导。

目录

什么是 .NET 对象模型?
什么是报表应用服务器对象模型?
什么是水晶企业对象模型?
应用程序开发
处理性能
  用户请求
  组件 Vs. 独立服务器
  报表组件 Vs. 报表服务器通讯
报表创建 API
扩展性
将 .NET 应用程序迁移到 RAS

什么是 .NET 对象模型?

.NET 对象模型包含在水晶报表 Visual Studio .NET 版和水晶报表 9 开发者版及高级版。

最初设计和开发 .NET 对象模型,是作为直接捆绑进微软 Visual Studio .NET 产品的集成组件。该捆绑技术是基于水晶报表 9 特性的子集,包括一个集成的报表设计器以及一个报表和查看器对象模型……

水晶报表 9,是具有丰富特色的,对水晶报表 Visual Studio .NET 版的升级,包括上述 .NET 组件以及众多附加的新特性。除此之外,.NET 对象模型还被更新以提供众多增强特性。虽然本文的焦点是对比 .NET 对象模型和 RAS 对象模型,我们仍然在附录 A 中包含了水晶报表 Visual Studio .NET 版和水晶报表 9 的特性对比。

什么是报表应用服务器对象模型?

报表应用服务器 (RAS) 是一个新增并且强大的对象模型。RAS 属于客户/服务器系统,能够在多层环境中进行报表创建,处理以及操作。它由两个基本组件构成:RAS 服务器和提供服务器接口的软件开发工具包 (SDK) 。由于 RAS 被设计成两个分离的组件,报表处理可以从 Web 服务器上卸载。

图 1:报表应用服务器的架构概览

RAS 和查看器 SDK 包含许多库,以使你构造 Web 报表解决方案。这些库可以在你的服务器端代码 (ASP, ASPX, JSP 或者 Java servlets) 中使用,以提供报表应用服务器的接口。从这种意义上说,SDK 构成了这个客户/服务器系统的客户端。

RAS 提供了设计,查看,处理及定制报表的服务。客户创建的程序可以使用该 SDK 与服务器通讯。RAS 包含在水晶报表 9 开发者版和高级版,以及水晶企业 9 中。

什么是水晶企业对象模型?

水晶企业 9 对象模型是最高级的企业报表,分析和 Web 交付对象模型,可以被采用 .NET 平台的组织使用……水晶企业提供了一个健壮的服务器端报表平台,并且包含 RAS 对象模型。水晶企业允许组织购买“即拆即用”(out-of-the-box) 平台,相当于提供给组织将开发资源集中到高度定制化前端的能力,前端与水晶企业后端通讯。这通过调控水晶企业 .NET SDK 来实现。设想做如下比较:通过添加新特性或者增强现有特性来满足需求 Vs. 必须构造全部特性。例如,水晶企业提供报表调度“即拆即用”(out-of-the-box),因此核心报表可以在任何时间运行,以任何格式 (比如 Excel, PDF, XML, Word, 等等) 提供,并且交付到任何位置 (比如:Email 账号, FTP 站点, 打印机, 等等)。

应用程序开发

.NET 对象模型和 RAS 对象模型都能够以格式化报表页的形式显示输出。它们能够打开报表,保存报表,改变分组,并传递参数,虽然是使用不同的语法。然而,RAS 增加了运行时创建和修改报表的能力,允许用户自助 - 定制他们企业数据的视图。它还提供从报表中提取行数据的能力。这将允许你重用包含在报表里的信息。例如,你可以创建一个世界范围的销售报表,有计划的从中提取数据,并将数据转换成 XML,与合作伙伴共享。你还能够利用这种原理让最终用户在报表中搜索特定数据,并将结果导出成其它格式,与他人共享。

.NET 对象模型和 RAS 对象模型定义了报表格式化和数据连通性,而 CE 对象模型则关注集中式的,企业范围的报表管理。CE 对象模型定义了如何调度报表,如何存储报表“快照”,授权和验证系统的管理,等等。

或许,阐明 .NET,RAS,及 CE 对象模型之间差别的最佳方式是给出一个简化的图表,对比三种对象模型的附加特性以及增强的企业级可靠性。

通常的方针是:

●.NET 对象模型推荐小型工作组项目使用,即只有相对直接的报表需求 - 例如:较小的报表,较少的用户请求报表,等等。该技术是应用程序的一个组件,并且可以通过附加硬件来缩放 - 通过附加处理器向上扩充,以及通过附加服务器向外扩充。

●RAS 对象模型推荐中型的部门级应用使用,即需要卸下报表处理,并且/或者要让最终用户个性化数据的视图,这通过运行时创建和修改报表实现。

●CE 对象模型推荐给关键任务型的、中型至企业规模的应用。该类型的应用程序处理大量来自不同数据源的数据,并且为用户展现信息以提供决策支持。通常情况下,有大量报表需要精确的调度和负载平衡,以确保企业的信息基础设施没有超负荷。这些应用程序还需要以多种数字格式将信息交付到多种最终用户设备。安全,容错,系统管理及审核都属于关键性需求。

处理性能

用户请求

在水晶报表 9 中, .NET 和 RAS 都作了技术上的限制,只能接受三个并发请求 - 比如,第一页查看,导出,深化,打印,等等。可是在请求处理上,它们有明显的不同。这些差别能够影响总体系统性能和规模。就水晶报表 Visual Studio .NET 版而言,超过三个请求阀值的请求将会重试,直到三个进行中请求的任意一个完成或者浏览器超时。RAS,恰恰相反,将排队第4,第5,第6,等等请求。没有预设的超时限制,随后的请求也不会失败。RAS 也包含,即拆即用的 (out of the box),报表缓存功能,以最小化多余的数据库轮询 (round-trips)。这将提高服务器性能,相对于水晶报表 Visual Studio .NET 版组件而言。

注意:为了支持无限的用户请求,可能需要额外购买处理器许可证。

组件 Vs. 独立服务器

.NET 是一种报表组件,它作为 Web 程序的组成部分被安装,处于微软互联网信息服务 (IIS) 之上。既然创建 .NET 报表组件的目的是用于小规模的工作组应用,有强烈报表处理需求的客户可能会遭遇无法接受的系统吞吐量。而缺少队列和缓存功能,又使 .NET 报表组件不适合企业规模的信息分发。另外一个变数则是 Web 程序的 CPU 负荷。因为 .NET 报表组件是 Web 程序的组成部分,它和你的程序消耗同样的资源。

对比之下,RAS 针对 Web 设计。报表处理被卸载到独立的应用程序层,从而带来了更好的总体性能。通过在独立服务器上运行 RAS,性能将会提高,因为报表处理不再受制于应用服务器的进程。

注意:虽然不是必需,仍然推荐你在单独的服务器上运行 RAS,以便在应用层之间提供更好的可缩放性和功能划分。

在服务器上,RAS 也可以被分配到特定数目的处理器上运行。这使得开发者能够创建满足性能要求并且最节省成本的解决方案。因为 .NET 对象模型必须安装到 Web 服务器上,它不能针对特定处理器。如果需要处理器许可证,安装应用程序的每个处理器都需要购买。

对于 RAS,你只能安装所购买的开发者版或者高级版的一个副本。如果你购买了两个高级版的水晶报表,你可以安装两个分离的 RAS,但是不能通过把它们链接到网站群 (web farm) 里来提高应用程序的性能 - 除非从 Crystal Decisions 购买了许可证。

对于所购买的开发者版或者高级版,.NET 报表组件可以被安装到多个服务器,只要不通过把它们连结到网站群 (web farm) 或者网站园 (web garden) 来缩放你的应用程序,以突破 3 个请求的限制 - 除非从 Crystal Decisions 购买了网站群 (web farm) 或者网站园 (web garden) 许可证。

报表组件 Vs. 报表服务器通讯

.NET 报表组件是“繁琐”的。每一个事务 - 比如,设置参数或者字体 - 都将招致访问组件的额外往返旅行。如果报表很复杂,这将导致效率低下(例如:访问大量的数据,连结到多个数据库,执行高级命令,等等)。相反,RAS 缓冲请求,并且批处理事务。多个操作将组合成一次服务器操作,因而降低了效率损失。

扩展性

尽管可以作为独立产品使用,RAS 对象模型仍然是水晶企业对象模型的组成部分。这使得 RAS 应用程序的开发者可以在未来无缝的迁移他们的程序,以便利用水晶企业的其它服务,包括:

  ●调度
  ●用户,报表和数据安全
  ●报表和实例管理
  ●自动集群,负载平衡,以及容错
  ●基于 Web 的系统管理和配置
  ●分析和特别报表 (ad hoc reporting)
  ●自动分发到多种格式和目标

仅需少量的编程就可以改变 RAS 程序来利用这些附加的服务。

相反,.NET 报表对象模型没有与水晶企业家族共享同一个对象模型。这意味着为了支持 Crystal 服务,使用 .NET 报表组件设计的应用程序需要完全重写。这被证明是昂贵而且资源密集的,所以组织应该在当前的开发计划中考虑未来的需求。

将 .NET 应用程序迁移到 RAS

尽管将应用程序从 .NET 对象模型转换到 RAS 要卷入初期的工作,但也会获得本文中所概括的显著优点。在 www.crystaldecisions.com/devzone 中有许多实例应用程序,可以指导你完成迁移过程。

时间: 2024-09-13 15:26:49

Crystal 三种报表解决方案大对比:.NET 对象模型,报表应用服务器对象模型,水晶企业对象模型的相关文章

PHP遍历数组的三种方法及效率对比分析

 这篇文章主要介绍了PHP遍历数组的三种方法及效率对比,实例分析了foreach.while与for三种遍历数组的方法与相关的效率比对,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例分析了PHP遍历数组的三种方法及效率对比.分享给大家供大家参考.具体分析如下: 今天有个朋友问我一个问题php遍历数组的方法,告诉她了几个.顺便写个文章总结下,如果总结不全还请朋友们指出 第一.foreach() foreach()是一个用来遍历数组中数据的最简单有效的方法. ? 1 2 3 4 5 6

PHP遍历数组的三种方法及效率对比分析_php技巧

本文实例分析了PHP遍历数组的三种方法及效率对比.分享给大家供大家参考.具体分析如下: 今天有个朋友问我一个问题php遍历数组的方法,告诉她了几个.顺便写个文章总结下,如果总结不全还请朋友们指出 第一.foreach() foreach()是一个用来遍历数组中数据的最简单有效的方法. <?php $urls= array('aaa','bbb','ccc','ddd'); foreach ($urls as $url){ echo "This Site url is $url! <b

缓解备案压力 三种主流过渡形式对比分析

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 六月末七月初,随着工信部第三代备案系统上线,以拍照为标志的备案新政开始在全国逐渐实施.相对于之前的二代系统备案形式,新政更强调接入商监管责任,更强调接入数据的真实性.因为如果想开通网站就必须有备案号,而获得备案号的前提就是必须到接入商处现场拍照.核验营业执照等真实性.签订安全协议等等.为了缓解备案压力,各大IDC接入商可谓想尽各种办法,主要的

SQL Server 存储过程三种分页效率测试对比

很多朋友对大数据库分页技术感兴趣,在 SQL Server 优先会考虑存储过程,本人也是用存储过程分布,而且是本实例中的第二方案,下面我们来用实例对比 利用Not In和SELECT TOP分页,利用ID大于多少和SELECT TOP分页,利用SQL的游标存储过程分页 这三种分页技术的效率. 建立表: CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLL

虚拟运营商三种合作模式的对比和分析

年味逐渐散去,虽然工信部对虚拟运营商今后发展制定的新政策还是犹抱琵琶半遮面,但春节期间各种利好虚拟运营商的消息可谓不绝于耳.除了号段资源一再充盈的消息之外,有渠道... 年味逐渐散去,虽然工信部对虚拟运营商今后发展制定的新政策还是犹抱琵琶半遮面,但春节期间各种利好虚拟运营商的消息可谓不绝于耳.除了号段资源一再充盈的消息之外,有渠道消息称,移动通信转售业务牌照申请将再次开放,符合条件的申请企业,将有望跳过"试点牌照",直接获得"正式牌照".这不禁让笔者想到,短短的两年

在开发过程的三种数据库的优缺点

问题描述 在开发过程的三种数据库的优缺点 对于在开发过程中sql server.Oracle .mysql这三个数据库的使用过程中的优缺点有哪些方面?在开发过程中是如何体现的?请详细回答,谢谢! 解决方案 Oracle个人觉得有点复杂,你偶尔不得不去了解一些细节知识,而且比较贵.但如果不在乎钱,那就是首选,功能强大,大价钱再雇个DBA,那就齐活了. Sql Server比较简单,大部分的工作都可以通过图形界面的各种向导来完成,个人觉得,某种意思上,性价比还可以(但实际上也不少钱呢) Mysql

公司如何组建数据部门?三种数据部门架构优与劣

问题:为什么传统的没有达到今天互联网数据应用的高度呢? 在之前的传统BI可能因为这些因素,所以没有达到今天的数据在高度,可能是互联网本身发展的因素,数据对于互联网企业价值.但其中有一个很大的因素,可能是传统的BI,更多是偏重数据仓库的架构,根据需求来帮报表.在数据部门没有一批主动去思考业务,思考业务与数据关系的人.这种人很可能都是在业务方,他们更多把业务问题转为要看的报表,然后与数据部门沟通报表开发,数据部门收集需求沟通后,进行排期,进入比较慢长的等待期. 在一个企业中,可能数据部门在一个公司中

虚拟磁带库三种主要实现方式及发展趋势

虚拟磁带库作为近年来兴起的 众多 磁盘备份( Backup to http://www.aliyun.com/zixun/aggregation/29800.html">Disk)解决方案中最受瞩目的一项,正在深刻地改变着传统的备份市场格局和用户的数据保护模式. 虚拟磁带库的三种主要实现方式 目前市场上的虚拟磁带库依照架构不同,大概可以分为三种类型:备份软件型(D2D).应用服务器型(VTL Appliance).智能化专用型(Intelligent High Preformance VT

对比三种模块化数据中心技术

现如今数据中心单从规模上来讲,一方面向着超大规格的方向迅猛发展,数据中心的规模越来越大,包含数十万台服务器的超级数据中心都纷纷出现;另一方面却向着相反的方向发展,规模越来越小,当然这里所说的规模越来越小并不是以牺牲性能为代价的,具有相同性能的数据中心规模越来越小,集成化程度越来越高,也就是常说的模块化数据中心.模块化的优点是可以非常迅速地部署完毕,通常只需要几周时间,相比之下,建造传统数据中心通常需要几个月,甚至几年.模块化数据中心成本较低,节省空间,同时也较易搬动.模块化数据中心也有三大类具体