基于SOA的网格型农业物联网
2018-01-12邹一琴
邹一琴, 张 兵
(1.江苏大学,江苏镇江 212013; 2.常州工学院,江苏常州 213002)
随着农业技术和计算机技术的发展,各类农业资源在现代大型农业工程、农业信息服务和数字媒体应用的科学研究中迅速增长。面对幅员辽阔的农业资源分布和动态变化的农业生产环境中的不同要素,大到水质、土壤、气象,小到光照度、温湿度、灌溉、化肥和农药施用量,用户必须提取、访问、分析和利用大量分布式和异构资源。物联网的传统体系结构基于3层模式,即包括物理感知层、信息传递层、业务应用层的3层结构。由于传统的物联网是基于应用的设计,它适于解决个别特定的农业物联网的应用需求,如实时监测、远程控制。但如何把不同物联网应用(如A区的水产养殖物联网和B区的大田作物农情监测系统)联系起来,更好地为整个农业行业服务,面对农业工程实际用例的复杂性和多样性,这样的3层结构难以对农业资源对象进行分类、组织、管理。本研究提出了一种基于SOA(service-oriented architecture,面向服务的架构)的农业物联网,依托农业网格的方式把整个农业物联网的应用通过服务封装的形式组织起来,实现农业服务无差别地注册登记、调度管理以及服务交易。
1 农业物联网的基本结构
AIoT(agricultural internet of things,农业物联网)是现代农业技术应用与发展的互联网加应用。如图1所示,在感知层利用光、温、气等传感器传感和监测农业生产和环境信息对象,在网络层有效传递这些信息,在应用层处理这些消息,实现智能监测或生产应用及信息管理。依据传统的物联网3层理论,其基本结构可以分为物理感知层、信息传输层、服务应用层三部分。物理感知层即农业信息感知和监测层,信息传输层即信息传输和智能处理层,服务应用层别称农业信息服务应用层。
2 基于SOA的网格型AIoT
SOA是一种新型的基于Web服务和云计算技术的架构方法。它使用服务来帮助组织应用或实例,通过使用面向服务的架构和产品列表来决定与每个技术的供应商站点的连接方式。它应用程序的不同功能单元(称为服务),通过这些服务之间定义良好的接口和契约联系起来。接口采用中立的方式进行定义,这样能独立于实现服务的硬件平台、操作系统和编程语言,使构建在各种系统中的服务以一种统一、通用的方式进行交互。网格是一种用于集成或共享地理上分布的各种资源[1],包括计算机系统、存储系统、通信系统、文件、数据库、程序等。本研究基于农业网格的AIoT,通过网格构建农业服务,使存在于不同地理位置的农业物联网资源成为有机整体,共同完成任务。
2.1 网格型AIoT应用节点
农业资源包括自然资源和经济资源[2]。自然资源包含农业生产可以利用的自然环境要素,如土地资源、水资源、气候资源和生物资源等。经济资源包含对农业生产直接或间接发挥作用的社会经济因素和社会生产成果, 如农业人口和劳动力的数量和质量、农业技术装备以及交通运输、通信等农业基础设施等。这些动态变化、异地分布、表现形式多样的资源都对农业生产产生影响。而对应的农业应用也是五花八门的,其中涉及的数据大小也不同,小到有几个字节的状态显示,大到有百万亿字节级别的动态数据更新。而且这些数据大部分是分布式、异构、不断变化的。为了避免用户直接面对如此复杂的数据,需要把这些数据封装起来,只向用户展示最终的业务服务[3]。建立基于SOA的农业物联网,首先须要建立统一、通用的资源节点。针对如何定义SOA模式下的农业资源,如何界定在农业生产过程中的各种生产要素,本研究提出基于语义网格的农业应用架构,并根据时空本体定义元数据。
图2是基于农业资源网格的应用节点模型。这种模型是以服务为导向,以OGSA(open grid services architecture,开放式网格服务架构)的形式表达[4],它是农业资源网格节点的三级架构。与传统的AIoT结构相比,它封装和隐藏农业数据,将资源网格节点的农业信息资源格式和决策支持系统统一起来,通过资源管理中间件对农业资源和服务进行分类和映射。根据需要可实现基于农业资源网格核心业务层的任务调度、资源管理以及信任等级的计算,并根据需要最终向每个网格节点的用户分发信息服务。农业资源网格节点的部署架构与传统结构相似,全局站点级别是客户可以看到和访问的外观,交互站点级别是AIoT的组织和管理部分,它是AIoT元素的网格封装层,内部站点级别是AIoT中实际具体的分布式资源。所有用户请求都必须发送到处于最上层的全局调度层的节点,由全局调度层对交互站点层的节点进行集中式管理,而内部站点层中的节点按照交互站点层的调度计划完成相关任务[5]。尽管内部站点的节点可能是分布的农业资源,属于不同所有者,其管理策略是非协作的;但是为了实现协同的农业服务,交互站点层的管理策略通过统一、协作的调度方法使其完成合作。
2.2 农业资源元数据建模
农业资源具有时间性、空间性,同一农业数据在不同时期或地理区域有不同的应用。因此,农业数据应考虑到时间性和空间性。基于时空本体的农业元数据建模采用Web本体语言和语义Web规则语言(semantic web rule language,SWRL)来描述基于时空动态分布的农业数据的时间原始动作和空间原始动作。根据农业数据资源的内涵(如规则集、多媒体集、语义片段集、线性规划模型等)确定数据资源的层次和结构[6],并通过采用多维结构描述数据本体及其属性(如数据的基本内容、数据类型、数据表示、数据所有领域等)。
图3描述了基于时空本体建立的农业元数据模型的过程。该模型使用字典来描述和分析农业资源的内涵,确定应用范围,并定义所需的数据管理。使用自上而下的顺序来确定农业数据的层次结构,可以分为概念层面、公理层面、规则层面、方法层面。通过确定其内容、类型、表示形式、数据字段、位置坐标,以设计农业数据的空间结构。利用时空本体单元,形成统一的农业元数据高维模型,将数据源空间与公共时间轴连接起来,确定数据源和农业数据网格系统的对应关系。它使用基于XML标准的扩展格式来表示数据的中间格式。基于WSRF(web services resource framework,网络服务资源框架)的资源结构定义各种农业资源,不仅包括信息的静态不变属性,还包括变化和动态特性[7]。
这些农业资源属性可以划分为基本属性、扩展属性和任务属性。基本属性定义农业资源的基本特征或特征,包括名称、数量、供应商、种类、位置、状态等信息。扩展属性定义了在农业生产过程中输入的信息,包括生产环境、时效信息、使用流程、基本费用、空间调度费用信息、政策或法律因素信息等。此属性中对时间、空间或政治属性进行分类。任务属性是输出农业生产过程中的资源信息,包括生产能力、批量信息和完成量等生产信息[8]。
根据农业资源的属性结构,农业资源可以以三元组的形式表示:组件=
3 农业资源的获取和认证
农业网格要求代理找到必要的资源时,需要网格任务代理人根据任务的特点和预算进行农业资源的招标,资源和客户通过竞标获得一定比例的使用权和任务分配。具体流程是:当任务提交时,网格任务代理一直轮询,表明农业网格资源尚未分配给网格任务代理。网格任务代理使用网格任务代理任务列表来存储和管理要执行的任务,并根据任务表项加以完成。
图4描述了网格任务代理任务列表中的树结构。农业网格任务代理任务列表由几个任务项组成;农业网格任务代理给出使用资源的任务主体名称。代理商的代理人名称是全球唯一的,可以通过信息服务映射到特定的网络地址和物理地址,包括域名、公司地址、法定代表、联系信息和虚拟地址分配。任务内容包括任务号、请求描述、任务完成时间和任务价格;任务编号是分配给使用该服务的农业网格任务代理的序列号。在同一合同中,每个任务都有唯一的任务号。
农业网格任务代理获取资源的过程如图5所示,箭头在垂直线方向表示发生的时间顺序,具体操作可以包括以下步骤:(1)投标。在农业网格资源任务代理所在节点创建1个UDP套接字发送消息,并创建1个单播TCP套接字,接收来自网格任务代理的消息。农业网格任务代理创建1个套接字用于监听资源节点的通告。(2)竞标成功。农业网格资源提供者代理AGRPA(agricultural grid resource provider agent)监听网格任务代理发出竞标信息,从数据包中提取任务代理竞标项,农业网格资源代理首先检查能否满足任务代理所需资源的条件,若能满足,再根据任务代理所出的标价选择出价格最高的任务代理,若不能满足则马上返回信息。当竞标结果产生后,资源节点将从数据包中提取IP地址以建立TCP连接,随后向网格任务代理发出资源中标通知消息。
4 面向协作的农业网络(AG)资源调度器方法
假设农业网格资源调度者具有m个资源(m≥1)R1,R2,…,Rm,用实数队列Si(i=1,2,…,m)表示每个资源的业务能力(包括生产效率、产品质量、平均生产周期等),则建立农业网格的调度模型如图6所示,主要组成部分包括应用接口、资源发现和事务处理模块、支持启发式调度算法管理模块、网格通道列表、网格通道分配模块。
调度程序的工作模式包括以下几步:一是农业物联网用户首先建立任务或作业(job),作业包括对用户需求的具体描述,如须要培育5万只大闸蟹和具体提交标的时限,其任务会被翻译成一系列标准的网格通道列表,然后通过应用程序接口传递给AG资源调度器。二是资源搜索和发现模块会匹配相应节点的生产能力,通过交易模块与网格信息服务模块相互作用确定资源的信息,如评判相应的大闸蟹培育基地,然后与资源相互作用建立农业资源的配置和调用花费。通过投标和竞标达成协作的电子合同。三是系统根据代理者资源列表,分配网格通道列表中的作业在资源中协同执行,如前述的大闸蟹培育需求因为需求量巨大,须要分配到不同的大闸蟹生产基地协同执行,通过测试和数据统计方法,农业资源的生产能力数据被作为预测依据。四是调度管理模块基于资源调度算法和农业资源的生产能力,根据用户需求,考虑最终期限和预算限制,最优化策略-代价、代价-时间、时间或时间变量等要素为网格通道选择合适的农业资源。五是对每个农业资源,网格通道分配模块根据使用策略选择网格通道的数量来执行,以避免对于单一服务供应商的农业作业或农业资源的空载或负载过重。
5 结论
本研究提出一种基于SOA的网格型农业物联网,用来组织和管理农业工程应用领域的所有农业要素和资源。它使用面向服务的架构封装和管理传统3层物联网模型的应用模型,为农业生产过程中的多样应用的需求提供无差别的连接和管理。把多样的物联网应用协同和联系起来,使农业资源更加合理高效地为农业生产服务。由于篇幅原因,仅讨论了基于SOA的网格型农业物联网应用节点模型、农业资源元数据建模以及农业资源的获取、认证和面向协作的AG资源调度方法。基于SOA的网格型物联网是一个复杂的系统学工程,须要不断完善和发展,并不断地应用到农业生产实践中去。
[1]Lopez T S,Ranasinghe D C,Harrison M,et al. Adding sense to the internet of things—an architecture framework for smart objective systems [J]. Personal & Ubiquitous Computing,2012,16(3):291-308.
[2]Pintus A,Carboni D,Piras A. Paraimpu:a platform for a social web of things[C]. Proceedings of the 21st International Conference on World Wide Web,New York,2012:401-404.
[3]Sulistyo S,Prinz A. PMG-pro:a model-driven method for the development of service-based applications in a heterogeneous services environment[C]//In Proceeding of IEEE International Conference on Software Engineering and Service Sciences.Beijing:Ieee Press,2010:111-114.
[4]Sulistyo S,Prinz A. PMG-pro:a model-driven method for the development of service based applications[C]//Proceeding of 15th International Conference on System Design Languages(Integrating System and Software Modeling).Toulouse,2011:136-151.
[5]Liu S Q,Feng X L,Shao H L. Path optimization of mobile agent in grid resource discovery[J]. Computer Engineering and Design,2008,29(8):1918-1920.
[6]Zhang Q,Wang R C. Research on model of resource discovery based Mobile agent in grid environment[J]. Data Communications,2005,23(6):27-29.
[7]Zhang L. Research on semantic web based resource integration and scheduling for manufacturing grid[D]. Xi’an:Northwestern Ploytechnical University,2006.
[8]Liu Q,Shi Y J,Shao X Y. Concepts&architecture of grid manufacturing supporting cross-enterprises collaboration[J]. Computer Integrated Manufacturing System,2007,13(4):711-715.