KR100757892B1 - 소프트웨어 스트리밍 서비스 제공 장치 및 그 방법 - Google Patents
소프트웨어 스트리밍 서비스 제공 장치 및 그 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000008570 general process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment 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
도 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항에 있어서, 상기 분석부는상기 입력부로부터 스트리밍 서비스 요청된 소프트웨어의 식별정보를 전달받고 그에 의거하여 스트리밍 요청된 소프트웨어를 식별함을 특징으로 하는 소프트웨 어 스트리밍 서비스 제공 장치.
- 삭제
- 삭제
- 제1항에 있어서, 상기 관리부는상기 식별된 소프트웨어에 대응되는 서비스 제공자가 없으면, 상기 요청된 소프트웨어 스트리밍 서비스를 제공하기 위한 신규 서비스 제공자를 생성한 후 상기 신규 서비스 제공자를 통해 상기 서비스 요청한 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하도록 함을 특징으로 하는 함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 장치.
- 제2항에 있어서, 상기 관리부는서비스 제공자별로 각 서비스 제공자가 스트리밍 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 장치.
- 제2항에 있어서, 상기 관리부는요청되지 않은 소프트웨어에 대하여 소프트웨어 별로 서비스 제공자를 미리 생성하여 관리함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 장치.
- 스트리밍 서비스 가능한 소프트웨어들 각각에 대한 정보를 관리하는 제1 과정;클라이언트로부터의 소프트웨어 스트리밍 서비스 요청에 응답하여 상기 소프트웨어를 분석하는 제2 과정;서비스 제공자 관리 정보를 검색하여 상기 서비스 요청된 소프트웨어를 서비스할 수 있는 서비스 제공자를 획득하는 제3 과정;상기 획득된 서비스 제공자의 클라이언트 목록에 상기 클라이언트의 정보를 추가하는 제4과정; 및상기 획득된 서비스 제공자를 통해 상기 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하는 제5과정을 구비하는 소프트웨어 스트리밍 서비스 제공 방법.
- 제8항에 있어서, 상기 제1 과정은서비스 제공자별로 각 서비스 제공자가 서비스 중인 소프트웨어의 크기 정보 및 요구 대역폭에 따라 해당 서비스 제공자가 관리 가능한 최대 클라이언트 수를 설정하여 관리함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
- 제8항에 있어서, 상기 제1 과정은요청되지 않은 소프트웨어에 대하여 소프트웨어 별로 서비스 제공자를 미리 생성하여 관리함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
- 제8항에 있어서, 상기 제1 과정은상기 소프트웨어 각각에 대하여 실행코드 및 페이지 형태의 파일 정보를 저장함을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
- 삭제
- 제8항에 있어서,상기 획득된 서비스 제공자가 없으면, 상기 서비스 요청된 소프트웨어를 서비스할 수 있는 서비스하기 위한 신규 서비스 제공자를 생성한 후, 상기 신규 서비스 제공자를 통해 상기 클라이언트에게 소프트웨어 스트리밍 서비스를 제공하는 제 6과정을 더 구비하는 것을 특징으로 하는 소프트웨어 스트리밍 서비스 제공 방법.
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)
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 |
-
2005
- 2005-12-07 KR KR1020050119127A patent/KR100757892B1/ko not_active IP Right Cessation
Patent Citations (2)
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 |