一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

生成并存储用于液体食品包装的独特标记代码的制作方法

2022-07-11 16:24:36 来源:中国专利 TAG:


1.本公开总体上涉及用于液体食品的包装的制造,特别地,涉及生成和存储用于这种包装的独特标记代码。


背景技术:

2.全世界每天消耗数十亿升水、牛奶、果汁和其他液体食品。大部分液体食品以纸质包装(也称为纸盒包装)分发。生产这些包装是为了保护里面液体食品的营养价值和味道。底层技术极大地促进了全球液体食品的包装和分发。
3.本技术人已经确定需要用独特的代码标记每个包装。在每个包装上提供独特的代码可以实现各种功能,例如在整个制造和分发链中跟踪和追踪包装,验证包装的真实性,链接到与包装相关的网络内容以供消费者或零售人员访问,将代码与促销活动和彩票等相关联,使制造机器在检测到代码时执行自动动作等。
4.ep3540664公开了一种稳健的技术,其用于为包含液体食品的包装提供标记代码,其中相应的标记代码独特地标识单个包装。标记代码基于有效载荷数据,该有效载荷数据独特地表示单个包装的生产并且可以指示生产的时间和/或位置。加密有效载荷数据以使得难以猜测有效代码和生成欺诈代码。标记代码是通过将加密的有效载荷数据与未加密的标头部分组合而形成的。标记代码在包装上提供,并且还输入数据库,可选地与附加数据相关联。为了在数据库中实现高效和快速的搜索,ep3540664建议基于有效载荷部分指示的时间和/或位置对数据库进行分区,并将相应的标记代码存储在与标记代码中时间和/或位置匹配的数据库分区。
5.液体食品的包装以工业规模生产,面向世界市场。每年生产大量的包装。例如,在生态系统中,2016年生产了1880亿(109)个包装。考虑到包装产品的保质期可能为6个月至1年,或甚至更长,例如长达5年,需要生成大量独特的标记代码并将其存储在数据库中。在这样的环境中部署标记代码很可能导致超过1pb的数据。这样的数据量很难在单一数据库中存储和管理。
6.因此,将大量提供的用于液体食品包装的这些和其他类型的标记代码存储在数据库中而不消耗过多的资源,同时在数据库中实现快速有效的存储和搜索是一个挑战。


技术实现要素:

7.一个目标是至少部分地克服现有技术的一个或多个限制。
8.另一个目标是在包含液体食品个体包装的包装相关数据的数据库中实现快速有效的存储和搜索。
9.另一个目标是实现一个数据库,其是可扩展的且实现超过1pb的包相关数据的存储容量。
10.这些目标中的一个或多个,以及可能从下面的描述中显而易见的其他目标,至少部分地通过根据独立权利要求和由从属权利要求限定的其实施方案的生成标记代码的方
法、计算机可读介质和用于生成标记代码的系统来实现。
11.本公开的第一方面是一种生成标记代码以独特地标识液体食品包装的方法。该方法包括:获取每个个体包装独特的包装生产数据;对包装生产数据运行预定义的加密算法以生成加密的包装生产数据;生成包括加密的包装生产数据的标记代码;提供标记代码以用于标记个体包装;以及在包括多个分区的数据库中存储包括标记代码的至少一个子集和个体包装的包装生产数据的至少一个子集的包装明细数据。所述存储包括根据标记代码生成分区键,以及操作耦合到数据库的控制器以基于分区键确定多个分区中的选定分区并将包装明细数据存储在选定分区中。
12.在一些实施方案中,操作所述控制器包括对分区键运行预定义映射函数,所述预定义映射函数被配置为将分区键映射到一组分区标识符,其包括所述多个分区中的每个分区的相应分区标识符,其中选定分区是基于由用于分区键的映射函数生成的当前分区标识符而确定的。
13.在一些实施方案中,预定义映射函数包括哈希函数。
14.在一些实施方案中,预定义的加密算法是分组密码。
15.在一些实施方案中,获取包装生产数据以表示个体包装的生产位置和生产时间中的至少一者。
16.在一些实施方案中,标记代码的至少一个子集包括加密的包装生产数据。
17.在一些实施方案中,数据库是分布式数据库。
18.本公开的第二方面是一种包括计算机指令的计算机可读介质,所述计算机指令在由处理器执行时使处理器执行第一方面的方法或其任何实施方案。
19.本公开的第三方面是一种用于生成标记代码以独特地标识液体食品包装的系统。该系统包括代码生成器,其被配置为对每个个体包装独特的包装生产数据运行预定义的加密算法以生成加密的生产数据。代码生成器被进一步配置生成包括加密的生产数据的标记代码并提供标记代码以用于标记个体包装。该系统还包括耦合到包括多个分区的数据库的存储接口。存储接口被布置为接收包装明细数据,包装明细数据包括标记代码的至少一个子集和个体包装的包装生产数据的至少一个子集。该系统还包括键生成器,其被配置为根据标记代码生成分区键并将所述分区键提供给存储接口。存储接口被配置为在接收到分区键时基于分区键在多个分区中确定选定分区,并将包装明细数据存储在选定分区中。
20.第一方面的任何一个实施方案都可适应和实现为第三方面的实施方案。
21.其它目的以及实施方案、特征、方面和优点将由以下详细描述以及附图而显而易见。
附图说明
22.现在将参考所附示意图通过示例的方式描述实施方案。
23.图1a是用于液体食品的包装的制造和分发链的概览,图1b是这种包装的示意图。
24.图2是用于用独特代码标记包装的示例性系统的框图。
25.图3a-3b是分布式数据库中的数据分区图,其基于表示生产位置的分区键并且分别针对5000和30000个逻辑分区而产生。
26.图4是根据实施方案的用于用独特代码标记包装的系统的框图。
27.图5a-5d是分布式数据库中的数据分区图,其基于表示独特代码的分区键并且分别针对1000和30000个逻辑分区而产生。
28.图6是根据实施方案的标记方法的流程图。
29.图7是可以实施图6的标记方法的机器的框图。
具体实施方式
30.现在将在下文中参考附图更全面地描述实施方案,其中示出了一些但不是全部的实施方案。实际上,本发明可以以许多不同的形式体现,并且不应被解释为限于本文所阐述的实施方案;相反,提供这些实施方案是为了使本公开可以满足适用的法律要求。
31.此外,将理解,在可能的情况下,本文描述和/或设想的任何实施方案的任何优点、特征、功能、设备和/或操作方面可以包括在本文描述和/或设想的任何其他实施方案中,和/或反之亦然。此外,在可能的情况下,除非另有明确说明,否则本文中以单数形式表达的任何术语也意味着也包括复数形式,和/或反之亦然。如本文所用,“至少一”应表示“一或多”,并且这些短语旨在可互换。因此,术语“一(a)”和/或“一(an)”应表示“至少一”或“一或多”,即使本文也使用短语“一或多”或“至少一”。如本文所用,除非上下文由于表达语言或必要的暗示而另有要求,否则“包含(comprise)”一词或诸如“包含(comprises)”或“包含(comprising)”之类的变体以包容性的含义使用,即指定存在所述特征但不排除其他特征在各种实施方案中的存在或添加。
32.如本文所用,术语“和/或”包括一或多个相关列出的项目的任何和所有组合。
33.如本文所用,“液体食品”是指在室温下为非固体、半液体或可倾倒的任何食品,包括饮料,例如果汁、葡萄酒、啤酒、苏打水,以及乳制品、酱汁、油、奶油、蛋奶沙司、汤、糊等,以及液体中的固体食品,如豆类、水果、西红柿、炖菜等。
34.如本文所用,“包装”是指适于液体食品密封容纳物的任何包装或容器,包括但不限于由纸板或包装层压材料(例如基于纤维素的材料)形成的容器,以及由塑料材料制成或包含塑料材料的容器。
35.为了简洁和/或清楚起见,可能不会详细描述众所周知的功能或结构。除非另有定义,本文使用的所有术语(包括技术和科学术语)与本发明所属领域的普通技术人员通常理解的含义相同。
36.相同的附图标记自始至终指代相同的元件。
37.图1a是液体食品包装的制造和分发链的示意图。图示的链包括用于制造包装原材料的制造阶段1、用于制造含有液体食品的包装的填充阶段2、用于分发含有液体食品的包装的分发阶段3、用于将包装提供给消费者的零售阶段4、以及消费者阶段5,其中包装由消费者处理并且液体食品被食用。
38.在制造阶段1中,用于包装的片材在转化制造厂(工厂)10中制造。片材通常是纸基的并且以卷11提供给填充阶段2。在图示的示例中,阶段1进一步这涉及一个专门的制造厂(工厂)12,该制造厂为包装制造盖13(通常由塑料材料制成)。如果在没有盖的情况下形成包装,则制造厂12不存在于阶段1。还可以想象,阶段1包括为包装制造特定组件的额外制造厂。
39.在填充阶段2中,填充制造厂(工厂)14对片材11、盖13和液体食品进行操作以提供
包含液体食品的包装。例如,填充工厂14的生产线可以将片材11成型为容器,将液体食品填充到容器中,并密封容器以形成包装。生产线还可以将盖13附接到容器。图1b示出了由填充工厂14生产的包装16的示例。阶段2可以进一步包括在进入分发阶段3之前包装的外部处理15,例如码垛。
40.应当理解,制造链通常可能涉及许多不同的转化工厂10、盖工厂12和填充工厂14,它们可以分布在全球范围内。工厂10、12、14中的每一个可以包括多条生产线。
41.如图1b所示,包装16包括代表标记代码的数据载体17。数据载体17可以通过任何已知的技术来实现,用于为制品提供代码。在一个示例中,数据载体17被印刷到包装16上,例如,作为人类可读的符号(例如字符)序列,或机器可读的图形符号,例如一或多个条形码或二维码(datamatrix、qr码等)。在另一个示例中,数据载体是电子标签,其中代码被存储并且可用于通过与标签(例如nfc、rfid、ble等)的无线通信来检索,例如根据用于此目的的任何常规标准。
42.如图1a所例示的,至少在预定义的生命周期内,标记代码被生成为对于在制造链内的工厂10、12、14的整个生态系统内的包装16是独特的,至少在预定义的生命周期内是如此。标记代码可以应用于图1a所示的工厂10、12、14中的任何一个中的包装。例如,可以通过转化工厂10将标记代码应用在片材11上的预定位置,以便定位于由填充工厂14生产的每个包装16上。在另一个示例中,可以由盖工厂12将标记代码应用到每个盖13。在另一个示例中,标记代码由填充工厂14应用到片材11、盖13、中间容器或包装16。应当理解,包装16可能包含多个这样的独特标记代码,例如一个在盖13上,一个在包装16上。还可以想象,在随后的处理15(例如码垛)时,为包装或包装组提供独特的标记代码。
43.实施方案涉及将标记代码和相关数据存储在数据库中,并且将在下文中参照前述ep3540664中描述的标记代码的实施方式来举例说明,该ep3540664的全部内容通过引用并入本文。
44.具体地,标记代码包括有效载荷数据,该有效载荷数据对于个体包装的生产是独特的并且通过预定义的加密算法进行加密。通常,标记代码由一系列值组成,例如二进制值。下文中表示为包装生产数据(ppd)的有效载荷数据可以包括标识生产位置和/或生产时间的数据元素。在第一示例中,ppd中的数据元素包括运营工厂的生产者的标识符(producer id)、工厂标识符(plant id)、工厂中的生产线标识符(line id)、在其中标记代码被添加到包装的设备的标识符(equipment id),并且ppd进一步识别当前的生产时间,例如按年、日、小时、分钟、秒和亚秒分辨率计数器(package counter),它可以是随机的也可以不是随机的。在第二示例中,ppd中的数据元素包括工厂的标识符(production unit id)、生产批次和该生产批次内的包装,其中生产批次可以通过时间段来标识,例如当前年份和月份,以及该时间段内的批次编号(request number),其中可以通过该生产批次中的包装编号(package counter)来识别包装。包装编号可以是随机的,也可以不是随机的。标记代码还可以包括未加密的标头部分,该标头部分可以被混淆也可以不被混淆,并且可以包含启用加密ppd的解密和验证的数据。
45.图2示意性地示出了系统20的示例实施方案,该系统20被配置用于代码生成、代码存储和包装标记。系统20包括ppd生成器21、代码生成器22、标记设备23和耦合到数据库30的存储控制器24。ppd生成器21被配置为提供要包括在标记代码中的包装生产数据ppd。在
一种实施方式(“内联实施方式”)中,ppd生成器21与用于自动实时生成ppd的生产同步,例如根据以上第一示例。在另一实施方式(“离线实施方式”)中,ppd生成器21被操作以在生产之前提供ppd,例如根据以上第二示例构造。代码生成器22被配置为基于来自ppd生成器21的ppd生成标记代码mc,并将标记代码提供给标记设备23,该标记设备23被操作以将相应的标记代码应用于制造品,例如片材11、盖13或包装16。由上述可知,标记设备23可以是打印机、烧蚀设备或将代码嵌入电子标签中的设备,电子标签可以通过标记设备23而附接在制造品上或可以预先附接在制造品上。在内联实施方式中,代码生成器22与生产同步以实时生成标记代码。在离线实施方式中,代码生成器22可以在生产之前或与生产同步地生成标记代码。
46.存储控制器24被配置为接收ppd、标记代码(mc)和可能的附加数据。基于此,存储控制器24生成包装明细数据pid并将其存储在数据库30中。每个pid对应于一个包装个体并且形成数据项以存储在数据库30中。在一些实施方式中,该数据项可以,例如是表(sql数据库)中的一行或集合(nosql数据库)中的一个文档。由上述可知,大量的数据项最终将被存储在数据库30中,因此数据库30应该是可扩展的,并且为了资源效率优选地是水平可扩展的。在一个实施方案中,数据库30是包括多个逻辑分区的分布式数据库,其中每个逻辑分区可以具有预定义的最大大小并且被分配独特的分区标识符(partition id)。在非限制性示例中,预定义的最大大小在0.1-100gb的范围内。用于数据库30的数据库管理系统(dbms)30a被操作以透明地并自动地在逻辑分区之间分配数据项,例如基于每个数据项的“分区键”(又名“分布键”)。存储控制器24可以向dbms 30a提供一个接口,该接口允许操作员设置要使用的分区键,并且允许手动或自动上传数据项以存储在数据库30中。dbms 30a可以专有于分布式数据库30的主机,并且可以被配置为将逻辑分区以任何合适的关系映射到多个节点,这些节点可以包括可以访问一个或更多存储设备(例如硬盘驱动器(hdd)和/或固态驱动器(ssd))的物理服务器、虚拟服务器或虚拟lun(逻辑单元号)中的任一者,以例如有效满足可扩展性和性能需求。随着吞吐量和存储需求可能会增加,dbms30a可以移动逻辑分区以自动将负载分散到更多数量的服务器上。dbms30a可以是任何商业可用的系统,并且分布式数据库30可以实现为sql或nosql数据库。在一个实施方案中,dbms 30a是云计算平台。在具体实施方式中,dbms 30a包含在microsoft azure cosmos db中,这是一个全球分布的多模型数据库服务。在一个具体示例中,dbms 30a被设置以作为nosql文档数据库操作。
47.包装明细数据pid包括标记代码或其子集,以及ppd中的数据元素的至少一个子集。pid还可以包括与标记代码的生成、包装的生产或数据库中的存储相关联的附加数据元素。在符合上述ppd的第一和第二示例的一个非限制性示例中,pid包括标记代码(或其子集)、producer id、plant id、line id、equipment id、年、日、时、分、秒、package counter、production unit id和request number。
48.在上述microsoft azure cosmos db上实现pid的存储时,本技术人在例如资源消耗、搜索和检索速度等方面体验到性能不佳。对数据库30中的数据存储的进一步分析揭示了分区之间的数据分布的显著不均匀性,也称为“偏斜(skewness)”。图3a-3b说明了当使用line id作为分区键时的这种偏斜。图3a是当数据库30配置有5000个分区时,每个分区(横轴)中存储的数据量(纵轴)的曲线图,且图3b是当数据库30配置有30000个分区时的对应图。发现偏斜至少部分地导致性能不佳,并且在ppd中的数据元素中选择时(例如在指示生
产位置和生产时间的数据元素中选择时),无论分区键如何,偏斜都存在。有一些策略可以通过生成所谓的合成分区键来克服偏斜,例如通过连接两个或多个数据元素,通过将随机后缀附加到数据元素,或通过将预先计算的后缀附加到数据元素,其中预先计算的后缀是另一个数据元素的哈希值。但是,这些策略往往会增加复杂性并可能会损害数据库的性能。
49.令人惊讶的是,本技术人发现使用标记代码作为分区键使得分布式数据库中的逻辑分区之间的数据分布显著更加均匀。目前据信,标记代码中的加密数据赋予标记代码随机性,其本身表现为分布式数据库中的分区之间的基本上无偏斜数据分布。
50.图4是根据一个实施方案的图2中的系统20的框图。在此,数据库30是一个分布式数据库,包括分区p1、p2、...、pj,其中j是一个显着大于1的数,通常至少为1000、5000或10000。存储控制器24通过有线和/或无线通信网络32(例如wan(广域网)、lan(局域网)、pan(个域网)或它们的任何组合)耦合到数据库30。当数据库30作为基于云的服务提供时,网络32可以包括wan,例如互联网。
51.如图2所示,ppd生成器21提供由代码生成器22接收的包装生产数据ppd。代码生成器22包括加密模块22a,其被配置为对ppd运行加密算法或函数以生成加密的包装生产数据,epd。可以使用任何可以想到的加密算法,包括使用私有加密密钥进行加密和解密的任何对称加密算法,以及使用公共和私有加密密钥对的任何非对称算法。在一个非限制性实施方案中,加密算法是分组密码,例如blowfish、des、idea、rc5或aes。加密算法对ppd进行加扰并消除其结构。通常,加密用于保护ppd,使得难以基于另一标记代码猜测有效标记代码,并且将欺诈生成标记代码的风险降至最低。代码生成器22还包括代码填充模块22b,其被配置为通过组合epd和相关的非加密数据来形成标记代码mc,例如在如ep3540664中例示的标头部分中。标记代码从代码生成器22提供给标记设备23和存储控制器24。存储控制器24包括聚合模块24a、键生成模块24b和存储接口模块24c。聚合模块24a被配置为从代码生成器22接收标记代码mc,以及从ppd生成器21(如图所示)或代码生成器22接收ppd。聚合模块24a生成数据项以存储在数据库30中,该数据项是上述包装明细数据pid。键生成模块24b被配置为接收pid并根据包括在pid中的标记代码或其子集来生成分区键pk。在一个示例中,模块24b将分区键设置为等于标记代码。在另一示例中,模块24b将分区键设置为等于标记代码的epd。在另一示例中,模块24b将标记代码或epd与pid中的一个或多个其他数据元素连接。模块24b还可以对标记代码或epd运行任何合适的函数以生成分区键。然而,后一示例可能需要模块24b在pid存储在数据库30中之前将分区键添加到pid,这将增加数据库30所需的数据存储容量。
52.存储接口模块24c被配置为接收来自键生成模块24b的分区键pk和来自聚合模块24c的pid。耦合到数据库30的存储接口模块24c进一步可操作以使dbms 30a基于分区键pk在分区p1-pj中选择一个分区,并将pid存储在选定分区中。在一个实施方案中,模块24c包括预定义的映射函数,其被配置为识别选择的分区,例如通过上述partition id。模块24c因此可以对分区键操作映射函数以计算当前partition id并且将当前partition id提供给dbms 30a以用于识别选定分区。在另一个实施方案中,映射函数是dbms 30a的一部分,当模块24c将分区键提供给dbms 30a时,该映射函数计算当前partition id。在一个实施方案中,映射函数被配置为将所有可能的分区键映射到一组独特的partition id上,每个分区p1-pj一个分区键。在一个实施方案中,映射函数还被配置为对分区键的比特进行加扰,以
提高数据库30中数据分布的均匀性。在一个实施方案中,映射函数是哈希函数。可以使用任何哈希函数,包括但不限于加密哈希函数、非加密哈希函数或循环冗余校验(crc)函数。在一个实施方案中,映射函数涉及模运算,例如模除以j或接近j的素数。在另一个实施方案中,映射函数在分区键中提取预定义数量的位并将提取的位核对到partition id中。
53.图5a-5d图示了当分区键被设置为标记代码并且对分区键运行哈希函数以将其映射到预定义数量(j)的分区时,microsoft azure cosmos db中的数据分布。图5a是当数据库30配置有1000个分区时,每个分区(横轴)中存储的数据量(纵轴)的曲线图;图5b是图5a的放大图,以更详细地显示了分区之间的变化。图5c-5d对应于当数据库30配置有30000个分区时的图5a-5b。与图3a-3b中的图相比,数据显著更均匀地分布在分区上,并且基本上消除了偏斜。
54.图6是根据一个实施方案的生成标记代码的方法600。方法60可以在图2或图4的系统20中执行。在可以是或可以不是方法600的一部分的步骤601中,生成包装生产数据ppd。对个体包装重复执行步骤602-606。步骤602-605可以由代码生成器22执行,步骤606可以由存储控制器24执行。步骤602获取一个包装的ppd。步骤603对ppd运行预定义的加密算法以生成加密的包装生产数据epd。步骤604生成标记代码mc,以至少包括epd。步骤605提供用于标记包装的标记代码,例如通过使用标记设备23。步骤606将标记代码(或其子集)和ppd(或其子集)存储在数据库30中。该方法600然后继续重复步骤602-606。在所示实施方案中,步骤606包括另外的步骤606a-606d。步骤606a例如通过将标记代码(或其子集)和ppd中的数据元素的至少一个子集合并到公共数据项中来根据标记代码和ppd生成包装明细数据pid。步骤606b根据标记代码生成分区键pk。步骤606c基于分区键选择数据库30中的分区,并且步骤606d将pid存储在选定分区上。
55.回到图2和4中的系统20,相应的设备21、22和24可以由硬件或软件和硬件的组合来实现。在一些实施方案中,设备21、22和24在一个或多个软件控制的计算设备上实现。图7示意性地描绘了这样的计算设备70,其包括处理器71、计算机存储器72和用于数据输入和/或输出的通信接口73。通信接口73可以被配置用于有线和/或无线通信,包括与数据库30的通信。处理器71可以例如包括下列中的一种或多种:cpu(“中央处理单元”)、dsp(“数字信号处理器”)、微处理器、微控制器、asic(“专用集成电路”)、离散模拟和/或数字组件的组合,或一些其他可编程逻辑设备,例如fpga(“现场可编程门阵列”)。包括计算机指令的控制程序74存储在存储器72中并且由处理器71执行以执行前述所例示的任何操作、功能或步骤。如图7所示,存储器72还可以存储供处理器72使用的控制数据75,例如用于在步骤606b中生成分区键的控制数据、用于步骤603中加密的控制数据、用于在步骤606c中选择分区的控制数据等。控制程序74可以提供给计算机可读介质76上的计算设备70,计算机可读介质76可以是有形的(非暂时性的)产品(例如磁介质、光盘、只读存储器、闪存等)或者传播信号。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献