KR20120090386A - 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트 - Google Patents

캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트 Download PDF

Info

Publication number
KR20120090386A
KR20120090386A KR1020110010769A KR20110010769A KR20120090386A KR 20120090386 A KR20120090386 A KR 20120090386A KR 1020110010769 A KR1020110010769 A KR 1020110010769A KR 20110010769 A KR20110010769 A KR 20110010769A KR 20120090386 A KR20120090386 A KR 20120090386A
Authority
KR
South Korea
Prior art keywords
user interface
remote user
client
server
html data
Prior art date
Application number
KR1020110010769A
Other languages
English (en)
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 KR1020110010769A priority Critical patent/KR20120090386A/ko
Publication of KR20120090386A publication Critical patent/KR20120090386A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 원격 사용자 인터페이스를 전송하는 서버 및 원격 사용자 인터페이스를 수신하는 클라이언트에 관한 것이다. HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하고, 원격 사용자 인터페이스의 HTML 데이터를 클라이언트에게 전송하는 서버의 원격 사용자 인터페이스 전송 방법이 개시된다. 서버에게 원격 사용자 인터페이스를 요청하고, 서버로부터 HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신하는 클라이언트의 원격 사용자 인터페이스 수신 방법이 개시된다.

Description

캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트{Method and Server for transmitting graphic-based remote user interface using canvas object, method and client for receiving graphic-based remote user interface using canvas object}
본 발명은 원격 사용자 인터페이스를 전송하는 서버 및 원격 사용자 인터페이스를 수신하는 클라이언트에 관한 것이다.
클라이언트는 서버가 제공하는 원격 사용자 인터페이스(Remote User Interface)를 통해, 서버의 서비스를 이용하거나 제어할 수 있다. 클라이언트가 HTTP (Hypertext transfer Protocol), SOAP(Simple Object Access Protocol) 등의 웹 서비스를 위한 프로토콜을 통해 서버에게 원격 사용자 인터페이스를 요청하는 경우, 서버는 원격 사용자 인터페이스를 클라이언트에게 전송한다.
원격 사용자 인터페이스를 구성하기 위해, 텍스트 기반의 HTML (Hyper Text Markup Language)를 이용하는 CEA-2014 표준, 또는 이미지 기반의 RDP (Remote Desktop Protocol) 등이 이용되고 있다.
클라이언트는 서버로부터 전송된 원격 사용자 인터페이스의 HTML 문서를 판독하여 원격 사용자 인터페이스를 생성하여 화면에 표시한다. 서버가 CEA-2014 표준에 기초하여 구성된 원격 사용자 인터페이스를 전송하는 경우, 원격 사용자 인터페이스의 HTML 문서는 텍스트만을 포함하므로, 서버의 고유한 유저 인터페이스의 룩 앤드 필(Look and Feel) 기능을 클라이언트가 구현할 수 없는 경우가 발생할 수 있다. 또한, 클라이언트의 캐퍼빌리티(Capability)에 따라, 클라이언트가 서버의 의도대로 사용자 인터페이스를 구현할 수 없는 경우가 발생하기도 있다.
또한, 서버는 클라이언트의 요청에 의해서 사용자 인터페이스를 전송하므로, 클라이언트의 요청이 없을 경우 실시간으로 변경되는 원격 사용자 인터페이스를 전송할 수 없다는 한계가 있다.
본 발명은, 그래픽 기반의 원격 사용자 인터페이스를 송수신하는 서버와 클라이언트를 개시하고, 서버가 능동적으로 원격 사용자 인터페이스의 업데이트 이벤트를 클라이언트에게 전송하는 방법, 클라이언트가 서버로부터 수신한 원격 사용자 인터페이스의 업데이트 이벤트에 기초하여 원격 사용자 인터페이스를 갱신하는 방법을 개시한다.
본 발명의 일 실시예에 따른 클라이언트가 원격 사용자 인터페이스를 수신하는 방법은, 서버에게 상기 원격 사용자 인터페이스를 요청하는 단계; 및 상기 서버로부터 HTML(HyperText Mark-up Language)의 캔버스 오브젝트(canvas object)를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신하는 단계를 포함한다.
일 실시예에 따른 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은, 상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 이용하여 상기 원격 사용자 인터페이스 화면을 생성하는 단계를 더 포함한다. 일 실시예에 따른 상기 원격 사용자 인터페이스 화면 생성 단계는, 상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 파싱하여 상기 캔버스 오브젝트를 생성하고, 상기 캔버스 오브젝트를 이용하여 상기 HTML 데이터에 포함된 그래픽 데이터를 렌더링하는 단계를 포함한다.
일 실시예에 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은, 클라이언트-서버 간 양방향 통신 채널을 생성하는 단계를 더 포함한다. 일 실시예에 따른 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은, 상기 클라이언트-서버 간 양방향 통신 채널을 통해, 상기 서버로부터 상기 원격 사용자 인터페이스의 업데이트 이벤트를 수신하는 단계를 더 포함한다.
일 실시예에 따른 상기 원격 사용자 인터페이스 화면 갱신 단계는, 상기 수신된 원격 사용자 인터페이스의 업데이트 이벤트에 기초하여, DOM 트리를 갱신하는 단계; 상기 갱신된 DOM 트리에 기초하여 변경된 상기 캔버스 오브젝트를 이용하여 상기 그래픽 데이터를 렌더링하여 상기 원격 사용자 인터페이스 화면을 갱신하는 단계를 포함한다.
본 발명의 일 실시예에 따른 서버가 원격 사용자 인터페이스를 전송하는 방법은, HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하는 단계; 및 상기 원격 사용자 인터페이스의 HTML 데이터를 클라이언트에게 전송하는 단계를 포함한다. 일 실시예에 따른 상기 원격 사용자 인터페이스의 HTML 데이터 생성 단계는, 상기 원격 사용자 인터페이스의 HTML 데이터에 상기 클라이언트-서버 간 양방향 통신을 위한 플러그인 오브젝트를 포함시키는 단계를 포함한다.
일 실시예에 따른 상기 클라이언트의 원격 사용자 인터페이스 전송 방법은, 클라이언트-서버 간 양방향 통신 채널을 제공하는 단계를 더 포함한다. 일 실시예에 따른 상기 클라이언트의 원격 사용자 인터페이스 전송 방법은, 상기 클라이언트-서버 간 양방향 통신 채널을 통해, 상기 원격 사용자 인터페이스의 업데이트 이벤트를 상기 클라이언트에게로 전송하는 단계를 더 포함한다.
일 실시예에 따른 상기 업데이트 이벤트 전송 단계는, XML 형식의 원격 사용자 인터페이스의 업데이트 이벤트를 생성하는 단계; 및 상기 원격 사용자 인터페이스의 업데이트 이벤트에 XML 기반의 드로잉 프리미티브를 포함시키는 단계를 포함한다.
본 발명의 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트는, 서버에게 상기 원격 사용자 인터페이스를 요청하여, 상기 서버로부터 HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신하고, 상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 이용하여 상기 원격 사용자 인터페이스 화면을 생성하는 웹 브라우저 구동부를 포함한다. 일 실시예에 따른 상기 웹 브라우저 구동부는, 상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 파싱하여 상기 캔버스 오브젝트를 생성하고, 상기 캔버스 오브젝트를 이용하여 상기 HTML 데이터에 포함된 그래픽 데이터를 렌더링하는 캔버스 처리부를 포함한다.
본 발명의 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트는, 서버에게 상기 원격 사용자 인터페이스를 요청하여, 상기 서버로부터 HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신하고, 상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 이용하여 상기 원격 사용자 인터페이스 화면을 생성하는 웹 브라우저 구동부; 및 상기 서버로부터 상기 원격 사용자 인터페이스의 업데이트 이벤트를 수신하기 위한 클라이언트-서버 간 양방향 통신 채널을 제공하는 원격 UI 통신부를 더 포함한다.
본 발명의 일 실시예에 따른 원격 사용자 인터페이스를 전송하는 서버는, HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하여 클라이언트에게 전송하는 웹 서버 구동부를 포함한다.
본 발명의 일 실시예에 따른 원격 사용자 인터페이스를 전송하는 서버는, HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하여 클라이언트에게 전송하는 웹 서버 구동부; 및 상기 클라이언트에게 상기 원격 사용자 인터페이스의 업데이트 이벤트를 전송하기 위한 클라이언트-서버 간 양방향 통신 채널을 제공하는 원격 UI 통신부를 포함한다. 일 실시예에 따른 상기 서버는, XML 형식을 따르는 원격 사용자 인터페이스의 업데이트 이벤트를 생성하고, XML 기반의 드로잉 프리미티브를 포함하는 상기 업데이트 이벤트를 제공하는 원격 UI 갱신부를 더 포함한다.
본 발명은, 일 실시예에 따른 클라이언트의 원격 사용자 인터페이스 수신 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체를 포함한다.
본 발명은, 일 실시예에 따른 서버의 원격 사용자 인터페이스 전송 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체를 포함한다.
도 1 은 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트의 블록도를 도시한다.
도 2 은 일 실시예에 따른 원격 사용자 인터페이스를 전송하는 서버의 블록도를 도시한다.
도 3 은 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트와 원격 사용자 인터페이스를 전송하는 서버의 세부 블록도를 도시한다.
도 4 은 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트의 원격 UI 통신부의 세부 블록도를 도시한다.
도 5 은 일 실시예에 따라 클라이언트가 원격 사용자 인터페이스를 수신하는 방법의 흐름도를 도시한다.
도 6 은 일 실시예에 따라 클라이언트가 원격 사용자 인터페이스의 업데이터 이벤트를 수신하는 방법의 흐름도를 도시한다.
도 7 은 일 실시예에 따라 서버가 원격 사용자 인터페이스를 전송하는 방법의 흐름도를 도시한다.
도 8 은 일 실시예에 따라 서버가 원격 사용자 인터페이스의 업데이터 이벤트를 전송하는 방법의 흐름도를 도시한다.
도 9 는 일 실시예에 따라 클라이언트와 서버 간에 원격 사용자 인터페이스를 송수신하는 방법의 흐름도를 도시한다.
이하 도 1 내지 도 9를 참조하여, 본 발명의 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트와 일 실시예에 따른 원격 사용자 인터페이스를 전송하는 서버가 개시된다. 또한, 일 실시예에 따른 서버가 원격 사용자 인터페이스의 업데이트 이벤트를 전송하는 방법 및 일 실시예에 따른 클라이언트가 서버로부터 수신한 업데이트 이벤트를 이용하여 원격 사용자 인터페이스를 갱신하는 방법이 개시된다.
도 1 은 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트(100)의 블록도를 도시한다.
일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트(100)는 웹 문서를 판독하여 화면 상에 표시하기 위한 웹 브라우저를 구동하는 웹 브라우저 구동부(110)를 포함한다.
일 실시예에 따른 웹 브라우저 구동부(110)는, 일 실시예에 따른 서버(200)에게 원격 사용자 인터페이스를 요청한다. 일 실시예에 따른 웹 브라우저 구동부(110)는, HTTP을 통해 일 실시예에 따른 서버(200)에게 원격 사용자 인터페이스를 요청할 수 있다.
일 실시예에 따른 원격 사용자 인터페이스 표준인 CEA-2014 기반의 HTML 데이터일 수 있다. 일 실시예에 따른 서버(200)로부터 전송되는 원격 사용자 인터페이스는, 원격 사용자 인터페이스의 HTML 데이터에 캔버스 오브젝트(Canvas Object)를 포함하는 그래픽 기반의 원격 사용자 인터페이스일 수 있다. 일 실시예에 따른 웹 브라우저 구동부(110)는, 서버(200)로부터 원격 사용자 인터페이스의 HTML 데이터를 수신하고, 이를 이용하여 원격 사용자 인터페이스 화면을 생성한다.
캔버스 오브젝트는 HTML(Hypertext Markup Language)에서 새롭게 도입된 개념의 오브젝트로서, 텍스트 기반의 HTML 데이터에 기초하여 사용자 인터페이스가 구성될 때 2차원의 비트맵 이미지 렌더링을 가능하게 한다. DOM 인터페이스(Document Object Model Interface)를 통해, 스크립트에 의해 캔버스 오브젝트에 기초한 그래픽 랜더링이 제어된다.
일 실시예에 따른 웹 브라우저 구동부(110)는, 수신한 원격 사용자 인터페이스의 HTML 데이터를 파싱하여 판독함으로써 서버(200)가 제공하는 원격 사용자 인터페이스 화면을 구성할 수 있다. 일 실시예에 따른 웹 브라우저 구동부(110)는, 파싱된 HTML 데이터에 캔버스 오브젝트가 존재하면, 캔버스 오브젝트를 구동하여 캔버스를 생성하고, 캔버스 상에 이미지 등의 그래픽 데이터를 렌더링할 수 있다. 따라서, 일 실시예에 따른 클라이언트(100)는, 원격 사용자 인터페이스의 HTML 데이터에 포함된 캔버스 오브젝트를 이용하여 그래픽 렌더링을 수행함으로써 원격 사용자 인터페이스를 구성하여, 그래픽 기반의 원격 사용자 인터페이스 화면을 사용자에게 제공할 수 있다.
일 실시예에 따른 웹 브라우저 구동부(110)는, 수신한 원격 사용자 인터페이스의 HTML 데이터로부터 캔버스 오브젝트를 제어하기 위한 스크립트를 추출하고, 스크립트를 판독하여 DOM 인터페이스를 통해 캔버스 오브젝트를 제어함으로써 캔버스 오브젝트를 이용한 그래픽 렌더링을 수행할 수 있다.
도 2 은 일 실시예에 따른 원격 사용자 인터페이스를 전송하는 서버(200)의 블록도를 도시한다.
일 실시예에 따른 원격 사용자 인터페이스를 전송하는 서버(200)는, 클라이언트(100)에게 원격 사용자 인터페이스를 전송하기 위한 웹 서버 구동부(200)를 포함한다. 웹 서버 구동부(200)는, 원격 사용자 인터페이스의 데이터를 전송할 수 있다. 일 실시예에 따른 원격 사용자 인터페이스의 데이터는, CEA-2014 표준을 따르는 HTML 형식의 데이터로, 캔버스 오브젝트가 포함될 수 있다. 웹 서버 구동부(200)는, 원격 사용자 인터페이스의 HTML 데이터에 캔버스 오브젝트를 제어하기 위한 스크립트를 포함하여 전송할 수도 있다.
따라서 일 실시예에 따른 클라이언트(100)는, 일 실시예에 따른 서버(200)로부터 전송된 원격 사용자 인터페이스의 HTML 데이터를 수신하여 캔버스 오브젝트를 생성하고, 캔버스 오브젝트를 이용하여 그래픽 데이터를 렌더링함으로써, 서버(200)가 의도하는 GUI(Graphic User Interface)를 제공하는 그래픽 기반의 원격 사용자 인터페이스가 구현할 수 있다.
도 3 은 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트(100)와 원격 사용자 인터페이스를 전송하는 서버(200)의 세부 블록도를 도시한다.
일 실시예에 따른 원격 사용자 인터페이스 시스템(300)은, 일 실시예에 따른 클라이언트(100)와 서버(200)를 포함한다. 서버(200)는 원격 사용자 인터페이스를 제공하고, 클라이언트(100)는 서버(200)로부터 제공된 원격 사용자 인터페이스를 구현하여 사용자에게 보여주고, 사용자와의 상호작용을 통해 원격지의 서버(200)를 제어할 수 있다.
일 실시예에 따른 클라이언트(100)는 웹 브라우저 구동부(110), 캔버스 처리부(320) 및 원격 UI 통신부(350)를 포함하고, 일 실시예에 따른 서버(200)는 웹 서버 구동부(210), 원격 UI 갱신부(330) 및 원격 UI 통신부(340)를 포함한다.
일 실시예에 따른 서버(200)의 웹 서버 구동부(210)는, 원격 사용자 인터페이스를 위한 캔버스 오브젝트를 포함하는 HTML 데이터를 클라이언트(100)의 웹 브라우저 구동부(110)에게 전송한다. 일 실시예에 따른 웹 서버 구동부(210)는, HTTP를 통한 클라이언트(100)의 요청에 기초하여, 원격 사용자 인터페이스의 HTML 데이터를 전송할 수도 있다.
일 실시예에 따른 웹 서버 구동부(210)는, 원격 사용자 인터페이스의 HTML 데이터에 클라이언트-서버 간 양방향 통신을 위한 플러그인(plugin)을 포함시켜 전송할 수 있다.
일 실시예에 따른 웹 브라우저 구동부(110)는 서버(200)의 웹 서버 구동부(210)로부터 원격 사용자 인터페이스를 위한 캔버스 오브젝트를 포함하는 HTML 데이터를 수신한다. 웹 브라우저 구동부(110)는 HTML 데이터에 포함된 캔버스 오브젝트를 생성할 수 있다.
일 실시예에 따른 캔버스 처리부(320)는 생성된 캔버스 오브젝트를 이용하여 캔버스 상에 그래픽 데이터를 렌더링할 수 있다. 캔버스 처리부(320)는 캔버스 오브젝트 제어를 위한 스크립트를 이용하여 그래픽 렌더링을 제어할 수 있다. 캔버스 처리부(320)는 HTML 데이터에 포함된 스크립트를 검출하면 이를 판독하여 DOM 트리를 생성하고, DOM 트리에 기초하여 캔버스 오브젝트가 캔버스에 그래픽 데이터를 렌더링하는 동작을 제어할 수 있다.
도 3에 웹 브라우저 구동부(110)와 캔버스 처리부(320)가 별도의 구성요소로 도시되어 있지만, 캔버스 처리부(320)의 캔버스 오브젝트의 처리 동작에 따라 웹 브라우저 구동부(110)의 원격 사용자 인터페이스 구성 동작이 완성되므로, 캔버스 처리부(320)를 포함하는 웹 브라우저 구동부(310)의 실시예도 가능하다.
일 실시예에 따른 웹 브라우저 구동부(110)는, 원격 사용자 인터페이스와 관련하여 서버(200)와 통신하기 위해, 원격 UI 통신부(350)를 호출한다. 일 실시예에 따른 원격 UI 통신부(350)는, 서버(200)와의 양방향 통신 채널을 생성한다. 일 실시예에 따른 원격 UI 통신부(350)는, 서버(200)로부터 수신한 원격 사용자 인터페이스의 HTML 데이터에 포함된 클라이언트-서버 간 양방향 통신을 위한 플러그인(plugin)을 구동하여, 클라이언트-서버 간 양방향 통신 채널을 생성할 수 있다.
일 실시예에 따른 서버(200)의 원격 UI 갱신부(330)는, 원격 사용자 인터페이스를 갱신한다. 일 실시예에 따른 원격 UI 갱신부(330)는 클라이언트(100)에게 전송된 원격 사용자 인터페이스를 갱신하기 위해, 서버(200)의 원격 UI 통신부(340)를 호출한다. 일 실시예에 따른 서버(200)의 원격 UI 통신부(340)는, 클라이언트(100)의 원격 UI 통신부(350) 간에 개설된 클라이언트-서버 간 양방향 통신 채널을 거쳐, 원격 사용자 인터페이스의 업데이트 이벤트를 원격 UI 통신부(350)에게 전송할 수 있다.
일 실시예에 따른 원격 UI 통신부(340)는, XML(eXtensible MarkUp Language) 형식을 따르는 업데이트 이벤트를 전송할 수 있다. 일 실시예에 따른 원격 UI 통신부(340)는, 서버(200)의 의도에 따라 원격 사용자 인터페이스를 갱신하기 위해, 원격 사용자 인터페이스의 그래픽이 변경되어 렌더링되도록, 캔버스 오브젝트를 제어하기 위한 XML 기반의 드로잉 프리미티브(Drawing Primitive)를 업데이트 이벤트에 포함시킬 수 있다.
일 실시예에 따른 원격 UI 통신부(350)는, 클라이언트-서버 간 양방향 통신 채널을 통해, 서버(200)로부터 원격 사용자 인터페이스의 업데이트 이벤트를 수신한다. 원격 UI 통신부(350)는 업데이트 이벤트에 포함된 드로잉 프리미티브를 판독하여 DOM 트리를 변경하고 갱신할 수 있다.
일 실시예에 따른 캔버스 처리부(320)가 갱신된 DOM 트리에 기초하여 캔버스 오브젝트를 제어함으로써, 캔버스에 그래픽 데이터가 갱신되어 렌더링되므로 원격 사용자 인터페이스 화면이 갱신될 수 있다.
도 4 은 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트(100)의 원격 UI 통신부(350)의 세부 블록도를 도시한다.
일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트(100)의 원격 UI 통신부(350)는, 이벤트 처리부(410), DOM 처리부(420), 캐퍼빌리티 처리부(430) 및 저장 복원 처리부(440)를 포함한다.
일 실시예에 따른 이벤트 처리부(410)는, 서버(200)와의 클라이언트-서버 양방향 통신 채널을 생성하고, 채널을 통해 서버(200)와 데이터를 주고 받을 수 있다. 특히 일 실시예에 따른 클라이언트(100)의 이벤트 처리부(4410)는 서버(200)의 서버 이벤트 처리부(450)로부터, 원격 사용자 인터페이스의 업데이트 이벤트를 포함하여, 원격 사용자 인터페이스에 대한 다양한 이벤트들을 수신할 수 있다.
일 실시예에 따른 DOM 처리부(420)는, 이벤트 처리부(410)가 수신한 원격 사용자 인터페이스의 업데이트 이벤트에 포함된 드로잉 프리미티브를 판독하여, DOM 트리를 갱신할 수 있다.
일 실시예에 따른 캐퍼빌리티 처리부(430)는, 클라이언트(100)의 캐퍼빌리티 오브젝트(470)로부터 캐퍼빌리티 정보를 제공받는다. 일 실시예에 따른 DOM 처리부(420)는, 캐퍼빌리티 처리부(430)가 제공하는 클라이언트(100)의 캐퍼빌리티 정보에 참조하여 DOM 트리를 갱신할 수 있다.
예를 들어, 캐퍼빌리티 오브젝트(470)는 클라이언트(100)의 화면 크기, 해상도, 컬러 포맷 등과 같이 클라이언트(100)가 구현할 수 있는 물리적 기능 및 기술적 기능에 대한 캐퍼빌리티 정보를 제공할 수 있다. 일 실시예에 따른 DOM 처리부(420)는, 원격 사용자 인터페이스의 업데이트 이벤트에 포함된 드로잉 프리미티브에 기초하여 DOM 트리를 갱신할 때, 클라이언트(100)의 캐퍼빌리티 정보를 참조하여, 클라이언트(100)에 의해 물리적으로나 기술적으로 구현 가능한 형식으로 DOM 트리를 갱신할 수 있다.
일 실시예에 따른 저장 복원 처리부(440)는, 웹 브라이저 구동부(110)에 의해 렌더링된 원격 사용자 인터페이스의 그래픽 데이터나 상태 정보 등의 관련 정보를 저장하거나, 저장된 원격 사용자 인터페이스의 그래픽 데이터를 복원할 수 있다. 또한, 일 실시예에 따른 저장 복원 처리부(440)는, 저장된 원격 사용자 인터페이스의 관련 정보를 서버(200)에게로 전송할 수도 있다.
따라서, 일 실시예에 따른 원격 사용자 인터페이스를 수신하는 클라이언트(100) 및 일 실시예에 따른 원격 사용자 인터페이스를 전송하는 서버(200)를 통해, 클라이언트(100)는 서버(200)가 의도하는 그래픽 기반의 원격 사용자 인터페이스를 구성할 수 있으므로, 그래픽 기반의 사용자 인터페이스의 룩 앤드 필(Look-and-Feel) 효과가 보장될 수 있다.
클라이언트(100)의 캐퍼빌리티를 참조하여 캔버스 오브젝트를 제어하기 위한 스크립트가 갱신되므로, 클라이언트(100)의 캐퍼빌리티에 부합하도록 원격 사용자 인터페이스가 갱신할 수 있다.
클라이언트(100)와 서버(200) 간의 양방향 통신 채널을 통해, 클라이언트(100)의 요청 없이도, 서버(200)가 능동적으로 원격 사용자 인터페이스의 업데이트 이벤트를 클라이언트(100)에게 전송하는 서버 푸쉬(Server Push) 기능이 구현될 수 있다.
클라이언트(100)에 의해 렌더링된 원격 사용자 인터페이스의 데이터 및 상태 정보 등을 포함하는 관련 정보가 서버(200)에게 전송될 수도 있다. 서버(200)는 클라이언트(100)에 의해 렌더링된 원격 사용자 인터페이스의 관련 정보를 저장하고, 필요시에 클라이언트(100)에 의해 렌더링된 원격 사용자 인터페이스를 복원할 수도 있다.
이하 도 5 내지 9를 참조하여 일 실시예에 따른 클라이언트(100)와 서버(200) 간에 일 실시예에 따른 원격 사용자 인터페이스를 전송 또는 수신하는 방법의 흐름도가 상술된다.
도 5 은 일 실시예에 따라 클라이언트(100)가 원격 사용자 인터페이스를 수신하는 방법의 흐름도(500)를 도시한다.
단계 510에서, 클라이언트(100)가 서버(200)에게 원격 사용자 인터페이스를 요청한다. 클라이언트(100)는 HTTP를 통해 서버(200)에게 원격 사용자 인터페이스를 요청할 수 있다.
단계 520에서, 클라이언트(100)는, 서버(200)로부터 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신한다. 클라이언트(100)는, 일 실시예에 따른 CEA-2014 기반의 원격 사용자 인터페이스의 HTML 데이터에 캔버스 오브젝트가 포함된 형태의 원격 사용자 인터페이스의 데이터를 수신할 수 있다.
도 6 은 일 실시예에 따라 클라이언트(100)가 원격 사용자 인터페이스의 업데이트 이벤트를 수신하는 방법의 흐름도(600)를 도시한다.
도 5와 마찬가지로, 클라이언트(100)가 서버(200)에게 원격 사용자 인터페이스를 요청하고(단계 510), 서버(200)로부터 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신한다(단계 520). 클라이언트(100)는, 클라이언트-서버 간 양방향 통신 채널을 위한 플러그인이 포함된 원격 사용자 인터페이스의 HTML 데이터를 수신할 수 있다.
단계 530에서, 클라이언트(100)는 클라이언트-서버 간 양방향 통신 채널을 생성한다. 클라이언트(100)는 서버(200)로부터 수신한 HTML 데이터를 파싱하여, HTML 데이터에 포함된 클라이언트-서버 간 양방향 통신 채널을 위한 플러그인을 구동하여 양방향 통신 채널 플러그인 오브젝트를 생성함으로써, 클라이언트-서버 간 양방향 통신 채널을 생성할 수 있다.
단계 540에서, 클라이언트(100)는 클라이언트-서버 간 양방향 통신 채널을 통해, 서버(200)로부터 원격 사용자 인터페이스의 업데이트 이벤트를 수신한다. 원격 사용자 인터페이스의 업데이트 이벤트는 XML 기반의 드로잉 프리미티브를 포함할 수 있다.
단계 550에서, 클라이언트(100)는 원격 사용자 인터페이스의 업데이트 이벤트에 기초하여, 원격 사용자 인터페이스의 화면을 갱신한다. 클라이언트(100)는 업데이트 이벤트의 드로잉 프리미티브를 기초로 DOM 트리를 갱신하고, 갱신된 DOM 트리에 기초하여 캔버스 오브젝트를 제어함으로써 그래픽 렌더링을 갱신하며, 갱신된 원격 사용자 인터페이스 화면을 표시할 수 있다. DOM 트리가 갱신될 때, 클라이언트(100)의 캐퍼빌리티 정보가 참조될 수도 있다.
도 7 은 일 실시예에 따라 서버(200)가 원격 사용자 인터페이스를 전송하는 방법의 흐름도(700)를 도시한다.
단계 710에서, 서버(200)가 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성한다. 서버(200)는, 클라이언트(100)가 그래픽 기반의 원격 사용자 인터페이스를 구현할 수 있도록, CEA-2014 기반의 원격 사용자 인터페이스의 HTML 데이터에 캔버스 오브젝트를 포함시킬 수 있다.
단계 720에서, 서버(200)는 원격 사용자 인터페이스의 HTML 데이터를 클라이언트(100)에게 전송한다. 서버(200)는 클라이언트(100)로부터 HTTP를 통해 수신한 원격 사용자 인터페이스 요청에 기초하여, 원격 사용자 인터페이스의 HTML 데이터를 전송할 수 있다.
도 8 은 일 실시예에 따라 서버(200)가 원격 사용자 인터페이스의 업데이터 이벤트를 전송하는 방법의 흐름도(800)를 도시한다.
도 7와 마찬가지로, 서버(200)가 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하고(단계 710), 원격 사용자 인터페이스의 HTML 데이터를 클라이언트(100)에게 전송한다(단계 720).
단계 730에서, 서버(200)는 클라이언트-서버 간 양방향 통신 채널을 제공한다. 서버(200)는 HTML 데이터에 클라이언트-서버 간 양방항 통신 채널을 위한 플러그인을 포함시킬 수 있다. 클라이언트(100)가 HTML 데이터에 포함된 양방항 통신 채널 플러그인 오브젝트를 생성함으로써, 클라이언트(100)와 서버(200) 간에 양방향 통신이 가능하다.
단계 740에서, 서버(200)는 클라이언트-서버 간 양방향 통신 채널을 통해, 원격 사용자 인터페이스의 업데이트 이벤트를 클라이언트(100)에게 전송할 수 있다. 서버(200)는 원격 사용자 인터페이스의 업데이트 이벤트에 XML 기반의 드로잉 프리미티브를 포함시킬 수 있다.
도 9 는 일 실시예에 따라 클라이언트(100)와 서버(200) 간에 원격 사용자 인터페이스를 송수신하는 방법의 흐름도(900)를 도시한다.
단계 910에서, 클라이언트(100)의 웹 브라우저 구동부(110)는, 서버(200)의 웹 서버 구동부(210)에게 원격 사용자 인터페이스를 요청한다.
단계 920에서, 서버(200)의 웹 서버 구동부(210)는 HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 전송한다. 서버(200)는, 원격 사용자 인터페이스의 HTML 데이터에 클라이언트-서버 간 양방향 통신을 위한 플러그인 오브젝트를 포함시켜 전송한다.
일 실시예에 따른 클라이언트-서버 간 양방향 통신을 위한 플러그인은 아래 표 1과 같은 형태로 원격 사용자 인터페이스의 HTML 데이터에 포함(embed)될 수 있다.

<object id="RemoteAgent" type="application/remote_agent">
표 1의 일 실시예에 따른 클라이언트-서버 간 양방향 통신을 위한 플러그인 오브젝트를 위해, 오브젝트 식별자가 'RemoteAgent'로 정의되고, 오브젝트 타입은 'application/remote_agent'로 정의될 수 있다.
단계 930에서, 클라이언트(100)의 웹 브라우저 구동부(110)는 수신된 원격 사용자 인터페이스의 HTML 데이터를 파싱하여 캔버스 오브젝트를 생성한다. 웹 브라우저 구동부(110)는 원격 사용자 인터페이스의 HTML 데이터를 이용하여 원격 사용자 인터페이스 화면을 생성한다.
단계 940에서, 클라이언트(100)의 캔버스 처리부(320)는 캔버스 오브젝트를 이용하여, 캔버스에 HTML 데이터에 포함된 그래픽 데이터를 렌더링한다. 클라이언트(100)의 캔버스 처리부(320)는 HTML 데이터에 포함된 캔버스 오브젝트를 제어하기 위한 스크립트를 판독하여 DOM 트리를 생성할 수 있다. DOM 트리에 기초하여 캔버스 오브젝트가 제어됨으로서, 원격 사용자 인터페이스의 그래픽 요소가 렌더링될 수 있다.
단계 950에서, 클라이언트(100)의 웹 브라우저 구동부(110)는 수신된 HTML 데이터에 포함된 클라이언트-서버 간 양방향 통신을 위한 플러그인를 구동한다. 양방향 통신 채널 플러그인 오브젝트가 생성됨으로써, 클라이언트(100)의 원격 UI 통신부(350)가 호출될 수 있다.
단계 960에서, 클라이언트(100)의 원격 UI 통신부(350)는 클라이언트-서버 간 양방향 통신 채널을 생성한다. 클라이언트-서버 간 양방향 통신 채널을 통해, 서버(200)의 원격 UI 통신부(340)와 클라이언트(100)의 원격 UI 통신부(350) 간에 양방향으로 데이터가 송수신될 수 있다.
아래 표 2 는, 단계 930 및 950에서 클라이언트(100)에 의해 HTML 데이터에 포함된 캔버스 오브젝트와 양방향 통신 채널 플러그인 오브젝트가 구동되는 실시예를 도시한다.

<!DOCTYPE html>
<html>
<head>
<script>
var canvas;
var context;
function init() {
// canvas DOM 객체 생성
canvas = document.getElementById("canvas_ui");
context = canvas.getContext("2d");
};
</script>
</head>

<body onload="init()">
<H1> 2D Graphics RUI Demo </H1>
// canvas object 생성
<canvas id="canvas_ui" width="200" height="200">
// Remote Agent 생성
<object type="application/remote_agent">
<PARAM name="object_id" value=context>
</object>


</body>
</html>
표 2에 따르면, 먼저 캔버스 오브젝트를 제어하기 위한 스크립트의 캔버스 DOM 객체를 생성하기 위한 초기화 함수 'init()'가 정의된다(function init() {}). 초기화 이벤트가 발생된 후(body onload="init()"), 캔버스 오브젝트와 양방향 통신 채널 플러그인 오브젝트가 생성된다. 즉, 너비 및 폭이 각각 200이고 캔버스 식별자 'canvas_ui'인 캔버스 오브젝트가 생성되고, 오브젝트 타입 'application/remote_agent'인 플러그인 오브젝트가 생성됨으로써, 캔버스 오브젝트와 양방향 통신 채널 플러그인 오브젝트가 각각 구동될 수 있다.
단계 970에서, 서버(200)의 원격 UI 갱신부(330)는 클라이언트(100)에 제공된 원격 사용자 인터페이스를 능동적으로 갱신하기 위해, 서버(200)의 원격 UI 통신부(340)에게 원격 사용자 인터페이스의 업데이트를 요청한다.
단계 980에서, 서버(200)의 원격 UI 통신부(340)는, 클라이언트-서버 간 양방향 통신 채널을 통해, 클라이언트(100)의 원격 UI 통신부(350)에게 원격 사용자 인터페이스의 업데이트 이벤트를 전송한다. 일 실시예에 따른 원격 사용자 인터페이스의 업데이트 이벤트는, XML 형식을 따를 수 있다. 일 실시예에 따른 원격 사용자 인터페이스의 업데이트 이벤트는, XML 기반의 드로잉 프리미티브를 포함할 수 있다. 아래 표 3은 일 실시예에 따른 XML 기반의 드로잉 프리미티브들을 도시한다.

// Transformations
rotate(in float angle)
scale(in float x, in float y)
setTransform(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy)
transform(in float m11, in float m12, in float m21, in float m22, in float dx, in float dy)

// rects
clearRect(in float x, in float y, in float w, in float h)
fillRect(in float x, in float y, in float w, in float h)
stokeRect(in float x, in float y, in float w, in float h)

// Complex shapes
arc(in float x, in float y, in float radius, in float startAngle, in float endAngle, in boolean anticlockwise)
arcTo(in float x1, in float y1, in float x2, in float y2, in float radius)
beginPath()
bezierCurveTo(in float cp1x, in float cp1y, in float cp2x, in float cp2y, in float x, in float y)
clip()
closePath()
fill()
lineTo(in float x, in float y)
moveTo(in float x, in float y)

// text
fillText(in DOMString text, in float x, in float y, optional in float maxWidth)
strokeText(in DOMString text, in float x, in float y, optional in float maxWidth)

// pixel manipulation
createImageData(in float sw, in float sh)
createImageData(in ImageData imagedata)
getImageData(in float sx, in float sy, in float sw, in float sh)
putImageData(in ImageData imagedata, in float dx, in float dy, optional in float dirtyX, in float dirtyY)
일 실시예에 따른 드로잉 프리미티브는, 캔버스의 모양(shape) 및 패스(path)를 변환(transformations)하기 위한 프리미티브, 사각형(Rectangles)의 캔버스를 조작하기 위한 프리미티브, 복잡한 형태(Complex shapes)의 캔버스의 패스를 조작하기 위한 프리미티브, 캔버스에 텍스트(text)를 렌더링하기 위한 프리미티브, 캔버스의 픽셀을 직접 조작(pixel manipulation)하기 위한 프리미티브를 포함할 수 있다.
예를 들어, 캔버스의 모양 및 패스를 변환하기 위한 프리미티브는, 캔버스의 회전 변환을 위한 함수 'rotate()', 캔버스의 크기 변환을 위한 함수 'scale()', 캔버스의 좌표를 직접적으로 변환하기 위한 변환 매트릭스 및 역변환 매트릭스를 정의하기 위한 함수 'setTransform()' 및 함수 'transform()'를 포함할 수 있다.
예를 들어, 사각형 캔버스를 조작하기 위한 프리미티브는, 사각형 캔버스의 내부 픽셀들을 삭제하여 아무 정보도 없는 영역으로 만들기 위한 함수 'clearRect()', 사각형 캔버스의 내부 픽셀을 현재 색상 또는 스타일로 채우기 위한 함수 'fillRect()', 사각형 캔버스의 윤곽을 칠하기 위한 함수 'stokeRect()'를 포함할 수 있다.
예를 들어, 복잡한 형태의 캔버스의 패스를 조작하기 위한 프리미티브는, 원둘레를 따라 소정 시작 각도로부터 소정 종료 각도까지 호(arc)를 그리기 위한 그리기 위한 함수 'arc()', 원둘레를 따라 소정 각도만큼의 호를 그리기 위한 함수 'arcTo()', 선을 그리기 위한 패스를 선언하기 위한 함수 'beginPath()', 베지어 곡선을 그리기 위한 함수 'bezierCurveTo()', 클리핑 영역을 소정 패스로 제한하기 위한 함수 'clip()', 현재 서브패스를 닫고 새로운 서브패스를 생성하기 위한 함수 'closePath()', 서브패스를 현재 색상 또는 스타일로 칠하기 위한 함수 'fill()', 현재 서브패스에 직선을 추가 연결하기 위한 함수 'lineTo()', 새로운 서브패스를 생성하기 위한 함수 'moveTo()'를 포함할 수 있다.
예를 들어, 캔버스에 텍스트(text)를 렌더링하기 위한 프리미티브는, 캔버스에 텍스트로 채우기 위한 함수 'fillText()', 캔버스에 텍스트의 윤곽을 그리기 위한 함수 'strokeText()'를 포함할 수 있다.
예를 들어, 캔버스의 픽셀을 직접 조작하기 위한 프리미티브는, 빈 정보의 이미지 데이터 오브젝트를 생성하기 위한 함수 'createImageData()', 주어진 이미지 데이터와 동일한 해상도의 이미지 데이터 오브젝트를 생성하기 위한 함수 'createImageData(imagedata)', 사각형 캔버스 형태의 이미지 데이터 오브젝터를 생성하기 위한 함수 'getImageData()', 캔버스에 주어진 이미지 데이터를 채우기 위한 함수 'putImageData()'를 포함할 수 있다.
단계 990에서, 클라이언트(100)의 원격 UI 통신부(350)는, 클라이언트(100)의 원격 UI 통신부(350)가 수신한 업데이트 이벤트에 포함된 드로잉 프리미티브에 기초하여 DOM 트리를 갱신하고, 갱신된 DOM 트리를 캔버스 처리부(320)에게 제공한다. 클라이언트(100)의 캐퍼빌러티 정보를 참조하여 DOM 트리가 갱신될 수도 있다.
단계 1000에서, 클라이언트(100)의 캔버스 처리부(320)는, 갱신된 DOM 트리에 기초하여 캔버스 오브젝트를 변경하고, 갱신된 캔버스 오브젝트를 이용하여 캔버스에 그래픽 데이터를 렌더링함으로써 원격 사용자 인터페이스 화면을 갱신할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (34)

  1. 클라이언트가 원격 사용자 인터페이스를 수신하는 방법에 있어서,
    서버에게 상기 원격 사용자 인터페이스를 요청하는 단계; 및
    상기 서버로부터 HTML(HyperText Mark-up Language)의 캔버스 오브젝트(canvas object)를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신하는 단계를 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  2. 제 1 항에 있어서, 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은,
    클라이언트-서버 간 양방향 통신 채널을 생성하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  3. 제 2 항에 있어서, 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은,
    상기 클라이언트-서버 간 양방향 통신 채널을 통해, 상기 서버로부터 상기 원격 사용자 인터페이스의 업데이트 이벤트를 수신하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  4. 제 1 항에 있어서, 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은,
    상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 이용하여 상기 원격 사용자 인터페이스 화면을 생성하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  5. 제 4 항에 있어서, 상기 원격 사용자 인터페이스 화면 생성 단계는,
    상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 파싱하여 상기 캔버스 오브젝트를 생성하고, 상기 캔버스 오브젝트를 이용하여 상기 HTML 데이터에 포함된 그래픽 데이터를 렌더링하는 단계를 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  6. 제 5 항에 있어서, 상기 그래픽 데이터 렌더링 단계는,
    상기 캔버스 오브젝트를 제어하기 위한 DOM 트리(Document Object Model Tree)를 생성하는 단계를 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  7. 제 2 항에 있어서, 상기 클라이언트-서버 간 양방향 통신 채널 생성 단계는,
    상기 수신된 HTML 데이터에 포함된 상기 클라이언트-서버 간 양방향 통신을 위한 플러그인(plugin)를 구동하여 상기 클라이언트-서버 간 양방향 통신 채널을 생성하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  8. 제 3 항에 있어서,
    상기 원격 사용자 인터페이스의 업데이트 이벤트는, XML(eXtensible MarkUp Language) 형식인 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  9. 제 3 항에 있어서, 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은,
    상기 수신된 원격 사용자 인터페이스의 업데이트 이벤트에 기초하여, 상기 원격 사용자 인터페이스의 화면을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  10. 제 9 항에 있어서, 상기 원격 사용자 인터페이스의 업데이트 이벤트 수신 단계는,
    상기 원격 사용자 인터페이스의 업데이트 이벤트에 포함된 XML 기반의 드로잉 프리미티브(Drawing Primitive)를 판독하는 단계를 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  11. 제 9 항에 있어서,
    상기 원격 사용자 인터페이스의 HTML 데이터 수신 단계는,
    상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 파싱하여 상기 캔버스 오브젝트 및 상기 캔버스 오브젝트를 제어하기 위한 DOM 트리를 생성하는 단계; 및
    상기 DOM 트리에 기초하여 상기 캔버스 오브젝트를 제어하여 상기 HTML 데이터에 포함된 그래픽 데이터를 렌더링함으로써 상기 원격 사용자 인터페이스 화면을 구성하는 단계를 포함하고,
    상기 원격 사용자 인터페이스 화면 갱신 단계는,
    상기 수신된 원격 사용자 인터페이스의 업데이트 이벤트에 기초하여, 상기 DOM 트리를 갱신하는 단계;
    상기 갱신된 DOM 트리에 기초하여 변경된 상기 캔버스 오브젝트를 이용하여 상기 그래픽 데이터를 렌더링하여 상기 원격 사용자 인터페이스 화면을 갱신하는 단계를 포함하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  12. 제 11 항에 있어서, 상기 DOM 트리 갱신 단계는,
    상기 클라이언트의 캐퍼빌러티(Capability) 정보를 참조하여 상기 DOM 트리를 갱신하는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  13. 제 5 항에 있어서, 상기 클라이언트의 원격 사용자 인터페이스 수신 방법은,
    상기 렌더링된 그래픽 데이터를 포함하여 원격 사용자 인터페이스의 HTML 데이터를 상기 서버에게 전송하는 단계를 더 포함하고,
    상기 서버로 전송된 렌더링된 HTML 데이터는 상기 서버에 저장되거나 복원되는 것을 특징으로 하는 클라이언트의 원격 사용자 인터페이스 수신 방법.
  14. 서버가 원격 사용자 인터페이스를 전송하는 방법에 있어서,
    HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하는 단계; 및
    상기 원격 사용자 인터페이스의 HTML 데이터를 클라이언트에게 전송하는 단계를 포함하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  15. 제 14 항에 있어서, 상기 클라이언트의 원격 사용자 인터페이스 전송 방법은,
    클라이언트-서버 간 양방향 통신 채널을 제공하는 단계를 더 포함하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  16. 제 15 항에 있어서, 상기 클라이언트의 원격 사용자 인터페이스 전송 방법은,
    상기 클라이언트-서버 간 양방향 통신 채널을 통해, 상기 원격 사용자 인터페이스의 업데이트 이벤트를 상기 클라이언트에게로 전송하는 단계를 더 포함하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  17. 제 15 항에 있어서, 상기 원격 사용자 인터페이스의 HTML 데이터 생성 단계는,
    상기 원격 사용자 인터페이스의 HTML 데이터에 상기 클라이언트-서버 간 양방향 통신을 위한 플러그인 오브젝트를 포함시키는 단계를 포함하고,
    상기 클라이언트는 상기 서버로부터 수신한 HTML 데이터에 포함된 상기 클라이언트-서버 간 양방향 통신을 위한 플러그인 오브젝트에 기초하여, 상기 클라이언트-서버 간 양방향 통신 채널을 생성하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  18. 제 16 항에 있어서,
    상기 원격 사용자 인터페이스의 업데이트 이벤트에 기초하여, 상기 클라이언트가 상기 원격 사용자 인터페이스의 화면을 갱신하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  19. 제 16 항에 있어서, 상기 업데이트 이벤트 전송 단계는,
    XML 형식의 원격 사용자 인터페이스의 업데이트 이벤트를 생성하는 단계를 포함하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  20. 제 19 항에 있어서, 상기 업데이트 이벤트 생성 단계는,
    상기 원격 사용자 인터페이스의 업데이트 이벤트에 XML 기반의 드로잉 프리미티브를 포함시키는 단계를 포함하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  21. 제 19 항에 있어서,
    상기 클라이언트에 의해, 상기 서버가 전송한 원격 사용자 인터페이스의 HTML 데이터에 포함된 상기 캔버스 오브젝트 및 상기 캔버스 오브젝트를 제어하기 위한 DOM 트리가 생성되고, 상기 DOM 트리가 상기 캔버스 오브젝트를 제어함으로써 상기 HTML 데이터에 포함된 그래픽 데이터가 렌더링됨으로써 상기 원격 사용자 인터페이스 화면이 구성되고,
    상기 원격 사용자 인터페이스의 업데이트 이벤트를 수신한 클라이언트에 의해, 상기 DOM 트리가 갱신되고, 상기 갱신된 DOM 트리에 기초하여 변경된 상기 캔버스 오브젝트를 이용하여 상기 그래픽 데이터가 렌더링되어 상기 원격 사용자 인터페이스 화면이 갱신되는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  22. 제 21 항에 있어서,
    상기 DOM 트리가 갱신될 때 상기 클라이언트의 캐퍼빌러티 정보가 참조되는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  23. 제 14 항에 있어서, 상기 원격 사용자 인터페이스의 HTML 데이터 전송 단계는,
    상기 클라이언트로부터 상기 원격 사용자 인터페이스에 대한 요청을 수신하는 단계; 및
    상기 클라이언트의 요청에 기초하여 상기 원격 사용자 인터페이스의 HTML 데이터를 전송하는 단계를 더 포함하는 것을 특징을 하는 서버의 원격 사용자 인터페이스 전송 방법.
  24. 제 14 항에 있어서, 상기 서버의 원격 사용자 인터페이스 전송 방법은,
    상기 클라이언트로부터 렌더링된 원격 사용자 인터페이스의 HTML 데이터를 수신하는 단계; 및
    상기 수신된 렌더링된 HTML 데이터를 저장하는 단계를 포함하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  25. 제 14 항에 있어서, 상기 서버의 원격 사용자 인터페이스 전송 방법은,
    상기 클라이언트로부터 렌더링된 원격 사용자 인터페이스의 HTML 데이터를 수신하는 단계; 및
    상기 수신된 렌더링된 HTML 데이터를 복원하는 단계를 포함하는 것을 특징으로 하는 서버의 원격 사용자 인터페이스 전송 방법.
  26. 원격 사용자 인터페이스를 수신하는 클라이언트에 있어서,
    서버에게 상기 원격 사용자 인터페이스를 요청하여, 상기 서버로부터 HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신하고, 상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 이용하여 상기 원격 사용자 인터페이스 화면을 생성하는 웹 브라우저 구동부를 포함하는 것을 특징으로 하는 클라이언트.
  27. 제 26 항에 있어서, 상기 웹 브라우저 구동부는,
    상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 파싱하여 상기 캔버스 오브젝트를 구동하고, 상기 캔버스 오브젝트를 이용하여 상기 HTML 데이터에 포함된 그래픽 데이터를 렌더링하는 캔버스 처리부를 포함하는 것을 특징으로 하는 클라이언트.
  28. 원격 사용자 인터페이스를 수신하는 클라이언트에 있어서,
    서버에게 상기 원격 사용자 인터페이스를 요청하여, 상기 서버로부터 HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 수신하고, 상기 수신된 원격 사용자 인터페이스의 HTML 데이터를 이용하여 상기 원격 사용자 인터페이스 화면을 생성하는 웹 브라우저 구동부; 및
    상기 서버로부터 상기 원격 사용자 인터페이스의 업데이트 이벤트를 수신하기 위한 클라이언트-서버 간 양방향 통신 채널을 제공하는 원격 UI 통신부를 더 포함하는 것을 특징으로 하는 클라이언트.
  29. 제 28 항에 있어서, 상기 원격 UI 통신부는,
    상기 클라이언트-서버 간 양방향 통신 채널을 통해 상기 서버로부터 XML 형식의 상기 원격 사용자 인터페이스의 업데이트 이벤트를 수신하는 업데이트 이벤트 처리부;
    상기 캔버스 오브젝트를 제어하기 위한 DOM 트리를 생성하고, 상기 업데이트 이벤트에 기초하여 상기 DOM 트리를 갱신하는 DOM 처리부;
    상기 DOM 트리가 갱신될 때 참조되는 상기 클라이언트의 캐퍼빌리티 정보를 제공하는 캐퍼빌리티 처리부; 및
    상기 원격 사용자 인터페이스의 렌더링된 그래픽 데이터를 저장하거나 복원하는 저장 복원 처리부를 포함하는 것을 특징으로 하는 클라이언트.
  30. 원격 사용자 인터페이스를 전송하는 서버에 있어서,
    HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하여 클라이언트에게 전송하는 웹 서버 구동부를 포함하는 것을 특징으로 하는 서버.
  31. 원격 사용자 인터페이스를 전송하는 서버에 있어서,
    HTML의 캔버스 오브젝트를 포함하는 그래픽 기반의 원격 사용자 인터페이스의 HTML 데이터를 생성하여 클라이언트에게 전송하는 웹 서버 구동부; 및
    상기 클라이언트에게 상기 원격 사용자 인터페이스의 업데이트 이벤트를 전송하기 위한 클라이언트-서버 간 양방향 통신 채널을 제공하는 원격 UI 통신부를 포함하는 것을 특징으로 하는 서버.
  32. 제 31 항에 있어서, 상기 서버는,
    XML 형식을 따르는 원격 사용자 인터페이스의 업데이트 이벤트를 생성하고, XML 기반의 드로잉 프리미티브를 포함하는 상기 업데이트 이벤트를 제공하는 원격 UI 갱신부를 더 포함하는 것을 특징으로 하는 서버.
  33. 제 1 항 내지 제 13 항 중 어느 한 항의 클라이언트의 원격 사용자 인터페이스 수신 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
  34. 제 14 항 내지 제 25 항 중 어느 한 항의 서버의 원격 사용자 인터페이스 전송 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
KR1020110010769A 2011-02-07 2011-02-07 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트 KR20120090386A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110010769A KR20120090386A (ko) 2011-02-07 2011-02-07 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110010769A KR20120090386A (ko) 2011-02-07 2011-02-07 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트

Publications (1)

Publication Number Publication Date
KR20120090386A true KR20120090386A (ko) 2012-08-17

Family

ID=46883465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110010769A KR20120090386A (ko) 2011-02-07 2011-02-07 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트

Country Status (1)

Country Link
KR (1) KR20120090386A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160070255A (ko) 2014-12-09 2016-06-20 주식회사 조커팩 리얼타임 캔버스 제공 시스템, 리얼타임 캔버스 제공방법, 그 프로그램 및 이를 기록한 기록매체
KR20160070254A (ko) 2014-12-09 2016-06-20 주식회사 조커팩 리얼타임 캔버스 제공 시스템, 리얼타임 캔버스 제공방법, 그 프로그램 및 이를 기록한 기록매체
KR20190003450A (ko) 2018-12-31 2019-01-09 주식회사 오시리스시스템즈 캔버스 트리 구조를 이용한 폴더형 리얼타임 캔버스 제공장치
KR20190003449A (ko) 2018-12-31 2019-01-09 주식회사 오시리스시스템즈 가상 캔버스 정보를 이용한 폴더형 리얼타임 캔버스 제공장치
CN109472847A (zh) * 2018-10-16 2019-03-15 平安普惠企业管理有限公司 一种图片处理方法、系统及终端设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160070255A (ko) 2014-12-09 2016-06-20 주식회사 조커팩 리얼타임 캔버스 제공 시스템, 리얼타임 캔버스 제공방법, 그 프로그램 및 이를 기록한 기록매체
KR20160070254A (ko) 2014-12-09 2016-06-20 주식회사 조커팩 리얼타임 캔버스 제공 시스템, 리얼타임 캔버스 제공방법, 그 프로그램 및 이를 기록한 기록매체
CN109472847A (zh) * 2018-10-16 2019-03-15 平安普惠企业管理有限公司 一种图片处理方法、系统及终端设备
KR20190003450A (ko) 2018-12-31 2019-01-09 주식회사 오시리스시스템즈 캔버스 트리 구조를 이용한 폴더형 리얼타임 캔버스 제공장치
KR20190003449A (ko) 2018-12-31 2019-01-09 주식회사 오시리스시스템즈 가상 캔버스 정보를 이용한 폴더형 리얼타임 캔버스 제공장치

Similar Documents

Publication Publication Date Title
AU2008269041B2 (en) Method and system for creating and manipulating embroidery designs over a wide area network
CN101925928B (zh) 呈现将印刷在三维产品的曲面上的平面设计
WO2018050003A1 (zh) 3D canvas网页元素的渲染方法、装置及电子设备
EP2171606B1 (en) Bitmap-based display remoting
KR100727195B1 (ko) 디지털 문서 처리용 시스템 및 방법
KR20120090386A (ko) 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 전송하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 수신하는 방법 및 그 클라이언트
KR20080111450A (ko) 그래픽 개체 인코딩 방법, 그래픽 개체 렌더링 방법 및 렌더링 데이터 구조 동기화 방법
AU2015298291B2 (en) Optimized rendering of shared documents on client devices with document raster representations
US20160006788A1 (en) Client-server-communication system running a client-side-script-program
US7791620B2 (en) Systems and methods for rendering symbols using non-linear scaling
US9501812B2 (en) Map performance by dynamically reducing map detail
JP6867553B2 (ja) リモートセッションにおける可視透かしを提供するシステム及び方法
KR101807314B1 (ko) 원격 사용자 인터페이스용 협력 애플리케이션
KR20120094281A (ko) 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 저장 및 복원하는 방법 및 그 서버, 캔버스 오브젝트를 이용하는 그래픽 기반의 원격 사용자 인터페이스를 저장 및 복원하는 방법 및 그 클라이언트
CN113918056B (zh) 一种调整应用窗口的方法和装置
JP4818013B2 (ja) 画像処理方法、画像処理装置、及び画像処理プログラム
JP2021071790A (ja) 情報処理装置、情報処理方法、およびプログラム
JP4770455B2 (ja) 表示態様設定システム、表示態様設定装置、表示態様設定方法及び表示態様設定処理プログラム
KR100735971B1 (ko) 홈 네트워크에서의 원격 화면 제어 방법
CN115543140B (zh) 一种在sol页面展示bios设置界面光标的控制方法
KR20150015201A (ko) Rich Text 이미지 처리 시스템 및 그 방법
CN116132704A (zh) 一种用于线上教育的数据传输方法、装置及设备
KR200332200Y1 (ko) 웹 캐릭터 빌더 시스템
CN116048701A (zh) 网页同屏显示方法、装置、设备和存储介质
KR20050014565A (ko) 웹 캐릭터 빌더 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application