关键词:
近年来, 我国柑橘生产持续发展, 种植面积不断扩大、产量连年增长。自2007年起, 无论栽培面积, 还是总产量, 我国都超过巴西, 成为柑橘第一生产大国。然而, 我国柑橘平均667 m2产量较低, 产量最高的2012年也只有915.7 kg, 而同期世界平均水平931.57 kg, 巴西1591.85 kg, 美国2167.12 kg[1]。经调查分析发现, 我国柑橘单产低的主要原因在于生产管理技术相对落后、新技术和成果推广应用率低。为了更好地给果农和植保工作者提供技术信息服务, 帮助果农增产增收, 本研究设计并实现了一套柑橘栽培管理信息服务平台, 利用计算机网络技术和计算机软件技术, 拓展柑橘生产管理技术和科研成果推广途径, 通过收集和发布柑橘栽培管理技术和最新研究成果, 促进新技术、新成果应用率提高。
1 功能分析
信息平台的主要功能是柑橘栽培管理信息的采集和展示。信息展示部分为果农和技术员提供服务, 有2种展示模式, 一种是电子公告式, 分专栏发布柑橘栽培管理信息;一种是智能在线咨询方式, 通过详细分类和模糊查询技术, 模拟实现机器人在线应答。信息采集由信息采集员和平台管理员完成, 采集员收集、整理、录入、编辑和发布信息, 平台管理员负责栏目管理、分类管理、无效信息清理等工作。平台具体要实现的功能模块如图1所示。
用户管理模块实现信息平台中用户的添加、编辑、查看和删除。权限分为:系统管理、信息录入、信息编辑、信息发布。权限管理模块实现权限的维护、分配和收回。根据使用信息平台的情况, 用户可使用系统管理员、采集员和发布员3种角色中的1种。信息管理包括录入收集的信息到平台中、修改或删除错误信息、发布信息。日志管理记录用户登录的时间、IP地址、运行中的异常等信息, 提供日志查看和清除功能。栏目管理设定信息平台中的栏目, 在添加或发布技术信息时必须选择一个或多个栏目, 以决定在网页中那个板块展示。附件管理主要对信息中包含的图片、Excel表格、Word文档、PPT演示文稿、压缩包等附件进行统一管理。在添加信息时通过上传功能将附件传送到服务器, 根据上传时的年份和月份统一组织管理。视频管理主要实现视频信息的添加、编辑、在线播放、删除等功能。分类字典管理使用字典的方式统一管理和维护各种分类, 包括:品种类型、生育期、成熟期、树龄、树型、树势、修剪时期等。通过对信息进行详细的分类, 在线应答模块模拟实现机器人在线交互功能。用户输入关键词, 在线应答模块使用模糊查询功能找出可能匹配的信息供用户选择。在线应答功能的工作流程如图2所示。
2 架构设计
软件分层已经成为一种普遍应用的软件架构设计方法, 其本质是采取分治的策略, 将系统关注点分离到相互独立的层中, 各层之间通过协作完成整体功能[2]。对系统分层可降低模块间耦合度, 增加代码可复用性, 提高系统可扩展性和可移植性, 有利于标准化, 使系统更易维护。
MVC模型是一种典型的分层架构设计模型, 将系统分成3层:与用户交互的V (视图) 层、数据处理的M (模型) 层和控制业务执行的C (控制) 层。在实际开发中, 会根据需要参照MVC模型做扩展和细化, 增加一些层次。
信息平台在设计时也采用了分层的架构设计思想。其系统架构共分为5层:表示层、业务逻辑层、Web服务层、数据访问层和数据管理层, 如图3所示。
数据管理层由SQL Server、Oracle、My SQL等数据库管理系统组成, 负责对数据进行存储和管理。
数据访问层提供:连接数据库、添加数据、检查数据是否存在、取数据、修改数据、删除数据和关闭连接功能。
We b服务层调用数据访问层的接口, 应用We b Service技术为上层服务。Web Service是一种平台独立的、分布式的、松耦合的、自包含的、可重用的、基于可编程的软件组件, 它封装各个独立功能, 通过采用WSDL、UDDI和SOAP等基于XML的标准和协议, 解决异构分布式计算以及代码与数据重用等问题, 具有高度互操作性、跨平台性和松耦合的特点[3]。信息平台的Web服务层只提供对数据的增、删、改、查等基本数据操作服务。不同系统间可以共享数据, 而业务逻辑和与用户交互的表示层会根据其主要目标有很大区别, 因此将Web服务层放在第三层, 这样可以重用数据访问层组件, 共享数据。
图3中虚线部分是2个外部系统, 一个是基于物联网的柑橘生长环境监测系统, 另一个是基于3G的专家在线支持系统。这2个系统通过调用Web服务层的服务接口, 可与数据管理层交互, 从而共享数据。
由于Web Service采用基于XML的标准和协议, 当需要开发新的应用系统时, 可使用习惯的或当前流行的语言进行开发, 而不必考虑现有系统基于的语言, 只要符合Web Service的标准, 不论使用Java、C#还是其它语言, 都可以调用Web服务层的服务。
3 设计模式应用
设计模式用在软件系统设计中来解决一些重复发生的问题, 由此增强软件的可复用性、可维护性、可理解性、可演化性和健壮性[4]。在基于.NET的柑橘栽培管理信息平台中, 设计模式主要应用于数据访问层、业务逻辑层和表示层设计。
3.1 表示层设计模式应用
表示层是最接近用户的一层, 是系统与用户交互的门户。信息平台向用户展示的信息包括:柑橘育苗、嫁接、培土、施肥、修剪、病虫害防治等多方面。这些信息所包含的具体内容各不相同, 但从软件设计者的角度, 这些信息在展示时, 有相似的结构。为使表示层有统一的展示风格, 使用模板模式设计和实现。图4给出了模板模式应用类图。
图4中Base Page类是所有Web页面的基类, 它继承了.NET Framework中的System.Web.UI.Page类, 包含着ASP.NET Web页面基础的属性、事件及操作。其Get Sys Config方法从XML配置文件中读取信息平台的配置信息, 并填充在Sys Config属性中供所有子类使用。所有Web页面的整体框架由Templates类的Init Frame方法生成。Templates类依据模板类型读取相应html模板。所有Web页面共有的头部、导航菜单和底部的版权等信息由Templates类统一填充和生成。首页里的栏目、图片轮播、走马灯等由Index类创建。栏目内信息的列表展示和分页功能由List类实现。信息内容展示页面的标题、作者、来源、发布时间、点击率、内容等信息, 由Article类填充。
3.2 业务逻辑层设计模式应用
在首页中, 生成栏目只需直接调用Web服务层从数据库中取栏目信息, 不必做特殊业务处理;而生成图片轮播、走马灯等效果时, 为使图片和文章或视频关联起来, 除从数据库取信息内容外, 还要取图片附件信息;若是视频, 因为视频在一台单独的服务器上供政府农业部门门户网站、农业专题网站、科研项目应用平台共享使用, 还要根据视频存放路径和视频名称生成URL, 这时就要执行一些特殊的业务规则。类似需要执行特殊业务规则的情况, 在List生成信息列表和分页处理时, 在Article插入附件图片到信息内容时, 在页面加载视频时都会存在。如果不加以区分, 将所有的业务放在一起, 会使业务层非常复杂, 业务流程混乱, 不利于维护。为此, 在业务逻辑层使用外观模式设计和实现。
如图5所示, 业务执行由BL_Facade类进行分流。直接读写数据库的业务由BL_Facade调用Web Service完成, 执行特殊逻辑处理的业务由BL_Facade调用相应业务规则类, 再由业务规则类调用Web Service访问数据库。这样, 可有效控制业务执行, 使应用结构清晰、流程规范、易于维护。
3.3 数据访问层设计模式应用
关系型数据库管理系统被普遍应用于管理信息系统中集中管理数据。目前关系型数据库管理系统产品主要有:Oracle、MSSQLServer、Sybase、DB2、My SQL等, 这些产品由不同的厂商提供, 虽然各厂商都声称支持标准的SQL语言, 但提供的API却各不相同。柑橘栽培管理信息平台使用的是SQL Server2012, 但考虑到日后系统移植和升级, 同时也支持对Oracle、My SQL、DB2等其它数据库的访问。提供多种数据库访问的功能, 是通过在数据访问层应用抽象工厂模式实现的。抽象工厂模式的意图是:提供一个创建一系列相关或相互依赖对象的接口, 而无需指定其具体的类[5]。图6给出了抽象工厂模式在数据访问层的应用类图。
4 验证结果分析
目前, “基于.NET的柑橘栽培管理信息平台”已经通过试运行, 进入正式运行使用阶段。在试运行过程中, 对平台应实现的功能、可扩展性、可移植性、可复用性进行了验证分析。
4.1 平台功能验证分析
信息平台应用基于.NET的Web技术开发实现, 部署运行于Web服务器上。采集员可随时随地通过互联网进行信息采集、录入和编辑。发布员对信息审查后将状态改为发布即完成信息发布。果农可通过品种优选、果园建设、柑橘育苗、培土施肥、嫁接、修剪、病虫害防治、保花保果、贮藏加工、采后管理、科研成果、科技视频等栏目快速找到所需信息。
验证结果表明, 该平台实现了所需功能, 能够及时发布柑橘栽培管理相关技术信息, 并以统一的界面风格展示给用户, 操作简单, 易于使用, 拓展了技术和科研成果推广途径, 提高了新技术、新成果应用率, 能够帮助柑橘果农增产增收。
4.2 可扩展性和可复用性验证分析
为了帮助果农和植保工作者实时获取栽培地风速、风向、雨量、土壤温度、土壤p H值、土壤水分等柑橘生长环境数据信息, 以便及时做好保花、保果、施肥、灌溉等工作, 在试运行阶段, 为平台添加了与柑橘生长环境物联网监测系统进行数据交互的组件和观测点实时生长环境信息栏目, 同时对平台可扩展性和可复用性做了验证。由于DBAccess类中的方法大多都直接以SQL语句字符串为参数, 只添加一个用于指定柑橘生长环境物联网监测系统数据库的配置文件, 就复用了数据访问层代码, 实现了从监测系统数据库读取数据。添加的观测点实时生长环境信息栏目, 以列表形式展示观测点数据信息。因为要根据设定的数据采集周期进行实时更新, 为避免页面不停刷新, 开发时增加了Env Info List类, 该类继承List类并使用了JQuery, 使该栏目与其他栏目保持统一风格。
验证结果表明, 平台具有良好的可扩展性, 实现了代码级复用, 达到了设计目标。
4.3 可移植性验证分析
试运行期间, 对平台可移植性进行了验证。依次在服务器上安装了Oracle express 11g、My SQL Community Server 5.6、DB2 Express-C三种数据库, 将数据分别导入三种数据库中, 修改配置文件后测试运行。结果表明, 平台具有很好的可移植性, 除了能够在SQLServer数据库上正常运行, 还可以在上述数据库上正常运行。
5 结束语
本文论述了基于.Net的柑橘栽培管理信息平台的设计开发, 应用分层思想设计软件架构, 为了便于与其他柑橘软件系统集成和复用数据访问组件, 引入Web服务层, 使用Web Service技术提供外部接口。另外, 通过应用软件设计模式中的模板模式、外观模式和抽象工厂模式, 结合分层的软件架构提高平台可扩展性、可维护性、可复用性和可移植性。经过组织用户试用、添加“观测点实时生长环境信息”栏目、开发物联网监测系统数据交互组件和跨数据库移植等验证, 结果表明开发的信息平台达到了设计目标。希望通过本文的论述为农业信息化软件和其他类似平台的设计开发提供借鉴。
摘要:我国柑橘种植面积和总产量位居全球第一, 但因生产管理技术相对落后、新技术和成果推广率低等导致平均667 m2产量低于世界平均水平。为了更好地给果农和植保工作者提供技术信息服务, 帮助果农增产增收, 研究开发了基于.NET的B/S架构的柑橘栽培管理信息平台。该应用软件在设计时, 分析信息平台功能, 设计分层架构模型, 降低耦合度;运用Web Service技术, 提高可扩展性, 提供系统间通信接口;应用软件设计模式, 提高可复用性和可移植性。验证结果表明, 信息平台达到了设计目标, 使用方便, 易于维护, 能够为柑橘栽培管理提供大量、有效的技术信息。
关键词:.NET,Web Service,设计模式,分层架构,柑橘,栽培管理信息
参考文献
[1] 沈兆敏.2012年我国柑橘生产现状浅析及持续发展对策[J].果农之友, 2013, (10) :38-41.
[2] 陈莹莹.基于.NET平台的分层架构与设计模式应用研究[D].成都:电子科技大学计算机科学与工程学院, 2011.
[3] 胡扬波.基于多目标优化的Web服务组合研究[D].长沙:中南大学信息科学与工程学院, 2009.
[4] Rasool G, Mader P.Flexible Design Pattern Detection Based on Feature Types[C]//26th IEEE/ACM International Conference on Automated Software Engineering (ASE) .2011:243-252.
[5] Bishop J.Design Pattern[M].Sebastopol:O’Reilly Media, Inc., 2007.
相关文章:
在ASP/ASP.net架构下实现对访问者基于IP地址的访问控制01-22
关于学习的策划书01-22
关于学习的成语范文01-22
善于学习勇于创新01-22
关于孩子学习能力的文章:学习是一种能力01-22
关于学习的诗歌范文01-22
关于学习好高中政治的学习方法01-22
要善于网上学习01-22