Web报表软件的几种体系结构之比较
2014-10-09 10:40
375 查看
今天有一位朋友问起有关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报表软件,这一点太容易了,直接和应用部署在一起就可以,可以说是天生的,但对于独立服务器,这个就很麻烦了。
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报表软件,这一点太容易了,直接和应用部署在一起就可以,可以说是天生的,但对于独立服务器,这个就很麻烦了。
相关文章推荐
- Web报表软件的几种体系结构之比较
- 中国报表-报表工具-商业智能-Web报表软件Java与Active X体系结构之比较
- 软件体系结构及web服务器
- day08软件系统体系结构和WEB资源和web服务器
- Web 服务概念性体系结构(WSCA 1.0)WSCA 1.0 第 2 部分
- 软件体系结构分析与Smart Client的应用
- 复杂系统的层级原理与模型驱动软件体系结构
- WEB软件结构原则
- 软件体系结构的非功能属性
- WEB软件结构原则
- 基于体系结构、面向构件的软件开发方法(梅宏)听后感
- 面向服务的体系结构扩展Web服务的前景
- 目前流行的几种软件的压缩比较
- 浅论软件体系结构与软件发布策略的关系
- 几种web打印方案的比较
- 软件企业ISO9000质量体系与CMM的比较分析
- 软件体系结构
- 减少优先级倒置问题及基于ORBs中间件的非确定性的软件体系结构
- 软件体系结构的知识提纲
- 报表软件比较参考