KR100788693B1 - 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치 - Google Patents

원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치 Download PDF

Info

Publication number
KR100788693B1
KR100788693B1 KR1020060042617A KR20060042617A KR100788693B1 KR 100788693 B1 KR100788693 B1 KR 100788693B1 KR 1020060042617 A KR1020060042617 A KR 1020060042617A KR 20060042617 A KR20060042617 A KR 20060042617A KR 100788693 B1 KR100788693 B1 KR 100788693B1
Authority
KR
South Korea
Prior art keywords
user interface
server
remote user
rui
state information
Prior art date
Application number
KR1020060042617A
Other languages
English (en)
Other versions
KR20070075233A (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 EP07100066.5A priority Critical patent/EP1808789B1/en
Priority to EP10173160.2A priority patent/EP2256646B1/en
Priority to JP2007003885A priority patent/JP5122825B2/ja
Priority to US11/652,489 priority patent/US9094369B2/en
Priority to CN2007100003565A priority patent/CN101001260B/zh
Publication of KR20070075233A publication Critical patent/KR20070075233A/ko
Application granted granted Critical
Publication of KR100788693B1 publication Critical patent/KR100788693B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/2818Controlling appliance services of a home automation network by calling their functionalities from a device located outside both the home and the home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/282Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home

Abstract

본 발명은 UPnP(Universal Plug and Play) 환경에서의 원격 사용자 인터페이스를 복구하는 장치 및 방법에 관한 것으로, RUI 클라이언트는 웹페이지의 리로드(reload) 없이 HTTP 요청을 처리하는 HTTP 오브젝트를 이용하여 원격 사용자 인터페이스의 상태 정보의 저장을 외부의 스토리지 서버에 요청하고, 이후 이 곳에 저장된 상태 정보를 이용하여 원격 사용자 인터페이스의 이전 상태를 복구함으로서 UPnP에서의 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 과정이 원격 사용자 인터페이스의 상태 정보를 저장하지 않는 스테이트리스 특성을 가진 HTTP(Hypertext Transfer Protocol)를 기반으로 하는 원격 프로토콜 모델에도 적용될 수 있다

Description

원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 방법 및 장치 {Method and apparatus for storing and restoring a state information of remote user interface}
도 1은 종래 UPnP(Universal Plug and Play) 기반의 원격 사용자 인터페이스 네트워크 시스템의 구성도이다.
도 2는 종래 UPnP에서의 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 과정을 도시한 도면이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 UPnP 기반의 원격 사용자 인터페이스 네트워크 시스템의 구성도이다.
도 4는 본 발명의 바람직한 일 실시예에 따른 RUI 클라이언트의 구성도이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 SS 핸들러의 인터페이스를 도시한 도면이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 TCP 커넥션 오브젝트의 인터페이스를 도시한 도면이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 RUI 서버의 구성도이다.
도 8a-8b는 본 발명의 바람직한 일 실시예에 따른 세이버블 페이지의 구성도이다.
도 9a-9b는 도 8a-8b에 도시된 세이버블 페이지의 다른 예를 도시한 도면이다.
도 10은 본 발명의 바람직한 일 실시예에 따른 SS 서버의 구성도이다.
도 11은 본 발명의 바람직한 일 실시예에 따른 GETSTATES 요청 메시지의 포맷을 도시한 도면이다.
도 12는 본 발명의 바람직한 일 실시예에 따른 GETSTATES 응답 메시지를 도시한 도면이다.
도 13은 본 발명의 바람직한 일 실시예에 따른 SAVE 요청 메시지를 도시한 도면이다.
도 14는 본 발명의 바람직한 일 실시예에 따른 복구 페이지 요청 메시지의 구성도이다.
도 15는 본 발명의 바람직한 일 실시예에 따른 복구 페이지 응답 메시지의 구성도이다.
도 16은 본 발명의 바람직한 일 실시예에 따른 복구 요청 메시지의 구성도이다.
도 17은 본 발명의 바람직한 일 실시예에 따른 복구 응답 문서에 해당하는 세이버블 페이지를 도시한 도면이다.
도 18은 본 발명의 바람직한 일 실시예에 따른 원격 사용자 인터페이스 상태 정보의 저장 방법의 흐름도이다.
도 19는 본 발명의 바람직한 일 실시예에 따른 원격 사용자 인터페이스 상태 정보의 복구 방법의 흐름도이다.
도 20은 도 7에 도시된 RUI 서버(7)와 도 10에 도시된 SS 서버(10)의 기능을 하나로 통합한 장치의 구성도이다.
본 발명은 원격 사용자 인터페이스(Remote User Interface, RUI)의 상태 정보를 복구하는 장치 및 방법에 관한 것으로, 특히 UPnP(Universal Plug and Play) 환경에서의 원격 사용자 인터페이스를 복구하는 장치 및 방법에 관한 것이다.
도 1은 종래 UPnP(Universal Plug and Play) 기반의 원격 사용자 인터페이스 네트워크 시스템의 구성도이다.
도 1을 참조하면, 종래 UPnP 기반의 원격 사용자 인터페이스 네트워크 시스템은 RUI CP(Control Point)(11), RUI 클라이언트(12) 및 RUI 서버(13)로 구성된다. 여기에서, RUI CP(11)는 원격 사용자 인터페이스를 지원하는 UPnP CP에 해당하고, RUI 클라이언트(12) 및 RUI 서버(13)는 원격 사용자 인터페이스를 지원하는 UPnP CD(Controlled Device)에 해당한다.
UPnP에 따라, RUI CP(11)는 RUI 클라이언트(12) 및 RUI 서버(13)를 발견하고 제어한다. RUI CP(11)의 제어에 의해 연결된 RUI 클라이언트(12) 및 RUI 서버(13)는 RDP(Remote Desktop Protocol), XRT(Extended Remoting Protocol) 등과 같은 아웃 오브 밴드 원격 프로토콜에 따라 원격 사용자 인터페이스를 통한 요청 및 응답 을 처리한다.
도 2는 종래 UPnP에서의 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 과정을 도시한 도면이다.
도 2를 참조하면, 종래 UPnP에서의 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 과정은 다음과 같은 단계들로 구성된다. 특히, 이 과정은 RUI 서버(24)와의 연결을 RUI 클라이언트 1(22)로부터 RUI 클라이언트 2(23)로 옮기는 경우에 관한 것이다.
201 단계에서 RUI CP(21)는 RUI 클라이언트 1(22)로 GetCurrentConnection()을 호출함으로서 현재 진행 중인 원격 사용자 인터페이스 연결들을 검색하고, 이것으로부터 RUI 서버(24)와의 연결을 알아낸다.
202 단계에서 RUI CP(21)는 RUI 서버(24)로 SetUILifetime()을 호출함으로서 RUI 서버(24)가 현재 진행 중인 원격 사용자 인터페이스 연결의 상태를 일정 시간 유지하도록 지시한다.
203 단계에서 RUI CP(21)는 RUI 클라이언트 1(22)로 Disconnect()를 호출함으로서 현재 진행 중인 원격 사용자 인터페이스 연결을 종료시킨다.
204 단계에서 RUI CP(21)는 RUI 클라이언트 2(23)로 Connect()를 호출함으로서 202 단계에서의 지시에 따라 유지된 상태를 갖는 원격 사용자 인터페이스의 연결을 진행시킨다.
그런데, 상기된 바와 같이, 도 2에 도시된 종래 기술은 원격 사용자 인터페이스의 모든 상태 정보가 RUI 서버에 모두 저장되는 원격 프로토콜 모델에 대해서 만 적용될 수 있다. 그런데, HTTP(Hypertext Transfer Protocol)를 기반으로 하는 원격 프로토콜 모델의 경우에는 HTTP의 스테이트리스(stateless) 특성으로 인해, 어느 하나의 요청과 응답을 처리하는 트랜잭션(transaction)이 완료되면 원격 인터페이스의 상태 정보가 저장되지 않고 사라지기 때문에 대부분의 상태 정보는 RUI 클라이언트가 관리한다.
따라서, 종래 UPnP에서의 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 과정은 원격 사용자 인터페이스의 모든 상태 정보가 RUI 서버에 모두 저장되는 원격 프로토콜 모델인 RDP, XRT 등에는 적용될 수 있지만, 대부분의 상태 정보를 RUI 클라이언트가 관리하는 원격 프로토콜 모델인 HTTP에는 적용될 수 없다는 문제점이 있었다. 특히, 바이너리(binary) 프로토콜 기반의 RDP, XRT 등은 HTTP에 비해 보다 넓은 네트워크 대역폭을 필요로 하기 때문에 HTTP 기반의 원격 사용자 인터페이스가 널리 사용되고 있음에 따라 상기된 문제점은 매우 중요한 이슈로 부각되고 있다.
본 발명이 이루고자 하는 기술적 과제는 UPnP에서의 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 과정이 원격 사용자 인터페이스의 상태 정보를 저장하지 않는 스테이트리스 특성을 가진 HTTP를 기반으로 하는 원격 프로토콜 모델에도 적용될 수 있도록 하는 방법 및 장치를 제공하는데 있다. 또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른, 서버로부터 원격 사용자 인터페이스를 제공받은 클라이언트에서의 상기 원격 사용자 인터페이스의 상태 정보를 저장할 것을 요청하는 방법은 상기 원격 사용자 인터페이스의 리로드(reload) 없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상태 정보를 획득하는 단계; 및 상기 획득된 상태 정보의 저장을 요청하는 단계를 포함한다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 원격 사용자 인터페이스의 상태 정보를 저장할 것을 요청하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른, 서버에 의해 제공된 원격 사용자 인터페이스를 이용하는 클라이언트에서의 상기 원격 사용자 인터페이스의 상태 정보를 저장할 것을 요청하는 장치는 상기 상태 정보를 저장할 스토리지를 제공하는 스토리지 서버의 정보를 획득하는 RUI CP(Remote User Interface Control Point) 모듈; 및 상기 원격 사용자 인터페이스의 리로드 없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 RUI CP 모듈에 의해 획득된 스토리지 서버의 정보를 기반으로 상기 스토리지 서버에 상기 상태 정보의 저장을 요청하는 웹브라우저 모듈을 포함한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른, 서버로부터 원격 사용자 인터페이스를 제공받은 클라이언트에서의 상기 원격 사용자 인터페이스 의 상태 정보를 복구하는 방법은 상기 원격 사용자 인터페이스의 리로드없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상태 정보를 획득하는 단계; 및 상기 획득된 상태 정보를 상기 원격 사용자 인터페이스에 반영하는 단계를 포함한다.
상기 또 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 원격 사용자 인터페이스의 상태 정보를 복구하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른, 서버로부터 원격 사용자 인터페이스를 제공받은 클라이언트에서의 상기 원격 사용자 인터페이스의 상태 정보를 복구하는 장치는 상기 상태 정보를 저장한 스토리지를 제공하는 스토리지 서버의 정보를 획득하는 RUI CP 모듈; 및 상기 원격 사용자 인터페이스의 리로드 없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 RUI CP 모듈에 의해 획득된 스토리지 서버의 정보를 기반으로 상기 스토리지 서버로부터 상기 상태 정보를 획득하고, 상기 획득된 상태 정보를 상기 원격 사용자 인터페이스에 반영하는 웹브라우저 모듈을 포함한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 특히, 이하의 실시예들에서는 상태 정보를 저장하지 않는 스테이트리스(stateless) 프로토콜인 HTTP(Hypertext Transfer Protocol)를 기반으로 하는 원격 사용자 인터페이스를 웹페이지의 리로드(reload) 없이 HTTP 요청을 처리하는 자바 스크립트 오브젝트인 HTTP 오브젝트를 포함하는 웹페이지로 한정하여 기술하고 있으나, 본 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자라면, 본 실시예들이 웹페이지가 아닌 다른 원격 사용자 인터페이스에도 적용됨 수 있음을 이해할 수 있을 것이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 UPnP 기반의 원격 사용자 인터페이스 네트워크 시스템의 구성도이다.
도 3을 참조하면, 본 실시예에 따른 UPnP 기반의 원격 사용자 인터페이스 네트워크 시스템은 RUI 클라이언트들(31-32), RUI 서버들(33-34) 및 SS(State Storage) 서버(35)로 구성된다. 특히, SS 서버(35)는 원격 사용자 인터페이스에 해당하는 웹페이지의 상태 정보를 저장할 상태 스토리지를 제공하는 서버이다. 또한, RUI 클라이언트들(31-32), RUI 서버들(33-34)은 RUI CP 모듈을 내장하고 있는 2 박스(box) 모델이며, UPnP의 발견 과정에서 SS 서버(35)의 정보를 획득한다. 다만, RUI 클라이언트들(31-32), RUI 서버들(33-34)은 반드시 RUI CP 모듈을 내장할 필요는 없으며, 다른 노드로부터 SS 서버(35)의 정보를 제공받을 수도 있다.
도 4는 본 발명의 바람직한 일 실시예에 따른 RUI 클라이언트(4)의 구성도이다.
도 4를 참조하면, 본 실시예에 따른 RUI 클라이언트(4)는 RUI CP 모듈(41), RUI CD 모듈(42) 및 웹브라우저 모듈(43)로 구성된다. 특히, RUI CP 모듈(41), RUI CD 모듈(42)은 RUI 클라이언트(4)가 UPnP가 적용될 수 있는 홈 네트워크 등과 같은 자율(autonomous) 네트워크에 존재하는 경우에 요구되는 선택적(optional) 모듈이다. 또한, RUI CP 모듈(41)은 RUI 클라이언트(4) 내부가 아닌 RUI 클라이언트(4) 외부에 존재할 수도 있다.
RUI CP 모듈(41)은 UPnP CD들을 발견(discovery)하고 제어(control)하는 UPnP CP의 역할을 수행한다. 특히, 본 실시예에 따르면, RUI CP 모듈(41)은 UPnP를 기반으로 UPnP 상의 CD에 해당하는 RUI 서버(7) 및 SS 서버(10)를 발견하는 과정에서 SS 서버(10)의 정보를 획득한다. 또한, RUI CP 모듈(41)은 원격 인터페이스의 상태 정보, 즉 웹페이지의 상태 정보의 저장을 요청하려고 할 경우, SS 핸들러(431)에게 SS 서버(10)의 정보를 제공한다.
RUI 클라이언트(4)는 HTTP 헤더에 RUI CP 모듈(61)을 포함하고 있음을 나타내는 "<hasControlPoint>true</hasControlPoint>"를 포함시킬 수 있다.
RUI CD 모듈(42)은 UPnP CD임을 알리고(advertise), 이에 따라 이것을 발견한 UPnP CP로부터의 제어를 받는 UPnP CD의 역할을 수행한다.
웹브라우저 모듈(43)은 HTTP를 기반으로 하는 통상의 웹브라우저 기능을 수행한다. 즉, 웹브라우저 모듈(43)은 사용자로부터 원격 사용자 인터페이스에 해당하는 웹페이지에 대한 요청을 수신하고, 웹서버를 구비하고 있는 RUI 서버(7)에 이것을 요청하고, 이것에 대한 응답으로부터 획득한 웹페이지를 렌더링(rendering)함으로서 이것을 표시하는 클라이언트 모듈이다.
특히, 웹브라우저 모듈(43)은 SS 핸들러(431)를 내장하거나, 플러그인(plug-in)의 형태로 구비한다. SS 핸들러(431)는 RUI CP 모듈(41)이 존재할 때에만 존재하는 선택적 모듈이다. RUI CP 모듈(41)과 SS 핸들러(431)는 IPC(interprocess communication) 또는 유닉스 도메인 소켓(unix domain socket) 등을 사용하여 내부 적으로 통신을 할 수 있다. 상기된 HTTP 헤더를 수신함으로서 RUI 클라이언트(4)가 RUI CP 모듈(61)을 포함하고 있음을 인식한 RUI 서버(7)는 도 8a-8b에 도시된 세이버블 페이지를 제공할 때, 이 세이버블 페이지에 SS 핸들러(431)를 이용하여 SS 서버(10)의 정보를 획득하는 자바 스크립트를 포함시켜서 보낼 수 있다. 즉, 이 자바 스크립트를 실행함으로써 실행됨에 따라, SS 핸들러(431)는 RUI CP 모듈(41)로부터 SS 서버(10)의 정보를 획득하고, 세이버블 페이지에게 SS 서버(10)의 정보를 제공한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 SS 핸들러(431)의 인터페이스를 도시한 도면이다.
도 5를 참조하면, 본 실시예에 따른 SS 핸들러(431)의 인터페이스는 원격 사용자 인터페이스에 해당하는 웹페이지의 상태 정보를 저장할 상태 스토리지를 제공하는 SS 서버들의 URL들(Array urls)과 이 SS 서버들의 이름들(Array names)을 나타내는 속성(property) 등을 제공한다.
또한, 웹브라우저 모듈(43)은 HTTP 오브젝트(432)를 네이티브 오브젝트(native object) 또는 플러그인(plug-in)의 형태로 구비한다. HTTP 오브젝트(432)는 웹페이지의 리로드 없이 HTTP 요청을 처리하는 자바 스크립트 오브젝트인 HTTP 오브젝트를 포함하는 웹페이지. 이와 같은 HTTP 오브젝트(432)의 예로는 XMLHttpRequest 또는 TCP(Transmission Control Protocol) 커넥션 오브젝트(connection object) 등을 들 수 있다.
도 6은 본 발명의 바람직한 일 실시예에 따른 TCP 커넥션 오브젝트의 인터페 이스를 도시한 도면이다.
도 6을 참조하면, 본 실시예에 따른 TCP 커넥션 오브젝트의 인터페이스는 TCP 연결의 상태가 변화하였음을 알리는 이벤트에 관한 콜백(callback), 데이터가 도착하였음을 알리는 이벤트에 관한 콜백, 데이터 전송의 에러가 발생하였음을 알리는 이벤트에 관한 콜백, TCP/IP 연결을 오픈(open)하는 메쏘드(method), 데이터를 획득하는 메쏘드, 데이터를 전송하는 메쏘드 등을 제공한다.
또한, 웹브라우저 모듈(43)은 RUI 서버(7)로부터 도 8a-8b에 도시된 세이버블 페이지를 수신한다. 또한, 웹브라우저 모듈(43)은 사용자로부터 원격 사용자 인터페이스의 상태 정보에 대한 저장 명령을 받으면, 즉, 사용자에 의해 세이버블 페이지(81)의 세이브 버튼이 클릭되면, 웹페이지에 포함된 자바 스크립트를 실행함으로서 RUI 서버(7)의 상태 정보가 발생하는 웹페이지인 경우에 사용자에 의해 이 웹페이지가 이용됨으로서 발생되는 RUI 서버(7)의 상태 정보를 제공하여 줄 것을 요청한다. 즉, 웹브라우저 모듈(43)은 RUI 서버(7)로 도 11에 도시된 GETSTATES 요청 메시지를 전송한다.
또한, 웹브라우저 모듈(43)은 상기된 요청에 대한 응답으로부터 RUI 서버(7)의 상태 정보를 획득한다. 즉, 웹브라우저 모듈(43)은 RUI 서버(7)로부터 GETSTATES 요청 메시지에 대한 응답인, 도 12에 도시된 GETSTATES 응답 메시지를 수신하고, 웹페이지에 포함된 자바 스크립트를 실행함으로서 이것으로부터 RUI 서버(7)의 상태 정보를 획득한다. 만약, 사용자가 상품 판매 웹페이지를 이용하였다면, RUI 서버(7)에는 사용자가 어떠한 상품을 선택하였는지에 관한 정보가 남아 있 게 된다. 또한, 사용자가 사용자 인증 웹페이지를 이용하였다면, RUI 서버(7)에는 사용자 인증 결과에 관한 정보가 남아 있게 된다. 이러한 정보들이 RUI 서버(7)의 상태 정보의 예가 될 수 있다.
또한, 웹브라우저 모듈(43)은 웹페이지에 포함된 자바 스크립트를 실행함으로서 사용자에 의해 웹페이지가 이용됨으로서 발생되는 RUI 클라이언트(4)의 상태 정보를 이 웹페이지로부터 읽어들이며, 이것을 통하여 RUI 클라이언트(4)의 상태 정보를 획득한다. 사용자가 웹페이지를 이용하는 동안, 사용자의 입력 값에 대응하여 폼 입력 정보, 쿠키 정보, AV(Audio Visual) 오브젝트의 상태 정보 등이 발생한다. 이러한 정보들이 RUI 클라이언트(4)의 상태 정보의 예가 될 수 있다.
웹브라우저 모듈(43)은 상기된 바와 획득된 웹페이지의 상태 정보, 즉 RUI 클라이언트(4)의 상태 정보 및 RUI 서버(7)의 상태 정보를 저장할 것을 SS 서버(10)에 요청하고자 할 경우, RUI CP 모듈(41) 또는 RUI 서버(7)의 RUI CP 모듈(71)로부터 SS 서버(10)의 정보를 제공받는다. 보다 상세하게 설명하면, 웹브라우저 모듈(43)은 웹페이지에 포함된 자바 스크립트를 실행함으로서 SS 서버(10)의 정보를 사용자에게 표시하고, 이를 인지한 사용자에 의해 웹페이지의 상태 정보를 저장할 스토리지 서버로서 SS 서버(10)를 선택받을 수 있다. 아니면, 웹브라우저 모듈(43)은 SS 핸들러(431)에게 질의하여 SS 서버(10)의 정보를 획득하고, 이것을 사용자에게 표시하고, 이를 인지한 사용자에 의해 웹페이지의 상태 정보를 저장할 스토리지 서버로서 SS 서버(10)를 선택받을 수도 있다.
또한, 웹브라우저 모듈(43)은 웹페이지에 포함된 자바 스크립트를 실행함으 로서 사용자에 의해 선택된 SS 서버(10)의 정보, 즉 SS 서버(10)의 URL을 이용하여 웹페이지의 상태 정보를 저장할 것을 SS 서버(10)에 요청한다. 즉, 웹브라우저 모듈(43)은 SS 서버(10)로 도 20에 도시된 SAVE 요청 메시지를 전송한다.
또한, 웹브라우저 모듈(43)은 사용자로부터 사용자의 선택에 의해 복구 가능한 웹페이지들의 목록, 즉 복구 페이지(restoring page)들의 목록에 대한 표시 명령을 수신한 경우, RUI CP 모듈(41) 또는 RUI 서버(7)의 RUI CP 모듈(61)로부터 SS 서버(10)의 정보를 제공받는다. 또한, 웹브라우저 모듈(43)은 이 SS 서버(10)의 정보, 즉 SS 서버(10)의 URL을 이용하여 복구 페이지들의 목록을 제공하여 줄 것을 SS 서버(10)에 요청한다. 즉, 웹브라우저 모듈(43)은 SS 서버(10)로 도 14에 도시된 복구 페이지 요청 메시지를 전송한다.
또한, 웹브라우저 모듈(43)은 상기된 요청에 대한 응답으로부터 복구 페이지들의 목록을 획득한다. 즉, 웹브라우저 모듈(43)은 SS 서버(10)로부터 복구 페이지 요청 메시지에 대한 응답인, 도 15에 도시된 복구 페이지 응답 메시지를 수신하고, 이것으로부터 복구 페이지들의 목록, 즉 원격 사용자 인터페이스들에 해당하는 웹페이지들의 URL, RUI 서버(7)의 상태 정보, 및 RUI 클라이언트(4)의 상태 정보가 저장된 장소의 위치 정보 URL을 획득한다. 또한, 웹브라우저 모듈(43)은 사용자에게 복구 페이지들의 목록을 표시하고, 이를 인지한 사용자로부터 어느 하나의 선택을 받는다. 즉, 웹브라우저 모듈(43)은 사용자가 복구하고자 하는 웹페이지의 URL를 선택받는다.
또한, 웹브라우저 모듈(43)은 사용자에 의해 선택된 웹페이지의 복구를 RUI 서버(7)에 요청하다. 즉, 웹브라우저 모듈(43)은 RUI 서버(7)에게 RUI 서버(7)의 상태 정보 및 RUI 클라이언트(4)의 상태 정보가 저장된 장소의 위치 정보 URL를 포함하는 도 16에 도시된 복구 요청 메시지를 제공함으로서 원격 사용자 인터페이스의 어플리케이션을 시작할 것을 요청한다.
또한, 웹브라우저 모듈(43)은 RUI 서버(7)로 도 16에 도시된 복구 요청 메시지를 전송하고, 이것에 대한 응답으로서 RUI 클라이언트(4)의 상태 정보가 저장된 장소의 위치 정보 URL를 이용하여 RUI 클라이언트(4)의 상태 정보를 획득할 수 있도록 하는 자바 스크립트를 포함하는 도 17에 도시된 세이버블 페이지를 수신한다.
또한, 웹브라우저 모듈(43)은 도 17에 도시된 세이버블 페이지의 자바 스크립트를 실행함으로써 RUI 클라이언트(4)의 상태 정보가 저장된 장소의 위치 정보 URL를 이용하여 SS 서버(10)로부터 사용자에 의해 선택된 웹페이지를 복구하는데 요구되는 RUI 클라이언트(4)의 상태 정보를 획득하고, 세이버블 페이지(131)의 자바 스크립트를 실행함으로써 RUI 클라이언트(4)의 상태 정보를 세이버블 페이지(131)에 반영하며, 이것을 통하여 웹페이지에서의 클라이언트(4)의 상태를 복구한다.
도 7은 본 발명의 바람직한 일 실시예에 따른 RUI 서버(7)의 구성도이다.
도 7을 참조하면, 본 실시예에 따른 RUI 서버(7)는 RUI CP 모듈(71), RUI CD 모듈(72), 웹서버 모듈(73), RUI 어플리케이션 모듈(74), 상태 관리자(75) 및 SS 서버 선택기(76)로 구성된다. 특히, RUI CP 모듈(71), RUI CD 모듈(72)은 RUI 서버(7)가 UPnP가 적용될 수 있는 홈 네트워크 등과 같은 자율 네트워크에 존재하는 경우에 요구되는 선택적 모듈이다. 또한, RUI CP 모듈(71)은 RUI 서버(7) 내부가 아닌 RUI 서버(7) 외부에 존재할 수도 있다.
RUI CP 모듈(71)은 UPnP CD들을 발견하고 제어하는 UPnP CP의 역할을 수행한다. 특히, 본 실시예에 따르면, RUI CP 모듈(71)은 RUI 클라이언트(4)가 RUI CP 모듈(41)을 포함하고 있지 않을 경우, UPnP를 기반으로 SS 서버(10)를 발견하는 과정에서 이것의 정보를 획득하고, 이것을 SS 서버 선택기(76)에게 제공한다.
RUI CD 모듈(72)은 UPnP CD임을 알리고, 이에 따라 이것을 발견한 UPnP CP로부터의 제어를 받는 UPnP CD의 역할을 수행한다.
웹서버 모듈(73)은 HTTP를 기반으로 하는 통상의 웹서버 기능을 수행한다. 즉, 웹서버 모듈(73)은 RUI 클라이언트(4)로부터 어떤 어플리케이션에 대한 요청을 수신하고, 이 요청에 따라 해당 어플리케이션을 처리함으로서 이 요청에 대한 응답을 제공하는 HTTP 서버 모듈이다. 특히, 웹서버 모듈(73)은 RUI 클라이언트(4)로부터 일반적인 웹페이지에 대한 요청을 수신한 경우, 이 요청에 따라 웹페이지를 생성하고, 이것을 제공한다.
상태 관리자(75)는 RUI 클라이언트(4)의 사용자에 의해 RUI 서버(7)가 제공하는 원격 사용자 인터페이스에 해당하는 웹페이지가 이용됨으로서 RUI 서버(7)에 의해 발생되는 RUI 서버(7)의 상태 정보가 존재하는 경우에만 요구되는 선택적 모듈로서, RUI 서버(7)의 상태 정보를 관리한다. 보다 상세하게 설명하면, 상태 관리자(75)는 RUI 클라이언트(4)로부터 RUI 클라이언트(4)의 사용자에 의해 RUI 서버(7)가 제공하는 웹페이지가 이용됨으로서 발생되는 RUI 서버(7)의 상태 정보의 제공에 대한 요청을 수신하면, 이 RUI 서버(7)의 상태 정보를 RUI 클라이언트(4)에게 제공한다. 즉, 상태 관리자(75)는 웹서버 모듈(73)을 통하여 도 11에 도시된 GETSTATES 요청 메시지를 수신하면, 이것에 대한 응답인, 도 12에 도시된 GETSTATES 응답 메시지를 전송한다.
또한, 상태 관리자(75)는 RUI 클라이언트(4)로부터 RUI 서버(7)의 상태 정보를 제공받으면, 이것을 이용하여 RUI 서버(7)의 상태를 복구한다. 즉, 상태 관리자(75)는 RUI 클라이언트(4)로부터 도 16에 도시된 복구 요청 메시지의 "ServerStatesString"를 제공받으면, 이것을 이용하여 RUI 서버(7)의 상태를 복구한다.
RUI 어플리케이션 모듈(74)은 원격 사용자 인터페이스에 해당하는 웹페이지에 대한 어플리케이션을 수행한다. 보다 상세하게 설명하면, RUI 어플리케이션 모듈(74)은 웹서버 모듈(73)을 통하여 RUI 클라이언트(4)로부터 어떤 웹페이지에 대한 요청을 수신하면, 사용자가 웹페이지의 상태 정보의 저장을 지시할 수 있는 수단, 즉 세이브 버튼을 제공하는 세이버블 페이지(Saveable Page)를 생성하고, 이것을 RUI 클라이언트(4)에게 제공한다.
또한, RUI 어플리케이션 모듈(74)은 RUI 클라이언트(4)로부터 사용자에 의해 선택된 웹페이지의 복구를 요청 받으면, RUI 클라이언트(4)가 RUI 클라이언트(4)의 상태 정보가 저장된 장소의 위치 정보 URL를 이용하여 RUI 클라이언트(4)의 상태 정보를 획득할 수 있도록 하는 자바 스크립트를 포함하는 세이버블 페이지를 생성하고, 이것을 RUI 클라이언트(4)에게 제공한다.
SS 서버 선택기(76)는 RUI CP 모듈(71)이 존재할 때에만 존재하는 선택적(optional) 모듈이다. SS 서버 선택기(76)는 RUI CP 모듈(71)에 의해 획득된 SS 서버(10)의 정보를 사용자에게 표시하기 위한 표현(presentation) 페이지를 생성하여 RUI 클라이언트(4)에게 제공한다. 또한, SS 서버 선택기(76)는 상기된 바와 같이 생성된 표현 페이지를 인지한 사용자가 SS 서버(10)를 선택했을 때 자바 스크립트의 오프너 오브젝트(opener object)를 통해 이 SS 서버(10)의 정보를 호출 윈도우에게 알려준다.
도 8a-8b는 본 발명의 바람직한 일 실시예에 따른 세이버블 페이지의 구성도이다.
도 8a-8b를 참조하면, 본 실시예에 따른 세이버블 페이지는 HTML 문서이다. 도 8a-8b에 도시된 바와 같이, 본 실시예에 따른 세이버블 페이지는 사용자에게 세이브 버튼을 제공하며, 이 세이브 버튼에 대한 온클릭 이벤트 콜백(onclick event callback)에 의해 RUI 서버(7)로부터 반환된 세이버블 페이지에 포함된 자바 스크립트를 실행함으로써 XMLHttpRequest 또는 TCP 커넥션 오브젝트를 이용하여 GETSTATES 커맨드와 SAVE 커맨드를 실행한다. TCP 커넥션 오브젝트를 이용하여 HTTP 기반의 GETSTATES 커맨드와 SAVE 커맨드를 실행하기 위해서는 도 8a-8b에 도시된 getserverstate() 함수, save() 함수와 같이 직접 HTTP 요청을 구성한 후, sendData()를 이용하여 HTTP 요청을 전송하여야 한다. TCP 커넥션 오브젝트를 이용하지 않고, XMLHttpRequest를 이용하는 경우에는 "open(), onreadystatechange property, responseText property, send method()" 등을 이용하여 HTTP 요청을 처 리할 수도 있다. 도 8a-8b에 도시된 "startSelectingSSS()"에서 새로운 빈 윈도우(blank window)를 오프한 다음, URL들과 네임들을 기반으로 하이퍼링크를 생성하고, 각 하이퍼링크의 href 속성을 opener.save(url) 콜백에 연결한다.
보다 상세하게 설명하면, 웹브라우저 모듈(43)은 HTTP 오브젝트(432), "getserverstate()"를 이용하여 GETSTATES 요청 메시지를 전송함으로서 RUI 서버(7)의 상태 정보를 제공하여 줄 것을 요청한다. 즉, 웹브라우저 모듈(43)은 원격 사용자 인터페이스에 해당하는 웹페이지에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 이 소켓을 통하여 GETSTATES 요청 메시지를 전송함으로서 RUI 서버(7)의 상태 정보를 제공하여 줄 것을 요청한다.
또한, 웹브라우저 모듈(43)은 HTTP 오브젝트(432), "setserverstate()"를 이용하여 GETSTATES 응답 메시지를 수신하고, 이것으로부터 RUI 서버(7)의 상태 정보를 획득한다. 즉, 웹브라우저 모듈(43)은 상기된 소켓을 통하여 GETSTATES 응답 메시지를 수신하고, 이것으로부터 RUI 서버(7)의 상태 정보를 획득한다.
특히, 웹브라우저 모듈(43)은 HTTP 오브젝트(432), "save(url)"를 이용하여 SAVE 요청 메시지를 전송함으로서 SS 서버(10)에 웹페이지의 상태 정보를 저장할 것을 요청한다. 즉, 웹브라우저 모듈(43)은 원격 사용자 인터페이스에 해당하는 웹페이지에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 이 소켓을 통하여 SAVE 요청 메시지를 전송함으로서 SS 서버(10)에 웹페이지의 상태 정보를 저장할 것을 요청한다.
특히, 웹브라우저 모듈(43)은 HTTP 오브젝트(432), "checkSaveResult()"를 이용하여 SS 서버(10)로부터 RUI 클라이언트(4)의 상태 정보를 획득한다. 즉, 웹브라우저 모듈(43)은 원격 사용자 인터페이스에 해당하는 웹페이지에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 이 소켓을 통하여 SS 서버(10)에 RUI 클라이언트(4)의 상태 정보를 요청하고, 이 소켓을 통하여 이 요청에 대한 응답으로서 SS 서버(10)로부터 RUI 클라이언트(4)의 상태 정보를 획득한다.
만약, RUI 클라이언트(4)가 RUI CP 모듈(41)과 SS 핸들러(431)를 포함하고 있지 않고, RUI 서버(7)가 RUI CP 모듈(71)과 SS 서버 선택기(76)를 포함하고 있을 경우, RUI 서버(7)는 도 8a-8b에 도시된 세이버블 페이지들과는 다른 세이버블 페이지를 제공한다. 하나의 예로서, 도 8a-8b에 도시된 페이지는 다음과 같은 페이지로 변경된다.
도 9a-9b는 도 8a-8b에 도시된 세이버블 페이지의 다른 예를 도시한 도면이다.
도 9a-9b를 참조하면, 도 8a-8b에 도시된 세이버블 페이지는 RUI 서버(7)가 RUI CP 모듈(71)과 SS 서버 선택기(76)를 포함하고 있을 경우의 HTML 문서이다. 세이버블 페이지(81)의 세이브 버튼이 클릭되면, 도 11에 도시된 세이버블 페이지(81)의 "getserverstate()", "setserverstate()", "startSelectingSSS()"라는 자바 스크립트가 차례대로 실행되고, "startSelectingSSS()"는 "window.open()"을 실행한다. 이에 따라, SS 서버 선택기(76)는 SS 서버의 목록을 하이퍼 링크들의 형태로 제공하고, SS 서버들 각각에 대응하는 하이퍼 링크들 각각의 온클릭 이벤트 핸들러(onclick event handler)는 "opener.save(url)"로 설정된다. 그 결과, "save()" 함수가 호출되면서 SAVE 커맨드가 수행되게 된다.
도 10은 본 발명의 바람직한 일 실시예에 따른 SS 서버(10)의 구성도이다.
도 10을 참조하면, 본 실시예에 따른 SS 서버(10)는 RUI CD 모듈(101), 웹서버 모듈(102), 세이브 핸들러(103), RUI 복구기(104) 및 상태 스토리지(105)로 구성된다.
RUI CD 모듈(101)은 UPnP CD임을 알리고, 이에 따라 이것을 발견한 RUI 클라이언트(4)의 UPnP CP 모듈(41) 또는 RUI 서버(7)의 UPnP CP 모듈(71)로부터의 제어를 받는 UPnP CD의 역할을 수행한다. 즉, RUI CD 모듈(101)은 SS 서버(10)가 원격 인터페이스의 상태 정보, 즉 웹페이지의 상태 정보를 저장할 수 있는 상태 스토리지(105)를 보유하는 것을 알리기 위하여 RUI CD 모듈(101)의 명세(description)에 <hasStatesStorage>true</hasStatesStorage>와 같은 정보를 포함시킬 수 있다.
웹서버 모듈(102)은 HTTP를 기반으로 하는 통상의 웹서버 기능을 수행한다. 즉, 웹서버 모듈(102)은 RUI 클라이언트(4)로부터 어떤 어플리케이션에 대한 요청을 수신하고, 이 요청에 따라 해당 어플리케이션을 처리함으로서 이 요청에 대한 응답을 제공하는 HTTP 서버 모듈이다. 특히, 웹서버 모듈(102)은 RUI 클라이언트(4)로부터 수신된 웹페이지의 상태 정보 저장 명령 및 복구 명령을 수신하고 처리한다.
세이브 핸들러(103)는 웹서버 모듈(102)을 통하여 도 13에 도시된 SAVE 요청 메시지를 수신하면, 이 SAVE 요청 메시지에 포함된 웹페이지의 모든 상태 정보, 즉 RUI 클라이언트(4)의 상태 정보 및 RUI 서버(7)의 상태 정보를 상태 스토리지(105) 에 저장한다.
RUI 복구기(104)는 RUI 클라이언트(4)의 사용자가 복구하고자 하는 웹페이지의 상태 정보를 선택하여 복구할 수 있도록 한다. 보다 상세하게 설명하면, RUI 복구기(104)는 RUI 클라이언트(4)로부터 복구 페이지들의 목록의 제공에 대한 요청을 수신하면, 상태 스토리지(105)에 저장된 복구 페이지들의 목록, 즉 원격 사용자 인터페이스들에 해당하는 웹페이지들의 URL, RUI 서버(7)의 상태 정보, 및 RUI 클라이언트 1(401)의 상태 정보가 저장된 장소의 위치 정보 URL을 제공한다. 즉, RUI 복구기(104)는 웹서버 모듈(102)을 통하여 RUI 클라이언트(4)로부터 도 14에 도시된 복구 페이지 요청 메시지를 수신하면, 이것에 대한 응답으로서 도 15에 도시된 복구 페이지 응답 메시지를 전송한다. 또한, RUI 복구기(104)는 이것들 중 어느 하나를 사용자가 선택한 경우에 사용자에 의해 선택된 복구 페이지의 제공에 대한 요청을 수신하면, RUI 클라이언트(4)의 상태 정보가 저장된 장소의 위치 정보 URL를 이용하여 RUI 클라이언트(4)의 상태 정보를 획득할 수 있도록 하는 자바 스크립트를 포함하는 세이버블 페이지를 생성하고, 이것을 RUI 클라이언트 2(402)에게 반환한다. 즉, UI 복구기(104)는 웹서버 모듈(102)을 통하여 도 16에 도시된 복구 요청 페이지를 수신하면, 이것에 대한 응답으로서 도 17에 도시된 세이버블 페이지를 RUI 클라이언트(4)에게 전송한다.
또한, RUI 복구기(104)는 RUI 클라이언트(4)에게 제공된 세이버블 페이지의 복구에 요구되는 RUI 클라이언트(4)의 상태 정보의 제공을 요청 받으면, 상태 스토리지(105)로부터 이 RUI 클라이언트(4)의 상태 정보를 읽어들인 후, 이것을 RUI 클 라이언트(4)에게 제공한다.
상태 스토리지(105)는 RUI 클라이언트(4)로부터 수신된 웹페이지의 모든 상태 정보, 예를 들면 사용자에 의해 원격 사용자 인터페이스가 이용됨에 따라 발생된 쿠키 정보, 폼 정보, AV 오브젝트 정보 등의 RUI 클라이언트(4)의 상태 정보와 RUI 서버(7)의 상태 정보가 저장된다.
도 11은 본 발명의 바람직한 일 실시예에 따른 GETSTATES 요청 메시지의 포맷을 도시한 도면이다.
도 11에 도시된 GETSTATES 요청 메시지는 HTTP GET 요청 메시지의 일종이다. 도 11을 참조하면, RUI 서버(7)의 상태 정보를 요청하기 위해, GET 요청 라인에 RUI 서버(7)의 상태 정보의 URL인 "GETSTATES" URL을 입력한다. 다만, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면, "GETSTATES"라는 이름 대신 다른 이름이 사용될 수 있음을 이해할 수 있을 것이다. 또한, 사용자 에이전트 헤더는 RUI 클라이언트(4)가 HTTP 기반의 원격 사용자 인터페이스를 지원할 수 있다는 것을 나타내는 "Protocol/version(capability_string)"을 포함하며, 도 11에 도시되지 않았으나, RUI 클라이언트(4)가 RUI CP 모듈(41)을 포함하고 있음을 나타내는 "&gt;hasControlPoint&gt;ture;&gt;/hasControlPoint&gt;"를 포함할 수도 있다. 특히,"&gt;hasControlPoint&gt;ture&gt;/hasControlPoint&gt;"은 "<hasControlPoint>ture</hasControlPoint>"와 같은 XML 플래그먼트를 URL 탈출(escaping)시킨 스트링이다.
도 12는 본 발명의 바람직한 일 실시예에 따른 GETSTATES 응답 메시지를 도 시한 도면이다.
도 12에 도시된 GETSTATES 응답 메시지는 HTTP GET 응답 메시지의 일종이다. 도 12를 참조하면, GETSTATES 응답 메시지 내의 컨텐트 타입에는 RUI 서버(7)의 상태 정보에 대한 컨텐트 타입을 나타내는 값이 기록된다. 이와 같은 값의 예로는 text/plain, application/x-www-url-encoded 등과 같은 값을 들 수 있다. 또한, GETSTATES 응답 메시지 내의 스트링 오브 서버 스테이츠에는 RUI 서버(7)의 상태 정보를 나타내는 값이 기록된다. 여기에서, RUI 서버(7)의 상태 정보를 나타내는 값은 RUIS 서버(7)의 RUI 어플리케이션 모듈(74)로부터 제공된 웹 페이지의 자바 스크립트에 의해 해석될 수 있는 값이어야 한다.
도 13은 본 발명의 바람직한 일 실시예에 따른 SAVE 요청 메시지를 도시한 도면이다.
도 13에 도시된 SAVE 요청 메시지는 HTTP GET 요청 메시지의 일종이다. 도 13을 참조하면, "POST /SAVE?__name__=NameForToBeSavedStates" 중 "/SAVE"는 RUI 어플리케이션 모듈(74)에 의해 생성된 원격 사용자 인터페이스의 상태 정보를 저장하는 것을 나타내는 명령이다.
그 뒤에 부가되는 "?__name__=NameForToBeSavedStates"는 SS 서버(10)에 저장될 웹페이지의 이름을 나타내는 것으로 고유한 값을 가져야 한다. 일 예로, "< title> tag + saved time" 등과 같은 이름을 가질 수 있다. 만약, 이 요청을 수신한 SS 서버(10)가 자신의 상태 스토리지(105)에 동일한 이름으로 이미 저장된 웹페이지가 있을 경우에는 새로운 이름으로 명명한 후, 저장한다.
또한, "Content-Type: application/x-www-form-urlencoded"는 SAVE 요청 메시지의 바디 컨텐트에 대한 마임 타입(mime type)을 나타내는 것으로 SS 서버(10)가 이해할 수 있도록 반드시 이 값으로 보내야 한다. 또한, "_url_=URLForTheOriginalPageToBeSaved&__serverStates_=opaque_server_ states_string..."은 SAVE 요청 메시지의 바디의 일부분으로 RUIS 서버(7)의 RUI 어플리케이션 모듈(74)에 의해 생성되는 웹페이지의 URL 및 RUI 서버(7)의 상태 정보를 나타낸다. 특히, "_serverStates_" 값은 SS 서버(10)에 의해 해석되지 않으므로 RUI 서버(7)가 원하는 형식대로 설정이 가능하다. 다만, 여기에 해당하는 값들에 대한 키들, 즉 "_url_", "_serverStates_"는 SS 서버(10)가 이해할 수 있어야 하므로, RUI 서버(7)와 SS 서버(10)간에 미리 합의된 키 값을 사용해야 한다.
또한, "Opaque strings for any RUIC states"는 RUI 클라이언트(4)의 상태 정보를 나타내는 것으로 쿠키 정보, 폼 입력 정보, AV 오브젝트 상태 정보 등이 이에 해당한다. 이 스트링들도 RUI 클라이언트(4)의 상태 정보이기 때문에 "_url_", "_serverStates_"와는 다르게 키 값을 SS 서버(10)가 이해할 필요가 없다. 즉, RUI 서버(7)만 이해할 수 있으면 충분하다.
도 14는 본 발명의 바람직한 일 실시예에 따른 복구 페이지 요청 메시지의 구성도이다.
도 14에 도시된 복구 페이지 요청 메시지는 HTTP GET 요청 메시지의 일종이다. 복구 페이지들의 목록 "/UI_restore_page"는 SS 서버(10)의 명세 중 XML 기반의 목록으로 제공될 수 있다. 예를 들면, XML 기반의 목록은 RUI 서버(7)의 "GetCompatibleAction()"의 반환 값인 "A_ARG_TYPE_CompatibleUIs"와 같은 형식으로 기술될 수 있을 것이다. 이 경우, 어느 하나의 복구 페이지는 "A_ARG_TYPE_CompatibleUIs"의 상태 정보 엘리먼트(element) 별로 존재하는 프로토콜 엘리먼트 아래의 "<uri>" 엘리먼트로부터 알아낼 수 있다.
도 15는 본 발명의 바람직한 일 실시예에 따른 복구 페이지 응답 메시지의 구성도이다.
도 15에 도시된 복구 페이지 응답 메시지는 HTTP GET 응답 메시지의 일종이다. 도 15를 참조하면, 복구 페이지 응답 메시지에는 복구 URL들의 하이퍼링크를 나열하고 있는 문서가 반환된다. 복구 URL들 각각은 다음과 같은 요소들로 구성된다. "http://RUIS-IP-ADDR:PORT/RUIAppPath"는 RUI 어플리케이션의 경로, 즉 원래의 RUI 서버(7)의 RUI 어플리케이션 페이지의 URL을 나타낸다. 또한, "ServerSideStates"는 원격 사용자 인터페이스의 저장 당시의 원래의 RUI 서버의 서버 측 상태 정보를 나타낸다. 또한, "_savedstatesurl_=AURLForSavedStates"는 SS 서버(10)에 저장된 RUI 클라이언트(4) 측 원격 사용자 인터페이스의 상태 정보의 위치 정보 URL를 나타낸다.
사용자가 임의의 하이퍼링크를 선택하면, RUI 서버(7)는 원래의 RUI 서버에 의해 선택된 원격 사용자 인터페이스의 어플리케이션을 요청하게 된다. 이때, 상기된 예에서 나타난 바와 같이 RUI 서버(7) 측 원격 사용자 인터페이스의 상태 정보와 SS 서버(7)에 저장된 RUI 클라이언트(4) 측 원격 사용자 인터페이스의 상태 정보의 위치 정보가 함께 전달된다.
도 16은 본 발명의 바람직한 일 실시예에 따른 복구 요청 메시지의 구성도이다.
도 16에 도시된 복구 요청 메시지는 HTTP GET 요청 메시지의 일종이다. 도 16을 참조하면, GET 요청 라인 중 "/RUIAppPath"는 도 10에 도시된 SAVE 커맨드에서 "_url_key" 값에서 경로 성분과 같은 값이어야 한다. "ServerStatesString"은 선택적일 수도 있으며, SAVE 커맨드의 "_serverStates_key" 값과 동일한 값이어야 한다. "_savedstatesurl_"은 SS 서버(10)에 저장된 RUI 클라이언트(4) 측 원격 사용자 인터페이스의 상태 정보의 위치 정보 URL를 나타낸다.
도 17은 본 발명의 바람직한 일 실시예에 따른 복구 응답 문서에 해당하는 세이버블 페이지를 도시한 도면이다.
도 17을 참조하면, 본 실시예에 따른 복구 응답 문서에 해당하는 세이버블 페이지는 도 8a-8b에 도시된 원래 세이버블 페이지에 SS 서버(10)로부터 원격 사용자 인터페이스의 상태 정보를 읽어와서, 이 원격 사용자 인터페이스의 상태를 복구하는 자바 스크립트가 추가된 형태로 반환될 것이다.
보다 상세하게 설명하면, 웹브라우저 모듈(43)은 HTTP 오브젝트(432), "startRestoringUIStates(URLForSavedStates)", "restoreUIStates()"를 이용하여 SS 서버(10)로부터 RUI 클라이언트 1(401)의 상태 정보를 획득한다. 즉, 웹브라우저 모듈(43)은 원격 사용자 인터페이스에 해당하는 웹페이지에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 이 소켓을 통하여 SS 서버(10)에 RUI 클라이언트 1(401)의 상태 정보를 요청한다. 이어서, 웹브라우저 모듈(43)은 이 소켓을 통 하여 이 요청에 대한 응답을 수신하고, 이것으로부터 SS 서버(10)로부터 RUI 클라이언트 1(401)의 상태 정보를 획득한다.
SS 서버(10)로부터 원격 사용자 인터페이스의 상태를 읽어 오는 데에는 TCP 커넥션 오브젝트가 사용될 수 있다. 도 14는 일 예로서 도 6에 도시된 TCP 연결 오브젝트의 인터페이스를 이용하여 SS 서버(10)로부터 원격 사용자 인터페이스의 상태를 읽어오는 방법을 예시하고 있다. 또한, XMLHttpRequest를 이용하여, 즉 "open()", "send()", "onreadystatuschange", "responseText" 등을 이용하여, SS 서버(10)로부터 원격 사용자 인터페이스의 상태 정보를 읽어와서 원격 사용자 인터페이스를 복원할 수도 있다.
도 18은 본 발명의 바람직한 일 실시예에 따른 원격 사용자 인터페이스 상태 정보의 저장 방법의 흐름도이다.
도 18을 참조하면, 본 실시예에 따른 원격 사용자 인터페이스 상태 정보의 저장 방법은 도 4에 도시된 RUI 클라이언트(4), 도 7에 도시된 RUI 서버(7) 및 도 10에 도시된 SS 서버(10)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 4에 도시된 RUI 클라이언트(4), 도 7에 도시된 RUI 서버(7) 및 도 10에 도시된 SS 서버(10)에 관하여 이상에서 기술된 내용은 본 실시예에 따른 원격 사용자 인터페이스 상태 정보의 저장 방법에도 적용된다.
다만, 본 실시예에 따른 원격 사용자 인터페이스 상태 정보의 저장 방법은 두 개의 RUI 클라이언트들에 대해서 적용되므로, 도 4에 도시된 RUI 클라이언트(4)를 RUI 클라이언트 1(401) 및 RUI 클라이언트 2(402)로 표현하기로 한다. 일반적으 로, RUI 클라이언트 1(401) 및 RUI 클라이언트 2(402)는 별개의 RUI 클라이언트이나, 하나의 RUI 클라이언트일 수도 있다. 전자의 경우는 사용자가 여러 RUI 클라이언트들에서 하나의 웹페이지를 이용하는 경우일 것이고, 후자의 경우는 사용자가 하나의 RUI 클라이언트 상에서 어느 하나의 웹페이지를 이용하다가, 다른 웹페이지를 이용하고, 다시 이전의 웹페이지를 이용하는 경우일 것이다.
181 단계에서 RUI 클라이언트 1(401)은 사용자로부터 원격 사용자 인터페이스에 해당하는 웹페이지에 대한 요청을 수신한다.
182 단계에서 RUI 클라이언트 1(401)은 181 단계에서 요청된 웹페이지를 RUI 서버(7)로 요청한다.
183 단계에서 RUI 서버(7)는 182 단계에서 요청된 웹페이지를 RUI 클라이언트 1(401)에게 제공한다. 여기에서, RUI 서버(7)에 의해 제공된 웹페이지는 사용자가 웹페이지에 대한 상태 정보를 저장할 수 있는 수단, 즉 세이브 버튼을 제공하는 세이버블 페이지이다.
184 단계에서 RUI 클라이언트 1(401)은 사용자의 세이브 버튼 클릭에 따라 웹페이지의 상태 정보에 대한 저장 명령을 수신한다.
185 단계에서 RUI 클라이언트 1(401)은 RUI 서버(7)로 GETSTATES 요청 메시지를 전송함으로서 RUI 서버(7)의 상태 정보를 제공하여 줄 것을 요청한다. 이어서, 185 단계에서 RUI 서버(7)는 GETSTATES 요청 메시지를 수신하고, 이것에 대한 응답으로서 GETSTATES 응답 메시지를 전송한다. 이어서, 185 단계에서 RUI 클라이언트 1(401)은 GETSTATES 응답 메시지를 수신하고, 이것으로부터 RUI 서버(7)의 상 태 정보를 획득한다. 185 단계는 RUI 서버(7)가 RUI 서버(7) 측에서 원격 사용자 인터페이스의 상태 정보를 관리하는 경우에 요구되는 선택적 단계이다.
특히, 185 단계에서 RUI 클라이언트 1(401)은 HTTP 오브젝트(432)를 이용하여 GETSTATES 요청 메시지를 전송함으로서 RUI 서버(7)의 상태 정보를 제공하여 줄 것을 요청한다. 또한, 185 단계에서 RUI 클라이언트 1(401)은 HTTP 오브젝트(432)를 이용하여 GETSTATES 응답 메시지를 수신하고, 이것으로부터 RUI 서버(7)의 상태 정보를 획득한다.
즉, 185 단계에서 RUI 클라이언트 1(401)은 원격 사용자 인터페이스에 해당하는 웹페이지에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 이 소켓을 통하여 GETSTATES 요청 메시지를 전송함으로서 RUI 서버(7)의 상태 정보를 제공하여 줄 것을 요청한다. 또한, 185 단계에서 RUI 클라이언트 1(401)은 이 소켓을 통하여 GETSTATES 응답 메시지를 수신하고, 이것으로부터 RUI 서버(7)의 상태 정보를 획득한다.
186 단계에서 RUI 클라이언트 1(401)은 사용자에 의해 웹페이지가 이용됨으로서 발생되는 RUI 클라이언트(4)의 상태 정보를 이 웹페이지로부터 읽어들인다.
187 단계에서 RUI 클라이언트 1(401)은 SS 서버(10)로 SAVE 요청 메시지를 전송함으로서 SS 서버(10)에 웹페이지의 상태 정보를 저장할 것을 요청한다. 특히, 187 단계에서 RUI 클라이언트 1(401)은 HTTP 오브젝트(432)를 이용하여 SAVE 요청 메시지를 전송함으로서 SS 서버(10)에 웹페이지의 상태 정보를 저장할 것을 요청한다.
즉, 187 단계에서 RUI 클라이언트 1(401)은 원격 사용자 인터페이스에 해당하는 웹페이지에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 이 소켓을 통하여 SAVE 요청 메시지를 전송함으로서 SS 서버(10)에 웹페이지의 상태 정보를 저장할 것을 요청한다.
188 단계에서 SS 서버(10)는 SAVE 요청 메시지를 수신하고, 이것에 포함된 웹페이지의 상태 정보를 스토리지(105)에 저장한다.
도 19는 본 발명의 바람직한 일 실시예에 따른 원격 사용자 인터페이스 상태 정보의 복구 방법의 흐름도이다.
도 19를 참조하면, 본 실시예에 따른 원격 사용자 인터페이스 상태 정보의 복구 방법은 도 4에 도시된 RUI 클라이언트(4), 도 7에 도시된 RUI 서버(7) 및 도 10에 도시된 SS 서버(10)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 4에 도시된 RUI 클라이언트(4), 도 7에 도시된 RUI 서버(7) 및 도 10에 도시된 SS 서버(10)에 관하여 이상에서 기술된 내용은 본 실시예에 따른 원격 사용자 인터페이스 상태 정보의 복구 방법에도 적용된다. 특히, 본 실시예에 따른 원격 사용자 인터페이스 상태 정보의 복구 방법은 도 18에 도시된 원격 사용자 인터페이스 상태 정보의 저장 방법의 모든 단계들이 수행된 이후의 단계들이다.
191 단계에서 RUI 클라이언트 2(402)는 사용자로부터 복구 페이지들의 목록에 대한 표시 명령을 수신한다.
192 단계에서 RUI 클라이언트 2(402)는 SS 서버(10)로 복구 페이지 요청 메 시지를 전송함으로서 복구 페이지들의 목록을 제공하여 줄 것을 요청한다. 이어서, 192 단계에서 SS 서버(10)는 복구 페이지 요청 메시지를 수신하고, 이것에 대한 응답으로서 복구 페이지 응답 메시지를 전송한다. 이어서, 192 단계에서 RUI 클라이언트 2(402)는 복구 페이지 응답 메시지를 수신하고, 이것으로부터 복구 페이지들의 목록, 즉 원격 사용자 인터페이스들에 해당하는 웹페이지들의 URL, RUI 서버(7)의 상태 정보, 및 RUI 클라이언트 1(401)의 상태 정보가 저장된 장소의 위치 정보 URL을 획득한다. 이어서, 192 단계에서 RUI 클라이언트 2(402)는 사용자에게 복구 페이지들의 목록을 표시한다.
193 단계에서 RUI 클라이언트 2(402)는 사용자로부터 복구 페이지들의 목록 중 어느 하나의 선택을 받는다. 즉, 193 단계에서 RUI 클라이언트 2(402)는 사용자가 복구하고자 하는 웹페이지의 URL를 선택받는다.
194 단계에서 RUI 클라이언트 2(402)는 RUI 서버(7)에게 193 단계에서 선택된 웹페이지의 복구를 요청한다. 즉, 194 단계에서 RUI 클라이언트 2(402)는 RUI 서버(7)에게 RUI 서버(7)의 상태 정보 및 RUI 클라이언트 1(401)의 상태 정보가 저장된 장소의 위치 정보 URL를 제공함으로서 원격 사용자 인터페이스의 어플리케이션을 시작할 것을 요청한다.
195 단계에서 RUI 서버(7)는 194 단계에서 제공된 RUI 서버(7)의 상태 정보를 이용하여 웹페이지에서의 RUI 서버(7)의 상태를 복구한다. 이어서, 195 단계에서 RUI 서버(7)는 RUI 클라이언트 2(402)가 194 단계에서 제공된 RUI 클라이언트 1(401)의 상태 정보가 저장된 장소의 위치 정보 URL를 이용하여 RUI 클라이언트 1(401)의 상태 정보를 획득할 수 있도록 하는 자바 스크립트를 포함하는 세이버블 페이지를 생성하고, 이것을 RUI 클라이언트 2(402)에게 반환한다.
196 단계에서 RUI 클라이언트 2(402)는 195 단계에서 반환된 세이버블 페이지의 자바 스크립트를 실행함으로써 RUI 클라이언트 1(401)의 상태 정보가 저장된 장소의 위치 정보 URL를 이용하여 SS 서버(10)로부터 193 단계에서 선택된 웹페이지를 복구하는데 요구되는 RUI 클라이언트 1(401)의 상태 정보를 획득한다. 특히, 196 단계에서 RUI 클라이언트 2(402)는 HTTP 오브젝트(432)를 이용하여 SS 서버(10)로부터 RUI 클라이언트 1(401)의 상태 정보를 획득한다.
즉, 196 단계에서 RUI 클라이언트 2(402)는 원격 사용자 인터페이스에 해당하는 웹페이지에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 이 소켓을 통하여 SS 서버(10)에 RUI 클라이언트 1(401)의 상태 정보를 요청한다. 이어서, 196 단계에서 RUI 클라이언트 2(402)는 이 소켓을 통하여 이 요청에 대한 응답을 수신하고, 이것으로부터 SS 서버(10)로부터 RUI 클라이언트 1(401)의 상태 정보를 획득한다.
197 단계에서 RUI 클라이언트 2(402)는 RUI 서버(7)로부터 반환된 세이버블 페이지(131)의 자바 스크립트를 실행함으로써 196 단계에서 획득된 RUI 클라이언트 1(401)의 상태 정보를 세이버블 페이지(131)에 반영하며, 이것을 통하여 웹페이지에서의 클라이언트 1(401)의 상태를 복구한다.
도 20은 도 7에 도시된 RUI 서버(7)와 도 10에 도시된 SS 서버(10)의 기능을 하나로 통합한 장치의 구성도이다.
도 20을 참조하면, 도 7에 도시된 RUI 서버(7)와 도 10에 도시된 SS 서버(10)의 기능을 하나로 통합한 장치는 RUI CD 모듈(201), 웹서버 모듈(202), RUI 어플리케이션 모듈(203), 상태 관리자(204), 세이브 핸들러(205), RUI 복구기(206) 및 상태 스토리지(207)로 구성된다. 이것은 도 7에 도시된 RUI 서버(7)와 도 10에 도시된 SS 서버(10)의 기능이 하나로 통합되어 있기 때문에 SS 서버를 선택하는 과정이 필요 없다. 따라서, 도 7에 도시된 SS 서버 선택기(76)에 대응하는 구성 요소가 생략되었다. 즉, 도 8a-8b 또는 도 9a-9b에 도시된 세이버블 페이지 중 "setserverstate()"에서 "startSelectingSSS()"를 호출하지 않고, 바로 도 20에 도시된 장치 자신의 URL을 인수(argument)로 하여 save() 함수를 호출할 수 있을 것이다.
본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면, 이상에서 설명된 실시예들을 바탕으로 도 20에 도시된 구성 이외에도 다양한 모습의 구성을 설계할 수 있음을 이해할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, RUI 클라이언트는 웹페이지의 리로드(reload) 없이 HTTP 요청을 처리하는 HTTP 오브젝트를 이용하여 원격 사용자 인터페이스의 상태 정보의 저장을 외부의 스토리지 서버에 요청하고, 이후 이 곳에 저장된 상태 정보를 이용하여 원격 사용자 인터페이스의 이전 상태를 복구함으로서 UPnP에서의 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는 과정이 원격 사용자 인터페이스의 상태 정보를 저장하지 않는 스테이트리스 특성을 가진 HTTP를 기반으로 하는 원격 프로토콜 모델에도 적용될 수 있다는 효과가 있다.
특히, 상기된 바와 같이, 웹페이지의 리로드(reload) 없이 HTTP 요청을 처리하는 HTTP 오브젝트를 이용함으로서 웹페이지의 리로드에 요구되는 복잡한 인터랙션(interaction)이 필요 없게되어 매우 간단한 인터랙션만으로 스테이트리스 특성 을 가진 HTTP를 기반의 원격 사용자 인터페이스를 복원할 수 있다는 효과가 있다.
나아가, 본 발명에 따르면, 사용자에게 스토리지 서버의 정보를 표시함으로서 사용자가 원격 사용자 인터페이스의 상태 정보를 저장할 스토리지 서버를 선택할 수도 있도록 하였다는 효과가 있다. 또한, 본 발명에 따르면, 사용자에게 복구 페이지들의 목록을 표시함으로서 사용자가 스토리지 서버에 저장된 상태 정보가 존재하는 여러 웹페이지들 중 복구하기를 원하는 웹페이지를 선택할 수 있도록 하였다는 효과가 있다.

Claims (26)

  1. 서버로부터 원격 사용자 인터페이스를 제공받은 클라이언트에서의 상기 원격 사용자 인터페이스의 상태 정보를 저장할 것을 요청하는 방법에 있어서,
    (a) 상기 원격 사용자 인터페이스의 리로드(reload) 없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상태 정보를 획득하는 단계; 및
    (b) 상기 획득된 상태 정보의 저장을 요청하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 원격 사용자 인터페이스는 상기 상태 정보를 저장하지 않는 스테이트리스(stateless) 프로토콜을 기반으로 하는 웹페이지인 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 오브젝트는 상기 웹 페이지의 리로드(reload) 없이 상기 소정의 요청을 처리하는 자바스크립트 오브젝트인 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 (a) 단계는 상기 원격 사용자 인터페이스에 의해 사용 중인 소켓이 아 닌 새로운 소켓을 오픈하고, 상기 새로운 소켓을 통하여 상기 상태 정보를 획득하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 (b) 단계는 상기 원격 사용자 인터페이스에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 상기 새로운 소켓을 통하여 상기 상태 정보의 저장을 요청하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 (b) 단계는 상기 상태 정보를 저장할 스토리지를 제공하는 스토리지 서버에 상기 획득된 상태 정보의 저장을 요청하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    사용자에 의해 상기 상태 정보를 저장할 스토리지 서버로서 상기 스토리지 서버를 선택받는 단계를 더 포함하고,
    상기 (b) 단계는 상기 선택된 스토리지 서버의 정보를 기반으로 상기 스토리지 서버에 상기 획득된 상태 정보의 저장을 요청하는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 (a) 단계는
    (a1) 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상기 서버의 상태 정보를 획득하는 단계; 및
    (a2) 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상기 클라이언트의 상태 정보를 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    사용자로부터 상기 상태 정보에 대한 저장 명령을 수신하면, 상기 서버로 상기 서버의 상태 정보를 제공하여 줄 것을 요청하는 단계를 더 포함하고,
    상기 (a1) 단계는 상기 요청에 대한 응답으로부터 상기 서버의 상태 정보를 획득하는 것을 특징으로 하는 방법.
  10. 제 8 항에 있어서,
    상기 (a2) 단계는 상기 원격 사용자 인터페이스로부터 상기 상태 정보를 읽어들임으로서 상기 클라이언트의 상태 정보를 획득하는 것을 특징으로 하는 방법.
  11. 제 1 항 내지 제 10 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  12. 서버에 의해 제공된 원격 사용자 인터페이스를 이용하는 클라이언트에서의 상기 원격 사용자 인터페이스의 상태 정보를 저장할 것을 요청하는 장치에 있어서,
    상기 상태 정보를 저장할 스토리지를 제공하는 스토리지 서버의 정보를 획득하는 RUI CP(Remote User Interface Control Point) 모듈; 및
    상기 원격 사용자 인터페이스의 리로드(reload) 없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 RUI CP 모듈에 의해 획득된 스토리지 서버의 정보를 기반으로 상기 스토리지 서버에 상기 상태 정보의 저장을 요청하는 웹브라우저 모듈을 포함하는 것을 특징으로 하는 장치.
  13. 제 12 항에 있어서,
    상기 웹브라우저 모듈은 상기 오브젝트를 이용하여 상기 클라이언트에 의해 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상태 정보를 획득하고, 상기 획득된 상태 정보의 저장을 요청하는 것을 특징으로 하는 장치.
  14. 제 10 항에 있어서,
    상기 RUI CP 모듈은 UPnP(Universal Plug and Play)의 발견 과정에서 상기 스토리지 서버의 정보를 획득하는 것을 특징으로 하는 장치.
  15. 서버로부터 원격 사용자 인터페이스를 제공받은 클라이언트에서의 상기 원격 사용자 인터페이스의 상태 정보를 복구하는 방법에 있어서,
    (a) 상기 원격 사용자 인터페이스의 리로드(reload) 없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 원격 사용자 인터페이스가 이용됨으로서 발생되 는 상태 정보를 획득하는 단계; 및
    (b) 상기 획득된 상태 정보를 상기 원격 사용자 인터페이스에 반영하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 제 15 항에 있어서,
    상기 원격 사용자 인터페이스는 상기 상태 정보를 저장하지 않는 스테이트리스(stateless) 프로토콜을 기반으로 하는 웹페이지인 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서,
    상기 오브젝트는 상기 웹 페이지의 리로드(reload) 없이 상기 소정의 요청을 처리하는 자바스크립트 오브젝트인 것을 특징으로 하는 방법.
  18. 제 15 항에 있어서,
    상기 (a) 단계는 상기 원격 사용자 인터페이스에 의해 사용 중인 소켓이 아닌 새로운 소켓을 오픈하고, 상기 새로운 소켓을 통하여 상기 상태 정보를 획득하는 것을 특징으로 하는 방법.
  19. 제 15 항에 있어서,
    상기 (a) 단계는 상기 상태 정보를 저장한 스토리지를 제공하는 스토리지 서버로부터 상기 상태 정보를 획득하는 것을 특징으로 하는 방법.
  20. 제 15 항에 있어서,
    상기 (a) 단계는 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상기 클라이언트의 상태 정보를 획득하고,
    상기 (b) 단계는 상기 획득된 클라이언트의 상태 정보를 상기 원격 사용자 인터페이스에 반영하는 것을 특징으로 하는 방법.
  21. 제 15 항에 있어서,
    상기 (a) 단계는 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상기 서버의 상태 정보를 획득하고,
    상기 획득된 서버의 상태 정보를 상기 서버에 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  22. 제 15 항에 있어서,
    사용자에게 사용자의 선택에 의해 복구 가능한 웹페이지들의 목록을 표시하고, 상기 표시를 인지한 사용자로부터 어느 하나의 웹페이지를 선택받는 단계를 더 포함하고,
    상기 (a) 단계는 상기 웹페이지를 복구하는데 요구되는 상태 정보를 획득하는 것을 특징으로 하는 방법.
  23. 제 15 항 내지 제 22 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  24. 서버로부터 원격 사용자 인터페이스를 제공받은 클라이언트에서의 상기 원격 사용자 인터페이스의 상태 정보를 복구하는 장치에 있어서,
    상기 상태 정보를 저장한 스토리지를 제공하는 스토리지 서버의 정보를 획득하는 RUI CP(Remote User Interface Control Point) 모듈; 및
    상기 원격 사용자 인터페이스의 리로드(reload) 없이 소정의 요청을 처리하는 오브젝트를 이용하여 상기 RUI CP 모듈에 의해 획득된 스토리지 서버의 정보를 기반으로 상기 스토리지 서버로부터 상기 상태 정보를 획득하고, 상기 획득된 상태 정보를 상기 원격 사용자 인터페이스에 반영하는 웹브라우저 모듈을 포함하는 것을 특징으로 하는 장치.
  25. 제 24 항에 있어서,
    상기 웹브라우저 모듈은 상기 오브젝트를 이용하여 상기 스토리지 서버에 상기 클라이언트에 의해 상기 원격 사용자 인터페이스가 이용됨으로서 발생되는 상태 정보를 요청하고, 상기 요청에 대한 응답으로서 상기 상태 정보를 획득하는 것을 특징으로 하는 장치.
  26. 제 24 항에 있어서,
    상기 RUI CP 모듈은 UPnP(Universal Plug and Play)의 발견 과정에서 상기 스토리지 서버의 정보를 획득하는 것을 특징으로 하는 장치.
KR1020060042617A 2006-01-12 2006-05-11 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치 KR100788693B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP07100066.5A EP1808789B1 (en) 2006-01-12 2007-01-03 Improvements in and relating to remote user interfaces
EP10173160.2A EP2256646B1 (en) 2006-01-12 2007-01-03 Improvements in and relating to remote user interfaces
JP2007003885A JP5122825B2 (ja) 2006-01-12 2007-01-11 状態情報の保存を要請する方法及び装置、状態情報を復旧する方法及び装置並びに記憶媒体
US11/652,489 US9094369B2 (en) 2006-01-12 2007-01-12 Method and apparatus for storing and restoring state information of remote user interface
CN2007100003565A CN101001260B (zh) 2006-01-12 2007-01-12 存储和恢复远程用户接口的状态信息的方法和设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75821906P 2006-01-12 2006-01-12
US60/758,219 2006-01-12

Publications (2)

Publication Number Publication Date
KR20070075233A KR20070075233A (ko) 2007-07-18
KR100788693B1 true KR100788693B1 (ko) 2007-12-26

Family

ID=38500413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060042617A KR100788693B1 (ko) 2006-01-12 2006-05-11 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치

Country Status (5)

Country Link
US (1) US9094369B2 (ko)
EP (2) EP2256646B1 (ko)
JP (1) JP5122825B2 (ko)
KR (1) KR100788693B1 (ko)
CN (1) CN101001260B (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788693B1 (ko) * 2006-01-12 2007-12-26 삼성전자주식회사 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치
KR101453956B1 (ko) * 2008-01-14 2014-10-24 삼성전자주식회사 임베디드 브라우져 에이젼트를 기반으로 하는 디바이스 및 방법
US7912927B2 (en) * 2008-03-26 2011-03-22 Microsoft Corporation Wait for ready state
US8196118B2 (en) 2008-03-27 2012-06-05 Microsoft Corporation Event set recording
JP5151696B2 (ja) * 2008-05-30 2013-02-27 富士通株式会社 ユニフォームリソースロケータ情報を書き換えるプログラム
WO2010002411A1 (en) * 2008-07-03 2010-01-07 Hewlett-Packard Development Company, L.P. Memory server
KR101580839B1 (ko) * 2008-08-05 2015-12-29 삼성전자주식회사 홈 네트워크에서 rui 서버의 이벤트를 통지하는 방법 및이를 위한 장치
US9582292B2 (en) * 2008-10-07 2017-02-28 Microsoft Technology Licensing, Llc. Merged tree-view UI objects
KR101647144B1 (ko) * 2008-11-03 2016-08-23 삼성전자주식회사 원격 유저 인터페이스 서비스에서 리소스에 대한 제어 방법, 장치 및 그 저장 매체
KR20100049474A (ko) * 2008-11-03 2010-05-12 삼성전자주식회사 원격 사용자 인터페이스를 다른 디바이스로 이전하기 위한 장치 및 방법
KR101485806B1 (ko) 2009-05-28 2015-01-23 삼성전자주식회사 원격 유저 인터페이스를 지원하는 홈 네트워크에서 이벤트 처리 방법 및 이를 위한 장치
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
US20110296460A1 (en) * 2010-05-31 2011-12-01 Samsung Electronics Co., Ltd. Method and apparatus for providing remote user interface (ui) service
KR20120039237A (ko) * 2010-10-15 2012-04-25 삼성전자주식회사 사용자 인터페이스 갱신 방법 및 장치
KR20120039180A (ko) * 2010-10-15 2012-04-25 삼성전자주식회사 홈 네트워크에서 사용자 인터페이스 페이지 제공 장치 및 방법
KR20130099520A (ko) * 2012-02-29 2013-09-06 삼성전자주식회사 Html을 이용한 사용자 인터페이스 이전 장치 및 방법
CN103368980B (zh) * 2012-03-26 2018-02-16 财付通支付科技有限公司 一种jsonp数据请求方法和装置
US9842091B2 (en) * 2013-03-15 2017-12-12 Google Llc Switching to and from native web applications
CN104077117A (zh) * 2013-03-26 2014-10-01 联想(北京)有限公司 信息处理方法和控制点设备
CN104579860B (zh) * 2013-10-25 2018-10-12 华为终端有限公司 访问网络侧服务的方法、服务器和系统
US10025702B1 (en) 2014-12-10 2018-07-17 Amazon Technologies, Inc. Browser capable of saving and restoring content item state

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040026389A (ko) * 2002-09-24 2004-03-31 주식회사 넷츠고 커뮤니케이터 사용자 상태정보 제공방법
US6763371B1 (en) 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3977484B2 (ja) 1997-05-08 2007-09-19 矢崎総業株式会社 状態情報の管理方法及び通信システム
US6324564B1 (en) * 1998-06-02 2001-11-27 Nettech Systems, Inc. Optimized wireless communication system
JP2000020472A (ja) * 1998-06-30 2000-01-21 Nec Home Electron Ltd 情報処理装置
US6725281B1 (en) * 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US6711618B1 (en) * 1999-09-03 2004-03-23 Cisco Technology, Inc. Apparatus and method for providing server state and attribute management for voice enabled web applications
US6820111B1 (en) * 1999-12-07 2004-11-16 Microsoft Corporation Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history
JP2004501428A (ja) * 2000-05-09 2004-01-15 サン・マイクロシステムズ・インコーポレイテッド サービスの近接発見の方法および装置
US7194689B2 (en) * 2000-08-22 2007-03-20 Microsoft Corporation Generic user control point tool for universal plug and play (UPnP) devices
US20050066037A1 (en) * 2002-04-10 2005-03-24 Yu Song Browser session mobility system for multi-platform applications
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
KR100440583B1 (ko) * 2002-05-16 2004-07-19 한국전자통신연구원 외부 인터넷에 의한 댁내망의 UPnP장치 관리제어 장치및 방법
JP4391766B2 (ja) * 2002-05-31 2009-12-24 株式会社エヌ・ティ・ティ・ドコモ マルチプラットフォームアプリケーションのためのブラウザセッションモビリティシステム
NO319854B1 (no) * 2003-04-04 2005-09-26 Telenor Asa Fremgangsmate og system for handtering av web-sesjoner
US7440997B2 (en) * 2003-06-13 2008-10-21 Microsoft Corporation Mechanism for supporting browser navigation while preserving important application return states
US7266550B2 (en) * 2004-01-29 2007-09-04 Sap Aktiengesellschaft Managing application status information for a computer application
KR20050077672A (ko) * 2004-01-30 2005-08-03 엘지전자 주식회사 미디어 파일 중계 서비스 방법 및 시스템
JP4337591B2 (ja) * 2004-03-19 2009-09-30 株式会社日立製作所 情報処理装置、ネットワークシステムおよびネットワークシステムの制御方法
KR100631708B1 (ko) * 2004-06-16 2006-10-09 엘지전자 주식회사 푸쉬 투 토크 서비스를 제공하는 단말기, 푸쉬 투 토크 서비스를 이용한 친구 소개 시스템 및 그 방법
US7562131B2 (en) * 2004-06-25 2009-07-14 Intel Corporation UPnP user interface system and method
US20060168526A1 (en) * 2005-01-12 2006-07-27 Nokia Corporation Platform-specific application user interface remoting
US20060200570A1 (en) * 2005-03-02 2006-09-07 Nokia Corporation Discovering and mounting network file systems via ad hoc, peer-to-peer networks
US7770229B2 (en) * 2005-05-11 2010-08-03 Yahoo! Inc. System and method for the propagation of DRM protected content
JP5021184B2 (ja) * 2005-06-09 2012-09-05 富士通株式会社 機器情報提供装置および機器情報提供方法
US20070005783A1 (en) * 2005-06-30 2007-01-04 Intel Corporation Systems, methods, and media for controlling a media connection from within a remoting protocol
US7844442B2 (en) * 2005-08-16 2010-11-30 Exent Technologies, Ltd. System and method for providing a remote user interface for an application executing on a computing device
US20070067305A1 (en) * 2005-09-21 2007-03-22 Stephen Ives Display of search results on mobile device browser with background process
KR100736090B1 (ko) * 2005-09-28 2007-07-06 삼성전자주식회사 홈 네트워크에서 제 3의 장치의 이벤트를 처리하는 방법 및장치
KR100788693B1 (ko) * 2006-01-12 2007-12-26 삼성전자주식회사 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치
KR100813969B1 (ko) * 2006-01-18 2008-03-14 삼성전자주식회사 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763371B1 (en) 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
KR20040026389A (ko) * 2002-09-24 2004-03-31 주식회사 넷츠고 커뮤니케이터 사용자 상태정보 제공방법

Also Published As

Publication number Publication date
JP5122825B2 (ja) 2013-01-16
US9094369B2 (en) 2015-07-28
EP2256646B1 (en) 2016-08-24
EP2256646A1 (en) 2010-12-01
EP1808789A2 (en) 2007-07-18
KR20070075233A (ko) 2007-07-18
EP1808789B1 (en) 2016-08-17
JP2007188507A (ja) 2007-07-26
EP1808789A3 (en) 2007-09-19
CN101001260A (zh) 2007-07-18
CN101001260B (zh) 2013-03-06
US20070174300A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
KR100788693B1 (ko) 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치
KR100813969B1 (ko) 원격 사용자 인터페이스의 상태 정보를 저장하고 복구하는방법 및 장치
KR101125847B1 (ko) UPnP 디바이스와 RUI 클라이언트를 중계하는 방법및 이를 위한 장치
KR101616580B1 (ko) 원격 사용자 인터페이스 관리방법 및 장치
JP5675739B2 (ja) 外部通信ネットワークからホームネットワークを制御する方法及び装置
US7194689B2 (en) Generic user control point tool for universal plug and play (UPnP) devices
RU2448362C2 (ru) Отображение обнаруженных элементов универсального режима &#34;подключай и работай&#34; на местоположение smb
CN105409183B (zh) 用于在html5应用中实现任何网络功能客户端或服务器的系统和设备
KR20080097035A (ko) 홈 네트워크 기기 제어 서비스 및/또는 인터넷 서비스방법과 그 장치
US20040133896A1 (en) Network device application interface
JP2005519353A (ja) 異なるネットワークの装置間の通信のインタフェースになる方法及び装置
EP2062391A1 (en) Apparatus and method for matching protocols of embedded audio/video contents
KR100823269B1 (ko) 원격 사용자 인터페이스의 상태 정보를 관리하는 방법
EP1816554A2 (en) Method of accessing storage and storage access apparatus
US8782717B2 (en) Method of restoring AV session and a control point for the same
JP2008204269A (ja) サーバ装置、クライアント装置、通信方法およびプログラム
US20070097436A1 (en) Data-control device and method of controlling same
WO2014117706A1 (zh) 用于实现网络意图的方法及装置
WO2007122689A1 (ja) クライアントサーバシステム、クライアント装置、キャッシュサーバ装置、及びデータ処理方法

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

Payment date: 20121129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161129

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171129

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181129

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20191128

Year of fee payment: 13