KR100750169B1 - 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법 - Google Patents

델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법 Download PDF

Info

Publication number
KR100750169B1
KR100750169B1 KR1020060021836A KR20060021836A KR100750169B1 KR 100750169 B1 KR100750169 B1 KR 100750169B1 KR 1020060021836 A KR1020060021836 A KR 1020060021836A KR 20060021836 A KR20060021836 A KR 20060021836A KR 100750169 B1 KR100750169 B1 KR 100750169B1
Authority
KR
South Korea
Prior art keywords
file
copy
data
command
version file
Prior art date
Application number
KR1020060021836A
Other languages
English (en)
Inventor
김혜인
조성현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060021836A priority Critical patent/KR100750169B1/ko
Application granted granted Critical
Publication of KR100750169B1 publication Critical patent/KR100750169B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

본 발명은 소프트웨어를 업데이트하는 방법에 관한 것으로서, 특히 최소화된 델타 파일을 생성시키고, 이를 이용하여 소프트웨어를 업데이트하는 방법에 관한 것이다.
본 발명에 따른 델타 파일 생성 방법은 이전 버전 파일의 데이터를 2차원 배열로 매핑시키고, 상기 2차원 배열에서 복수의 방향으로 데이터를 조합하여 해쉬 테이블을 생성시키는 단계; 상기 해쉬 테이블과 새로운 버전 파일의 데이터들을 비교하는 단계; 및 상기 비교 결과, 일치하는 부분은 COPY 명령으로 코딩하고 일치하지 않는 부분은 ADD 명령으로 코딩하여 델타 파일을 생성시키는 단계를 포함함을 특징으로 한다.

Description

델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트 방법{Method for generating a delta file and software update method using the same}
도 1은 본 발명에 따른 델타 파일 생성 방법 및 소프트웨어 업데이트 방법이 실행되는 시스템의 블록 구성도이다.
도 2는 본 발명에 따른 서버 컴퓨터에서의 델타 파일 생성 방법의 흐름도이다.
도 3은 본 발명에 따른 클라이언트 컴퓨터에서의 소프트웨어 업데이트 방법의 흐름도이다.
도 4는 본 발명에 따른 델타 파일 생성 과정을 설명하기 위한 2차원 배열에서의 좌표 값을 표시한 것이다.
도 5는 본 발명에 따른 델타 파일 생성 과정에서 이용되는 2차원 배열에 대응되는 시리얼(serial)한 오프셋 값을 표시한 것이다.
도 6은 본 발명에 따른 델타 파일 생성 과정에서 이용되는 2차원 배열로부터 복수의 방향으로 데이터를 추출하여 해쉬 데이터를 생성시키기 방법을 설명하기 위한 도면이다.
도 7은 본 발명에 따른 새로운 버전 파일을 2차원 배열로 매핑시킨 도면이다.
도 8은 클라이언트 컴퓨터에서 델타 파일을 이용하여 이전 버전 파일로부터 새로운 버전 파일을 생성시키는 과정을 보여주는 도면이다.
본 발명은 소프트웨어를 업데이트하는 방법에 관한 것으로서, 특히 최소화된 델타 파일을 생성시키고, 이를 이용하여 소프트웨어를 업데이트하는 방법에 관한 것이다.
네트워크 상에서 원거리의 실행 프로그램이나 데이터를 업데이트하기 위하여 새로운 프로그램이나 데이터를 전부 보내는 것은 네트워크에 많은 부하를 주게 된다. 특히, 큰 용량의 파일의 업데이트나 많은 클라이언트 기기에서의 업데이트를 어렵게 한다.
이에 따라서, 최근 시스템에서는 이전 버전 파일과 새로운 버전 파일간의 차이만을 추출하여 델타 파일(delta file)을 생성시키고, 이를 네트워크로 전송함으로써 원격지의 컴퓨터에서는 델타 파일과 이전 버전 파일을 이용하여 새로운 버전 파일을 생성시킬 수 있게 된다.
델타 파일은 어떤 동작을 수행할 명령과 명령에 사용될 데이터로 구성된다. 여기서, 명령은 ADD 명령과 COPY 명령으로 구성된다. COPY 명령은 이전 버전 파일의 데이터에 대한 COPY를 실행시키는 형태의 명령이고, ADD 명령은 기록할 데이터를 모두 명령에 적어주는 형태의 명령이다. 따라서, ADD 명령은 COPY 명령에 비하 여 많은 용량을 차지하게 된다.
이에 따라서, 델타 파일 생성 시에 델타 파일의 용량을 최소화시키기 위하여 ADD 명령을 가급적 줄이고, 보다 많은 COPY 명령을 생성시킬 필요성이 부각되고 있다.
본 발명이 이루고자 하는 기술적 과제는 델타 파일 생성 시에 ADD 명령을 줄이고, 보다 많은 COPY 명령을 생성시키기 위한 델타 파일 생성 방법을 제공하는데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 이전 버전 파일을 2차원 배열로 매핑시켜 생성된 델타 파일을 이용하여 새로운 버전 파일을 생성시키기 위한 업데이트 방법을 제공하는데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는 본 발명에 따른 델타 파일 생성 방법 및 업데이트 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른 델타 파일 생성 방법은 (a) 이전 버전 파일의 데이터를 2차원 배열로 매핑시키고, 상기 2차원 배열에서 복수의 방향으로 데이터를 조합하여 해쉬 테이블을 생성시키는 단계; (b) 상기 해쉬 테이블과 새로운 버전 파일의 데이터들을 비교하는 단계; 및 (c) 상기 단계(b)의 비교 결과, 일치하는 부분은 COPY 명령으로 코딩하고 일치하지 않는 부분은 ADD 명 령으로 코딩하여 델타 파일을 생성시키는 단계를 포함함을 특징으로 한다.
바람직하게는, 상기 단계(b)의 비교 결과 일치하는 오프셋이 존재하는 경우에 가장 긴 공통된 데이터를 찾아 복사하고자 하는 방향 및 길이 정보를 갖는 COPY 명령으로 코딩을 실행한다.
또한, 상기 복수의 방향은 좌우방향, 상하방향 및 대각선방향을 포함한다.
그리고, 상기 COPY 명령은 이전 버전 파일의 X좌표 값, 이전 버전 파일의 Y좌표 값, COPY하고자 하는 방향 및 COPY 길이 정보를 포함한다.
상기 다른 기술적 과제를 해결하기 위하여 본 발명에 따른 이전 버전 파일과 델타 파일을 이용하여 새로운 버전 파일을 생성시키는 방법에 있어서, (a) 상기 델타 파일의 명령을 읽어내는 단계; 및 (b) 상기 단계(a)에서 읽어낸 델타 파일의 명령이 COPY 명령인 경우에는 상기 COPY 명령의 2차원 좌표 정보를 1차원 오프셋 값으로 변환하여 COPY 명령을 실행하는 단계를 포함함을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위하여 본 발명은 상기 델타 파일을 생성시키는 방법 및 패치를 실행하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
도 1에 본 발명에 따른 델타 파일 생성 방법 및 소프트웨어 업데이트 실행 방법이 적용되는 시스템의 블록 다이어그램을 도시하였다.
도 1에 도시된 바와 같이, 본 발명에 따른 시스템은 제1컴퓨터(10)와 제2컴 퓨터(20)로 구성되며, 제1컴퓨터(10)와 제2컴퓨터(20)는 네트워크로 연결된다. 일반적으로 델타 파일을 생성시키는 제1컴퓨터(10)는 서버 컴퓨터를 의미하며, 델타 파일을 이용하여 소프트웨어의 업데이트를 실행하는 제2컴퓨터(20)는 클라이언트 컴퓨터를 의미한다.
여기에서, 네트워크는 일 예로서 UPnP 기반의 네트워크로 구성될 수 있다. 물론, 본 발명이 UPnP 기반의 네트워크 접속 기술에 한정되는 것이 아니며, 인터넷을 포함하여 다양한 네트워크 접속 기술이 적용될 수도 있다.
일반적으로 소프트웨어 업데이트를 실행하는 과정은 델타 파일 생성 과정, 델타 파일 전송 과정 및 델타 파일을 이용한 업데이트 실행 과정으로 구성된다.
위의 델타 파일 생성 과정은 제1컴퓨터(10 : 서버 컴퓨터)에서 실행되고, 델타 파일 전송 과정은 네트워크 상에서의 제1컴퓨터(10)와 제2컴퓨터(20 : 클라이언트 컴퓨터) 통신에 의하여 실행되고, 델타 파일을 이용한 업데이트 실행 과정은 제2컴퓨터(20)에서 실행된다.
그러면, 소프트웨어 업데이트를 실행하는 각각의 과정에 대하여 세부적으로 설명하기로 한다.
제1컴퓨터(10)에 내장된 하드웨어 및 소프트웨어에 의하여 실행되는 델타 파일 생성 알고리즘(120)은 이전 버전 파일(110 :원본 파일)과 새로운 버전 파일(130)을 비교하여 그 차이에 근거하여 델타 파일을 생성시킨다.
그러면, 델타 파일 생성 알고리즘(120)에 의하여 본 발명에 따른 델타 파일을 생성시키는 과정을 도 2의 흐름도를 참조하여 설명하기로 한다.
우선, 이전 버전 파일(110)을 2차원 배열로 매핑시킨다(S201). 이전 버전 파일(110)을 2차원 배열로 매핑시키면 도 6에 도시된 바와 같이 표현된다. 참고적으로, 2차원 배열의 좌표는 도 4에 도시된 바와 같으며, 도 5는 1차원의 시리얼(serial)한 데이터의 오프셋 번호를 표시하였다.
다음으로, 이전 버전 파일(110)로 해시 테이블(hash table)을 생성시킨다(S202). 해시 테이블 생성 시에 2차원 배열에서 복수의 방향으로 데이터를 추출하며, 본 발명의 일 실시 예에서는 도 6에 도시된 바와 같이 4가지 방향으로 데이터를 추출하였다. 즉, 4가지 방향은 좌에서 우로 향하는 방향(도 6에서의 1의 방향), 위에서 아래로 향하는 방향(도 6에서의 2의 방향), 좌상에서 우하로 향하는 대각선 방향(도 6에서의 3의 방향), 우하에서 좌상으로 향하는 대각선 방향(도 6에서의 4의 방향)을 의미한다. 본 발명의 일 실시 예에서는 해시 테이블을 생성시키기 위하여 4가지 방향으로 데이터를 추출하였으나, 본 발명이 이에 한정되는 것은 아니며 2가지 이상의 방향으로 데이터를 추출하는 기법은 모두 포함될 수 있다.
도 6에서 윈도우 사이즈를 2로 결정한 경우에 이전 버전 파일(110)로 4가지 방향을 고려하여 생성되는 해시 테이블을 구성하는 해시 데이터의 개수는 78개가 된다. 이에 비하여 종래의 기술에서와 같이 1차원 방식에서는 16개의 해시 데이터가 생성된다. 따라서, 본 발명에서는 종래의 기술에 비하여 해시 테이블을 구성하는 해시 데이터의 개수가 많이 생성된다는 것을 알 수 있다. 이는 데이터 풀(data pool)이 확장된다는 것을 의미한다.
그러면, 이전 버전 파일(110)로 생성된 해시 테이블을 이용하여 새로운 버전 파일(130)을 비교하는 프로세스를 실행한다.
우선, 새로운 버전 파일(130)에서 델타 파일(140)에 코딩하지 않은 데이터의 남은 사이즈가 윈도우 사이즈보다 작은지를 판단한다(S203).
단계203(S203)의 판단 결과 새로운 버전 파일(130)에서 델타 파일(140)에 코딩하지 않고 남은 데이터의 사이즈가 윈도우 사이즈보다 크거나 같은 경우에는, 새로운 버전 파일(130)의 남은 데이터로 serial하게 윈도우 사이즈의 해쉬 데이터를 생성시킨다(S204).
그리고 나서, 단계202(S202)에서 생성된 해쉬 테이블에서 새로운 버전 파일(130)의 해쉬 데이터와 일치하는 오프셋이 존재하는지 탐색한다(S205).
단계205(S205)의 탐색 결과 일치하는 오프셋이 존재하는지 판단한다(S206).
단계206(S206)의 판단 결과 일치하는 오프셋이 존재하면, 가장 긴 공통된 데이터를 찾아낸다(S207).
단계207(S207)에서 공통된 데이터를 찾아낸 후에는 COPY 방향 및 길이를 고려하여 COPY 인코딩을 실행한다(S208). 즉, 이전 버전 파일(110)의 X좌표, Y좌표, COPY 방향 및 COPY 길이 정보가 포함되도록 COPY 명령을 코딩한다. 일 예로서, COPY(이전 버전 파일의 X좌표, 이전 버전 파일의 Y좌표, COPY 방향, COPY 길이)로 COPY 명령이 코딩된다.
그리고 나서, 새로운 버전 파일(130)의 다음 오프셋으로 이동한 후에, 단계203(S203)으로 피드백 시킨다(S209).
그리고, 단계206(S206)의 판단 결과 일치하는 오프셋이 존재하지 않는 경우 에는 ADD 명령으로 인코딩한다(S210). 즉, 새로운 버전 파일(130)의 해당 오프셋의 데이터를 ADD 명령으로 인코딩한다.
또한, 단계203(S203)의 판단 결과 새로운 버전 파일(130)에 남은 데이터의 사이즈가 윈도우 사이즈보다 작은 경우에는 새로운 버전 파일(130)에 남은 데이터가 존재하는지를 판단한다(S211).
단계211(S211)의 판단 결과 남은 새로운 버전 파일(130)에 남은 데이터가 존재하면 ADD 명령으로 남은 데이터를 처리한다(S212).
이와 같은 프로세스를 거치고 나면, 이전 버전 파일(110)과 새로운 버전 파일(130)의 차이에 근거하여 최종적으로 완성된 형태의 델타 파일(140)이 생성된다(S213).
일 예로서, 이전 버전 파일(110)이 [A B C D E F G H I J K L M N O P]이고 새로운 버전 파일(130)이 [A E I M E F J N I J K L M N Z Z]이라고 가정할 때, 도 2의 흐름도에 따른 델타 파일을 생성시키는 과정을 살펴보기로 한다.
우선, 이전 버전 파일(110)을 2차원 배열로 매핑시키면 도 6과 같이 표현되고, 도 6에 도시된 4가지 방향으로 데이터를 추출하여 해쉬 테이블을 생성시킨다.
그리고 나서, 새로운 버전 파일(130)의 첫 번째 오프셋부터 윈도우 사이즈로 해쉬 데이터를 생성시키면 첫 번째 해쉬 데이터는 [A E]가 될 것이다.
첫 번째 해쉬 데이터 [A E]와 이전 버전 파일(110)의 2차원 배열에서 생성된 해쉬 테이블에 해쉬 데이터 [A E]와 일치하는 해쉬 데이터가 존재하는지 판단한다.
판단 결과 해쉬 데이터 [A E]가 해쉬 테이블에 존재함으로 [A E]로 시작하는 새로운 버전 파일(130)의 데이터와 이전 버전 파일(110)의 해쉬 테이블에서 가장 긴 공통된 데이터를 탐색한다. 탐색 결과 가장 긴 공통된 데이터는 2번 방향의 [A E I M]이 된다.
공통된 데이터 [A E I M]을 COPY하고자 하는 방향 및 길이를 고려하여 COPY 명령을 생성시킨다. 즉, COPY(0,0,2,4)와 같이 COPY 명령이 생성된다. COPY(0,0,2,4)는 좌표(0,0)에서 2번 방향으로 4개의 데이터를 COPY하라는 명령이다.
그리고 나서, 새로운 버전 파일(130)의 다음 오프셋으로 이동하여 생성된 해쉬 데이터 [E F]로 시작하는 해쉬 데이터와 이전 버전 파일(110)의 해쉬 테이블에서 일치하는 해쉬 데이터가 존재하는지를 판단한다. 탐색 결과 가장 긴 공통된 데이터는 1번 방향의 [E F]가 됨을 도 6 및 도 7을 통해 알 수 있다. 이에 따라서, COPY(0,1,1,2)와 같은 COPY 명령을 생성시킨다.
다음으로, 새로운 버전 파일(130)의 다음 오프셋으로 이동하여 생성된 해쉬 데이터 [J N]으로 시작하는 해쉬 데이터와 이전 버전 파일(110)의 해쉬 테이블에서 일치하는 해쉬 데이터가 존재하는지를 판단한다. 탐색 결과 가장 긴 공통된 데이터는 2번 방향의 [J N]임을 도 6 및 도 7을 통해 알 수 있다. 이에 따라서, COPY(1,2,2,2)와 같은 COPY 명령을 생성시킨다.
다음으로, 새로운 버전 파일(130)의 다음 오프셋으로 이동하여 생성된 해쉬 데이터 [I J]로 시작하는 해쉬 데이터와 이전 버전 파일(110)의 해쉬 테이블에서 일치하는 해쉬 데이터가 존재하는지를 판단한다. 탐색 결과 가장 긴 공통된 데이터 는 1번 방향의 [I J K L M N]임을 도 6 및 도 7을 통해 알 수 있다. 이에 따라서, COPY(0,2,1,6)와 같은 COPY 명령을 생성시킨다.
마지막으로, 새로운 버전 파일(130)의 다음 오프셋으로 이동하여 생성된 해쉬 데이터 [Z Z]로 시작하는 해쉬 데이터와 이전 버전 파일(110)의 해쉬 테이블에서 일치하는 해쉬 데이터가 존재하는지를 판단한다. 탐색 결과 가장 공통된 데이터가 존재하지 않다. 도 6을 통해 알 수 있다. 이에 따라서, ADD(ZZ)와 같은 ADD 명령을 생성시킨다.
따라서, 최종적인 델타 파일은 [COPY(0,0,2,4) COPY(0,1,1,2) COPY(1,2,2,2) COPY(0,2,1,6) ADD(ZZ)]와 같은 명령으로 코딩된다.
이와 같이 제1컴퓨터(10)의 델타 파일 생성 알고리즘(120)에 따라서 생성된 델타 파일(140)을 네트워크를 통하여 제2컴퓨터(20)로 전송하면, 제2컴퓨터(20)에서는 업데이트 알고리즘(150)에 따라 델타 파일(140)을 이용하여 이전 버전 파일(110)로부터 새로운 버전 파일(130)을 생성시킨다.
이와 같은, 델타 파일 생성 알고리즘에 따라 ADD 명령의 발생 횟수가 감소되어 델타 파일의 사이즈가 감소된다.
그러면, 업데이트 알고리즘(150)에 따라 새로운 버전 파일(130)을 생성시키는 과정에 관해서는 도 3의 흐름도를 참조하여 설명하기로 한다.
참고적으로, 도 8(a)에 이전 버전 파일(110)의 데이터들 도시하였으며, 델타 파일(140)은 [COPY(0,0,2,4) COPY(0,1,1,2) COPY(1,2,2,2) COPY(0,2,1,6) ADD(ZZ)]와 같다.
우선, 포인터 위치를 초기화시킨다(S301). 즉, 도 8(b)에 도시된 바와 같이 포인터의 위치를 새로운 버전 파일의 생성시킬 첫 부분(0번지)을 지시하도록 초기화시킨다.
다음으로, 델타 파일(140) 명령을 순차적으로 읽어낸다(S302).
단계302(S302)에서 읽어낸 명령이 ADD 명령인지 또는 COPY 명령인지를 판단한다(S303).
단계303(S303)의 판단 결과 COPY 명령인 경우에는 COPY 명령의 좌표, 방향 및 길이를 고려하여 2차원 좌표를 1차원 오프셋 값을 변환하여 COPY를 실행한다(S304). 2차원 좌표를 1차원 오프셋 값으로 변환시키는 방법은 2차원 좌표 값이 {X 좌표값 + (Y좌표값 × 행의 너비)}와 같은 연산에 의하여 1차원 오프셋 값으로 변환된다.
즉, 델타 파일(140)의 첫 번째 명령이 COPY(0,0,2,4)에 해당됨으로 이전 버전 파일(110)의 번지 (0), (0+1×4), (0+2×4), (0+3×4)의 데이터 [A E I M]을 포인터 번지 (0)부터 복사하면 도 8(c)에 도시된 바와 같이 기록된다.
그리고 나서, 포인터를 COPY 명령을 실행한 길이 또는 ADD 명령을 실행한 길이만큼 이동시킨다(S306). 이에 따라서, 델타 파일(140)의 첫 번째 명령 COPY(0,0,2,4)을 실행한 후에 포인터의 위치는 도 8(c)에 도시된 바와 같이 번지 (4)를 지시하도록 이동된다.
포인터를 이동시키고 나서, 델타 파일(140)에 읽지 않은 명령이 남아 있는지를 판단한다(S307).
단계307(S307)의 판단 결과 델타 파일(140)에 읽지 않은 명령이 남아 있는 경우에는 델타 파일(140)의 다음 명령을 읽어내어 단계303(S303)으로 피드백 시킨다(S308).
만일 단계307(S307)의 판단 결과 델타 파일(140)에 읽지 않은 명령이 남아 있지 않는 경우에는, 최종적으로 완성된 새로운 버전 파일(130)을 생성시킨다(S309).
이에 따라서, 델타 파일(140)의 첫 번째 명령인 COPY(0,0,2,4)을 실행시키고 나서, 두 번째 명령인 COPY(0,1,1,2)을 읽어내어 이를 실행한다.
즉, COPY(0,1,1,2)은 이전 버전 파일(110)의 번지 (0+1×4), (0+1×4+1)의 데이터 [E F]를 포인터 번지 (4)부터 복사하여 도 8(d)에 도시된 바와 같이 기록되고, 포인터 위치는 번지 (6)로 이동된다.
같은 방법으로 델타 파일(140)의 세 번째 명령인 COPY(1,2,2,2)을 실행하면 이전 버전 파일(110)의 번지 (1+2×4), (1+3×4)의 데이터 [J N]을 포인터 번지 (6)부터 복사하여 도 8(e)에 도시된 바와 같이 기록되고, 포인터 위치는 번지 (8)로 이동된다.
또한, 델타 파일(140)의 네 번째 명령인 COPY(0,2,1,6)을 실행하면 이전 버전 파일(110)의 번지 (0+2×4), (0+2×4+1), (0+2×4+2), (0+2×4+3), (0+2×4+4), (0+2×4+5)의 데이터 [I J K L M N]을 포인터 번지 (8)부터 복사하여 도 8(f)에 도시된 바와 같이 기록되고, 포인터 위치는 번지 (14)로 이동된다.
그리고, 델타 파일(140)의 마지막 명령인 ADD(ZZ)을 실행하여 포인터 번지 (14)부터 데이터 [ZZ]을 기록하면 도 8(g)와 같이 된다.
이와 같이, 델타 파일(140)의 모든 명령을 실행하고 나면, 도 8(g)에 도시된 바와 같이 최종적으로 완성된 새로운 버전 파일(130) [A E I M E F J N I J K L M N Z Z]을 생성시킨다.
즉, 업데이트 알고리즘(150)은 델타 파일(140)을 이용하여 이전 버전 파일(110)로부터 위와 같은 방법으로 새로운 버전 파일(130)을 생성시킨다.
이와 같은 방법에 따라서 2차원 배열의 매핑에 의하여 생성된 델타 파일을 이용하여 새로운 버전 파일을 생성시킬 때 이전 버전 파일을 2차원 배열로 매핑하지 않고 오프셋을 계산하여 새로운 버전 파일을 생성시킬 수 있게 된다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본 질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, 이전 버전 파일을 2차원 배열로 매핑시켜 데이터 풀(data pool)을 확장시켜 델타 파일 생성 시에 ADD 명령의 발생 빈도를 줄임으로써, 델타 파일의 사이즈를 줄일 수 있는 효과가 발생된다. 즉, 델타 파일은 이전 버전 파일을 업그레이드 하거나 이전 버전 파일의 백업을 위해 사용되므로 델타 파일의 사이즈가 줄어들게 되면 디스크 용량의 감소나 네트워크 비용을 줄일 수 있는 효과가 발생된다.

Claims (6)

  1. (a) 이전 버전 파일의 데이터를 2차원 배열로 매핑시키고, 상기 2차원 배열에서 복수의 방향으로 데이터를 조합하여 해쉬 테이블을 생성시키는 단계;
    (b) 상기 해쉬 테이블과 새로운 버전 파일의 데이터들을 비교하는 단계; 및
    (c) 상기 단계(b)의 비교 결과, 일치하는 부분은 COPY 명령으로 코딩하고 일치하지 않는 부분은 ADD 명령으로 코딩하여 델타 파일을 생성시키는 단계를 포함함을 특징으로 하는 델타 파일 생성 방법.
  2. 제1항에 있어서, 상기 단계(b)의 비교 결과 일치하는 오프셋이 존재하는 경우에 가장 긴 공통된 데이터를 찾아 복사하고자 하는 방향 및 길이 정보를 갖는 COPY 명령으로 코딩을 실행함을 특징으로 하는 델타 파일 생성 방법.
  3. 제1항에 있어서, 상기 복수의 방향은 좌우방향, 상하방향 및 대각선방향을 포함함을 특징으로 하는 델타 파일 생성 방법.
  4. 제1항에 있어서, 상기 COPY 명령은 이전 버전 파일의 X좌표 값, 이전 버전 파일의 Y좌표 값, COPY하고자 하는 방향 및 COPY 길이 정보를 포함함을 특징으로 하는 델타 파일 생성 방법.
  5. 제1항 내지 제4항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  6. 이전 버전 파일과 델타 파일을 이용하여 새로운 버전 파일을 생성시키는 방법에 있어서,
    (a) 상기 델타 파일의 명령을 읽어내는 단계; 및
    (b) 상기 단계(a)에서 읽어낸 델타 파일의 명령이 COPY 명령인 경우에는 상기 COPY 명령의 2차원 좌표 정보를 1차원 오프셋 값으로 변환하여 COPY 명령을 실행하는 단계를 포함함을 특징으로 하는 소프트웨어 업데이트 방법.
KR1020060021836A 2006-03-08 2006-03-08 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법 KR100750169B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060021836A KR100750169B1 (ko) 2006-03-08 2006-03-08 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060021836A KR100750169B1 (ko) 2006-03-08 2006-03-08 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법

Publications (1)

Publication Number Publication Date
KR100750169B1 true KR100750169B1 (ko) 2007-08-21

Family

ID=38614734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060021836A KR100750169B1 (ko) 2006-03-08 2006-03-08 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법

Country Status (1)

Country Link
KR (1) KR100750169B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120127204A (ko) * 2011-05-12 2012-11-21 삼성전자주식회사 안정된 바이너리 식별 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098427A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Device memory management during electronic file updating
US20050132382A1 (en) * 2003-12-15 2005-06-16 Mcguire Thomas D. System and method for updating files utilizing delta compression patching
WO2005085997A2 (en) * 2004-03-10 2005-09-15 Sony Ericsson Mobile Communications Ab Automatic backup store in firmware upgrades
KR20060069361A (ko) * 2003-06-23 2006-06-21 레드 밴드 리미티드 저장기기에 저장된 콘텐츠의 버전을 갱신하는 방법 및시스템
KR20060109284A (ko) * 2003-12-15 2006-10-19 마이크로소프트 코포레이션 소프트웨어 분산 서비스를 위한 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098427A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Device memory management during electronic file updating
KR20060069361A (ko) * 2003-06-23 2006-06-21 레드 밴드 리미티드 저장기기에 저장된 콘텐츠의 버전을 갱신하는 방법 및시스템
US20050132382A1 (en) * 2003-12-15 2005-06-16 Mcguire Thomas D. System and method for updating files utilizing delta compression patching
KR20060109284A (ko) * 2003-12-15 2006-10-19 마이크로소프트 코포레이션 소프트웨어 분산 서비스를 위한 시스템 및 방법
WO2005085997A2 (en) * 2004-03-10 2005-09-15 Sony Ericsson Mobile Communications Ab Automatic backup store in firmware upgrades

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120127204A (ko) * 2011-05-12 2012-11-21 삼성전자주식회사 안정된 바이너리 식별 방법 및 장치
KR101882759B1 (ko) * 2011-05-12 2018-07-27 삼성전자주식회사 안정된 바이너리 식별 방법 및 장치

Similar Documents

Publication Publication Date Title
US8051032B2 (en) System and method for loading records into a partitioned database table
CN104462668B (zh) 计算机实施的用于设计用二叉树来建模的工业产品的方法
JP4969590B2 (ja) 第一のコンピュータ援用3dモデルを第二のコンピュータ援用3dモデルと比較するための方法
JP2004152136A (ja) データ更新システム、データ更新システムの差分データ生成装置及びプログラム、並びに更新後ファイル復元装置及びプログラム
JP4522485B1 (ja) データ変換方法、その装置およびそのプログラム
JP2010224845A (ja) ストレージ装置
WO2011070910A1 (ja) データ配置・計算システム、データ配置・計算方法、マスタ装置、及びデータ配置方法
JP2019197438A (ja) グラフ更新装置、グラフ更新方法、及びプログラム
JP5721056B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
CN106648636B (zh) 一种基于图挖掘的软件函数变更预测系统及方法
CN109302449B (zh) 数据写入方法、数据读取方法、装置和服务器
KR100750169B1 (ko) 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법
CN113836116A (zh) 数据迁移方法、装置、电子设备及可读存储介质
KR20100114409A (ko) 점진적 메쉬 복호화 방법과 장치
US20220360458A1 (en) Control method, information processing apparatus, and non-transitory computer-readable storage medium for storing control program
JP2008299618A (ja) 画像高品質化装置、方法およびプログラム
CN115358407A (zh) 基于张量网络的近似量子编译方法、系统和电子设备
CN107291574B (zh) 基于解释系统的备份数据恢复主键生成方法
JP4036852B2 (ja) 差分データ生成装置、差分データ生成方法および差分データ生成プログラム
KR20220099745A (ko) 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치
JP5867208B2 (ja) データモデル変換プログラム、データモデル変換方法およびデータモデル変換装置
JP4791205B2 (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム
JP2005269244A (ja) 情報埋込装置および情報埋込方法、並びに、情報抽出装置および情報抽出方法、並びに、情報埋込抽出システム、並びに、プログラムおよび記録媒体
JP2002108947A (ja) 設計支援システム
JP4249793B2 (ja) 差分データ生成装置、差分データ生成装置の差分データ生成方法および差分データ生成プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120730

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160728

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170728

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee