发明内容
有鉴于此,本发明的目的在于提供一种单向网络中数据的组播方法、接收方法、组播装置、接收装置及***,不需要把所有的终端设备标识作为分组信息广播下去即可让每个终端设备知道自己所属的分组,大大减少数据发送量,节约带宽,缩短轮播周期。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明提供一种单向网络中数据的组播方法,包括:
根据各分组标识包含的终端设备标识生成各分组标识对应的分组位串;
将各分组标识及各分组标识对应的分组位串的映射关系生成分组信息;
将业务元数据、与所述业务元数据对应的业务描述信息、所述分组信息广播至终端设备,所述业务描述信息包含所述业务元数据需要广播的各分组标识。
本发明还提供一种单向网络中数据的接收方法,包括:
从广播数据流中获取分组信息,解析出分组信息包含的各分组标识与各分组标识对应的分组位串;
将终端设备标识与各分组位串进行匹配,若匹配成功,则保存匹配成功的分组位串对应的分组标识;
检测业务描述信息中是否包含所述分组标识,若包含,则获取所述业务描述信息对应的业务元数据。
本发明还提供一种单向网络中数据组播的装置,包括:
分组位串生成模块,用于根据各分组标识包含的终端设备标识生成各分组标识对应的分组位串;
分组信息生成模块,用于将各分组标识及各分组标识对应的分组位串的映射关系生成分组信息;
播发模块,用于将业务元数据、与所述业务元数据对应的业务描述信息、所述分组信息广播至终端设备,所述业务描述信息包含所述业务元数据需要广播的各分组标识。
本发明还提供一种单向网络中数据接收的装置,包括:
分组信息解析模块,用于从广播数据流中获取分组信息,解析出分组信息包含的各分组标识与各分组标识对应的分组位串;
分组匹配模块,用于将终端设备标识与各分组位串进行匹配,若匹配成功,则保存匹配成功的分组位串对应的分组标识;
数据接收模块,用于检测业务描述信息中是否包含所述分组标识,若包含,则获取所述业务描述信息对应的业务元数据。
本发明还提供一种单向网络中数据组播的***,包括:
数据库,用于存储终端设备的标识信息;
分组控制服务器,用于从所述数据库中读取终端设备的标识信息创建分组,为每个分组分配分组标识,根据各分组标识包含的终端设备标识生成各分组标识对应的分组位串,将各分组标识及各分组标识对应的分组位串的映射关系生成分组信息,将各分组标识发送给业务服务器,将分组信息发送给播发服务器;
业务服务器,根据业务元数据和分组标识生成业务描述信息,所述业务描述信息包含所述业务元数据需要广播的各分组标识,将业务元数据及所述业务元数据对应的业务描述信息发送至播发服务器;
播发服务器,用于将业务元数据、与所述业务元数据对应的业务描述信息、所述分组信息广播至终端设备;
终端设备,用于根据终端设备标识在所述分组信息中查询出其所属的分组标识,检测业务描述信息中是否包含所述分组标识,若包含,则获取所述业务描述信息对应的业务元数据。
由上述的技术方案可见,通过采用多个哈希函数将分组标识包含的各终端设备标识映射到一个位数组生成分组位串,再将分组位串与分组标识的映射关系生成分组信息广播到终端。终端设备采用同样的哈希函数计算出终端设备标识的哈希值序列,将哈希值序列与各分组位串进行匹配得到该终端设备所属的分组标识。终端设备根据分组标识接收属于该分组的业务数据。本方案不需要把所有的终端设备标识作为分组信息广播下去即可让每个终端设备知道自己所属的分组,大大减少数据发送量,节约带宽,缩短轮播周期。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
如图1为本发明实施例提供的一种单向网络中数据组播的方法流程图,包括:
步骤S101,根据各分组标识包含的终端设备标识生成各分组标识对应的分组位串。
数字电视前端***中包括多个业务***,为终端设备提供各种业务,比如,广告***,视频点播***,天气预报***。每个业务***对用户有不同的分组,不同的分组接收不同的业务数据。对用户进行分组即对终端设备标识进行分组,这里所述的终端设备标识可以是终端的用户名、IP地址、CA***、MAC地址,设备序列号等能唯一标识终端设备的信息。***在创建分组时,为每个分组分配一个分组标识,业务***根据该分组标识对不同的分组提供不同的业务。
根据分组标识包含的终端设备标识生成分组标识对应的分组位串包括:
预先定义一个位数组和至少一个哈希函数;
获取分组标识所包含的终端设备标识;
通过哈希函数将分组标识所包含的终端设备标识映射到所述位数组生成分组位串。
如图2所示为本发明实施例提供的分组位串的生成方法流程图,图3所示为本发明实施例提供的哈希序列值与位数组的映射方法示意图,具体描述如下:
预先定义一个m位的位数组及K个不同的哈希函数,其中,位数组所有位初始化为0,K个哈希函数的值域均为[0,m-1];
读取该分组内的一个终端设备标识,使用K个哈希函数对终端设备标识进行哈希计算,产生一个哈希值序列[H1,H2…Hk];
将位数组中的H1,H2…Hk对应的位设置为1;
继续读取下一个终端设备标识进行同样的处理,直到该分组内所有终端设备标识都处理完毕,最终产生的位数组即该分组对应的分组位串。
步骤S102,将各分组标识及各分组标识对应的分组位串的映射关系生成分组信息。
分组标识是某分组的唯一识别符号,分组位串是某分组包含的终端设备集。如前所述,业务***是根据分组标识为不同分组提供不同业务的。单向网络中,终端设备不能通过与前端***进行交互获知所属的分组标识,因此,前端***将分组信息和业务信息广播到各终端设备,终端设备将自身的终端设备标识与分组信息进行匹配查询出所属的分组标识,从而接收该分组标识对应的业务。将分组标识与分组位串的映射关系生成分组信息,终端设备才能根据该分组信息找到所属的分组标识。
步骤S103,将分组信息与业务元数据、业务元数据对应的业务描述信息广播至终端设备,其中,业务描述信息包含业务元数据需要广播的各分组标识。
业务元数据、与业务元数据对应的业务描述信息、分组信息可以一起广播至终端设备,也可以分开广播至终端设备。同一业务可以播发到多个不同分组,因此,业务描述信息中包含的分组标识可以有多个。一般情况下,单向数据轮播时,业务数据的播发周期小于分组信息的播发周期。
优选地,还可以将分组信息对应的版本信息广播至终端设备,以便终端设备根据版本信息判断分组信息是否发生变化,如果不发生变化,可以不对广播数据流中的分组信息做解析,直接根据上一次存储的分组标识获取业务数据。
实施上述实施例,通过采用多个哈希函数将分组标识包含的各终端设备标识映射到一个位数组生成分组位串,再将分组位串和分组标识的映射关系生成分组信息广播至终端,使终端可通过终端设备标识与分组位串匹配出所属的分组。本方案不需要把所有的终端设备标识作为分组信息广播下去即可让每个终端设备知道自己所属的分组,大大减少数据发送量,节约带宽,缩短轮播周期。
如图4所示为本发明实施例提供的一种单向网络中数据接收的方法流程图,方法步骤包括:
步骤S201,从广播数据流中获取分组信息,解析出分组信息包含的各分组标识与各分组标识对应的分组位串。
终端设备获取广播数据流中的分组信息,解析出分组信息中包含的各分组标识与各分组标识对应的分组位串。
优选地,当广播数据流中还包括分组信息对应的版本信息时,在步骤S201之前还包括:从广播数据流中获取分组信息对应的版本信息,将所述版本信息与终端设备保存的版本信息进行比较;若相同,则跳转到步骤S203;
否则,将存储器中的版本信息更新为所述从广播数据流中获取的版本信息。
步骤S202,将终端设备标识与各分组位串进行匹配,若匹配成功,则保存匹配成功的分组位串对应的分组标识。
具体的,将终端设备标识对应的哈希值序列与各分组位串进行匹配,若匹配成功,则保存匹配成功的分组位串对应的分组标识。
如图5所示为本发明实施例提供的终端设备的哈希序列值与分组位串的匹配方法示意图,具体的匹配流程如下:
首先,从终端设备的存储器中获取终端设备标识;其次,采用与前端生成分组位串相同的哈希函数对终端设备进行哈希计算得到哈希序列值[H1,H2…Hk];再次,读取一分组位串,比较该分组位串中对应的H1,H2…Hk位置上是否为1,如果全部为1,则匹配成功,该终端设备属于该分组,将该分组标识保存到存储器中;否则,该终端设备不属于该分组,继续与其他分组位串进行匹配。
需要说明的是,计算终端设备的哈希值序列步骤也可以在获取到分组信息之前进行,还可以将计算得到的哈希值序列进行存储,避免后续进行多次匹配时进行重复计算。
实际使用中,哈希函数有一定的冲突概率,可能恰好有两个终端设备标识生成的哈希值序列是相同的,这种情况称为误报,即不属于这个分组的终端设备也判断出自己是属于这个分组的。通过使用多个哈希函数,加长位数组的长度,可以把误报率降低。当位数组的长度为分组内终端设备数量的16倍,哈希函数为8个左右时,误报率可以降到0.0001以下,基本满足绝大多数的要求。
优选地,考虑到分组信息的轮播周期比业务数据的轮播周期长,为了提供业务数据接收的实时性,终端设备将匹配成功的分组标识保存到存储器中,当分组信息不发生变化时,直接从存储器中读取分组标识接收业务数据。同时,终端设备需要在后台实时监控分组信息的版本变化,当版本信息发生变化时,需要将终端设备的哈希值序列与新的分组信息的分组位串重新进行匹配,得到更新后的分组标识,将其保存到存储器中。
步骤S203,检测业务描述信息中是否包含该分组标识,若包含,则获取业务描述信息对应的业务元数据。
终端设备根据分组标识,检测业务描述信息中是否包含该分组标识,若包含,则通过业务描述信息获取对应业务元数据。
实施上述实施例,通过将终端设备标识的哈希值序列与广播数据流中的分组信息中的分组位串进行匹配,获取终端设备所属的分组标识,再根据分组标识接收该分组的业务数据。另外,通过在广播数据流中增加版本信息,使得终端设备不需要重复匹配,只有当分组信息发生变化的时候才去匹配,使终端设备能更实时地接收到业务数据。本方案不需要把所有的终端设备标识作为分组信息广播下去即可让每个终端设备知道自己所属的分组,大大减少数据发送量,节约带宽,缩短轮播周期。
如图6所示为本发明实施例提供的一种单向网络中数据组播的装置结构图,包括:
分组位串生成模块31,用于根据各分组标识包含的终端设备标识生成各分组标识对应的分组位串;
分组信息生成模块32,用于将各分组标识及各分组标识对应的分组位串的映射关系生成分组信息;
播发模块33,用于将业务元数据、与所述业务元数据对应的业务描述信息、所述分组信息广播至终端设备,所述业务描述信息包含所述业务元数据需要广播的各分组标识。
其中,分组位串生成模块31包括:
预定义模块311,用于预先定义一个位数组和至少一个哈希函数;
终端标识获取模块312,用于获取分组标识包含的终端设备标识;
分组位串生成子模块313,用于通过所述哈希函数将所述分组标识所包含的终端设备标识映射到所述位数组生成分组位串。
播发模块33还用于将所述分组信息对应的版本信息广播至终端设备。
实施上述实施例,通过采用多个哈希函数将分组标识包含的各终端设备标识映射到一个位数组生成分组位串,再将分组位串和分组标识的映射关系生成分组信息广播至终端,使终端可通过终端设备标识与分组位串匹配出所属的分组。本方案不需要把所有的终端设备标识作为分组信息广播下去即可让每个终端设备知道自己所属的分组,大大减少数据发送量,节约带宽,缩短轮播周期。
如图7所示为本发明实施例提供的一种单向网络中数据接收的装置结构图,包括:
分组信息解析模块41,用于从广播数据流中获取分组信息,解析出各分组标识与各分组标识对应的分组位串;
分组匹配模块42,用于将终端设备标识与各分组位串进行匹配,若匹配成功,则保存匹配成功的分组位串对应的分组标识;
数据接收模块43,用于检测业务描述信息中是否包含所述分组标识,若包含,则获取所述业务描述信息对应的业务元数据。
其中,分组匹配模块42包括:
计算模块421,用于计算终端设备标识的哈希值序列;
匹配子模块422,用于将所述哈希值序列与各分组位串进行匹配,若匹配成功,则保存匹配成功的分组位串对应的分组标识。
优选地,所述装置还包括版本比较模块(未在图中示出),用于从广播数据流中获取分组信息对应的版本信息,将所述版本信息与终端设备保存的版本信息进行比较,若不同,则将存储器中的版本信息更新为所述从广播数据流中获取的版本信息,并触发分组信息解析模块41和分组匹配模块42从广播数据流中重新获取与所述终端设备匹配的分组标识后再由数据接收模块43根据所述重新获取的分组标识获取对应的业务元数据;
否则,触发数据接收模块43根据已存储的分组标识获取对应的业务元数据。
实施上述实施例,通过将终端设备标识的哈希值序列与广播数据流中的分组信息中的分组位串进行匹配,获取终端设备所属的分组标识,再根据分组标识接收该分组的业务数据。另外,通过在广播数据流中增加版本信息,使得终端设备不需要重复匹配,只有当分组信息发生变化的时候才去匹配,使终端设备能更实时地接收到业务数据。本方案不需要把所有的终端设备标识作为分组信息广播下去即可让每个终端设备知道自己所属的分组,大大减少数据发送量,节约带宽,缩短轮播周期。
如图8所示为本发明实施例提供的一种单向网络中数据组播的***结构图,包括:
数据库51,用于存储终端设备的标识信息;
分组控制服务器52,用于从所述数据库中读取终端设备的标识信息创建分组,为每个分组分配分组标识,根据各分组标识包含的终端设备标识生成各分组标识对应的分组位串,将各分组标识及各分组标识对应的分组位串的映射关系生成分组信息,将各分组标识发送给业务服务器,将分组信息发送给播发服务器;
业务服务器54,根据业务元数据和分组标识生成业务描述信息,所述业务描述信息包含所述业务元数据需要广播的各分组标识,将业务元数据及所述业务元数据对应的业务描述信息发送至播发服务器;
播发服务器53,用于将业务元数据、与所述业务元数据对应的业务描述信息、所述分组信息广播至终端设备;
终端设备55,用于根据终端设备标识在所述分组信息中查询出其所属的分组标识,检测业务描述信息中是否包含所述分组标识,若包含,则获取所述业务描述信息对应的业务元数据。
实施上述实施例,通过采用多个哈希函数将分组标识包含的各终端设备标识映射到一个位数组生成分组位串,再将分组位串与分组标识的映射关系生成分组信息广播到终端。终端设备采用同样的哈希函数计算出终端设备标识的哈希值序列,将哈希值序列与各分组位串进行匹配得到该终端设备所属的分组标识。终端设备根据分组标识接收属于该分组的业务数据。本方案不需要把所有的终端设备标识作为分组信息广播下去即可让每个终端设备知道自己所属的分组,大大减少数据发送量,节约带宽,缩短轮播周期。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。