KR100798928B1 - 소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치 - Google Patents

소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치 Download PDF

Info

Publication number
KR100798928B1
KR100798928B1 KR1020060123734A KR20060123734A KR100798928B1 KR 100798928 B1 KR100798928 B1 KR 100798928B1 KR 1020060123734 A KR1020060123734 A KR 1020060123734A KR 20060123734 A KR20060123734 A KR 20060123734A KR 100798928 B1 KR100798928 B1 KR 100798928B1
Authority
KR
South Korea
Prior art keywords
streaming
function
unit
page
software
Prior art date
Application number
KR1020060123734A
Other languages
English (en)
Other versions
KR20070061412A (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 US12/088,073 priority Critical patent/US20080256178A1/en
Priority to PCT/KR2006/005295 priority patent/WO2007066993A1/en
Publication of KR20070061412A publication Critical patent/KR20070061412A/ko
Application granted granted Critical
Publication of KR100798928B1 publication Critical patent/KR100798928B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • 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
    • 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
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 방법 및 장치에 관한 것으로, 응용에 대한 사용자의 기능 요청을 가로채어 요청된 기능에 대한 기능별 유닛 식별자를 생성하는 제1단계; 상기 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍 여부를 검사하는 제2단계; 상기 기능별 유닛이 스트리밍 완료 상태가 아닌 경우, 상기 기능별 유닛에 해당하는 실행 페이지들 각각에 대한 스트리밍 여부를 검사하는 제3단계; 상기 검사결과, 스트리밍 되지 않은 실행 페이지들로 스트리밍 목록을 구성하는 제4단계; 상기 구성된 스트리밍 목록을 스트리밍 서버로 전달하여 스트리밍 요청하는 제5단계; 및 상기 요청에 의해 스트리밍 서버로부터 전송된 실행 페이지들을 수신하여 저장하는 제6단계를 포함하여 이루어진다.
스트리밍 서비스, 응용소프트웨어, 스트리밍 클라이언트

Description

소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어 제공 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING SOFTWARE BY FUNCTIONAL UNITS IN A SOFTWARE STREAMING SYSTEM}
도 1은 일반적인 소프트웨어 스트리밍 서비스 시스템의 구성도,
도 2는 본 발명에 의한 스트리밍 클라이언트의 상세 구성도,
도 3은 본 발명에 있어서 기능별 유닛의 구성을 설명하기 위한 도면,
도 4는 본 발명에 따른 스트리밍 클라이언트에서의 동작 흐름도, 그리고,
도 5는 본 발명에 따른 스트리밍 클라이언트의 스트리밍 파일 시스템 필터에서의 동작 흐름도이다.
본 발명은 소프트웨어 스트리밍 서비스에 관한 것으로, 더욱 자세하게는 소프트웨어 스트리밍 시스템에서 소프트웨어의 기능 수행에 필요한 실행 페이지를 한번에 스트리밍하는 기능 단위 소프트웨어 제공 방법 및 장치에 관한 것이다.
소프트웨어 스트리밍 서비스는 스트리밍을 통하여 스트리밍 서버에 존재하는 소프트웨어 실행 코드를 클라이언트에서 실행되도록 하는 서비스 기술이다.
도 1은 소프트웨어 스트리밍 서비스를 제공하기 위한 스트리밍 서버와 클라이언트 사이의 제어 데이터 및 응용 소프트웨어 실행에 관련된 스트리밍 데이터의 전송 과정을 간략하게 도시한 것이다.
도 1을 참조하면, 소프트웨어 스트리밍 서비스를 위해 스트리밍 클라이언트(110)와 스트리밍 서버(120)는 인터넷과 같은 통신망을 통하여 연결되어 있다.
스트리밍 클라이언트(110)는 스트리밍 서비스를 제공받는 사용자 단말에 구비되는 것으로 응용 소프트웨어의 실행에 필요한 실행코드 요청을 스트리밍 서버(120)에 전송한다.
스트리밍 서버(120)는 스트리밍 클라이언트(110)로부터 전송된 응용 소프트웨어의 실행코드 요청에 따라 응용 소프트웨어의 전체 실행 코드 (130)에서 요청된 실행코드 부분, 즉, 실행 페이지를 찾아 인터넷을 통해 클라이언트(110)로 전송한다.
스트리밍 클라이언트(110)는 이러한 스트리밍 요청에 따라 수신된 응용 소프트웨어의 실행 페이지를 실행함으로써, 스트리밍 클라이언트(110)에 설치되지 않은 응용 소프트웨어를 스트리밍 클라이언트(110)에 설치된 응용 소프트웨어처럼 사용할 수 있게 한다.
 그러나, 이러한 기존의 소프트웨어 스트리밍 서비스는 실행 페이지 단위로 스트리밍이 이루어지기 때문에 응용 소프트웨어의 임의의 기능을 수행하기 위해서는 해당 기능을 수행하는데 필요한 실행 페이지의 수만큼 스트리밍 요청 및 수신 과정을 반복하여야 한다.
예를 들어, 임의의 응용 소프트웨어의 '인쇄'기능을 수행하기 위해 5개의 실행 페이지가 요구되는 경우, 스트리밍 클라이언트(110)는 인쇄기능을 실행시키기 위하여 스트리밍 서버(120)에 5 번의 스트리밍 요청 및 수신 과정을 반복하여야 한다.
이와 같이 실행 페이지단위로 스트리밍 서비스가 이루어지는 경우, 해당 기능수행을 위해 필요한 정보들의 수만큼 반복적으로 이루어지는 스트리밍 요청 및 수신과정으로 인하여 응용 소프트웨어에서 요구된 기능 수행이 그만큼 지연된다는 문제점이 있다.
또한, 응용 소프트웨어에서 임의의 기능수행을 위해 필요한 정보들의 개수만큼 반복적으로 스트리밍 요청 및 수신이 이루어지는 도중에 네트워크 고장이 발생할 경우, 일부 정보가 수신되지 못하여 소프트웨어 스트리밍 서비스가 중단될 수 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 그 목적은 소프트웨어 스트리밍 시스템에서 응용 소프트웨어에서 사용자가 사용하고자 하는 기능을 수행하는데 필요한 실행 페이지들을 한번에 스트리밍 하는 기능 단위 소프트웨어 제공 방법 및 장치를 제공하는 것이다.
상기한 목적을 달성하기 위하여, 본 발명은 스트리밍 클라이언트와 스트리밍 서버를 포함하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 방법에 있어서, 상기 스트리밍 클라이언트가, 응용 소프트웨어에 대한 사용자의 기능 요청을 가로채어 요청된 기능을 식별하는 기능별 유닛 식별자를 생성하는 제1단계; 상기 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍 여부를 검사하는 제2 단계; 상기 기능별 유닛이 스트리밍 되지 않은 경우, 상기 기능별 유닛에 해당하는 실행 페이지 각각에 대한 스트리밍 여부를 검사하는 제3단계; 상기 검사결과, 스트리밍 되지 않은 실행 페이지들로 스트리밍 목록을 구성하는 제4단계; 상기 구성된 스트리밍 목록을 스트리밍 서버로 전송하여 스트리밍 요청하는 제5단계; 및 상기 스트리밍 서버로부터 전송된 실행 페이지들을 수신하여 저장하는 제 6 단계를 포함한다.
또한, 상기한 목적을 달성하기 위한 본 발명은, 응용 소프트웨어에 대한 사용자의 기능 요청을 가로채어 요청된 기능을 식별하는 기능별 유닛 식별자를 생성하는 기능 인지 라이브러리; 상기 기능 인지 라이브러리가 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍을 상기 스트리밍 서버에 요청하고, 상기 스트리밍 서버로부터 전송된 기능별 유닛에 속하는 실행 페이지들을 수신하는 스트리밍 제어부; 스트리밍된 실행 페이지들이 저장되는 로컬 캐시; 및 운영 체제에 포함되어 상기 응용 소프트웨어에서 요청된 페이지 폴트 및 파일 처리 요청을 처리하는 스트리밍 파일 시스템 필터를 포함한다.
이하, 본 발명의 바람직한 실시형태가 첨부된 도면들을 참조하여 본 발명을 보다 상세히 설명한다. 도면들 중 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 동일한 참조 번호로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 2는 본 발명에 따른 스트리밍 클라이언트의 상세 구성도이다.
도 2를 참조하면, 본 발명에 의한 스트리밍 클라이언트(200)는, 스트리밍된 응용 소프트웨어(210)에 대한 사용자의 기능 요청을 가로채어 해당 기능에 대응하는 기능별 유닛 식별자를 생성하고 이에 대한 스트리밍을 스트리밍 제어부(240)에 요청하는 기능 인지 라이브러리(220)와, 기능별 유닛별 스트리밍 상태를 관리하며, 상기 기능 인지 라이브러리(220)로부터 요청된 기능별 유닛에 대한 스트리밍 여부를 확인한 후, 아직 스트리밍이 되지 않은 경우 해당 기능별 유닛에 포함된 실행 페이지별 스트리밍 여부를 확인하여 스트리밍되지 않은 실행 페이지들로 스트리밍 목록을 구성하고 상기 스트리밍 목록의 실행 페이지들을 한번에 스트리밍 서버(100)로부터 스트리밍받는 스트리밍 제어부(240)와, 상기 스트리밍 제어부(240)에 의해 스트리밍된 실행 페이지들을 저장하는 로컬 캐시(270)와, 상기 스트리밍된 응용 소프트웨어(210)가 실행되면서 발생하는 파일 연산이나 페이지 폴트 등을 처리하는 스트리밍 파일 시스템 필터(Streaming File System Fiter, 이하 SFSF라 한 다)(250)를 포함한다.
여기서, 기능별 유닛은 응용 소프트웨어의 임의의 기능을 실행할 때, 요구되는 실행 페이지들의 집합체를 의미하는 것으로서, 기능별 유닛별로 고유의 식별자인 기능별 유닛 식별자로 관리된다. 임의의 기능별 유닛에 포함되는 실행 페이지의 리스트는 미리 정의되어 있다고 가정한다. 기능인지 라이브러리에 의해 동일한 기능별 유닛에 대해 생성되는 기능별 유닛 식별자는 항상 동일하다.
상기 응용 소프트웨어(210)는 기능 인지 라이브러리가 링크된 일반 응용 소프트웨어이다. 상기 응용 소프트웨어(210)의 라이브러리를 상술한 기능별 유닛 식별자를 생성하는 기능을 갖도록 대체 또는 추가함으로써, 응용 프로그램의 수정없이 사용자가 요청한 기능을 파악하여 기능별 스트리밍을 수행할 수 있다.
그리고 상기 스트리밍 제어부(240)는 상기 로컬 캐시(270)를 관리하는 캐시 관리자(260)를 포함하여, 상기 캐시 관리자(260)를 통하여 스트리밍된 실행 페이지를 로컬 캐시(270)에 저장시키고, 로컬 캐시(270)에 저장된 실행 페이지들을 확인하거나 읽어와 상기 응용 소프트웨어(210)에 제공한다.
더하여, 상기 SFSF(250)는, 상기 응용 소프트웨어(210)에서 임의의 기능을 수행하는 도중에 특정 페이지에 대해서 페이지 폴트(page fault)가 발생한 경우, 상기 폴트가 발생된 페이지가 상기 로컬 캐시(270)에 저장되어 있는 지를 확인하여, 저장되지 않은 경우 상기 스트리밍 제어부(240)에 해당 실행 페이지의 스트리밍을 요청하고 그 결과 수신된 페이지를 운영체제(280)에 반환한다. 상기 스트리밍 제어부(240)는 상기 SFSF(250)로부터 특정 실행 페이지의 스트리밍 요청이 수신되 면, 현재 구성된 스트리밍 목록에 상기 실행 페이지가 포함되어 있는 지를 확인한 후 포함되어 있으면 상기 스트리밍 목록의 스트리밍 완료후에 수신된 실행 페이지를 SFSF(250)로 제공하고 그 반대인 경우 스트리밍 서버(100)에 해당 실행 페이지만을 스트리밍 요청하여 수신된 실행 페이지를 SFSF(250)에 제공한다.
상술한 바와 같이 구성된 스트리밍 클라이언트(240)는 응용 소프트웨어에서 실행할 기능에 필요한 실행 페이지들을 한번에 스트리밍 서버(100)에 요청하여 스트리밍 받을 수 있다. 이를 위하여 본 발명에 의한 스트리밍 클라이언트(200)는 응용 소프트웨어에서 수행되는 기능별로 요구되는 실행 페이지들의 묶음인 기능별 유닛을 설정하여 관리한다.
도 3은 본 발명에 적용되는 기능별 유닛을 설명하기 위한 도면이다.
도 3을 참조하여 설명하면, 응용 소프트웨어내의 특정 기능, 예를 들어, 인쇄 기능을 수행하기 위해 3개의 파일(파일 1, 파일 2, 파일 3)에 있는 실행 페이지 p2, p3, q1, r2, r5가 필요하다고 가정할 때, 상기 응용 소프트웨어에서 인쇄 기능을 수행하기 위한 기능별 유닛은 파일 1의 p2와 p3, 파일 2의 q1, 그리고 파일 3의 r2와 r5로 이루어진다. 이러한 각 기능별 유닛은 고유의 식별자로 구분되며, 상기 응용 소프트웨어(210)에 대하여 사용자가 인쇄 기능을 요청한 경우, 상기 기능인지 라이브러리(220)는 상기 인쇄 요청을 가로채어 해당 기능에 대한 기능별 유닛 식별자를 생성한 후 이를 스트리밍 제어부(240)에 전송한다.
그리고, 상기 스트리밍 클라이언트(200)내의 스트리밍 제어부(240)는 스트리 밍 서버(100)로 상기 기능별 유닛 식별자에 대응하는 기능별 유닛에 속하는 실행 페이지들 p2, p3, q1, r2, r5에 대한 스트리밍을 한번에 요청하여 전송받는다.
이때, 각 기능별로 중복되는 실행 페이지가 존재할 수 있으며, 따라서 특정 기능별 유닛의 스트리밍을 요청시 다른 기능을 수행하기 위해 이미 스트리밍받은 실행 페이지가 해당 기능별 유닛에 포함될 수 있다. 이 경우 불필요한 중복 스트리밍을 피하기 위하여, 상기 스트리밍 제어부(240)는 기능별 유닛에 속하는 실행 페이지별로 스트리밍 여부를 확인하여 상기 기능별 유닛에 속하는 실행 페이지중에서 스트리밍되지 않은 실행 페이지들만을 모아서 스트리밍 목록을 구성하고, 상기 구성된 스트리밍 목록을 스트리밍 서버(100)로 전송하여 스트리밍 받는다.
여기서, 스트리밍 제어부(240)는 하나 이상의 쓰레드나 프로세스로 동작하면서 비동기적인 파일 입출력과 서버와의 비동기적인 전송을 수행함으로써 동기적인 수행에 비해 직접적인 네트워크 대기 및 I/O 대기로 인한 성능 저하를 방지할 수 있다.
도 4는 상기 스트리밍 클라이언트(200)에 의해 이루어지는 본 발명에 따른 기능 단위 소프트웨어 제공 방법을 나타낸 흐름도이다. 도 4를 참조하여, 본 발명에 따른 기능 단위 소프트웨어 제공 방법을 동작 순서에 따라서 설명한다.
사용자에 의해 선택된 응용 소프트웨어를 소프트웨어 스트리밍 서비스에 의해서 스트리밍받아 실행할 때, 사용자가 특정 기능을 선택하면 상기 응용 소프트웨어의 기능 인지 라이브러리(220)로부터 스트리밍 제어부(240)로 선택된 기능에 해당하는 기능별 유닛의 스트리밍이 요청된다. 이때 기능별 유닛의 스트리밍 요청은, 상기 기능 인지 라이브러리(220)에서 사용자가 요청한 기능에 대한 기능별 유닛 식별자를 생성하여 전송하는 형태로 이루어진다.
상기와 같이 기능 인지 라이브러리(220)로부터 기능별 유닛의 스트리밍이 요청되면(S410, S411), 스트리밍 제어부(240)는 상기 기능별 유닛 식별자에 대응하는 기능별 유닛을 확인하여 상기 기능별 유닛의 스트리밍 여부를 검사한다(S412). 이를 위하여, 상기 스트리밍 제어부(240)는 특정 기능별 유닛의 스트리밍 완료시마다 해당 기능별 유닛의 스트리밍 상태값을 스트리밍 완료 상태로 관리하며, 상기 검사 단계(S412)는 이러한 기능별 유닛의 스트리밍 상태값이 완료 상태인지를 확인함에 의해 이루어진다.
상기 단계 S412의 검사 결과, 요청된 기능별 유닛이 스트리밍 완료된 상태인 경우, 별도의 스트리밍 요청이 불필요 하므로 다른 처리 없이 다음 요청을 대기한다.
상기 단계 S412의 검사 결과, 요청된 기능별 유닛이 스트리밍 완료 상태가 아닌 경우, 상기 기능별 유닛에 해당하는 실행 페이지들이 모두 스트리밍 완료되어 로컬캐시(270)에 저장되어 있는 지를 확인한다(S413).
상기 단계 S413의 확인 결과 해당 기능별 유닛에 속하는 모든 실행 페이지들이 로컬 캐시(270)내에 존재하면, 해당 기능의 수행을 위해 추가적인 실행 페이지 스트리밍이 불필요하므로, 단계(S417)에서 해당 기능별 유닛의 스트리밍 상태값을 완료상태로 변경한 후 다음 요청을 대기한다.
그런데 상기 단계(S413)에서, 로컬 캐시(270)에 저장되지 않은 실행 페이지 들이 존재하는 경우, 로컬 캐시(270)에 저장되어 있지 않은, 즉, 스트리밍 되지 않은 실행 페이지들을 스트리밍 목록에 등록하여 스트리밍 목록을 구성한다(S414). 그리고, 상기 구성된 스트리밍 목록을 스트리밍 서버(100)로 전송하여 한꺼번에 스트리밍 요청하여 상기 스트리밍 목록에 속하는 실행 페이지들을 한번에 스트리밍 받는다(S415). 이때 스트리밍 클라이언트(200)로부터 스트리밍 서버(100)로의 스트리밍 요청은 한번 이루어지지만, 스트리밍 서버(100)에서 스트리밍 클라이언트(200)로의 실행 페이지들의 전송은 비동기적으로 이루어질 수 있다.
상기 스트리밍 제어부(240)는 상기 요청에 의해 스트리밍 서버(100)로부터 비동기적으로 수신되는 실행 페이지들을 로컬 캐시(270)에 저장하고, 상기 로컬 캐시(270)에 저장된 실행 페이지들은 상기 스트리밍 목록에서 삭제한다(S416).
그리고, 해당 스트리밍 목록에 있는 모든 실행 페이지가 스트리밍되면, 단계(S417)에서 해당 기능별 유닛의 스트리밍 상태값을 스트리밍 완료 상태로 설정하고, 다음 요청을 대기한다.
상기에서 모든 실행 페이지들의 스트리밍이 완료된 후 로컬 캐시(270)에 저장된 해당 기능별 유닛에 속하는 실행 페이지들은 상기 스트리밍 파일 시스템 필터(250)에 의해 상기 응용 소프트웨어(210)로 제공된다.
또한, 상기 응용 소프트웨어(210)에서 스트리밍된 실행 페이지를 실행하는 동안에, 특정 실행 페이지에 대한 페이지 폴트가 발생할 수 있다. 상기 페이지 폴트에 대한 처리는 SFSF(250)에 의해 이루어지는데, 상기 SFSF(250)의 동작을 도 5를 참조하여 설명하면 다음과 같다.
상기 SFSF(250)는 페이지 폴트가 발생하면, 먼저 해당 실행 페이지가 로컬 캐시(270)내에 존재하는 지를 확인한다(S512).
상기 확인 결과, 로컬 캐시(270)내에 존재할 경우에는 로컬 캐시(270)로부터 해당 실행 페이지를 읽어와 운영 체제에 반환한다(S514, S518).
반대로 해당 실행 페이지가 로컬 캐시(270)내에 존재하지 않는 경우, 상기 SFSF(250)는 해당 페이지에 대한 스트리밍을 스트리밍 제어부(240)에 요청하고, 상기 스트리밍 제어부(240)에 의해 스트리밍된 페이지를 전달받아(S516), 상기 실행 페이지를 운영 체제(280)에 반환한다(S518).
상기 SFSF(250)의 실행 페이지 요청에 의한 스트리밍 제어부(240)은 동작은 다시 도 4를 참조하여 설명한다.
이와 같이 상기 스트리밍 제어부(240)는 단계 S410에서 상기 SFSF(250)로부터 페이지 폴트된 페이지에 대한 스트리밍 요청이 수신되는 경우, 단계S411에서 응용 소프트웨어(210)의 요청이 아니므로, 단계S418로 진행하여 상기 요청된 실행 페이지가 기존의 스트리밍 목록에 포함되어 있는 지를 확인한다.
상기 확인 결과 요청된 실행 페이지가 기존의 스트리밍 목록에 포함되어 있으면, 상기 스트리밍 목록이 스트리밍 처리될 때까지 기다려, 해당 실행 페이지의 스트리밍이 완료되면, 스트리밍된 해당 페이지를 상기 SFSF(250)에 전달한다(S419,S420). 반대로, 해당 실행 페이지가 스트리밍 목록에 포함되지 않는 경우, 상기 스트리밍 제어부(240)는 스트리밍 서버(100)에 해당 실행 페이지의 스트리밍을 요청하고(S421), 해당 실행 페이지가 스트리밍되면 수신된 실행 페이지를 상기 SFSF(250)로 전송하고, 로컬 캐시(270)에 저장한다(S422,S423).
상술한 바에 의하면, 본 발명은 소프트웨어의 기능 단위로 요구되는 실행페이지들을 한번에 스트리밍 받도록 함으로써, 스트리밍 서버와 스트리밍 클라이언트간의 통신 횟수를 줄여 스트리밍 시간을 단축하여 서비스 품질을 향상시킬 수 있는 우수한 효과가 있다. 또한 스트리밍 제어부를 스트리밍 파일 시스템 필터와 분리하여 구현함으로서 클라이언트 엔진의 포팅이 쉽고 운영 체제가 아닌 일반 프로세스인 스트리밍 제어부상에서 다양한 스트리밍 정책을 제공함으로서 다양한 서비스가 가능해진다. 더하여 기능단위로 실행 페이지들을 스트리밍받음으로써 스트리밍 서비스의 이용 도중에 네트워크 고장이 발생하더라도 제한적이지만 스트리밍된 기능별 유닛을 위주로 하여 해당 응용 소프트웨어를 사용할 수 있게 한다. 더하여, 기능 단위로 스트리밍함으로써 소프트웨어 스트리밍 서비스에 대하여 기능별 요금 부가 등과 같은 응용이 가능해진다.

Claims (12)

  1. 스트리밍 클라이언트와 스트리밍 서버를 포함하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 방법에 있어서,
    상기 스트리밍 클라이언트가, 응용 소프트웨어에 대한 사용자의 기능 요청을 가로채어 요청된 기능을 식별하는 기능별 유닛 식별자를 생성하는 제1단계;
    상기 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍 여부를 검사하는 제2 단계;
    상기 기능별 유닛이 스트리밍 되지 않은 경우, 상기 기능별 유닛에 해당하는 실행 페이지 각각에 대한 스트리밍 여부를 검사하는 제3단계;
    상기 검사결과, 스트리밍 되지 않은 실행 페이지들로 스트리밍 목록을 구성하는 제4단계;
    상기 구성된 스트리밍 목록을 스트리밍 서버로 전송하여 스트리밍 요청하는 제5 단계; 및
    상기 스트리밍 서버로부터 전송된 실행 페이지들을 수신하여 저장하는 제 6 단계를 포함하는 기능 단위 소프트웨어 제공 방법.
  2. 제 1항에 있어서,
    상기 요청된 기능별 유닛에 해당하는 모든 실행 페이지가 스트리밍되어 저장 된 경우 해당 기능별 유닛의 스트리밍 상태값을 스트리밍 완료 상태로 설정하는 제7 단계를 더 포함하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
  3. 제1항에 있어서,
    응용 소프트웨어의 기능 수행 도중에 페이지 폴트가 발생하면, 해당 페이지가 스트리밍되어 저장되어 있는 지를 확인하는 단계;
    상기에서 해당 페이지가 저장되어 있지 않은 경우, 상기 페이지가 상기 스트리밍 목록에 포함되어 있는 지를 확인하는 단계; 및
    상기에서 해당 페이지가 스트리밍 목록에 포함되어 있으면, 해당 스트리밍 목록이 스트리밍되기를 기다리고, 스트리밍 목록에 포함되어 있지 않으면, 해당 페이지만을 스트리밍 서버에 스트리밍 요청하는 단계를 더 포함하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
  4. 제 1항에 있어서,
    상기 제1 단계는 해당 응용 소프트웨어의 라이브러리를 대체 또는 추가하여 응용 소프트웨어의 수정없이, 사용자가 요청한 기능을 파악하여 기능별 유닛 식별자를 생성하도록 하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
  5. 제 1항에 있어서,
    상기 제6단계는 해당 스트리밍 목록의 실행 페이지들을 비동기적으로 수신하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
  6. 응용 소프트웨어에 대한 사용자의 기능 요청을 가로채어 요청된 기능을 식별하는 기능별 유닛 식별자를 생성하는 기능 인지 라이브러리;
    상기 기능 인지 라이브러리가 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍을 상기 스트리밍 서버에 요청하고, 상기 스트리밍 서버로부터 전송된 기능별 유닛에 속하는 실행 페이지들을 수신하는 스트리밍 제어부; 및
    스트리밍된 실행 페이지들이 저장되는 로컬 캐시를 포함하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
  7. 제 6항에서, 상기 스트리밍 제어부는
    기능별 유닛의 스트리밍 상태를 관리하며, 상기 기능 인지 라이브러리에서 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍 상태를 확인하여 스트리밍 완료상태가 아니면 해당 기능별 유닛에 속하는 실행 페이지중에서 스트리밍되지 않은 실행 페이지들로 스트리밍 목록을 구성하여 스트리밍 서버에 스트리밍 을 요청하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
  8. 제 7항에서, 상기 스트리밍 제어부는
    스트리밍 서버로부터 수신된 실행 페이지를 상기 스트리밍 목록에서 삭제하고, 상기 스트리밍 목록의 모든 실행 페이지가 삭제되면 해당 기능별 유닛을 스트리밍 완료 상태로 설정하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
  9. 제 6항에 있어서,
    상기 스트리밍 제어부는 상기 로컬 캐시를 관리하여, 수신된 실행 페이지를 로컬 캐시에 저장하는 캐시 관리자를 포함하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
  10. 제 8항에 있어서,
    운영 체제에 포함되어 상기 응용 소프트웨어에서 요청된 페이지 폴트 및 파일 처리 요청을 처리하는 스트리밍 파일 시스템 필터를 포함하는 것을 특징으로 하 는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
  11. 제 10 항에 있어서, 상기 스트리밍 파일 시스템 필터는
    상기 응용 소프트웨어의 실행 도중에 페이지 폴트 발생시, 해당하는 실행 페이지가 상기 로컬 캐시에 저장되어 있지 않으면 상기 스트리밍 제어부에 해당 페이지에 대한 스트리밍을 요청한 후 스트리밍 제어부로부터 해당 페이지를 제공받는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
  12. 제 11항에 있어서,
    상기 스트리밍 제어부는, 상기 스트리밍 파일 시스템 필터로부터 스트리밍 요청시, 해당 페이지가 상기 스트리밍 목록에 포함되어 있는 지를 확인하여, 포함되어 있으면 상기 스트리밍 목록의 스트리밍 시까지 대기하고 포함되어 있지 않으면 해당 페이지에 대한 스트리밍을 스트리밍 서버에 요청하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
KR1020060123734A 2005-12-08 2006-12-07 소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치 KR100798928B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/088,073 US20080256178A1 (en) 2005-12-08 2006-12-07 Method and Apparatus for Providing Software by Functional Units in a Software Streaming System
PCT/KR2006/005295 WO2007066993A1 (en) 2005-12-08 2006-12-07 Method and apparatus for providing software by functional units in a software streaming system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050120156 2005-12-08
KR20050120156 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061412A KR20070061412A (ko) 2007-06-13
KR100798928B1 true KR100798928B1 (ko) 2008-01-29

Family

ID=38357287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060123734A KR100798928B1 (ko) 2005-12-08 2006-12-07 소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치

Country Status (2)

Country Link
US (1) US20080256178A1 (ko)
KR (1) KR100798928B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942695B1 (ko) * 2006-12-04 2010-02-16 한국전자통신연구원 클라이언트 시스템 및 그의 소프트웨어 버전 관리 방법
KR101694400B1 (ko) * 2014-04-18 2017-01-09 에스케이텔레콤 주식회사 실시간 방송 컨텐츠 전송 방법 및 이를 위한 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010037399A1 (en) * 1998-07-22 2001-11-01 Dan Eylon Method and system for streaming software applications to a client
US20050193139A1 (en) * 1997-06-16 2005-09-01 Jeffrey Vinson Software streaming system and method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168797A (en) * 1992-05-11 1992-12-08 Wang Yiu Te Reciprocally vacuumized and pressurized multi-purpose food processing apparatus
US5281428A (en) * 1993-03-31 1994-01-25 Morgan Arthur I Method and apparatus for treating and packaging raw meat
US5593714A (en) * 1994-12-06 1997-01-14 Hirsch; Gerald P. Method of pressure preservation of food products
US5727220A (en) * 1995-11-29 1998-03-10 International Business Machines Corporation Method and system for caching and referencing cached document pages utilizing a presentation data stream
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
US20010044850A1 (en) * 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US6245294B1 (en) * 1998-12-17 2001-06-12 The United States Of America As Represented By The Secretary Of Agriculture Method and apparatus for surface treatment of materials
US6660310B2 (en) * 2000-05-18 2003-12-09 American Moxie Llc Method to infuse fresh fruits and vegetables with an agent
US7043524B2 (en) * 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US7247330B2 (en) * 2002-07-23 2007-07-24 Kraft Foods Holdings, Inc. Method for controlling microbial contamination of a vacuum-sealed food product
US7941554B2 (en) * 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
US7505172B2 (en) * 2003-10-31 2009-03-17 Hewlett-Packard Development Company, L.P. Method and systems for processing print jobs
KR100587532B1 (ko) * 2004-12-07 2006-06-08 한국전자통신연구원 스트리밍 서비스용 응용 소프트웨어 제작 장치 및 방법과네트워크 고장감내를 지원하는 소프트웨어 스트리밍서비스 제공 시스템 및 방법
KR100823730B1 (ko) * 2005-12-07 2008-04-21 한국전자통신연구원 피투피 기반의 스트리밍 서비스 제공 방법 및 장치, 이를이용한 스트리밍 서비스 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050193139A1 (en) * 1997-06-16 2005-09-01 Jeffrey Vinson Software streaming system and method
US20010037399A1 (en) * 1998-07-22 2001-11-01 Dan Eylon Method and system for streaming software applications to a client

Also Published As

Publication number Publication date
US20080256178A1 (en) 2008-10-16
KR20070061412A (ko) 2007-06-13

Similar Documents

Publication Publication Date Title
JP5191062B2 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
CN107209710B (zh) 节点系统、服务器设备、缩放控制方法和程序
JP5391601B2 (ja) 資源転送システム、資源転送方法、情報処理装置及びコンピュータプログラム
TWI344090B (en) Management of a scalable computer system
US8892514B2 (en) Multi-path replication in databases
US20090187668A1 (en) Protocol Independent Server Replacement and Replication in a Storage Area Network
JP5602592B2 (ja) ネットワークシステム、サーバ、ログ登録方法、及び、プログラム
JPWO2010116676A1 (ja) サービス提供装置、サービス提供システム、サービス提供装置のデータ処理方法およびコンピュータプログラム
CN110427324B (zh) 联调系统、联调方法、计算机设备和存储介质
JP2011060035A (ja) アプリケーションデプロイシステム、アプリケーションデプロイ方法及びプログラム
US8682954B2 (en) Replication in a network environment
JP6405255B2 (ja) 通信システム、キュー管理サーバ、及び、通信方法
CN105373563B (zh) 数据库切换方法及装置
KR100798928B1 (ko) 소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치
US20100023950A1 (en) Workflow processing apparatus
KR20200048633A (ko) 소프트웨어 자동 테스트 시스템 및 방법
US20140365430A1 (en) Information processing apparatus, system, and control method
CN107734050A (zh) 一种负载机分配方法、计算设备及负载机分配系统
KR102137217B1 (ko) 비대칭 파일 시스템의 데이터 복제 방법
CN110445580A (zh) 数据发送方法及装置、存储介质、电子装置
US20220365832A1 (en) System to facilitate transition to microservices
CN112653598B (zh) 自动化测试方法、装置、设备及可读存储介质
US20220342579A1 (en) Memory migration method, apparatus, and computing device
WO2014203728A1 (ja) メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム
CN113032477A (zh) 基于gtid的长距离数据同步方法、装置及计算设备

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20111208

Year of fee payment: 20