KR100757892B1 - 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법 - Google Patents

소프트웨어 스트리밍 서비스 제공 장치 및 그 방법 Download PDF

Info

Publication number
KR100757892B1
KR100757892B1 KR1020050119127A KR20050119127A KR100757892B1 KR 100757892 B1 KR100757892 B1 KR 100757892B1 KR 1020050119127 A KR1020050119127 A KR 1020050119127A KR 20050119127 A KR20050119127 A KR 20050119127A KR 100757892 B1 KR100757892 B1 KR 100757892B1
Authority
KR
South Korea
Prior art keywords
software
service
service provider
streaming
client
Prior art date
Application number
KR1020050119127A
Other languages
English (en)
Other versions
KR20070059806A (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 KR1020050119127A priority Critical patent/KR100757892B1/ko
Publication of KR20070059806A publication Critical patent/KR20070059806A/ko
Application granted granted Critical
Publication of KR100757892B1 publication Critical patent/KR100757892B1/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
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Primary Health Care (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 다수의 사용자에게 소프트웨어 스트리밍을 제공하는 스트리밍 서비스 제공 장치에 있어서 주제어장치(CPU), 메모리 사용률 및 입출력 부하 등을 감소시키고 그 성능을 최적화하는 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법에 관한 것으로서, 스트리밍 서비스 가능한 소프트웨어들 각각에 대하여 실행코드 및 페이지 형태의 파일을 저장하는 저장부; 하나 이상의 클라이언트들로부터 소프트웨어 스트리밍 서비스를 요청받는 입력부; 스트리밍 서비스 가능한 소프트웨어들 중 하나 이상에 대하여 대응된 소프트웨어 스트리밍 서비스를 제공하기 위한, 하나 이상의 서비스 제공자를 포함하는 전송부; 상기 입력부를 통해 서비스 요청된 소프트웨어 정보를 전달받고 그 소프트웨어를 분석하는 분석부; 및 상기 분석 결과에 의거하여 상기 전송부에 대응된 소프트웨어의 서비스 제공자가 존재하는 지의 여부를 확인하고 그 결과에 의거하여 대응된 소프트웨어 스트리밍 서비스를 제공하도록 제어하는 관리부를 포함하여, 소수의 서비스 제공자로 하여금 다수의 클라이언트들에게 소프트웨어 스트리밍 서비스를 제공한다.
소프트웨어 스트리밍, 서버, 부하 최소화, 서비스 제공자 관리

Description

소프트웨어 스트리밍 서비스 제공 장치 및 그 방법{APPARATUS AND METHOD FOR PROVIDING SOFTWARE STREAMING SERVICE}
도 1은 클라이언트와 스트리밍 서버 사이에 연결이 설정되어 스트리밍 서비스를 제공하는 일반적인 과정을 도시한 도면이다.
도 2는 종래의 일실시 예에 따른 스트리밍 서버가 다수의 클라이언트들에게 스트리밍 서비스를 제공하는 과정을 설명하기 위한 시스템 구성도이다.
도 3은 본 발명의 일실시 예에 따른 스트리밍 서버가 다수의 클라이언트들에게 스트리밍 서비스를 제공하는 과정을 설명하기 위한 시스템 구성도이다.
도 4는 본 발명의 일실시 예에 따른 스트리밍 서버에 대한 개략적인 블록도,
도 5는 본 발명의 일실시 예에 따른 스트리밍 서버의 동작 과정을 설명하기 위한 도면,
도 6은 본 발명의 일실시 예에 따른 스트리밍 서비스 제공 방법에 대한 처리 흐름도.
*도면의 주요 부분에 대한 부호의 설명*
300: 스트리밍 서버 310: 저장부
320: 입력부 330: 분석부
340: 관리부 350: 전송부
351, 353: 서비스 제공자
본 발명은 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법에 관한 것으로서, 특히 다수의 사용자에게 소프트웨어 스트리밍을 제공하는 스트리밍 서비스 제공 장치에 있어서 주제어장치(CPU), 메모리 사용률 및 입출력 부하 등을 감소시키고 그 성능을 최적화하는 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법에 관한 것이다.
'소프트웨어 스트리밍'은 서버에 존재하는 소프트웨어를 스트리밍 기법을 이용하여 클라이언트의 로컬 디스크에 설치된 소프트웨어처럼 실행하는 기술을 말한다. 이러한 '소프트웨어 스트리밍'의 개요를 도 1에서 설명하고 있다.
도 1은 클라이언트와 스트리밍 서버 사이에 연결이 설정되어 스트리밍 서비스를 제공하는 일반적인 과정을 도시한 도면으로서, 도 1을 참조하면 소프트웨어 스트리밍을 제공하기 위한 소프트웨어 스트리밍 시스템(100)은 클라이언트(110)와 스트리밍 서버(120)를 포함한다. 이 밖에도 클라이언트(110)와 스트리밍 서버(120)를 연결하는 네트워크(미도시)를 더 포함한다. 이 때 스트리밍 서버(120)는 소프트웨어가 설치 과정 없이 바로 실행될 수 있도록 별도의 과정을 통해 재포장된 실행 코드와 페이지 형태의 파일을 저장하고, 클라이언트(110)의 스트리밍 서비스 요청에 응답하여 대응된 스트리밍 서비스를 제공한다. 이 때 스트리밍의 대상은 '소프트웨어 및 실행코드와 페이지'를 포함한다. 예를 들어 클라이언트(110)가 스트리밍 서버(120)에게 실행코드 및 데이터를 요청하면(S110), 스트리밍 서버(120)는 그에 대응된 실행코드 및 데이터를 클라이언트(110)에게 전송한다.
이를 위해 스트리밍 서버(120)는 클라이언트(110)의 접속 요청시 접속을 처리하고, 해당 클라이언트(110)에게 대응된 스트리밍 서비스를 제공할 서비스 제공자(예컨대, 프로세스 또는 쓰레드 등)를 생성한다. 한편 상기 생성된 서비스 제공자는 클라이언트가 요청하는 소프트웨어를 디스크로부터 메모리로 적재하고 클라이언트의 파일 열기, 읽기, 닫기 등의 요청에 대해 해당 실행 코드를 전송한다.
도 2는 종래의 일실시 예에 따른 스트리밍 서버가 다수의 클라이언트들에게 스트리밍 서비스를 제공하는 과정을 설명하기 위한 시스템 구성도이다. 즉, 도 2는 종래의 일실시 예에 따른 소프트웨어 스트리밍 시스템(100)의 구성 예를 도시하고 있다. 특히, 도 2의 예에서는 클라이언트1(110a), 클라이언트2(110b) 및 클라이언트3(110c)가 소프트웨어 'A'를 공통적으로 서비스 받고, 클라이언트4(110d), 클라이언트5(110e) 및 클라이언트6(110f)가 소프트웨어 'B'를 공통적으로 서비스 받는 경우의 예를 설명하고 있다.
도 2를 참조하면 스트리밍 서버(120)는 스트리밍 시스템(100)에서 서비스 가능한 소프트웨어에 대하여 그 소프트웨어가 설치 과정 없이 바로 실행될 수 있도록 별도의 과정을 통해 재포장된 실행 코드와 페이지 형태의 파일을 저장하는 저장장 치(121)를 포함하고, 소프트웨어 스트리밍 서비스를 요청한 클라이언트들(110a, …, 110f) 각각에 대하여 대응된 서비스 제공자들(123a, …, 123f)을 각각 생성한 후 그 서비스 제공자들(123a, …, 123f)에 의거하여 대응된 클라이언트들(110a, …, 110f)에게 소프트웨어 스트리밍 서비스를 제공한다.
이를 위해 스트리밍 서버(120)는 클라이언트들(110a, …, 110f) 각각이 요청한 소프트웨어의 종류와 관계없이 각 클라이언트들(110a, …, 110f)에 대응된 서비스 제공자(123a, …, 123f)를 생성하고, 그 서비스 제공자들(123a, …, 123f) 각각은 저장장치(121)로부터 해당 소프트웨어를 전달받아 그 소프트웨어를 메모리에 적재한 후 대응된 클라이언트들(110a, …, 110f)에게 스트리밍 서비스를 제공한다.
이 때 클라이언트1(110a), 클라이언트2(110b) 및 클라이언트3(110c)은 소프트웨어 'A'를 공통적으로 요청하였고, 클라이언트4(110d), 클라이언트5(110e) 및 클라이언트6(110f)은 소프트웨어 'B'를 공통적으로 요청하였음에도 불구하고 스트리밍 서버(120)는 그 클라이언트들 각각에 대하여 서로 다른 서비스 제공자들(123a, 내지 123f)을 생성한다. 따라서 서비스제공자1(123a), 서비스제공자2(123b) 및 서비스제공자3(123c)은 공통적으로 소프트웨어 'A'를 각자의 메모리 영역에 적재하고, 서비스제공자4(123d), 서비스제공자5(123e) 및 서비스제공자6(123f)은 공통적으로 소프트웨어 'B'를 각자의 메모리 영역에 적재한다. 이로 인해 스트리밍 시스템(100)에 부하가 증가하게 된다. 예를 들어, 스트리밍 시스템(100)의 주제어장치(CPU, Central Process Unit) 사용률, 메모리 사용률, 디스크 입출력 부하 등의 부하가 증가하게 된다. 이러한 스트리밍 시스템(100)의 부하는 서비스 제공자의 증가에 따라 가중된다.
결과적으로 상기 종래의 스트리밍 시스템(100)은 서비스 가능한 클라이언트의 수가 제한적이라는 문제가 있었다.
상기와 같은 문제점을 해소하기 위해 본 발명에서는 클라이언트의 증가에 따른 스트리밍 서버의 부하를 줄이고 이로 인해 스트리밍 시스템 전체의 부하를 최소화하는 스트리밍 서비스 제공 장치 및 그 방법을 제공하고자 한다.
또한 본 발명에서는 서비스 가능한 클라이언트 수의 제한을 최소화하는 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법을 제공하고자 한다.
상기 목적을 달성하기 위해 본 발명에서 제공하는 스트리밍 서비스 제공장치는 스트리밍 서비스 가능한 소프트웨어들 각각에 대하여 실행코드 및 페이지 형태의 파일을 저장하는 저장부; 하나 이상의 클라이언트들로부터 소프트웨어 스트리밍 서비스를 요청받는 입력부; 스트리밍 서비스 가능한 소프트웨어들 중 하나 이상에 대하여 대응된 소프트웨어 스트리밍 서비스를 제공하기 위한, 하나 이상의 서비스 제공자를 포함하는 전송부; 상기 입력부를 통해 서비스 요청된 소프트웨어 정보를 전달받고 그 소프트웨어를 분석하는 분석부; 및 상기 분석 결과에 의거하여 상기 전송부에 대응된 소프트웨어의 서비스 제공자가 존재하는 지의 여부를 확인하고 그 결과에 의거하여 대응된 소프트웨어 스트리밍 서비스를 제공하도록 제어하는 관리부를 포함한다.
이 때 상기 관리부는 상기 확인 결과 대응된 소프트웨어의 서비스 제공자가 존재하면 그 서비스 제공자의 클라이언트 목록에 현재 클라이언트 정보를 추가하여 상기 서비스 제공자를 통해 현재 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하도록 하고, 상기 확인 결과 대응된 소프트웨어의 서비스 제공자가 존재하지 않으면 상기 요청된 소프트웨어 스트리밍 서비스를 제공하기 위한 신규 서비스 제공자를 생성한 후 상기 신규 서비스 제공자를 통해 현재 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하도록 함이 바람직하다.
또한 상기 관리부는 서비스 제공자별로 각 서비스 제공자가 스트리밍 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정하고, 요청되지 않은 소프트웨어에 대하여 소프트웨어 별로 서비스 제공자를 미리 생성하여 관리함이 바람직하다.
또한 상기 목적을 달성하기 위해 본 발명에서 제공하는 스트리밍 서비스 제공방법은 스트리밍 서비스 가능한 소프트웨어들 각각에 대한 정보를 관리하는 제1 과정; 제1 클라이언트로부터의 소프트웨어 스트리밍 서비스 요청에 응답하여 상기 소프트웨어를 분석하는 제2 과정; 서비스 제공자 관리 정보를 확인하여 상기 요청된 소프트웨어를 서비스할 수 있는 서비스 제공자가 존재하는 지의 여부를 판단하는 제3 과정; 및 상기 판단결과에 의거하여 대응된 소프트웨어 스트리밍 서비스를 제공하는 제4 과정을 포함한다.
이 때 상기 제1 과정은 서비스 제공자별로 각 서비스 제공자가 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정하여 관리함이 바람직하다.
또한 상기 제1 과정은 요청되지 않은 소프트웨어에 대하여 소프트웨어 별로 서비스 제공자를 미리 생성하여 관리함이 바람직하다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 3은 본 발명의 일실시 예에 따른 스트리밍 서버가 다수의 클라이언트들에게 스트리밍 서비스를 제공하는 과정을 설명하기 위한 시스템(200) 구성도이다. 즉, 도 3은 동일한 소프트웨어를 요청한 다수의 클라이언트에게 하나의 서비스 제공자가 스트리밍 서비스하는 과정을 설명하기 위한 스트리밍 시스템(200)에 대한 개략적인 블록도이다. 특히, 도 3의 예에서는 클라이언트1(210a), 클라이언트2(210b) 및 클라이언트3(210c)이 소프트웨어 'A'를 공통적으로 서비스 받고, 클라이언트 4(210d), 클라이언트5(210e) 및 클라이언트6(210f)이 소프트웨어 'B'를 공통적으로 서비스 받는 경우의 예를 설명하고 있다.
도 3을 참조하면 스트리밍 서버(220)는 스트리밍 시스템(200)에서 서비스 가능한 소프트웨어에 대하여 그 소프트웨어가 설치 과정 없이 바로 실행될 수 있도록 별도의 과정을 통해 재포장된 실행 코드와 페이지 형태의 파일을 저장하는 저장장치(221)를 포함한다. 그리고 클라이언트들(110a, …, 110f)로부터 소프트웨어 스트리밍 서비스가 요청되면 그 요청을 분석하여 서비스 요청된 소프트웨어 별로 서비스 제공자를 생성한다. 즉, 종래에는 소프트웨어의 종류와 상관없이 클라이언트별로 서비스 제공자를 생성하였으나 본 발명에서는 서비스 요청된 소프트웨어 별로 서비스 제공자를 생성하는 것이다.
도 3의 예에서는 소프트웨어 'A'를 위한 서비스 제공자(223a)와, 소프트웨어 'B'를 위한 서비스 제공자(223b)를 생성한다. 그리고 각 서비스 제공자(223a 또는 223b)는 대응된 소프트웨어 서비스를 요청한 클라이언트들 각각에게 대응된 소프트웨어를 제공한다. 즉, 소프트웨어 'A'를 위한 서비스 제공자(223a)는 저장장치(221)로부터 소프트웨어 'A'를 전달받아 메모리에 적재한 후 클라이언트1(210a), 클라이언트2(210b) 및 클라이언트3(210c) 각각에게 소프트웨어 'A'에 대한 스트리밍 서비스를 제공한다. 한편 소프트웨어 'B'를 위한 서비스 제공자(223b)는 저장장치(221)로부터 소프트웨어 'B'를 전달받아 메모리에 적재한 후 클라이언트4(210d), 클라이언트5(210e) 및 클라이언트6(210f) 각각에게 소프트웨어 'B'에 대한 스트리밍 서비스를 제공한다.
이 때 서비스 제공자들(223a, 223b) 각각은 한 번의 저장 장치(221) 입출력 연산으로 복수의 클라이언트들에게 해당 소프트웨어의 서비스를 수행할 수 있다.
도 4는 본 발명의 일실시 예에 따른 스트리밍 서버에 대한 개략적인 블록도이다. 도 4를 참조하면 본 발명의 일실시 예에 따른 스트리밍 서버(300)는 저장부(310), 입력부(320), 분석부(330), 관리부(340) 및 전송부(350)를 포함한다.
저장부(310)는 스트리밍 서버(300)를 통해 서비스 가능한 소프트웨어들 각각에 대한 정보(예컨대, 실행코드 및 페이지 형태의 파일)를 저장한다.
입력부(320)는 클라이언트들과의 인터페이싱을 수행하며 하나 이상의 클라이언트들로부터 소프트웨어 서비스를 요청받는다. 예를 들어 입력부(320)는 하나 이상의 클라이언트들로부터 스트리밍 서비스 요청을 받고, 그 요청을 분석부(330)로 전달한다. 이 때 입력부(320)는 스트리밍 서비스 요청된 소프트웨어의 식별 정보를 전달함이 바람직하다.
분석부(330)는 입력부(320)를 통해 서비스 요청된 소프트웨어 정보를 전달받고 그 소프트웨어를 분석한다. 예를 들어 분석부(330)는 입력부(320)로부터 스트리밍 서비스 요청된 소프트웨어의 식별 정보를 전달받고 그에 의거하여 스트리밍 서비스 요청된 소프트웨어를 식별한다.
관리부(340)는 스트리밍 서버(300)에 저장된 서비스 제공자들을 관리하고, 분석부(330)의 분석 결과에 의거하여 전송부(350)에 대응된 소프트웨어의 서비스 제공자가 존재하는 지의 여부를 확인한다. 예를 들어 현재 생성되어 있는 서비스 제공자 중 해당 소프트웨어를 서비스 할 수 있는 서비스 제공자가 존재하는지를 판단한다. 그리고 그 판단 결과에 의거하여 스트리밍 서버(300)가 대응된 소프트웨어 서비스를 제공하도록 제어한다. 예를 들어 상기 판단 결과 대응된 소프트웨어의 서비스 제공자가 존재하면 관리부(340)는 그 서비스 제공자의 클라이언트 목록(예컨대, 스트리밍 서비스 중인 클라이언트 목록)에 현재 클라이언트 정보를 추가하여 해당 서비스 제공자를 통해 현재 클라이언트에게 스트리밍 서비스를 제공하도록 한다. 이를 위해 관리부(340)는 현재 클라이언트 정보를 대응된 서비스 제공자에게 전달함이 바람직하다.
한편 상기 판단 결과 대응된 소프트웨어의 서비스 제공자가 존재하지 않으면 관리부(340)는 상기 요청된 스트리밍 서비스를 제공하기 위한 신규 서비스 제공자를 생성한 후 상기 신규 서비스 제공자를 통해 현재 클라이언트에게 스트리밍 서비스를 제공하도록 한다.
특히 관리부(340)는 서비스 제공자 별로 각 서비스 제공자가 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정할 수 있다. 또한 관리부(340)는 현재까지 요청되지 않은 소프트웨어 일지라도 미래 시점에서의 사용을 위해 소프트웨어 별로 서비스 제공자를 미리 생성해서 관리할 수도 있다.
전송부(350)는 서비스 가능한 소프트웨어들 중 하나 이상에 대하여 대응된 소프트웨어 서비스를 제공하기 위한, 하나 이상의 서비스 제공자를 포함한다. 도 4의 예에서는 전송부(350)에 서비스 제공자B(351)를 포함하고 클라이언트로부터의 요청에 의거하여 신규로 서비스 제공자A(353)를 생성하는 경우에 대한 예를 도시하고 있다.
도 5는 본 발명의 일실시 예에 따른 스트리밍 서버의 동작 과정을 설명하기 위한 도면이다. 특히 도 5는 제3 클라이언트(430)에게 소프트웨어 'B'를 서비스 중인 스트리밍 서버(300)가 제1 및 제2 클라이언트(410 및 420)로부터 또 다른 스트리밍 서비스를 요청받은 경우에 대한 처리 과정의 예를 설명하고 있다.
도 5를 참조하면 소프트웨어 'B'서비스 제공자(351)를 통해 제3 클라이언트(430)에게 소프트웨어 'B'서비스를 제공 중(S310)인 스트리밍 서버(300)에게 제1 클라이언트(410)와 제2 클라이언트(420)가 소프트웨어 'A'와 소프트웨어 'B'를 각각 요청한(S320, S330) 경우 입력부(320)는 제1 클라이언트(410)와 제2 클라이언트(420)의 요청을 받아 분석부(330)로 전달한다.
그러면 분석부(330)는 그 소프트웨어를 분석하여 요청된 소프트웨어가 'A'와 'B'임을 확인한 후 그 결과를 관리부(340)에게 전달한다.
상기 소프트웨어 정보를 전달받은 관리부(340)는 전송부(350)를 검사하여 현재 생성되어 저장된 서비스 제공자 중 소프트웨어 'A'와 'B'를 서비스 중인 제공자가 있는지 확인한다.
도 5의 예에서 전송부(350)에는 소프트웨어 'B'를 서비스 중인 서비스 제공자(351)만이 포함되어 있다. 따라서 전송부(350)는 제2 클라이언트(420)의 정보를 소프트웨어 'B' 서비스 제공자(351)에게 전달하여 소프트웨어 'B' 서비스 제공자(351)의 클라이언트 목록(예컨대, 소프트웨어 'B'에 대한 스트리밍 서비스 중인 클 라이언트 목록)에 제2 클라이언트(420) 정보를 추가한다(S340). 이는 소프트웨어 'B' 서비스 제공자(351)를 통해 제2 클라이언트(420)에게 스트리밍 서비스를 제공하도록 하기 위함이다.
한편 전송부(350)에는 소프트웨어 'A'를 서비스 중인 서비스 제공자(353)가 포함되어 있지 않다. 이는 이전까지 소프트웨어 'A'를 요청한 클라이언트가 없다는 것을 의미한다.
따라서 전송부(350)는 소프트웨어 'A'를 서비스 할 서비스 제공자(353)를 신규 생성하여(S350) 제1 클라이언트를 서비스하도록 한다.
도 6은 본 발명의 일실시 예에 따른 스트리밍 서비스 제공 방법에 대한 처리 흐름도이다. 특히 도 6은 클라이언트의 스트리밍 서비스 요청을 받은 스트리밍 서버의 동작 과정을 나타낸 흐름도이다.
도 6을 참조하면 도 4에 예시된 바와 같은 스트리밍 서버(300)는 먼저 서비스 제공자를 관리한다(S505). 예를 들어 스트리밍 서버(300)는 서비스 제공자 별로 각 서비스 제공자가 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정하고, 현재까지 요청되지 않은 소프트웨어 일지라도 미래 시점에서의 사용을 위해 소프트웨어 별로 서비스 제공자를 미리 생성해서 관리함이 바람직하다.
이와 같이 서비스 제공자를 관리하던 중 클라이언트로부터 소프트웨어 서비스 요청을 수신하면(S510) 스트리밍 서버(300)는 요청된 소프트웨어를 분석한다(S515). 즉 상기 서비스 요청된 소프트웨어를 식별한다.
그리고 서비스 제공자 관리정보를 확인한다(S520). 이 때 서비스 제공자 관리 정보를 확인하는 것은 상기 요청된 소프트웨어를 서비스할 수 있는 서비스 제공자가 스트리밍 서버(300)에 존재하는 지의 여부를 판단하기 위함이다.
따라서 상기 과정(S520) 수행 후 스트리밍 서버(300)는 상기 요청된 소프트웨어를 서비스할 수 있는 서비스 제공자가 스트리밍 서버(300)에 존재하는 지를 판단한다(S525). 상기 판단(S525) 결과 상기 요청된 소프트웨어를 서비스할 수 있는 서비스 제공자가 존재하면 스트리밍 서버(300)는 상기 서비스 요청한 클라이언트 정보를 해당 서비스 제공자에게 전달한다(S530). 이는 서비스 제공자의 클라이언트 목록(예컨대, 서비스 요청된 소프트웨어에 대하여 스트리밍 서비스 제공중인 클라이언트 목록)에 현재 클라이언트정보를 추가하도록 하기 위함이다.
한편 상기 판단(S525) 결과 상기 요청된 소프트웨어를 서비스할 수 있는 서비스 제공자가 존재하지 않으면 스트리밍 서버(300)는 상기 요청된 스트리밍 서비스를 제공하기 위한 신규 서비스 제공자를 생성한다(S535).
그리고 상기 과정들(S530 또는 S535) 중 어느 하나의 수행 결과에 의거하여 대응된 스트리밍 서비스를 제공한다(S540).
상기와 같은 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같은 본 발명의 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법은 동일한 소프트웨어를 요청한 다수의 클라이언트에게 개별적인 서비스 제공자를 생성하는 기존 방식과 달리 소수의 서비스 제공자로 다수의 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하므로, 서비스 제공자 유지를 위한 프로세스 시간, 메모리 영역 및 디스크에 요청하는 입출력 부하를 최소화하여 서버의 시스템 부하를 줄이고, 결과적으로 하나의 서버에서 서비스 가능한 클라이언트의 수를 증가시키는 효과가 있다.

Claims (13)

  1. 스트리밍 서비스 가능한 소프트웨어들 각각에 대하여 실행코드 및 페이지 형태의 파일을 저장하는 저장부;
    스트리밍 서비스 가능한 소프트웨어들 중 하나 이상에 대하여 대응된 소프트웨어 스트리밍 서비스를 제공하기 위한, 하나 이상의 서비스 제공자를 포함하는 전송부;
    하나 이상의 클라이언트들로부터 소프트웨어 스트리밍 서비스를 요청받는 입력부;
    상기 입력부를 통해 서비스 요청된 소프트웨어 정보를 전달받고 분석하여 서비스 요청된 소프트웨어를 식별하는 분석부; 및
    상기 분석부를 통해 식별된 소프트웨어에 대응되는 서비스 제공자를 획득하여, 소프트웨어 스트리밍 서비스를 제공하도록 하는 관리부를 포함하고,
    상기 관리부는
    상기 식별된 소프트웨어에 대응되는 서비스 제공자를 획득하면, 상기 대응되는 서비스 제공자의 클라이언트 목록에 서비스 요청한 클라이언트 정보를 추가하여, 상기 대응되는 서비스 제공자를 통해 상기 서비스 요청한 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하도록 함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 장치.
  2. 제1항에 있어서, 상기 분석부는
    상기 입력부로부터 스트리밍 서비스 요청된 소프트웨어의 식별정보를 전달받고 그에 의거하여 스트리밍 요청된 소프트웨어를 식별함을 특징으로 하는 소프트웨 어 스트리밍 서비스 제공 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 관리부는
    상기 식별된 소프트웨어에 대응되는 서비스 제공자가 없으면, 상기 요청된 소프트웨어 스트리밍 서비스를 제공하기 위한 신규 서비스 제공자를 생성한 후 상기 신규 서비스 제공자를 통해 상기 서비스 요청한 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하도록 함을 특징으로 하는 함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 장치.
  6. 제2항에 있어서, 상기 관리부는
    서비스 제공자별로 각 서비스 제공자가 스트리밍 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 장치.
  7. 제2항에 있어서, 상기 관리부는
    요청되지 않은 소프트웨어에 대하여 소프트웨어 별로 서비스 제공자를 미리 생성하여 관리함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 장치.
  8. 스트리밍 서비스 가능한 소프트웨어들 각각에 대한 정보를 관리하는 제1 과정;
    클라이언트로부터의 소프트웨어 스트리밍 서비스 요청에 응답하여 상기 소프트웨어를 분석하는 제2 과정;
    서비스 제공자 관리 정보를 검색하여 상기 서비스 요청된 소프트웨어를 서비스할 수 있는 서비스 제공자를 획득하는 제3 과정;
    상기 획득된 서비스 제공자의 클라이언트 목록에 상기 클라이언트의 정보를 추가하는 제4과정; 및
    상기 획득된 서비스 제공자를 통해 상기 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하는 제5과정을 구비하는 소프트웨어 스트리밍 서비스 제공 방법.
  9. 제8항에 있어서, 상기 제1 과정은
    서비스 제공자별로 각 서비스 제공자가 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정하여 관리함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
  10. 제8항에 있어서, 상기 제1 과정은
    요청되지 않은 소프트웨어에 대하여 소프트웨어 별로 서비스 제공자를 미리 생성하여 관리함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
  11. 제8항에 있어서, 상기 제1 과정은
    상기 소프트웨어 각각에 대하여 실행코드 및 페이지 형태의 파일 정보를 저장함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
  12. 삭제
  13. 제8항에 있어서,
    상기 획득된 서비스 제공자가 없으면, 상기 서비스 요청된 소프트웨어를 서비스할 수 있는 서비스하기 위한 신규 서비스 제공자를 생성한 후, 상기 신규 서비스 제공자를 통해 상기 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하는 제 6과정을 더 구비하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
KR1020050119127A 2005-12-07 2005-12-07 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법 KR100757892B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050119127A KR100757892B1 (ko) 2005-12-07 2005-12-07 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050119127A KR100757892B1 (ko) 2005-12-07 2005-12-07 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20070059806A KR20070059806A (ko) 2007-06-12
KR100757892B1 true KR100757892B1 (ko) 2007-09-11

Family

ID=38356071

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050119127A KR100757892B1 (ko) 2005-12-07 2005-12-07 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100757892B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004105353A2 (en) 2003-05-19 2004-12-02 Hewlett-Packard Development Company, L.P. Method for adapting service location placement based on recent data received from service nodes and actions of the service location manager
WO2005018158A1 (en) 2003-08-15 2005-02-24 British Telecommunications Public Limited Company System and method for selecting data providers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004105353A2 (en) 2003-05-19 2004-12-02 Hewlett-Packard Development Company, L.P. Method for adapting service location placement based on recent data received from service nodes and actions of the service location manager
WO2005018158A1 (en) 2003-08-15 2005-02-24 British Telecommunications Public Limited Company System and method for selecting data providers

Also Published As

Publication number Publication date
KR20070059806A (ko) 2007-06-12

Similar Documents

Publication Publication Date Title
US10812358B2 (en) Performance-based content delivery
US9729557B1 (en) Dynamic throttling systems and services
US10210342B2 (en) Centralized throttling service
US8086634B2 (en) Method and apparatus for improving file access performance of distributed storage system
US10027739B1 (en) Performance-based content delivery
US8255557B2 (en) Partial object distribution in content delivery network
CN102771088B (zh) 利用聚集的源自多个计算机的dns信息来检测异常的dns名称解析的方法和装置
KR101777392B1 (ko) 중앙 서버 및 이에 의한 사용자 음성 처리 방법
US9462077B2 (en) System, method, and circuit for servicing a client data service request
CN110113188B (zh) 跨子域通信运维方法、总运维服务器和介质
US7886053B1 (en) Self-management of access control policy
EP2942926A1 (en) Accountable content stores for information centric networks
EP1655919B1 (en) Analysis method for user request
US8495221B1 (en) Targeted and dynamic content-object storage based on inter-network performance metrics
US9910858B2 (en) System and method for providing contextual analytics data
KR102059384B1 (ko) 클라우드 스트리밍 서버 관리 시스템, 클라우드 스트리밍 서버 관리 방법 및 이를 위한 장치
US20120120436A1 (en) Remote printing
US8935285B2 (en) Searchable and size-constrained local log repositories for tracking visitors' access to web content
JP2019049905A (ja) デバイス連携サーバおよびデバイス連携プログラム
KR100757892B1 (ko) 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법
WO2009064126A2 (en) Method for load balancing of server and apparatus for thereof
CN109729375B (zh) 一种交互数据分发控制方法、装置、设备及存储介质
US20130024569A1 (en) Information processing apparatus and information processing method
JP2003015939A (ja) 情報提供方法及び情報提供装置
US20030236863A1 (en) Just-in-time multicasting

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 Publication of correction
FPAY Annual fee payment

Payment date: 20120831

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee