KR100798928B1 - 소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치 - Google Patents
소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching 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
도 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단계;상기 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍 여부를 검사하는 제2 단계;상기 기능별 유닛이 스트리밍 되지 않은 경우, 상기 기능별 유닛에 해당하는 실행 페이지 각각에 대한 스트리밍 여부를 검사하는 제3단계;상기 검사결과, 스트리밍 되지 않은 실행 페이지들로 스트리밍 목록을 구성하는 제4단계;상기 구성된 스트리밍 목록을 스트리밍 서버로 전송하여 스트리밍 요청하는 제5 단계; 및상기 스트리밍 서버로부터 전송된 실행 페이지들을 수신하여 저장하는 제 6 단계를 포함하는 기능 단위 소프트웨어 제공 방법.
- 제 1항에 있어서,상기 요청된 기능별 유닛에 해당하는 모든 실행 페이지가 스트리밍되어 저장 된 경우 해당 기능별 유닛의 스트리밍 상태값을 스트리밍 완료 상태로 설정하는 제7 단계를 더 포함하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
- 제1항에 있어서,응용 소프트웨어의 기능 수행 도중에 페이지 폴트가 발생하면, 해당 페이지가 스트리밍되어 저장되어 있는 지를 확인하는 단계;상기에서 해당 페이지가 저장되어 있지 않은 경우, 상기 페이지가 상기 스트리밍 목록에 포함되어 있는 지를 확인하는 단계; 및상기에서 해당 페이지가 스트리밍 목록에 포함되어 있으면, 해당 스트리밍 목록이 스트리밍되기를 기다리고, 스트리밍 목록에 포함되어 있지 않으면, 해당 페이지만을 스트리밍 서버에 스트리밍 요청하는 단계를 더 포함하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
- 제 1항에 있어서,상기 제1 단계는 해당 응용 소프트웨어의 라이브러리를 대체 또는 추가하여 응용 소프트웨어의 수정없이, 사용자가 요청한 기능을 파악하여 기능별 유닛 식별자를 생성하도록 하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
- 제 1항에 있어서,상기 제6단계는 해당 스트리밍 목록의 실행 페이지들을 비동기적으로 수신하는 것을 특징으로 하는 기능 단위의 소프트웨어 제공 방법.
- 응용 소프트웨어에 대한 사용자의 기능 요청을 가로채어 요청된 기능을 식별하는 기능별 유닛 식별자를 생성하는 기능 인지 라이브러리;상기 기능 인지 라이브러리가 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍을 상기 스트리밍 서버에 요청하고, 상기 스트리밍 서버로부터 전송된 기능별 유닛에 속하는 실행 페이지들을 수신하는 스트리밍 제어부; 및스트리밍된 실행 페이지들이 저장되는 로컬 캐시를 포함하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
- 제 6항에서, 상기 스트리밍 제어부는기능별 유닛의 스트리밍 상태를 관리하며, 상기 기능 인지 라이브러리에서 생성된 기능별 유닛 식별자에 대응하는 기능별 유닛의 스트리밍 상태를 확인하여 스트리밍 완료상태가 아니면 해당 기능별 유닛에 속하는 실행 페이지중에서 스트리밍되지 않은 실행 페이지들로 스트리밍 목록을 구성하여 스트리밍 서버에 스트리밍 을 요청하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
- 제 7항에서, 상기 스트리밍 제어부는스트리밍 서버로부터 수신된 실행 페이지를 상기 스트리밍 목록에서 삭제하고, 상기 스트리밍 목록의 모든 실행 페이지가 삭제되면 해당 기능별 유닛을 스트리밍 완료 상태로 설정하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
- 제 6항에 있어서,상기 스트리밍 제어부는 상기 로컬 캐시를 관리하여, 수신된 실행 페이지를 로컬 캐시에 저장하는 캐시 관리자를 포함하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
- 제 8항에 있어서,운영 체제에 포함되어 상기 응용 소프트웨어에서 요청된 페이지 폴트 및 파일 처리 요청을 처리하는 스트리밍 파일 시스템 필터를 포함하는 것을 특징으로 하 는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
- 제 10 항에 있어서, 상기 스트리밍 파일 시스템 필터는상기 응용 소프트웨어의 실행 도중에 페이지 폴트 발생시, 해당하는 실행 페이지가 상기 로컬 캐시에 저장되어 있지 않으면 상기 스트리밍 제어부에 해당 페이지에 대한 스트리밍을 요청한 후 스트리밍 제어부로부터 해당 페이지를 제공받는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
- 제 11항에 있어서,상기 스트리밍 제어부는, 상기 스트리밍 파일 시스템 필터로부터 스트리밍 요청시, 해당 페이지가 상기 스트리밍 목록에 포함되어 있는 지를 확인하여, 포함되어 있으면 상기 스트리밍 목록의 스트리밍 시까지 대기하고 포함되어 있지 않으면 해당 페이지에 대한 스트리밍을 스트리밍 서버에 요청하는 것을 특징으로 하는 소프트웨어 스트리밍 시스템에서의 기능 단위 소프트웨어 제공 장치.
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)
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)
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)
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 | 한국전자통신연구원 | 피투피 기반의 스트리밍 서비스 제공 방법 및 장치, 이를이용한 스트리밍 서비스 시스템 |
-
2006
- 2006-12-07 US US12/088,073 patent/US20080256178A1/en not_active Abandoned
- 2006-12-07 KR KR1020060123734A patent/KR100798928B1/ko active IP Right Grant
Patent Citations (2)
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 |