维普资讯 http://www.cqvip.com 计算机系统应用 2007年第8期 VS M P中统计查询系统的设计和实现① Design and Implementation of Statistic and Query System in VSMP 任冬艳廖建新朱晓民 嚣窑 墨篥薯 羹著 晾 6 韩 熠 (东信北邮信息技术有限公司北京100083) 摘要:介绍了VSMP(Voice Service Management Platform,语音业务管理平台)平台以及统计查询系统在该平台中 的主要功能。分析了该平台中统计查询系统的现状和存在的问题,提出采用基于配置的方式和面向对象的思想 对该系统进行改进,使得系统的开发更加方便、快捷,统计结果的呈现更加灵活和人性化。 关键词:VSMP SQL统计配置面向对象 1 引言 图。统计查询系统在VSMP平台中的主要功能是提供 VSMP(Voice Service Management Platform)是按 对业务信息、SP信息、定购信息、计费信息、呼叫量信 照中国移动通信集团公司的数据业务管理平台相关规 息等的统计和查询操作。 范,以及一级组网、二级管理的原则建设的语音业务管 语音增值业务具有多种接入方式,涉及多种语音 理网络,以实现对语音增值业务的一点接入、全网服务 资源,因此每次业务访问都会在数据库中留下大量的 业务数据信息,如用户定制记录、业务话单、 呼叫量、业务收入、呼叫时长等,管理员需要 对这些数据进行统计和查询操作。大量的统 计查询操作要求VSMP平台的统计查询系统 能够提供简洁方便的操作方式。但是目前大 多数统计查询系统遵循的开发原则是为每个 需要统计查询的表提供一个接入点(形式上 可能表现为一个按钮或者菜单),通过这个 接入点触发对这个表的统计和查询操作,然 后返回结果给用户。在这种开发方式下,势 必产生下面的情况: ①增加一个业务。必须提供多个接入 图1 VSMP系统架构图 点才能实现此业务的各种统计查询功能; ②增加一个表。需要为每个业务提供 的规范化管理 ”。主要功能包括SP(Service Provider) 一个接入点触发该业务对这个表的统计和查询操作; 管理、业务管理、业务鉴权、用户鉴权、用户订购关系管 ③对一个业务的一个表进行两次统计查询(两次 理、统计查询管理等。图1是VSMP平台的系统架构 统计查询只是条件不同)。需要提供两个接入点对同 ①基金项目:国家杰出青年科学基金(No.60525110)i国家973计划项目(No.2007CB307100,2007CB307103):新世纪优秀人才支持计 划(No.NCET一04一Oll1);高等学校博士学科点专项科研基金资助课题(No.20030013006):电子信息产业发展基金项目(基于3G的移动业 务应用系统):电子信息产业发展基金重点项目(下一代网络核心业务平台) 维普资讯 http://www.cqvip.com 2007年第8期 一个表进行操作; ④修改删除统计。在系统中删除针对这个统计查 询的接入点或者对这个接入点触发的操作进行修改; 用目前的开发方式,实现上述几种功能的思路是 对代码进行复制和部分修改,这不仅使系统难于维护, 而且耦合性强、扩展性差。针对以上问题,我们提出了 一个比较灵活的基于配置方式的采用面向对象思想的 统计查询系统的解决方案。 2解决方案 当前流行的Web应用开发框架Spring、Struts、Hi-- bernate等的一个重要组成部分就是配置文件,整个框 架的运转都是围绕配置文件展开的,配置文件可以一 次读入多次使用。这种将不变的部分使用配置方式保 存,可变的部分预留出接口的思想非常适合解决统计 查询问题。每一个统计查询信息都用配置的方式保存 在持久层中,统计查询系统的核心模块负责动态装载 所有的配置信息,统计查询操作围绕配置信息展开。 图2是解决方案的架构图。 茵 图2 统计查询解决方案架构图 这种架构,很容易地解决了上面提到的四个问题: ①增加一个业务。通过配置这个业务所涉及到的 所有统计查询信息就可以提供该业务的统计查询功 能,不需要再编写大量的重复代码; ②增加一个表。配置对该表的统计查询信息,将 不同的业务作为可选条件即可; ③对一个业务的一个表进行两次统计查询(两次 统计查询只是条件不同)。如果两次统计查询的条件 有很大的不同,而且有的条件是一个需要另一个不需 要的,那么需要配置两个统计信息;如果两次查询有大 部分条件是相同的,只有部分条件是不同的,我们只需 要配置一个统计查询信息,将不同的条件配置为用户 输入的条件即可: 计算机系统应用 ④修改删除统计。删除持久层中这个统计查询信 息的相关记录或者修改这个统计查询的配置信息即 可:可见,采用基于配置的方式,开发人员不再需要为 每一个统计查询项都编写类似的页面和大量的代码, 而可以将开发的重点放在业务层。 3设计实现 统计查询系统是基于Struts+Spdng+Hibemate 轻量级J2EE(Java2 Platform Enterprise Edition)架构 的 引。 图3是基于轻量级J2EE的统计查询系统架构图。 I厂_ ] , Jsp ajax l _______-_----_ ---, 圈 _-——君 动态装载配置信息— ————._——景转化 ————、厂k 辄 且 ———— 配置信息到动态语句的转化 I—l儿糸 置持久层 D 持久化元素 数据库 图3 基于轻量级J2EE的统 计查询系统架构图 统计查询系统在表示层的实现采用了流行的 MVC(Model—View—Controller)架构的Struts框架,分 为模型、视图、控制器三部分。业务服务层使用Spring 框架提供了统计查询系统的核心功能实现。持久层选 用Hibernate简化了系统的开发和维护,增强了系统的 可扩展性。 3.1表示层 统计查询系统的视图提供给用户互动性更强更灵活 的界面,包括统计查询的接入点和多样化的数据表示。 模型表示企业数据和业务规则。在MVC的三个 部件中,模型拥有最多的处理任务。被模型返回的数 据是中立的,亦即模型与数据格式无关,这样一个模型 能为多个视图提供数据。统计查询系统的模型遵循 维普资讯 http://www.cqvip.com 计算机系统应用 2007年第8期 Struts框架的模型设计,继承AdionForm来实现。 控制器主要负责两方面的动作:把用户的请求分 发到相应的业务服务层;将业务服务层返回的结果及 时反映到视图上。为了增强系统的可维护性、可理解 性和可扩展性,统计查询系统控制器的实现尽可能的 配置信息到动态语句的转化:实现持久层配置信 息到统计配置元素的转化并动态形成查询语句。 数据转化模块:将持久层返回的统计数据转换为 Excel、Pdf、柱状图、扇形图等各种显示方式的数据或者 文件。 简单,只执行流程的转向和业务服务层模块的调用,而 不涉及复杂的业务逻辑的实现。 业务服务层的设计是衡量一个统计查询系统优劣 的关键。基于面向对象的设计使VSMP统计查询系统 3.2业务服务层 统计查询系统在业务服务层的设计充分体现了基 于配置和面向对象的思想,业务服务层分为两大部分: 一部分是统计配置元素,另一部分是统计查询的核心 功能模块。 统计配置元素是指用面向对象的分析方法分解的 标准SQL(Strudured Query Language)语句元素 ,比 如SELE 、WHERE、SUM、GROUP BY等等,我们把这些 元素表示为一个个的对象,每个对象都实现接口 SQLElement,该接口只有一个方法getElementType(), 返回这个对象所代表的元素类型。例如一个典型的 SQL语句: 我们可以分解出元素:VALUEELEMENT(如15)、 FIELD(如A.a,A.b)、FUNCTION(如SUM)、EXPRESSION (如A.a=B.C)、TABLE(如A和B)、ORDERBYELEMENT (如ORDER BY)等。我们把SQL语句分解出来的元素 对象共分为七大类:VALUE(值类型)、EXPRESSION(表 达式类型),FIELD(字段类型),TABLE(表类型),FUNC- TION(函数类型),ORDERBYELEMENT(升降序类型), NULL(空类型)。其它的元素都可以从属于这几个类 型,比如GROUP BY就可以是表达式类型的子类型。 统计配置元素是为配置统计信息服务的,我们在 实现统计查询项的配置功能时配置的是元素对象,而 不是直接的SQL语句,这样可以使统计配置拥有很大 的灵活性和可扩展性。另外统计配置元素是持久层配 置信息到动态查询语句转换的桥梁。 核心功能模块包括三个部分,每部分的功能如下: 动态装载配置信息:从各种持久层(数据库,文 件)读取配置信息。 的配置信息对象化,系统不需要再维护一个复杂的 SQL语句,而只需维护相对的对象,并且可以将这 些对象进行动态组装,从而形成不同的查询语句。 3.3持久层 持久层是整个应用系统与底层数据库进行交互的 核心部分。持久层的设计和实现影响着整个系统的稳 定性和扩展性。统计查询系统在持久层的实现上分析 了JDBC(Java DataBase Connedivily Standard)和关系 对象映射两种实现方式的利弊,选择了Hibemate这个 被业界认可的关系数据库持久化框架 。 持久层的数据持久化元素是指与持久层的数据进 行映射的对象,亦即POJO(Plain Old Java Objects)。 业务服务层的统计配置元素和持久层的数据持久 化元素是两个相互而又相互联系的模型。它们分 属于不同的层别,但又存在一一对应的关系。 4结束语 本方案采用基于面向对象的思想和配置的方式解 决统计查询系统存在的问题,这种解决方案不仅可以 应用在诸如各种营销系统、业务管理系统等需要进行 大量统计查询操作的系统中,而且在小型的门户网站 上也能发挥很好的效用。 参考文献 1中国移动通信企业标准,移动语音增值业务管理总 体技术要求。2004.2. 2 Craig Walls。Ryan Breidenbach著,李磊、程立、周 悦红译,Spdng in Action中文版,北京:人民邮电出 版社。2006.3:4—35,139—144,311-313. 3 Paul N.Weinberg.James R.Groff著.SQL:The Complete Reference.Second Edition.McGraw—H.II Osborne Media.2002.7. 4孙卫琴著。精通Hiebmate:Java对象持久化技术详 解,北京:电子工业出版社,2005.5:1-45.