当前位置:论文网 > 论文宝库 > 信息科技类 > 软件开发论文 > 正文

研究基于构件和SOA技术的农业信息化应用开发平台

来源:UC论文网2016-01-19 20:19

摘要:

0 引言 农业信息化作为国家信息化战略的一部分,己成为实现农业生产经营现代化的重要途径[1]和解决三农问题的重要选择。为此,党和政府高度重视农业信息化建设,并将其作为一项

    0 引言

  农业信息化作为国家信息化战略的一部分,己成为实现农业生产经营现代化的重要途径[1]和解决“三农”问题的重要选择。为此,党和政府高度重视农业信息化建设,并将其作为一项重要基础设施加以建设。近几年来,我国农业信息化建设取得了较大的成绩,除了建成大型涉农数据库和农村信息化网络平台之外,出现了大量的农村信息化应用软件[2 -5],如农民专业合作社管理系统、农村财务管理系统、农产品网上交易系统,以及农产品追溯系统等。一系列软件的应用,有力地促进了我国农业信息化水平的提升。

  但是,我国农业信息化依然存在基础设施薄弱、信息资源共享程度不高、先进技术产业化程度不够、信息服务能力不强等问题,具体到农业信息化应用软件,主要表现为软件研发周期长、建设成本高、可复用资源不多和动态适应性差。为此,设计了农业信息化应用开发平台,以支持农村信息化应用软件的快速生成和有效部署。

  农业信息化应用开发平台基于构件和 SOA 技术,在 Java EE 框架下进行开发。该平台是一个基于构件、支持农业信息化应用软件配置生成的支撑环境,可为农业信息化应用软件的快速开发提供公共服务、构件库管理和使用工具。

  1 相关技术概述

  1. 1 构件技术

  构件的概念是为了解决软件危机而提出来的,它是可以被复用的软件实体[6],可以与第三方软件进行装配。构件主要由构件模型和构件实现组成。其中,构件模型是对构件的抽象描述,构件实现是指实现构件功能的程序。构件为软件开发提供了可复用资源,通过构件组装来构造新的软件,将软件开发由“从零开始”的传统模式转变为基于己有构件的集成组装过程[7],极大地提高了软件开发的质量和效率,同时显著降低了软件开发风险。

  构件由构件生产者提供,使用者只需要按照自身的业务需求,选择合适的构件进行组装,即可生成自己的软件。目前,构件技术已经得到学术界和企业界的广泛认同,并在实际中实施了有效的应用; 但依然存在缺乏足够的行业构件及可复用资源少的问题。因此,将构件库的建设作为农业信息化应用软件开发平台的核心。

  1. 2 SOA

  SOA[8]指面向服务的体系架构,它以服务为基础,以流程为核心,全面支持业务的快速变化,从而适应企业业务流程的变更。SOA 的核心包括面向构件、软件治理、流程管理和统一服务。其中,软件治理包括规划和政策、管理和监控、服务安全; 面向构件包括构件组装和容器、数据服务对象; 统一服务包括动态服务管理、可靠消息服务; 流程管理包括业务逻辑、页面流、工作流和业务流,如图 1 所示。通过引入 SOA 技术,农业信息化应用软开发平台可以容易地以构件装配的形式实现流程驱动下的农业信息化应用软件开发。

  1. 3 平台开发技术

  在众多基于 B/S 模式 Web 开发技术和框架中,选择 ExtJS、DWR、Spring 和 iBatis 技术框架进行平台的开发,后台数据库选择 Oracle.ExtJS 是一个与后台技术无关的 Ajax 框架,主要用于实现前端用户界面的创建,具有界面友好、功能丰富的特点。DWR 是一个用于改善 Web 页面与 Java 类交互的远程服务器端 Ajax框架,实现了浏览器通过 JavaScript 语言直接调用后台业务构件的功能。Spring 是一个开源框架,通过采用分层架构来解决企业应用程序开发的复杂性,实现应用程序的配置和依赖性规范与实际的应用程序代码分离,并支持面向方面的编程。iBatis 是一个基于 Java的持久层框架,主要完成数据持久化的功能,并为系统的设计提供更大的自由空间。

  2 平台的体系结构

  本文从农业信息化的实际需求出发,结合构件技术和 SOA 技术,提出了农业信息化应用软件开发平台的体系结构。该体系结构自下向上可分为资源层、基础框架层、构件层、服务层、流程层和应用层,如图 2所示。

  1) 资源层。该层提供平台所需的各种资源,包括数据库中的数据和其他应用系统提供的数据。平台在其上封装了一个统一数据接口,通过统一接口实现不同来源的数据统一处理,做到程序与数据源松耦合。

  2) 基础框架层。基础框架层使用 Java EE 中间件,提供各种最基础的公共服务,如命名服务、安全服务、通告服务等,并实现构件间的通信。

  3) 构件层。该层提供了大量的可复用资源,包括基础构件和业务构件。基础构件主要实现技术细节的复用,包括字符处理、菜单、日志、日期时间、输入域、列表、按钮、树、表格等构件; 业务构件实现平台较高粒度的复用,包括数据源访问构件、事务管理构件、权限构件、页面展示构件、消息构件、图形化构件、流程构件、查询构件、报表构件、流程生成构件和数据挖掘构件等。

  4) 服务层。服务层通过服务装配的方式,根据服务对象要求,在构件之上进行集成整合。其将功能单元封装成一个个独立的服务,将操作方式透明化,使用者只需要录入入口数据,就可通过其功能要求得到出口数据,且不需要了解具体实现细节; 通过服务的大量积累,逐渐形成功能强大、扩展性极强的服务中心。在服务层存在服务管理工具来实现服务注册与映射、服务查询和服务评估等功能。

  5) 流程层。在平台中,流程体系贯穿其中,无处不见,可包括页面流、页面逻辑流、业务逻辑流和工作流,通过流程配置和灵活的流转模式实现对业务化流程与规则的定制与调整的支持。平台将流程中分离的功能单元抽象成流程构件,在流程的设计中,只需要对流程构件进行拼装,即可快速完成对日常业务的流程模拟。平台的流程不仅支持顺序、分支、并发、循环、嵌套子流程、多路选择和多路归并等基本流程模式,还支持条件路由、自由流、回退、激活策略、完成策略、并行会签、串行会签、指派和多实例子流程等特殊流程模式。

  6) 应用层。该层又可称为工具层,其主要功能是提供农业信息化应用软件开发过程中需要使用的各种工具,并为用户提供良好的交互界面。用户可以使用该层的工具,快速进行农业信息化应用的开发。

  3 平台部分典型构件的设计

  3. 1 页面自动生成构件

  在基于 Web 的信息系统中,各个页面对数据的新增、修改、删除和保存处理模式基本一样。此时,若采用单个页面定制开发,则会浪费大量的时间,因此平台提供了页面自动生成构件。该构件接受用户输入数据表或数据源,并根据数据表或数据源信息自动生成该数据表的数据处理页面; 生成的数据处理页面能完成该数据表的增加、修改、删除和保存等功能。

  构件实现时,需要设计客户端的 Web 页面和服务器端的 Servlet 程序。其中,Web 页面接受用户输入的存放欲生成页面的路径、文件名、数据表名、页面标题和每页记录数等信息[9]; Servlet 程序接受客户端传递的相关参数,并根据这些参数处理数据表及相关的控制表,从而生成基于给定数据表的 Web 页面,其流程描述如图 3 所示。

  为了实现页面自动生成,需要设计两张数据表,分别为信息表和字段控制表,其结构如表 1 所示。

  3. 2 查询构件

  查询作为用户与信息系统交互的有效手段,是所有信息系统都要使用的功能,因此平台提供了一个查询构件。该构件遵循通用和开放的原则,用户可通过自己设置查询规则和查询条件,来实现任意复杂的查询。该构件构建在数据库基础之上,将数据库连接构件、SQL 构造构件、存储过程构件及数据处理( 生成视图) 构件整合到一起而形成。其工作流程分为动态选择数据表、动态选择字段、生成动态 SQL 语句、直接编辑 SQL 语句、保存 SQL 文本生成视图及查询模板、查询条件设定和查询结果格式控制等 7 个步骤,如图 41为了实现查询构件,需要设计查询模板表、查询模板数据字段表、查询模板静态条件表、查询模板动态条件表和查询模板用户类型表,各表结构如表 2 所示。

  3. 3 树形动态报表构件

  报表是信息系统的重要内容之一,但用户业务需求的多变性导致在信息系统开发中经常会出现用户无法确定自身对报表的具体要求的情况; 同时考虑到报表数据涉及多表之间的关联问题,以及数据表各字段之间存在的父子关系,因此平台提供了树形动态报表构件。

  基于前期研究成果[10],确定树形动态报表构件的实现流程为: 首先输入欲生成报表的相关信息,包括报表名称、报表数据的来源数据表和各数据表之间的连接关系; 随后确定树形报表的各个分支以及叶子节点,并定义审核公式和计算公式。定义计算公式的目的是在形成报表时能够获取对应数据表的数据,定义审核公式的目的是为了实现生成报表的合法性检查。

  最后,根据来源数据表的连接关系和输入的报表信息,确定报表结构,并生成该报表。

  为了实现树形动态报表构件,共设计了指标代码表、报表数据表、公式表、报表列表头表、报表表头结构表和报表结构定义表 6 张数据表。其中,指标代码表主要用来存放指标代码信息; 报表数据表主要用来存放报表任务中各指标代码的数据值及汇总数据值;公式表用于定义公式( 计算公式和审核公式) ; 报表列表头表用于定义报表的树状结构列表头; 报表表头结构表用于定义报表的表头和树状结构的定义; 报表结构定义表用于定义报表的结构,及其包含的指标及此指标在报表结构中的位置( 行号和列号) .限于篇幅,各表的结构不再给出。

  3. 4 数据感知构件

  在信息系统开发中,数据感知无处不在,然而Web 页面本身不支持数据感知的功能,因此在借鉴Delphi、PB 及 VB 等开发工具的基础上,平台提供了数据感知构件,以解决网页下的即时数据提交和页面多次刷新问题。

  数据感知构件的主要功能是读取展示页面上的数据作为操作页面上的数据,而无须再从数据库服务器中获取,它的存在大大提高了系统的速度,减小了服务器的压力。数据感知构件可以使存在于展示页面上的数据能轻易地被赋与输入框、单选按钮、多选按钮等表单元素,在新增或修改时可减少页面刷新及提高操作速度。平台的数据感知构件主要是采用 JavaS-cript 及 Ajax 来实现的。

  3. 5 数据列表构件

  数据列表构件主要用来实现后台数据库中的数据在前台页面中的展示,开发信息系统时,需要实现页面数据显示时均要使用该构件。该构件往往与数据感知构件、查询构件和图形化构件结合在一块使用,从而使构造的数据列表具有更强大的功能和更为友好的展现形式。数据列表构件实现的主要功能包括:

  多表数据的分页展示、SQL 查询结果的展示、存储过程结果的展示、统计函数的调用结果展示和数据 Excel的导出。

  3. 6 流程构件

  流程构件中包含众多子构件,其中主要包括: 页面构件、数据源访问构件、事务管理构件、数据管理构件和业务逻辑管理构件。该构件还可与其它基础构件进行整合,如流程流转过程中需要发送消息,则可集成消息构件; 如需统计分析,则可集成查询报表构件和图形化构件。基于流程构件开发的程序不需要由开发人员去控制流程的走向,流程的走向全部基于配置文件。也就是说,开发人员只需要关心如何实现或装配业务功能即可。

  流程构件的主要功能是实现对流程元模型各个元素的统一管理,提供流程工具的接口,使工作流定义工具能够方便地生成业务流、逻辑流、工作流及页面流。流程构件的元模型主要由活动、角色、数据、业务功能和转换条件构成,模型各要素的关系如图 5 所示。

  3. 7 权限构件

  权限作为应用系统的基础功能,在任何信息系统都必不可少,因此平台将权限封装成构件供开发使用。权限构件以为业务构件提供服务为目标,因此针对不同类型的业务构件,平台提供多种权限构件以提供支持。

  1) 页面权限构件: 该构件主要针对页面控件、按钮是否显示、是否禁用等进行控制。

  2) 业务访问权限构件: 该构件主要控制平台构件库中的构件是否可被访问3) 数据权限构件等构件: 该构件主要用于控制数据的操作和数据的展示。

  同时,这些权限都可基于角色、部门、岗位和人员等多种实体,以进行交、并、补和差的集合操作方式进行授权,具有功能强大、灵活方便的特点。

  4 平台应用效果

  农业信息化应用软件开发平台集成了软件设计、开发、调试、装配、部署、监控和治理等过程,具有标准化规范和代码自动生成的特点。平台建立了包括基础构件和业务构件在内的构件库,形成了大量的可复用资源; 解决了面向构件的信息化应用开发中的界面可配置、业务可配置和流程可配置问题; 同时提供了大量的引擎和使能工具,实现了流程驱动下的农业信息化应用软件的可视化开发。平台运行界面如图6 所示。

  平台开发成功以来,先后在农业病虫害远程诊断系统、人工草地建植适宜性综合管理系统和牦牛食品安全溯源系统中实施了应用,取得了良好的应用效果。基于平台开发的病虫害远程诊断系统分为网络部分和手机客户端两部分: 网络部分实现了用户管理、农作物及病虫害查询、智能诊断、专家咨询、农资推荐、交流论坛和后台管理等功能; 手机客户端实现了智能诊断、专家会诊、农作物百科、病虫害预警、搜索、农药推荐和登录等功能。系统运行界面如图 7 和 图 8 所示。

  5 结束语

  农业信息化应用软件开发平台通过提供大量的可复用资源和可视化的集成开发环境,将传统农业信息化应用软件的开发方式转变为流程驱动下的构件装配方式,极大地提高了软件的开发效率和质量。平台具有支持业务主导的信息化软件研发、减少开发成本、避免开发风险和促进信息化资源积累等特点。下一步的工作是进一步丰富平台构件和各类工具,并建立面向制造业和气象的行业构件库,扩大平台应用范围。

  参考文献:

  [1] 陈诚,袁玲,吴华瑞,等。 农业信息服务重点、难点、关键点和发展对策[J]. 农机化研究,2014,36( 8) : 232 -236.

  [2] 高志宏,向学成,周晓超。 基于组件式 GIS 的农民专业合作社管理系统研究[J]. 安徽农业科学,2009,37( 4) :1849 - 1851.

  [3] 孙立双,马运涛,段磊。 基于工作流和 Web ADF 的辽宁省农村土地整治项目管理系统[J]. 国土资源科技管理,2014,31( 2) : 84 - 89.

  [4] 吴飞鸣,李宇飞。 我国农村信息化技术支撑体系研究[J]. 科技进步与对策,2014,31( 18) : 56 -60.

  [5] 汤曼,夏建群。 农村信息化主要问题研究[J]. 图书馆理论与实践,2014,( 6) : 38 -41.

  [6] 杨芙清,王千祥,梅宏,等。 基于复用的软件生产技术[J]. 中国科学: E 辑,2001,31( 4) : 363 -371.

  [7] 魏乐,李亚玲,赵秋云,等。 基于自适应构件的工作流流程动态变更模型[J]. 计算机集成制造系统,2010,36( 12) : 2603 -2610.

  [8] 赵亮,姚青。 基于 SOA 的可变业务流程管理系统[J]. 计算机工程与设计,2010,31( 24) : 5244 -5247.

  [9] 魏乐。 制造公司制造执行系统的设计与实现[D]. 成都:电子科技大学,2008.

[10] 舒红平,蒋建民。 基于 JAVA 的 WEB 树形动态报表设计及应用[J]. 成都信息工程学院学报,2003,18( 3) : 242- 247.

核心期刊推荐