价格监测预警信息系统.docx
《价格监测预警信息系统.docx》由会员分享,可在线阅读,更多相关《价格监测预警信息系统.docx(51页珍藏版)》请在冰豆网上搜索。
价格监测预警信息系统
题目:
价格监测预警信息系统
——数据模块的设计与实现
价格监测预警信息系统
——数据模块的设计与实现
摘要
纵观国内价格监测现状,政府投入大量人力、物力来监测市场价格,但却未达到高效、快捷、准确的目标,给各级政府价格监管和宏观调控带来了极大考验。
本文在深入开展了对物价系统中各监测机构的现状、实际业务调查的基础上,针对数据模块(其中包括数据采集、分析、预警)业务需求,详细阐述了该模块的需求分析和系统设计,并讲述了利用J2EE架构、B/S结构、SQLServer2005数据库、Excel控件、Ajax、FusionCharts等技术进行开发维护的实践过程。
本文着重阐述系统数据模块中数据采集部分,详细描述了从原始数据收集到最终形成汇总数据的流转过程,且对整个研发过程中碰到的有较大影响问题及其相应的解决方案进行了总结。
系统采用螺旋生命周期模型进行开发,在与客户交流中不断完善。
目前该系统已经过两个月的用户试运行和两个月的正式运行,运行稳定,客户反应有效提升工作效率,能够快速及时掌握价格变动和整体的变化趋势。
关键词:
价格监测预警,J2EE,SQLServer2005,Excel,Ajax
DESIGNANDIMPLEMENTATIONOFDATAMODULEAMONGMONITORINGANDWARNINGINFORMATIONSYSTEM
ABSTRACT
Throughoutthestatusofdomesticpricesmonitoring,governmenthasinvestedagreatdealofmanpowerandmaterialresourcestomonitorthemarketprices.whileitdoesn’tmeetthehigh-performance,fastandaccuratetarget,whichbringsthegreattestofpricemonitoringandmacro-controltoalllevelsofgovernment.
Basedonthedeeplystudyonthestatusofvariousmonitoringinstitutionsandtheactualbusinessinvestigationinthepricesystem,formedthreepartiesofbusinessrequirement(datacollection,dataanalysis,dataearlywarning),thispapergivesthedetailsystemdesignbytheanalysisofbusinessrequirement,usingJ2EEframe,B/SStructure,SQLServer2005、Excelcomponent、Ajax、FusionChartsandsoon,selectedeclipseastheIDEtodevelopsoftwareuntiltouse.
Thispaperdescribesthesystemdatamodulepartofthedataacquisitionfromtheoriginaldataentrytothefinalformofthecirculationprocessofaggregatedata.AndtheySummedupofagreaterimpactontheproblemsandcorrespondingsolutionshadencounteredinthecourseoftheresearchanddevelopment.
Thesystemisdevelopedbyusingaspiraldevelopmentlifecyclemodel,andimprovesalotbycommunicatingwiththecustomers.Afteritpassedatwo-monthtrialrun,aswellastwo-monthofficialoperationstably,thecustomerhasgivenapositiveconfirmationoftheefficiency,promptandabilitytocontroltheoverallpricingfluctuationandtrends.
KeyWords:
pricemonitoringandwarning,j2ee,sqlserver2005,excel,ajax
第一章绪论
1.1价格监测预警系统的建设背景
2006年9月,**省人民政府常务会议通过了《**省价格监测预警办法》,建立了《**省价格监测预警工作规程(试行)》等有关规章、制度。
要求通过科学、有效地组织和规范价格监测预警工作,保障价格监测数据的真实、及时和准确,发挥价格监测预警在宏观调控和价格监管中的重要作用[1]。
近年来,“非典”、“禽流感”、“云娜”台风等突发性时间引起价格波动严重影响市场和社会的稳定,特别是2007年以来粮油、猪肉等关系民生商品和重要工农业生产资料价格受国际国内市场的影响大幅波动,2008年全国南方发生特大冰雪灾害、512汶川大地震等引发市场价格的上涨,给国家宏观调控和价格监管带来新的考验。
因此建立电子化、网络化的全省价格监测预警系统更为迫切,急需进一步提高价格监测预警的工作效率,提高各类数据的准确性、提高工作水平、改进服务手段与方法,为全省价格监测预警提供更合理、精确的决策依据。
通过科学的数据分析,引导消费预期、平抑市场价格、加强和改善宏观调控、保持社会稳定。
1.2国内外价格监测预警系统的发展现状
上面两节详细的描述了当前我国价格监测职能部门的具体工作职责、工作任务以及对数据的分析要求。
据调查发现国外不存在价格监测中心这一职能部门,价格的监测、分析、预测工作主要由国家统计部门来实施。
很多发达国家的价格监测信息化做得非常好,有部分国家将部分产品价格的监测与其相应的销售系统进行对接,可实时监控价格变动。
限于我国国情,目前达到发达国家同等水平的监测水平还有很长的一段路要走。
目前国内大部分地区仍使用电话、传真等方式进行价格监测,最终将价格监测数据汇总到省价格监测部门,由省价格监测部门通过内部的数据管理来维护省级数据,汇总的数据通过国家下发的单机版软件形成特定的加密文件,通过Gmail送达国家监测中心。
有部分地区的价格监测部门有各自的价格数据记录系统,数据分散在各个地区。
上述可知目前的信息化程度,很多省级以下的数据存在空缺,省级数据可能存在着不准确性却无据可循。
尤其是近年来重大突发事件的发生导致价格异动显著,但是因价格监测系统监测方式的信息化、电子化程度不高,导致数据采集的及时性和准确性受到了一定的影响,给国家宏观调控带来了极大地挑战[2-4]。
因此建立电子化、网络化的全省价格监测预警系统更为迫切,急需进一步提高价格监测预警的工作效率,提高各类数据的准确性、提高工作水平、改进服务手段与方法,为全省价格监测预警提供更合理、精确的决策依据。
通过科学的数据分析,引导消费预期、平抑市场价格、加强和改善宏观调控、保持社会稳定。
1.3研究的目的和意义
建立价格监测预警应急系统是搞好宏观调控的客观需要。
价格是国民经济的综合反映,是市场运行状况的晴雨表,是社会资源配置的信号,是政府进行宏观调控决策的重要依据,保持市场价格的基本稳定是政府宏观调控的基本目标之一。
建立价格监测预警应急机制是深化价格改革的重要内容。
建立价格调控体系是进一步深化价格改革的重点,价格监测预警应急机制则是价格调控体系重要的有机组成部分,只有建立价格监测预警应急机制,做好价格监测预警应急工作,对重要商品和服务价格、市场供求等各类信息进行收集、处理、发布,向生产经营者提供及时、准确、有效的价格监测预警应急信息,才能引导他们以市场为导向,调整与优化生产结构,进而提高效益,增加收入。
建立价格监测预警应急机制是完善价格管理的基础工作。
只有做好价格监测工作,才能客观地估量价格变化趋势;只有做好价格预警工作,才能对市场价格波动做到心中有数;只有做好价格应急工作,才能对市场价格异常波动进行有效干预,将其消除在萌芽状态。
建立价格监测预警应急机制是应对突发事件的有效手段。
要有效应对突发事件引起的市场价格异常波动,就必须建立健全价格监测预警应急机制和系统。
通过严密的价格监测能在第一时间迅速发现价格异常波动情况,通过科学的价格预警能在第一时间内分析判断重要商品和服务价格异常波动的程度并及时发出预警信号,通过制定周密的应对突发价格异常波动的预案,做到未雨绸缪、防患未然,以便在价格异常波动真正发生时,在第一时间内平抑市场价格的异常波动。
[4]
第二章价格监测预警系统相关技术综述
2.1J2EE技术架构
价格监测系统采用了J2EE的技术架构。
基于J2EE架构本系统采用了模型-视图-控制器(MODEL-VIEW-CONTROLLER,MVC)的模式[5-7]。
主要目的是把数据(模型)和数据表现(视图)形式分离开来。
J2EE架构一般在大中型应用中使用比较多,选择了J2EE也就意味着选择了一个开放、自由、大型的技术应用平台。
J2EE的组件封装是通过EJB来进行的,开发语言使用JAVA。
基于J2EE架构的程序体系结构是3层或多层的结构,主要层次如下:
1.用户接口层,负责处理用户和应用程序的交互过程;它可以是一个通过防火墙运行的web浏览器,也可以是一般的桌面应用程序,还可以是无线的移动设备。
2.表示逻辑层,定义了用户界面要显示的内容和如何处理用户的请求,根据所支持的是什么样的用户接口。
对于不同的用户,会有不同的版本。
3.业务逻辑层,把业务逻辑封装倒组件里面,通过和数据打交道,对应用的业务规则建模。
4.基础框架服务层,提供系统需要的其他一些公共功能,如消息,事务支持等。
5.数据层,存放所有的数据,存放的形式可以是关系数据库,文档数据库,文件,XML文档,目录服务等。
运行平台:
基于J2EE架构的系统运行环境非常大的一个优势就是平台无关性,可以运行WINDOWS、UNIX、LINUX等不同的操作系统。
本文所实现系统将运行于Windows2003Server标准版。
2.2数据报表方案
随着信息化全球化的不断深入,Web报表信息系统一度繁荣发展,Web报表系统的实现方案也不断趋于成熟。
目前Web报表信息系统实现方案有很多,其中应用最为广泛、易用性及实用性最好的主要有以下三种方案:
1.基于ActiveX插件的方案。
此方案又可以细划分为:
独立开发ActiveX插件和借助第三方插件两种子方案。
目前由于很多第三方插件的功能已经非常完善且价格较低,其费用远远要低于独立开发ActiveX插件的成本,并且可以为开发者节约开发时间,提高开发效率,因此第三方ActiveX插件被广泛应用于Web统计报表信息系统中。
2.基于COM组件的方案。
该方案通常是借助基于COM的Excel来实现Web报表信息系统。
MicrosoftOffice中的Excel具有强大的报表制作和打印功能,利用其单元格的拆分、合并和格式设定,可以方便快捷地建立空白的报表文档,对最后生成的报表,也可方便的根据具体情况重新设定其格式。
3.基于XML的无插件方案。
该方案是在报表生成模型中定义了一系列的XML标记用来描述报表的样式信息和动态数据信息,并使用这两种信息动态生成报表。
2.2.1基本原理
普遍地,一个web报表系统包括一个设计器(一般是C/S的)和一个运行引擎。
开发者在设计器中完成报表的设计,保存为配置文件。
引擎运行在应用服务器上(也可以是单独的服务器),当一个报表被调用(访问)时,先读配置文件,然后相应去读取数据,按一定格式生成报表(包括图表等),返回给浏览器,以实现B/S报表的功能。
一般设计器都是在Windows下运行的,设计的过程和配置文件都与应用服务器的种类无关。
但是根据不同的环境要求,会有不同的引擎,以实现Java报表(JSP报表)、ASP报表、.NET报表等等。
对于数据,一般都是由用户自己定义数据源,如ODBC、XML等。
这样就可以支持各种数据库。
1.基于ActiveX插件的方案[5-6]
整个系统划分为三层——底层(数据库服务器层)、中间层(应用逻辑服务器层)以及上层(含有ActiveX的客户端浏览器)。
其中底层数据库只完成数据库本身的功能,即数据的存储、索引、检索等;中间层(应用逻辑服务器)主要实现系统的应用逻辑功能,接收并分析处理客户端的请求,并通过执行数据库操作,从底层数据库获得用户请求的信息,并控制该信息在上层以用户所需要的形式显示。
上层(带有ActiveX插件的浏览器)负责报表的显示及与客户和中间层的交互。
具体方案模型的工作流程如图表2.1所示:
图表2.1三层模型工作流程图
1)在上层通过ActiveX插件定义好应用程序需要使用的报表模板以及与之相对应的前后台数据关联信息(通常通过XML来存储一些sql语句,这些sql语句标识了那些前台的那些单元格对应哪些后台的数据以及要执行何种操作),并将报表模板和前后台的数据关联信息储存到底层数据库,以备以后使用。
2)当用户在上层发出报表读取请求时,中间应用逻辑服务器层接受并解析该请求信息,然后依据解析后的用户请求信息,从底层数据库读取所需要的报表模板以及与之对应的前后台数据关联信息(通常是一个XML变量),随即中间应用逻辑层则根据前后台的数据关联信息,执行所有取值操作,并将取得数据显示到报表模板的相应。
位置上,此时用户请求的报表已经生成,中间层发送该报表到上层(带有ActiveX插件的客户端浏览器)。
3)上层接收中间层所发送的报表信息,并在ActiveX中加载该报表显示给用户。
2.基于COM组件的实现方案[7-11]
使用和操纵MicrosoftOffice(主要是Excel)的方案。
通常在安装完MicrosoftOffice之后,在相应的安装目录下会有关于Word、Excel等的对象库文件,只需在开发环境中引用对象库文件,即可使用其中的对象。
Excel对象模型中有5个重要的对象和制作报表有关,分别为:
Application、Workbook、Worksheet、Range、Cells。
其中Application处于Excel对象层次结构的顶层,表示Excel自身的运行环境;Workbook直接处于Application对象的下层,表示一个Excel工作簿文件;Worksheet对象包含于Workbook对象中,表示一个Excel工作表;Range对象包含于Workbook对象中,表示Excel工作表中的一个或多个单元格;Cells对象,包含于Workbook对象中,表示Excel工作表中的一个单元格。
具体模型流程如图表2.2所示:
图表2.2基于COM组件的方案模型
1)首先在数据库储存有预先设计好的Excel表样式以及与之对应的SQL信息(标识了Excel表样式中哪些单元格与数据库的哪些数据对应),这些Excel表样式和SQL信息用来以后生成实际的Excel报表。
2)客户提出报表浏览请求后,应用服务器依据该请求信息在数据库检索相应的Excel表样式以及与该表样对应的SQL信息,并执行所有取值的SQL语句,然后将数据填写到Excel表样式相应的对应单元格上,最后将生成的Excel报表发送到客户端。
3)客户端将调用本机Excel程序打开从服务器发来的Excel报表,显示给客户。
从整体结构看,基于COM组件的实现方案与基于ActiveX插件的方案类似,二者所不同的是使用的报表表样式模板不同,前者使用Excel文件作为模板,而后者使用ActiveX插件所支持的特定格式文件作为模板,但正是因为这个区别,二者的性能差距甚远,在客户端向服务器提交报表数据时,基于ActiveX插件的方案要方便的多。
3.基于XML的无插件方案[12-15]
如图表2.4展示了报表生成模型的体系结构。
数据库中有一张数据表专门负责存储业务中需要用到报表的样式描述文件。
web服务器中的EJB是一个有状态会话Bean,它的createStyleXml()方法用于从数据库中读出所需要的报表样式描述文件,产生符合XML规范的报表样式描述文件;该EJB中的另外一个方法createDataXml()用于从数据库中读取报表中需要动态生成的数据,并将这些数据按预先定义的XML标记组织成符合XML规范的报表数据描述文件;服务器中的Servlet则负责解析EJB读取数据库后产生的XML格式的文件,将报表样式描述文件和报表数据描述文件解析为可以显示报表内容的HTML标签并传送给客户端浏览器。
图表2.3报表生成模型
工作流程如下:
1)将应用程序中需要实现的报表样式都按照预先定义的XML标记描述出来,并给以一个唯一的标志存到数据库中以完成对报表样式描述文件的存储:
对应于每张应用程序中需要显示的报表,都需要一张报表数据描述文件来实现其动态表格域的显示,因此,在描述完报表样式后,需要在会话Bean中编码实现一个方法来完成该报表的数据描述文件的生成。
2)当用户点击显示报表的按钮时,客户端浏览器将所需要显示的报表ID号传给Servlet。
3)Servlet的doPost()方法接收到报表生成请求后,调用会话Bean的createStyleXml()方法从数据库中获得相应的报表样式描述文件,然后根据参数ID从会话Bean中找到对应该报表的creatDataXml()方法,以便从数据库中读取数据后创建符合XML格式的报表数据描述文件。
4)Servlet获得两种描述文件后,通过ParseXml()方法解析这两个描述文件:
首先解析数据描述文件,将会话Bean读取数据库后获得的数据描述文件按行存到相应的表标题、表头、表身、表尾数组中,然后按行解析报表样式文件,如果遇到静态文本域,就产生
| 标签并将文本嵌入其中,
中文本的样式属性与样式描述文件中所描述的静态文本属性一致: 如果遇到的是动态文本域,将相应数组中的数据嵌入 | | 中,并将数组的指针后移:
如果遇到的是斜线域,则调用createSlaline()方法产生一个与样式文件中描述的斜线域大小、样式相同的图片嵌入到
| 中。
5)将解析后得到的HTML文件传送到客户端浏览器即得到需要显示的报表
2.2.2对比分析
下面对上述三个主要数据报表方案做一个简单的对比分析(表格2.1):
表格2.1
优缺点
方案
优点
缺点
独立开发ActiveX插件
适用于小规模系统开发,便于系统后期维护和管理,交互能力强(很多运算在客户端执行)
在大型报表系统中,开发周期长,成本高,性价比低,浏览器需要下载并安装注册插件,容易与其他浏览器插件发生冲突
借助第三方插件
能够极大地缩短开发周期,提高开发效率,功能完善,性价比高、交互能力强(很多运算在客户端执行)
由于是第三方软件,一旦出现问题,不易独立解决,且也需要客户端浏览器加载并安装注册插件,易与其他插件发生冲突
基于COM组件的方案
具有与MicrosoftExcel相当的强大功能,且能够与许多开发平台无缝连续
客户端需要安装MicrosoftOffice,否则程序不能使用
基于XML的无插件方案
具有较强的灵活性,实现了报表样式与报表数据分离
报表样式文件以及报表动态数据信息文件的定义规则复杂
2.2.3实际采用方案
为了符合客户的使用习惯,采用客户惯用的Office系列软件来作为数据采集操作的载体,即使用Excel的插件来进行开发。
实际采用的方案是借助第三方的控件(金格控件),采用Excel文件作为数据填报模板并且借助XML结构的模板来进行数据的定位。
使用VBA,POI等技术将Excel公式、Excel表格样式注入到Excel模板中,使用Jacob技术来激活各个公式单元格,实现报表数据的实时计算响应。
2.3SQLServer2005简介及优点
SQLServer2005是微软公司SQLServer生产线上的最受期待的产品。
在成千上万的电子邮件、成百上千的规格说明以及大量的编译的基础上,SQLServer2005确保了自己是Windows平台上数据库应用程序中最具戏剧性的新型数据库平台。
SQL2005分五个版本,如下所列。
1.Enterprise(企业版)2.Development(开发版)3.Workgroup(工作群版)4.Standard(标准版)5.Express.(简易版)。
本系统所使用的是Enterprise版本。
SQLServer2005的不同版本、可伸缩性、有效性、大型数据库的维护和商业智能(BusinessIntelligence,BI)。
SQLServer2005的优点:
首先是在管理方面的增强:
SQL2005将SQLServerEnterpriseManager集成到了VisualStudio2005里面,名称改为“SQLServerManagementStudio”,管理界面同VisualStudio2005合为一体体现了与系统开发较为密切的服务器程序共同的特性。
让程序设计师与数据库管理员只需要熟悉一个界面,就可以管理并测试所有相关的功能。
并在该工具新提供项目管理的能力,让你将用T-SQL、MDX、DMX、XML/A等语言编写的各Script文件可以通过项目,为相关的语句提供一致的编写、访问、执行、测试与有效的管理,而不像以往分散在各个目录结构中,需要程序设计师或数据库管理员自己想办法归类管理。
其次是大幅提升编程的能力:
在集成应用程序开发上,SQLServer2005最受人瞩目的当属集成.NETCLR引擎到SQLServer核心,让程序设计师可以通过自己所熟悉的.NET语言来开发SQLServer内的对象,扩展了程序编写的弹性。
另外,支持ANSISQL2003与W3C的XML标准,让关系式和XML两种最常用的数据处理格式都可以集中到数据库引擎来处理。
最后是完备的分析平台:
在SQLServer7.0时,微软首度将商业智能分析功能加入到数据库产品中。
历经了SQLServer2000版本,而新版将商业分析的功能发扬光大。
SQLServer2005IntegrationServices提供全新设计架构,而不再延续前版的DTS功能,提供工作流(WorkFlow)与数据流(DataFlow)分开的运行模式。
支持循环容器,让你可以轻易地在工作流程中设计ForLoop或ForEachLoop等商业逻辑。
以管线与临时数据结构重新设计数据转换的流程,这让数据处理的工作负担可以大幅落在SSIS所执行的机器上,以减轻数据库服务器在数据转换工作上的负荷;AnalysisServices集成了异质数据源,丰富的数据显示与浏览模型,高级的高速缓存,提供更完备的向导;DataMining集成了丰富的查看与测试