图表技术在Java Web应用程序中的应用研究

2020-06-01 05:14张少应
西安航空学院学报 2020年1期
关键词:服务器端组件应用程序

张少应,张 涛

(西安航空学院 计算机学院,西安 710077)

0 引言

随着信息化建设的不断发展,企业各下属部门建立了各种功能的管理系统,给企业的生产和销售带来了很大的帮助和便利,但这些系统存在架构差异较大、系统间数据不关联、信息不互换共享、重复建设等问题。同时企业对数据的应用和要求越来越广泛,企业开始将各类同构和异构的数据进行集成,使得数据量按级数增加,导致数据检索与分析困难。针对上述问题,系统开发人员通常采用数据仓库、数据挖掘、联机分析、应用集成等技术,对海量数据进行分析处理,为管理层政策决策提供可靠的依据。在Web应用程序中,数据统计已从单纯的文本显示向多元化角度发展[1]。使用报表、图表显示的方式,更直观地为管理层进行信息预测、政策制定提供可靠的保障,实现数据的可视化。

1 常用图表生成技术

Java语言是企业级开发中常选的开发语言之一,目前在Java Web应用程序中使用的图表生成技术有两种:一是基于HTML5图形库的图表组件(客户端生成技术);二是基于服务器端生成技术。这两种技术针对多种格式的数据,为用户提供了可以高度个性化定制的数据可视化图表,基本都能满足企业级开发的需求。

1.1 基于客户端生成技术

在B/S应用系统开发中,基于客户端生成技术通常采用Flash插件、基于HTML5的Canvas组件采用JavaScript+DIV等前台开发技术,结合Ajax的异步更新工作方式,在不重新加载整个页面的情况下,实现与服务器交换数据,并更新部分网页内容。其工作原理如图1所示。

图1 基于客户端生成技术的工作原理

目前比较流行的技术有ECharts、Hightcharts等。这些软件大多都是纯JavaScript编写的图表库,底层依赖轻量级的Canvas类库,为用户提供直观、可交互、可高度个性化定制的数据可视化图表[2-3]。使用该技术进行开发时,需要在页面中引入该技术对应的库文件以及自定义的JavaScript文件,在页面添加一个DIV元素,作为放置图表展示的容器;设置图表类型配置项的参数值和图表的渲染;定义解析函数,完成处理XML、JSON格式数据的JavaScript加载文件,实现以图表形式显示业务逻辑数据的功能。

1.2 基于服务器端生成技术

基于服务器端的生成技术,通常都是采用Java技术开发的图形图表类库,供Java Applets、Servlets以及JSP应用程序的调用,实现对后台数据的处理,直接在浏览器中显示交互式的图表图像,其工作原理如图2所示。

图2 基于服务器端生成技术的工作原理图

目前比较流行的技术有JFreeChart[4-5]、JCharts、润乾报表等,它们大多都使用纯Java语言编写,继承其跨平台的特性,在基于框架开发、MVC开发模式等Java Web应用程序中,都可以无缝的与该系统集成,为企业级数据分析与商业智能提供可靠的、直观的统计分析图表,为企业管理者的决策提供必要的参考。

使用该技术进行开发时,用户需要在项目中导入该技术对应的JAR库文件,在Java类文件(JavaBean或Servlet)中,调用JAR文件中接口或类提供的方法,建立与后台数据库服务器交互的数据源;创建图表对象,设置图表类型项参数、图形特性、显示外观等属性值;使用JSP的动作标记,完成JSP页面对Java类文件的调用,实现业务逻辑数据以图表形式的直观显示。

1.3 两种技术的比较

在Java应用开发中,两种技术都可以同后台数据库进行交互,在Web应用程序中生成折线图、饼状图、曲线图、散点图等各类动态统计图,为用户提供直观的数据显示模式;设置鼠标点击时数据点显示提示的效果,缩放过滤按需查看细节,实现图形的渲染等功能。但这两种技术存在差异,主要表现在下述方面。

1.3.1 数据加载过程

在客户端生成技术中,一般都采用Ajax实现动态数据的加载,其具体过程为:客户端通过Ajax发送请求给Web服务器,服务器端通过Servlet接收用户的请求,生成JSON格式的数据后,将结果反馈给客户端。客户端接收到数据,通过JavaScript的解析函数对JSON数据处理后,绘制出满足用户查询条件的统计图表。

在服务器端生成技术中,数据库访问层的Java类直接调用图形图表类库中的接口或类,通过这些类提供的方法建立数据源。使用SQL或HQL语句操作后台数据库,完成对查询数据的筛选。业务逻辑层通过调用数据库访问层的Java类、图形图表类库提供的方法,完成对统计图表的渲染。表示层通过JavaBean或者Servlet完成对业务逻辑层类的调用,实现图表的正常显示。

同服务器端技术相比,绝大多数客户端技术都需要将后台数据进行二次处理(生成JSON、XML格式),客户端接收到这些数据后,需重新解析后才能生成图表,增加了编码的难度。而服务器端技术直接操作后台数据库,生成对应的数据集或单元格数据,处理效率高。

1.3.2 运行加载速度

使用服务器端生成技术开发的应用程序,大多都采用胖服务器架构形式,服务器的性能、访问内容的冗余程度、网速带宽和流量问题,影响图表生成和浏览。在移动客户端访问时,图表显示会浪费大量流量,使得图表加载的速度比较慢。而客户端生成技术中,Web应用程序多采用瘦服务器架构,与图表处理相关的好多代码需在客户端完成,Ajax技术的使用,使得不同的Ajxa请求在服务器端处理时间和客户端处理时间上可能存在重叠部分,实现了服务器和浏览器并行工作[6],提升了网页的加载渲染速度。随着Adobe Flex技术在Web开发中应用,越来越多的B/S结构Web应用程序,都采用胖客户端的形式,使这些Web应用程序的加载速度得到了明显地提升。在服务器性能、处理数据量、查询条件相同的条件下,其运行加载速度明显快于服务器端生成技术。

1.3.3 浏览器支持情况

基于客户端实现中,都会使用到图形容器Canvas类库,而对于低版本的浏览器一般都不支持该类库,使得图形的显示效果受到明显影响。例如,Echarts组件在360、IE8浏览器中不兼容,部分功能不能正常显示。基于服务器端实现中,虽然图表生成代码都在业务逻辑层和数据库访问层完成,但该技术在部分浏览器中兼容性较差。例如,JFreeChart在低版本的IE浏览器中就不能正常显示统计图。

2 基于服务器端通用统计图表生成技术的设计与实现

2.1 实施方案设计

在使用Java语言进行企业级应用开发中,大多都采用Struts2.x、Spring4和Hibernate4(简称SSH2)框架集成[7]的方法来进行系统开发。这种系统结构成熟、性能良好、运行稳定,是目前许多企业级开发中首选的结构之一。选用框架集成的实施方案,可以更好地与采用框架集成技术系统的整合,降低开发的难度,具体实施方案如图3所示。

方案采用面向接口编程的思想,DAO实现与数据库的交互,完成对底层数据库的持久化;Service为控制器提供服务,完成对DAO的封装,使得控制器实现无需直接访问DAO方法,而是调用业务逻辑的方法;Action实现用户界面与业务逻辑的交互。在该方案中,Spring的IoC容器负责管理业务逻辑组件、控制层组件以及持久层组件,利用依赖注入的优势,增强了系统的解耦,提高了系统扩展性,降低了系统重构的成本[8]。DAO编程模式的使用,使得数据访问操作集中独立在一层完成,在应用集成中,开发人员很容易在不同数据库之间切换,获取不同数据库的数据,提高了系统的可维护性和可移植性。

为更好的与现有系统整合,可针对不同开发模式,选用不同的整合方法。当现有系统采用框架集成的方式,选用相同框架时可直接将该实施方案在系统中整合,以此完成不同数据源、统计图显示的设置;当现有系统采用其他开发模式时,将该实施方案发布为一个Web Service,通过Web服务方式完成与现有系统的集成。

2.2 通用统计图表生成技术的实现

在基于服务器端统计表生成技术中(见图3),开发人员需将图表开发所需的JAR文件导入到Web工程中(以JFreeChart为例),为有效管理生成动态图表,在web.xml中配置JFreeChart组件,通过该组件中的org.jfree.chart.servlet.DisplayChart类管理生成的图片。在完成配置后,对来自不同应用的同构或异构数据进行整合,使用DAO模式创建JFreeChart图表的数据集。在Action中创建JFreeChart对象,修改图片的显示属性,美化图片的显示样式,并以输出流的方式获取图片。如果想在JSP页面调用图片,把图片的src请求路径设置为产生输出流的Action即可,实现了与系统中其他功能模块的无缝整合。

图3 框架集成的实施方案示意图

在具体实现时,为方便集成到新系统,将连续不同数据源的基本信息(数据库类型、用户名、密码等)存放在配置文件(.properties)中,使用Properties类完成数据源基础信息的管理,验证不同类数据库连接是否正常。考虑到绘制统计图时对数据库的单表、多表操作,需要分析选择数据库表的数据是否满足统计条件。对Excel格式数据的处理,则选用Java的POI组件对所选文件中单元格数据的随机读和写。

图4 通用统计图表生成技术的应用

在通用统计图表生成操作界面(见图4)中,用户可选择不同数据源或导入Excel的数据,配置图表参数后,程序开发人员需要分析所选择的数据,判断能否生成统计图表。将该实施方案整合到现有系统中,开发人员无需进行数据库访问层代码编写,只要根据新系统的操作流程和客户需求,完成业务逻辑层代码二次开发,简化了开发过程,提高了开发效率。

3 结语

以直观清晰的图表展示企业生产过程中各个要素的数据,为管理者决策提供可靠的参考,是企业级应用开发中常用的功能模块。基于客户端统计图表生成技术具有加载速度快、开发周期较短等优势,在数据处理难度较低的应用开发中,很好地满足了PC端和移动端的开发要求。而基于服务器端的统计图表生成技术具有数据处理效率高、安全性较高的特点,在同构或异构数据集成的应用开发中,能够很好地将不同应用的数据以图表形式,直观地将统计数据展现给用户。在服务器端统计图表生成技术中,使用SSH2框架集成技术和DAO编程模式设计的实施方案,具有开发难度低、维护效率高、系统可扩展性强的优势,在系统集成开发中,具有推广价值。

猜你喜欢
服务器端组件应用程序
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
创建Vue组件npm包实战分析
智能机械臂
舰载雷达TR组件冲击计算方法分析
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
一种基于Java的IM即时通讯软件的设计与实现
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用