摘 要: 研究了目前查询系统以及查询平台的发展现状,设计和实现了一种新型的通用查询平台,该平台可以快速构建Web方式的通用查询系统。在设计和实施过程中,充分采用了面向对象的思想和方法。通过综合利用信息技术,保证了该平台可以灵活快速地构建可定制、高推广性、既友好又安全的Web分布式动态查询系统,较大地降低了Web查询系统的开发成本和维护工作的难度。
关键词: 面向对象;Web通用查询系统;分布式
随着Internet应用的不断扩展,许多企业都在努力或已经建造了自己的信息系统。每一个信息系统的开发,都有大量的查询需求。查询功能是信息系统用户使用频率最高的功能,查询功能设计的好坏,不但影响到项目的研发工作量和软件质量,而且关系到用户的满意指数。目前,实现查询功能的方法有很多,最为普遍的设计方法是在管理信息系统中增加1个专用的查询模块,这种做法不仅大大增加了系统开发的难度、降低了开发效率,还给系统的维护带来了难以估计的工作量。现有一些专用工具也为开发者实现查询功能提供了便利,但对普通的操作人员来说,是难于学习和掌握的,无法随心所欲地定制查询。如何才能降低实现的技术难度,达到根据用户的设置动态地改变页面,满足用户的多样性和多变性的查询需求,是需要解决的问题。针对以上问题,本文基于ASP和FLEX技术,结合攀钢ERP和MES以及检化验的归档系统,提出了一种通用动态查询系统平台(PXQueryF)的设计和实现。
1 问题分析
目前攀钢建设有1套面向整个集团的ERP系统、3套MES(近期还有2~3套准备建设)系统和9套检化验系统,为了保证系统性能和数据的完整性,公司提出对这些系统进行集中归档并提供查询,完成两千余张数据表的简单查询和需求不确定的组合查询。由此可见,查询的工作量很大,而且可变性大。如果沿用传统的方式是不能满足需要的,因此,考虑设计一种通用的查询平台,通过简单的勾选配置方式,动态生成查询语句和查询页面,以满足所有的查询功能。
要实现动态生成查询语句和查询页面,首先需要实现供用户选择的表、表的字段等配置功能;其次是根据配置生成查询界面;再根据用户的查询选择生成WHERE子句和排序子句,组织1条完整的SQL语句提交给数据库,并将查询结果展现给用户;最后是对查询页面进行权限管理[1]。
2 系统平台设计与实现
使用B/S模式的信息发布和检索,由于它的简单性、灵活性,越来越得到了广泛的应用。众多的开发工具如ASP、PHP、JSP等,简单易学、功能强大,为各种信息的发布和检索提供了强有力的帮助。在Web环境中实现通用查询系统分为两个方面:(1)前端查询表单。这是一个可交互的主页,用以构成查询界面,用户通过该界面提交查询请求;(2)后端应用服务程序。它处理用户的查询请求,并将处理结果返回给浏览器。本文结合现有的信息技术完成了以下的设计和实现[1]。
2.1 设计目标
查询系统平台的设计目标如下:
(1)该平台需满足对多个项目、多个数据库的管理。
(2)查询方式可以为数据库中的任意表、视图、SQL语句和任意字段的组合,且表名和字段名必须为中文。
(3)用户可以根据需求随意创建查询条件,没有任何限制;系统根据配置项动态生成查询页面,并依据字段类型提供给用户不同的查询方式。
(4)用户输入的查询条件能按语法规则正确地翻译成程序,并返回正确的结果。
(5)对页面进行授权管理。
(6)界面友好、操作方便、查询快捷。
2.2 PXQueryF的体系结构
PXQueryF的体系结构如图1所示,该平台总体采用了3层体系架构:数据库支持层、逻辑服务层、界面交互层。
(1)界面交互层
该层是CS、Html或JSP(ASPX)页面的集合,对用户屏蔽了数据存储及维护。其中配置和权限是使用C#实现的,采用C/S模式,主要为程序员或用户提供查询系统的配置和权限管理;业务前台使用FLEX实现,采用B/S模式,便于系统部署和查询。
(2)逻辑服务层
逻辑服务层实现的是应用服务器(中间层)的功能,自动化处理客户端的请求,实现业务逻辑与提供服务接口的功能,通过数据访问模型间接访问数据库以存储和获取数据。此层主要包括设计模型、Web动态查询模型、接口服务等功能[2]。其中配置应用服务器使用.net实现,采用remonting技术;业务应用服务器通过ASP.net实现,采用Websevice技术。
(3)数据库支持层
该层处理了所有定义的数据集的细节以及与数据库的交互,保证对数据源透明访问。数据库采用2种方式:XML方式和关系型数据库。通常将配置数据和权限数据保存在XML文件中,但也可单独保存在关系型数据库中(如ACESS数据库)及保存在业务数据库中。此外,对重要的数据如权限数据还需进行加密。
2.3 主要技术与实现
2.3.1 大数据访问和导出
构建一种3层客户端/服务器的体系结构,用户可通过Internet浏览企业信息,但是当浏览大量数据库数据时,网络连接常因速度缓慢或因超时而中断。因此,为了避免由于数据整体传送时间过长而导致的断连,为了满足用户浏览数据的局部性要求,将数据化整为零,采用分页技术来加快数据的传输,解决1次访问数据量大的问题。在访问Web服务器时,有2个因素限制了网页的连接时间:一是数据库的查询操作,另一个是网络传输的数据量。在数据库中的查询,可以通过建立索引来解决,例如,书目表可按十大类字段进行索引,这样可大大加快数据库查询速度。为了减少网络传输数据量,采用分页传输的技术,例如,客户端查询出1万条记录可以1次仅传输50条记录,这样可加快网页的连接时间而不会因超时而中断。
对于大量数据导出,不能采取化整为零方式。可以利用EXCEL格式识别的灵活性,通过产生较快的带有格式的网页流(Html流)方式,输出到EXCEL中,实现数据的导出功能。采用这种方式,对100万行10列的数据导出,大约耗时30 s,可以满足普遍的数据导出性能要求。其处理流程图如图2所示。
2.3.2 实现Web动态技术
静态网页是设计者做好的固定的网页,不适合通用查询系统要求。动态网页以数据库技术为基础,它不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页[3]。这样可以大大降低网站维护的工作量并可以实现更多的功能。在本方案的实施中采用了FLEX开发工具,通过它可以实现表现层和内容的真正分离,可以把数据巧妙地从任何地方(XML,数据库等)取出并绑定到界面中的元素上[4]。通过读取菜单配置、查询配置、复杂表头配置、数据展示区配置等数据动态生产网页。
2.3.3 复杂表头的配置
在查询系统中,有许多表的表头有多行且之间存在包含关系,在以往的设计中往往采用保存模板的方式,在展示时导入该模板。这种方式存在如性能、用户体验等的不足,在动态网页中尤其明显[5-6]。为克服这些问题且方便程序员或用户使用,本平台提供了模板导入功能。操作人员在EXCEL中做好模板,通过平台提供的工具导入,将表头的所有信息保存在数据库中。在动态产生网页时,可通过算法实现FLEX数据网格的重绘,实现用户的多表头数据查询。
2.3.4 基于配置的定制查询
为了满足系统快速开发,本设计实现了基于配置的查询定制,主要从以下方面实现:
(1)项目配置:该平台实现1个或多个项目建立和集中管理。
(2)数据源配置:完成1个或多个数据源的配置、测试,如图3所示。
(3)表配置:完成表连接、视图、SQL语句的配置。
(4)字段配置:实现字段选择,显示类型,可设置字段的查询条件、冻结、可见与否、只读、排序等,如图4所示。
3 PXQueryF的特点
(1)方便快速的操作:程序员或用户几乎不用培训就可以使用该工具,不需要通过写代码就可实现生成一个功能强大的B/S结构的查询系统。项目实施人员只需关注业务,不关心实现的细节,开发效率高。
(2)采用FLEX实现的查询前台可跨平台、对浏览器具有很好的兼容型、性能稳定,动态生成的Web页面统一、用户体验好,且方便维护等。
(3)可定制:可以灵活方便地配置完成多种形式的查询,如:单表结构查询、关联查询、自定义SQL查询。
(4)平台不足之处:该平台目前还未实现不规则复杂报表方式的查询和打印功能。
该通用查询系统平台实现了SQL语句大多数功能,如单个表的查询和多表的连接查询。而且很容易地实现分组求和功能。其通用查询的设计思想,缩短了开发周期,提高了工作效率。视图定义模块与通用查询模块以及权限模块的划分,使得利用该平台构建的查询系统维护更加方便。本通用查询平台已经在攀钢ERP和MES系统归档应用工程中使用并取得较好效果。
参考文献
[1] 刘军,阳小华,杨星.基于B/S模式的通用型组合查询组件的设计[J].微计算机信息,2006,22(3):256-258.
[2] 李鹏飞,朱洪龙.基于.NET和XML的动态通用查询模块的设计与实现[J].航空计算技术,2007,37(4).
[3] 王嘉祯,王红霞,宁红岩.基于Web的通用查询系统的设计实现[J].电脑开发与应用,2000,13(9).
[4] 王军锋,贾建华,申志伟.通用查询模块设计和实现[J].山西电子技术,2006(3).
[5] 官全龙,姚国祥,林良超.一种快速构建Web动态查询 系统新型平台的设计与实现[J].计算机应用与软件,2008,25(9).
[6] 朱小川,动态网页制作技术[J].科技论坛,2005,12(2).