IP Library Granted Patent US 12,197,393
Granted Patent B2
US 12,197,393 · App. 17/051,435 · Granted Jan 14, 2025

Method of data structuring for difference between old and new data and device thereof

Inventors: Dong Soo Kang (Daegu, KR); Dong Hwan Lee (Daegu, KR); Tae Ho Lee (Daegu, KR); Seung Wook Baek (Daegu, KR)
Assignee: KONAMOBILITY COMPANY LIMITED
G06F16/178G06F8/71G06F16/122G06F16/1744G06F16/1873
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,197,393
App. No.
17/051,435
Granted
Jan 14, 2025
Kind
B2
Abstract

The present invention relates to a method of data structuring for difference between old and new versions of data and a device thereof, when generating and transmitting the difference to update software data comprising programs, kernels and filesystems installed on client devices such as autonomous vehicles and smartphones, provided are a data structuring method and a device necessary for generating and transmitting the difference data representing differential parts between old and new versions of software data.

Claims (41)

1. A method of generating a delta data structure for difference between old and new versions of software data, based on a request from an update management server, when a new software data used for driving a client device is generated, by a difference generation device comprising a difference generation processor and a memory configured to store a program to generate the delta data structure for the difference, and being configured to generate the delta data structure for the difference by calling the program stored in the memory by the difference generation processor, and provide the delta data structure for the difference to an update agent for updating a software on the client device with the delta data structure for the difference, wherein the method comprises:

comparing, by the difference generation processor, the old and new versions of the software data; and

generating, by the difference generation processor, a differential data stream with the delta data structure including a delta header and a delta body based on the comparison,

wherein generating the differential data stream comprises:

generating, by the difference generation processor, the delta header comprising version information of the difference, a number of partitions, delta size for each of the partitions, and patch information for a normal patch or a resume patch, to generate the difference between old and new versions of the software data; and

generating, by the difference generation processor, the delta body comprising data for the partitions and at least one or more sub delta comprised in the partition,

wherein, the generated delta body comprises a sub delta header and at least one or more sub delta body comprising block information comprised in each of the partitions,

wherein, the sub delta body comprises a block header and a block body for a specific block,

wherein, the block body comprises: Modified actual data (Mod), Inserted actual data (Insert), Equal and Mod length data, and Insert length data,

wherein, the Mod is a modified binary data, and is sequentially generated for the Mod length specified in the Equal and Mod length data,

wherein, the Insert is an inserted binary data, and is sequentially generated for the Insert length specified in the Insert length data,

wherein, the Equal and Mod length data comprise one of Equal length that is length information of which the binary data between old and new versions of a block are the same, Mod length that is length information of which the binary data between old and new versions of the block are modified, and a delimiter indicating the existence of the inserted binary data,

wherein, the Insert length data comprises Insert length that is length information of which the binary data is inserted for a new block, and identical offset that is location information of the next identical binary data,

wherein the difference is generated into the delta data structure comprising a delta header and a delta body, is used on updating software data including at least one or more of a program, a kernel and a filesystem, and represents only different parts between old and new versions of software data and not all of the new version of the software data,

wherein the sub delta header is generated differently depending on whether the software data is a program, a kernel, or a filesystem, and

wherein the block header comprises Equal and Mod length data size information of the block body, Mod data size information of the block body, Insert data size information of the block body, Insert length data size information of the block body, data type information of the block body, block size information, checksum of old version of the block, and checksum of new version of the block,

wherein, the sub delta header, in case of the program, is generated by comprising type information of the sub delta, compression information of whether the sub delta body is compressed or not, size information of the sub delta body, number information of the sub delta body, checksum of old version of program, and checksum of new version of program,

wherein, the sub delta header, in case of the kernel, is generated by comprising type information of the sub delta, compression information of whether the sub delta body is compressed or not, size information of the sub delta body, number information of the sub delta body, checksum of old version of kernel, and checksum of new version of kernel,

wherein, the sub delta header, in case of the filesystem, is generated by comprising a filesystem header and a filesystem sub header,

wherein the filesystem header comprises type information of the sub delta, number information of files, and

wherein the filesystem sub header comprises path information of the files, status information for adding, modifying and deleting of the files, attribute information for general attributes, symbolic attributes, and links of the files, compression information of whether each of the files is compressed or not, size information of the sub delta body, checksum of old version for each of the files, checksum of new version for each of the files, and number information of the sub delta body.

2. A device for generating a delta data structure for difference between old and new versions of software data, based on a request from an update management server, when a new software data used in a client service is generated, and being configured to generate the delta data structure for the difference and provide the delta data structure for the difference to an update agent for updating a software on a client device with the delta data structure for the difference, wherein the device comprises:

a memory configured to store a program to generate the delta data structure for the difference; and

a difference generation processor configured to compare the old and new versions of the software data, generate a differential data stream with the delta data structure including a delta header and a delta body based on the comparison, and generate the delta data structure for the difference by calling the program stored in the memory, to provide the delta data structure for the difference, and to generate:

the delta header comprising version information of the difference, number of partitions, delta size for each of the partitions, and patch information for normal or resume; and

the delta body comprising data for the partitions and at least one or more sub delta comprised in each of the partitions,

wherein, the generated delta body comprises a sub delta header and at least one or more sub delta body comprising block information comprised in each of the partitions,

wherein, the sub delta body comprises a block header and a block body for a specific block,

wherein, the block body comprises Modified actual data (Mod), Insert actual data (Insert), Equal and Mod length data, and Insert length data,

wherein, the Mod is a modified binary data, and is sequentially generated for the Mod length specified in the Equal and Mod length data,

wherein, the Insert is an inserted binary data, and is sequentially generated for the Insert length in the Insert length data,

wherein, the Equal and Mod length data comprise one of Equal length that is length information of which the binary data between old and new versions of a block are the same, Mod length that is length information of which the binary data between old and new versions of the block are modified, and a delimiter indicating the existence of the inserted binary data,

wherein, the Insert length data comprises Insert length that is length information of which the binary data is inserted for a new block, and identical offset that is location information of the next identical binary data,

wherein the difference is generated into a delta data structure comprising a delta header and a delta body, is used on updating software data including at least one or more of a program, a kernel and a filesystem, and represents only different parts between old and new versions of the software data and not all of the new version of the software data,

wherein the difference generation processor is configured to generate the sub delta header differently depending upon whether the software data is a program, a kernel, or a filesystem, and

wherein the difference generation processor is configured to generate the block header such that the block header comprising Equal and Mod length data size information of the block body, Mod data size information of the block body, Insert data size information of the block body, Insert length data size information of the block body, data type information of the block body, block size information, checksum of old version of the block, and checksum of new version of the block,

wherein the difference generation processor generates the sub delta header comprising, in case of the program, type information of the sub delta, compression information of whether the sub delta body is compressed or not, size information of the sub delta body, number information of the sub delta body, checksum of old version of the program, and checksum of new version of the program,

wherein the difference generation processor generates the sub delta header comprising, in case of the kernel, type information of the sub delta, compression information of whether the sub delta body is compressed or not, size information of the sub delta body, number information of the sub delta body, checksum of old version of the kernel, and checksum of new version of the kernel,

wherein the difference generation processor generates the sub delta header comprising, in case of the filesystem, a filesystem header and a filesystem sub header,

wherein, the filesystem header comprises type information of the sub delta, number information of the files, and

wherein the filesystem sub header comprises path information of the files, status information for adding, modifying and deleting of the files, attribute information for general attributes, symbolic attributes, and links of the files, compression information of whether each of the files is compressed or not, size information of the sub delta body, checksum of old version for each of the files, checksum of new version for each of the files, and number information of the sub delta body.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2022
From: KANG, DONG SOO; LEE, DONG HWAN; LEE, TAE HO; BAEK, SEUNG WOOK
To: LUNA CO.,LTD.
Reel/Frame 060089/0227 →
CHANGE OF NAME Recorded May 31, 2022
From: LUNA COMPANY LIMITED
To: KONAMOBILITY COMPANY LIMITED
Reel/Frame 060061/0911 →
Priority Claims (1)
KR 10-2019-0105338 · Aug 27, 2019 · national
Continuity (1)
Related Publication 20210349855A1 · Nov 11, 2021
References Cited (21)
US 6681382B1 · Kakumani · 2004 [cited by examiner]
US 20020099726A1 · Crudele · 2002 [cited by examiner]
US 20040168165A1 · Kokkinen · 2004 [cited by examiner]
US 20050021572A1 · Ren · 2005 [cited by examiner]
US 20050091291A1 · Kaler · 2005 [cited by examiner]
US 20060123032A1 · Manapetty · 2006 [cited by examiner]
US 20060242208A1 · Goldick · 2006 [cited by examiner]
US 20170122747A1 · Park · 2017 [cited by examiner]
US 20180173723A1 · Pfeifle · 2018 [cited by examiner]
US 20180307479A1 · Subramanian et al. · 2018 [cited by applicant]
US 20210287404A1 · Chang · 2021 [cited by examiner]
JP 2012190075A · 2012 [cited by applicant]
KR 100390867B1 · 2003 [cited by applicant]
KR 20080037450A · 2008 [cited by applicant]
KR 20150005164A · 2015 [cited by applicant]
KR 101542323B1 · 2015 [cited by applicant]
KR 20150089591A · 2015 [cited by applicant]
KR 101822485B1 · 2018 [cited by applicant]
International Search Report for PCT/KR2020/003495 mailed Jun. 18, 2020. [cited by applicant]
Written Opinion for PCT/KR2020/003495 mailed Jun. 18, 2020. [cited by applicant]
European Extended Search Report for Application No. 20788975.9, mailed Aug. 24, 2023. [cited by applicant]