KR20070036378A - 분산 소프트웨어 스트리밍 서비스 방법 및 시스템 - Google Patents

분산 소프트웨어 스트리밍 서비스 방법 및 시스템 Download PDF

Info

Publication number
KR20070036378A
KR20070036378A KR1020050091326A KR20050091326A KR20070036378A KR 20070036378 A KR20070036378 A KR 20070036378A KR 1020050091326 A KR1020050091326 A KR 1020050091326A KR 20050091326 A KR20050091326 A KR 20050091326A KR 20070036378 A KR20070036378 A KR 20070036378A
Authority
KR
South Korea
Prior art keywords
data
server
streaming
software
client
Prior art date
Application number
KR1020050091326A
Other languages
English (en)
Other versions
KR100734628B1 (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 KR1020050091326A priority Critical patent/KR100734628B1/ko
Publication of KR20070036378A publication Critical patent/KR20070036378A/ko
Application granted granted Critical
Publication of KR100734628B1 publication Critical patent/KR100734628B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 소프트웨어를 사용하기 위해 반드시 필요한 초기 실행 데이터와 그 외의 나머지 데이터를 분산 관리함으로써, 유지/배포 비용을 줄이면서 서비스 지연을 감소시킬 수 있는 분산형 소프트웨어 스트리밍 서비스 방법 및 시스템에 관한것으로서, 스트리밍 서비스할 소프트웨어를 초기 실행에 필요한 실행 코드 및 데이터로 이루어진 제1 데이터부와, 그외 나머지 데이터들로 이루어지는 제2 데이터부로 분리하고, 이중에서 스트리밍을 수행하는 스트리밍 서버에 상기 제1 데이터부를 저장하고, 컨텐츠를 관리하는 컨텐츠 저장 서버에 제2 데이터부를 저장하여, 클라이언트로부터 서비스 요청시, 스트리밍 서버의 로컬에 저장된 제1데이터부를 바로 클라이언트로 전송하면서, 나머지 제2 데이터부를 컨텐츠 저장 서버로부터 전달받아 연속된 스트리밍 서비스를 수행하는 것이다.
소프트웨어 스트리밍, 소프트웨어 분산, 스트리밍 서버, 컨텐츠 저장 서버, 초기 실행

Description

분산 소프트웨어 스트리밍 서비스 방법 및 시스템{Distributed Software Streaming Service Method and System}
도 1은 일반적인 소프트웨어 스트리밍 서비스 구성도이다.
도 2는 본 발명에 따른 분산 소프트웨어 스트리밍 서비스 방법을 나타낸 플로우챠트이다.
도 3은 본 발명에 따른 분산 소프트웨어 스트리밍 서비스 시스템을 나타낸 구성도이다.
도 4 ~ 도 6은 본 발명에 따른 소프트웨어 스트리밍 서비스 시스템의 소프트웨어의 배포 과정을 보인 도면이다.
도 7은 본 발명에 따른 소프트웨어 스트리밍 서비스 시스템에 있어서, 스트리밍 서버의 동작을 나타낸 플로우챠트이다.
*도면의 주요 부분에 대한 부호의 설명*
201a~201d: 클라이언트
301a~301c: 스트리밍 서버
401a,401b: 중간 서버
501: 컨텐츠 저장 서버
본 발명은 소프트웨어를 사용하기 위해 반드시 필요한 초기 실행 데이터와 그 외의 나머지 데이터를 분산 관리함으로써, 유지/배포 비용을 줄이면서 서비스 지연을 감소시킬 수 있는 분산형 소프트웨어 스트리밍 서비스 방법 및 시스템에 관한 것이다.
스트리밍(streaming)이란 인터넷상에서 음성이나 영상, 애니메이션 등을 실시간으로 재생할 수 있는 기법으로서, 큰 용량의 데이터를 일정한 크기의 조각으로 나누어 사용자의 컴퓨터로 전송하며, 사용자 컴퓨터에서는 전체 파일의 일정량만 전송되면 해당 파일을 재생하고, 상기 수신된 파일을 재생하는 동안 나머지 부분을 전송받는 방식으로 이루어진다.
기존의 다운로드 방식을 이용하여 용량이 큰 음성이나 영상 등의 멀티미디어 파일을 전송 후 재생하는 경우, 정보가 모두 수신될 때까지 너무 많은 시간이 소요되는데 반해, 상술한 스트리밍 방식의 경우, 파일 전송과 재생을 함께 수행할 수 있기 때문에 사용자가 기다리는 시간을 줄일 수 있다.
도 1은 일반적인 소프트웨어 스트리밍 서비스 시스템을 나타낸 것이다. 이를 참조하면, 기존의 소프트웨어 스트리밍 시스템은, 스트리밍 서버의 저장 장치(111) 내에 스트리밍 서비스할 응용 소프트웨어를 저장하여 두고, 클라이언트(100)가 소정의 소프트웨어에 대한 스트리밍 서비스를 스트리밍 서버(110)에 요청하면, 상기 스트리밍 서버(110)가 저장 장치(111)내에서 해당 소프트웨어의 실행코드(130)를 찾아 네트워크(120)를 통해 클라이언트(100)에게 전송한다. 이때, 클라이언트(100)는 하나 이상의 모듈 또는 기능에 대한 실행코드(130)를 요청하고, 스트리밍 서버(110)는 실행 코드를 블록 단위로 클라이언트에게 전송한다.
그런데, 이러한 소프트웨어 스트리밍 서비스 시, 전반부에서는 클라이언트(100)로 요청된 소프트웨어를 로딩하기 위해 필요한 초기 실행 코드 및 데이터를 전송한 후, 클라이언트(100)에 소프트웨어가 로딩된 이후인 후반부에는, 소프트웨어를 사용하는 사용자의 선택에 따라서 필요한 실행 코드 및 데이터만을 전달한다.
이때, 소프트웨어 스트리밍 서비스의 전반부에서는 응용 프로그램을 띄우는데 필요한 많은 데이터가 전송되어야 하며, 후반부에서는 사용자의 요구시에만 이루어지는 것으로서 불규칙적으로 데이터 전달이 이루어지게 되며, 전반부에 비하여 상대적으로 아주 적은 데이터가 된다.
그런데, 종래의 소프트웨어 스트리밍 서비스는, 도 1에 도시된 바와 같이, 서비스될 소프트웨어의 모든 실행 코드 및 데이터를 한 곳에 저장하여 관리하면서, 클라이언트(100)의 요청에 따라서 필요한 실행 코드 및 데이터를 스트리밍 서비스 하고 있다. 이때, 소프트웨어가 저장되는 곳은 스트리밍 서비스를 수행하는 스트리밍 서버(110) 내의 데이터베이스 혹은 별도로 컨텐츠를 관리하는 컨텐츠 저장 서버(도시생략)가 될 수도 있다.
이러한 서비스 방식의 경우, 소프트웨어가 증가할 경우 많은 비용이 소요되며, 서버의 부하가 심해져 서비스 품질 저하의 원인이 될 수 있다. 또한, 별도의 컨텐츠 저장 서버를 이용할 경우에는, 스트리밍 서버가 컨텐츠 저장 서버로부터 데이터를 전송받아야 하기 때문에, 서비스 지연의 원인이 될 수 있다.
본 발명은 상술한 종래의 문제점을 해결하기 위하여 제안된 것으로서, 그 목적은 소프트웨어를 사용하기 위해 반드시 필요한 초기 실행 데이터와 그 외의 나머지 데이터를 분리하여 관리함으로써, 유지/배포 비용을 줄이면서 서비스 지연을 감소시킬 수 있는 분산형 소프트웨어 스트리밍 서비스 방법 및 시스템을 제공하는 것이다.
상술한 목적을 달성하기 위한 구성수단으로서, 본 발명은 스트리밍 서비스할 소프트웨어를 초기 실행에 필요한 실행 코드 및 데이터로 이루어진 제1 데이터부와, 그외 나머지 데이터들로 이루어지는 제2 데이터부로 분리하는 단계; 스트리밍을 수행하는 스트리밍 서버에 상기 제1 데이터부를 저장하고, 컨텐츠를 관리하는 컨텐츠 저장 서버에 제2 데이터부를 저장하는 단계; 스트리밍 서버가 클라이언트로부터 소정 소프트웨어에 대한 서비스 요청을 수신하는 단계; 및 서비스 요청 수신 시 상기 스트리밍 서버가 자신이 보유하고 있는 해당 소프트웨어의 제1 데이타부를 클라이언트로 전송하면서, 상기 컨텐츠 저장 서버로부터 나머지 제2 데이타부를 전달받아 해당 소프트웨어의 스트리밍을 수행하는 단계를 포함하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 방법을 제공한다.
더하여, 본 발명은 상술한 목적을 달성하기 위한 구성수단으로서, 스트리밍 서비스될 소프트웨어의 초기실행용 실행 코드 및 데이터로 이루어진 제1 데이터부를 보유하고, 클라이언트의 소프트웨어 스트리밍 서비스 요청에 따라서, 해당 소프트웨어의 제1 데이터부를 클라이언트로 스트리밍 서비스하면서, 동시에 컨텐츠 저장 서버에 나머지 제2데이터부를 요청하여 전달받아, 해당 소프트웨어의 스트리밍 서비스를 계속 수행하는 하나 이상의 스트리밍 서버; 및 스트리밍 서비스될 소프트웨어의 초기실행용 실행 코드 및 데이터를 제외한 나머지 실행 코드와 데이터로 이루어진 제2 데이터부를 저장/관리하는 컨텐츠 저장 서버를 포함하는 분산 소프트웨어 스트리밍 서비스 시스템을 제공한다.
이하, 첨부한 도면을 참조하여 본 발명에 의한 분산 소프트웨어 스트리밍 서비스 방법 및 시스템에 대해서 상세히 설명한다.
도 2는 본 발명에 의한 분산 소프트웨어 스트리밍 서비스 방법을 나타낸 플로우챠트이다.
본 발명은 스트리밍 서비스할 소프트웨어를 초기 실행에 필요한 실행 코드 및 데이터들과, 나머지 데이터들을 구분하여, 하나의 소프트웨어를 분산 관리함으로써, 서비스 지연 및 부하 집중을 방지하는데 특징이 있다.
이에, 본 발명은 초기 단계(S210)에서, 스트리밍 서비스할 소프트웨어를 초기 실행에 필요한 실행 코드 및 데이터로 이루어진 제1 데이터부와, 그외 나머지 데이터들인 제2 데이터부로 분리한다.
그리고, 다음 단계(S220)에서, 클라이언트에 직접 스트리밍을 수행하는 스트리밍 서버에는 제1 데이터부만을 저장하고, 나머지는 컨텐츠를 관리하는 컨텐츠 저장 서버에 저장시킨다. 이때, 상기 컨텐츠 저장 서버는 서비스할 소프트웨어의 모든 데이터, 즉, 제1데이터부 및 제2 데이터부를 모두 저장 관리하여, 상기 스트리밍 서버의 요구에 따라서 필요한 데이터를 제공하도록 한다.
상기와 같이 소프트웨어를 분산 저장한 상태에서, 스트리밍 서버가 클라이언트로부터 소정 소프트웨어에 대한 서비스 요청을 수신하면(S230), 단계(S240)에서 상기 스트리밍 서버가 자신이 보유하고 있는 해당 소프트웨어의 제1 데이터부를 클라이언트로 전송하면서, 동시에 상기 컨텐츠 저장 서버에 접속하여 자신이 보유하고 있지 않은 나머지 제2 데이타부를 전달받는다. 이에 의하여, 상기 스트리밍 서버는, 상기 제1 데이터부에 대한 전송이 이루어지는 동안 컨텐츠 저장 서버로부터 나머지 제2데이터부를 전달받아 보유할 수 있게 된다.
따라서, 상기 스트리밍 서버는 단계(250)에서, 제1 데이터에 대한 전송이 완료된 후에, 클라이언트의 요청에 따라서 제2 데이터부 중에서 선택된 데이터 및 실 행 코드를 클라이언트에 전송한다.
이상의 처리에 의하면, 상기 스트리밍 서버는, 평상시에는 소프트웨어의 제1 데이터부만을 보유하고 있으므로, 소프트웨어의 증가에 의한 유지 비용의 증가 정도를 감소시킬 수 있으며, 클라이언트로부터의 서비스 요청시, 서비스 지연 없이 바로 초기 실행에 필요한 제1 데이터부의 전송을 수행할 수 있으며, 더하여, 나머지 제2 데이타부에 대해서는 제1 데이터부가 전달되는 동안에 컨텐츠 저장 서버로부터 제공받아 보유할 수 있게 되므로, 초기 실행 이후의 필요 데이터 전송도 지연없이 수행할 수 있게 된다.
도 3은 본 발명에 의한 분산 소프트웨어 스트리밍 서비스 시스템의 바람직한 실시 예를 보인 구조도이다. 도 2를 참조하면, 본 발명에 의한 분산 소프트웨어 스트리밍 서비스 시스템은, 클라이언트(201a~201d)에게 실질적인 소프트웨어 스트리밍 서비스를 제공하는 스트리밍 서버(301a~301c)와, 상기 스트리밍 서버(301a~301c)와 컨텐츠 저장 서버(501)를 중계하는 중간 서버(401a,401b)와, 소프트웨어 모든 데이터를 저장/관리하는 컨텐츠 저장 서버(501)로 이루어지며, 클라이언트(201)는 본 발명에 의한 분산 소프트웨어 스트리밍 서비스 시스템에 스트리밍 서비스를 요청하여 해당 소프트웨어의 실행 코드 및 데이터를 전송받는 사용자측 장치로서, 노트북 PC, 데스크탑 PC, 스마트폰, PDA등 다양한 단말기가 될 수 있다.
본 발명에 의한 소프트웨어 스트리밍 서비스 시스템에 있어서, 상기 스트리밍 서버(301)와, 중간 서버(401)와, 컨텐츠 저장 서버(501)는 부하 분산을 위해 각 각 복수 개로 구비될 수 있다.
특히, 상기 서버들은 컨텐츠 저장 서버(501)를 기준으로 중간서버(401a,401b)와, 스트리밍 서버(301a~301c)가 트리 형태로 연결된다.
예를 들면, 하나의 컨텐츠 저장 서버(501)에 자식 노드로서 두 개의 중간 서버(401a,401b)가 동시에 연결되어, 상기 중간 서버(401a,401b)는 각각 자식 노드로서, 하나 혹은 하나 이상의 스트리밍 서버(301a~301c)를 갖는다. 도 2의 실시 예에서는, 상기 중간 서버(401a)에 두 개의 스트리밍 서버(301a,301b)가 연결되고, 다른 중간 서버(401b)에 다른 하나의 스트리밍 서버(301c)가 연결된다.
본 발명에 의한 분산 소프트웨어 스트리밍 서비스에서 최하위 노드에 해당하는 복수의 스트리밍 서버(301c)는 각각 복수의 클라이언트(201a~20d)에 대한 스트리밍 서비스를 담당한다. 이때, 상기 복수의 스트리밍 서버(301c) 간의 클라이언트 할당은, 일반적인 부하 분산 방법을 적용하여 부하가 적은 순서대로 클라이언트를 할당할 수도 있고, 각각 소정 기준으로 클라이언트(201a~201d)를 고정 할당시킬 수도 있다.
또한, 상기 스트리밍 서버(301a~301c)와, 중간 서버(401a,401b)와, 컨텐츠 저장 서버(501)는 물리적으로 인접하여 구성될 수도 있으며, 떨어져 구성될 수도 있다.
이때, 상기 컨텐츠 저장 서버(501)는 서비스될 소프트웨어의 모든 데이터(502), 즉 초기 실행을 위한 실행 코드 및 데이터와, 나머지 데이터를 모두 구비하고 있으며, 스트리밍 서버(301a~301c)는 각 소프트웨어에 대해서 초기 실행을 위해 반드시 필요한 초기 실행 코드 및 데이터(302)가 저장되어 있다. 또한, 중간 서버(401a,401b)는 상기 컨텐츠 저장 서버(501)에서 스트리밍 서버(301a~301c)로 소정 소프트웨어의 데이터를 전송하는 경우, 해당 데이터를 임시로 저장하는 역할을 담당하며, 스트리밍 서버(301)에도 수신된 데이터의 임시 저장 기능이 포함된다.
즉, 상기 중간 서버(401a,401b) 및 스트리밍 서버(301a~301c)는 상위 노드로부터 전달받은 소프트웨어의 실행코드 및 데이터를 임시 저장 영역의 사이즈 내에서 LRU(Latest Recently Used) 방식으로 저장할 수 있다.
도 4 ~ 도 6는 상기 분산 소프트웨어 스트리밍 서비스 시스템에서 이루어지는 소프트웨어의 스트리밍 서비스 흐름을 나타낸 것이고, 도 7은 상기 분산 소프트웨어 스트리밍 서비스 시스템에 있어서, 스트리밍 서버(301a~301c)에서의 동작 플로우챠트를 보인 것이다.
이하, 도 4~ 도 6을 참조하여 본 발명의 분산 소프트웨어 스트리밍 서비스 시스템의 동작을 설명한다.
스트리밍 서버(301a)가 클라이언트 A(201a)로부터 소정 소프트웨어(502)에 대한 스트리밍 서비스를 요청하는 경우, 기본적으로 상기 스트리밍 서버(301a)는 로컬에 저장하고 있는 해당 소프트웨어의 초기 실행 데이터(302)를 클라이언트 A(201a)에게 전송한다.
동시에 상기 스트리밍 서버(301a)는 해당 소프트웨어(502)의 제2데이터부 (503)가 로컬에 존재하는지 확인하여, 존재하지 않으면 상위 중간 서버(401a)를 통해 컨텐츠 저장 서버(501)로 제2 데이터부(503)을 요청하여 수신한다.
여기서 상기 스트리밍 서버(301a)는 소프트웨어의 제2 데이터부에 대해서 LRU 방식 등을 이용하여 일시적으로 보관하므로, 처음 동작하는 경우이거나 일정 주기 내에서 상기 소프트웨어(502)에 대한 스트리밍 서비스가 없었던 경우, 제2 데이터부를 보유하고 있지 않게 된다.
그리고 상기 중간 서버(401a)는 다수 스트리밍 서버(301a,301b)와 컨텐츠 저장 서버(501)를 중계하여, 요청된 데이터를 상기 컨텐츠 저장 서버(501)로부터 전달받아 임시 저장한 후, 스트리밍 서버(301a,301b)로 전달하는 것으로서, 스트리밍 서버(301a)로부터 소프트웨어의 데이터 전달 요청을 받으면, 해당 데이터가 로컬내에 있는지를 확인한 후, 있으면 자신이 보유한 데이터를 전달하고. 없는 경우에는 컨텐츠 저장 서버(501)에 요청한 후 수신하여 전달한다. 상기 중간 서버(401a)에서의 데이터 관리는 앞서와 마찬가지로, LRU 방식 등에 의해 가장 최근에 사용된 데이터를 보유하는 방식으로 관리한다.
따라서, 상기 도 4에 도시한 예에서는, 상기 스트리밍 서버(301a)에는 소프트웨어(502)의 제2 데이터부(503)가 존재하지 않고, 중간 서버(401) 내에도 제2 데이터부(503)가 존재하는 않는 경우이므로, 컨텐츠 저장 서버(501)의 제2 데이터부(503)가 중간 서버(401a)을 거쳐 스트리밍 서버(301a)로 전달하고, 이에 상기 스트리밍 서버(301a)는 클라이언트 A(201)에게 제1 데이터부(302)를 전송하는 동안, 나 머지 제2 데이터부(503)를 전달받아 보유하게 된다. 마찬가지로, 중간 서버(401a)에도 제2 데이터부(503)가 일시적으로 존재하게 된다.
클라이언트 A(201a)는 스트리밍 서버(301a)로부터 전송받은 초기 실행 데이터(302)를 이용하여 소프트웨어를 실행시킨 후, 사용자가 소프트웨어를 사용할 때 필요한 추가적인 데이터를 스트리밍 서버(301a)에 요청하게 된다. 따라서, 상기 상태에서 스트리밍 서버(301a)가 초기 실행이 완료된 클라이언트 A(201)로부터 사용자의 선택에 의한 데이터 요청을 수신하는 경우, 도 5에 도시된 바와 같이, 상기 스트리밍 서버(301a)는 로컬내에 제2 데이터부(503)가 임시 저장되어 있으므로, 상기 저장된 제2 데이터부(503)에서 요청된 데이터를 찾아 클라이언트A(201a)로 전송한다. 따라서, 이 경우, 클라이언트 A(201a)는 오랜 지연 없이 해당 소프트웨어를 실행할 수 있다.
이때, 클라이언트 A(201a)에서 소프트웨어의 실행에 대한 지연을 줄이기 위해서는, 상기 컨텐츠 저장 서버(501)에서 스트리밍 서버(301a)로 데이터를 전송할 때, 통계에 의해 또는 소프트웨어의 동작 순서에 따라서 사용자가 먼저 사용하는 모듈 또는 기능에 대한 데이터 순으로 전송하도록 할 수 있다. 이 경우, 클라이언트의 서비스 지연을 더 감소시킬 수 있다.
도 6은 상기 도 4 및 도 5와 같이 스트리밍 서버(301a)로부터 스트리밍 서비스가 수행되는 중에 또는 수행된 후 일정 시간 내에, 동일한 중간 서버(401a)에 연 결되어 있는 다른 스트리밍 서버(301b)가 클라이언트 C(201c)로부터 소프트웨어 스트리밍 서비스를 요청한 경우의 소프트웨어의 전송 동작에 보인 것이다.
이 경우, 클라이언트 C(201c)가 스트리밍 서버(301b)에게 소프트웨어(502)에 대한 스트리밍 서비스를 요청하면, 상기 스트리밍 서버(301b)는 앞서와 동일하게, 로컬내에 보유하고 있는 해당 소프트웨어(502)의 초기 실행을 위한 제1 데이터부(302)를 를 클라이언트 C(201c)에게 전송함과 동시에, 해당 소프트웨어(502)의 초기 실행 데이터를 제외한 나머지 데이터인 제2 데이터부(503)가 로컬에 있는지 확인하고, 없으면 상위 서버인 중간 서버(401a)에게 해당 데이터를 요청한다.
이에, 상기 중간 서버(401a)는 상기 요청된 제2 데이터부(503)가 로컬 내에 있는 지를 확인한다. 여기서, 상기 중간 서버(401a)는 앞서 스트리밍 서버(301a)로 해당 소프트웨어(502)의 제2 데이터부(503)를 전달하였기 때문에, 상기 제2 데이터부(503)가 로컬내에 존재한다.
따라서, 상기 중간 서버(401a)는 컨텐츠 저장 서버(501)에 요청하지 않고 로컬에 저장된 제2 데이터부(503)을 바로 스트리밍 서버(301c)로 전송한다. 이에, 스트리밍 서버(301c)는 상기 스트리밍 서버(301a)보다는 더 빠르게 초기 실행 데이터를 제외한 나머지 제2 데이터부(503)를 전송받을 수 있다.
이어, 초기실행 데이터를 전달받아 실행한 클라이언트c(201c)로부터 소프트웨어의 실행 중에, 소정의 데이타에 대한 요청이 수신되면, 스트리밍 서버(301b)는 앞서 도 5에 보인 바와 마찬가지로, 초기 실행 데이터의 전송중에 전달받아 저장한 제2 데이터부(503)에서 해당 데이터를 찾아 클라이언트 C(201c)로 전달한다.
도 7을 참조하면, 본 발명에 의한 소프트웨어 스트리밍 서비스 시스템의 스트리밍 서버의 동작을 정리하여 보면, 상기 스트리밍 서버(301a~301c)는 사용자의 요청에 의해 클라이언트(201a~201d)로부터 서비스 요청이 들어오면(S601), 먼저 자신이 보유하고 있는 해당 소프트웨어의 초기 실행용 제1 데이터부(302)를 클라이언트(201a~201d)로 스트리밍 기술을 통해 전송한다(S602).
그리고, 동시에 스트리밍 서버(301a~301c)의 로컬에 해당 소프트웨어의 초기 실행 데이터를 제외한 나머지 제2 데이터부(502)가 존재하는 지를 확인한다(S603).
상기 확인 결과, 로컬에 제2 데이터부(502)가 존재할 경우에는 별도의 조치없이 클라이언트(201a~201d)의 요청에 따라서 스트리밍 서비스를 계속 제공하며(S604), 반대로 로컬에 제2 데이터부(502)가 존재하지 않는 경우에는, 상위 서버, 즉, 중간 서버(401)로 해당 소프트웨어의 초기 실행 데이터를 제외한 나머지 제2 데이터부(502)에 대한 전송을 요청하여 전송 받는다(S610).
상기 요청에 의해 제2 데이터부(502)가 전송되어 스트리밍 서버(301a~301c)의 로컬내에 저장되며, 앞서와 마찬가지로 클라이언트(201a~201d)의 요청에 따라 스트리밍 서비스를 계속 진행한다(S604).
이때, 상기 중간 서버(401a,401b)의 동작도, 스트리밍 서버(301a~301c)와 유사하게 정리된다. 즉, 스트리밍 서버(301a~301c)로부터 소정의 데이타 요청이 수신되면, 로컬 내에 해당 데이터가 존재하는 지를 확인한 후, 존재하면, 바로 스트리 밍 서버(301a~301c)로 전달하고, 존재하지 않은 경우에는, 컨텐츠 저장 서버(501)에 해당 데이터를 요청하여, 컨텐츠 저장 서버(501)로부터 데이터가 전달되면, 해당 데이터를 저장한 후에 스트리밍 서버(301a~301c)로 전달하게 된다. 이러한 중간 서버(401a,401b)에서의 동작에 대한 플로우 챠트는 별도로 도시하지 않는다.
본 발명에 의하면, 소프트웨어를 분산함에 의하여 적은 비용으로 스트리밍 시스템을 구축하면서, 물리적으로 분산되어 있는 서버들 간에 효율적으로 소프트웨어를 관리함으로써, 소프트웨어 스트리밍의 실행 지연을 방지하여 사용자에게 보다 나은 품질의 서비스를 제공할 수 있다.

Claims (13)

  1. 스트리밍 서비스할 소프트웨어를 초기 실행에 필요한 실행 코드 및 데이터로 이루어진 제1 데이터부와, 그외 나머지 데이터들로 이루어지는 제2 데이터부로 분리하는 단계;
    스트리밍을 수행하는 스트리밍 서버에 상기 제1 데이터부를 저장하고, 컨텐츠를 관리하는 컨텐츠 저장 서버에 제2 데이터부를 저장하는 단계;
    스트리밍 서버가 클라이언트로부터 소정 소프트웨어에 대한 서비스 요청을 수신하는 단계; 및
    서비스 요청 수신 시 상기 스트리밍 서버가 자신이 보유하고 있는 해당 소프트웨어의 제1 데이타부를 클라이언트로 전송하면서, 상기 컨텐츠 저장 서버로부터 나머지 제2 데이타부를 전달받아 해당 소프트웨어의 스트리밍을 수행하는 단계를 포함하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 방법.
  2. 제1항에 있어서,
    상기 스트리밍 서버가 컨텐츠 저장 서버로부터 전달받은 제2 데이터부를 로컬에 한시적으로 저장하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 방법.
  3. 제2항에 있어서,
    상기 스트리밍 서버는 제2 데이터부를 LRU(Latest Recently Used) 방식에 의해 가장 최근에 서비스된 제2 데이터부 순으로 보유하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 방법.
  4. 제2항에 있어서, 상기 해당 소프트웨어의 스트리밍을 수행하는 단계는
    상기 스트리밍 서버가 해당 소프트웨어의 제1 데이터부를 클라이언트로 전달하는 단계;
    상기 스트리밍 서버가 제1 데이터부를 클라이언트로 전달함과 동시에, 로컬에 해당 소프트웨어의 제2 데이터부가 존재하는 지를 판단하는 단계; 및
    상기 판단 결과 제2 데이터부가 존재하지 않으면, 상위의 서버로 해당 소프트웨어의 제2 데이터부를 요청하여 전달받는 단계로 이루어지는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 방법.
  5. 제3항에 있어서,
    상기 스트리밍 서버가 클라이언트로 초기실행에 필요한 제1 데이터부의 전송을 완료하고, 상기 제1데이터부를 이용하여 소프트웨어를 실행한 클라이언트로부터 선택적인 데이터 요청을 대기하는 단계; 및
    상기 대기 상태에서 클라이언트로부터 선택적인 데이터 요청이 수신되면, 상기 상위의 서버로부터 전달받아 로컬에 저장된 제2 데이터부에서 해당 데이터를 찾아 클라이언트로 전송하는 단계를 더 포함하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 방법.
  6. 스트리밍 서비스될 소프트웨어의 초기실행용 실행 코드 및 데이터로 이루어진 제1 데이터부를 보유하고, 클라이언트의 소프트웨어 스트리밍 서비스 요청에 따라서, 해당 소프트웨어의 제1 데이터부를 클라이언트로 스트리밍 서비스하면서, 동시에 컨텐츠 저장 서버에 나머지 제2데이터부를 요청하여 전달받아, 해당 소프트웨어의 스트리밍 서비스를 계속 수행하는 하나 이상의 스트리밍 서버; 및
    스트리밍 서비스될 소프트웨어의 초기실행용 실행 코드 및 데이터를 제외한나머지 실행 코드와 데이터로 이루어진 제2 데이터부를 저장/관리하는 컨텐츠 저장 서버를 포함하는 분산 소프트웨어 스트리밍 서비스 시스템.
  7. 제6항에 있어서,
    상기 컨텐츠 저장 서버는 제1.2 데이터부로 구분된 소프트웨어의 모든 데이터를 저장 관리하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 시스템.
  8. 제6항에 있어서,
    상기 하나 이상의 스트리밍 서버와 컨텐츠 저장 서버의 사이에 구비되어, 스트리밍 서버의 요청을 컨텐츠 저장 서버로 전달하고, 컨텐츠 저장 서버로부터 전달되는 데이터를 해당 스트리밍 서버로 전달하는 하나 이상의 중간 서버를 더 포함하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 시스템.
  9. 제8항에 있어서,
    상기 컨텐츠 저장 서버와, 중간 서버와, 스트리밍 서버가, 컨텐츠 저장 서버를 기점으로 하는 트리 구조로 이루어지는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 시스템.
  10. 제6항 또는 제8항에 있어서,
    상기 스트리밍 서버와, 중간 서버는 각각 상위의 서버로부터 전달받은 소프트웨어의 제2 데이터부를 한시적으로 로컬에 저장하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 시스템.
  11. 제10항에 있어서,
    상기 스트리밍 서버와 중간 서버는 각각 상위의 서버로부터 전달받은 데이터를 LRU(Latest Recently Used) 방식으로 관리하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 시스템.
  12. 제10항에 있어서,
    상기 스트리밍 서버는 클라이언트로부터 서비스 요청이 수신되면, 해당 소프트웨어의 제1 데이터부를 스트리밍 서비스하면서, 로컬에 제2 데이타부가 존재하는 지를 판단하여, 존재하지 않을 경우 상위의 서버로 데이터를 요청하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 시스템.
  13. 제10항에 있어서,
    상기 중간 서버는 하위의 스트리밍 서버로부터 소정 소프트웨어의 데이터 요청을 수신하면, 로컬에 해당 소프트웨어의 제2 데이터부가 존재하는 지를 판단하여, 존재하면 로컬의 제2 데이터부를 스트리밍 서버로 전달하고, 존재하지 않으면 상위의 컨텐츠 서버로 해당 제2 데이터부를 요청하여, 상기 컨텐츠 서버로부터 전달된 제2 데이터부를 스트리밍 서버로 전달하는 것을 특징으로 하는 분산 소프트웨어 스트리밍 서비스 시스템.
KR1020050091326A 2005-09-29 2005-09-29 분산 소프트웨어 스트리밍 서비스 방법 및 시스템 KR100734628B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050091326A KR100734628B1 (ko) 2005-09-29 2005-09-29 분산 소프트웨어 스트리밍 서비스 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050091326A KR100734628B1 (ko) 2005-09-29 2005-09-29 분산 소프트웨어 스트리밍 서비스 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20070036378A true KR20070036378A (ko) 2007-04-03
KR100734628B1 KR100734628B1 (ko) 2007-07-03

Family

ID=38158569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050091326A KR100734628B1 (ko) 2005-09-29 2005-09-29 분산 소프트웨어 스트리밍 서비스 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR100734628B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014046739A1 (en) * 2012-09-18 2014-03-27 Concurix Corporation Offline optimization of computer software
KR101442000B1 (ko) * 2009-07-30 2014-09-24 에스케이플래닛 주식회사 분리 실행 기반의 컨텐츠 등록 서버, 그 방법 및 그 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100257519B1 (ko) * 1997-07-08 2000-06-01 윤종용 메모리 시스템의 페이지 및 라인 교체 방법
JP2001216278A (ja) 1999-11-26 2001-08-10 Matsushita Electric Ind Co Ltd 情報加工装置、情報加工方法、およびそのコンピュータ・プログラム・プロダクト
US7613767B2 (en) * 2003-07-11 2009-11-03 Microsoft Corporation Resolving a distributed topology to stream data
KR100632403B1 (ko) * 2004-12-02 2006-10-11 한국전자통신연구원 코드 모듈 간의 상관 관계 정보에 따른 소프트웨어스트리밍 방법 및 그에 따른 코드 모듈 간의 상관 관계정보를 이용한 캐싱 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442000B1 (ko) * 2009-07-30 2014-09-24 에스케이플래닛 주식회사 분리 실행 기반의 컨텐츠 등록 서버, 그 방법 및 그 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체
WO2014046739A1 (en) * 2012-09-18 2014-03-27 Concurix Corporation Offline optimization of computer software

Also Published As

Publication number Publication date
KR100734628B1 (ko) 2007-07-03

Similar Documents

Publication Publication Date Title
US10491523B2 (en) Load distribution in data networks
KR100427143B1 (ko) 스트리밍 데이터 전송 및 다운로드 방법
JP3382953B2 (ja) 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置
CN101326493B (zh) 用于多处理器服务器中的负载分配的方法和装置
CN102104600B (zh) 分布插件式游戏服务器平台及其协同工作方法
CN102708173B (zh) 处理用户访问网页的请求的方法及系统
US8549063B2 (en) System and method for providing service
CN1972311A (zh) 一种基于集群均衡负载的流媒体服务器系统
CN102571900A (zh) 一种实现远端实时操控的系统和方法
CN110336885A (zh) 边缘节点分配方法、装置、调度服务器及存储介质
CN108566561A (zh) 视频播放方法、装置及存储介质
CN106330997A (zh) 一种用于移动终端应用的内容分发的方法和系统
US20140025838A1 (en) System and method of streaming data over a distributed infrastructure
CN109618003B (zh) 一种服务器规划方法、服务器及存储介质
US20040015536A1 (en) Multicast system and method for deploying multiple images simultaneously
CN115794139B (zh) 镜像数据处理方法、装置、设备以及介质
JP4098723B2 (ja) サーバシステムの再構成(reconfiguring)方法及び装置
KR100823732B1 (ko) 스트리밍 서비스를 위한 컨텐츠 제공 시스템 및 그 방법
KR100734628B1 (ko) 분산 소프트웨어 스트리밍 서비스 방법 및 시스템
CN111064700B (zh) 云游戏的下载方法、装置及系统
JP5662956B2 (ja) クラスタシステム
KR100826870B1 (ko) 컨텐츠의 부적절한 삭제방지를 위한 컨텐츠 제공 시스템,컨텐츠 제공방법 및 그 컨텐츠 관리방법
KR100700717B1 (ko) 컨텐트 구분에 의한 전송시스템의 클러스터링 장치 및 방법
CN114866854A (zh) 视频接入方式动态分配方法、系统、电子设备和存储介质
CN109697126B (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
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee