基于Ajax的农产品信息平台的设计与实现

2012-09-12 00:55袁文卓侯艳君
湖北农业科学 2012年16期

袁文卓 侯艳君

摘要:鉴于农民因信息不对称导致农产品购销渠道不畅,设计开发了一种基于Ajax(Asynchronous JavaScript and XML)的多层体系结构的简单、高效的农产品信息服务平台系统。系统采用异步通信方式实现无刷新下动态页面局部数据更新;提供基于实例的信息发布方式;通过自动查询和嵌入手机短信实现信息的配对,从而使系统具有易用性、高效性、便捷性,利于平台的使用推广。

关键词:农产品信息平台;Ajax(Asynchronous JavaScript and XML);多层体系结构;异步通信

中图分类号:TP393;S126文献标识码:A文章编号:0439-8114(2012)16-3619-03

Designation and Implementation of Agricultural Products Information Platform

Based on Ajax

YUAN Wen-zhuo1,HOU Yan-jun2

(1. Henan Provincial Commerce Department, Zhengzhou 450003,China;

2. North China Institute of Water Conservancy and Hydroelectric Power, Zhengzhou 450011,China)

Abstract: In view of the blocked agricultural marketing channels caused by asymmetry information, a simple and efficient information service platform about agricultural products was designed using multi-tier architectures based on Ajax. The system adopted the asynchronous communication to realize updating of local data without refreshing in dynamic pages. The information issued way based on instance was provided. The matching information was realized by means of automatically querying and embedded short message service. Thereby the platform was easy, efficient and convenient to be used in countryside.

Key words: information platform about agricultural products; Ajax; multi-tier architecture; asynchronous communication

中国是一个传统的农业大国,如何解决好农产品购销,促进农民增产增收,繁荣农村经济,有效缓解农产品买难卖难问题至关重要。随着经济技术的飞速发展,信息化已成为全球经济社会发展的显著特征,电子商务是一种网络化的新型经济活动,正在逐步取代传统的商务活动,成为新的商贸活动手段。便捷高效地开展农产品电子商务已是解决以上诸多问题的有效途径。

目前在中国开展农村电子商务的基本条件已经完全具备。“十一五”期间,中国已全面实现了“村村通电话、乡乡能上网”的农村通信发展规划目标,全国近50%乡镇建成乡镇信息服务站和县、乡、村三级信息服务体系,农村信息化水平得到整体提升[1]。据中国互联网络信息中心统计,截至2011年6月底,中国农村网民规模为1.31亿[2]。农民的整体文化素质及信息化应用水平已经全面提高,满足农产品信息平台应用要求。但现运行的农村电子商务网站大多存在内容多而不精、操作程序繁琐、利用率低等弊病。

鉴于接受服务的对象为广大农民,研究旨在设计一种符合农村发展现状及农民应用水平的简单、便利、高效的农产品信息服务平台,以使农民、农产品专业合作社及农产品收购商、农产品需求者等可以根据环境特点与自身条件,灵活选择通过计算机、手机或固定电话进行农产品供求信息的发布、查询及交易,系统通过自动配对实现产品对接。该平台具有友好的人机交互界面、简单的操作流程和便捷的数据维护方式。

1基于Ajax的多层体系结构

Ajax(Asynchronous JavaScript and XML)技术[3-5]最早于2005年2月由Adaptive Path公司的Garrett提出。Ajax是一种交互式的网页开发技术,其实并不是全新的技术,而是JavaScript、XMLHttpRequest、DOM、XML、XHTML及CSS等技术的综合。在Ajax中,JavaScript是主体,用于将XHTML、DOM和XML等绑定,XMLHttpRequest是核心,用于实现与服务器的异步通信,一旦数据返回到客户端就可以立刻使用DOM实现动态显示和交互,XML用于请求数据和响应数据的封装,使用XHTML和CSS标准化呈现Ajax界面。由于Ajax技术的主要方式是通过异步JavaScript实现XML客户端脚本与Web服务器数据的交换,通过这种方式实现Web页面不用打断交互过程,动态地更新页面局部数据。

Ajax技术的关键是在服务器层和客户层之间添加了一个中间层,用以实现数据的异步访问。客户端可向服务器端发送多个请求,Web页面不用刷新就能实现数据的动态实时更新。基于Ajax的多层体系结构[6-8]如图1所示。Ajax技术引发的异步通信改善了动态事件响应机制,极大地提高了用户体验效果,弥补了B/S架构的不足[9]。

2系统的详细设计

2.1功能模块的划分

农产品信息平台分为系统管理模块、农产品供求信息模块、综合查询模块、农产品交易模块、咨询服务模块、农产品价格预测模块及帮助模块7个功能模块。系统管理模块包括用户管理、权限管理及数据的维护。农产品供求信息模块是主要模块,完成用户供求信息发布、查询以及供求信息对接。为了使信息发布更快捷,同时考虑到农民首次使用的困难,信息发布采用基于实例的模式,可在实例的基础上作更改。综合查询模块提供站内的综合信息查询,支持模糊和准确查询。农产品交易模块提供交易平台。咨询服务模块包括咨询和服务两部分。咨询包括在线咨询和留言;服务范围包括病虫害、土壤、政策、天气等信息公告及农技百科。农产品价格预测模块根据往年价格、种植面积的变化、天气、病虫害、物价等影响因素通过模糊层次分析法作出预测。此模块需要大量的数据,随着数据库的充实会逐步准确。帮助模块一方面提供系统应用帮助,另一方面用户可通过电话、短信等告知需求,由系统管理人员帮助其完成需求。

2.2供求信息的对接

供求信息的对接即供求配对,是用户通过综合查询模块根据自己的需求查询相关信息。不排除无查询的情况下直接发布需求信息,在这种情况下,提交信息时系统会自动查询相应配对信息并弹出告知,供求直接网上对接。为了使配对不成功的信息发布者及时得到新的信息,考虑有的用户不会一直关注网上信息,采用嵌入短信发布通知用户。

2.3数据库的设计

信息平台的关键是信息的收集、处理、对接和检索。信息的数据结构采用关系模型,用PowerDesigner软件完成数据库的设计后导入到SQL Server数据库中。在数据库的设计过程中,一方面考虑信息的完整性,另一方面要避免冗余、不一致的数据,避免不规则的插入、更新和删除。不规则的插入、更新和删除是数据操作的问题,但如果数据库设计合理就会避免此种错误的发生。设计时要遵循关系型数据库的规范化,即要满足第1范式(无重复的属性)、第2范式(非主属性,部分依赖于主码)和第3范式(属性不依赖于非主属性)。供求部分的数据库表相互关系如图2所示。为了避免无用数据长期占用资源,减少系统管理员的劳动量,在供应信息表和求购信息表中都设有有效期限,系统定期据此将无用数据删除。

3基于Ajax技术的系统实现

信息平台采用基于Ajax的多层体系结构,使用Java为主要开发语言,辅以HTML、CSS、JavaScript等标记、脚本语言,并采用SQL Server关系型数据库来实现。在数据校验、按需求获取级联菜单、多级下拉列表框、动态重载表单内容等方面采用了Ajax技术。

XMLHttpRequest对象是Ajax技术中一个最重要的对象,它可以实现发送和接收超文本传输协议 (Hypertext transfer protocol,HTTP)的请求与响应信息,从而实现客户端与服务器的异步通信功能。XMLHttpRequest对象最大的好处就是不刷新整个页面而只更新网页的部分内容。XMLHttpRequest对象的创建如下[10,11]:

var xmlHttpReq=false;

fuction creatXMLHttpRequest()

{if(window.XMLHttpRequest)//Mozilla/FireFox浏览器

{xmlHttpReq=new XMLHttpRequest();}

else if(window.ActiveXObject)//IE浏览器

{try{xmlHttpReq=new activeXObject

("Msxml2.XMLHTTP");}

catch(e){try{xmlHttpReq=new activeXObject("Microsoft.XMLHTTP");}

catch(e){ }}}}

创建对象后,就可以使用XMLHttpRequest对象的方法完成相应的操作,XMLHttpRequest对象的方法主要有abort()、Send()、Open()等。用Open()方法向服务器发出请求取得XML数据程序如下。

function sendRequest(url)//发送请求函数

{creatXMLHttpRequest()

xmlHttpReq.Open("GET",url,true);

xmlHttpReq.onreadystatechange= processResponse;//指定响应函数

xmlHttpReq.send(null);}

Onreadystatechange是XMLHttpRequest对象的属性之一,是状态改变的事件触发器,其属性还有readyState、responseText、responseXML、status、statusText。在异步方式下工作,需要设置异步的事件处理函数。即请求发出后,捕捉响应返回的属性并进行相应的处理。下面是用来检查MLHttpRequest文档是否已经解析完毕的processResponse()。

function processResponse()

{if(xmlHttpReq. readyState= =4& & xmlHttpReq.status= =200)//检查是否正确取得数据

{xmldoc=xmlHttpReq.responseXML;

doSth();//实现浏览器用户界面中的功能}

else{window.alert("页面有异常。")}}

4结语

研究采用基于Ajax的多层体系结构,使用Java为主要开发语言设计了一个面向农民、农产品专业合作社及农产品收购商、农产品需求者等的简单、实用、高效的农产品信息平台系统。信息发布时通过自动查询或嵌入短信实现了信息的配对,减少了购销信息对计算机网络的依赖。基于实例的信息发布方式提高了系统的易用性。在客户端和服务器间频繁传送少量数据时,使用Ajax引擎实现了异步数据通信,减少了不必要的网络开销,避免了频繁刷新页面和用户等待,提高了系统的即时响应性、交互性和执行效率,给予了用户更好的页面效果和感受。

参考文献:

[1] 中华人民共和国工业和信息化部电信管理局.“十一五”我国全面实现“村村通电话、乡乡能上网”[EB/OL].http://www.miit.gov.cn/n11293472/n11293832/n11293907/n11368223/13563594.html, 2011-01-06.

[2] 中国互联网络信息中心. CNNIC发布《第28次中国互联网络发展状况统计报告》[EB/OL]. http://www.cnnic.net.cn/dtygg/dtgg/201107/t20110719_22132.html,2011-07-19.

[3] GARRETT J J. Ajax:A new approach to web applications[EB/OL].http://www.adaptivepath.com/ideas/essays/archives/000385.php,2005-02-18.

[4] 王军号.Ajax与XML在二级联动列表菜单中的协同应用[J]. 实验室研究与探索,2010,29(5):75-78.

[5] 孟庆瑞,田兆锋,阎楚良. Ajax技术在农业装备信息网中的应用[J]. 农业机械学报,2008,39(12):132-135.

[6] 李健,黄晗文,刘芳,等.Ajax在Web中的应用研究[J].计算机与现代化,2009(7):84-87.

[7] 任毅,王平,龚亚丽,等. Ajax和Web服务在空间信息发布中的应用研究[J]. 计算机工程与设计,2009,30(11):2698-2701, 2717.

[8] 李娟,汪厚祥,焦志强,等.动态ERP系统中Ajax/SOA系统架构模型的构造[J].计算机应用与软件,2010,27(7):65-66.

[9] 翟彦博,杨桂丽,刘阳.基于B/S模式的仪器设备管理WEB系统的设计与功能实现[J].沈阳建筑大学学报(社会科学版),2008,10(3):298-301.

[10] 冯曼菲.精通Ajax:基础概念、核心技术与典型案例[M].北京:人民邮电出版社,2008.248-259.

[11] 张桂元,贾燕枫,姜波.征服Ajax——Web 2.0快速入门与项目实践(Java)[M].北京:人民邮电出版社,2006.156-182.