报表工具分析报告
1. 范围
本文将主要分析目前市场上主流的基于JAVA的报表工具。
2. 本文目的
本文主要对JAVA报表做一个分析对比研究 ,为J2EE项目选择报表提供参考依据。
3. 运行环境
Winxp+jdk1.4+ant1.62+tomcat5+mysql4.1.7
4. 假设与约定
5. 主流
报表工具分析
国内市场上可用于JAVA环境的报表工具大约有二三十种,比较活跃的也有十多种。面对这些绘乱杂陈的产品,很难仅从某一个方面就将它们都分类阐述清楚,更无法简单地分别打分评出优劣,必须分别从多个角度把各产品放在一起加以比较讨论才能对其在市场中所处地位有较深入清晰的认识。下面主要讨论支持 B/S 应用的产品,具体范围主要集中在如下 16 种产品(这里是按字母次序、排名不分先后):
actuate 、 bo 、 brio 、 cognos 、 crystalreport 、 jasperreport 、 mstr 、 stylereport 、博易智软、和勤、杰表、如意报表、润乾报表、数巨报表、用友华表、中创 inforreport 。
这些是市场上比较活跃的产品。其它产品或应用量太少或未采用商品化的运作模式,缺乏影响力,在讨论中不再重点陈述。
5.1 产品产地
从产地上可以简单地分作 国外产品 和 国内产品 两类,这个看起来似乎没什么意思,但其实这两类产品还是有较明显的差别,而且这样分类后在以下的讨论中也能比较方便地讲述。
从产品名称上很容易就区分出这两个类别(上述列表中全英文名的是国外的),这里就不再重复罗列了。
国外产品一般都价格较为昂贵(常被称作高端产品),而国内产品则普遍比较便宜,个别报价较贵的,也能被砍得很便宜;国外产品大多数都带有 BI 色彩,而国内产品则大多是纯报表产品;
当然,也有个别特例,比如国外产品 stylereport 的报表部分就比较便宜,比国内产品润乾报表的企业版便宜许多;而国内产品博易智软与和勤都有较强烈的 BI 色彩,国外产品 crystalreport (水晶报表)的 BI 色彩则不太浓( BO 公司有更适合于主打 BI 的产品)。
另外,国外产品是从简单的西方报表模型抽象出来的,处理中国复杂报表的能力都较差,而且一般不会提供任何变通的手法,而国内产品中无论自创的还是抄国外的,大多数对复杂报表解决也不够好,但针对个别问题一般都会有些变通手法,因此对国内应用适应性更强一些;国外产品的历史大都很久,做工非常精细,除了模型算法不太适应国内需求外,常识性的细节都会搞得很好(如编辑器中的 UNDO 、统计图绘制的美观度等),而国内产品历史积累较短,个别厂商技术能力也较差,导致产品较粗糙和细节不完整。
5.2 实现技术及原创程度
目前 J2EE 技术在国内的 B/S 应用开发中占主导地位,对 JAVA 的支持也是报表工具的一个重要考查指标。从这个意义上讲,报表工具可以分为 纯 JAVA 和 非纯 JAVA 两种 ,注意所有声称支持 B/S 应用的报表工具都能支持 JAVA ,所以不必再区别这一点。
相比之下,纯 JAVA 产品具有明显的优势。产品能够与 J2EE 应用完全无缝结合以达到最高的运行效率、安装部署很轻松简单(其机制与应用本身完全一致);同时还可充分利用 J2EE 应用服务器强大的集群平衡负载及共享管理的能力,适合支持用户数众多的大型应用系统;由于 JAVA 的跨平台能力,还能让整个应用系统轻松地从低端体系向高端体系迁移,系统容量变大时只要更换硬件、操作系统及数据库等系统部件而无需或很少需要重写软件。
而非纯 JAVA 产品则相反,经常只能在 Windows 下运行(个别国外产品宣称支持 UNIX 但部署极为复杂,和不能用差不多)、同样的应用在不同规模下可能需要两套解决方案,或在大型应用中除了 UNIX 主服务器外还必须专门部署 Windows 作为报表服务器 , 显得体系结构非常古怪;产品也不能和 J2EE 的应用无缝结合、沟通需要沟通额外的网络协议导致运行效率较低,而且由于不能享受应用服务器的集群机制(国外产品常常有自己的集群机制但显然没有 J2EE 应用服务器搞得专业),难以支持多用户的大型应用。
国外产品中 stylereport 是纯 JAVA 的,而常见的 crystalreport (水晶报表) , bo, brio, cognos, mstr, actuate 都不是纯 JAVA 的,开源产品 jasperreport 也是纯 JAVA