今天看了一片文章说纯Java报表很好,控件方式(ActiveX)报表全不及的文章http://www.dwway.com/html/10/n-2210.html ,最近关于纯Java报表未来发展趋势的话题在程序员中引起了激烈的讨论,甚至部分人开始怀疑纯Java 报表是否已经过时,以及它的存在周期到底会有多久的问题。控件方式报表产品代表如尚南,纯Java报表产品代表如润乾。对此,编者为您做了以下文章,供您参阅。
奇怪的是如果控件方式真是前文说部署差、性能又低、又不能跨平台,那为什么 Cognos (IBM收购的BI公司)也采用ActiveX控件方式设计,又为什么Business Objects XI (SAP收购的BI公司)也采用ActiveX控件方式设计?
前文提及,控件方式的缺点在于:
1. 部署:一个控件,要完成报表服务器所实现的大部分功能,体积可想而之。功能越强,控件的体积越大。这对于部署是一个很大的负担。不仅如此,而且,当报表系统升级时,用户都必须重新安装控件。
真实测试结果: 利用纯Java报表产品提供前端浏览器采用标准HTML打印就能实现报表打印失真效果。纯Java报表精确打印需要下载Java Applet,也就是说要在每个客户前端装JRE(Java Runtime Environment) 15.2MB 和 JDK (Java(TM) SE Development Kit) 56MB,才可以做到打印不失真。
真实测试结果:现在Business Object与 Cognos在报表系统升级时,提供了零安装控件功能。
2. 性能:在PC端计算与在服务器端计算,对小报表可能差别不大,但对于大报表,显然差异非常大。并且,如果一个Web报表系统有多个用户都要使用,服务器方式可以采用的定时计算、缓存等等都无法发挥作用。
真实测试结果:现在Business Object与 Cognos 能查询TB级海量数据,纯Java报表50万行数据,26个常规字段,做最简单的网格式报表,然后预览报表时会出现以下错误"内存占用太多,无法正常计算报表"。
测试机器硬件环境
操作系统: | Microsoft Windows XP professional sp2 |
内存: | 2GB RAM |
CPU: | Genuine Intel CPU T2300 1.66Hz |
硬盘: | 80G |
技术原因:系统能否承受高并发量及访问量,与控件Active X的关系并不大,因为控件Active X仅仅是做为客户端表现层,而且服务端肯定有相应的其它技术如JAVA,.NET.ColdFusion.或者PHP以及相应数据库.并发量瓶颈更多由服务端决定,包括了服务端的技术架构,WEB容器的参数,以及数据库配置参数和WEB server以及DB server的硬件配置,这些共同决定了系统的性能。但为什么控件Active X BI在同一台机器中能达到TB及海量数据查询,原因是采用了Rich internet application(ria富客户端)技术,Flex是Macromedia最新发布的presentation server(展现服务),大名鼎鼎的Macromedia Flash是强大的矢量动画编辑工具,为什么也向富客户端技术开发?
为何国际BI公司都不采用纯Java技术开发,原因就是性能的瓶颈,富客户端大大减低服务器端的计算工作,将30%-50%工作让前端计算。奇怪的是,有人说,纯Java技术怎样性能好,性能劲, 有趣! 有趣!
市场价格证明一切:
纯Java报表产品市场只卖几千元? BI公司控件Active X设计卖几百万?
事实上为进一步实现后台跨平台,国际知名BI公司Cognos进一步推出前端Active X后台Java技术混合数据处理设计,报表产品代表如尚南也进一步推出此设计。