[0020] 步骤102:注册提供节点P构建一个二元组集合G1,该二元组集合G1包括S个二元组,即<保密分片编号PSj,保密数据分片PEj>,设置一个参数h1,其初始值为Z,0
[0021] 步骤103:注册提供节点P构建一个分配分片消息,该分配分片消息的消息格式为0,消息类型为1,数据名称域值为保密名称PN,消息负载为参数h1和二元组集合G1,注册提供节点P从每个节点发送该分配分片消息;
[0022] 步骤104:一个节点从接口f1接收到该分配分片消息后,如果该节点不是大数据C的普通提供节点或者注册提供节点,即数据表中没有保存保密名称域值为该分配分片消息的数据名称的数据表项,则执行步骤106,否则执行步骤105;
[0023] 步骤105:从接口f1接收到分配分片消息的节点从除了接口f1以外的每个接口转发该分配分片消息,执行步骤104;
[0024] 步骤106:从接口f1接收到分配分片消息的节点查看分配分片消息负载的参数h1和二元组集合G2,如果该二元组集合的元素个数不小于参数h1,则该节点从该二元组集合中随机选取h1个二元组,否则选取该二元组集合中的所有二元组;然后对于每个选取的二元组,该节点进行如下操作:该节点创建一个数据表项,该数据表项的保密名称域值为接收到的分配分片消息的数据名称,保密分片编号域值设置为该二元组的第一个元素,保密分片域值设置为该二元组的第二个元素,将该二元组从二元组集合G2中删除;
[0025] 步骤107:将该节点称为大数据C的普通提供节点,如果二元组集合G2为空,则执行步骤109,否则执行步骤108;
[0026] 步骤108:从接口f1接收到分配分片消息的节点从除了接口f1以外的每个接口转发该分配分片消息,该分配分片消息的负载为二元组集合G2,执行步骤104;
[0027] 步骤109:结束。
[0028] 本发明所述方法中,将大数据C的注册提供节点或者普通提供节点统称为大数据C的提供节点;在大数据C的提供节点P1保存了大数据C的部分保密数据分片后,执行下述操作以建立路由表项:
[0029] 步骤201:开始;
[0030] 步骤202:提供节点P1从数据表中选取数据名称域值为保密名称PN的所有数据表项,构建一个集合G3,集合G3由选取的所有数据表项的保密分片编号域值构成;提供节点P1构建一个建立路由表项消息,消息格式为1,消息类型为2,分片编号集合为集合G3,数据名称为保密名称PN,消息负载为空;提供节点P1从每个接口转发构建的建立路由表项消息;
[0031] 步骤203:每个节点从自己的接口f2收到该建立路由表项消息后,查看路由表,判断是否存在保密名称域值为该建立路由表项消息的数据名称,且保密分片编号集合域值等于该建立路由表项消息的分片编号集合的路由表项,如果存在,则执行步骤205,否则执行步骤204;
[0032] 步骤204:从接口f2收到该建立路由表项消息的节点建立一个路由表项,该路由表项的接口域值为f2,保密名称域值为该建立路由表项消息的数据名称,保密分片编号集合域值等于该建立路由表项消息的分片编号集合;该节点从除了接口f2以外的所有接口转发该建立路由消息,执行步骤203;
[0033] 步骤205:从接口f2收到建立路由表项消息的节点丢弃该建立路由表项消息;
[0034] 步骤206:结束。
[0035] 上述过程能够快速建立路由表项从而实现正确可靠的数据通信。
[0036] 本发明所述方法中,一个节点维护以一个聚合表,一个聚合表项包含三个域:保密名称域、保密分片集合域和接口域;
[0037] 大数据C的消费节点U通过下述过程获取大数据C:
[0038] 步骤301:开始;
[0039] 步骤302:消费节点U通过公式(3)和公式(4)获取保密名称PN和保密分片编号PSj,构建一个集合G4,集合G4包含S个元素,S个元素即由保密分片编号PSj构成;消费节点U构建一个请求消息,该请求消息的消息格式为1,消息类型为3,分片编号集合为集合G4,数据名称为保密名称PN,负载为空;消费节点U查看路由表,选择保密名称为PN且保密分片编号集合的元素个数最多的路由表项,从该路由表项的接口域发送该请求消息;
[0040] 步骤303:每个节点从自己的接口f3接收到该请求消息,如果该节点的数据表中存在保密名称域值为请求消息的数据名称的数据表项,该节点则针对请求消息中的编号分片集合的每个元素执行下述操作:如果该节点存在保密名称域值为请求消息的数据名称且保密分片编号域值等于该元素的数据表项,该节点则从接口f3发送一个响应消息,该响应消息的消息格式为1,消息类型为4,分片编号集合为{该数据表项的保密分片编号域值},数据名称为接收到的请求消息的数据名称,负载为该数据表项的保密分片域值,该节点从请求消息的分片编号集合中删除该元素;
[0041] 步骤304:如果请求消息的分片编号集合为空,则执行步骤312,否则执行步骤305;
[0042] 步骤305:从接口f3接收到该请求消息的节点查看聚合表,如果存在接口域值为f3,保密名称域值等于请求消息的数据名称且保密分片编号集合为请求消息的分片编号集合的超集的聚合表项,则执行步骤312,否则执行步骤306;
[0043] 步骤306:从接口f3接收到该请求消息的节点查看聚合表,如果存在保密名称域值等于请求消息的数据名称且保密分片编号集合为请求消息的分片编号集合的超集的聚合表项,则执行步骤307,否者执行步骤308;
[0044] 步骤307:从接口f3接收到该请求消息的节点创建一个聚合表项,该聚合表项的接口域值等于接口f3,保密名称域值等于该请求消息的数据名称,保密分片编号集合等于该请求消息的分片编号集合,执行步骤312;
[0045] 步骤308:从接口f3接收到该请求消息的节点查看聚合表,如果存在保密名称域值等于请求消息的数据名称且保密分片编号集合与请求消息的分片编号集合的交集不等于空的聚合表项,则执行步骤309,否则执行步骤310;
[0046] 步骤309:从接口f3接收到该请求消息的节点选择保密名称域值等于请求消息的数据名称,且保密分片编号集合与请求消息的分片编号集合的交集G5不等于空的聚合表项,如果该聚合表项的接口域值不等于f3,则该节点创建一个聚合表项,该聚合表项的保密名称域值等于请求消息的数据名称且保密分片编号集合等于集合G5,接口域值等于f3,然后该节点从请求消息的分片编号集合中删除集合G5,执行步骤308;
[0047] 步骤310:从接口f3接收到该请求消息的节点判断请求消息的分片编号集合是否为空,如果是,则执行步骤312,否则执行步骤311;
[0048] 步骤311:从接口f3接收到该请求消息的节点查看路由表,选择保密名称域值等于请求消息的数据名称,且保密分片编号集合与请求消息的分片编号集合的交集元素个数最大的路由表项,然后从该路由表项的接口域转发该请求消息,执行步骤303;
[0049] 步骤312:节点从接口f4接收到步骤303的响应消息,如果该节点是消费节点U,则执行步骤314,否则执行步骤313;
[0050] 步骤313:从接口f4接收到响应消息的节点查看聚合表,选择所有保密名称域值等于响应消息的数据名称,且保密分片编号集合为响应消息分片编号集合的超集的聚合表项,对于每个选择的聚合表项,该节点执行下述操作:该节点从该聚合表项的接口域值转发接收到的响应消息,然后从该聚合表项的保密分片编号集合中删除该响应消息分片编号集合中的元素,如果该聚合表项的保密分片编号集合为空,则删除该聚合表项;执行步骤312;
[0051] 步骤314:消费节点U收到响应消息后,将该响应消息分片编号集合中的元素与每一个保密分片编号PSj进行比较,如果该元素等于保密分片编号PSq,q=1…S,该节点则使用秘钥kq解密响应消息中的负载得到数据分片Eq;
[0052] 步骤315:判断消费节点U是否收到了大数据C的所有S个数据分片,如果是,则执行步骤316,否则执行步骤312;
[0053] 步骤316:消费节点U将S个数据分片构建成大数据C;
[0054] 步骤317:结束。
[0055] 消费节点通过上述过程能够快速获取数据。
[0056] 本发明所述方法中,如果消费节点U想获取大数据C的一些数据分片,则执行下述过程:
[0057] 步骤401:开始;
[0058] 步骤402:消费节点U通过公式(3)获取保密名称PN,通过公式(4)得到需要获取的每个数据分片的保密分片编号,例如,第一数据分片和第三数据分片,构建一个集合G6,集合G6由所有需要获取的数据分片的保密分片编号构成;消费节点U构建一个请求消息,该请求消息的消息格式为1,消息类型为3,分片编号集合为集合G6,数据名称为保密名称PN,负载为空;消费节点U查看路由表,选择保密名称为PN且保密分片编号集合与集合G6的交集元素个数最多的路由表项,然后从该路由表项的接口域发送该请求消息;
[0059] 步骤403:节点从接口f5接收到该请求消息,如果该节点的数据表中存在保密名称域值为请求消息的数据名称的数据表项,该节点则针对请求消息中编号分片集合的每个元素执行下述操作:如果该节点存在保密名称域值为请求消息的数据名称,且保密分片编号域值等于该元素的数据表项,该节点则从接口f5发送一个响应消息,该响应消息的消息格式为1,消息类型为4,分片编号集合由一个元素构成,该元素为该数据表项的保密分片编号域值,数据名称为接收到的请求消息的数据名称,负载为该数据表项的保密分片域值,然后该节点从请求消息的分片编号集合中删除该元素;
[0060] 步骤404:如果请求消息的分片编号集合为空,则执行步骤412,否则执行步骤405;
[0061] 步骤405:从接口f5接收到该请求消息的节点查看聚合表,如果存在接口域值为f5,保密名称域值等于请求消息的数据名称且保密分片编号集合为请求消息的分片编号集合的超集的聚合表项,则执行步骤412,否则执行步骤406;
[0062] 步骤406:从接口f5接收到该请求消息的节点查看聚合表,如果存在保密名称域值等于请求消息的数据名称,且保密分片编号集合为请求消息的分片编号集合的超集的聚合表项,则执行步骤407,否者执行步骤408;
[0063] 步骤407:从接口f5接收到该请求消息的节点创建一个聚合表项,该聚合表项的接口域值等于接口f5,保密名称域值等于该请求消息的数据名称,保密分片编号集合等于该请求消息的分片编号集合,执行步骤412;
[0064] 步骤408:从接口f5接收到该请求消息的节点查看聚合表,如果存在保密名称域值等于请求消息的数据名称,且保密分片编号集合与请求消息的分片编号集合的交集不等于空的聚合表项,则执行步骤409,否则执行步骤410;
[0065] 步骤409:从接口f5接收到该请求消息的节点选择保密名称域值等于请求消息的数据名称,且保密分片编号集合与请求消息的分片编号集合的交集G7不等于空的聚合表项,如果该聚合表项的接口域值不等于f5,则该节点创建一个聚合表项,该聚合表项的保密名称域值等于请求消息的数据名称,保密分片编号集合等于集合G7,接口域值等于f5,然后该节点从请求消息的分片编号集合中删除集合G7,执行步骤408;
[0066] 步骤410:从接口f5接收到该请求消息的节点判断请求消息的分片编号集合是否为空,如果是,则执行步骤412,否则执行步骤411;
[0067] 步骤411:从接口f5接收到该请求消息的节点查看路由表,选择保密名称域值等于请求消息的数据名称,且保密分片编号集合与请求消息的分片编号集合的交集元素个数最大的路由表项,然后从该路由表项的接口域转发该请求消息,执行步骤403;
[0068] 步骤412:节点从接口f6接收到响应消息,如果该节点是消费节点U,则执行步骤414,否则执行步骤413;
[0069] 步骤413:从接口f6接收到响应消息的节点查看聚合表,选择所有保密名称域值等于响应消息的数据名称,且保密分片编号集合为响应消息分片编号集合的超集的聚合表项,对于每个选中的聚合表项,该节点执行下述操作:该节点从该聚合表项的接口域值转发接收到的响应消息,然后从该聚合表项的保密分片编号集合中删除该响应消息分片编号集合中的元素,如果该聚合表项的保密分片编号集合为空,则删除该聚合表项;执行步骤412;
[0070] 步骤414:消费节点U收到响应消息后,将该响应消息分片编号集合中的元素与每一个保密分片编号PSj进行比较,如果该元素等于保密分片编号PSw,w=1…S,该节点则使用秘钥kw解密响应消息中的负载得到数据分片Ew;消费节点U从集合G6中删除该响应消息分片编号集合中的元素;
[0071] 步骤415:如果集合G6为空,则执行步骤416,否则执行步骤412;
[0072] 步骤416:结束。
[0073] 消费节点通过上述过程能够快速获取部分数据分片从而降低数据通信延迟。
[0074] 有益效果:本发明提供了一种可靠的大数据网络实现方法,消费节点通过本发明所提供的大数据网络实现方法可安全获取网络提供的数据服务,确保安全性,缩短数据获取延迟和代价,提高服务质量,本发明可应用于重要信息的传输,例如道路路况监测、车辆管理等领域,具有广泛的应用前景。