KR100776802B1 - 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템 - Google Patents

소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템 Download PDF

Info

Publication number
KR100776802B1
KR100776802B1 KR1020060083001A KR20060083001A KR100776802B1 KR 100776802 B1 KR100776802 B1 KR 100776802B1 KR 1020060083001 A KR1020060083001 A KR 1020060083001A KR 20060083001 A KR20060083001 A KR 20060083001A KR 100776802 B1 KR100776802 B1 KR 100776802B1
Authority
KR
South Korea
Prior art keywords
request
software
client
string
sod
Prior art date
Application number
KR1020060083001A
Other languages
English (en)
Other versions
KR20070061279A (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 한국전자통신연구원
Publication of KR20070061279A publication Critical patent/KR20070061279A/ko
Application granted granted Critical
Publication of KR100776802B1 publication Critical patent/KR100776802B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템에 관한 것으로, SOD(Software On-Demand) 클라이언트측에서 응용 프로그램의 실행 중에 나타나는 소프트웨어 스트리밍 서비스의 기본 단위인 소프트웨어 모듈(페이지 혹은 파일)의 요청을 시간적을 배열하여, 일정 규칙에 따라서 연속적으로 발생하는 요청들을 묶어 요청열을 생성하여 저장한 후, 이후 응용 프로그램의 재시작시 응용 프로그램의 실행에 필요한 모듈이 포함된 요청열을 선택하여 SOD 서버에 전송하여, 사용자의 사용 패턴에 근거하여 필요할 것으로 예측되는 소프트웨어 모듈들을 한번에 프리페칭함으로써, 부적절한 소프트웨어 모듈의 프리페칭에 의한 시간 지연 및 낭비를 방지하는 것이다.
스트리밍 서비스, 프리페칭, SOD(Software On Demand)

Description

소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템{Prefetching providing method based on request sequence for software streaming service and software streaming system using the same}
도 1은 일반적인 VOD(Video on demand) 또는 AOD(Audio on demand) 서비스 방식을 설명하기 위한 블록도,
도 2는 종래의 SOD(Software on demand) 서비스 방식을 설명하는 블록도,
도 3은 본 발명에 따른 소프트웨어 스트리밍 시스템을 나타낸 구성도,
도 4는 본 발명에 있어서 요청열 구성 방법을 설명하기 위한 소프트웨어 모듈 요청의 시간적 나열을 나타낸 예시도이다.
도 5는 본 발명에 따른 소프트웨어 스트리밍 서비스를 위한 요청열 구성 방법에 대한 흐름도이다.
도 6은 본 발명에 따른 소프트웨어 스트리밍 서비스를 위한 요청열 기반 프리페칭 방법에 대한 흐름도이다.
도 7은 본 발명에 따른 소프트웨어 스트리밍 시스템에서의 서비스 흐름을 나타낸 신호 흐름도다.
도 8은 본 발명에 따른 소프트웨어 스트리밍 시스템에서의 다른 서비스 흐름 을 나타낸 신호 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명*
300 : SOD 클라이언트 302 : 응용프로그램
304 : 제1 저장부 306 : 제2 저장부
308 : 클라이언트 제어부 320 : SOD 서버
322 : 서버 제어부 324: 소프트웨어 저장부
본 발명은 온디맨드(On-demand) 방식의 소프트웨어 스트리밍 서비스에 관한 것으로, 특히 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템에 관한 것이다.
온디맨드 방식의 스트리밍 서비스는 사용자의 요구에 따라서 스트리밍 서버에 존재하는 데이터를 스트리밍 기술을 통하여 클라이언트에서 실행되도록 하는 서비스 기술이다.
이러한, 온디맨드 방식의 스트리밍 서비스는 서비스되는 데이터의 종류에 따라 크게 Video On-demand(이하, VOD라 함) 스트리밍 서비스와, Audio On-demand(이하, AOD라 함) 스트리밍 서비스와, Software On-demand(이하, SOD라 함) 스트리밍 서비스로 나누어질 수 있다.
상기 VOD 스트리밍 서비스/AOD 스트리밍 서비스는 스트리밍을 통하여 스트리밍 서버에 존재하는 비디오 데이터/오디오 데이터를 클라이언트(Client)에서 재생되도록 하는 서비스로서, 도 1에 도시된 바와 같이, 클라이언트(100)가 특정 비디오/오디오를 스트리밍 서버(110)에 요청하면, 스트리밍 서버(110)는 요청된 비디오/오디오 파일을 클라이언트(100)로 전송한다.
이때, 스트리밍 서버(110)는 클라이언트(100)로부터 한 번의 비디오/오디오의 전송요청에 따라 요청된 비디오/오디오 파일을 구성하는 일련의 데이터 순서(예를 들어, 시간 순서)대로 클라이언트(100)로 전송한다.
한편, 온디맨드 소프트웨어 스트리밍 서비스 기술은 스트리밍을 통하여 스트리밍 서버에 존재하는 응용 프로그램(Application program)이 클라이언트에서 실행되도록 하는 기술이다.
즉, 클라이언트는 응용 프로그램의 실행에 필요한 소프트웨어를 구성하는 단위(모듈 또는 파일)들 전부 또는 일부를 스트리밍 서버로부터 전송받아 직접 실행할 수 있다. 이하에서 설명의 편의를 위하여, 온디맨드 소프트웨어 스트리밍 서비스에 있어서, 소프트웨어 스트리밍을 위하여 서비스되는 기본 단위를 모듈이라 부르도록 한다. 상기 모듈은 소프트웨어의 페이지 혹은 파일이 될 수 있으며, 구현하는 시스템에 따라 달라진다.
도 2는 일반적인 온디맨드 소프트웨어 스트리밍 서비스 시스템을 나타낸 도면으로서, 클라이언트(200)는 응용 프로그램의 실행에 필요한 소프트웨어 모듈의 전송을 스트리밍 서버(210)에 요청한다.
이에 서버(210)는 소프트웨어 모듈을 요구되는 순서대로 클라이언트(200)에 전송한다.
즉, 클라이언트(200)는 응용 프로그램의 실행 요청시마다, 그에 필요한 소프트웨어 모듈을 스트리밍 서버(210)에 요청하고 이에 스트리밍 서버(210)로부터 전송된 해당 모듈을 실행하여 응용 프로그램을 실행하게 된다.
이 때, 스트리밍 서버(210)로부터 클라이언트(200)로 전송되는 소프트웨어 모듈의 전송 순서는, 실제 해당 소프트웨어에 구성된 파일 또는 페이지의 순서와는 다를 수 있다. 왜냐하면, 응응 프로그램의 실행을 위한 소프트웨어가 비디오나 오디오와 같이 시간적으로 연속적으로 전송되기보다 응용 프로그램 사용자가 해당 소프트웨어를 실행하는 과정에서 요구되는 기능을 수행하기 위한 코드가 저장된 단위로 전송되기 때문이다.
예를 들어, 클라이언트(200)는 응용 프로그램의 실행에 필요한 소프트웨어 모듈의 전송을 j번 요청하면, 스트리밍 서버(210)는 클라이언트(200)에서 요청한 j개의 소프트웨어의 모듈을 요청 순서대로 클라이언트(200)로 전송한다.
이러한 온디맨드 소프트웨어 스트리밍 서비스 방식의 일 예로는 (주)소프트온넷의 Z!Stream을 들 수 있다. 상기 Z!Stream은 페이지를 기본 전송 단위로 사용하여 서비스한다.
상술한 바와 같이, VOD 스트리밍 서비스/AOD 스트리밍 서비스는 비디오/오디오 데이터의 구성 순서와 전송 순서가 일치하기 때문에, 한 번의 서비스 요청에 의 해, 해당 비디오/오디오 데이터 전부를 순차적으로 전송받아, 최소의 지연 시간으로 재생할 수 있는데 반하여, 소프트웨어는 사용자별로 또는 실행 순서 별로 요구되는 모듈이 달라지기 때문에, 필요시마다 해당하는 소프트웨어 모듈을 각각 요청하여 전송받아야 하고, 그 결과 소프트웨어 스트리밍 서비스 중에 여러 번의 전송 요청이 발생하며, 전송 요청시마다 요청한 모듈이 전부 수신될 때까지 소프트웨어의 실행이 지연된다.
뿐만 아니라, 소프트웨어 스트리밍 서비스에서는 사용자와 상호작용 중이거나 데이터 파일이 입출력되는 동안, 스트리밍 서버로 소프트웨어의 다른 모듈의 전송을 요청할 수 없기 때문에, 소프트웨어 실행시, 모듈의 스트리밍으로 인해 사용자가 대기하는 시간이 많다는 불편함이 있었다.
이러한 불편함을 해결하기 위해서 소프트웨어 스트리밍 서비스를 위한 프리페칭(Prefetching) 기술이 고안되었다.
상기 프리페칭 기술은 응용 프로그램의 실행에 필요한 소프트웨어 패키지의 구성단위들 중 전부 또는 일부의 구성단위를 미리 스트리밍 서버로부터 전송받아 저장해 두는 기술이다.
이러한 프리페칭 기술에 있어서, 응용 프로그램의 실행에 필요한 소프트웨어를 구성하는 모듈 중에서 미리 전송받을 모듈을 결정하는 것은 중요한 문제이다.
이와 관련된 종래기술로서, 스트리밍 서버에서 사용자들의 요청 모듈(여기서는 페이지)을 통계적으로 분석하여, 확률이 높은 모듈을 먼저 전송하는 AppStream 방식과, 블록(block) 단위로 전송하는 Block Stream 방식이 있다.
그러나 상기의 방식들은 모두 사용 패턴을 고려하지 않고, 전체적인 사용 빈도에 바탕을 둔 프리페칭을 수행하기 때문에, 한 기능을 수행하기 위한 모듈 간의 연관성을 반영하지 못하며, 또한 서버 측에서 통계분석에 의해 정해진 방식을 일률적으로 적용하기 때문에, 사용자별 다양한 사용 패턴에 부합되지 않아, 불필요한 부분을 전송하거나 또는 우선 순위가 잘못된 프리페칭을 유도할 수 있다.
이로 인하여, 응용 프로그램의 사용자는 프리페칭 효과를 얻지 못하고, 도리어 불필요한 부분의 전송 때문에 대기 시간이 더 길어지는 등의 역효과가 나타나는 경우도 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 그 목적은 사용자별 소프트웨어의 사용 패턴 및 모듈간의 연관성을 고려하여 사용자에게 맞는 적합한 프리페칭이 이루어지도록 하는 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템을 제공하는 것이다.
상기한 목적을 달성하기 위한 구성 수단으로서, 본 발명은, 서버에 저장된 소프트웨어 모듈들을 클라이언트측에서 응용 프로그램의 실행에 따라서 전송받는 소프트웨어 스트리밍 서비스에 있어서, 상기 클라이언트가
응용 프로그램별로 사용 패턴에 따라 연속적으로 요청되는 소프트웨어 모듈들을 하나로 묶어 나타낸 요청열들을 생성하여 저장하는 제1단계;
응용 프로그램이 시작되면, 상기 응용 프로그램의 실행에 따라서, 상기 저장된 요청열중에서 해당 응용 프로그램의 실행에 필요한 요청열을 선택하여 서버에 전송하는 제2단계;
상기 전송된 요청열에 해당되는 소프트웨어 모듈들을 전송받아 저장하는 제3단계를 포함하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법을 제공한다.
더하여, 상기 방법에 있어서, 상기 요청열은, 응용 프로그램의 실행에 따라서 순차적으로 발생하는 소프트웨어 모듈의 요청을 시간적으로 나열할 때, 인접한 요청과의 요청 시간 차이가 요청열 분리 기준값보다 작은 연속된 요청들의 집합인 것을 특징으로 한다.
또한, 상기 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법에 있어서, 상기 제1단계는, 상기 응용 프로그램의 실행에 따라서 발생하는 소프트웨어 모듈의 요청을 대기하는 제1 과정과, 소프트웨어 모듈의 요청이 발생하면, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이와 미리 설정된 요청열 분리 기준값을 비교하는 제2 과정과, 상기 비교 결과, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이가 요청열 분리 기준값 이하이면, 요청열 저장 변수에 현재 요청된 소프트웨어 모듈을 추가하는 제3 과정과, 상기 비교 결과, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이가 요청열 분리 기준값보다 크면, 상기 요청열 저장 변수에 저장된 소프트웨어 모듈들로 요청열을 생성하여 저장한 후 요청열 저장 변수에는 현재 요청만을 저장시키는 제4 과정을 포함하고, 제1 과정에서 제4 과정은 상기 응용프로그램이 시작된 후부터 종료될 때까지 반복 수행되는 것을 특징으로 한다.
더하여, 본 발명에 의한 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법은, 제4 과정을 수행하기 전에, 상기 비교 결과, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이가 요청열 분리 기준값보다 크면, 현재 요청열 저장 변수에 누적된 요청의 수를 사전에 설정된 요청열 저장 기준값과 비교하여, 요청열 저장 변수에 누적된 요청의 수가 요청열 저장 기준값 보다 큰 경우에만 상기 제4 과정을 실행하도록 하는 과정을 더 포함하는 것을 특징으로 한다.
더하여, 본 발명에 의한 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법에 있어서, 상기 제1 단계는, 서버에서 응용 프로그램별로 연속된 요청열을 생성하여 둔 상태에서, 응용 프로그램이 처음 실행되는 경우, 클라이언트가 해당 응용 프로그램에 관련된 요청열을 전송받아 저장하는 단계인 것을 특징으로 한다.
또한, 본 발명에 의한 프리페칭 제공 방법에 있어서, 상기 제2단계는, 상기 검색된 요청열의 수가 둘 이상인 경우, 검색된 각 요청열의 사용 빈도를 확인하여, 최대 사용 빈도를 갖는 요청열을 선택하도록 하며, 더하여, 기준 사용 빈도를 설정하여, 상기 최대 사용 빈도가 기 설정된 기준 사용 빈도보다 높은 경우에, 해당 최대 사용빈도를 선택할 수 있다. 이것은 기준 사용 빈도 값을 이용하여 현재의 최대 사용 빈도를 갖는 요청열을 프리패칭할 것인지, 다음 모듈 요청을 더 고려하여 프리패칭할 요청열을 결정한 것인지를 선택하기 위한 것이다. 즉, 기준 사용 빈도를 이용하여 프리패칭할 요청열의 정확성에 대한 기준을 조정한다.
더하여, 본 발명은 상기 목적을 이루기 위한 다른 구성 수단으로서, 응용 프로그램에 실행에 필요한 소프트웨어 모듈을 서버로부터 전송받아 실행하는 소프트웨어 스트리밍 서비스 시스템의 SOD 클라이언트 장치에 있어서,
연속된 응용프로그램의 실행에 필요한 소프트웨어 모듈들의 집합인 하나 이상의 요청열을 저장하는 제1저장부;및
서버로부터 전송된 소프트웨어 모듈들을 저장하는 제2저장부; 및
응용프로그램의 실행에 따른, 소프트웨어 모듈 요청을 확인하여 요청된 모듈을 포함하는 요청열을 제1 저장부에서 검색하고, 검색된 요청열을 서버로 전송하여 해당되는 소프트웨어 모듈들을 프리페칭하는 클라이언트 제어부를 포함하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치를 제공한다.
또한, 본 발명은 상기 목적을 이루기 위한 다른 구성 수단으로서, 응용프로그램이 실행되는데 필요한 소프트웨어 모듈들을 저장하고, 하기의 클라이언의 요청에 따라 해당되는 소프트웨어 모듈을 클라이언트에 제공하는 SOD 서버; 및
응용 프로그램의 사용 패턴에 따라서 연속적으로 발생하는 소프트웨어 모듈 요청들로 만들어진 요청열을 저장하고, 응용 프로그램의 실행에 필요한 소프트웨어 모듈 요청이 발생되면, 해당 모듈을 포함하는 요청열을 선택하여 상기 서버로 요청 하는 SOD 클라이언트를 포함하는 소프트웨어 스트리밍 시스템을 제공한다.
이하, 본 발명의 바람직한 실시형태가 첨부된 도면들을 참조하여 본 발명을 보다 상세히 설명한다. 도면들 중 참조번호 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명이 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 3은 본 발명에 따른 소프트웨어 스트리밍 서비스 시스템에 대한 블록 구성을 나타낸 도면이다.
도 3에 도시된 바와 같이, 본 발명에 따른 소프트웨어 스트리밍 서비스 시스템은, 소프트웨어 온디맨드 스트리밍(Software On-demand, 이하 SOD라 한다) 클라이언트(300)와 SOD 서버(320)로 구성된다.
SOD 클라이언트(300)는 사용자의 응용 프로그램의 실행에 따른 소프트웨어 모듈의 요청을 요청 시간 순서대로 나열하고, 연속된 소프트웨어 모듈 요청들을 하나의 요청열로 설정한다. 이때, 시간 기준으로 나열된 요청들 간의 시간 간격을 기준 시간과 비교하여, 기준 시간 보다 짧은 시간 간격을 갖는 요청들을 하나의 요청열로 묶는다. 상기 요청열 구성 방법에 대해서는 이후에 도 4에 대한 설명에서 더 구체적으로 하기로 한다.
상기 SOD 클라이언트(300)는 사용자별 응응 프로그램의 사용 패턴에 따른 소프트웨어 모듈의 요청열에 대한 설정이 이루어진 후, 사용자에 의해 응용 프로그램이 실행되면, 실행된 응용 프로그램의 동작과 관련하여 요구되는 소프트웨어 모듈이 포함되어 있는 요청열을 선택하여, 해당 요청열 모두에 대한 전송 요청을 SOD 서버(320)에 요구한다.
이에 SOD 서버(320)는 스트리밍 클라이언트(300)로부터 전송된 요청열에 상응하는 소프트웨어 모듈들을 모두 스트리밍 클라이언트(300)로 전송한다.
이렇게 함으로써, 응용 프로그램에서 요청하지 않았다 하더라도, 해당 응용 프로그램의 실행에 필요한 소프트웨어 모듈들에 대한 프리페칭이 이루어진다.
한편, SOD 클라이언트(300)는 응용 프로그램의 실행에 따라서 요구된 소프트웨어 모듈과 관련하여 설정된 요청열이 없는 경우, SOD 서버(320)에서 통계적 분석에 의해서 설정되어 있는 권장 요청열을 SOD 클라이언트(300)로 전송하고, SOD 클라이언트(300)에서는 상기 권장 요청열에 의거하여 프리페칭을 수행하도록 한다.
이와 같이 SOD 서버(320)에서 제공되는 권장 요청열에 근거하여, SOD 클라이언트(200)에서 해당 소프트웨어가 한번이라도 실행된 후에는, 사용자의 사용패턴에 따른 요청열 구성이 가능해지므로, 이후부터는 사용자별 사용 패턴에 따른 요청열을 통해 프리페칭이 이루어질 수 있다.
상술한 소프트웨어 스트리밍 서비스 시스템에 대해서, 상기 SOD 클라이언트(300) 및 SOD 서버(320) 각각의 세부 구성을 통해 좀 더 구체적으로 살펴보기로 한다.
상기 SOD 클라이언트(300)는 사용자가 요청한 기능을 수행하도록 상기 SOD 서버(320)에서 전송된 소프트웨어 모듈을 실행하는 응용 프로그램(302)과, 상기 응용 프로그램(302)의 사용 패턴에 따라서 연속적으로 요구되는 소프트웨어 모듈들에 대한 요청열을 설정하여, 상기 응용 프로그램(302)에서 수행할 기능에 관련된 코드를 포함하는 요청열을 제공하는 클라이언트 제어부(308)를 포함한다.
더하여, 상기 SOD 클라이언트(300)는 상기 응용 프로그램(302)의 사용 패턴에 따라서 설정된 소프트웨어 모듈들의 요청열을 저장하는 제1저장부(304)와, SOD 서버(320)로부터 스트리밍받은 소프트웨어 모듈을 캐싱하는 제2저장부(306)를 포함한다. 상기에서, 제2저장부(306)는 캐쉬 메모리이다.
상기 클라이언트 제어부(308)는 응용 프로그램(302)이 시작된 후에 사용자의 응용 프로그램 실행에 따라서 요구되는 소프트웨어 모듈 요청을 시간기준으로 나열한다.
그리고 클라이언트 제어부(308)는 상기 시간적으로 나열된 소프트웨어 모듈 요청의 시간 간격을 확인하여, 시간 간격이 분리 기준 값보다 큰 구간을 기준으로 요청들을 분리하여 하나의 요청열로 구성한다. 이때, 연속된 소프트웨어 모듈 요청의 수, 즉, 해당 요청열의 길이가 기준 길이 이상인 경우에만 요청열로 구성되도록 제한할 수 도 있다.
상기 클라이언트 제어부(308)에서의 요청열 구성 방법을 도 4의 도면을 참조하여 더 구체적으로 설명한다.
도 4는 임의 사용자가 특정 응용 프로그램을 실행함에 따라서, 나타나는 소 프트웨어 모듈 요청을 응용 프로그램의 시작 시부터 시간적으로 나열한 것으로서, 도시된 바와 같이, 소프트웨어 모듈 요청을 시간적으로 나열하면, 요청이 집중적으로 발생하는 구간과, 요청이 드물게 발생하거나 없는 구간이 나타난다.
상기에서 소프트웨어 모듈의 요청이 시간적으로 집중되어 발생하는 원인을 살펴보면, 응용 프로그램이 시작되거나, 사용자로부터 임의의 기능 수행 명령이 있거나, 응용프로그램의 실행 중에 이벤트 발생에 의한 기능의 자동 수행 등으로 어떤 명령을 수행하기 위한 코드가 다수의 모듈에 저장되어 있거나 관련되어 있기 때문이다. 따라서, 어떤 명령을 수행할 때, 관련된 소프트웨어 모듈이 전혀 캐시되어 있지 않다면, 관련된 소프트웨어 모듈에 대한 요청이 연속적으로 발생한다.
본 발명에서는, 이렇게 연속적으로 발생하는 소프트웨어 모듈들을 묶어 한번에 요청하고자 한다.
이에, 상기 클라이언트 제어부(308)는 시간적으로 나열된 요청들에 있어서, 요청열을 구성하기 위하여, 임의로 정한 기준값(threshold value:tv) 이상 모듈 요청 시간 간격이 벌어진 곳(이를 요청 휴지 구간(request break time)이라 한다)을 요청열의 구분자로 정하고, 인접한 두 구분자 사이에서 발생된 요청들을 하나의 요청열로 설정한다.
상기 요청 휴지 기간은 응용 프로그램이 사용자의 명령이나 입력을 받기 위해 대기하는 경우, 응용 프로그램이 동작 수행을 위해 데이터를 액세스하는 경우, 응용 프로그램에 동작 수행에 필요한 명령처리를 위한 계산위주(CPU-bound)의 연산을 수행하는 경우 중 어느 하나에 해당이 되면 발생된다.
도 4를 보면, 구간 A, 구간 C, 구간 E, 구간 H는 소프트웨어 모듈 요청이 시간적으로 연속적으로 나온 구간(즉, 요청 구간이라 함)이고, 구간 B, 구간 D, 구간 F, 구간 G는 상기 기준값 tv 이상동안 요청이 없는 요청 휴지 구간이다.
상기 요청 구간 A, C, E, H에 있어서, 각 요청사이의 시간 간격은 상술한 기준값 tv보다 작거나 같다. 상기 기준값 tv는 사용자가 적절한 값으로 설정할 수 있다.
즉, 본 발명에서 말하는 요청열이란, 연속된 모듈 요청 시점의 간격이 기준값 tv 이하인 일련의 요청들의 집합으로 정의할 수 있다.
따라서, 상기 클라이언트 제어부(308)는 응용 프로그램의 실행에 따라서 해당 모듈을 스트리밍받아 캐싱하는 동작과는 별도로, 상기 응용 프로그램의 실행에 의하여 발생하는 각 소프트웨어 모듈 요청 간의 시간 차이를 확인하여, 시간 차이가 기준값 tv 이상이 요청 휴지 구간 사이의 요청들을 묶어 하나의 요청열로 설정한다. 이러한 요청열 설정과정이 응용 프로그램(302)의 시작시부터 종료시까지 반복하여 이루어짐으로서, 사용자의 사용패턴에 적합한 요청열의 설정이 이루어진다.
이와 같이 설정된 요청열은 제1저장부(304)에 저장된다.
이때, 프리페칭을 효율을 높이기 위하여, 상기 설정되는 요청열의 길이에 대한 하한 임계값을 설정하여, 길이가 하한 임계값 이상인 요청열만을 제1저장부(304)에 저장시킨다. 여기서 요청열의 길이는, 해당 요청열에 포함된 요청의 수로 정의한다.
그리고, 클라이언트 제어부(308)는 상기와 같이 사용자의 응응 프로그 램(302)의 사용패턴에 따라서 나타나는 소프트웨어 모듈의 요청열이 설정된 상태에서, 응용 프로그램(302)이 실행되면, 실행된 응용 프로그램(302)의 동작과 관련하여 필요한 모듈을 지정하고, 상기 제1저장부(304)에 저장된 요청열중에서 상기 모듈을 포함하는 요청열을 선택하여 SOD 서버(320)에 전송한다. 즉, 응용 프로그램의 실행에 요구되는 모듈을 확인하여, 상기 확인된 모듈로 시작하는 요청열을 SOD 서버(320)로 전송하여 프리페칭한다.
상기에서 클라이언트 제어부(308)는 상기 설정된 요청열별 사용빈도를 저장하고, 이후 요청열 검색시 해당하는 요청열이 둘 이상 검색될 때, 각 요청열의 사용빈도를 비교하여, 사용빈도가 높은 요청열을 선택하거나, 다음 요청을 하나 더 받아서, 해당 요청까지 포함하는 요청열을 선택한다. 이때, 상기 SOD 클라이언트(300)는 선택된 요청열에 해당하는 모듈들을 하나씩 요구하지 않고, 해당 요청열의 모듈 리스트를 전송하도록 함으로서, 요청시마다 발생하는 라운드 트립으로 인한 지연 시간을 줄일 수 있다.
다음으로, SOD 서버(320)는 서버 제어부(322)와 소프트웨어 저장부(324)를 포함한다.
상기 소프트웨어 저장부(324)는 SOD 클라이언트(300)의 응용 프로그램(302)의 실행에 필요한 소프트웨어 모듈들을 저장하고 있는 것이다.
상기 서버 제어부(322)는 SOD 클라이언트(300)로부터 소프트웨어 모듈의 요청이 있으면, 상기 소프트웨어 저장부(324)에서 해당하는 소프트웨어 모듈을 읽어 SOD 클라이언트(300)로 전송한다. 이때, 요청열에 포함된 모듈간의 전송 순서는 큰 의미가 없으므로, 모든 모듈들을 비동기 방식으로 한꺼번에 전송하도록 한다.
상기 전송된 소프트웨어 모듈들은 상기 SOD 클라이언트(300) 내의 제2 저장부(306)에 저장되며, 이에 의하여, 응용 프로그램(302)의 요청이 없더라도 응용 프로그램(302)의 실행에 필요할 것으로 예측되는 소프트웨어 모듈들의 프리페칭이 완료된다.
따라서, 상기 응용 프로그램(302)는 제2저장부(306)에 프리페칭된 소프트웨어 모듈들과 관련된 기능이 수행되는 경우, 대기시간 없이 제2저장부(306)에 캐싱된 모듈을 읽어들여 즉시 실행할 수 있게 된다.
한편, SOD 클라이언트(300) 내의 클라이언트 제어부(304)는 응용 프로그램(302)의 실행과 관련되어 설정된 소프트웨어 모듈들의 요청열이 없으면, 해당 소프트웨어 모듈에 대해서만 상기 SOD 서버(320)에 전송 요청하고, 이에, SOD 서버(320) 내의 서버 제어부(322)는 SOD 클라이언트(300)로부터 전송 요청된 해당 소프트웨어 모듈을 SOD 클라이언트(300)로 전송한다.
다음으로, 본 발명에 의한 온디맨드 방식의 소프트웨어 스트리밍 서비스에 있어서의 프리페칭 방법을 도 5 및 도 6의 플로우챠트를 참조하여 순차적으로 설명한다.
도 5는 본 발명에 있어서, 소프트웨어 스트리밍 시의 전송 단위인 요청열을 구성하는 방법을 나타낸 플로우차트이다.
도 5를 참조하면, SOD 클라이언트(300)는 사용자의 사용 패턴에 적합한 요청열을 구성하기 위하여, 응용 프로그램이 실행된 경우, 대기 상태로 소프트웨어 모듈의 요청이 발생되기를 기다린다(S500). 상기 대기 상태에서, 임의 소프트웨어 모듈의 요청이 발생되면(S502), 현재의 요청시점(tcur)과 이전의 요청시점(told)의 시간간격과 미리 설정된 요청열 분리 기준값(tv)을 비교한다(S504).
상기 비교 결과, 현재의 요청 시점(tcur)과 이전의 요청시점(told) 간의 시간 간격이 상기 요청열 분리 기준값(tv)보다 작거나 같으면, 요청열 저장 변수 seq에 현재의 요청을 추가한 후(S506), 현재의 요청 시점(tcur)을 이전의 요청 시점(told)으로 변경하고(S508), 대기 상태(S500)로 되돌아가 다음 소프트웨어 모듈의 요청이 발생하기를 기다린다.
상기 과정을 반복하여, 이전 요청 시점(told)와의 요청 시간 간격이 요청열 분리 기준값(tv) 이하인 요청을 요청열 저장 변수 seq에 계속 누적 시킨다.
그리고, 현재의 요청 시점(tcur)과 이전의 요청시점(told) 간의 시간 간격이 상기 요청열 분리 기준값(tv)보다 큰 요청이 발생한 경우, 단계 S512에서 상기 요청열 저장 변수 seq에 누적된 요청들을 묶어 하나의 요청열로 구성한다. 그리고, 상기 요청열 저장 변수 seq는 새로운 요청열 구성을 위하여 초기화한 후 현재의 요청만을 저장하며(S514), 요청간의 시간 간격 비교를 위하여 현재의 요청 시점(tcur)을 이전의 요청 시점(told)로 변경한(S508) 후, 다음 요청을 대기한다(S500).
이러한 처리에 있어서, 상기 단계 S504에서 현재의 요청 시점(tcur)과 이전 의 요청시점(told) 간의 시간 간격이 상기 요청열 분리 기준값(tv)보다 크게 요청하였을때, 상기 요청열 저장 변수 seq에 저장된 요청열의 길이와 요청열 저장 기준값(seqleng)를 비교하고(S510), 상기 비교 결과, 요청열 저장 변수 seq의 길이가 요청열 저장 기준값(seqleng) 보다 작으면, 해당 seq내에 누적된 요청들을 요청열로 구성하지 않고, seq를 초기화시키고(S516), seq의 길이가 요청열 저장 기준값(seqleng)보다 큰 경우에만 단계 S512로 진행하도록 할 수 있다.
즉, 요청열 저장 변수 seq의 길이가 요청열 저장 기준값(seqleng)와 같거나 큰 경우에만, seq에 누적된 요청들을 요청열로 구성하도록 제한하는 것이다.
상기 단계 512에서 구성된 요청열들은 클라언트 제어부(308)의 제1 저장부(304)에 저장된다.
상기에 의하여, 사용자의 응용 프로그램 사용 패턴에 따라서 연속적으로 발생하는 소프트웨어 모듈 요청들을 묶어, 프리페칭을 위한 요청열로 구성하고, 이러한 사용자 사용 패턴에 따라 구성된 요청열을 이용하여 보다 효율적인 프리페칭이 이루어질 수 있다.
도 6은 본 발명에 따른 요청열을 기반으로 한 소프트웨어 스트리밍 서비스에서의 프리페칭 방법을 나타낸 플로우차트이다.
도 6을 참조하면, 본 발명에 의한 SOD 클라이언트(300)는 응용 프로그램(302)의 실행이 감지되면, 검색 요청열 변수 Search-seq를 초기화(S600) 한 후에, 응용 프로그램의 실행에 따라서 모듈 요청이 발생하기를 대기한다(S602).
상기 대기상태에서, 응용 프로그램의 실행에 필요한 특정 소프트웨어 모듈 m에 대한 요청이 발생하면(S604), 상기 검색 요청열 변수 Search_seq에 상기 요청된 모듈 m을 추가한 후(S608), 상기 검색 요청열 변수 search_seq에 기록된 모듈들을 포함하는 요청열을 상기 제1 저장부(304)에서 검색한다(S610). 이때, 요청열 검색은 상기 변수 search_seq에 저장된 모듈이 시작 모듈로 포함되어 있는 요청열을 검색하는 것이 바람직하다.
이어서, 상기에서 검색된 요청열의 수를 확인하여(S612), 해당되는 요청열이 하나도 검색되지 않은 경우, 관련된 요청열이 존재하지 않는 것이므로, 단계S600로 되돌아가, 변수 search_seq를 초기화한 후 다음 요청 발생을 기다린다. 이때, 상기 SOD 클라이언트(300)는 해당하는 단일 소프트웨어 모듈만을 SOD 서버(320)로 요청하여 전송받는다.
반대로, 상기 검색된 요청열의 수가 하나인 경우, 검색된 요청열의 모든 소프트웨어 모듈들의 목록을 SOD 서버(320)로 보내어 전송을 요청하여, 상기 요청열에 해당하는 소프트웨어 모듈들을 모두 프리페칭한다(S614).
상기와 달리, 검색된 요청열의 수가 하나 보다 큰 경우, 각 검색된 요청열의 사용빈도를 확인하여, 최대 사용빈도를 갖는 요청열을 변수 max_seq에 넣는다(S616). 이어서, 상기 변수 max_seq에 저장된 요청열의 사용빈도가 기준 사용빈도(freq) 이상인지를 확인한다(S618).
상기에서 사용빈도가 기준 사용빈도 이상이면, 해당 max_seq에 저장된 요청열을 모두 프리페칭한다(S620).
반대로, 상기 확인 결과, 최대 사용빈도가 기준 사용빈도보다 작으면, 상기 단계S602로 되돌아가, 다음 모듈 요청이 발생되기를 대기하고(S602), 상기 다음 모듈 m의 요청이 발생되면, 상기 새로 발생된 모듈 m을 이전에 요청된 모듈m이 저장된 검색 요청열 변수 search_seq에 추가한다(S608). 따라서, 변수 search_seq에는 새로 발생된 모듈 요청이 추가되어 발생순서대로 저장된다.
이에, 단계S610에서는, 상기 search_seq에 저장된 요청열을 초기 요청값으로 포함하고 있는 요청열을 검색하게 된다(S610).
이와 같이 요청열의 길이를 증가시킴으로써, 다수의 요청열 중에서 관련성이 높은 요청열이 검색될 확률을 증가시킬 수 있다.
요청열 검색 이후의 과정(S612~S620)은 앞서 설명한 바와 같이 반복된다.
따라서 여러 개의 요청열이 검색되는 경우, 사용 빈도 및 다음 요청되는 모듈을 모두 고려하여 재검색함으로써, 가장 관련성이 높은 요청열을 검색하여, 프리페칭할 수 있다.
더하여, 도 7 및 도 8은 본 발명에 의한 프리페칭 방법을 적용한 소프트웨어 스트리밍 서비스 시스템의 동작 예를 나타낸 서비스 흐름도이다.
도 7은 본 발명에 의한 소프트웨어 스트리밍 서비스 시스템에 있어서, 응용 프로그램이 최초 구동되는 경우의 서비스 절차를 나타낸 도면이다.
응용 프로그램이 최초 구동시에는 사용자의 사용 패턴에 따른 요청열이 전혀 생성되어 있지 않은 상태이다.
따라서, 도 7에 도시된 바와 같이, SOD 클라이언트는 응용 프로그램의 최초 구동되면(S700), 응용 프로그램 구동정보를 SOD 서버로 전송한다(S702).
이에, SOD 서버는 SOD 클라이언트로부터 응용프로그램 구동정보가 전송됨에 따라, 해당하는 응용 프로그램의 평균적인 사용패턴에 따른 요청열을 생성한다(S804). 이는 응용프로그램별로 여러 사용자의 사용패턴을 취합하여 사전에 미리 생성된 후 SOD 서버 측에 마련되어 있는 것이 바람직하다.
따라서 상기 SOD 서버는 상기 응용프로그램별로 생성되어 있는 요청열들을 응용프로그램 구동 정보가 전송된 SOD 클라이언트로 전송한다(S706).
SOD 클라이언트는 상기와 같이 SOD 서버로부터 전송된 해당 응용프로그램의 요청열들을 제1 저장부에 저장한다(S708).
상기 S702단계부터 S708단계까지의 수행은 S700단계에서 응용 프로그램이 최초 구동된 후에 응용 프로그램에서 임의의 동작이 수행되기 전에 완료되는 것이 바람직하다.
이상의 동작에 의하면, SOD 클라이언트는 최초 구동되는 응용 프로그램에 대해서도, 보편적인 사용패턴에 근거한 요청열을 구비할 수 있으며, 이를 통해 요청열 기반의 프리페칭을 수행할 수 있다.
그리고, 요청열기반의 프리페칭을 수행하면서, 응용 프로그램의 실행시, 사용자의 사용패턴에 따른 요청열을 생성할 수 있다.
도 8은 본 발명에 의한 소프트웨어 스트리밍 서비스 시스템에 있어서, 요청열을 구비한 상태에서의 서비스 절차를 나타낸 것이다.
도 8을 참조하면, 상기 도 7과 같이 SOD 서버에서 보편적인 사용패턴에 따른 요청열이 제공되거나, 또는 상기 도 5를 참조하여 설명한 요청열 구성 방법에 따라서 요청열이 생성된(S800) 후에, 응용 프로그램이 재시작하면(S802), 응용 프로그램의 동작에 따라서 발생되는 모듈 요청에 근거하여 해당 요청된 모듈을 포함하는 요청열을 상기 저장된 요청열중에서 선택하고(S804), 선택된 요청열을 SOD 서버에 전송한다(S806).
이때, 응용 프로그램의 실행에 필요한 소프트웨어 모듈의 요청열에 대한 선택은 실행된 응용 프로그램의 동작과 관련되며, 대응하는 요청열들의 사용빈도 등에 따라 이루어질 수 있다.
즉, 실행된 응용 프로그램의 동작과 관련한 요청열이 여러 개 존재하는 경우, 그 사용빈도가 기준값 이상이면서 최대의 사용빈도를 나타내는 요청열을 선택하는 것이 바람직하며, 이에 만족하는 요청열이 없는 경우, 다음 요청되는 모듈을 더 포함하는 요청열 재검색한다.
이에 SOD 서버는 SOD 클라이언트로부터 전송된 요청열에 해당되는 소프트웨어 모듈들을 해당 SOD 클라이언트로 전송한다(S808).
SOD 클라이언트는 SOD 서버로부터 전송된 소프트웨어 모듈들을 제2 저장부에 저장한다(S810).
이때, S804단계부터 S810단계까지의 수행은 응용 프로그램이 재시작된 후에, 응용 프로그램에서 임의의 동작이 수행되기 전에 완료되는 것이 바람직하다.
상술한 바와 같이, 본 발명에 따른 소프트웨어 스트리밍 서비스 시스템 및 그 방법에 따르면, SOD 클라이언트가 응용 프로그램에서 임의의 동작이 수행되기 전에 사용자의 사용패턴에 따라서 생성된 요청열을 이용하여 앞으로 필요할 가능성이 높은 소프트웨어 모듈들을 프리페칭 함으로써, 응용 프로그램의 실행을 위한 사용자의 대기시간을 줄일 수 있다.
또한, 본 발명에 따른 소프트웨어 스트리밍 서비스 시스템 및 그 방법에 따르면, SOD 클라이언트 측의 요구에 따라서 사용자별로 사용 패턴에 따른 요청열을 통해 응용 프로그램의 실행에 필요한 소프트웨어 모듈들을 프리페칭 함으로써, 프리페칭과정에 사용자의 응용 프로그램의 사용 성향을 반영할 수 있으며, 그 결과 보다 효율적인 프리페칭이 이루어지도록 할 수 있다.
또한, 본 발명에 따른 소프트웨어 스트리밍 서비스 시스템 및 그 방법에 따르면, 요청열에 해당되는 소프트웨어 모듈들을 한 번에 프리페칭 함으로써, 소프트웨어 패키지의 구성단위로 소모되는 라운드 트립 시간을 축소할 수 있다.

Claims (28)

  1. 서버에 저장된 소프트웨어 모듈들을 클라이언트측에서 응용 프로그램의 실행에 따라서 전송받는 소프트웨어 스트리밍 서비스에 있어서, 상기 클라이언트가
    응용 프로그램별로 사용 패턴에 따라 연속적으로 요청되는 소프트웨어 모듈들을 하나로 묶어 나타낸 요청열들을 생성하여 저장하는 제1단계;
    응용 프로그램이 시작되면, 상기 응용 프로그램의 실행에 따라서, 상기 저장된 요청열중에서 해당 응용 프로그램의 실행에 필요한 요청열을 선택하여 서버에 전송하는 제2단계;
    상기 전송된 요청열에 해당되는 소프트웨어 모듈들을 전송받아 저장하는 제3단계를 포함하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  2. 제1항에 있어서, 상기 요청열은
    응용 프로그램의 실행에 따라서 순차적으로 발생하는 소프트웨어 모듈의 요청을 시간적으로 나열할 때, 인접한 요청과의 요청 시간 차이가 요청열 분리 기준값보다 작은 연속된 요청들의 집합인 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  3. 제1항에 있어서, 상기 제1단계는,
    상기 응용 프로그램의 실행에 따라서 발생하는 소프트웨어 모듈의 요청을 대기하는 제1 과정과,
    소프트웨어 모듈의 요청이 발생하면, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이와 미리 설정된 요청열 분리 기준값을 비교하는 제2 과정과,
    상기 비교 결과, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이가 요청열 분리 기준값 이하이면, 요청열 저장 변수에 현재 요청된 소프트웨어 모듈을 추가하는 제3 과정과,
    상기 비교 결과, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이가 요청열 분리 기준값보다 크면, 상기 요청열 저장 변수에 저장된 소프트웨어 모듈들로 요청열을 생성하여 저장한 후 요청열 저장 변수에는 현재 요청만을 저장시키는 제4 과정을 포함하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  4. 제3항에 있어서,
    제1 과정에서 제4 과정은 상기 응용프로그램이 시작된 후부터 종료될 때까지 반복 수행되는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  5. 제3항에 있어서, 제4 과정을 수행하기 전에
    상기 비교 결과, 현재의 요청 시점과 이전의 요청 시점간의 시간 차이가 요청열 분리 기준값보다 크면, 현재 요청열 저장 변수에 누적된 요청의 수를 사전에 설정된 요청열 저장 기준값과 비교하여, 요청열 저장 변수에 누적된 요청의 수가 요청열 저장 기준값 보다 큰 경우에만 상기 제4 과정을 실행하도록 하는 과정을 더 포함하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  6. 제1항에 있어서, 상기 제1 단계는
    서버에서 응용 프로그램별로 연속된 요청열을 생성하여 둔 상태에서, 응용 프로그램이 처음 실행되는 경우, 클라이언트가 해당 응용 프로그램에 관련된 요청열을 전송받아 저장하는 단계인 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  7. 제1항에 있어서, 상기 제2단계는,
    응용 프로그램의 실행에 필요한 코드가 발생되는 경우, 상기 코드를 구비한 모듈을 포함하는 요청열을 선택하는 단계임을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  8. 제7항에 있어서, 상기 제2단계는,
    상기 검색된 요청열의 수가 둘 이상인 경우, 검색된 각 요청열의 사용 빈도를 확인하여, 최대 사용 빈도를 갖는 요청열을 선택하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반 프리페칭 제공 방법.
  9. 제7항에 있어서, 상기 제2단계는,
    기준 사용 빈도를 설정하여, 상기 최대 사용 빈도가 기 설정된 기준 사용 빈도보다 높은 경우에, 해당 최대 사용빈도를 선택하도록 하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법.
  10. 제9항에 있어서, 상기 제2단계는,
    상기 최대 사용 빈도가 기 설정된 기준 사용 빈도보다 작은 경우, 이후에 발생되는 소프트웨어 모듈 요청을 더 추가하여, 추가된 요청들을 모두 포함하는 요청열을 선택하도록 하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법.
  11. 제7항에 있어서,
    상기 제2 단계는, 상기 선택된 요청열에 해당하는 소프트웨어 모듈들의 목록을 서버로 전송하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법.
  12. 제11항에 있어서,
    상기 제3 단계는, 상기 제2 단계에서 전송된 목록에 해당하는 소프트웨어 모듈들을 서버로부터 비동기적으로 수신하여 저장하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭 제공 방법.
  13. 제6항에 있어서, 상기 제1단계는,
    상기 응용프로그램이 최초 구동된 후에 상기 응용프로그램에서 임의의 동작이 수행되기 전에 완료되는 것을 특징으로 하는 소프트웨어 스트리밍 서비스에서 요청열 기반의 프리페칭 제공 방법.
  14. 응용 프로그램에 실행에 필요한 소프트웨어 모듈을 서버로부터 전송받아 실 행하는 소프트웨어 스트리밍 서비스 시스템의 SOD 클라이언트 장치에 있어서,
    연속된 응용프로그램의 실행에 필요한 소프트웨어 모듈들의 집합인 하나 이상의 요청열을 저장하는 제1저장부;
    서버로부터 전송된 소프트웨어 모듈들을 저장하는 제2저장부; 및
    응용프로그램의 실행에 따른, 소프트웨어 모듈 요청을 확인하여 요청된 모듈을 포함하는 요청열을 제1 저장부에서 검색하고, 검색된 요청열을 서버로 전송하여 해당되는 소프트웨어 모듈들을 프리페칭하는 클라이언트 제어부를 포함하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  15. 제14항에 있어서,
    상기 클라이언트 제어부는, 응용프로그램의 실행 중에 발생하는 소프트웨어 모듈 요청들을 시간적으로 배열할 때, 인접한 요청 사이에 요청열 분리 기준값 이상의 시간 차이가 발생하는 구간 사이에 속하는 요청들로 요청열을 생성하여 상기 제1 저장부에 저장시키는 것을 특징으로 하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  16. 제14항에 있어서,
    상기 클라이언트 제어부는, 응용 프로그램의 최초 구동시, 서버에 응용 프로 그램의 구동정보를 전송하여, 서버로부터 해당 응용 프로그램에 대해 준비된 요청열을 수신하여 제1 저장부에 저장시키는 것을 특징으로 하는 프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  17. 제14항에 있어서, 상기 클라이언트 제어부는
    상기 검색된 요청열의 수가 둘 이상인 경우, 검색된 각 요청열의 사용 빈도를 확인하여, 최대 사용 빈도를 갖는 요청열을 선택하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  18. 제17항에 있어서, 상기 클라이언트 제어부는
    기준 사용 빈도를 설정하여, 상기 최대 사용 빈도가 기 설정된 기준 사용 빈도보다 높은 경우에, 해당 최대 사용빈도를 선택하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  19. 제18항에 있어서, 상기 클라이언트 제어부는
    상기 최대 사용 빈도가 기 설정된 기준 사용 빈도보다 작은 경우, 이후에 발생되는 소프트웨어 모듈 요청을 더 추가하여, 추가된 요청들을 모두 포함하는 요청 열을 선택하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  20. 제14항에 있어서, 상기 클라이언트 제어부는
    상기 선택된 요청열에 해당하는 소프트웨어 모듈들의 목록을 서버로 전송하여, 상기 목록에 해당하는 소프트웨어 모듈들을 비동기적으로 전송받는 것을 특징으로 하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  21. 제16항에 있어서, 상기 클라이언트 제어부는
    상기 응용프로그램이 최초 구동된 후에 상기 응용프로그램에서 임의의 동작이 수행되기 전에 서버로부터 요청열을 수신하여 저장하는 동작을 완료하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스를 위한 SOD 클라이언트 장치.
  22. 응용프로그램이 실행되는데 필요한 소프트웨어 모듈들을 저장하고, 하기의 클라이언의 요청에 따라 해당되는 소프트웨어 모듈을 클라이언트에 제공하는 SOD 서버; 및
    응용 프로그램의 사용 패턴에 따라서 연속적으로 발생하는 소프트웨어 모듈 요청들로 만들어진 요청열을 저장하고, 응용 프로그램의 실행에 필요한 소프트웨어 모듈 요청이 발생되면, 해당 모듈을 포함하는 요청열을 선택하여 상기 서버로 요청하는 SOD 클라이언트를 포함하는 소프트웨어 스트리밍 시스템.
  23. 제22항에 있어서, 상기 SOD 서버는
    응용 프로그램별로 보편적인 사용 패턴에 따른 요청열을 준비하고, 응용 프로그램이 처음 구동되는 경우, 상기 클라이언트로 해당 응용 프로그램의 요청열을 제공하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템.
  24. 제22항에 있어서, 상기 SOD 클라이언트는
    응용프로그램의 실행 중에 발생하는 소프트웨어 모듈 요청들을 시간적으로 배열할 때, 인접한 요청 사이에 요청열 분리 기준값 이상의 시간 차이가 발생하는 구간 사이에 속하는 요청들로 요청열을 생성하여 저장시키는 것을 특징으로 하는 프트웨어 스트리밍 시스템.
  25. 제22항에 있어서, 상기 SOD 클라이언트는
    상기 소프트웨어 모듈 요청을 포함하는 요청열의 수가 둘 이상인 경우, 검색 된 각 요청열의 사용 빈도를 확인하여, 최대 사용 빈도를 갖는 요청열을 선택하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템.
  26. 제25항에 있어서, 상기 SOD 클라이언트는
    기준 사용 빈도를 설정하여, 상기 최대 사용 빈도가 기 설정된 기준 사용 빈도보다 높은 경우에, 해당 최대 사용빈도를 선택하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템.
  27. 제26항에 있어서, 상기 SOD 클라이언트는
    상기 최대 사용 빈도가 기 설정된 기준 사용 빈도보다 작은 경우, 이후에 발생되는 소프트웨어 모듈 요청을 더 추가하여, 추가된 요청들을 모두 포함하는 요청열을 선택하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템.
  28. 제22항에 있어서, 상기 클라이언트 제어부는
    상기 선택된 요청열에 해당하는 소프트웨어 모듈들의 목록을 서버로 전송하여, 상기 목록에 해당하는 소프트웨어 모듈들을 비동기적으로 전송받는 것을 특징으로 하는 소프트웨어 스트리밍 시스템.
KR1020060083001A 2005-12-08 2006-08-30 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템 KR100776802B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050120155 2005-12-08
KR1020050120155 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061279A KR20070061279A (ko) 2007-06-13
KR100776802B1 true KR100776802B1 (ko) 2007-11-19

Family

ID=38357215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060083001A KR100776802B1 (ko) 2005-12-08 2006-08-30 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템

Country Status (1)

Country Link
KR (1) KR100776802B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100921632B1 (ko) * 2007-10-11 2009-10-15 아주대학교산학협력단 이동 멀티미디어 스트리밍 서비스 방법
KR102610480B1 (ko) * 2016-09-26 2023-12-06 삼성전자 주식회사 스트리밍 서비스를 제공하는 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887435A (ja) * 1994-09-19 1996-04-02 Matsushita Electric Ind Co Ltd ファイルサーバ装置
KR20020022056A (ko) * 1999-05-28 2002-03-23 피터 엔. 데트킨 소프트웨어 데이터 프리펫치의 오버헤드 감소 방법
KR20040047095A (ko) * 2002-11-29 2004-06-05 한국전자통신연구원 인터넷 기반 멀티미디어 스트리밍 서비스를 위한 동적선반입 시스템 및 방법
KR20040074805A (ko) * 2003-02-19 2004-08-26 주.피어링포탈 스트리밍 서비스 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0887435A (ja) * 1994-09-19 1996-04-02 Matsushita Electric Ind Co Ltd ファイルサーバ装置
KR20020022056A (ko) * 1999-05-28 2002-03-23 피터 엔. 데트킨 소프트웨어 데이터 프리펫치의 오버헤드 감소 방법
KR20040047095A (ko) * 2002-11-29 2004-06-05 한국전자통신연구원 인터넷 기반 멀티미디어 스트리밍 서비스를 위한 동적선반입 시스템 및 방법
KR20040074805A (ko) * 2003-02-19 2004-08-26 주.피어링포탈 스트리밍 서비스 방법 및 장치

Also Published As

Publication number Publication date
KR20070061279A (ko) 2007-06-13

Similar Documents

Publication Publication Date Title
US20200162795A1 (en) Systems and methods for internet video delivery
US20160364389A1 (en) Method for Efficient Database Formation and Search on Media Devices Acting Synchronously with Television Programming
US10498786B2 (en) Method and apparatus for adaptively providing multiple bit rate streaming media in server
US11303844B2 (en) Media resource storage and management
EP2194471A1 (en) Dynamic prefetching method and system for metadata
EP3028471B1 (en) Multimedia cache with dynamic segmenting
US20030195948A1 (en) Data transmission/reception apparatus for use in a two-way digital broadcasting system
US8010580B2 (en) Information browser, method of controlling same, and program
EP2659387B1 (en) Predictive software streaming
CN111352659A (zh) 用于分支和获取流水线的误预测恢复设备和方法
CN110198494A (zh) 一种视频播放方法、装置、设备和存储介质
KR100776802B1 (ko) 소프트웨어 스트리밍 서비스에서의 요청열 기반 프리페칭제공 방법 및 이를 이용한 소프트웨어 스트리밍 시스템
CN113286175A (zh) 视频流处理方法、装置及存储介质
CN106303563B (zh) 流媒体在线播放方法、装置、执行终端以及存储介质
CN110825994B (zh) 页面缓冲的处理方法、装置、计算机设备及存储介质
CN110740138B (zh) 数据传输方法和装置
US20090260040A1 (en) Providing multiple television channel previewing of commercial free content
KR100839004B1 (ko) 데이터 저장 디스크립터를 이용하는 통신 시스템, 송신기, 수신기, 및 방법
JP6422546B2 (ja) 送信装置、送信方法、及び、プログラム
CN113055612B (zh) 一种视频播放方法、装置、电子设备、系统和介质
JP5663742B2 (ja) 画像検索サーバ及び画像検索サーバの画像情報管理方法
CN111050195B (zh) 流媒体缓存方法、装置及计算机可读存储介质
CN109325154B (zh) 应用数据采集方法及电子设备
JP4479601B2 (ja) マルチキャスト経路計算方法及び装置およびプログラム及びプログラムを格納した記憶媒体
KR20080019972A (ko) 컨텐츠의 일부를 선 전송하는 디지털 컨텐츠 서비스 방법및 시스템

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: 20101101

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee