文档章节

Web报表软件的几种体系结构之比较

猪刚烈
 猪刚烈
发布于 2014/09/24 13:52
字数 1089
阅读 47
收藏 0
今天有一位朋友问起有关Web报表软件的体系结构和性能问题,解释如下:

 Web报表软件总的讲有三种体系结构。一种是纯Java报表,以润乾为代表;一种是控件方式,以数巨为代表;另一种是独立服务器方式的报表软件,以Crystal Report为代表。

1、控件方式:这种方式在浏览器端要安装一个ActiveX控件,在服务器端只负责取数据,报表的计算与生成都是在控件中进行的。采用这种方式的原因是它的报表功能往往都是采用Delphi实现的,包括许多产品都是采用相同的第三方组件。

  关于控件方式,这篇文章可以参考:http://blog.9zi.com/post/1/205

  控件方式的缺点在于:

  1)部署:一个控件,要完成别人报表服务器所实现的大部分功能,体积可想而之。功能越强,控件的体积越大。这对于部署是一个很大的负担。不仅如此,而且,当报表系统升级时,用户都必须重新安装控件,Web报表软件的B/S结构在部署方面的优势荡然无存。(其实这种方式本身就是伪B/S)

  2)性能:在PC端计算与在服务器端计算,对小报表可能差别不大,但对于大报表,显然差异非常大。并且,如果一个Web报表系统有多个用户都要使用,服务器方式所可以采用的定时计算、缓存等等都无法发挥作用。

  所以,控件方式一般只适用于简单、小型报表。这里的简单,不仅是报表的样式简单,也包括计算量、报表规模上都比较简单。

2、独立服务器:这种方式安装一个独立(逻辑上)的报表服务器。它避免了控件方式的Web报表软件部署繁琐、升级不便的缺点,能够通过服务器有效地管理报表,很好地处理性能问题。但它部署起来也是比较麻烦的,实际很多这类Web报表软件产品也很难真正做到跨平台。尤其是涉及集群、连接池等问题,它就无法提供良好的可扩展性。

3、Java报表软件:首先它可以轻松实现Web报表的跨平台部署。对于ASP,.NET等非Java应用,它可以以报表服务器的方式提供Web报表服务,这时这种Web报表工具的工作方法是与Crystal Report之类的产品类似的,具有独立服务器相同的优点与缺点(这里所说的独立服务器是指逻辑上的,物理上仍然可以与其他服务器安装在一起)。而对于Java应用,则可以以类包的方式将报表软件嵌入到J2EE应用架构中,与应用系统形成无缝衔接。这时,它的优势就更加明显:

  1) Java应用服务器的所有提高性能的手段,都可以在Web报表软件上充分发挥作用,如计算能力更强的服务器(对控件方式服务器起不了多大作用,独立报表服务器则很多难以在UNIX服务器上部署),负载均衡,连接池等等。

  2) Web报表软件可以与应用程序更紧密地衔接,被应用程序更灵活地使用。

  参考文章:Java环境下的部署 - 充分发挥100%Java报表工具的优势

有人说,你不要总拿Unix说事,实际应用中很多应用服务器是采用PC Server的。确实是这样,但是(姑且不说许多Web报表工具并不能很好地支持Linux)不要忘记应用服务器层采用PC Server的原因是在于在这一层比较适合采用水平方向的扩展,即使用Cluster和负载均衡技术。对于Java报表软件,这一点太容易了,直接和应用部署在一起就可以,可以说是天生的,但对于独立服务器,这个就很麻烦了。

本文转载自:http://elf8848.iteye.com/blog/626808

猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
AgileEAS.NET 4.0 重构裁剪后的程序集说明

前几天在文章AgileEAS.NET 4.0重构裁剪,新的ORM、支持Linq,正式支持WPF,开放更多的接口简单的介绍了一下AgileEAS.NET平台在2011年初的一些重大改进措施,其中涉及对原有程序集的合作与裁剪...

agilelab
2011/05/09
0
0
架构相关的论文

1.软件体系结构风格研究现状及存在的问题 2.基于软件体系结构的可复用构件模型 3.一种自适应软件体系结构建模及其实施方法 4."平台/插件"软件体系结构风格 5.软件体系结构风格研究现状及存在...

青夜之衫
2017/12/05
0
0
【北京】完美世界高薪诚聘流程项目管理经理/BI经理/搜索工程师!!!!!猎头 薪资范围20k左右

流程项目管理经理 岗位描述: 负责制定和完善各种研发工作的流程和规范,审批检查。 职位要求: 1、本科以上学历(理工科) 2、7 年以上软件行业工作经验,有游戏行业研发经验优先,对开发,...

peter_0129
2011/09/22
625
0
secilog 1.18 发布,增加了mysql审计/多个web报表等

日志分析软件 secilog 1.18发布,增加了mysql数据库审计,增加了多个web报表,对日志查询做了更多友好的新特性,上篇文章1.17,有兴趣可以了解一下。本次升级主要增加以下功能: 增加了mysql...

赛克蓝德
2015/11/12
2K
0
secilog 1.18 发布 增加了mysql审计,多个web报表等

日志分析软件 secilog 1.18发布,增加了mysql数据库审计,增加了多个web报表,对日志查询做了更多友好的新特性,上篇文章1.17,有兴趣可以了解一下。本次升级主要增加以下功能: 增加了mysql...

赛克蓝德
2015/11/12
631
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.4K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
41
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部