农产品价格采集、预测及微信发布系统的设计与实现*

2015-05-05 06:50
湘潭大学自然科学学报 2015年2期
关键词:客户端整体流程

王 磊

(潍坊学院 计算机工程学院,山东 潍坊 261061)

农产品价格采集、预测及微信发布系统的设计与实现*

王 磊*

(潍坊学院 计算机工程学院,山东 潍坊 261061)

针对农产品价格采集、分析和发布等一系列问题,采用了统一的面向服务的架构体系,通过先进的基于Restful的数据交互方法,实现了整体移动平台、后端服务平台和微信发布平台的统一性处理,同时将相关平台应用于潍坊市物价局农产品价相关业务,验证有关性能.在农产品采集、分析和发布系统中,将整体的农产品价格采集规约成价格采集任务,从而通过一体化的架构设计,实现了任务的定义、收集、审核和发布.

微信公众平台;农产品价格采集;Restful;价格走势分析

农产品供应安全及价格稳定关系到民生状况,同时也影响农产品的种植和普通居民的生活消费.近年来,由于信息不对称等原因,导致了部分蔬菜农产品滞销、腐烂、价格波动和暴涨暴跌等现象,逐步成为社会、政府各级管理机构和科研单位关注的焦点[1].同时,农产品等相关消费品的价格关系到居民生活消费指数CPI,因此,政府对农产品等相关消费品的价格采集、监控和预测出台了多项文件.通过对农产品包括蔬菜、粮食等主要生活消费品的市场价格监控,开展农产品价格的采集、预测和预警等方面的研究,将有利于政府监管部门完成对相关农产品价格的宏观调控和决策.农产品价格采集、预测和发布也有利于广大农民进行农产品生产种植的合理规划和布局,从而在某种程度上减轻农产品价格大幅波动所带来的收入下降、居民生活压力增大等相关负面影响.

近年来,针对农产品价格采集、预测和预警分析的研究日益增多,在文献[2]中作者对国内农产品的整体监测和预警研究状况进行了分析和综述,包括了粮食安全、蔬菜价格、生猪价格等相关数据监测研究.赵平安和董晓霞[3,4]针对农产品短期价格预测提出了基于指数平滑、差分自回归移动平均的预测方法,同时在文献[3]中,作者针对短期农产品价格的预测提出了整体的架构设计方案.基于Web智能价格预测分析[5],从价格数据的获取方法方面,提出了基于网络数据爬取的方法,展示了通过网络智能分析方法针对价格分析预测进行一体化设计的方法.针对农产品价格预测问题,在文献[6,7]中作者分别提出了通过K线分析和RBF神经网络预测的价格分析方法,对整体蔬菜价格的走势进行了研究和预测.在上述的研究体系中,主要是针对农产品价格体系中的某个环节进行研究,没有建立起有效的体系将农产品数据的采集、分析预测和信息发布等各个环节串联起来.在文献[3]中,作者提出了完善的数据分析应用系统,但是其体系结构中忽视了信息发布环节.伴随着移动智能手机的广泛应用,如何有效地利用智能手机、微信等相关功能实现信息发布、采集已经成为计算机领域的重要研究课题.文献[10]中,作者针对移动应用和传统应用的集成提出了基于REST(Representational State Transfer,即表述性状态转移)风格的移动智能数据互动架构设计.

本文针对农产品价格采集、分析和发布等一系列问题,采用了统一的面向服务的架构体系,通过先进的基于REST的数据交互方法,实现了整体移动平台、后端服务平台和微信发布平台的统一性处理,同时将相关平台付诸实用,进行验证.系统的整体架构设计,采用了基于Spring MVC的J2EE架构体系和框架,通过REST实现整体的面向服务的架构体系,在数据可视展现方面通过Echarts等相关可视化组件实现了数据可视分析和展现.在数据采集和数据发布方面,系统有效结合了针对移动智能手机和微信信息门户的二次开发技术,实现了整体系统信息数据的可移动处理.

1 系统总体设计

整体系统的设计实现过程中,有效地结合和考虑了面向移动、面向微信接口和面向服务的整体架构设计,将整体的业务逻辑处理通过面向服务的架构进行业务封装,有效地提高了整体系统设计的可扩展性和可重用性.如图1所示,给出了整体系统架构设计的框图.

整体的系统架构设计被划分为包括移动客户端、微信客户端和Web页面客户端在内的客户应用层、REST风格的服务封装层、基于工作流引擎的业务逻辑层、数据持久化层.整体系统的架构设计有效结合了面向服务和MVC(Model-View-Control) 的分层架构思想,各个软件分层的逻辑如下所述.

a.客户端层

近年来,伴随着移动智能手机的广泛普及,为了提高整体系统应用的随时性和方便性,越来越多的应用系统将相应的审核审批等功能在移动客户端实现.在本文所述的农产品价格采集、分析和发布系统中,通过面向服务的架构有效地集成了包括Web应用客户端、微信应用客户端和移动Android客户端.其中,Web信息客户端为内部系统管理提供了方便的操作方式,Android移动客户端方便了相应工作人员在出差时对业务办理的需求,微信客户端为整体价格的公示提供了高效的推广平台.各种不同的客户服务端通过统一的基于Json数据格式的数据交互方式,从而有效地减少了服务封装层的复杂度.

b.服务封装层

在整体系统的架构中,为了实现不同客户端针对相同业务处理的统一性,系统通过REST风格的Open API为不同类型的客户端提供了统一业务请求和处理接口,使得不同的客户端能够通过相应的解析和处理将请求转交到下一层业务逻辑层的相应业务逻辑方法进行处理.通过REST风格的处理方式有效地降低了整体系统开发的成本,使得业务逻辑端开发与客户端开发分离,提高了整体应用开发效率.

c.业务逻辑处理层

业务逻辑处理层,将服务封装层转交的请求进行相应的分析处理后返回相应的数据处理结果,然后通过客户端进行展示.在整体的业务逻辑层,系统采用了Spring框架进行业务处理类和数据对象类的管理,同时有效地结合Spring中的MVC框架对请求进行了统一分层跳转,提高了整体系统的可复用性和可扩展性.为了适应系统中不同格式数据处理的需求,业务逻辑层包括了基于Hibernate的数据库数据处理组件、基于JDOM的XML数据处理组件和文件处理组件,从而提高了整体数据处理的效率.

d.数据持久化层

在整体农产品价格采集、预测及发布系统中,数据存储方式主要包括了传统的数据库数据存储、XML数据存储和Office文件存储等多种文件存储方式.数据库存储方式主要用来进行相应的农产品价格数据、采集点数据等相关业务权限等数据,XML存储方式主要用来存储采集任务的商品模板数据,文件存储方式主要用来存储各个数据采集任务上报的各类报告附件数据.

2 价格采集、预测和预警监控功能分析

依据整体系统业务处理的核心需求、流程关联性和业务协作关系,结合架构设计对业务功能的要求,将整体系统划分为价格采集任务定义管理、价格采集管理、价格预警分析管理、价格数据可视分析和基于微信的价格数据发布管理等核心功能模块,以及相应的基础数据维护、预警参数管理和系统权限管理等辅助功能模块.

2.1 价格采集任务定义

针对农产品价格采集任务,其核心业务逻辑是各种农产品价格的上报、审核和统计分析,其特点在于采集任务的可定义性和可配置性.采集任务所包含的主要信息包括任务名称、任务周期、任务特征、任务采集农产品数据集合、数据采集点集合和任务处理流程等核心属性信息.

上述任务信息的描述和定义主要是采集农产品集合和任务处理流程的定义描述.因此,本文针对采集农产品集合的定义和描述,主要采用基于内容模板的描述方法,通过XML描述包括采集内容名称、采集属性列表、采集商品列表等描述信息.通过定义的上述采集农作物描述,实现了任务定义的灵活性和可配置性.针对采集任务处理流程,其相应的流程具有一定的差异性,本文所述系统采用了内置的工作流引擎对任务处理流程进行定义和描述,实现了可配置的任务采集处理流程.

2.2 基于流程逻辑处理的价格采集

针对整体任务的处理流程,系统采用了基于工作流描述的方法进行任务采集的处理和审批.结合系统业务处理过程,对业务的整体处理流程进行了流程描述的定义和配置,将不同的业务处理流程进行了基于工作流标准的流程描述语言描述.通过可定义流程描述,将流程规约为流程基本信息定义和流程步骤等相关可描述性信息.同时,在具体任务实例上报后,通过流程运行实例对相应的流程处理数据进行存储,包括了流程处理意见和流程处理日志等相关信息.通过可定义的采集任务流程描述,实现了农产品信息采集任务的可跟踪性和整体的灵活性.

2.3 基于统计分析的价格预警

现有的各类农产品价格监测系统,在农产品价格长期趋势分析方面,缺少有力的分析工具和可视化展现方法,同时不能够实现多周期的产品价格趋势、形态分析跟踪,从而导致在农产品价格预警方面功能较弱.本文有效地结合了已有3年内数据的季节、时效和产品分类指标体系的统计规律,对农产品提报价格进行预警分析.在预警处理过程中,主要包括提报预警和审核预警两阶段的预警体系,通过提报预警有效地减少了提报点对数据的误操作性,审核预警则是有效地实现了当前采集任务中异常价格信息的预警和可视化展现.

2.4 任务一体化的微信价格数据发布

传统的微信发布系统主要采用了订阅号形式,只是简单的信息发布处理,没有有效地将企事业单位的内部信息管理系统进行整合.而农产品价格信息的采集和处理分析系统,缺少有效地价格数据发布功能.本文在整体系统架构方面,通过基于REST的服务集成方式,在价格采集分析处理系统中有效地整合了微信系统,将需要发布的农产品等价格信息定义成具体的采集任务,通过一体化的采集、发布处理流程实现了农产品业务数据的微信接口发布.

3 面向Restful接口的数据发布设计

通过上文所述内容分析,农产品价格采集、预测及分布系统面向的客户端包括了智能手机端、微信客户端和传统的Web客户端,不同客户端的通信、处理业务要求一致,因此在整体架构设计方面采用了面向服务的架构.传统的Web服务体系架构,采用了SOAP协议对数据业务处理服务进行了封装[8,9],同时通过WSDL进行服务描述,而HTTP协议只是用来进行数据的传输.传统的服务架构体系实现复杂,往往一个URI服务包含多个方法,每个方法调用参数类型都不一致,从而导致编程过程复杂.

本文针对传统Web服务的上述缺点,采用了基于REST风格的Web服务,通过统一的HTTP进行通信和操作.REST通过传统的HTTP、URI标准及XML语言构建起轻量级的Web服务体系,将相应的数据操作等定义为资源操作方式. 在基于REST风格的设计过程中,首先需要依据需求定义系统所需要提供的数据集,也就是系统整体的服务类.

表1 价格采集、预测发布系统服务类

整体REST资源设计和命名方法主要通过URI实现[10],同时它能够体现整体资源的请求地址.每一类URI中又通过相应的请求头类型被划分为CRUD(Create, Retrieve,Update,Delete)四种不同的方法,实现对相应资源的具体操作.其中,Create方法对应的请求头为HTTP中的POST请求,Retrieve方法对应请求头为HTTP中的GET请求,Update方法对应着请求头中的PUT请求,Delete方法对应着请求头为HTTP中的DELETE请求.本文按照上述的分类模块和REST资源的URI描述方法,将整体服务进行了划分,包括任务处理服务、价格采集服务、价格预警服务和价格发布服务.整体服务处理过程中,信息请求和资源传输的格式有多种形式,包括了XML、JSON、ATOM等.由于JSON格式描述形式简洁,属于纯文本格式,能够有效地降低网络数据传输负载.同时,JSON数据的组织结构采用了层次结构,每一层次对应相应的数据,最内层表示为具体的数据属性.

4 系统实现

农产品价格采集、预测及信息发布系统采用了REST风格的面向服务架构,通过基于Spring MVC的J2EE分层结构实现了整体系统数据展现、业务逻辑控制和业务逻辑处理模块的分离.整体系统的客户端,支持包括传统Web页面、微信客户端和智能手机客户端在内的多种方式,同时客户端与服务端的通信采用了基于Json格式的REST风格服务模式,有效地提高整体系统的可扩展性和可重用性.在数据展现过程中,系统有效地集成了EasyUI图形、图表显示控件,实现了包括价格走势、价格分析数据的可视化展现.

整体系统所实现的业务功能包括了采集任务定义、农产品价格采集、农产品价格预警和农产品价格趋势分析、农产品价格发布等相关业务功能模块.整体业务处理过程中,采用了基于工作流描述和价格内容模板的描述方法,有效地提高了系统在业务方面的可定义和可扩展性.系统的任务定义包括了任务基础信息、任务商品列表信息、任务采集点信息和任务流程描述等相关信息.同时,在任务处理流程过程中采用了基于工作流的描述方法,实现了整体任务处理流程的可描述性,提高了任务处理的灵活性.通过可定义的业务处理流程和基于JavaScript的可视化组件,系统可实现针对价格采集任务处理结果的可跟踪性,同时能够对农产品的价格走势进行有效地可视分析展现.在整体任务跟踪和可视分析的过程中,本文有效地结合了交互式降维方法,将任务、采集点、农产品三种维度数据分别通过交互进行了减少维度后的可视化展现.图2给出了系统中的各类采集任务跟踪分析结果.

针对图2中的相关信息,其信息展示内容包括采集任务中的任务、任务周期、采集点、农产品数据等多维信息.传统的展现方式无法有效地对其进行展现,系统实现过程中有效地结合基于交互式减维方法,对不同的数据进行了钻取展现.如图3所示,系统对相应的各个采集点不同产品的价格时间走势进行了展现;图4给出了某种商品不同采集点的价格走势分析展现.

价格数据的发布处理方面,系统有效地整合了包括智能移动端和微信发布的功能.将需要发布的农产品价格信息通过微信进行发布,同时整体的价格发布信息通过特定的农产品价格采集任务经过价格数据上报、审核和微信发布一系列处理后在微信平台进行展示,实现了采集、处理分析和发布的一体化.图5中,分别给出了整体微信平台的功能界面和价格信息微信发布结果.

5 总结与展望

针对农产品价格采集、分析和发布等一系列问题,采用了统一的面向服务的架构体系,通过先进的基于REST的数据交互方法,实现了整体移动平台、后端服务平台和微信发布平台的统一性处理,同时在潍坊市物价局农产品价格业务中将相关平台付诸实用进行验证.在下一步的工作中,将整合近几年的价格数据,对整体的农产品价格进行数据挖掘和时序数据的价格预测.

[1] 赵安平,赵友森,王川.北京市蔬菜价格波动的影响因素和评估及政策建议[J].农业现代化研究,2012,33(5):598-602.

[2] 董晓霞,李干琼,刘自杰.农产品市场价格短期预测方法的选择及应用[J].山东农业科学,2010(1):109-113.

[3] 郑素芳,郑业鲁,林伟君,等. 我国农产品市场监测预警研究综述[J].广东农业科学,2012,23:228-231.

[4] 王桂红,杨 勇,吴华瑞,等. 农产品市场价格Web信息智能分析方法[J]. 沈阳农业大学学报,2013,44(3):284-288.

[5] 赵安平,王晓东,肖金科,等. 农产品价格短期预测系统设计与实现[J].农业网络信息,2014(4):5-10.

[6] 周超,林中,李丹. K线分析法及其在蔬菜价格预警系统中的应用[J].湖南农业科学,2013(11):105-107.

[7] 孙素芬,罗长寿. 基于RBF神经网络的蔬菜价格预报研究[J].中国农学通报,2011,27(28):269-273.

[8] 郎炯,刘宴兵,熊仕勇. 基于SOA软件架构的数据集成方法[J].计算机应用,2010(09):2 371-2 373.

[9] PANG X W, QI D Y, LI Y J. FEISI: towards enterprise information semantic integration[C]// Proceedings of the 2006 IEEE Asia-Pacific Conference on Services Computing,2006:481-485.

[10] DANIEL S,DANIEL P,JOCHEN S. REST-based meta web services in mobile application frameworks[C]// The Fourth International Conference on Mobile Ubiquitous Computing, Systems, Services and Technologies (UBICOMM2010),2010:170-175.

责任编辑:龙顺潮

Design and Implementation of a Price Acquiring-Forecasting-Disseminating System for Agricultural Products

WANGLei*

(School of Computer Science and Engineer, Weifang University, Weifang 261061 China)

The problem of acquiring,analyzing and disseminating agricultural products has a significant impact on our daily life. Aiming at agricultural products' price acquiring-forecasting-disseminating problem, we implemented the unified processing operation of the overall mobile platform, back-end server platform and the WebChat disseminating platform; and this unified operation was based on the unified service-oriented architecture and the Restful data switching method. The aforementioned platforms were applied to agricultural product price transactions of Weifang Price Bureau and their effectiveness were validated. In our system, the agricultural product price acquisition was defined as tasks. Though the execution of tasks, we achieved the integration of agricultural product price acquiring, analyzing,and disseminating.

WebChat public platform; agricultural product price acquiring; Restful; price trend analysis

2014-10-22

山东省教育厅科技、社科计划项目(13LN82)

王磊(1982— ),男,山东 淄博人,博士研究生,讲师.E-mail:wanglandpqpq@hotmail.com

TP393.09

A

1000-5900(2015)02-0121-06

猜你喜欢
客户端整体流程
吃水果有套“清洗流程”
歌曲写作的整体构思及创新路径分析
如何看待传统媒体新闻客户端的“断舍离”?
关注整体化繁为简
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
违反流程 致命误判
设而不求整体代换
四川省高考志愿填报流程简图