KR100969989B1 - 네트워크에서 응용프로그램 배포 방법 및 장치 - Google Patents

네트워크에서 응용프로그램 배포 방법 및 장치 Download PDF

Info

Publication number
KR100969989B1
KR100969989B1 KR1020080051795A KR20080051795A KR100969989B1 KR 100969989 B1 KR100969989 B1 KR 100969989B1 KR 1020080051795 A KR1020080051795 A KR 1020080051795A KR 20080051795 A KR20080051795 A KR 20080051795A KR 100969989 B1 KR100969989 B1 KR 100969989B1
Authority
KR
South Korea
Prior art keywords
files
execution
application
file
necessary
Prior art date
Application number
KR1020080051795A
Other languages
English (en)
Other versions
KR20090125605A (ko
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 KR1020080051795A priority Critical patent/KR100969989B1/ko
Publication of KR20090125605A publication Critical patent/KR20090125605A/ko
Application granted granted Critical
Publication of KR100969989B1 publication Critical patent/KR100969989B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/108Transfer of content, software, digital rights or licenses
    • G06F21/1085Content sharing, e.g. peer-to-peer [P2P]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 실시예에 따른 P2P 네트워크에 속하는 피어(peer)는, 제1응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 배포하는 파일 배포 유닛; 제2응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 수신하는 파일 수신 유닛; 및 상기 제2응용프로그램의 실행에 필요한 파일들이 수신된 이후에, 상기 제2응용프로그램의 실행에 필요한 파일들을 실행시킬 수 있는 환경을 설정하는 프로그램 실행 환경 설정 유닛을 구비한다. 상기 파일 배포 유닛은, 상기 제1응용프로그램의 실행 도중에 변경될 수 있는 파일에 대해서는 백업 파일을 배포하고, 상기 제1응용프로그램 실행 도중에 변경되지 않는 파일에 대해서는 원본과 동일한 파일을 배포한다.

Description

네트워크에서 응용프로그램 배포 방법 및 장치{Method and apparatus for distributing application programs in network}
본 발명은 P2P 네트워크에 관한 것으로써, 특히, 응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 배포하는 P2P 네트워크에 속하는 피어 및 P2P 네트워크 시스템에 관한 것이다.
P2P(peer-to-peer network) 혹은 동등 계층간 통신망은 비교적 소수의 서버에 집중하기 보다는 망구성에 참여하는 기계들의 계산과 대역폭(bandwidth) 성능에 의존하여 구성되는 통신망이다. P2P 통신망은 일반적으로 노드(node)들을 규모가 큰 애드혹(Ad hoc)으로 서로 연결하는 경우 이용된다. 이런 통신망은 여러 가지로 쓸모가 있는데, 오디오나 비디오, 데이터 등 임의의 디지털 형식 파일의 공유는 매우 보편적이다. 또한, 인터넷 전화(VoIP)같은 실시간 데이터 등도 P2P 기술을 통해 서로 전달될 수 있다.
순수 P2P 파일 전송 네트워크는 클라이언트나 서버란 개념 없이, 오로지 동등한 계층 노드들(peer nodes)이 서로 클라이언트와 서버 역할을 동시에 네트워크 위에서 하게 된다. 이 네트워크 구성 모델은 보통 중앙 서버를 통하는 통신 형태의 클라이언트-서버 모델과는 구별된다.
본 발명의 실시예가 이루고자 하는 기술적 과제는, 응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 배포하는 P2P 네트워크에 속하는 피어 및 P2P 네트워크 시스템을 제공하는 데 있다.
본 발명의 실시예가 이루고자 하는 다른 기술적 과제는, 응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 수신하는 P2P 파일 수신 방법을 제공하는 데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 P2P 네트워크에 속하는 피어(peer)는, 제1응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 배포하는 파일 배포 유닛; 제2응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 수신하는 파일 수신 유닛; 및 상기 제2응용프로그램의 실행에 필요한 파일들이 수신된 이후에, 상기 제2응용프로그램의 실행에 필요한 파일들을 실행시킬 수 있는 환경을 설정하는 프로그램 실행 환경 설정 유닛을 구비한다. 상기 파일 배포 유닛은, 상기 제1응용프로그램의 실행 도중에 변경될 수 있는 파일에 대해서는 백업 파일을 배포하고, 상기 제1응용프로그램 실행 도중에 변경되지 않는 파일에 대해서는 원본과 동일한 파일을 배포한다.
본 발명의 실시예에 따른 P2P 네트워크에 속하는 피어 및 P2P 네트워크 시스 템은, 응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 배포함으로써, 별도의 인스톨 과정없이 응용프로그램을 실행시킬 수 있는 장점이 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 피어(peer)를 나타내는 도면이다.
도 1에 도시된 본 발명의 실시예에 따른 피어는 P2P 네트워크에 속하는 피어일 수 있다. 피어는 배포대상이 되는 파일을 가지고 있거나 배포대상이 되는 파일을 원하는 단말기(컴퓨터)일 수도 있고, 상기 단말기(컴퓨터)에서 이러한 기능을 하는 프로그램일 수도 있다.
도 1을 참조하면, 본 발명의 실시예에 따른 피어는 파일 배포 유닛(110), 파일 수신 유닛(120), 및 프로그램 실행 환경 설정 유닛(130)을 구비한다.
파일 배포 유닛(110)은 제1응용프로그램의 실행에 필요한 파일들(F1_1~F1_j, BF1_j+1~BF1_n)을 실행 가능한 형태로 배포한다. 파일 수신 유닛(120)은 제2응용프로그램의 실행에 필요한 파일들(F2_1~F2_k, BF2_k+1~BF2_m)을 실행 가능한 형태로 수신한다. 이처럼, 본 발명의 실시예에 따른 피어는 응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 배포함으로써, 배포받는 피어가 별도의 설치과정 없이 응용프로그램을 실행시킬 수 있도록 한다. 또한, 본 발명의 실시예에 따른 피어는 응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 수신함으로써, 별도의 설치과정 없이 응용프로그램을 실행시킬 수 있다.
반면에, 일반적인 피어들은 응용프로그램의 실행에 필요한 파일들을 바로 실행할 수 없는 상태로 전송한다. 즉, 파일들을 설치할 수 있는 형태로 만들어서 전송한다. 예를 들어, 파일들을 인스톨 파일로 패키징하여 전송할 수 있다. 피어는 인스톨 파일을 다운로드 받은 이후에 인스톨 파일을 설치하는 과정을 수행한다.
이 경우, 설치할 수 있는 형태로 만들어진 파일(예를 들어, 인스톨 파일)은 프로그램의 설치가 끝난 이후에 사용자가 지우지 않으면 하드디스크나 메모리 등의 리소스 낭비를 초래한다. 또한, 리소스 낭비를 줄이기 위해서는 사용자가 지워야 하는 번거로움이 있다. 또한, 사용자가 설치할 수 있는 형태로 만들어진 파일(예를 들어, 인스톨 파일)을 삭제하면, 사용자의 피어는 더 이상 피어로서 기능 할 수 없다.
파일 배포 유닛(110)은 제1응용프로그램의 실행 도중에 변경될 수 있는 파일(F1_j+1~F1_n)에 대해서는 백업 파일(BF1_j+1~BF1_n)을 배포하고, 제1응용프로그램 실행 도중에 변경되지 않는 파일(F1_1~F1_j)에 대해서는 원본과 동일한 파일(F1_1~F1_j)을 배포한다. 그에 따라, 배포하는 피어는 제1응용프로그램을 실행하는 데 지장 없게 되고, 배포받는 피어에게 변경되기 이전의 파일들을 제공할 수 있다.
프로그램 실행 환경 설정 유닛(130)은 제2응용프로그램의 실행에 필요한 파일들(F2_1~F2_k, BF2_k+1~BF2_m)이 수신된 이후에, 제2응용프로그램의 실행에 필요한 파일들(F2_1~F2_k, BF2_k+1~BF2_m)을 실행시킬 수 있는 환경을 설정한다. 예를 들어, 프로그램 실행 환경 설정 유닛(130)은 레지스트리 수정 작업을 통하여 제2응용 프로그램이 실행 가능하도록 한다.
다시 도 1을 참조하면, 본 발명의 실시예에 따른 피어는 파일 저장 유닛(150)을 더 구비할 수 있다.
파일 저장 유닛(150)은 제1 또는 제2응용프로그램의 실행에 필요한 파일들(F1_1~F1_j, F1_j+1~F1_n, F2_1~F2_k, F2_k+1~F2_m)을 실행 가능한 형태로 저장한다. 또한, 제1 또는 제2응용프로그램의 실행 도중에 변경될 수 있는 파일(F1_j+1~F1_n, F2_k+1~F2_m)에 대해서는 백업 파일(BF1_j+1~BF1_n, BF2_k+1~BF2_m)을 생성하여 저장할 수 있다.
파일 저장 유닛(150)이 구비되는 경우, 파일 배포 유닛(110)은 파일 저장 유닛(150)에 저장된 파일들을 배포할 수 있고, 파일 수신 유닛(120)은 제2응용프로그램의 실행에 필요한 파일들을 수신하여, 파일 저장 유닛(150)에 저장할 수 있다. 파일 저장 유닛(150)은 제2응용프로그램의 실행에 필요한 파일들이 수신된 이후에, 제2응용프로그램의 실행 도중에 변경될 수 있는 파일에 대하여 백업 파일을 생성할 수 있다.
다시 도 1을 참조하면, 본 발명의 실시예에 따른 피어는 파일접근권한 설정유닛(170)을 더 구비할 수 있다.
파일접근권한 설정유닛(170)은 제1 또는 제2응용프로그램의 실행에 필요한 파일들(F1_1~F1_n, F2_1~F2_m)이 열리는 순간, 파일들의 접근 권한을 공유 권한으로 변경한다. 또는, 제1 또는 제2응용 프로그램에 의해 사용중인 파일들(F1_1~F1_n, F2_1~F2_m)의 접근 권한을 공유 권한으로 변경할 수 있다. 특정 프로그램이 파일에 대해 배타적인 권한을 가지고 접근하고 있는 경우에는 다른 응용 프로그램은 해당 파일에 접근하지 못한다. 파일접근권한 설정유닛(170)은 응용 프로그램이 파일을 열고 처음 접근하는 순간을 후킹(hooking)하여, 파일을 배타적인 권한 대신에 공유 권한으로 접근하도록 변경함으로써, 응용 프로그램이 실행 중인 경우에도 응용 프로그램의 실행에 필요한 파일들(F1_1~F1_n, F2_1~F2_m)을 배포할 수 있다.
파일 배포 유닛(110)은 제1응용프로그램의 실행에 필요한 파일들의 전부를 실행 가능한 형태로 배포할 수 있을 뿐만 아니라, 제1응용프로그램의 실행에 필요한 파일들의 일부를 배포할 수도 있다. 이 경우, 여러 개의 피어들이 제1응용프로그램의 실행에 필요한 파일들을 일부씩 나누어 가지고 있다가, 배포할 수도 있다. 이에 관해서는 도 4를 참조하여 후술된다.
도 2는 본 발명의 실시예에 따른 P2P 네트워크 시스템을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 실시예에 따른 P2P 네트워크 시스템(200)은 복수개의 피어들(200_1, 200_2, 200_3)을 구비한다. 도 2에는 3개의 피어들이 도시되었으나, P2P 네트워크 시스템(200)이 구비하는 피어의 개수는 3개에 한정되지 않는다.
도 2를 참조하면, 제1피어(200_1)는 제1응용프로그램의 실행에 필요한 파일들(F1_1~F1_j, BF1_j+1~BF1_n)을 실행 가능한 형태로 제2피어(200_2) 또는 제3피어(200_3)에 배포할 수 있다. 제2피어(200_2)는 제2응용프로그램의 실행에 필요한 파일들(F2_1~F2_k, BF2_k+1~BF2_m)을 실행 가능한 형태로 제1피어(200_1) 또는 제3피어(200_3)에 배포할 수 있다. 배포 받는 피어들(200_1, 200_2, 200_3)은 응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 수신함으로써, 별도의 설치과정 없이 응용프로그램을 실행시킬 수 있다.
복수개의 피어들(200_1, 200_2, 200_3) 중에서 하나 이상의 피어는, 도 1의 본 발명의 실시예에 따른 피어일 수 있다. 복수개의 피어들(200_1, 200_2, 200_3) 각각은 파일 배포 유닛, 파일 수신 유닛 및 프로그램 실행 환경 설정 유닛을 모두 구비할 수도 있고, 그들 중 일부만 구비할 수도 있다. 예를 들어, 도 2에 도시된 피어(200_3)는 파일 배포 유닛을 구비하지 않고 파일 수신 유닛과 프로그램 실행 환경 설정 유닛을 구비할 수도 있다. 또한, 도 2에 도시된 피어(200_1, 200_2)는 파일 배포 유닛, 파일 수신 유닛 및 프로그램 실행 환경 설정 유닛을 모두 구비할 수 있다. 파일 배포 유닛, 파일 수신 유닛 및 프로그램 실행 환경 설정 유닛에 대해서는 도 1을 참조하여 설명된 바 있으므로, 그에 관한 설명은 생략된다.
도 3은 본 발명의 다른 실시예에 따른 P2P 네트워크 시스템을 나타내는 도면이다.
도 3을 참조하면, 도 2에 도시된 P2P 네트워크 시스템(200)에 비하여, 본 발명의 다른 실시예에 따른 P2P 네트워크 시스템(300)은 트래커(350)와 시드 서 버(370)를 더 구비한다.
트래커(350)는 P2P 네트워크 시스템(300)에 속해있는 피어들(300_1, 300_2, 300_3)의 리스트(P1, P2, P3)와 피어들(300_1, 300_2, 300_3)이 가지고 있는 파일들의 리스트(FLIST1, FLIST2, FLIST3)를 관리한다. 트래커(350)는 현재 어떤 피어들이 P2P 네트워크에 물려있는지, 각각의 피어들은 어떤 파일을 가지고 있는지 등의 정보를 유지하고 있으며 이 정보를 계속해서 업데이트 한다. 트래커(350)는 이러한 역할을 하는 컴퓨터 또는 그 컴퓨터에서 이러한 기능을 하는 프로그램 일 수 있다.
제1피어(300_1)가 제2응용프로그램을 다운로드하여 실행시키고자 하면, 제1피어(300_1)는 트래커(350)에 접속하여 제2응용프로그램 실행에 필요한 파일들의 리스트(FLIST2)와 그 파일들을 가지고 있는 피어의 리스트(PLIST)를 받는다. 제1피어(300_1)는 피어의 리스트(PLIST)에서 제2피어(300_2)를 선택하여, 제2피어(300_2)로부터 제2응용프로그램 실행에 필요한 파일들(F2_1~F2_k, BF2_k+1~BF2_m)을 받는다. 여기에서는 일부 파일들(BF2_k+1~BF2_m)이 백업 파일인 것으로 설명되었으나, 모든 파일들이 원본 파일들 일 수도 있다.
시드 서버(370)는 응용프로그램 실행에 필요한 파일들(F1_1~F1_n, F2_1~F2_m, F3_1~F3_l)을 실행 가능한 형태로 저장하고, 피어들(300_1, 300_2, 300_3)에게 응용프로그램 실행에 필요한 파일들(F1_1~F1_n, F2_1~F2_m, F3_1~F3_l)을 실행 가능한 형태로 배포한다.
P2P 기술을 사용하더라도 한 피어가 다른 피어로부터 필요로 하는 파일을 받 을 수가 없는 경우가 있다. 해당 파일을 가지고 있는 피어가 하나도 없거나 피어에 과부하가 걸려서 더 이상 다른 피어에게 파일을 전송해 줄 수 없는 경우인데 이 때에는 불가피하게 서버/클라이언트 구조에서와 유사한 방법으로 파일이 배포된다. 시드서버(370)는 파일을 가지고 있다가 이러한 경우에 피어들(300_1, 300_2, 300_3)에게 배포한다. 시드 서버(370)는 이러한 역할을 하는 컴퓨터 또는 그 컴퓨터에서 이러한 기능을 하는 프로그램 일 수 있다.
예를 들어, 피어들(300_1, 300_2, 300_3)이 제3응용프로그램의 실행에 필요한 파일들(F3_1~F3_l)을 가지고 있지 않는 경우, 제1피어(300_1)는 시드 서버(370)로부터 제3응용프로그램의 실행에 필요한 파일들(F3_1~F3_l)을 받을 수 있다. 제1피어(300_1)는 제3응용프로그램의 실행에 필요한 파일들(F3_1~F3_l)을 받은 이후에, 일부 파일들에 대하여 백업 파일을 생성할 수 있다.
시드 서버(370)와 트랙커(350)는 논리적인 구분이며 구현에 따라서 물리적으로 다른 컴퓨터에 분리되어 있을 수도 있으며 하나의 컴퓨터에 합쳐져 있을 수도 있다.
도 4는 본 발명의 또 다른 실시예에 따른 P2P 네트워크 시스템을 나타내는 도면이다.
도 4를 참조하면, 본 발명의 또 다른 실시예에 따른 P2P 네트워크 시스템(400)은 복수개의 피어들(400_1, 400_2, 400_3)을 구비한다. 본 발명의 또 다른 실시예에 따른 P2P 네트워크 시스템(400)에서는, 2개 이상의 피어들이 응용프로그램의 실행에 필요한 파일들을 일부씩 나누어 가지고 있다가, 배포할 수도 있다. 예 를 들어, 제2 피어(400_2)는 일부 파일들(F1_1~F1_j)을 가지고 있고, 제3피어(400_3)는 나머지 파일들(BF1_j+1~BJ1_n)을 가지고 있을 수 있다. 제1피어(400_1)는 제2피어(400_2)와 제3피어(400_3)로부터 파일들을 각각 수신할 수 있다.
P2P 스타일의 파일공유에 있어서 만약 각각의 피어들이 배포대상 파일 전부를 제공할 수 있는 배포하는 피어로 작동하게 되면 각각의 피어들은 다른 피어들로부터 요청이 있을 때마다 요청된 파일을 하드디스크에서 읽어서 배포받는 피어에게 전달하게 된다. 이러한 방법은 하드디스크 접근을 빈번하게 만들어 전체 시스템의 성능을 떨어뜨릴 우려가 있다. 이러한 문제를 해결하기 위하여, 본 발명의 또 다른 실시예에 따른 P2P 네트워크 시스템(400)에서, 각각의 피어들(400_2, 400_3)은 공유대상 응용 프로그램 실행을 위한 파일 전체를 다른 배포받는 피어(400_1)에게 전송하는 것이 아니고 공유대상 응용 프로그램 실행을 위한 파일들의 일부를 메모리에 올려놓은 상태에서 배포받는 피어에게 전송한다. 이러한 방법을 통해 배포하는 피어에 걸리는 부하를 줄일 수 있다.
어떤 피어가 어떤 응용 프로그램을 제공하는지는에 대한 정보는 트랙커(미도시)에 의해서 관리될 수 있다. 또한, 각각의 피어들(400_2, 400_3)은 응용 프로그램 실행을 위한 파일들의 일부를 캐쉬 메모리(455_2, 455_3)에 저장할 수 있다. 그에 따라, 하드 디스크에서 읽어서 배포하는 경우에 비하여 더 빠른 속도로 파일들을 배포할 수 있다.
도 5는 본 발명의 실시예에 따른 P2P 파일 수신 방법을 나타내는 순서도이 다.
도 5를 참조하면, 본 발명의 실시예에 따른 P2P 파일 수신 방법은, 특정 응용프로그램의 실행에 필요한 파일들의 리스트를 받는다(S510). 배포받는 피어는 배포대상 응용 프로그램의 배포에 관한 정보를 가지고 있는 트랙커에 접속하여 프로그램의 실행을 위하여 필요한 파일(혹은 파일의 일부)들의 리스트를 받을 수 있다.
상기 응용프로그램의 실행에 필요한 파일들을 가지고 있는 피어들의 리스트를 받는다(S530). 배포받는 피어는 파일들의 리스트를 보고 리스트에 있는 파일(혹은 파일의 일부)을 가지고 있는 피어들의 리스트를 트랙커에 요청할 수 있다.
상기 응용프로그램의 실행에 필요한 파일들을 상기 피어들의 리스트에 속하는 피어에 배포 요청한다(S550). 배포하는 피어가 응답을 하지 않을 경우에는 트랙커가 알려준 피어들 가운데 다른 피어들에게 요청을 하며 만약 더 이상 요청할 피어가 없는 경우에는 트랙커에게 다시 파일 혹은 파일의 일부를 가지고 있는 피어들의 리스트를 받을 수 있다.
상기 응용프로그램의 실행에 필요한 파일들을 상기 응용프로그램이 실행 가능한 형태로 수신한다(S570). 파일들을 수신하는 단계(S570)는, 상기 응용프로그램의 실행 도중에 변경될 수 있는 파일에 대해서는 백업 파일을 배포하고 상기 응용프로그램 실행 도중에 변경되지 않는 파일에 대해서는 원본과 동일한 파일을 수신할 수 있다.
상기 응용프로그램의 실행에 필요한 파일들을 실행시킬 수 있는 환경을 설정한다(S580). 배포받는 피어는 트랙커에게 자신이 프로그램을 배포받아 배포하는 피 어가 될 수 있음을 알린다(S590).
최근의 프로그램은 일반적으로 지속적으로 버전이 올라가면서 업데이트가 될 수 있다. 이러한 경우에는 프로그램을 다시 배포하게 되는데, 본 발명에 version control 요소를 더해서 이러한 경우에도 프로그램이 효율적으로 배포될 수 있도록 할 수 있다. 피어에서 응용 프로그램이 실행될 때에 현재 배포되는 버전과 응용 프로그램이 가지고 있는 버전을 비교한다. 만약 버전이 다를 경우에는 피어가 트랙커에 자신이 현재 가지고 있는 버전을 알리고 트랙커는 그 버전과 현재 배포되고 있는 파일 가운데 변경된 파일의 리스트를 피어에게 알린다. 변경된 파일들만을 다시 배포받는다.
또한, 파일들을 배포할 때에 압축된 형태로 배포함으로써 P2P 시스템의 효율을 높일 수도 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 피어(peer)를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 P2P 네트워크 시스템을 나타내는 도면이다.
도 3은 본 발명의 다른 실시예에 따른 P2P 네트워크 시스템을 나타내는 도면이다.
도 4는 본 발명의 또 다른 실시예에 따른 P2P 네트워크 시스템을 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 P2P 파일 수신 방법을 나타내는 순서도이다.

Claims (11)

  1. P2P 네트워크에 연결되는 장치에 있어서,
    제1응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 배포하는 파일 배포 유닛;
    제2응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 수신하는 파일 수신 유닛; 및
    상기 제2응용프로그램의 실행에 필요한 파일들이 수신된 이후에, 상기 제2응용프로그램의 실행에 필요한 파일들을 실행시킬 수 있는 환경을 설정하는 프로그램 실행 환경 설정 유닛을 구비하고,
    상기 파일 배포 유닛은,
    상기 제1응용프로그램의 실행 도중에 변경될 수 있는 파일에 대해서는 백업 파일을 배포하고, 상기 제1응용프로그램 실행 도중에 변경되지 않는 파일에 대해서는 원본과 동일한 파일을 배포하는 것을 특징으로 하는 P2P 네트워크에 연결되는 장치.
  2. 제1항에 있어서,
    상기 제1 또는 제2응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 저장하고, 상기 제1 또는 제2응용프로그램의 실행 도중에 변경될 수 있는 파일에 대해서는 백업 파일을 생성하여 저장하는 파일 저장 유닛을 더 구비하는 것을 특징으로 하는 P2P 네트워크에 연결되는 장치.
  3. 제1항에 있어서, 상기 프로그램 실행 환경 설정 유닛은,
    상기 제2응용프로그램의 실행에 필요한 파일들을 실행시킬 수 있도록, 레지스트리를 변경하는 것을 특징으로 하는 P2P 네트워크에 연결되는 장치.
  4. 제1항에 있어서,
    상기 제1 또는 제2응용프로그램의 실행에 필요한 파일들이 열리는 순간, 상기 파일들의 접근 권한을 공유 권한으로 변경하는 파일 접근 권한 설정 유닛을 더 구비하는 것을 특징으로 하는 P2P 네트워크에 연결되는 장치.
  5. 제1항에 있어서, 상기 파일 배포 유닛은,
    상기 제1응용프로그램의 실행에 필요한 파일들의 전부 또는 일부를 실행 가능한 형태로 배포하는 것을 특징으로 하는 P2P 네트워크에 연결되는 장치.
  6. P2P 네트워크 시스템에 있어서,
    복수개의 피어들을 구비하고,
    상기 복수개의 피어들 각각은,
    제1응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 다른 피어에 배포함으로써, 상기 배포받은 피어가 인스톨 과정없이 프로그램을 실행시킬 수 있 도록 하는 파일 배포 유닛;
    또 다른 피어로부터 제2응용프로그램의 실행에 필요한 파일들을 실행 가능한 형태로 수신하는 파일 수신 유닛; 및
    상기 제2응용프로그램의 실행에 필요한 파일들이 수신된 이후에, 상기 제2응용프로그램의 실행에 필요한 파일들을 실행시킬 수 있는 환경을 설정하는 프로그램 실행 환경 설정 유닛을 구비하고,
    상기 파일 배포 유닛은,
    상기 제1응용프로그램의 실행 도중에 변경될 수 있는 파일에 대해서는 백업 파일을 배포하고, 상기 제1응용프로그램 실행 도중에 변경되지 않는 파일에 대해서는 원본과 동일한 파일을 배포하는 것을 특징으로 하는 P2P 네트워크 시스템.
  7. 제6항에 있어서,
    상기 P2P 네트워크 시스템에 속해있는 피어들의 리스트와 상기 피어들이 가지고 있는 파일들의 리스트를 관리하는 트래커를 더 구비하는 것을 특징으로 하는 P2P 네트워크 시스템.
  8. 제6항에 있어서,
    상기 제1 또는 제2프로그램 실행에 필요한 파일들을 실행 가능한 형태로 저장하고, 상기 피어들에게 상기 제1 또는 제2응용프로그램 실행에 필요한 파일들을 실행 가능한 형태로 배포하는 시드 서버를 더 구비하는 것을 특징으로 하는 P2P 네 트워크 시스템.
  9. 제6항에 있어서, 상기 복수개의 피어들의 파일 저장 유닛들은,
    상기 제1응용프로그램의 실행에 필요한 파일들을 일부씩 나누어 저장하는 캐쉬 메모리를 포함하는 것을 특징으로 하는 P2P 네트워크 시스템.
  10. 특정 응용프로그램의 실행에 필요한 파일들의 리스트를 받는 단계;
    상기 응용프로그램의 실행에 필요한 파일들을 가지고 있는 피어들의 리스트를 받는 단계;
    상기 응용프로그램의 실행에 필요한 파일들을 상기 피어들의 리스트에 속하는 피어에 배포 요청하는 단계;
    상기 응용프로그램의 실행에 필요한 파일들을 상기 응용프로그램이 실행 가능한 형태로 수신하는 단계; 및
    상기 응용프로그램의 실행에 필요한 파일들을 실행시킬 수 있는 환경을 설정하는 단계를 포함하고, 상기 파일들을 수신하는 단계는,
    상기 응용프로그램의 실행 도중에 변경될 수 있는 파일에 대해서는 백업 파일을 배포하고, 상기 응용프로그램 실행 도중에 변경되지 않는 파일에 대해서는 원본과 동일한 파일을 수신하는 것을 특징으로 하는 P2P 파일 수신 방법.
  11. 삭제
KR1020080051795A 2008-06-02 2008-06-02 네트워크에서 응용프로그램 배포 방법 및 장치 KR100969989B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080051795A KR100969989B1 (ko) 2008-06-02 2008-06-02 네트워크에서 응용프로그램 배포 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080051795A KR100969989B1 (ko) 2008-06-02 2008-06-02 네트워크에서 응용프로그램 배포 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090125605A KR20090125605A (ko) 2009-12-07
KR100969989B1 true KR100969989B1 (ko) 2010-07-15

Family

ID=41687088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080051795A KR100969989B1 (ko) 2008-06-02 2008-06-02 네트워크에서 응용프로그램 배포 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100969989B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048251A (ko) 2020-10-12 2022-04-19 삼성에스디에스 주식회사 다수의 연계된 액션들을 실행하는 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050051200A (ko) * 2003-11-27 2005-06-01 삼성전자주식회사 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치
KR20070059807A (ko) * 2005-12-07 2007-06-12 한국전자통신연구원 피투피 기반의 스트리밍 서비스 제공 방법 및 장치, 이를이용한 스트리밍 서비스 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050051200A (ko) * 2003-11-27 2005-06-01 삼성전자주식회사 P2p 프로토콜을 이용하여 어플리케이션을 공유하는 방법및 장치
KR20070059807A (ko) * 2005-12-07 2007-06-12 한국전자통신연구원 피투피 기반의 스트리밍 서비스 제공 방법 및 장치, 이를이용한 스트리밍 서비스 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048251A (ko) 2020-10-12 2022-04-19 삼성에스디에스 주식회사 다수의 연계된 액션들을 실행하는 방법 및 장치

Also Published As

Publication number Publication date
KR20090125605A (ko) 2009-12-07

Similar Documents

Publication Publication Date Title
US11216418B2 (en) Method for seamless access to a cloud storage system by an endpoint device using metadata
US10749951B2 (en) Selection of leader nodes in distributed data services
US9971823B2 (en) Dynamic replica failure detection and healing
US8316364B2 (en) Peer-to-peer software update distribution network
US8620889B2 (en) Managing data transfer between endpoints in a distributed computing environment
RU2343536C2 (ru) Механизм одноранговой широковещательной передачи информационного содержания
US9052962B2 (en) Distributed storage of data in a cloud storage system
US20060130045A1 (en) Systems and methods for dynamically updating computer systems
US20090300169A1 (en) Synchronization throttling based on user activity
CN108173774B (zh) 一种客户端的升级方法及系统
EP3087722B1 (en) Peer-to-peer network prioritizing propagation of objects through the network
US9830091B2 (en) Policy-based data tiering using a cloud architecture
US10148574B2 (en) Load balancing for mesh computing
EP3779692B1 (en) Blockchain data processing
KR20100122197A (ko) 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
KR101120572B1 (ko) 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 다운로드 방법
US7739364B2 (en) Method and apparatus for dynamically reconfiguring a server system
Amoretti et al. Service migration within the cloud: Code mobility in SP2A
KR101089509B1 (ko) 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
Tyson et al. Juno: An adaptive delivery-centric middleware
KR100969989B1 (ko) 네트워크에서 응용프로그램 배포 방법 및 장치
Wei et al. Towards efficient data distribution on computational desktop grids with BitTorrent
KR20110109610A (ko) 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
US20220312060A1 (en) System and method of facilitating peer to peer distribution network using set top boxes
CN107231423B (zh) 一种文件分发方法及系统

Legal Events

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

Payment date: 20140106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140702

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160727

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170707

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180629

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190703

Year of fee payment: 10