`

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

 
阅读更多
今天有一位朋友问起有关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报表软件,这一点太容易了,直接和应用部署在一起就可以,可以说是天生的,但对于独立服务器,这个就很麻烦了。

分享到:
评论

相关推荐

    软件工程知识点

    需求规格说明书是需求分析阶段需要交付的基本文档,将成为开发者进行软件设计和用户进行软件验证的基本依据,涉及引言、术语定义、用户需求、系统体系结构、系统需求等有关软件需求及其规格的诸多描述与定义。...

    asp.net知识库

    Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression ...

    旅游管理系统数据库设计.docx

    支撑环境规划 3.1 网络逻辑结构 此次设计的网络逻辑结构采用三层C/S体系结构。它包含了表示层、功能层、数据层。在C/S结构中表示层负责处理拥护的输入和向可户的输入。功能层负责建立数据库的连接,根据用户的请求...

    旅游管理系统数据库设计(2).doc

    支撑环境规划 3.1 网络逻辑结构 此次设计的网络逻辑结构采用三层C/S体系结构。它包含了表示层、功能层、数据层 。在C/S结构中表示层负责处理拥护的输入和向可户的输入。功能层负责建立数据库的连 接,根据用户的请求...

    旅游管理系统数据库设计(3).doc

    支撑环境规划 3.1 网络逻辑结构 此次设计的网络逻辑结构采用三层C/S体系结构。它包含了表示层、功能层、数据层 。在C/S结构中表示层负责处理拥护的输入和向可户的输入。功能层负责建立数据库的连 接,根据用户的请求...

    旅游管理系统数据库设计.doc

    支撑环境规划 3.1 网络逻辑结构 此次设计的网络逻辑结构采用三层C/S体系结构。它包含了表示层、功能层、数据层 。在C/S结构中表示层负责处理拥护的输入和向可户的输入。功能层负责建立数据库的连 接,根据用户的请求...

    旅游管理系统数据库设计(1).doc

    支撑环境规划 3.1 网络逻辑结构 此次设计的网络逻辑结构采用三层C/S体系结构。它包含了表示层、功能层、数据层 。在C/S结构中表示层负责处理拥护的输入和向可户的输入。功能层负责建立数据库的连 接,根据用户的请求...

    旅游管理系统数据库设计方案.doc

    支撑环境规划 3.1 网络逻辑结构 此次设计的网络逻辑结构采用三层C/S体系结构。它包含了表示层、功能层、数据层 。在C/S结构中表示层负责处理拥护的输入和向可户的输入。功能层负责建立数据库的连 接,根据用户的请求...

    旅游管理系统数据库设计(4).doc

    支撑环境规划 网络逻辑结构 此次设计的网络逻辑结构采用三层C/S体系结构。它包含了表示层、功能层、数据层 。在C/S结构中表示层负责处理拥护的输入和向可户的输入。功能层负责建立数据库的连 接,根据用户的请求生成...

    java开源包10

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    2018年奥鹏计算机应用基础答案.doc

    诺依曼提出的计算机体系结构奠定了现代计算机的结构理论基础。 ( × )2.DOS操作系统是一个单用户多任务操作系统。 ( )3.没有装配软件系统的计算机不能做任何工作,没有实际的使用价值。 ( ×)4.Windows中的...

    数据库学习基础之名词解释

    系统提供了一个完整的软件开发工具Developer2000,包括交互式应用程序生成器、报表打印软件、字处理软件以及集中式数据字典,用户可以利用这些工具生成自己的应用程序。Orcale以二维表的形式表示数据,并提供了SQL...

    Delphi5开发人员指南

    4.1 理解Delphi环境和项目的体系结构 79 4.2 构成Delphi 5项目的文件 79 4.2.1 项目文件 80 4.2.2 单元文件 80 4.2.3 窗体文件 80 4.2.4 资源文件 81 4.2.5 项目选项及桌面设置文件 81 4.2.6 备份文件 81 4.2.7 包...

    基于 gin+gorm+redis+mysql 读写分离的电子商城.zip

    自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用程序、企业级解决方案以及其他各种数据处理场景的首选数据库平台之一。 以下是对MySQL数据库的详细介绍: 核心特性与优势 ...

    java开源包1

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包11

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包2

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包3

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包6

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包5

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

Global site tag (gtag.js) - Google Analytics