没有合适的资源?快使用搜索试试~ 我知道了~
农业数据管理软件的开发与应用
软件X 10(2019)100327原始软件出版物AgDataBox APIClaudio Leones Bazzia,f,Erminio Pita Jasseb,Paulo S. Graziano Magalhánesa,f,g,a,1,Gabriela Karoline Michelonc,Eduardo Godoy de Souzad,f,Kelyn Schenattoe,Ricardo Sobjakaa巴西巴拉那Medianeira巴拉那联邦技术大学计算机科学系b巴西UTFPR-Medianeira农业企业计算技术方案c计算机科学,Johannes Keppler University Linz(JKU),Linz,上奥地利州,奥地利d技术和精确科学中心,西巴拉那州立大学,巴西e巴西巴拉那州圣海伦娜市巴拉那联邦技术大学计算机科学系fCNPq,巴西g巴西坎皮纳斯大学ar t i cl e i nf o文章历史记录:收到2019年收到修订版,2019年8月14日接受,2019年保留字:Web service API农业数据农业管理智能农业技术a b st ra ct精准农业是一套农业管理技术,它利用信息和通信技术,考虑田间土壤、大气和植物的时空变异性,以便对作物进行最佳管理,以根据其潜力获得最佳结果。为了提高PA的性能,为了快速安全地获取信息,计算技术已经被应用于不同国家的不同作物。软件被设计成通过允许在农业环境中使用的计算应用程序的集成来解决特定问题。这种软件为农民和研究人员做出了重要贡献,使他们能够深入分析农业数据。本研究旨在开发一个计算网络工具,允许通过专门的软件存储,整合和管理农业数据。通过互联网和HTTP请求/响应,该工具提供了一个其他软件包可以使用的接口发送和接收不同类型的农业数据(空间和非空间),从而集成多个应用程序。它提供了几个优点,特别是减少应用程序开发时间和集成。这些应用程序可以用不同的编程语言开发,并在不同的环境中使用。举个例子,两种类型的软件(一种是移动软件,另一种是网络软件)使用这种计算工具进行了整合。©2019作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本1.0此代码版本使用的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2018_249法律代码许可证BSD(3条款)许可证代码版本控制系统使用git软件代码语言使用Java编译要求,操作环境依赖性Java开发工具包8.x;Maven(所有依赖都由Maven管理webapp/META-INF/context.xml文件:用于访问数据库的参数定义链接到开发人员文档/手册http://ppat.com.br/api/doc.html支持电子邮件问题bazzi@utfpr.edu.br-ricardosobjak@utfpr.edu.br*通讯作者:巴西坎皮纳斯大学。电子邮件地址:graziano@unicamp.br(P.S. Graziano Magalheses)。1名人权高专办客座教授。https://doi.org/10.1016/j.softx.2019.1003272352-7110/©2019作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2C.L. Bazzi,E.P.Jasse,P.S.Graziano Magalhánes等人粤公网安备44010802000017号软件元数据当前软件版本1.0此版本可执行文件的永久链接http://ppat.com.br/apiBSD(3-Clause)License计算平台/操作系统安装:Microsoft Windows和Linux。访问:HTTP协议。安装要求和依赖关系应用程序的基于Web的软件包需要以下软件才能运行:JavaDevelopment Kit 8.x、Apache Tomcat 9.x、PostgreSQL 9.4和PostGIS。用户手册链接http://ppat.com.br/api/doc.html支持电子邮件问题bazzi@utfpr.edu.brricardosobjak@utfpr.edu.br1. 介绍考虑到预期的人口增长,到2050年必须达到约95亿居民[1],这意味着必须实现70%的粮食产量增长。为了确保未来的粮食供应,需要有足够数量和质量的农产品,密集但环境安全的生产,以及所涉及资源的可持续性[2,3]。然而,必须满足这一需求,而不增加生产面积,这意味着开发有助于更好地利用现有资源的工具。在此背景下,出现了精准农业(PA)的概念,这是一种优化的现场管理实践,旨在提高作物生产的盈利能力,同时降低生产成本和农业实践造成的环境影响[3,4]。全球导航卫星系统、定位系统、地理信息系统、遥感技术和移动计算等电子和信息技术使生产者能够详细评估生产地区的特点,包括土壤类型、因此,这些技术可以实现更好的管理决策。这些技术的新贡献是,鉴于可用数据量的显著增加,有机会欧洲农业和合作社[3]强调,在农场一级获得的实时信息的质量以及用于收集、存储、使用、管理、共享、处理和交流数据的技术在当前的种植过程中也是新的。然而,这些庞大而复杂的数据集需要新的复杂的数据处理系统,并且不同类型的数据量可能会过多[6]。大量的可用数据使这些数据的管理、解释和使用复杂化,因此需要特定的处理系统。Steinberg等人[7]和Chen等人[8]等作者评论说,有效使用数据需要内部生成的数据(由特定场所的器械、设备和软件生成)和外部生成的数据(例如,气象数据),可以很容易地在不同的硬件,软件和信息系统之间集成和共享。通过考虑所需数据的复杂和多样类型(例如,成本和气象数据),呈现这些数据的格式(例如,地图和图像),以及获得它们的各种方法和工具(例如,现场操作、软件、设备、实验室和样品收集)。此外,这些数据通常以专有格式存储,无法读入其他软件。为了克服其中的一些问题,并允许PA的数据集成和处理,实施了涉及五个应用程序的项 目( AgDataBox ): AgDataBox-Map 、AgDataBox-API、AgDataBox-Mobile、AgDataBox-IoT和AgData-Admin。AgDataBox-API是一个应用程序编程接口(可在ppat.com.br/api/login获得),这里的新颖性在于,从所使用的数据格式及其与不同应用通信的能力的角度来看,该API是集中式的(但模块化的)和标准化的。此API允许在PA上下文中集成数据和软件。Web界面是使用免费和开源技术开发的,具有API功能。它使资源的使用,包括农业数据存储,整合和管理,可以 用于开发面向PA的应用程序。该系统允许该领域的开发人员使用简单灵活的格式生成无缝互操作和共享数据2. AgDataBox项目的背景该项目旨在开发免费的计算工具,供农民、研究人员和服务提供者使用。这些工具专注于PA并采用免费和开源技术。具体而言,该平台促进了数据的整合(图1)。1)从不同的源获得并表示不同的数据类型(例如,专题地图、土壤样本数据、地理参考图像、气候数据、实地作业、成本、人员和机器/设备)。服务器应用程序和其他应用程序使用Internet上的标准协议(HTTP)进行通信。API接收这些数据,并以有组织的方式将它们存储在数据库中;这些数据稍后可以由不同的客户端应用程序查询。希望使用API资源来存储/查询数据的应用程序只需要向服务器传递HTTP请求。在存储的情况下,需要提供要存储的数据,并将数据传递给服务器,如API文档(可在www.ppat.com.br/api/doc.html获得)中所预见的。AgDataBox API的开发方式允许在单个位置集中集成不同的应用程序。它促进了软件开发人员的工作,他们可以利用API中实现的复杂资源,如图2所示。在API中实现了访问限制,目的是纳入安全方面。还列入了平台正确运行必须遵循的规则和协议,如通信模式和数据格式该结构允许:数据整合。它提供了一个平台,多个应用程序可以同时工作,以存储和管理数据,并使数据可用。数据管理和维护的集中化。数据和协议仅在API中可用,并可用于其他应用程序。例如,客户端应用程序不需要考虑与中央数据库相关的协议或问题。程序和方法的维护和管理该结构提供了一个便利的环境,由于其集中的性质,限制了故障的影响···C.L. Bazzi,E.P.Jasse,P.S.Graziano Magalhánes等人粤公网安备44010802000017号3Fig. 1. AgDataBox API平台的数据集成结构。不同类型和格式的数据以JSON格式标准化,并通过HTTP转发到API,它提供对数据库的访问图二、A g D a t a B o xA P I 平 台 的 基本操作结构,可 以 连 接 不同类型的应用程序。一般的更正和服务更正可以同时快速地提供给不同的应用程序。在开发客户端应用程序的过程中的敏捷性。已经在API中实现的资源可以使应用程序的快速开发更加可行。可扩展性。新的应用程序可以添加到项目中,而不需要对总体结构进行重大更改。多平台。每个开发人员都可以自由地使用他或她最熟悉的工具/编程语言。模块化。该平台可以在具有其自己的基础结构的受限公司环境中使用,而无需更改环境或客户端应用程序的代码。3. 软件框架3.1. API开发中使用的技术由于文献中提出的技术范围广泛,因此选择Java编程语言,因为它是对象····4C.L. Bazzi,E.P.Jasse,P.S.Graziano Magalhánes等人粤公网安备44010802000017号面 向 、 跨 平 台 、 安 全 、 高 效 。 VRaptor 被 选 为 编 码 框 架 ,Hibernate框架被用于数据持久化(存储/检索)。根据Vukotic和Goodwill [9]的说法,对于用Java编程语言开发的健壮的Web应用程序,Tomcat是推荐的Web服务器和容器;因此,Tomcat(版本8.3)被用作应用程序服务器和Web容器。PostgreSQL被选为数据库管理系统。它可以通过添加PostGIS扩展来整合空间功能,并且它允许在数据库本身中使用编程功能[10]。采用了JSON格式,这是数据表示的标准格式JSON作用于HTTP协议,用于客户端(不同应用程序)和API之间的数据传输和呈现。JSON格式的使用被认为是最合适的,因为它的格式简单(易于理解),并且与其他可用格式(如XML标准)相比尺寸较小。该架构风格是使用表示状态传输(REST)风格开发的,该风格在使用HTTP协议资源方面表现良好[11],这是API操作中使用的主要协议。在数据管理方面,数据和资源应受到限制,只能在有限的时间间隔内提供,在此期间,交换。该环境使用JSONWeb Token (JWT) [12]技术开发,包括认证和授权功能。OAuth协议(一种开放协议,用于以简单和标准化的方式为Web,移动或桌面应用程序提供安全授权[13])被用作授权协议。Swagger工具用于确保向API用户社区提供适当的API文档该工具是一个基于OpenAPI规范[14]开发的开源工具包。API的开发考虑了对用户透明的三个层(图1)。3)。(1)资源层(数据)允许存储所有预期数据,这些数据与农业生产者多年来在其生产领域所做的记录相对应。 这一层包含数据库,数据库由数据库管理系统(DBMS)管理。(2)业务逻辑层定义了访问存储数据的所有规则。验证用户并确定他们拥有的权限是这一层的一些基本任务;最后,(3)持久层对应于管理数据的DBMS,以确保原子性,一致性,隔离性和持久性,正如数据库管理系统所预见的那样[15]。3.2. API的逻辑和功能结构调度器是负责接收和分析客户端发送的HTTP请求的模块。其目的是核实请求的技术方面,而不是评估用户感兴趣的数据。其职责包括:(1)验证允许的HTTP方法。 在大多数控制器中,接受GET、POST、PUT和POST。(2)访问权限验证。这涉及验证令牌、验证令牌的到期日期、确定注册用户的有效性以及确定是否允许用户访问所请求的资源。(3)验证客户端发送的多媒体内容的类型。在这种情况下,只有JSON(application/json)是可以接受的。(4)添加用于跨域资源共享(CORS)许可的信息,这是客户端应用从不同域访问API所需的(5)根据客户端的要求,将每个请求转发到相应的控制器,控制器是特定于API中可用的每个功能的模块。他们负责接收请求由调度器转发并用于完成以下任务:(1)验证请求数据的一致性在此步骤中,它检查将持久化的对象的必需属性,包括资源的创建日期、与数据所有者的关联以及将在查询中返回的数据的省略(2)在Java对象和JSON格式的结构之间应用资源数据表示格式(3)将资源转发到持久性。(4)按照HTTP协议中使用的状态消息代码规范处理客户端响应,这些响应可能指示成功操作、客户端错误或错误处理可以发生在与持久层交互之前、期间如果发生错误,则向调度程序返回相应的HTTP消息否则,控制器假定流和请求被满足。成功执行后,将向调度程序返回确认消息,调度程序将向请求者(客户端)返回相应的HTTP响应它将每个请求转发到适当的控制器,这取决于请求发送到的URI资源(用户、土壤、作物信息和地图等)是代表系统中每个实体模型的特定模块。它们由塑造数据访问对象(DAO)角色的类和基于Java持久性API(JPA)规范的模型类组成。它们由控制器管理,控制器与业务逻辑交互并在数据持久层上从数据库检索的数据在返回到控制器之前被转换为JSON格式(代码1)4. 执行情况和实证结果4.1. 系统的数据特征要由API集成的不同类型的数据在图4中呈现,考虑到PA上下文的特性,图4特别示出了可供使用的数据资源。某些资源,如人类活动的特征、气候变量和田地,与田地内发生的一般信息相对应,并允许更准确地评估监测和管理。空间信息特征(由图中的地图表示)4)包括来自具有空间属性的字段的数据。这些数据包括实地采样网格、土壤和植物特征数据、土壤和植物属性专题地图、由专题地图和/或算法生成的管理区域、无人机或卫星获得的地理参考图像以及生产商基于给定年份或收获中地块或事件的历史知识登记的事件(杂草、侵蚀和线虫等)。4.2. 客户端系统和API为了组织API提供的资源,开发了一个调用结构,为所有系统资源提供统一的接口。客户端不需要改变呼叫的地址(即,终点)。相反,选择方法(POST -插入,PUT -更新,GET -选择,删除-删除)并通知所需的资源就足够了。参与者(客户端应用程序)和API之间的预期操作包括用户登录以及创建、更改、检索和删除数据。这些操作允许所有可用数据库的操作,并由API管理。系统对象之间的交互是基于时间的[16]。为了解释和演示这里使用的逻辑,图中给出了用于将土壤类型插入API数据库的事件序列图。 五、C.L. Bazzi,E.P.Jasse,P.S.Graziano Magalhánes等人粤公网安备44010802000017号5图3.第三章。A P I 的 一般技术结构。4.3. 软件安全为了减轻软件漏洞和攻击,如缓冲区溢出、SQL注入和会话劫持,客户端执行的每个请求(对应于通过HTTP请求使用API资源的任何应用程序)都需要预先进行系统身份验证。访问任何API功能所需的身份验证和授权都是使用令牌执行的生成令牌并通过与登录请求操作对应的HTTP响应将其返回给请求者。客户应采取的步骤如下。(a) 已经在API上注册的客户端向API发送请求(b)在API中验证数据,然后生成令牌并返回给客户端。(c)在接收到令牌之后,客户端可以通过将令牌附加到请求的头部来执行API中的请求。(d)API接收令牌并验证令牌的所有必要参数(其完整性、到期日期和权限等)以确定令牌是否有效。在验证令牌并检查特定请求操作的执行情况之后,API将执行操作并将相应的响应返回给请求者。每个经过身份验证的用户都有权使用API资源。通过令牌生成的数据成为用户的属性。但是,用户可以与其他特定用户共享他或她的资源资源通过HTTP访问方法(GET、POST、PUT和HTTP)授予5. 客户端应用程序和软件工件5.1. 客户端应用程序因此,所开发的计算环境允许以综合方式进行存储,并允许管理农业数据。它还允许将应用程序与易于使用的通信标准集成。使用HTTP请求/响应,该平台允许应用程序通过使用API作为交互中介来共享数据。可以为不同的操作系统和平台开发客户端应用程序。示例包括在移动设备上使用的Android、WindowsPhone、iOS和Symbian,以及Windows、Mac OS和6C.L. Bazzi,E.P.Jasse,P.S.Graziano Magalhánes等人粤公网安备44010802000017号见图4。 AgDataBox支持的数据类型图五、 图(事件顺序图)显示用于创建土壤类型的事件顺序。Linux,用于桌面。此外,可以开发用于Mozilla Firefox、InternetExplorer或Google Chrome网络浏览器的网络应用程序。为了允许软件开发人员使用API,在互联网上的公开访问环境(www.ppat.com/api)中安装和配置了一个实例。环境中所有可用功能的测试都可以使用Postman和Inclusion等工具进行。此外,还为此API实例开发了软件(客户端应用程序),例如AgDataBox-Mobile和AgDataBox-Admin。AgDataBox-Mobile(图)6a)工具是为Android操作系统开发的,可在Play商店中使用。它与API完全集成,并使农村生产者能够存储其现场数据,例如区域划界、临时或永久性发生以及现场操作 。 此 外 , 它 还 可 作 为记 录 降 雨 量 和 安 排 任 务 的辅 助 工 具 。AgDataBox-Mobile用作API测试工具其中根据所选择的操作,向API发出请求并接收响应使 用 PHP 编 程 语 言 , 开 发 了 一 个 Web 模 块 ( AgDataBox-Admin,图6b),以集成API的所有功能。该网络模块还允许查看、更改和删除在移动环境中获得的数据,反之亦然。5.2. 文档作为外部开发人员考虑到API将使其他应用程序能够利用已实现的资源,一个环境,为API中实现的每个资源提供简单的可视化和解释。开发了一个网站(www.ppat.com.br/api/doc.html),以动态和功能的方式满足这一要求。在这个环境中,数据存储和检索的所有特征都被清晰和客观地描述。文档网站包含一个APIC.L. Bazzi,E.P.Jasse,P.S.Graziano Magalhánes等人粤公网安备44010802000017号7图六、 AgDataBox-Mobile(a)和AgDataBox-Admin;(b)用于API客户端应用程序中区域分界的屏幕。测试应用使用该应用程序,农业软件开发人员可以在开始开发与API集成的应用程序之前进行测试并熟悉API。5.3. API的可复制性为了在公共和私有上下文中使用它,可以复制API。鉴于此功能,API可以安装用于私有环境(如服务公司),并配置为服务于这些公司的客户端应用程序。然后,可以根据使用需求和系统的用户数量来分配硬件资源。通过这种方式,每个公司都可以在自己的结构中使用API。这些API实例将与其他实例隔离,它们可以根据需求分配硬件资源。此外,私人用户可以开发自己的应用程序,并将其集成到各自的环境中。6. 结论无论是基于网络还是移动设备,为农业部门开发的大多数应用程序都局限于当地环境。AgDataBox API是一个能够存储、集成和管理PA应用程序中使用的数据的系统,它可以被任何其他允许与服务器进行HTTP通信的应用程序访问。对于“客户端”环境的开发人员来说API促进了以不同形式和从不同来源获得的不同格式的农业数据的整合。本文所述的结果表明,在该项目中应用的技术是足够的应用程序的开发。此外,考虑到可用的文档,不同类型和不同目标的应用程序的开发可以很容易地集成到API环境中。使用AgDataBox API作为支持开发人员的工具,可以促进和扩展该领域信息技术资源的使用。API促进了农业部门的公司以及农村生产者对这些资源竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢农 业 数 据 盒 API ( AgDataBox API ) 是 在 农 业 数 据 盒 ( 或AgDataBox)项目的背景下开发的,该项目由巴拉那联邦技术大学( UTFPR ) - Medianeira 的 研 究 人 员 与 西 巴 拉 那 州 立 大 学(Unioeste)部分合作实施。提交人感谢农业、畜牧业和粮食供应部 、 Coordenação de Pessoal de Nível Su- perior ( CAPES ) 、Conselho Nacional de Desenvolvimento Científico e Tecnológico( CNPq ) 和 Fundação de Amparo à Pesquisa do Estado de SãoPaulo(FAPESP;行动2015/01587)提供了 必要的财政支持。引用[1]粮农组织,联合国粮食及农业组织:统计司,2016年。[2]Gebbers R , Adamchuk VI.精 准 农 业 和 粮 食 安 全 。 科 学 ( 80-. ) 2010;327(5967):828-31。[3]卡瓦略足球俱乐部农药、环境和食品安全。食品能源安全2017;6(2):48-60。[4]Balafoutis AT,Beck B,Fountas S,Tsiropoulos Z,Vangeyte J,Van DerWal T,Gómez-barbero M,Pedersen SM.智能农业技术-描述,分类和经济影响。In:Pedersen SM,Lind KM,editors.精准农业:技术与经济展望.第1版Cham:Springer; 2017,p. 21比77[5]黄毅,陈新,余涛,黄志新,顾发祥. 农业遥感大数据:管理与应用。J IntegrAgric2018;17(9):1915-31.[6]Fleming A,Jakku E,Lim-Camacho L,Taylor B,Thorburn PJ.大数据是为了大农业还是为了所有人?对澳大利亚谷物行业的看法。Agron SustainDev2018;38(24).[7]放大图片作者:Steinberger G,Rothmund M,Auernhammer H.移动农场设备作为农业服务架构中的数据源。Comput Electron Agric2009;65(2):238-46.[8]陈宁,张旭,王春.集成的开放地理空间网络服务为精准农业监测提供了网络物理信息基础设施。计算机电子农业2015;111:78-91。[9]VukoticA,Goodwill J.Apache tomcat 7 essential.New York:Apress.[10]Dar U,Krosing H,Mlodgenski J,Roybal K. PostgreSQL服务器编程。第2版Birminghan,UK:Packt Publishing Ltd; 2015.8C.L. Bazzi,E.P.Jasse,P.S.Graziano Magalhánes等人粤公网安备44010802000017号[11]架构风格和基于网络的软件架构的设计。Irvine:University of California;2000.[12]张文辉,张文辉. JSON Web Token(JWT)。互联网工程任务组(IETF);2015年。[13]莱巴湾Oauth Web授权协议。IEEE Internet Comput2012;16(1):74-7.[14]Swagger,Swagger RESTful API文档规范,2015。[联机]。可用网址:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/1.2.md。[15]Silberschatz A , Korth H , Sudarshan S. 数 据 库 系 统 概 念 。 第 六 版 NewYork:McGraw-Hill.[16]Chonoles MJ. OCUP 2认证指南。第1版Cambridge,MA,USA:MorganKaufmann Publishers;2018.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功