本发明涉及一种实现方法,尤其涉及的是一种基于大数据网络的灌溉监测系统实现方法。
背景技术:
近年来,很多研究工作致力于灌溉监测系统的实现方法,以便对农田实现高效及时的灌溉确保农作物健康成长。随着物联网和大数据的发展,物联网和大数据会成为实现灌溉监测系统的一种重要手段和方法。
本发明将物联网和大数据应用于灌溉监测系统从而实现高效快速的农作物灌溉。
技术实现要素:
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于大数据网络的灌溉监测系统实现方法。
技术方案:本发明公开了一种基于大数据网络的灌溉监测系统实现方法,网络包含用户节点、提供者节点和路由器;用户节点配置一个接口,提供者节点配置一个接口,提供者节点为用于采集灌溉监测系统中的土壤湿度数据,用户节点通过灌溉监测系统获取提供者节点采集的土壤相关数据从而决定对土壤是否进行灌溉;路由器配置两个以上的接口,路由器的接口包括下游接口和上游接口;用户节点、提供者节点以及路由器的每个接口由接口id唯一标识,接口id为x的接口称为接口x;路由器的下游接口与用户节点或者提供者节点相连,路由器的上游接口与其他路由器相连;
每个提供者节点保存一个文本数据表,一个文本数据表项包含文本数据、关键字集合、摘要集合和生命周期,其中,关键字集合中的每个元素都包含在文本数据域值中,摘要集合中的每个元素都包含在文本数据域值中;一个文本数据表项的关键字集合的元素个数等于该文本数据表项的摘要集合中的元素个数;如果一个文本数据表项的关键字集合的元素个数为n1,n1为大于1的整数,那么该关键字集合中的第n个元素与该文本数据表项中的摘要集合中的第n个元素对应,1≤n≤n1,即一个文本数据表项中的关键字集合中的第一个元素与摘要集合中的第一个元素相对应,一个文本数据表项中的关键字集合中的第二个元素与摘要集合中的第二个元素相对应,一个文本数据表项中的关键字集合中的第n个元素与摘要集合中的第n个元素相对应;每个提供者的文本数据表为预先设置;例如,一个文本数据表项的文本数据域值为灌溉,关键字集合域值为决定是否灌溉的关键字,摘要集合中的每个摘要为关键字集合中对应关键字的具体定义,即文本数据表项中的摘要集合中的第n个元素为关键字集合中的第n(1≤n≤n1)个元素的具体定义;
如果每个路由器保存一个关键字表,一个关键字表项包含关键字集合、接口id和生命周期;一个消息由一个消息id标识;发布消息包含消息id和关键字集合,提供者节点p1与路由器r1相连,则定期执行下述操作:
步骤101:开始;
步骤102:提供者节点p1查看文本数据表,针对每个文本数据表项执行下述操作:发送一个发布消息,该发布消息的消息id为1,关键字集合等于该文本数据表项的关键字集合;
步骤103:路由器r1从下游接口d1接收到该发布消息后,判断是否存在一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合,接口id等于d1,如果存在,则执行步骤104,否则执行步骤105;
步骤104:从下游接口d1接收到该发布消息的路由器r1选择一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于d1,将该关键字表项的生命周期设置为最大值,生命周期最大值取值范围为500ms-1s,执行步骤106;
步骤105:从下游接口d1接收到该发布消息的路由器r1创建一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于d1,将该关键字表项的生命周期设置为最大值,生命周期最大值取值范围为500ms-1s;
步骤106:从下游接口d1接收到该发布消息的路由器r1从每个上游接口转发该发布消息;
步骤107:从上游接口u1接收到该发布消息的路由器判断是否存在一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合,接口id等于u1且生命周期大于阈值th1,阈值th1取值范围为最大生命周期的95%-100%,如果存在,则执行步骤112,否则执行步骤108;
步骤108:从上游接口u1接收到该发布消息的路由器判断是否存在一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于u1,如果存在,则执行步骤109,否则执行步骤110;
步骤109:从上游接口u1接收到该发布消息的路由器选择一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于u1,将该关键字表项的生命周期设置为最大值,执行步骤111;
步骤110:从上游接口u1接收到该发布消息的路由器创建一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于u1,将该关键字表项的生命周期设置为最大值;
步骤111:从上游接口u1接收到该发布消息的路由器从除了接口u1以外的每个上游接口转发该发布消息,执行步骤107;
步骤112:结束。
提供者通过上述过程建立或者更新关键字表,这样,每个路由器可以建立或者更新关键字表项从而获取关键字集合,每个关键字表项通过生命周期来确保该表项的实时性和有效性,从而确保了数据通信的有效性和实时性,每个关键字表项通过接口id来确保数据通信的正确性,以便用户节点能够通过关键字表及时高效地获取数据。
本发明所述方法中,每个路由器保存一个查询表,一个查询表项包含关键字、接口id和生命周期;
每个路由器保存一个信息表,一个信息表项包含摘要、接口id和生命周期;
每个路由器保存一个请求表,一个请求表项包含摘要、接口id和生命周期;
一个查询消息包含消息id和关键字;
一个响应消息包含消息id、关键字和摘要;
一个请求消息包含消息id和摘要;
一个数据消息包含消息id、摘要和文本数据;
用户节点s2与路由器r2相连,如果所述网络中每个路由器都包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过下述过程利用关键字kw2获取文本数据:
步骤201:开始;
步骤202:用户节点s2发送一个查询消息,该查询消息的消息id等于2,关键字等于kw2;
步骤203:路由器r2从下游接口f1接收到该查询消息后,创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤210,否则执行步骤204;
步骤204:从下游接口f1接收到该查询消息的路由器r2选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,路由器r2从该关键字表项的接口id所标识的接口发送该查询消息;
步骤205:如果提供者节点接收到该查询消息,则执行步骤209,否则执行步骤206;
步骤206:从接口f2接收到该查询消息的路由器判断是否存在一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于f2,如果存在,则执行步骤210,否则执行步骤207;
步骤207:从接口f2接收到该查询消息的路由器创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于f2,将生命周期设置为最大值,如果该路由器至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤210,否则执行步骤208;
步骤208:从接口f2接收到该查询消息的路由器选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,该路由器从该关键字表项的接口id所标识的接口发送该查询消息,执行步骤205;
步骤209:接收到该查询消息的提供者节点选择一个文本数据表项,该文本数据表项的关键字集合包含该查询消息中的关键字,并计算查询消息中的关键字在该关键字集合中的位置k1,即该关键字集合中的第k1个元素等于该查询消息中的关键字,提供者节点发送一个响应消息,该响应消息的消息id等于3,关键字等于该查询消息中的关键字,摘要等于该文本数据表项中的摘要集合中的第k1个元素;
步骤210:如果用户节点s2接收到该响应消息,则执行步骤213,否则执行步骤211;
步骤211:从接口f3接收到该响应消息的路由器判断是否存在一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于f3,如果存在,则将该信息表项的生命周期设置为最大值,如果不存在,则创建一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于f3,生命周期设置为最大值;
步骤212:从接口f3接收到该响应消息的路由器选择所有关键字域值等于该响应消息中关键字的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口id所标识的接口转发该响应消息,删除该查询表项,执行步骤210;
步骤213:用户节点s2接收到该响应消息后,发送一个请求消息,该请求消息的消息id等于4,摘要等于该响应消息中的摘要;
步骤214:路由器r2从下游接口f1接收到该请求消息后,创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个请求表项,这两个请求表项的摘要均等于该请求消息中的摘要,则执行步骤221,否则执行步骤215;
步骤215:从下游接口f1接收到该请求消息的路由器r2选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,路由器r2从该信息表项的接口id所标识的接口发送该请求消息;
步骤216:如果提供者节点接收到该请求消息,则执行步骤220,否则执行步骤217;
步骤217:从接口x2接收到该请求消息的路由器判断是否存在一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于x2,如果存在,则执行步骤221,否则执行步骤218;
步骤218:从接口x2接收到该请求消息的路由器创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于x2,将生命周期设置为最大值,如果该路由器至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤221,否则执行步骤219;
步骤219:从接口x2接收到该请求消息的路由器选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,从该信息表项的接口id所标识的接口发送该请求消息,执行步骤216;
步骤220:接收到请求消息的提供者节点选择一个文本数据表项,该文本数据表项的摘要集合包含该请求消息中的摘要,提供者节点发送一个数据消息,该数据消息的消息id等于5,摘要等于请求消息中的摘要,文本数据等于该文本数据表项中的文本数据;
步骤221:如果用户节点接收到该数据消息,则执行步骤223,否则执行步骤222;
步骤222:接收到该数据消息的路由器选择所有摘要域值等于该数据消息中摘要的请求表项,针对每个选中的请求表项,该路由器从该请求表项的接口id所标识的接口转发该数据消息,删除该请求表项,执行步骤221;
步骤223:用户节点接收到该数据消息后,保存该数据消息中的文本数据;
步骤224:结束。
如果所述网络中每个路由器都包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过上述过程利用关键字kw2获取文本数据,上述过程中,用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。
本发明所述方法中,用户节点s2与路由器r2相连,如果所述网络中任何一个路由器都不包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,例如,网络中所有路由器刚启动,那么用户节点s2通过下述过程利用关键字kw2获取文本数据:
步骤301:开始;
步骤302:用户节点s2发送一个查询消息,该查询消息的消息id等于2,关键字等于kw2;
步骤303:路由器r2从下游接口f1接收到该查询消息后,创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤310,否则执行步骤304;
步骤304:从下游接口f1接收到该查询消息的路由器r2从除了接口f1的每个接口转发该查询消息;
步骤305:如果提供者节点接收到该查询消息,则执行步骤309,否则执行步骤306;
步骤306:从接口a2接收到该查询消息的路由器判断是否存在一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于a2,如果存在,则执行步骤310,否则执行步骤307;
步骤307:从接口a2接收到该查询消息的路由器创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于a2,将生命周期设置为最大值,如果该路由器至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤310,否则执行步骤308;
步骤308:从接口a2接收到该查询消息的路由器从除了接口a2的所有接口发送该查询消息,执行步骤305;
步骤309:接收到该查询消息的提供者节点选择一个文本数据表项,该文本数据表项的关键字集合包含该查询消息中的关键字,并计算查询消息中的关键字在该关键字集合中的位置k2,即该关键字集合中的第k2个元素等于该查询消息中的关键字;提供者节点发送一个响应消息,该响应消息的消息id等于3,关键字等于该查询消息中的关键字,摘要等于该文本数据表项中的摘要集合中的第k2个元素;
步骤310:如果用户节点s2接收到该响应消息,则执行步骤313,否则执行步骤311;
步骤311:从接口a3接收到该响应消息的路由器判断是否存在一个信息表项,该信息表项的摘要等于该响应消息中的摘要且接口id等于a3,如果存在,则将该信息表项的生命周期设置为最大值,如果不存在,则创建一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于a3,生命周期设置为最大值;
步骤312:从接口a3接收到该响应消息的路由器选择所有关键字域值等于该响应消息中关键字的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口id所标识的接口转发该响应消息,删除该查询表项,执行步骤310;
步骤313:用户节点s2接收到该响应消息后,发送一个请求消息,该请求消息的消息id等于4,摘要等于该响应消息中的摘要;
步骤314:路由器r2从下游接口f1接收到该请求消息后,创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤321,否则执行步骤315;
步骤315:从下游接口f1接收到该请求消息的路由器r2选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,路由器r2从该信息表项的接口id所标识的接口发送该请求消息;
步骤316:如果提供者节点接收到该请求消息,则执行步骤320,否则执行步骤317;
步骤317:从接口y2接收到该请求消息的路由器判断是否存在一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于y2,如果存在,则执行步骤321,否则执行步骤318;
步骤318:从接口y2接收到该请求消息的路由器创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于y2,将生命周期设置为最大值,如果该路由器至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤321,否则执行步骤319;
步骤319:从接口y2接收到该请求消息的路由器选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,从该信息表项的接口id所标识的接口发送该请求消息,执行步骤316;
步骤320:接收到请求消息的提供者节点选择一个文本数据表项,该文本数据表项的摘要集合包含该请求消息中的摘要,发送一个数据消息,该数据消息的消息id等于5,摘要等于请求消息中的摘要,文本数据等于该文本数据表项中的文本数据;
步骤321:如果用户节点接收到该数据消息,则执行步骤323,否则执行步骤322;
步骤322:接收到该数据消息的路由器选择所有摘要域值等于该数据消息中摘要的请求表项,针对每个选中的请求表项,该路由器从该请求表项的接口id所标识的接口转发该数据消息,删除该请求表项,执行步骤321;
步骤323:用户节点接收到该数据消息后,保存该数据消息中的文本数据;
步骤324:结束。
如果所述网络中任何一个路由器都不包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过上述过程利用关键字kw2获取文本数据,上述过程中,用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。
本发明所述方法中,用户节点s2与路由器r2相连,如果所述网络中只有部分路由器包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,例如部分路由器重启之后可能会删除所建立的关键字表项,那么用户节点s2通过下述过程利用关键字kw2获取文本数据:
步骤401:开始;
步骤402:用户节点s2发送一个查询消息,该查询消息的消息id等于2,关键字等于kw2;
步骤403:路由器r2从下游接口f1接收到该查询消息后,创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤414,否则执行步骤404;
步骤404:从下游接口f1接收到该查询消息的路由器r2判断是否存在关键字集合包含该查询消息中关键字的关键字表项,如果存在,则执行步骤405,否则执行步骤406;
步骤405:从下游接口f1接收到该查询消息的路由器r2选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,路由器r2从该关键字表项的接口id所标识的接口发送该查询消息,执行步骤407;
步骤406:从下游接口f1接收到该查询消息的路由器r2从除了接口f1以外的所有接口发送该查询消息;
步骤407:如果提供者节点接收到该查询消息,则执行步骤413,否则执行步骤408;
步骤408:从接口b2接收到该查询消息的路由器判断是否存在一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于b2,如果存在,则执行步骤414,否则执行步骤409;
步骤409:从接口b2接收到该查询消息的路由器创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于b2,将生命周期设置为最大值,如果该路由器至少有两个查询表项,这两个查询表项的关键字等于该查询消息中的关键字,则执行步骤414,否则执行步骤410;
步骤410:从接口b2接收到该查询消息的路由器判断是否存在关键字集合包含该查询消息中关键字的关键字表项,如果存在,则执行步骤411,否则执行步骤412;
步骤411:从接口b2接收到该查询消息的路由器选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,该路由器从该关键字表项的接口id所标识的接口发送该查询消息,执行步骤407;
步骤412:从接口b2接收到该查询消息的路由器从除了接口b2以外的每个接口转发该查询消息,执行步骤407;
步骤413:接收到该查询消息的提供者节点选择一个文本数据表项,该文本数据表项的关键字集合包含该查询消息中的关键字,并计算查询消息中的关键字在该关键字集合中的位置k3,即该关键字集合中的第k3个元素等于该查询消息中的关键字;提供者节点发送一个响应消息,该响应消息的消息id等于3,关键字等于该查询消息中的关键字,摘要等于该文本数据表项中的摘要集合中的第k3个元素;
步骤414:如果用户节点s2接收到该响应消息,则执行步骤417,否则执行步骤415;
步骤415:从接口b3接收到该响应消息的路由器判断是否存在一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于b3,如果存在,则将该信息表项的生命周期设置为最大值,如果不存在,则创建一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于b3,生命周期设置为最大值;
步骤416:从接口b3接收到该响应消息的路由器选择所有关键字域值等于该响应消息中关键字的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口id所标识的接口转发该响应消息,删除该查询表项,执行步骤414;
步骤417:用户节点s2接收到该响应消息后,发送一个请求消息,该请求消息的消息id等于4,摘要等于该响应消息中的摘要;
步骤418:路由器r2从下游接口f1接收到该请求消息后,创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤425,否则执行步骤419;
步骤419:从下游接口f1接收到该请求消息的路由器r2选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,路由器r2从该信息表项的接口id所标识的接口发送该请求消息;
步骤420:如果提供者节点接收到该请求消息,则执行步骤424,否则执行步骤421;
步骤421:从接口z2接收到该请求消息的路由器判断是否存在一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于z2,如果存在,则执行步骤425,否则执行步骤422;
步骤422:从接口z2接收到该请求消息的路由器创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于z2,将生命周期设置为最大值,如果该路由器至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤425,否则执行步骤423;
步骤423:从接口z2接收到该请求消息的路由器选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,从该信息表项的接口id所标识的接口发送该请求消息,执行步骤420;
步骤424:接收到请求消息的提供者节点选择一个文本数据表项,该文本数据表项的摘要集合包含该请求消息中的摘要,提供者节点发送一个数据消息,该数据消息的消息id等于5,摘要等于请求消息中的摘要,文本数据等于该文本数据表项中的文本数据;
步骤425:如果用户节点接收到该数据消息,则执行步骤427,否则执行步骤426;
步骤426:接收到该数据消息的路由器选择所有摘要域值等于该数据消息中摘要的请求表项,针对每个选中的请求表项,该路由器从该请求表项的接口id所标识的接口转发该数据消息,删除该请求表项,执行步骤425;
步骤427:用户节点接收到该数据消息后,保存该数据消息中的文本数据;
步骤428:结束。
如果所述网络中只有部分路由器包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过上述过程利用关键字kw2获取文本数据,上述过程中,用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。
本发明所述方法中,数据消息中的文本数据为农田的环境监测数据,包括土壤湿度,用户节点获取数据消息中的文本数据后,如果土壤湿度小于阈值th0,则实施灌溉,否则则不实施灌溉,th0取值范围为60%~70%。
有益效果:本发明提供了一种基于大数据网络的灌溉监测系统实现方法,用户通过本发明所提供的一种基于大数据网络的灌溉监测系统实现方法能够快速获取灌溉所需数据,例如土壤湿度等,从而实施及时有效地灌溉,确保农作物健康生长,本发明可应用于农业灌溉,森林灌溉等领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的创建关键字表流程示意图。
图2为本发明所述的查询文本数据流程示意图。
图3为本发明所述的获取文本数据流程示意图。
图4为本发明所述的文本数据通信流程示意图。
具体实施方式:
本发明提供了一种基于大数据网络的灌溉监测系统实现方法,用户通过本发明所提供的一种基于大数据网络的灌溉监测系统实现方法能够快速获取灌溉所需数据,例如土壤湿度等,从而实施及时有效地灌溉,确保农作物健康生长,本发明可应用于农业灌溉,森林灌溉等领域,具有广泛的应用前景。
图1为本发明所述的创建关键字表流程示意图。网络包含用户节点、提供者节点和路由器;用户节点配置一个接口,提供者节点配置一个接口,提供者节点为用于采集灌溉监测系统中的土壤湿度数据,用户节点通过灌溉监测系统获取提供者节点采集的土壤相关数据从而决定对土壤是否进行灌溉;路由器配置两个以上的接口,路由器的接口包括下游接口和上游接口;用户节点、提供者节点以及路由器的每个接口由接口id唯一标识,接口id为x的接口称为接口x;路由器的下游接口与用户节点或者提供者节点相连,路由器的上游接口与其他路由器相连;
每个提供者节点保存一个文本数据表,一个文本数据表项包含文本数据、关键字集合、摘要集合和生命周期,其中,关键字集合中的每个元素都包含在文本数据域值中,摘要集合中的每个元素都包含在文本数据域值中;一个文本数据表项的关键字集合的元素个数等于该文本数据表项的摘要集合中的元素个数;如果一个文本数据表项的关键字集合的元素个数为n1,n1为大于1的整数,那么该关键字集合中的第n个元素与该文本数据表项中的摘要集合中的第n个元素对应,1≤n≤n1,即一个文本数据表项中的关键字集合中的第一个元素与摘要集合中的第一个元素相对应,一个文本数据表项中的关键字集合中的第二个元素与摘要集合中的第二个元素相对应,一个文本数据表项中的关键字集合中的第n个元素与摘要集合中的第n个元素相对应;每个提供者的文本数据表为预先设置;例如,一个文本数据表项的文本数据域值为灌溉,关键字集合域值为决定是否灌溉的关键字,摘要集合中的每个摘要为关键字集合中对应关键字的具体定义,即文本数据表项中的摘要集合中的第n个元素为关键字集合中的第n(1≤n≤n1)个元素的具体定义;
如果每个路由器保存一个关键字表,一个关键字表项包含关键字集合、接口id和生命周期;一个消息由一个消息id标识;发布消息包含消息id和关键字集合,提供者节点p1与路由器r1相连,则定期执行下述操作:
步骤101:开始;
步骤102:提供者节点p1查看文本数据表,针对每个文本数据表项执行下述操作:发送一个发布消息,该发布消息的消息id为1,关键字集合等于该文本数据表项的关键字集合;
步骤103:路由器r1从下游接口d1接收到该发布消息后,判断是否存在一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合,接口id等于d1,如果存在,则执行步骤104,否则执行步骤105;
步骤104:从下游接口d1接收到该发布消息的路由器r1选择一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于d1,将该关键字表项的生命周期设置为最大值,生命周期最大值取值范围为500ms-1s,执行步骤106;
步骤105:从下游接口d1接收到该发布消息的路由器r1创建一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于d1,将该关键字表项的生命周期设置为最大值,生命周期最大值取值范围为500ms-1s;
步骤106:从下游接口d1接收到该发布消息的路由器r1从每个上游接口转发该发布消息;
步骤107:从上游接口u1接收到该发布消息的路由器判断是否存在一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合,接口id等于u1且生命周期大于阈值th1,阈值th1取值范围为最大生命周期的95%-100%,如果存在,则执行步骤112,否则执行步骤108;
步骤108:从上游接口u1接收到该发布消息的路由器判断是否存在一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于u1,如果存在,则执行步骤109,否则执行步骤110;
步骤109:从上游接口u1接收到该发布消息的路由器选择一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于u1,将该关键字表项的生命周期设置为最大值,执行步骤111;
步骤110:从上游接口u1接收到该发布消息的路由器创建一个关键字表项,该关键字表项的关键字集合等于该发布消息中的关键字集合且接口id等于u1,将该关键字表项的生命周期设置为最大值;
步骤111:从上游接口u1接收到该发布消息的路由器从除了接口u1以外的每个上游接口转发该发布消息,执行步骤107;
步骤112:结束。
提供者通过上述过程建立或者更新关键字表,这样,每个路由器可以建立或者更新关键字表项从而获取关键字集合,每个关键字表项通过生命周期来确保该表项的实时性和有效性,从而确保了数据通信的有效性和实时性,每个关键字表项通过接口id来确保数据通信的正确性,以便用户节点能够通过关键字表及时高效地获取数据。
图2为本发明所述的查询文本数据流程示意图。每个路由器保存一个查询表,一个查询表项包含关键字、接口id和生命周期;
每个路由器保存一个信息表,一个信息表项包含摘要、接口id和生命周期;
每个路由器保存一个请求表,一个请求表项包含摘要、接口id和生命周期;
一个查询消息包含消息id和关键字;
一个响应消息包含消息id、关键字和摘要;
一个请求消息包含消息id和摘要;
一个数据消息包含消息id、摘要和文本数据;
用户节点s2与路由器r2相连,如果所述网络中每个路由器都包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过下述过程利用关键字kw2获取文本数据:
步骤201:开始;
步骤202:用户节点s2发送一个查询消息,该查询消息的消息id等于2,关键字等于kw2;
步骤203:路由器r2从下游接口f1接收到该查询消息后,创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤210,否则执行步骤204;
步骤204:从下游接口f1接收到该查询消息的路由器r2选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,路由器r2从该关键字表项的接口id所标识的接口发送该查询消息;
步骤205:如果提供者节点接收到该查询消息,则执行步骤209,否则执行步骤206;
步骤206:从接口f2接收到该查询消息的路由器判断是否存在一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于f2,如果存在,则执行步骤210,否则执行步骤207;
步骤207:从接口f2接收到该查询消息的路由器创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于f2,将生命周期设置为最大值,如果该路由器至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤210,否则执行步骤208;
步骤208:从接口f2接收到该查询消息的路由器选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,该路由器从该关键字表项的接口id所标识的接口发送该查询消息,执行步骤205;
步骤209:接收到该查询消息的提供者节点选择一个文本数据表项,该文本数据表项的关键字集合包含该查询消息中的关键字,并计算查询消息中的关键字在该关键字集合中的位置k1,即该关键字集合中的第k1个元素等于该查询消息中的关键字,提供者节点发送一个响应消息,该响应消息的消息id等于3,关键字等于该查询消息中的关键字,摘要等于该文本数据表项中的摘要集合中的第k1个元素;
步骤210:如果用户节点s2接收到该响应消息,则执行步骤213,否则执行步骤211;
步骤211:从接口f3接收到该响应消息的路由器判断是否存在一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于f3,如果存在,则将该信息表项的生命周期设置为最大值,如果不存在,则创建一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于f3,生命周期设置为最大值;
步骤212:从接口f3接收到该响应消息的路由器选择所有关键字域值等于该响应消息中关键字的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口id所标识的接口转发该响应消息,删除该查询表项,执行步骤210;
步骤213:用户节点s2接收到该响应消息后,发送一个请求消息,该请求消息的消息id等于4,摘要等于该响应消息中的摘要;
步骤214:路由器r2从下游接口f1接收到该请求消息后,创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个请求表项,这两个请求表项的摘要均等于该请求消息中的摘要,则执行步骤221,否则执行步骤215;
步骤215:从下游接口f1接收到该请求消息的路由器r2选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,路由器r2从该信息表项的接口id所标识的接口发送该请求消息;
步骤216:如果提供者节点接收到该请求消息,则执行步骤220,否则执行步骤217;
步骤217:从接口x2接收到该请求消息的路由器判断是否存在一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于x2,如果存在,则执行步骤221,否则执行步骤218;
步骤218:从接口x2接收到该请求消息的路由器创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于x2,将生命周期设置为最大值,如果该路由器至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤221,否则执行步骤219;
步骤219:从接口x2接收到该请求消息的路由器选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,从该信息表项的接口id所标识的接口发送该请求消息,执行步骤216;
步骤220:接收到请求消息的提供者节点选择一个文本数据表项,该文本数据表项的摘要集合包含该请求消息中的摘要,提供者节点发送一个数据消息,该数据消息的消息id等于5,摘要等于请求消息中的摘要,文本数据等于该文本数据表项中的文本数据;
步骤221:如果用户节点接收到该数据消息,则执行步骤223,否则执行步骤222;
步骤222:接收到该数据消息的路由器选择所有摘要域值等于该数据消息中摘要的请求表项,针对每个选中的请求表项,该路由器从该请求表项的接口id所标识的接口转发该数据消息,删除该请求表项,执行步骤221;
步骤223:用户节点接收到该数据消息后,保存该数据消息中的文本数据;
步骤224:结束。
如果所述网络中每个路由器都包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过上述过程利用关键字kw2获取文本数据,上述过程中,用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。
图3为本发明所述的获取文本数据流程示意图。用户节点s2与路由器r2相连,如果所述网络中任何一个路由器都不包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,例如,网络中所有路由器刚启动,那么用户节点s2通过下述过程利用关键字kw2获取文本数据:
步骤301:开始;
步骤302:用户节点s2发送一个查询消息,该查询消息的消息id等于2,关键字等于kw2;
步骤303:路由器r2从下游接口f1接收到该查询消息后,创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤310,否则执行步骤304;
步骤304:从下游接口f1接收到该查询消息的路由器r2从除了接口f1的每个接口转发该查询消息;
步骤305:如果提供者节点接收到该查询消息,则执行步骤309,否则执行步骤306;
步骤306:从接口a2接收到该查询消息的路由器判断是否存在一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于a2,如果存在,则执行步骤310,否则执行步骤307;
步骤307:从接口a2接收到该查询消息的路由器创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于a2,将生命周期设置为最大值,如果该路由器至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤310,否则执行步骤308;
步骤308:从接口a2接收到该查询消息的路由器从除了接口a2的所有接口发送该查询消息,执行步骤305;
步骤309:接收到该查询消息的提供者节点选择一个文本数据表项,该文本数据表项的关键字集合包含该查询消息中的关键字,并计算查询消息中的关键字在该关键字集合中的位置k2,即该关键字集合中的第k2个元素等于该查询消息中的关键字;提供者节点发送一个响应消息,该响应消息的消息id等于3,关键字等于该查询消息中的关键字,摘要等于该文本数据表项中的摘要集合中的第k2个元素;
步骤310:如果用户节点s2接收到该响应消息,则执行步骤313,否则执行步骤311;
步骤311:从接口a3接收到该响应消息的路由器判断是否存在一个信息表项,该信息表项的摘要等于该响应消息中的摘要且接口id等于a3,如果存在,则将该信息表项的生命周期设置为最大值,如果不存在,则创建一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于a3,生命周期设置为最大值;
步骤312:从接口a3接收到该响应消息的路由器选择所有关键字域值等于该响应消息中关键字的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口id所标识的接口转发该响应消息,删除该查询表项,执行步骤310;
步骤313:用户节点s2接收到该响应消息后,发送一个请求消息,该请求消息的消息id等于4,摘要等于该响应消息中的摘要;
步骤314:路由器r2从下游接口f1接收到该请求消息后,创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤321,否则执行步骤315;
步骤315:从下游接口f1接收到该请求消息的路由器r2选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,路由器r2从该信息表项的接口id所标识的接口发送该请求消息;
步骤316:如果提供者节点接收到该请求消息,则执行步骤320,否则执行步骤317;
步骤317:从接口y2接收到该请求消息的路由器判断是否存在一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于y2,如果存在,则执行步骤321,否则执行步骤318;
步骤318:从接口y2接收到该请求消息的路由器创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于y2,将生命周期设置为最大值,如果该路由器至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤321,否则执行步骤319;
步骤319:从接口y2接收到该请求消息的路由器选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,从该信息表项的接口id所标识的接口发送该请求消息,执行步骤316;
步骤320:接收到请求消息的提供者节点选择一个文本数据表项,该文本数据表项的摘要集合包含该请求消息中的摘要,发送一个数据消息,该数据消息的消息id等于5,摘要等于请求消息中的摘要,文本数据等于该文本数据表项中的文本数据;
步骤321:如果用户节点接收到该数据消息,则执行步骤323,否则执行步骤322;
步骤322:接收到该数据消息的路由器选择所有摘要域值等于该数据消息中摘要的请求表项,针对每个选中的请求表项,该路由器从该请求表项的接口id所标识的接口转发该数据消息,删除该请求表项,执行步骤321;
步骤323:用户节点接收到该数据消息后,保存该数据消息中的文本数据;
步骤324:结束。
如果所述网络中任何一个路由器都不包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过上述过程利用关键字kw2获取文本数据,上述过程中,用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。
图4为本发明所述的文本数据通信流程示意图。用户节点s2与路由器r2相连,如果所述网络中只有部分路由器包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,例如部分路由器重启之后可能会删除所建立的关键字表项,那么用户节点s2通过下述过程利用关键字kw2获取文本数据:
步骤401:开始;
步骤402:用户节点s2发送一个查询消息,该查询消息的消息id等于2,关键字等于kw2;
步骤403:路由器r2从下游接口f1接收到该查询消息后,创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个关键字分别等于该查询消息中的关键字的查询表项,则执行步骤414,否则执行步骤404;
步骤404:从下游接口f1接收到该查询消息的路由器r2判断是否存在关键字集合包含该查询消息中关键字的关键字表项,如果存在,则执行步骤405,否则执行步骤406;
步骤405:从下游接口f1接收到该查询消息的路由器r2选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,路由器r2从该关键字表项的接口id所标识的接口发送该查询消息,执行步骤407;
步骤406:从下游接口f1接收到该查询消息的路由器r2从除了接口f1以外的所有接口发送该查询消息;
步骤407:如果提供者节点接收到该查询消息,则执行步骤413,否则执行步骤408;
步骤408:从接口b2接收到该查询消息的路由器判断是否存在一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于b2,如果存在,则执行步骤414,否则执行步骤409;
步骤409:从接口b2接收到该查询消息的路由器创建一个查询表项,该查询表项的关键字等于该查询消息中的关键字且接口id等于b2,将生命周期设置为最大值,如果该路由器至少有两个查询表项,这两个查询表项的关键字等于该查询消息中的关键字,则执行步骤414,否则执行步骤410;
步骤410:从接口b2接收到该查询消息的路由器判断是否存在关键字集合包含该查询消息中关键字的关键字表项,如果存在,则执行步骤411,否则执行步骤412;
步骤411:从接口b2接收到该查询消息的路由器选择所有关键字集合包含该查询消息中关键字的关键字表项,针对每个选中的关键字表项,该路由器从该关键字表项的接口id所标识的接口发送该查询消息,执行步骤407;
步骤412:从接口b2接收到该查询消息的路由器从除了接口b2以外的每个接口转发该查询消息,执行步骤407;
步骤413:接收到该查询消息的提供者节点选择一个文本数据表项,该文本数据表项的关键字集合包含该查询消息中的关键字,并计算查询消息中的关键字在该关键字集合中的位置k3,即该关键字集合中的第k3个元素等于该查询消息中的关键字;提供者节点发送一个响应消息,该响应消息的消息id等于3,关键字等于该查询消息中的关键字,摘要等于该文本数据表项中的摘要集合中的第k3个元素;
步骤414:如果用户节点s2接收到该响应消息,则执行步骤417,否则执行步骤415;
步骤415:从接口b3接收到该响应消息的路由器判断是否存在一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于b3,如果存在,则将该信息表项的生命周期设置为最大值,如果不存在,则创建一个信息表项,该信息表项的摘要等于该响应消息中的摘要,且接口id等于b3,生命周期设置为最大值;
步骤416:从接口b3接收到该响应消息的路由器选择所有关键字域值等于该响应消息中关键字的查询表项,针对每个选中的查询表项,该路由器从该查询表项的接口id所标识的接口转发该响应消息,删除该查询表项,执行步骤414;
步骤417:用户节点s2接收到该响应消息后,发送一个请求消息,该请求消息的消息id等于4,摘要等于该响应消息中的摘要;
步骤418:路由器r2从下游接口f1接收到该请求消息后,创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要,接口id等于f1,生命周期设置为最大值,如果路由器r2至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤425,否则执行步骤419;
步骤419:从下游接口f1接收到该请求消息的路由器r2选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,路由器r2从该信息表项的接口id所标识的接口发送该请求消息;
步骤420:如果提供者节点接收到该请求消息,则执行步骤424,否则执行步骤421;
步骤421:从接口z2接收到该请求消息的路由器判断是否存在一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于z2,如果存在,则执行步骤425,否则执行步骤422;
步骤422:从接口z2接收到该请求消息的路由器创建一个请求表项,该请求表项的摘要等于该请求消息中的摘要且接口id等于z2,将生命周期设置为最大值,如果该路由器至少有两个摘要分别等于该请求消息中的摘要的请求表项,则执行步骤425,否则执行步骤423;
步骤423:从接口z2接收到该请求消息的路由器选择一个信息表项,该信息表项的摘要域值等于该请求消息中的摘要,从该信息表项的接口id所标识的接口发送该请求消息,执行步骤420;
步骤424:接收到请求消息的提供者节点选择一个文本数据表项,该文本数据表项的摘要集合包含该请求消息中的摘要,提供者节点发送一个数据消息,该数据消息的消息id等于5,摘要等于请求消息中的摘要,文本数据等于该文本数据表项中的文本数据;
步骤425:如果用户节点接收到该数据消息,则执行步骤427,否则执行步骤426;
步骤426:接收到该数据消息的路由器选择所有摘要域值等于该数据消息中摘要的请求表项,针对每个选中的请求表项,该路由器从该请求表项的接口id所标识的接口转发该数据消息,删除该请求表项,执行步骤425;
步骤427:用户节点接收到该数据消息后,保存该数据消息中的文本数据;
步骤428:结束。
如果所述网络中只有部分路由器包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过上述过程利用关键字kw2获取文本数据,上述过程中,用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。数据消息中的文本数据为农田的环境监测数据,包括土壤湿度,用户节点获取数据消息中的文本数据后,如果土壤湿度小于阈值th0,则实施灌溉,否则则不实施灌溉,th0取值范围为60%~70%。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种基于大数据网络的灌溉监测系统实现方法。提供者节点p1与路由器r1相连,提供者节点p1启动后,执行步骤101-112在每个路由器建立一个关键字表项,关键字集合域值为决定是否灌溉的关键字,例如{土壤湿度,土壤温度}。提供者通过上述过程建立或者更新关键字表,这样,每个路由器可以建立或者更新关键字表项从而获取关键字集合,每个关键字表项通过生命周期来确保该表项的实时性和有效性,从而确保了数据通信的有效性和实时性,每个关键字表项通过接口id来确保数据通信的正确性,以便用户节点能够通过关键字表及时高效地获取数据。用户节点s2与路由器r2相连,如果每个路由器都包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2则执行步骤201-224利用关键字kw2获取文本数据,例如土壤湿度。用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点s2通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。如果所述网络中任何一个路由器都不包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,用户节点s2则执行步骤301-324利用关键字kw2获取文本数据,例如土壤湿度。用户节点s2通过上述过程从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。如果只有部分路由器包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,例如部分路由器重启之后可能会删除所建立的关键字表项,用户节点s2则执行步骤401-428利用关键字kw2获取文本数据,例如土壤湿度。如果所述网络中只有部分路由器包含一个关键字表项,该关键字表项的关键字集合包含关键字kw2,那么用户节点s2通过上述过程利用关键字kw2获取文本数据,上述过程中,用户节点s2从性能最好的提供者获取数据,因此提高了数据通信性能,同时用户节点通过上述过程通过性能最好的路径获取数据,进一步提高了数据通信性能。用户节点通过上述过程可以快速获取灌溉所需数据,例如土壤湿度从而决定是否进行及时有效地灌溉。用户节点获取数据消息中的文本数据后,如果土壤湿度小于阈值th0,则实施灌溉,否则则不实施灌溉。th0取值范围为60%~70%。性能分析如下:当用户节点与数据所在位置较远的情况下,数据通信延迟随之增加,当用户节点与数据所在位置较近的情况下,数据通信延迟随之稍微下降。数据获取的平均延迟为304ms。
表1仿真参数
本发明提供了本发明公开了一种基于大数据网络的灌溉监测系统实现方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。