KR20100088049A - 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치 - Google Patents

사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20100088049A
KR20100088049A KR1020090033247A KR20090033247A KR20100088049A KR 20100088049 A KR20100088049 A KR 20100088049A KR 1020090033247 A KR1020090033247 A KR 1020090033247A KR 20090033247 A KR20090033247 A KR 20090033247A KR 20100088049 A KR20100088049 A KR 20100088049A
Authority
KR
South Korea
Prior art keywords
information
user interface
content
output
input
Prior art date
Application number
KR1020090033247A
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 EP10736026A priority Critical patent/EP2382595A4/en
Priority to JP2011547795A priority patent/JP2012516490A/ja
Priority to US12/696,293 priority patent/US9250871B2/en
Priority to PCT/KR2010/000532 priority patent/WO2010087635A2/en
Priority to CN2010800136213A priority patent/CN102365619A/zh
Publication of KR20100088049A publication Critical patent/KR20100088049A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8545Content authoring for generating interactive applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법에 대한 것으로, 사용자 인터페이스 구성 객체로 구성된 콘텐츠를 수신하는 단계, 상기 콘텐츠에서 외부로 출력가능 하도록 정의된 정보의 존재 여부를 확인하고, 상기 콘텐츠에 포함된 명령어를 해석하는 단계. 상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 단계 및 상기 출력하는 단계를 실행하는 중 상기 외부로 출력 가능하도록 정의된 정보를 추출하여 목적 객체로 전송하는 단계를 포함하는 것을 특징으로 한다. 또한 상기 목적 객체는 상기 목적 객체의 사용자 인터페이스 콘텐츠를 출력하는 중 정해진 경로가 아닌 다른 경로를 통하여 수신된 정보가 있음을 감지하면, 상기 수신된 정보 중 상기 목적 객체의 특정 기능을 수행하기 위한 정보를 추출하며, 상기 추출한 정보를 이용하여 상기 특정 기능을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명인 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치에 의하면 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠로부터 특정 데이터를 외부로 추출 가능하도록 하고, 외부의 다른 콘텐츠들과 혹은 또 다른 사용자 인터페이스와의 자유로운 정보 교환이나 활용이 가능한 사용자 인터페이스를 제공할 수 있는 효과가 있다.
사용자 인터페이스, MPEG, LASeR

Description

사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치{METHOD AND APPARATUS FOR PROCESSING INFORMATION RECEIVED THROUGH UNEXPECTABLE PATH OF CONTENT COMPRISED OF USER INTERFACE CONFIGURATION OBJECTS}
본 발명은 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치에 관한 것으로, 특히 외부로 데이터를 출력하는 기능이 없이 특정 기능을 수행하는 사용자 인터페이스 구성 객체들의 그룹에서, 정해진 경로로만 정보를 수신 받아 다른 특정 기능을 수행하는 사용자 인터페이스 구성 객체들의 그룹으로, 사전 예측이 불가능한 경로를 통하여 정보를 전달하고 처리하기 위한 방법 및 이를 위한 장치를 제공한다.
종래 사용자 인터페이스는 사람(사용자)과 사물 또는 시스템, 특히 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매객체를 뜻하며, 사용자가 시스템을 조작하는 입력과 시스템이 그로 인한 반응, 결과를 보이는 출력으로 분류할 수 있었다. 또 한, 생산자가 만들어 제공하는 인터페이스는 생산자가 지정한 하나의 장치에서만 동작하며, 재가공이나 수정할 수 없는 정적인 도구였다. 그러나 사용자 인터페이스는 더 이상 단순한 이미지와 텍스트로 이루어진 버튼이 아니라, 하나의 콘텐츠로써 텍스트, 오디오, 비디오, 폰트, 이미지, 그래픽 등 여러 가지 미디어를 혼합된 형태로 제공하는 리치미디어(Rich-media) 서비스 형태로 발전하고 있다. 상기 리치미디어 서비스를 제공하기 위한 국제 표준 규격으로는 BIFS(Binary Format for Scene), LASeR (Lightweight Application Scene Representation) 등이 있다. 상기 LASeR는 오늘날 통신 및 방송의 응용 기술이 다양한 미디어 요소를 이용하여, 보다 효과적으로 정보를 전달할 수 있는 방법을 제공할 수 있도록 진화함에 따라. 장면 기술(scene description), 비디오(video), 오디오(audio), 이미지(image), 폰트(font), 텍스트(text), 메타데이터(meta-data), 스크립트(script) 등과 같은 다양한 멀티미디어 요소들을 이용한 자유로운 표현과 사용자와의 상호작용을 통하여 보다 풍부한 사용자 서비스를 제공하기 위해 개발된 국제 표준 규격이다.
한편 사용자 인터페이스는 사용자 단말 및 서비스 주체의 다양화를 비롯하여, 영상, 음성, 데이터 등 종류가 다른 미디어나 단말기가 네트워크에 관계없이 융합되어 새로운 서비스 만들어내기 시작하면서, 인터페이스는 하나의 장치에서만 그 하나의 장치를 위한 기능들만을 수행한다는 기존의 관념을 뛰어 넘어 이(異)기종 장치 혹은 원격의 장치에서도 유연하며 동적인 인터페이스를 제공할 것을 요구 받고 있다.
본 발명의 목적은 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠를 처리함에 있어 사전예측 불가능한 경로를 통해서 수신되는 정보들을 정해진 경로를 통하여 수신되는 정보들과 같이 처리하여 자신의 특정 기능을 수행하거나, 다른 목적으로 사용할 수 있는 방법 및 장치를 제공함에 있다.
또한 본 발명의 다른 목적은 사용자 인터페이스를 제공함에 있어, 외부로 데이터를 출력하는 기능 없이 특정 기능을 수행하는 사용자 인터페이스 구성 객체들의 그룹에서 사전 예측이 불가능한 경로를 통하여 정해진 경로로만 정보를 수신 하여 기능을 수행하는 사용자 인터페이스 구성 객체들의 그룹으로 정보를 전달하여 처리하기 위한 방법 및 이를 위한 장치를 제공함에 있다.
상술한 바와 같은 문제점을 극복하기 위한 본 발명의 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 처리 방법은 사용자 인터페이스 구성 객체로 구성된 콘텐츠를 수신하는 단계, 상기 콘텐츠에서 외부로 출력가능 하도록 정의된 정보의 존재 여부를 확인하고, 상기 콘텐츠에 포함된 명령어를 해석하는 단계. 상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 단계 및 상기 출력하는 단계를 실행하는 중 상기 외부로 출력 가능하도록 정의된 정보를 추출하여 목적 객체로 전송하는 단계를 포함하는 것을 특징으로 한다. 또한 상기 목적 객체는 상기 목적 객체의 사용자 인터페이스 콘텐츠를 출력하는 중 정해진 경로가 아닌 다른 경로를 통하 여 수신된 정보가 있음을 감지하면, 상기 수신된 정보 중 상기 목적 객체의 특정 기능을 수행하기 위한 정보를 추출하며, 상기 추출한 정보를 이용하여 상기 특정 기능을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
또한 상술한 바와 같은 문제점을 극복하기 위한 본 발명의 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 처리 장치는 사용자 인터페이스 구성 객체로 구성된 콘텐츠를 복호하는 복호기, 상기 콘텐츠에서 외부로 출력가능 하도록 정의된 정보의 존재 여부를 확인하고, 상기 콘텐츠에 포함된 명령어를 해석하는 구성메모리, 상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 렌더러, 및 상기 렌더러에서 상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 중 상기 외부로 출력 가능하도록 정의된 정보를 추출하여 목적 객체로 전송하는 이벤트 처리부를 포함하는 것을 특징으로 한다. 또한 상기 이벤트 처리부는 상기 렌더러에서 상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 중 정해진 경로가 아닌 다른 경로를 통하여 수신된 정보가 있음을 감지하면, 상기 수신된 정보 중 특정 기능을 수행하기 위한 정보를 추출하며, 상기 추출한 정보를 이용하여 상기 특정 기능을 수행하는 것을 특징으로 한다.
본 발명인 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치에 의하면 기존의 사용자 인터페이스가 정해진 경로로부터 수신할 수 있는 정보만을 수신하여 정해진 기능만을 수행할 수 있었던 것에 비해, 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠로부터 특정 데이터를 외부로 추출 가능하도록 하고, 사전 예측이 불가능한 경로를 통해서 수신되는 정보들을 정해진 경로를 통하여 수신되는 정보들과 함께 처리하여 자신의 특정 기능을 수행하거나, 다른 목적으로 사용할 수 있는 방법 및 장치를 제공함으로써 외부의 다른 콘텐츠들과 혹은 또 다른 사용자 인터페이스와의 자유로운 정보 교환이나 활용이 가능한 사용자 인터페이스를 제공할 수 있는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의하여야 한다. 또한 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다.
또한 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
본 발명에서 '단말'이란 서비스 콘텐츠를 수신한 수신 단말, 파일, 응용 프로그램, 수신 객체의 그룹 또는 객체 그 자신을 모두 지칭한다.
본 발명에서는 리치미디어 엔진(Rich Media Engine) 중 LASeR(Lightweight Application for Scene Representation) 엔진을 기반으로 하는 단말을 실시 예로 들어 설명하며, 상기 그 외의 리치미디어 엔진 기반 단말에서는 상기 LASeR 엔진을 기반으로 하는 단말의 실시예를 바탕으로 동일하게 적용 가능하다. 또한 본 발명에서 LASeR 엔진이 수행하는 동작 및 본 발명의 내용은 단말의 사용자 인터페이스 관리 엔진에서 수행할 수도 있다. 다만 상기 단말에 적용되는 리치미디어 엔진 혹은 시스템이 바뀌는 경우에는, 상기 LASeR 엔진 이외에 각 리치미디어 엔진 혹은 시스템에서 고유하게 사용하는 명칭으로의 전환이 필요하며 이는 당업자에게 자명하므로 본 발명에서는 다루지 않기로 한다.
도 1은 일반적인 사용자 인터페이스 장면을 구성하는 리치미디어 서비스를 수신하는 단말의 동작을 도시한 순서도이다.
도 1을 참조하여 설명하면, 단말은 단계 100에서 서비스 콘텐츠를 수신하고, 단계 110에서 상기 수신한 서비스 콘텐츠를 복호(Decoding)한다. 단말은 단계 120에서 상기 복호된 서비스 콘텐츠를 사용자에게 제공 가능한 형태로 구성하는 서비스 콘텐츠 구성 동작을 수행하는데, 명령어들을 확인하여 실행하거나 이벤트들을 처리하는 동작 등이 포함될 수 있다. 계속하여 단말은 단계 130에서 서비스 콘텐츠를 사용자에게 제공하기 위해, 영상 또는 음향을 지원하는 사용자 인터페이스 출력 수단을 통해 상기 구성된 서비스 콘텐츠를 출력한다.
상술한 리치미디어 서비스 콘텐츠 중 하나인 LASeR 콘텐츠는 하기의 <표 1>의 구문(syntax)으로 표현될 수 있다.
<표 1>
<NewScene>
<svg>

</svg>
<NewScene>
상술한 표 1에 의하면, 단말은 명령어가 수행될 때마다 LASeR 명령어 중 하나로 새로운 장면을 그리라는 의미를 가지는 명령어인 "NewScene" 내에 포함된 장면(<svg>…</svg>)을 구성하여 디스플레이 한다. 한편, 사용자 인터페이스는 사용자 단말 및 서비스 주체의 다양화를 비롯하여, 영상, 음성, 데이터 등 종류가 다른 미디어나 단말기가 네트워크에 관계없이 융합되어 새로운 서비스 만들어내기 시작하면서, 인터페이스는 하나의 장치에서만 그 하나의 장치를 위한 기능들만을 수행한다는 기존의 관념을 뛰어 넘어 이(異)기종 장치 혹은 원격의 장치에서도 유연하며 동적인 인터페이스를 제공할 것을 요구 받고 있다. 그러나 이러한 사용자 인터페이스의 발전에도 불구하고, 기존의 사용자 인터페이스는 정해진 경로로부터 수신할 수 있는 정보만을 수신하여 정해진 기능만을 수행하고 있다. 그래서 외부의 다른 콘텐츠들과 혹은 또 다른 사용자 인터페이스와의 자유로운 정보 교환이나 활용이 불가능하다.
도 2는 본 발명의 실시예에 따른 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠를 수신한 단말의 동작을 도시한 순서도이다.
도 2를 참조하면, 단말은 단계 200에서 서비스 콘텐츠를 수신하고, 단계 210에서 수신한 서비스 콘텐츠를 복호한다. 단계 210의 복호 과정은 수신한 서비스 콘텐츠가 부호 과정을 거치치 않은 서비스 콘텐츠인 경우 수행하지 않을 수도 있다. 또한 단말은 단계 220에서 상기 복호된 서비스 콘텐츠에서 명령어들을 확인하여 실 행한다. 상술한 명령어는 장면의 변화를 선언적 방법으로 표현하는 것이며, 예를 들어 새로운 장면을 그리라는 명령어인 'NewScene' 요소, 속성을 삽입하라는 명령어인 'Insert' 요소 및 속성을 삭제하라는 명령어인 'Delete' 등이 있다. 상기 LASeR 장면 구성 요소는 장면을 구성하는 미디어 및 그래픽 객체들을 선언적 방법으로 표현하는 엘리먼트(element)와 각 엘리먼트의 속성(attribute) 및 이벤트와 스크립트 등이 포함된다.
본 발명에서 설명하는 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠는 외부로 출력 가능하도록 정해진 정보들을 포함하므로, 단계 230에서 단말은 수신한 서비스 콘텐츠의 구성 객체들이 포함하는 외부로 출력 가능한 정보를 해석 및 확인한다. 이 경우 단말은 사용자 인터페이스 장면을 구성하는 미디어 및 그래픽 객체들 예를 들어, 선언적 방법으로 표현하는 엘리먼트(element)와 각 엘리먼트의 속성을 표현하는 속성(attribute) 및 이벤트와 스크립트 등도 해석 및 확인한다.
계속하여 단말은 단계 240에서 영상 또는 음향 등을 지원하는 사용자 인터페이스 수단을 통해 상기 구성된 서비스 콘텐츠를 출력한다. 본 발명의 도면에서는 상세히 설명하지 않았으나, 상기 사용자 인터페이스를 구성하는 LASeR 서비스 및 콘텐츠와 관련한 모든 이벤트들은 단계 240 이전에 수행될 수 있다.
서비스 콘텐츠를 출력하는 도중, 단계 250에서 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호, 예를 들어 사용자 인터페이스와 관련된 이벤트 발생을 감지하면, 단계 260에서 외부로 추출 가능한 정보들을 추출한다. 추출된 정보는 LASeR 엔진에서 핸들링 할 수 있고, 외부와의 커뮤니케이션을 담당하는 별도의 모듈에서 핸들링 할 수도 있으며, 사용자 인터페이스를 관리하는 관리 엔진에서 핸들링 할 수도 있다. 또는 외부와의 커뮤니케이션과 관련된 애플리케이션 또는 애플리케이션 프로그래밍 인터페이스(API)나 단말의 자체 시스템 라이브러리의 임시 메모리에서 핸들링 할 수도 있다.
또 다른 예로 단계 260에서 추출된 정보는 단계 250에서의 동작이나 신호의 정의에 따라 바로 목적(destination) 단말 또는 목적 응용 프로그램 혹은 콘텐츠로 바로 전송될 수도 있다. 상기 사용자 인터페이스 관리 엔진은 사용자 인터페이스 매니저 혹은 위젯 매니저 등으로 칭할 수 있으며, 이하 본 발명에서는 사용자 인터페이스 매니저라는 용어를 사용하여 설명한다. 본 발명에서 설명하는 상기 사용자 인터페이스 매니저는 LASeR 엔진의 기능이 확장된 형태일수도 있고, LASeR 엔진에 포함되는 혹은 LASeR 엔진을 포함하는 별도의 기능 모듈일 수 있으며, LASeR 엔진과는 별개로 구성된 별도의 모듈일 수도 있다.
이하, 상기 도 2의 단계 230에서 설명한 수신한 서비스 콘텐츠의 구성 객체들이 포함하는 외부로 출력 가능하도록 정해진 정보를 해석 및 확인하는 방법과 단계 250에서 설명한 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호를 구체적인 예를 들어 설명하고자 한다.
<제 1 실시예>
본 발명의 제 1 실시예에 따라 사용자 인터페이스 구성 객체의 그룹으로 구성된 콘텐츠들이 포함하는 외부로 출력 가능하도록 정해진 정보를 신규 생성하고, 이러한 정보들을 포함하는 장면을 구성하는 방법에 대하여 상세히 설명한다.
상기 정보는 요소, 속성 및 속성 값을 이용하여 구성할 수 있으며, 상기 요소는 장면을 구성하는 객체의 기본 단위, 상기 속성은 장면을 구성하는 상기 요소의 특성, 상기 속성 값은 상기 속성의 구체적인 값(value)을 의미한다. 예를 들어 사각형을 의미하는 'rect'가 상기 요소이고, 사각형을 표현하는데 사용되는 특성 중 하나인 사각형의 가로 길이를 의미하는 'width'는 상기 속성이며, 'width'의 구체적인 값인 '10'은 상기 속성 값이다. 외부와 입/출력 및 교환 가능하도록 정해진 정보를 표현하는 방법에 있어, 정보를 표현하는 방법에 따라 다양한 필드 및 필드를 구성하는 파라미터로 표현하는 등, 목적이나 기능이 동일하다면 다른 방법 또는 포맷을 이용하여 표현되었다고 하더라도 상기 정보는 동일한 것이라고 할 수 있음은 물론이다.
아래 표 2는 본 발명의 실시예에 따라, 외부로 추출하기 위한 정보를 표현하기 위한 신규 속성 및 속성 값 정보를 사용하여 생성한 사용자 인터페이스를 구성하는 콘텐츠의 예시이다. 표 2를 참조하면, 예제 장면 구성 요소 중의 하나인 'g'는 이미지를 구성하기 위한 장면 구성 요소인 'image'를 포함한다. 상기'g' 요소는 장면을 구성하는 다양한 요소들을 포함하여 표현할 수 있는 컨테이너(container) 역할을 하는 요소이다. 따라서 사용자 인터페이스를 구성하는 콘텐츠를 구성하는 다양한 장면 구성 요소, 즉 사각형을 그리기 위한 'rect', 원을 그리기 위한 'circle' 등을 포함한 그래픽 요소 및 텍스트, 오디오, 비디오, 이미지 등의 다양한 장면 구성 요소들이 'g' 요소의 내부에 포함될 수 있다.
새로이 정의하여 사용한 'extract_enable' 속성은 그 값이 'true'일 경우, 해당 요소의 자식 요소들이 추출 가능한 정보를 담고 있다는 의미를 나타낸다. 또한 'extract_enable' 속성은 그 값이 'true'일 경우, 그 자신이 추출 가능한 정보를 담고 있다는 의미를 나타낼 수도 있다. 표 2에 의하면 image'를 추출해 낼 수 있으며, 이 경우 외부로 전달되는 데이터는 이미지 파일 자체일 수도 있고, 이미지의 'href:type'의 속성 값인 이미지의 주소가 전달 될 수도 있다. 이러한 경우, 자식 요소들이 외부로 추출할 수 있는 정보는 미리 정해져 있을 수 있다. 예를 들어 이미지는 이미지 주소, 텍스트는 텍스트 요소의 값인 텍스트 스트링 등으로 정해져 있을 수 있다.
<표 2>
<g extract_enable="true">
<image href:type="image_URL">
</g>
아래 표 3의 예는 추출 가능한 정보를 표현하는 또 다른 예로, 'output' 속성의 속성 값이 지칭하는 해당 요소의 속성 값을 외부로 추출할 수 있다는 의미를 나타낸다. 아래의 예에서는 'image'요소는 이미지 요소의 주소(target="href:type")를, 'rect' 요소는 'color' 속성의 속성 값이 'red'를, 'text' 요소는 요소 자신의 요소 값인 텍스트 스트림('text String'(target="textContent"))을 추출할 수 있다. 또한 'output' 속성을 이용하여 'output="color, x, y"'와 같이 하나의 요소에서 복수 개의 속성 값 등의 정보들을 출력할 수도 있다. 또한 'extract_enable'과 'output'을 모두 사용하여, 'extract_enable' 속성이 'true'인 'output' 속성만 외부로 데이터를 추출하기 위한 동작을 수행하도록 설정할 수도 있다.
<표 3>
<g>
<image href:type="image_URL" output="href:type">
<rect color="red" output="color"/>
<text output="value"> textString </text>
</g>
아래 표 4의 예는 추출 가능한 정보를 표현하는 또 다른 예로 외부로 추출 가능한 정보를 표현하는 'communication' 요소는 ID 속성값이 'img'인 사용자 인터페이스 구성 객체의 'href:type' 속성의 값을 추출해낼 수 있음을 나타낸다. <표 4>의 예와 같이 표현할 경우, 이 정보는 LASeR 등의 리치미디어 장면 구성 정보 내에 포함될 수도 있고, 장면 구성 요소와는 별도의 데이터 또는 파일로 구성될 수도 있다.
<표 4>
<communication type="output" targetID="img" targetValue="href:type"/>
상기 표 2 및 표 4의 예를 들어 설명한 외부로 추출 가능한 정보를 실제 외부로 전달하는 과정에서 추출되는 데이터는, 객체에서 추출되는 정보 자체 뿐만 아니라 객체의 Identification 정보, 객체의 데이터 타입, 위치 정보, 크기 정보, 객체가 속하는 물리적 혹은 논리적 범주 예를 들어 요소나 속성의 이름, 혹은 객체에 대한 설명 등을 더 포함할 수 있다. 또한 추출되는 해당 값들은 외부와의 정보 교환 과정 발생 조건 및 해당 특징을 인지하는 이벤트 등의 입력 값이 될 수도 있다.
또한 외부에서 입력 가능한 정보를 수신하는 데이터를 설정할 수 있다. 예를 들어 'input'이라는 속성 또는 정보의 대상이 되는 대상 노드 및 대상 속성은 외부로부터 정보를 수신할 수 있음을 의미한다.
나아가 상기 표 4의 "targetID"와 "targetValue"는 하나의 필드를 이용하여 동일한 정보를 의미하도록 표현할 수도 있으나, 목적하는 정보가 동일하다면 어떤 방법으로 표현하더라도 동일한 것이라고 할 수 있다. 본 발명에서 구체적으로 예를 들어 설명하고 있지 않더라도, 특정 객체에서 외부로 추출할 수 있는 특정 파라미터를 추출할 수 있는 방법은 본 발명의 범주에 속한다고 할 수 있다.
도 3은 본 발명의 실시예에 따른 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠 중 사전예측 불가능한 경로를 통해서 수신되는 정보들을 수신하는 단말의 동작을 도시한 순서도이다.
도 3를 참조하여 설명하면, 단말은 단계 300에서 사용자 인터페이스 콘텐츠를 수신하고, 단계 310에서 수신한 사용자 인터페이스 콘텐츠를 복호한다. 단계 310의 복호 과정은 수신된 사용자 인터페이스 콘텐츠가 부호 과정을 거치치 않은 경우 수행하지 않을 수도 있다. 그리고 단말은 단계 320에서 상기 복호된 사용자 인터페이스 콘텐츠에서 명령어들을 확인하여 실행한다. 계속하여 단계 330에서 영상 또는 음향 등을 지원하는 사용자 인터페이스 수단을 통해 상기 구성된 콘텐츠를 출력한다.
본 도면에서는 상세히 설명하지 않았으나 단말은 LASeR 장면을 구성하는 미디어 및 그래픽 객체들을 표현하는 엘리먼트(element)와 각 엘리먼트의 속성 및 이벤트와 스크립트 등도 해석하여 처리하는 과정은 330단계 이전에 진행된다. 또한 본 발명의 도면에서는 상세히 설명하지 않았으나, 상기 사용자 인터페이스를 구성하는 콘텐츠와 관련한 모든 이벤트들은 단계 330 이전에 수행될 수 있다.
사용자 인터페이스 콘텐츠를 출력하는 도중, 단계 340에서 정해진 경로가 아닌 다른 경로를 통하여 정보가 수신되는 동작 또는 이에 관한 신호를 감지하면, 단계 350에서 수신된 입력 정보가 있는지 여부 및 수신한 정보가 정해진 경로가 아닌 외부의 다른 경로를 통하여 수신하였음을 확인하고, 수신한 정보들을 확인하여, 수신한 정보의 타입, 이벤트의 종류, 수신한 데이터의 물리적 및 논리적 범주 등의 정보를 확인하여 자신의 특정 기능을 수행하기 위한 입력 값임을 확인한다.
수신 측 단말은 이러한 입력 값을 이용하여 자신의 기능을 수행하거나 구성 객체의 특징에 따라 개인화된 사용자 인터페이스의 입력 값으로 사용하는 등 다양한 동작을 수행할 수 있다. 이때, 수신 단말 혹은 수신 객체의 그룹 또는 객체 자신은 자신이 수신한 정보가 자신의 특정 기능을 수행하기 위한 정보임을 인지할 수 있어야 한다. 예를 들어, 수신한 정보가 텍스트 정보인 경우, 객체 자신이 처리 가능한 데이터의 타입이 텍스트라고 할지라도, 수신한 텍스트 정보가 해당 객체 자신의 기능을 수행하기 위한 입력이라는 것을 인지할 수 있어야 한다. 입력된 텍스트 정보의 타입이 플레이어(player)와 같은 특정 응용 프로그램을 구동시키기 위한 것이지만 수신 객체의 수신 가능 정보의 타입은 단순한 텍스트 콘텐츠일 경우, 수신 정보를 수신 객체의 입력 값으로 사용할 수 없다. 이러한 기능은 LASeR 엔진을 통해서 수행될 수도 있고, 사용자 인터페이스 매니저를 통해 수행될 수도 있으며, 수신 단말 혹은 수신 객체의 그룹 또는 객체 스스로가 수행할 수도 있다.
단계 340에서 정해진 경로가 아닌 다른 경로를 통하여 정보가 수신되는 동작 또는 이에 관한 신호를 감지하는 수신 단말 혹은 수신 객체의 그룹 또는 객체 자신은 콘텐츠를 출력하고 있는 활동 상태(active)가 아닐 수도 있으며, 휴지기(Idle) 상태 혹은 대기 상태일 수 있다. 혹은 외부 입력에 대한 모니터링 상태일 수도 있다. 이러한 경우 단계 340과 같은 동작이나 신호가 발생하면, 수신 단말 혹은 수신 객체의 그룹 또는 객체는 활동 상태로 전환되거나, 활동 상태가 될 때까지 기다렸다가 활동 상태가 되면 외부에서 수신된 정보를 처리한다. 이때, 외부에서 수신된 정보는 속성의 값 등의 구체적인 값이 될 수도 있고, 대상이 되는 목적 객체(노드, 필드, 속성, 명령, 객체 그룹)의 동작을 생성하는 명령 또는 이벤트가 될 수도 있다.
<제 2 실시예>
이하에서는 본 발명의 제 2 실시예에 따라 사용자 인터페이스 구성 객체의 그룹 즉, 사용자 인터페이스 콘텐츠들이 포함하는 외부로 입출력 또는 교환 가능하도록 정해진 정보를 추출하기 위한 동작 또는 신호를 정의하고, 이 과정에서 입출력되는 정보 및 그 과정에 대하여 상세히 설명한다.
사용자 인터페이스를 구성하는 콘텐츠의 처리에 있어, 네트워크 세션의 관리, 복호 과정 및 단말의 상태나 동작의 변화 또는 데이터 혹은 인터페이스에서의 입출력에 대한 신호 및 내용을 이벤트로 정의하여 처리할 수 있다. 정의된 이벤트를 LASeR 엔진 또는 단말 또는 사용자 인터페이스 매니저에서 감지하여, 해당하는 이벤트에 따른 장면의 전환이나 단말 동작의 변화로 연결할 수 있다. 이하에서는 이벤트를 기반으로 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호를 인지하고 이를 바탕으로 외부의 다른 콘텐츠 혹은 사용자 인터페이스와의 정보 전달 및 교환하는 방법을 설명한다.
이벤트를 기반으로 한 사용자 인터페이스 정보 전달 및 교환의 예로써, LASeR 엔진 또는 단말 또는 사용자 인터페이스 매니저가 본 발명에서 설명하는 신규 이벤트의 발생을 감지하면, 연관된 명령 즉, 이벤트 발생 및 감지에 따른 사용자 인터페이스 외부 객체 또는 외부의 다른 콘텐츠, 프로그램 또는 단말과의 정보 교환 및 정보 입출력에 대한 함수의 실행 또는 요소 및 명령어 처리 등 다양한 작업으로 연결될 수 있다.
사용자 인터페이스 간의 혹은 다른 응용 프로그램과의 정보 전달 및 교환을 위하여, LASeR 엔진 또는 사용자 인터페이스 매니저는 정보 전달 및 교환이 가능한 다른 콘텐츠 혹은 프로그램으로 이벤트 발생을 감지할 수 있는 기능을 각 콘텐츠나 프로그램 또는 각 단말로 먼저 전송할 수 있다. 예를 들어 정보 교환이 가능한 콘텐츠나 객체 또는 다른 단말에게 이벤트 발생을 감지할 수 있는 리스너(Listener)를 추가하거나 등록할 수 있도록 하는 것이다. 이러한 리스너의 추가나 등록은 정보 전달의 대상이 되는 콘텐츠나 객체 또는 단말에게 이벤트 발생을 감지할 수 있는 리스너를 유니캐스트(unicast) 또는 멀티캐스트(multicast)하거나 방송(broadcasting) 등의 방법으로 전달하는 등의 동작을 통해 수행 할 수도 있다. 이러한 리스너의 전달 및 설정은 이벤트를 보내는 쪽과 보내는 쪽의 이벤트 발생에 따른 동작을 이해할 수 있도록 하는 방법이 될 수도 있으며, 이러한 리스너의 전달 및 설정을 위한 이벤트 리스너는 양쪽이 서로 이해할 수 있는 정보로 매핑하여 설정하거나 전달할 수도 있다.
아래 표 5는 사용자 인터페이스 구성 객체의 정보 출력이나 입력 및 이를 통한 외부의 다른 콘텐츠들과 혹은 또 다른 사용자 인터페이스와의 정보 전달 및 교환에 대한 신규 이벤트의 정의의 예이다.
<표 5>
Event name Namespace Description
move_out Urn:mpeg:mpeg4:laser:2009 이 이벤트는 포인팅 장치의 위치가 장면 구성 객체의 영역 밖으로 이동하는 순간 발생한다.
move_in Urn:mpeg:mpeg4:laser:2009 이 이벤트는 포인팅 장치의 위치가 장면 구성 객체의 영역 안으로 들어오는 순간 발생한다.
Widget_communication_typeA Urn:mpeg:mpeg4:laser:2009 이 이벤트는 정해진 동작을 통해서, 사용자 인터페이스 객체 외부와의 연결/정보교환이 있을 경우 발생한다.
Widget_communication_typeB Urn:mpeg:mpeg4:laser:2009 이 이벤트는 사용자 인터페이스 객체 외부와의 연결/정보교환이 있을 경우 발생한다.
Widget_communication(A) Urn:mpeg:mpeg4:laser:2009 이 이벤트는 입력 값 A를 통하여, 사용자 인터페이스 객체 외부와의 연결/정보교환이 이루어질 경우 발생한다.
상기 표 5에서 정의한 'move_out' 이벤트는 포인팅 장치(pointing device)의 위치가 장면 구성 객체의 영역 밖으로 이동하는 순간 발생한다. 또한 'move_out' 이벤트는 도 2의 250 단계에서 설명한 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호를 감지하는 순간 발생할 수도 있다. 이때, 외부로의 정보의 출력을 인지한 LASeR 엔진이나 사용자 인터페이스 매니저 또는 단말은, 정보 교환이 가능한 콘텐츠나 객체 또는 다른 단말에게 이벤트 발생을 감지할 수 있는 리스너를 유니캐스트 또는 멀티캐스트하거나, 방송(broadcasting) 등의 방법으로 전달하는 등의 동작을 수행 할 수도 있다.
'move_in' 이벤트는 포인팅 장치의 위치가 장면 구성 객체의 영역 안으로 이동하는 순간 발생한다. 또한 'move_in' 이벤트는 도 3의 340 단계에서 설명한, 정해진 경로가 아닌 다른 경로를 통하여 수신되는 정보가 있을 경우, 이에 대한 동작 또는 신호를 감지하여 발생할 수도 있다.
'widget_communication_typeA' 이벤트는 정해진 동작을 통해서, 사용자 인터페이스 객체 외부의 다른 사용자 인터페이스 객체, 프로그램 또는 단말과의 연결 및 정보교환이 있을 경우 발생한다. 이때 상기 정해진 동작은 예를 들어 드래그 앤드 드롭 같은 쌍을 이루는 동작이 될 수 있다. 이러한 정해진 동작은 LASeR 엔진이나 사용자 인터페이스 매니저나 단말에 미리 정의되어 인지 가능할 수도 있고, 정보 교환이 가능한 콘텐츠나 객체 또는 다른 단말에게 이벤트 발생을 감지할 수 있는 정보를 유니캐스트 또는 멀티캐스트하거나 방송(broadcasting) 등의 방법으로 전달하여 인지 가능하도록 할 수도 있다. 또한 'widget_communication_typeA' 이벤트는 도 2의 250 단계에서 설명한 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호와, 340 단계에서 설명한 정해진 경로가 아닌 다른 경로를 통하여 수신되는 정보가 있음에 대한 동작 또는 신호를 감지하는 순간 발생할 수도 있다.
'widget_communication_typeB' 이벤트는 사용자 인터페이스 객체 외부와의 연결 및 정보교환이 있을 경우 발생한다. 이는 사용자 인터페이스 객체 간의 연결 및 정보교환을 인지하는 것을 포함한다. 'widget_communication_typeB' 이벤트는 'widget_communication_typeA' 이벤트와 같이 도 2의 250 단계에서 설명한 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호와, 340 단계에서 설명한 정해진 경로가 아닌 다른 경로를 통하여 수신되는 정보가 있음에 대한 동작 또는 신호를 감지하는 순간 발생할 수도 있다. 'widget_communication_typeA' 이벤트와 다른 점은 미리 정해진 혹은 설정을 통하여 자동 업데이트, 정보 교환 등이 LASeR 객체 간에 일어날 경우 이를 감지할 수 있는 것이다.
'widget_communication(A)' 이벤트는 입력 값(A)을 통해서 사용자 인터페이스 객체 외부 간의 연결 및 정보교환이 있을 경우 발생한다. 'widget_communication(A)' 이벤트 역시 'widget_communication_typeA' 와 같이 도 2의 250 단계에서 설명한 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호와, 340 단계에서 설명한 정해진 경로가 아닌 다른 경로를 통하여 수신되는 정보가 있음에 대한 동작 또는 신호를 감지하는 순간 발생할 수도 있다. 또는 'widget_communication_typeB'와 같이 미리 정해진 혹은 설정을 통하여 자동 업데이트, 정보 교환 등이 LASeR 객체 간에 일어날 경우 이를 감지할 수 있다. 다만 widget_communication(A)' 이벤트가 다른 이벤트들과 다른 점은 A라는 입력 값이 있다는 것이다. 예를 들어, 외부의 다른 사용자 인터페이스 객체를 인지할 수 있는(ID나 URI 등) 정보를 입력 값으로 하여, 해당하는 사용자 인터페이스 객체와의 연결 및 정보 교환 수행 등을 수행할 수 있다. 또한, 사용자 인터페이스간의 정보 교환을 위하여 미리 등록된 이벤트의 이름이나, 인터페이스의 이름 또는 사용자 인터페이스의 ID, 특정 장치(Device)의 입력 값, 스크립트 및 프로그램의 함수, 기능 등을 표시하는 정보 또는 값 등이 상기 입력 값으로 사용될 수도 있다. 이때, 해당 객체로 이러한 이벤트의 발생을 감지 할 수 있는 리스너를 등록하는 동작이 선행될 수 있다. 입력 값 'A'로 표현한 모든 변수들은, 절대적 수치, 상대적 수치, 의미를 가지고 있는 값 등을 이용하여 다양하게 표현할 수 있다. 상기 의미를 가지고 있는 값은 일정 그룹 혹은 군으로 나누어 상징적으로 표현하거나, 내/외부에 미리 정해져 있는 값을 뜻하며, 내/외부에 미리 정해진 값은 이를 참조하여 확인할 수 있다. 상기 변수들은 각 시스템에 따라 표기하는 방법이나 사용하는 값이 다를 수 있다. 입력 값은 구간 값이 될 수도 있고, 양을 표현하는 값일 수도 있다. 또한 특정 값을 지칭하는 변수가 될 수도 있다. 또한 이 입력 값은 (A, B)와 같이 여러 개의 값으로 표현할 수도 있고, 쌍으로 표현할 수도 있다. 이때, 쌍으로 표현하는 여러 값들은 경우에 따라 여러 개가 될 수 있으며 그 각각의 데이터 타입은 다를 수 있다. 상기 실시예에서 정의한 이벤트들은 이벤트를 전달하기 위한 인터페이스를 통하여 전달될 수 있다. 예를 들어 widget_communication(A)와 같이 특정 입력값을 통해서 이벤트가 인지되는 것을 "input_eventTrigger=A" 또는 "out_eventTrigger=A"와 정보 필드의 형태로 해당 이벤트를 표시하거나 해당 이벤트의 정보를 전달할 수 있다. "input_eventTrigger=A", "out_eventTrigger=A"는 widget_communication(A)와 같이 "A"라는 이벤트가 발생하면, 또는 "A"에 의해 이벤트가 발생하면 이벤트에 따른 동작을 수행한다.
상기 실시예에서 외부로 추출 가능한 정보를 추출하는 혹은 외부에서 들어오는 정보를 수신하는 등의 동작 또는 신호의 발생을 감지하는 것은 LASeR 엔진이나 또는 사용자 인터페이스 매니저 또는 단말을 통해서 수행될 수 있다. 이때, 외부로의 정보의 출력을 인지한 LASeR 엔진이나 사용자 인터페이스 매니저 또는 단말은, 정보 교환이 가능한 콘텐츠나 객체 또는 다른 단말에게 이벤트 발생을 감지할 수 있는 정보를 유니캐스트 또는 멀티캐스트하거나 방송(broadcasting) 등의 방법으로 전달하여 인지 가능하도록 할 수도 있다. 이러한 리스너의 전달 및 설정은 이벤트를 보내는 쪽과 보내는 쪽의 이벤트 발생에 따른 동작을 이해할 수 있도록 하는 방법이 될 수도 있으며, 이러한 리스너의 전달 및 설정을 위한 이벤트 리스너는 양쪽이 서로 이해할 수 있는 정보로 매핑하여 설정하거나 전달할 수도 있다. 또한 인터페이스를 통하여 출력하는 정보 또는 입력하는 정보는 본 발명의 제 1 실시예에서 설명한 바와 같이 장면 구성 객체 내부에 정의될 수도 있으나, 외부에서 상기 입출력 가능 정보들에 대한 정보를 확인하여 수행할 수도 있다.
하기에서는 상기에서 설명한 외부로 추출 가능한 정보를 추출하기 위한 동작 또는 신호를 인지하고 이를 바탕으로 외부의 다른 콘텐츠 혹은 사용자 인터페이스와의 정보 전달 및 교환하기 위한 인터페이스에 대해 설명한다.
아래 표 6은 인터페이스 정의 언어를 이용하여 인터페이스를 정의한 것이다. 인터페이스 정의 언어(Interface Define Language, IDL)는 인터페이스에 대한 정의와 함수들을 정의하는 언어이다. 인터페이스 정의 언어는 어떤 시스템 및 프로그램 언어에도 해석할 수 있는 형태로 되어 있어 서로 다른 프로그램을 사용하더라도 해석될 수 있다. 본 발명에서 설명하는 인터페이스의 정의는 인터페이스 정의 언어의 포맷을 따르는 인터페이스에만 한하는 것이 아니며, 다양한 언어 및 정보의 표현방 법에 따라 그에 따른 방법으로 표현될 수 있다. 표 6 의 'Communication' 인터페이스는 상기 표 5에서 설명한 외부의 다른 콘텐츠 혹은 사용자 인터페이스와의 정보 전달 및 교환을 인지하기 위한 정보를 제공할 수 있다. 또한 다른 콘텐츠들과 혹은 또 다른 사용자 인터페이스와의 정보 전달 및 교환과 관련된 이벤트 등의 이벤트타입 및 이벤트를 인지하고 처리하기 위한 방법으로 사용 또는 참조 될 수 있다. 또한 'Communication' 인터페이스는 본 발명의 제 1 실시예의 방법 등을 통하여 추출된 정보를 전달하거나 교환하기 위한 방법으로 사용 또는 참조될 수 있다. 'Communication' 인터페이스의 속성(Attributes)은 사용자 인터페이스 객체를 참조하기 위한 정보나, 사용자 인터페이스 객체간의 정보 교환 및 연결을 한 정보를 표현할 수 있는 것이면 어떤 것이든 가능하다. 예를 들어, 외부로 추출 가능한 또는 입력으로 수신되는 사용자 인터페이스 구성 정보의 위치, 외부로 추출하는 또는 입력으로 수신하는 정보에 대한 ID등의 고유 정보, 추출 또는 수신할 정보의 타입, 해당 정보의 속성이나 해당 정보가 속하는 물리적 범주 또는 논리적 범주를 나타내는 정보, 정보 교환이 동기(sync) 모드로 수행될 것인지 아닌지, 정보 입출력에 대한 요청에 대한 콜 백(callback) 여부 등의 정보들을 이용하여 인터페이스를 구성할 수 있다. 또한 각 속성들의 변수의 타입은 아래서 표현하고 있는, "float", "boolean", "long", "DOMString" 등으로 한정하는 것은 아니며, 인터페이스의 속성들이 표현하고자 하는 값이 있다면 그에 따라 데이터 타입으로 사용 가능한 변수 중 데이터의 속성 및 기능에 적합한 타입의 변수로 바꾸어 사용할 수 있다.
앞서 언급한 바와 같이, 인터페이스를 구성하거나 표현하는 방법은 시스템이 나 단말, 정보를 표현하는 방법에 따라 달라질 수 있으므로, 본 발명에서 설명하는 인터페이스의 속성은 정보의 표현 방법에 따라 새로운 요소 또는 필드 또는 파라미터 등으로 표현될 수 있다. 또한 본 발명에서 설명하는 인터페이스의 상위 인터페이스가 존재한다면, 해당 인터페이스를 상속하여 정의할 수도 있다.
<표 6>
interface Communication {
readonly attribute DOMString type;
readonly attribute DOMString name;
readonly attribute DOMString targetID;
readonly attribute DOMString targetName;
readonly attribute DOMString targetValue;
readonly attribute DOMString dataType;
readonly attribute DOMString eventName;
readonly attribute DOMString eventinputValue;
readonly attribute float target_x;
readonly attribute float target_y;
readonly attribute DOMString location;
readonly attribute DOMString detail;
readonly attribute Boolean async;
readonly attribute Boolean callback;
readonly attribute Boolean network;
readonly attribute DOMString networkName;
readonly attribute DOMString callbackValue;
}

No defined constants

Attributes
■ type : 이 값은 인터페이스의 타입을 나타낸다.
■ name : 이 값은 인터페이스의 이름을 나타낸다.
■ targetID : 이 값은 출력 대상 객체의 id를 나타낸다.
■ targetName : 이 값은 출력 노드 또는 출력 속성의 이름을 나타낸다.
■ targetValue : 이 값은 출력 값을 나타낸다.
■ dataType : 이 값은 출력 값의 데이터 타입을 나타낸다.
■ eventName : 이 값은 출력 또는 입력되는 이벤트 또는 명령을 나타낸다.
■ eventinputValue : 이 값은 출력 또는 입력되는 이벤트 또는 명령의 입력값을 나타낸다.
■ target_x : 이 값은 출력 대상 객체의 x 좌표를 나타낸다.
■ target_y : 이 값은 출력 대상 객체의 y 좌표를 나타낸다.
■ location : 이 값은 출력 대상 객체의 위치를 나타낸다
■ detail : 이 값은 출력 값에 대한 설명을 포함할 수 있다.
■ async: 출력 요청에 대한 결과의 반영이 동기 모드인지 비동기 모드인지를 나타낸다.
■ callback : 출력 요청의 결과에 대한 callback 수행 여부를 나타낸다.
■ callbackValue : 출력 또는 입력 요청의 결과에 대한 callback으로 전달할 정보를 나타낸다.
■ network : 외부 네트워크와의 연결 여부를 나타낸다.
■ networkName : 외부 네트워크의 이름(프로토콜 종류 등)을 나타낸다.
표 6에서 "type"은 인터페이스의 타입을 나타내는 것으로, 정보의 입출력에 대한 속성이나 해당 정보가 속하는 물리적 범주 또는 논리적 범주를 나타내는 정보 등을 나타낼 수도 있다. "Name"은 인터페이스를 구분하기 위한 구분자나 ID로서 사용될 수 있다. 또한 인터페이스를 통하여 수행되는 동작을 설명하기 위한 정보로 사용될 수도 있다. "target ID"는 출력 또는 입력 대상 객체의 ID를 나타낸다. 예를 들어, 대상 노드나 엘리먼트의 아이디로 사용될 수 있다. "targetName"은 출력 또는 입력 대상 객체 또는 대상 정보의 요소나 속성의 이름 나타낼 수 있으며, "targetValue"는 출력 또는 입력 값을 나타내는 것으로 출력되는 정보 자체가 될 수도 있고, 출력 대상 또는 입력 객체를 나타낼 수도 있다. 한편 본 발명에서 설명하는 각각의 정보들은 하나의 필드를 이용해 표현할 수도 있다. 예를 들어 "targetID"와 "targetName"을 하나의 필드로 하여 "targetID.targetName"을 사용할 수 있고, 구체적으로 "circle.r"이라고 사용할 경우, "circle"이라는 대상 노드의 "r"이라는 속성'으로 표현할 수 있다.
"dataType"은 데이터의 특성이나 기능상의 특성 등을 표현하도록 할 수 있다. 데이터의 특성은 예를 들어, "string", "boolean", "decimal", "precisionDecimal", "float", "double", "duration", "dateTime", "time", "date", "gYearMonth", "gYear", "gMonthDay", "gDay", "gMonth", "hexBinary", "base64Binary", "anyURI", "QName", "NOTATION", "normalizedString", "token", "language", "NMTOKEN", "NMTOKENS", "Name", "NCName", "ID", "IDREF", "IDREFS", "ENTITY", "ENTITIES", "integer", "nonPositiveInteger", "negativeInteger", "long", "int", "short", "byte", "nonNegativeInteger", "unsignedLong", "unsignedInt", "unsignedShort", "unsignedByte", "positiveInteger", "yearMonthDuration" 등과, 열거형(enumeration) 등의 정수형, 문자열, 소수형, 고정소수형, 부정소수형, 리스트 형 등 해당 리치미디어 콘텐츠에서 활용 가능한 다 양한 데이터 타입이 될 수도 있고, 응용 프로그램이나 정보를 구분하는 "mimeType"등을 나타낼 수도 있고 응용 프로그램이나 응용프로그램 인터페이스의 파라미터의 타입이나, 변수의 타입 또는 스크립트의 파라미터의 타입이나, 변수의 타입이 될 수도 있다.
"target_x", "target_y", "location" 등의 값은 출력 또는 입력 대상 객체의 위치 관련 정보를 나타낸다. "detail"은 출력 또는 입력 값에 대한 설명을 포함할 수 있다. "Async"는 출력 요청에 대한 결과의 반영이 동기 모드인지 비동기 모드인지를 나타낸다. 예를 들어 정보 교환 요청에 대한 결과 반영이 동기 모드로 설정된 정보가 출력 또는 입력될 경우, 정보 교환에 대한 결과가 즉각 반영되어야 한다. 따라서 사용자 인터페이스가 비활성화 상태일 경우, 사용자 인터페이스를 활성화시켜서 결과를 반영시켜야 한다.
"callback"은 출력 또는 입력 요청의 결과에 대한 콜 백(callback) 수행 여부를 나타낸다. "callbackValue"은 출력 또는 입력 요청의 결과에 대한 콜 백(callback) 수행에 따라 전달할 정보를 나타낸다. 예를 들어 외부로 추출 가능한 정보를 추출하는 혹은 외부에서 들어오는 정보를 수신하는 동작의 수행에 대한 결과가 정보가 추출된 또는 수신된 대상으로 전달되어 결과에 대해 확인할 수 있도록 하는 것이다. "network"는 외부 네트워크와의 연결 여부를 나타내고, "networkName"은 네트워크의 이름 또는 프로토콜의 종류를 나타낸다.
"eventName"은 출력 또는 입력 대상이 되는 이벤트의 이름을 나타낸다. 상기 이벤트는 대상 객체(또는 필드 또는 속성 또는 노드)에 특정 동작을 트리거링 하는 이벤트가 될 수 있다. 또한 대상이 되는 객체의 동작을 만드는 명령이나 이벤트에 따라 정해진 동작을 수행하게 하는 명령으로 사용될 수 있다. 또한 대상 객체의 이벤트를 외부로 출력할 수도 있다. 예를 들어, 입력 인터페이스를 통하여 해당 정보가 전달될 경우, eventName='audio.activate'는 대상되는 객체의 이름이나 객체의 아이디가 "audio"인 대상 객체가 "activate"라는 이벤트를 트리거링 함으로써 "activate"라는 이벤트에 정의된 동작을 수행할 수 있다. 즉 이벤트를 수신하는 측의 동작을 트리거링 시킬 수 있다.
출력 인터페이스를 통하여 이벤트를 전달하는 경우는, 해당 이벤트를 외부로 발신할 수 있음을 뜻한다. 이는 해당 이벤트의 발생을 외부로 알리도록 동작할 수도 있고, 외부의 해당 이벤트 수신객체의 동작을 트리거링하는 이벤트를 출력하도록 동작할 수도 있다. 이때, 동작하는 대상에 따라 수신하는 측과 출력하는 측이 모두 이해할 수 있도록 이벤트나 명령의 매핑을 위한 정보를 더 제공할 수도 있다. 예를 들어 "video"을 "actiavate"하라는 이벤트는 "video"를 "play"하라는 명령으로 매핑될 수 있으며, 본 발명은 이러한 매핑 정보나 매핑 테이블 매핑 과정을 수행하는 것을 포함한다.
또한 입력 또는 출력되는 동작에 따라 복수개의 파라미터나 복수개의 이벤트를 동시에 전달할 수 있다. 예를 들어, "video"를 "start", "pause" 및 "stop"하기 위해 필요한 필요 정보들을 각각 전달할 수 있다.
또한 상기 이벤트가 입력값을 필요로 하는 것일 경우, "eventInputValue"라는 새로운 필드를 이용하여와 같이 이벤트의 입력값 입출력 인터페이스를 통하여 전달할 수 있다. 이는 상기에서 설명한 바와 같이 두개 이상의 필드를 하나의 필드로 통합하여, "eventName.inputValue"와 같이 하나의 필드를 이용하여 정보를 전달할 수도 있다.
상기 인터페이스의 정보들은 여러 개의 출력 정보가 있을 경우, 각 정보에 따라 필요한 정보들만을 골라 표현될 수도 있다. 상기 출력 정보를 표현하기 위한 속성은 n개의 값을 쌍으로 가지는 하나의 속성을 이용하여 표현할 수도 있다. 아래 표 7은 여러 개의 출력 정보가 있을 경우에 대한 예를 나타낸 것이다.
<표 7>
interface Communication {
for(i=0; i<n; i++){
readonly attribute DOMString type[i];
....
readonly attribute DOMString networkName[i];
}
}
앞서 설명한 바와 같이 본 발명에서 설명한 인터페이스를 통하여 전달되는 정보를 표현하는 형태는 다양하게 정의될 수 있다. 예를 들어,
<communication type="..." name="..." targetID="..." targetName="..." targetValue="..." dataType="..." async="..." callback="..." network="..." networkName="..."/>
와 같이 XML형식의 선언형으로 표현할 수도 있으며, 이때에도,
<communication type="..." >
<output type="..." targetID="..." targetName="..."targetValue="..." dataType="..." async="..." callback="..." network="..." networkName="..."/>
<input type="..." targetID="..." targetName="..." targetValue="..." dataType="..." async="..." callback="..." network="..." networkName="..."/>
</communication>

또는

<communicationtype="..."network="..."networkName="...">
<output type="..." targetID="..." targetName="..."targetValue="..." dataType="..." async="..." callback="..."/>
<input type="..." targetID="..." targetName="..." targetValue="..." dataType="..." async="..." callback="..."/>
</communication>
와 같이 정의하거나,
<communication io_type="output" name="..." targetID="..." targetName="..." targetValue="..." dataType="..." async="..." callback="..." network="..." networkName="..."/>
<communication io_type="input" name="..." targetID="..." targetName="..." targetValue="..." dataType="..." async="..." callback="..." network="..." networkName="..."/>
와 같이 정의하거나,
<communication type="type" value="..."
type="name" value="..."
type="targetID" value="..."
...
/>
와 같이 정의할 수도 있다. 이와 같이, 각 정보가 표현하는 바는 해당 정보가 요소의 형태를 하고 있거나 속성의 형태를 하고 있는지에 관계없이 그 정보가 전달하는바가 수행하고자 하는 목적에 맞는다면, 각 시스템에 적합한 형태로 구성될 수 있다.
상기 정보들의 표현하는 인터페이스를 통하여 전달되는 데이터의 형태 즉 표현방법은 모두 다르지만, 해당 인터페이스를 통하여 전달하고자 하는 정보 및 목적하는 바는 모두 동일하다. 그러므로 본 발명에서 구체적인 구문(syntax)으로 설명 하고 있지 않을지라도, 사용자 인터페이스 객체 또는 파일 또는 응용프로그램과의 정보 교환을 할 수 있는 수치나 데이터에 대한 속성 및 정보를 포함하고 있으며, 상기 인터페이스를 통하여 전달하고자 하는 정보 및 목적이 동일하다면 본 발명의 범주에 속한다고 할 수 있다.
특히 본 발명의 인터페이스를 구성하는 요소로 설명한 정보를 포함하고 있다면 이는 본 발명에서 설명하는 사용자 인터페이스 구성 객체의 정보 출력이나 입력 및 이를 통한 외부의 다른 콘텐츠들과 혹은 또 다른 사용자 인터페이스와의 정보 전달 및 교환 인터페이스의 범주에 속한다고 볼 수 있다. 상기 표 6의 예제에서는 외부로 추출하는 정보에 대한 인터페이스 및 그 구체적인 정보들에 대한 예를 들어 설명하였으나, 상기 외부와의 정보를 교환하기 위하여 출력 정보에 상응하는 입력 정보를 위한 인터페이스를 제공할 수 있음은 물론이다. 또한 상기 인터페이스는 출력을 위한 인터페이스와 입력을 위한 인터페이스가 별개로 구성될 수도 있고, 하나의 인터페이스를 공유할 수도 있다.
아래 표 8은 상기에서 정의한 이벤트를 사용하여 장면을 구성하는 예이다. 예를 들어 쌍을 이루는 동작을 통해 'widget_communication_typeA' 가 발생하면, 외부로 데이터를 출력하는 단말 혹은 이벤트 리스너(event listener)를 수신한 단말의 이벤트 리스너는 이를 인지하여 이벤트 처리기에게 정보를 출력하기 위한 동작을 수행하도록 명령하고. 외부에서 데이터를 수신하는 단말 측 이벤트 처리기에게 정보의 입력을 위한 동작을 수행하도록 명령한다. 정보를 출력하기 위한 동작을 명령받은 객체는 "output" 인터페이스를 통하여 출력 정보를 수신 객체로 전달하 고, 정보를 입력 받는 객체는 "input" 인터페이스를 통하여 입력 정보를 수신 받을 수 있다. 이 동작은 동시에 수행될 수도 있고, 외부로 데이터를 출력하는 단말 측의 이벤트 인지와 이벤트 리스너의 송신 등 그에 따른 동작이 먼저 수행되고 나서, 외부에서 데이터를 수신하는 단말의 동작이 수행될 수도 있다. 아래 표 8의 예제에서와 같이, 스트립트를 이용하여 입력 및 출력 함수를 호출하고, 이러한 함수에서 활용되는 정보는 본 발명의 제 2 실시예를 통해서 설명한 인터페이스를 통하여 전달되는 정보일 수 있다.
<표 8>
//외부로 데이터를 출력하는 단말 측
<ev:listener handler='#output' event='widget_communication_typeA' />
<script id='ouput'>

</script>

//외부에서 데이터를 수신하는 단말 측
<ev:listener handler='#input' event='widget_communication_typeA' />
<script id=' input'>

</script>
<제 3 실시예>
도 4a 및 도 4b는 본 발명의 실시예에 따라 정해진 경로로만 정보를 수신 받아 기능을 수행하는 수신 객체의 입력으로 특정 동작을 수행하는 오브젝트들의 그룹 즉, 사용자 인터페이스 객체에서 추출 또는 출력된 정보를, 사전 예측이 불가능한 경로를 통하여 수신하여 사용자 인터페이스 구성 객체의 정보 출력이나 입력 및 이를 통한 외부의 다른 콘텐츠들과 혹은 다른 사용자 인터페이스와의 정보 전달 및 교환을 수행하는 과정을 설명하는 순서도이다. 도 4a 및 도 4b를 통해서 설명하는 것은 본 발명에서 설명하는 사용자 인터페이스 객체의 정보 교환 방법의 한 예를 든 것이며, 사용자 인터페이스 객체의 정보 교환 및 입출력의 방법이 반드시 도 4a 및 도 4b에서 설명하는 내용에만 한정되는 것은 아니다.
도 4a는 교환하기 위한 정보를 출력하는 사용자 인터페이스 객체의 동작 과정을 설명한다. 단계 400에서 특정 동작을 수행하는 오브젝트 그룹 즉, 사용자 인터페이스 객체의 영역 내에서 객체 전체 혹은 객체의 일부를 선택한다. 이때, 외부로 출력 가능한 정보를 담고 있는 객체는 선택 가능 상태로 설정될 수 있다. 예를 들어 해당 영역을 선택하면 "focusable" 속성이 "true"로 설정되거나, "focus in"이벤트를 통하여 수행할 수 있다.
단계 410에서 정보 교환을 위하여 정해진 동작이 발생하는 것을 인지한 LASeR 엔진 또는 사용자 인터페이스 매니저 또는 단말은 420단계에서 정보 교환을 위한 정보를 추출하거나 출력한다. 이때, 단계 410의 정해진 동작은 본 발명에서 앞서 설명한 바와 같이 쌍을 이루는 선행동작과 후행 동작으로 이루어질 수도 있고, 여러 개의 동작 또는 이벤트들이 순차적으로 발생하여 본 발명에서 설명하는 외부로의 정보 추출 또는 출력이라는 명령 또는 이벤트를 발생시킬 수도 있다.
예를 들면, 특정동작을 하는 오브젝트 그룹 즉, 사용자 인터페이스 객체의 영역 내에서 포인팅 장치의 버튼이 눌려지는 동작(mouse_down)이 발생하고, 포인팅 장치의 버튼이 눌려진 채로 포인팅 장치의 위치 이동(mouse_move)이 발생하여, 포인팅 장치의 위치가 해당 사용자 인터페이스 객체의 영역 밖으로 이동하는 동작이 일어날 수 있다. 이들 동작 각각은 각각으로서도 의미를 가지지만, 사용자 인터페이스 객체의 정보를 추출/출력하기 위해서는 이러한 일련의 동작이 정해진 수순에 따라 일어나야만 외부와의 정보 교환을 위한 동작 또는 이벤트가 발생한 것으로 인지될 수 있다.
단계 420에서 설명하는 정보의 출력은 정해진 동작이 쌍을 이루는 동작일 경우, 외부와의 정보 교환을 위한 정보 출력이나 경로 설정 등의 동작은 쌍을 이루는 동작 중 선행동작이 발생할 때 수행될 수도 있고, 쌍을 이루는 동작이 모두 발생해야 외부와의 정보 교환을 위한 명령어나 이벤트가 발생하였음을 인지하고 그에 따른 동작을 수행할 수도 있다. 추출되거나 출력된 정보는 시스템 라이브러리에 복사하거나 특정 동작을 하는 객체 그룹을 관리하는 관리부의 임시 버퍼에 저장하거나 할 수도 있다. 상기 동작 과정에서 외부로의 정보의 출력을 인지한 LASeR engine이나 사용자 인터페이스 매니저 또는 단말은, 정보 교환이 가능한 콘텐츠나 객체 또는 다른 단말에게 이벤트 발생을 감지할 수 있는 리스너 등의 정보를 유니캐스트 또는 멀티캐스트하거나, 방송(broadcasting)과 같은 방법으로 전달하는 등의 동작을 수행 할 수도 있다.
상기 이벤트 발생을 감지할 수 있는 정보를 전달하는 과정은 정보의 입출력 이전에 미리 수행될 수도 있고, 정보 교환을 위한 정해진 동작이 발생하면 수행될 수도 있다. 출력되는 정보는 본 발명의 제 2 실시예에서 설명한 인터페이스를 통하여 전달될 수 있다.
도 4b는 사용자 인터페이스 객체의 외부와의 정보교환 과정 중, 사전 예측이 불가능한 경로를 통하여 수신한 정보를 수신 객체의 기능 및 동작을 수행하기 위한 입력 값으로 하여 동작하는 과정을 설명한다. 단계 430에서 정보 교환을 위하여 정해진 동작의 발생을 인지하면, 단계 440에서 사용자 인터페이스 객체로 입력되는 정보가 있는지 확인한다.
단계 430에서 설명하는 정보 교환을 위하여 정해진 동작은 도 4a의 단계 410에서 설명한 것과 동일하게 설명될 수 있다. 단계 430의 동작 역시 쌍을 이루는 동작을 이용하여 인지하거나, 여러 개의 순차적으로 발생하는 이벤트를 통하여 정보 교환 이벤트의 발생을 인지할 수 있다. 쌍을 이루는 동작을 수행하는 경우, 후행 동작의 수행에 앞서 선행 동작이 외부에서 발생했음을 미리 확인해야 하도록 설정할 수도 있다. 순차적 동작을 통하여 해당 이벤트가 발생할 경우, 도 4a에서 설명한 과정에 이어, 포인팅 장치의 위치가 정보 교환의 대상이 되는 정보 수신 객체의 영역 내로 들어간 후, 정보 수신 객체의 영역 내에서 포인팅 장치의 버튼 눌림 해제(mouse-out)를 수행하면 정보 교환을 위한 정해진 동작이 발생했음을 단말이 인지하게 될 수도 있다.
단계 440에서 입력 정보가 있을 경우, 단계 450에서 해당 입력 정보가 정해진 경로를 통하여 전달되는 정보인지, 사전 예측 불가능한 경로를 통해서 전달된 정보인지 확인한다. 이때 수신하는 입력 정보는 다수가 될 수도 있다. 단계 460에서는 수신 객체의 기능 및 수신 가능 정보의 타입 등을 확인하여, 단계 470에서 입력 정보와 수신 객체가 수신 가능한 정보의 매핑(mapping)을 수행한다.
상기 과정에서 단계 460와 단계 470는 반드시 도면의 순서대로 동작하는 것 은 아니다. 예를 들어, 이 과정은 입력 정보의 특성을 먼저 확인하고 나서 수신 객체가 수신 가능한 정보를 확인하여 매핑(mapping)을 수행하는 등으로 변경될 수도 있다. 수신 객체와 입력 정보를 매핑은 수신된 입력 정보의 물리적 또는 논리적 범주에 따라서 결정될 수도 있고, 전달되는 정보의 타입에 따라 결정될 수도 있다. 또한 추출된 입력된 정보의 속성/노드가, 정보가 수신될 속성/노드와 동일한 경우, 해당 노드로 입력 가능한 수신 정보로 인지할 수 있다. 수신되는 정보가 다수가 될 경우, 상기에서 설명한 매핑 과정을 통하여 입력 정보를 매핑 시킬 수도 있고, 입력된 정보의 기능 정보를 참조하여, 해당 수신 객체의 기능 정보에 맞는 값을 매핑 시키는 등의 동작도 수행 가능하다. 이 매핑 과정은 단말 또는 사용자 인터페이스 매니저가 수행할 수도 있고, LASeR 엔진이 수행할 수도 있다.
단계 470을 통하여 수신한 정보가 수신 객체 자신의 특정한 기능을 수행할 수 있는 입력 값임이 인지되면, 단계 480에서 수신된 정보를 수신 객체의 입력 값으로 확인하고, 단계 490에서 수신 객체의 기능을 수행한다. 예를 들어, 검색 기능을 가진 수신 객체에 텍스트 스트링이 입력으로 들어왔을 경우, 해당 텍스트 스트링이 다른 속성이나 노드의 값이 아니라 텍스트 콘텐츠 임을 확인한 단말은 해당 텍스트 스트링을 이용하여 검색을 수행할 수 있다. 또 다른 예로, "fill"이라는 이름의 속성에서 추출한 색상 정보를 이용하여, 수신 객체의 배경을 표현하는 객체의 "fill" 속성에 매핑시켜 배경 색상을 바꾸는 등의 동작도 수행할 수 있다.
상기 정해진 동작은 방향성이 있는 동작을 통해서 해당 방향으로 정보를 전달하는 동작도 수행할 수 있다. 예를 들면, 손가락을 한쪽으로 튕기는 동작을 한다 든가, 단말을 아래쪽으로 기울이면, 중력을 인지하여 아래쪽에 있는 객체로 정보를 전달하는 등의 동작을 통하여 사용자 인터페이스 객체의 정보를 추출하고 전달하는 동작도 수행할 수 있다. 이러한 동작을 위하여 벡터 정보가 더 필요하다면, 본 발명에서 설명한 인터페이스에 벡터 정보를 표현하기 위한 속성 등이 더 추가될 수 있다.
상기 도 4a 및 4b에서는 이벤트를 기반으로 하여 사용자 인터페이스 구성 객체의 정보 출력이나 입력 및 이를 통한 외부의 다른 콘텐츠들과 혹은 또 다른 사용자 인터페이스와의 정보 전달 및 교환에 대한 예를 설명하였다. 그러나 상기 예제와 달리 자동적으로 LASeR 객체 또는 외부 객체와의 정보 교환을 할 수도 있다. 이 경우, 단말 및 사용자 인터페이스 매니저는 정보 교환이 가능한 사용자 인터페이스, 프로그램 및 단말에 대한 정보를 미리 확인하여, 별도의 이벤트 없이 설정된 값이나 특정 입력 값에 따라 정보 교환을 위한 입출력을 수행할 수도 있다.
예를 들어 정해진 시간에 정보를 출력하기로 정해진 객체로부터 출력되는 정보를 확인하여, 출력 정보의 노드 타입, 속성 이름, 기능 등에 대한 정보가 일치하면 이를 수신하는 동작 등이 가능함을 의미한다. 외부로 데이터를 출력할 객체는 지속적으로 외부로 데이터를 출력하는 방식으로 동작할 수도 있고, 사용자에 의해 미리 설정된 값에 따라 외부 객체와 정보 교환을 할 수도 있다. 외부 정보 수신 객체 역시 외부로부터 수신하는 정보를 모두 수신하여 자체 필터링을 통하여 입력 정보로 사용하는 방식으로 동작할 수도 있고, 설정된 값에 따라 외부 객체로부터 미리 정해진 정보 만를 수신 할 수도 있다. 또한 이런 동작은 객체 자신이 스스로 할 수도 있고, 객체 자신이 스스로 할 수 없는 경우 사용자의 설정이나 객체를 관리하는 모듈, 예를 들어 사용자 인터페이스 매니저가 수행할 수도 있다.
본 발명에서 설명하는 외부 객체와의 정보 교환 방법은 1:1정보 교환에 한정하는 것은 아니며, 1:N 정보 교환, N:1 정보 교환, N:N 정보 교환도 가능하다.
이하에서는 상기 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠로부터 외부로 추출 가능한 정보를 추출하여, 사전예측 불가능한 경로를 통해서 수신되는 정보들을 정해진 경로를 통하여 수신되는 정보들과 같이 처리하기 위한 장치 구성에 대해 설명한다.
도 5는 본 발명의 실시예에 따른 송신기의 블록 구성도이다.
도 5를 참조하여 설명하면, 본 발명의 실시예에 따른 송신기는 데이터 생성부(500), 부호기(510), 데이터 전송부(520)를 포함한다.
데이터 생성부(500)는 외부로 출력 또는 추출 가능한 정보 및 외부와의 정보 교환을 위한 이벤트를 포함하는 사용자 인터페이스 관련 정보를 담고 있는 콘텐츠 및 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠를 생성한다.
또한 데이터 생성부(500)에서 생성된 데이터는 부호기(510)로 전달되어 부호화 과정을 거치며, 부호화된 데이터는 데이터 전송부(520)로 전달되어 사용자 인터페이스 콘텐츠의 전송을 위한 특정 포맷이 있을 경우 해당 포맷으로 포맷팅되거나 하여 수신기로 전송된다.
도 6은 본 발명의 실시예에 따른 수신기의 블록 구성도이다.
도 6을 참조하여 설명하면, 본 발명의 실시예에 따른 수신기는 디코딩 버 퍼(600, 650), 복호기(605, 660), 구성메모리(610, 670), 렌더러(615, 680), 이벤트 처리부(625)를 포함한다. 또한 이벤트 처리부(625)는 위젯 통신 이벤트(Widget communication Event) 처리부(630)를 포함한다.
전송을 위하여 특정 포맷으로 정의되어 전달된 정보는 해당 데이터의 해석기로 전달되어 해석하는 과정을 미리 거칠 수도 있다. 또한 수신한 사용자 인터페이스 콘텐츠에 따라 정보의 형태가 다른 여러 정보의 집합으로 구성될 수도 있으므로, 콘텐츠의 타입에 따라 각자 해석 가능한 해석기로 전달된다. 수신한 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠는 디코딩 버퍼(600, 650)를 거쳐 복호기(605, 660)에서 복호화 과정을 거친다. 복호기(605, 660)에서 복호된 콘텐츠는 구성메모리(610, 670)로 전송되어 해석된다.
구성메모리(610, 670)는 사용자 인터페이스 매니저의 구성메모리일 수도 있고, 사용자 인터페이스 구성객체의 구성메모리 일수도 있다. 여기서 사용자 인터페이스 구성 객체의 구성메모리는 LASeR 엔진의 구성메모리가 될 수 있다. 구성메모리(610, 670)에서는 외부로 출력가능 하도록 정의된 정보/속성/파라미터의 존재 여부를 확인하고 명령어나 나머지 장면 구성 요소들을 해석하고 처리한다. 구성메모리(610, 670)에서 해석되고 처리된 모든 데이터는 사용자 인터페이스 매니저에서 사용자 인터페이스를 관리하기 위해 사용되거나, 렌더러(615, 680)를 통하여 렌더링 과정을 거쳐 출력된다.
위젯 통신 이벤트 처리부(630)를 포함하는 이벤트 처리부(625)는 정해진 경로가 아닌 정보 교환에 대한 동작 또는 신호를 감지한다. 이때 사용자 인터페이스 의 정보 교환과 관련된 동작은 예를 들어 외부로 출력 가능하도록 정의된 정보 또는 파라미터를 추출하여 목적지가 되는 수신 단말 혹은 사용자 인터페이스 객체들로 구성된 목적 그룹 또는 목적 객체로 전송한다.
외부의 다른 경로를 통하여 정보를 수신한 목적 단말 또는 객체는 이 정보들을 확인하여, 자신의 특정 기능을 수행하기 위한 정보를 추출한다. 자신이 활용할 수 있는 입력 정보를 확인하는 방법은 인터페이스를 통하여 전달되는 정보에 따라 달라질 수 있으며, 이 과정은 인터페이스를 통해 전달되는 정보를 이용한 입출력 정보의 매핑과정도 포함한다. 또한 추출한 정보 즉 데이터를 이용하여 자신의 기능을 수행하거나 구성 객체의 특징에 따라 개인화된 사용자 인터페이스의 입력 값으로 사용하는 등 다양한 동작을 수행할 수 있다. 이때, 수신 단말 혹은 수신 객체의 그룹 또는 객체 자신은 자신이 수신한 정보가 자신의 특정 기능을 수행하기 위한 정보임을 확인하는 과정은 LASeR 엔진을 통해서 수행될 수도 있고, 사용자 인터페이스 매니저를 통해 수행될 수도 있으며, 수신 단말 혹은 수신 객체의 그룹 또는 객체 스스로가 수행할 수도 있다. 한편 위젯 통신 이벤트 처리부(630)를 포함하는 이벤트 처리부(625)는 별도로 존재할 수도 있고, LASeR 엔진 또는 단말 또는 사용자 인터페이스 매니저에 포함되는 부분이 될 수도 있다.
상기 본 발명에서 구성메모리로 칭하는 블록은 명칭이 다르다고 하여도 각 프로그램 수행 엔진이나, 리치미디어 엔진에서 본 발명에서 설명하는 구성메모리의 동작과 동일한 동작을 하는 모듈과 동일한 것으로 볼 수 있다. 예를 들어, 구성메모리는 장면트리매니저 혹은 DOM 트리 구성부, Event 처리부는 사용자 인터페이스 매니저 등이 될 수 있다. 또한, 송신기에서 부호화하여 전송하지 않을 경우, 복호화 과정은 생략될 수 있다. 또한 본 발명에서 설명하는 객체의 그룹, 객체 자신은 사용자 인터페이스의 구성요소가 될 수도 있고, 응용 프로그램 혹은 파일이 될 수도 있으며, 사용자 인터페이스 자체 또는 위젯이 될 수도 있다.
<제 4 실시예>
본 발명의 각 실시예를 통하여 설명한 사용자 인터페이스 객체의 정보 교환은 앞서 설명한 바와 같이 LASeR 엔진 또는 사용자 인터페이스 매니저 또는 단말에 의해 수행될 수 있다. 본 발명의 제 4 실시예에서는 도 7의 사용자 인터페이스 구성 객체의 정보 출력이나 입력 및 이를 통한 외부의 다른 콘텐츠들 또는 사용자 인터페이스와의 정보 전달 및 교환을 사용자 인터페이스 매니저를 통해 수행하는 과정을 구체적인 예를 들어 설명한다.
본 발명에서 설명하는 사용자 인터페이스 콘텐츠는 하나의 파일 포맷으로 구성될 수도 있고, 사용자 인터페이스와 관련된 여러 개의 콘텐츠 및 정보로 구성될 수 있다. 예를 들어, 사용자 인터페이스의 장면과 관련된 구성 객체에 대한 정보와 사용자 인터페이스를 구동하는 동안 사용자 인터페이스 관리를 위하여 사용자 인터페이스 매니저가 확인해야 하는 정보가 별도의 정보로 구성될 수 있다. 이때 장면과 관련된 구성 객체에 대한 정보는 LASeR 엔진이 처리하고, 사용자 인터페이스 관리를 위한 정보는 사용자 인터페이스 매니저에서 처리하는 등 각 정보의 목적에 따라 다루어 질 수 있다. 이와 마찬가지로, 사용자 인터페이스 구성 객체의 정보 교 환과 관련된 정보도 별도의 정보로 구성되어 사용자 인터페이스 구성을 위한 LASeR 엔진이나, 사용자 인터페이스 매니저에 의해 참조될 수 있다.
도 7을 참조하면, 단계 700에서 사용자 인터페이스 매니저는 사용자 인터페이스 콘텐츠를 수신한다. 이때, 수신하는 정보는 사용자 인터페이스를 구성하는데 필요한 초기화 정보를 포함하는 파일 또는 패키지 일 수도 있고, 사용자 인터페이스를 초기화하기 위하여 필요한 초기화 정보만으로 구성된 별도의 정보나 파일일 수도 있다. 파일 또는 패키지를 수신할 경우, 수신한 파일 또는 패키지를 해석하여 초기화 정보의 존재여부를 확인하는 과정이 필요하다.
단계 710에서 사용자 인터페이스를 초기화하기 위한 정보를 먼저 확인한다. 단말에 따라 구체적인 동작은 달라질 수 있으나, 단계 710에서 확인한 정보를 바탕으로 사용자 인터페이스를 초기화 하는 과정에는 콘텐츠가 사용자 인터페이스 매니저가 해석 가능한 또는 사용자 인터페이스 관련 콘텐츠로써 유효한 파일 또는 정보인지 확인하는 과정; 사용자 인터페이스 초기화를 위한 설정 정보를 확인하는 과정; 사용자 인터페이스를 구성하는데 필요한 다양한 구성요소들에 대한 정보를 확인하는 과정; 등이 포함될 수 있다.
초기화 과정을 끝낸 사용자 인터페이스 매니저는 단계 720에서 사용자 인터페이스 구성 정보를 확인한다. 이때, 단계 720에서 설명하는 사용자 인터페이스의 장면 구성 정보는 사용자에게 실제로 보여지는 멀티미디어/리치미디어 형태의 장면 구성 콘텐츠를 의미하는 것이다. 사용자 인터페이스 매니저에 의하여 장면 구성 콘텐츠가 확인되면, 실제 장면을 구성하는 과정은 HTML 브라우저나 LASeR 등 장면 구 성 콘텐츠의 엔진에서 수행될 수 있으며, 사용자 인터페이스 매니저는 이 콘텐츠의 장면 구성 과정 및 결과에 관한 정보를 장면 구성 엔진(LASeR 엔진, HTML 브라우저) 등과 공유하거나, 장면 구성 엔진으로부터 보고받거나, 장면 구성 엔진을 모니터링 하는 형태로 동작할 수 있다.
그러나 본 발명의 단계 720에서 설명하는 장면 구성 정보의 확인과정이 장면 구성을 위한 실제 콘텐츠가 장면 구성을 위한 메모리로 로드되어 구성된 상태를 포함하지 않을 수도 있다. 경우에 따라, 장면 구성 콘텐츠를 수신할 수 있는 위치를 확인하거나, 장면 구성 콘텐츠의 존재여부를 확인하는 정도의 확인만을 수행할 수도 있다. 이러한 경우, 단계 720의 사용자 인터페이스 구성 정보를 확인하는 과정은 단계 710의 초기화 과정의 일부로써 포함될 수도 있다.
사용자 인터페이스 장면 구성 엔진의 장면 구성 정보에 대한 확인이 끝나면, 단계 730에서는 본 발명에서 설명하는 사용자 인터페이스 정보 교환을 위한 입출력 관련 정보를 확인한다. 이 정보는 본 발명의 제 1 실시예에서와 같이 장면 구성 콘텐츠의 일부로 구성될 수도 있고, 장면 구성 콘텐츠와 별도의 정보로 구성될 수도 있다.
예를 들어, 사용자 인터페이스 초기화 정보와 함께 구성하여 사용자 인터페이스 초기화 정보를 확인하는 과정에서 해당 정보를 확인할 수도 있고, 참조 가능한 별도의 정보나 파일로 구성되어, LASeR 엔진등의 장면 구성 엔진이나, 사용자 인터페이스 매니저에 의해 참조될 수도 있다. 사용자 인터페이스 정보 교환을 위한 입출력 관련 정보를 확인하는 과정은 단계 720에서 사용자 인터페이스 장면 구성 정보를 확인한 상태에서 수행될 수도 있고, 사용자 인터페이스 매니저에서 정보 교환을 위한 입출력 관련 정보를 확인하여 관리하고 있다가, 사용자 인터페이스 장면 구성 콘텐츠가 실제로 메모리로 로드되면, 관련 이벤트가 발생하거나 관련 정보의 요청이 들어올 경우, 입출력 인터페이스를 통하여 실제 정보를 추출하고, 전송하거나, 수신하는 등의 동작을 수행할 수 있다. 상기와 같이 확인된 정보는 사용자 인터페이스 매니저에 의하여 관리된다. 또한 본 발명에서 설명하는 입출력 정보는 반드시 장면 구성 객체의 구성 정보가 아닌, 사용자 인터페이스 자체의 구성 정보나 기능 및 특성 정보가 될 수도 있다.
만약 상기 수신한 사용자 인터페이스에 확인 가능한 입출력 정보가 없을 경우, 사용자 인터페이스 매니저 또는 장면 구성 정보 관리를 위한 LASeR 엔진 등은 상기 사용자 인터페이스가 외부 객체와 정보 교환이 불가능한 것임을 확인할 수 있다. 또는 입출력 정보가 없을 경우라도 임의의 정보 입출력이 가능하다고 설정할 경우, 사용자 인터페이스의 외부 객체와의 정보 교환에 대한 가능 여부를 사용자 인터페이스 초기화 정보나 사용자 인터페이스 구성 정보 또는 설정 정보, 또는 장면 구성 정보에 대한 정보를 확인할 수 있는 정보 필드 또는 노드를 통하여 사용자 인터페이스의 정보 입출력 가능 여부를 확인할 수 있도록 할 수 있다.
사용자 인터페이스를 구동하기 위한 모든 정보의 확인이 끝나면 단계 740에서 사용자 인터페이스가 실체화 된다. 그러나 시스템 및 단말에 따라 사용자 인터페이스에 대한 초기정보를 통하여 사용자 인터페이스의 각 구성요소에 대한 확인이 끝나면 사용자 인터페이스가 실체화되도록 구성될 수도 있다. 이러한 경우 단계 710에 이어 사용자 인터페이스가 실체화 되고, 실제 사용자 인터페이스의 장면을 구성하는 정보를 확인하는 과정은 사용자 인터페이스가 구동되는 과정에 수행될 수도 있다. 실체화된 사용자 인터페이스를 사용자 인터페이스 매니저가 관리하고 있는 상태가 되면, 사용자 인터페이스 매니저는 본 발명에서 설명하는 사용자 인터페이스 정보 교환 관련 이벤트의 발생의 감지할 수 있다.
도 7에는 구체적으로 도시되지 않았으나, 사용자 인터페이스 매니저는 본 발명에서 설명하는 사용자 인터페이스 정보 교환 관련 이벤트의 발생의 감지하기 위하여, 실체화된 사용자 인터페이스를 사용자 인터페이스 매니저가 관리하고 있는 상태에 대한 예를 설명하면 다음과 같은 동작들이 수행될 수 있다.
i) 사용자 인터페이스 매니저가 관리하고 있는 사용자 인터페이스 리스트를 확인하는 과정, ii) 리스트에 있는 사용자 인터페이스 중 입력 및 출력 가능한 정보를 가진 사용자 인터페이스의 확인, iii) 입력 및 출력 가능한 정보를 가진 사용자 인터페이스에서 정보의 입력 또는 출력에 대한 동작이나 신호 등의 이벤트를 감지 할 수 있는 기능의 설정, 예를 들어 사용자 인터페이스 매니저를 통한 정보 교환을 감지할 수 있는 이벤트 리스너의 등록의 이벤트 감지할 수 있는 기능의 설정 과정, iv) 입력 및 출력 정보에 대한 동작이나 신호 등의 이벤트를 구분할 수 있는 이벤트 또는 입출력 정보 자체의 이름나 타입 확인, v) 입력 및 출력 가능한 실제 구성 정보의 확인 등이다. 그러나 사용자 인터페이스 정보 교환을 위하여 상기 과정들이 모두 반드시 수행되어야 하거나, 모두 반드시 사용자 인터페이스 매니저에 의하여 수행되는 것은 아닐 수 있다.
단계 750에서 사용자 인터페이스 매니저로 사용자 인터페이스 정보 교환 관련 이벤트 및 관련 요청이 발생을 감지하면, 사용자 인터페이스 매니저는 단계 760에서 입력 및 출력 등의 정보 교환 요청의 대상이 되는 사용자 인터페이스를 확인한다. 이때, 사용자 인터페이스 매니저가 관리하는 리스트에 있는 사용자 인터페이스 간의 정보 교환에 대한 요청이 발생하였을 경우, 즉, 정보 교환을 위한 이벤트가 발생하였을 경우, 사용자 인터페이스 매니저는 단계 770에서 입력 및 출력 정보를 확인하여, 단계 780에서 입력 및 출력 정보들의 매핑을 통하여 정보 교환을 수행할 수 있다.
이 매핑 과정은 입력 정보와 출력 정보를 확인하여 정보 교환이 가능하도록 쌍을 이룰 수 있는 정보를 찾으면 해당 정보를 입출력 쌍으로 결정하여 정보를 교환할 수 있도록 하는 과정이다. 상기 매핑 과정은 사용자 인터페이스 매니저에 의해 정보 교환 요청이 들어올 경우 수행될 수도 있고, 사용자 인터페이스 매니저에 의하여 미리 설정되어 있을 수도 있다. 이때, 이 매핑 과정은 동일한 타입 또는 동일한 카테고리로 분류되는 인터페이스를 통하여 전달되는 정보를 매핑하거나, 동일한 이름을 가진 정보 교환 이벤트간의 입출력을 수행하거나, 정보 교환이 되는 대상 사용자 인터페이스들의 각기 출력 및 입력 가능한 정보의 타입이나 특성을 확인하여 정보를 매핑 할 수 있다.
이때 매핑을 위하여 확인하는 인터페이스의 타입은 장치의 타입에 따라 구분할 수도 있고, 미디어의 타입에 따라 구분할 수도 있으며, 입출력 데이터의 타입에 따라 구분할 수도 있고, 서비스 타입에 따라 구분할 수도 있다. 다음 표 9는 인터 페이스 타입을 나타낸다.
<표 9>
interfaceTypeValue_inout interfaceType_inout
0x01 장치 타입
0x02 미디어 타입
0x03 데이터 타입
0x04 서비스 타입
0x05 reserved
상기 장치의 타입은 장치의 특성이나 성능 및 기능에 대한 정보를 포함하며, 이러한 장치의 타입에 대한 정보는 장치의 내/외부에서 제공되는 정보를 참조할 수 있도록 구성되어 있을 수도 있다. 또한 장치에 따라 장치의 구성이나 전송 및 기능 및 장치에 따른 데이터 타입이 있을 경우 이에 따른 정보가 인터페이스의 타입으로 사용될 수도 있다. 예를 들어, "A"라는 사용자 인터페이스로부터 "UPnP AVtranport"를 통한 "audio" 데이터가 수신되었을 경우, 인터페이스의 타입이나 이름이 "UPnP AVtranport"인 인터페이스 정보를 가진 사용자 인터페이스로 매핑 할 수 있다.
상기 미디어의 타입은 텍스트, 비디오, 이미지, 오디오, 폰트 등의 미디어에 대한 정보를 포함하는 타입으로 각기 미디어를 구분할 수 있는 각 미디어의 확장자나 코덱, "mimeType"또는 응용프로그램 등에 따라 구분될 수도 있다.
상기 데이터 타입은 "string", "boolean", "decimal", "precisionDecimal", "float", "double", "duration", "dateTime", "time", "date", "gYearMonth", "gYear", "gMonthDay", "gDay", "gMonth", "hexBinary", "base64Binary", "anyURI", "QName", "NOTATION", "normalizedString", "token", "language", "NMTOKEN", "NMTOKENS", "Name", "NCName", "ID", "IDREF", "IDREFS", "ENTITY", "ENTITIES", "integer", "nonPositiveInteger", "negativeInteger", "long", "int", "short", "byte", "nonNegativeInteger", "unsignedLong", "unsignedInt", "unsignedShort", "unsignedByte", "positiveInteger", "yearMonthDuration" 등과, 열거형(enumeration) 등의 정수형, 문자열, 소수형, 고정소수형, 부정소수형, 리스트 형 등 해당 리치미디어 콘텐츠에서 활용 가능한 다양한 데이터 타입으로 지정할 수 있다. 또한 상기 데이터 타입은 정보의 특성에 따라 패턴화된 정보로도 구분 될 수 있는데, 예를 들어, 전화번호, 색상정보의 표현, 길이의 표현, 단위의 표현, 벡터 정보 또는 위치 정보의 표현 등 패턴화 된 정보로 표현할 수 있는 정보도 인터페이스의 타입으로 사용될 수 있다.
상기 서비스 타입은 제공되는 사용자 인터페이스의 특성이나 기능 등에 따라 게임, 뱅킹, 멀티미디어, 도구, 시스템 등의 서비스에 대한 정보를 따라 인터페이스의 타입을 구분할 수 있음을 의미한다. 상기 서비스 타입은 의미론적인(semantic) 정보로 제공될 수도 있고, 온톨로지(ontology) 정보를 참조할 수도 있으며, 서비스의 분류에 따른 계층 정보로도 표현될 수 있다.
또한 상기 인터페이스 타입은 단말 및 서비스 내/외부의 정보를 참조할 수도 있다.
또한 상기 인터페이스 타입은 상기에서 설명한 인터페이스 타입을 계층화된 구조로서 가질 수 있으며, 상관관계에 따라 하나이상의 타입을 인터페이스의 타입으로 가질 수 있다. 예를 들어, 이미지 뷰어에서 출력 가능한 정보에 대한 인터페 이스의 인터페이스 타입은 장치에 따라 "프린트"이면서, 기능에 따라 "프린트"또는 "저장", 수신 가능한 미디어 타입에 따라 "mimeType"이 "img/jpg or img/png"인 데이터이면서, 데이터 타입에 따라 "anyURI"형 타입으로 설정될 수 있다. 또한 각기 인터페이스 타입은 계층 구조로 구성되어 부가 정보를 포함하는 형태로 구성될 수도 있다.
만약 입력하거나 출력하고자 하는 정보의 대상(target)이 사용자 인터페이스 매니저가 확인할 수 있는 인터페이스 리스트에 없거나, 다수의 입력 정보나 출력 정보가 교환되는 경우에도, 상기 인터페이스 타입을 확인하여 정보교환을 수행할 수 있다. 만약 인터페이스 타입을 통해 매핑되는 정보가 없을 경우, 실제 입출력을 통하여 전달되는 정보의 타입, 이름, 특성 등을 이용하여 해당 정보를 처리할 수 있는 인터페이스로 매핑을 수행할 수 있다. 예를 들어, 전달되는 정보의 "targetValue"가 동일하거나, "contentType"이 동일한 객체를 찾아 매핑시킬 수 있다. 예를 들어 예를 들어, "A"라는 사용자 인터페이스로부터 "UPnP AVtranport"를 통한 "audio" 데이터가 수신되었으나, 사용자 인터페이스 매니저는 수신되는 정보를 "A"의 입력을 위한 사용자 인터페이스 중 그 타입이나 이름이 "UPnP AVtransport"인 인터페이스를 확인하지 못하였을 경우, 전달되는 "audio data"의 콘텐츠 타입 정보나 코덱 정보를 확인하여 해당 정보를 처리할 수 있는 인터페이스를 통하여 해당 정보를 수신한다.
상기에서 구체적으로 설명하지 않았다고 하더라도 인터페이스의 타입 이름이나 입출력 정보의 이름 및 해당 사용자 인터페이스의 입출력을 위한 정보를 이용하 여 사용자 인터페이스는 정보 교환을 위한 매핑을 수행할 수 있다. 또한 상기의 설명은 본 발명의 모든 예제에 마찬가지로 적용된다.
상기 입출력을 위한 인터페이스 타입 "interfaceTypeValue"에 대한 정보를 더 가질 수 있다. 예를 들어, 장치의 종류가 "Printer"(1), "Display"(2), "MusicPlayer"(3) 인 경우, interfeceType_inout = "0x01", interfeceTypeValue_inout = "1" 이면, 위젯의 출력 또는 입력 장치의 종류가 "Printer"임을 말한다. 그리고 복수개의 속성(attribute)이 사용될 수 있으며, 그 예로는 interfeceType_inout = "0x01 0x02", interfeceTypeValue_inout = "1 2"가 될 수 있다. 또는 interfaceType_inout="0x011"와 같이 하나의 필드에 두 정보를 모두 담아 표현할 수도 있다. 또는 상기 정보를 별도의 인덱스로 관리하여, 해당 정보의 인덱스를 참조하는 형태로 구성할 수도 있다. 예를 들어interfeceType_inout="0x01", interfeceTypeValue_inout="1"을 아이디가 "widgetComm01"인 정보로 관리하여, 해당 정보의 아이디인 "widgetComm01"을 참조하여 사용하도록 할 수도 있다.
상기 정보들은 본 발명의 실시예들에서 설명한 것과 같이, 장면의 내부에 포함될 수도 있고, 장면 구성 요소의 특정 속성 값으로 사용될 수도 있으며, 상기 표 6에서 설명한 인터페이스의 필드로 구성될 수 있으며, 입출력 인터페이스 관련 정보를 제공하는 별도의 정보로 구성될 수도 있다. 또한 상기 정보들은 요소의 형태로 구성될 수도 있고, 속성의 형태로 구성될 수도 있다. 그러므로 본 발명의 입출력 인터페이스 관련 정보들이 전달하려는 목적만 동일하다면, 그 형태의 변경에 대 해서는 한정하지 않는다.
<제 5실시예>
본 발명의 제 5 실시예에서는 사용자 인터페이스에 수신되는 정보를 처리하는 방법 또는 사용자 인터페이스의 업데이트가 수행되는 방식에 대한 정보를 설명한다. 사용자 인터페이스는 수신되는 정보의 처리 및 사용자 인터페이스의 업데이트를 업데이트 데이터나 정보 교환을 위한 정보가 수신되는 동시에 수행할 수도 있고, 미리 설정된 업데이트 시간까지 기다렸다가 수행할 수도 있다. 이를 동기(sync)식 또는 비동기(async)식 정보 교환 및 업데이트라고 설명할 수 있으며, 이 정보는 사용자 인터페이스의 설정 정보 또는 구성 정보 또는 사용자 인터페이스 장면 구성 정보 또는 업데이트 데이터의 정보로 포함될 수 있다. 또한 이 정보는 사용자 인터페이스 입출력 정보 각각을 위한 설정 정보로 인터페이스를 통하여 전달되는 정보에 포함될 수도 있다.
예를 들어, 본 발명의 제 4실시예에서 설명한 도 7의 단계 710에서 이에 대한 정보를 확인할 수 있도록 설정되어 있을 경우, 즉 초기화 정보에 포함되어 있을 경우, 사용자 인터페이스 매니저는 이 정보를 확인하여 단계 780의 입출력 정보의 매핑을 거친 단말의 정보 교환을 수행 결과를 동기(sync)모드 또는 비동기(async)모드로 각기 다르게 반영할 수 있다. 상기 정보가 동기 모드로 설정되어 있을 경우, 사용자 인터페이스 정보 교환 관련 동작 또는 이에 관한 신호를 감지하는 수신 단말이 활동하는 상태일 경우, 입출력 정보의 매핑을 거친 결과를 바로 사용자 인 터페이스에 적용시킨다. 예를 들어, 리프레시(refresh) 등의 동작을 수행하여 장면을 업데이트 할 수 있다.
만약 동기 모드로 설정되었으나 정보의 입출력 대상이 되는 사용자 인터페이스가 활동 상태(active)가 아닐 경우, 사용자 인터페이스를 강제로 활동 상태로 전환시켜 입출력 정보를 수신하거나 전달하여 사용자 인터페이스에 적용되도록 할 수 있다.
비동기 모드로 설정할 경우, 사용자 인터페이스 정보 교환 관련 동작 또는 이에 관한 신호를 감지하는 수신 단말은 활동하는 상태일 경우라 하더라도 도 7의 단계 780를 거친 입출력 정보의 교환은 사용자 인터페이스의 원래 정해진 동작이나 기능을 통하여 혹은 정해진 시간에 업데이트가 수행되는 때까지 기다렸다가 업데이트하거나 정보를 교환에 대한 결과를 적용하거나 실제 정보 교환을 수행한다. 이때, 사용자 인터페이스가 활동 상태(active)가 아닐 경우, 사용자 인터페이스가 활동 상태로 전환될 때까지 해당 정보를 관리하고 있다가 사용자 인터페이스가 활동 상태로 전환될 때 적용되도록 하거나 실제 정보의 교환을 수행할 수 있다.
앞서 설명한 바와 같이 이 동기/비동기 모드에 대한 정보는 인터페이스를 통하여 전달되는 정보에 포함될 수도 있고, 장면 구성 객체의 입출력 가능 정보에 포함될 수도 있고, 사용자 인터페이스 자체의 설정 정보로 구성될 수도 있다. 또한, 사용자 인터페이스 자체의 동기/비동기 방식에 대한 정보와 교환되는 입출력 정보 자체의 동기/비동기 방식에 대한 정보가 각기 설정될 수 있으며, 각 설정 정보의 우선순위에 따라 정보 교환에 따른 결과 반영이 달라질 수 있다. 예를 들어 사용자 인터페이스 자체의 정보 업데이터는 비동기식인데 반해 교환되는 입출력 정보의 설정은 동기식일 경우, 교환되는 입출력 정보의 우선순위가 높은 사용자 인터페이스의 경우, 동기식으로 정보 교환에 대한 결과가 반영된다. 또한 상기 동기/비동기 정보는 사용자가 직접 상기 정보를 설정할 수도 있다.
따라서 상기 제 5 실시예에서 설명한 동기/비동기 모드에 대한 정보, 동기/비동기 모드에 대한 설정 정보, 상기 동기/비동기 모드 정보의 우선 순위 정보, 상기 동기/비동기 모드의 사용자 설정 가능 여부에 대한 정보, 상기 동기/비동기 모드에 따른 사용자 인터페이스의 강제 활성화 가능 여부에 따른 정보 등이 더 포함될 수 있다.
상술한 실시예들에서 노드 및 필드 또는 요소, 속성 및 속성 값들이 가지는 의미가 동일한 경우, 노드 및 필드 또는 요소, 속성 및 속성 값들이 다른 명칭으로 명시되거나 정의되어 사용될 수 있음은 물론이다.
또한, 본 발명에서 신규로 정의한 상기 노드 및 필드 또는 요소, 속성 및 속성 값으로 사용되는 정보는 상기 선언적 기술 언어 기반의 프로그램 수행 엔진 및 LASeR의 내/외부의 다른 데이터, 파일, 응용프로그램, 서비스 등을 참조하여 사용하도록 할 수도 있다. 이때 속성을 프로그램 수행 엔진 및 LASeR 내부에 정의하여, 속성 값만을 참조할 수도 있고, 속성 자체도 다른 데이터, 파일, 응용프로그램, 서비스 등으로 정의되어 있는 것을 참조의 기능을 가진 요소 및 속성을 이용하여 참조할 수도 있다. 참조의 기능을 가진 요소 및 속성을 이용하여 속성 및 속성 값을 참조하는 경우라 하여도, 본 발명에서 설명하는 속성의 기능과 동일한 목적을 위하 여 사용된다면 그것은 본 발명의 영역에 속하는 것임이 자명하다.
한편 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
도 1은 일반적인 리치미디어 서비스를 수신하는 단말의 동작을 도시한 순서도.
도 2는 본 발명의 실시예에 따른 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠를 수신한 단말의 동작을 도시한 순서도.
도 3은 본 발명의 실시예에 따른 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠 중 사전예측 불가능한 경로를 통해서 수신되는 정보들을 수신하는 단말의 동작을 도시한 순서도.
도 4a 및 도 4b는 본 발명의 실시예에 따라 정해진 경로로만 정보를 수신 받아 기능을 수행하는 수신 객체의 입력으로 사용자 인터페이스 객체에서 추출 또는 출력된 정보를 사전 예측이 불가능한 경로를 통하여 수신하여 사용자 인터페이스 구성 객체의 정보 출력이나 입력 및 이를 통한 외부의 다른 콘텐츠들과 혹은 다른 사용자 인터페이스와의 정보 전달 및 교환을 수행하는 과정을 설명하는 순서도.
도 5는 본 발명의 실시예에 따른 송신기의 블록 구성도.
도 6은 본 발명의 실시예에 따른 수신기의 블록 구성도.
도 7은 사용자 인터페이스 구성 객체의 정보 출력이나 입력 및 이를 통한 외부의 다른 콘텐츠들 또는 사용자 인터페이스와의 정보 전달 및 교환을 사용자 인터페이스 매니저를 통해 수행하는 과정을 설명하는 순서도.

Claims (4)

  1. 사용자 인터페이스 구성 객체로 구성된 콘텐츠를 수신하는 단계;
    상기 콘텐츠에서 외부로 출력가능 하도록 정의된 정보의 존재 여부를 확인하고, 상기 콘텐츠에 포함된 명령어를 해석하는 단계;
    상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 단계; 및
    상기 출력하는 단계를 실행하는 중 상기 외부로 출력 가능하도록 정의된 정보를 추출하여 목적 객체로 전송하는 단계;를 포함하는 것을 특징으로 하는 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 처리 방법.
  2. 제 1 항에 있어서,
    상기 목적 객체는 사용자 인터페이스 콘텐츠를 출력하는 도중 정해진 경로가 아닌 다른 경로를 통하여 수신된 정보가 있음을 감지하면, 상기 수신된 정보 중 상기 목적 객체의 특정 기능을 수행하기 위한 정보를 추출하며, 상기 추출한 정보를 이용하여 상기 특정 기능을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 처리 방법.
  3. 사용자 인터페이스 구성 객체로 구성된 콘텐츠를 복호하는 복호기;
    상기 콘텐츠에서 외부로 출력가능 하도록 정의된 정보의 존재 여부를 확인하고, 상기 콘텐츠에 포함된 명령어를 해석하는 구성메모리;
    상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 렌더러; 및
    상기 렌더러에서 상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 중 상기 외부로 출력 가능하도록 정의된 정보를 추출하여 목적 객체로 전송하는 이벤트 처리부;를 포함하는 것을 특징으로 하는 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 처리 장치.
  4. 제 3 항에 있어서, 상기 이벤트 처리부는
    상기 렌더러에서 상기 명령어에 따라 상기 콘텐츠를 렌더링하여 출력하는 도중 정해진 경로가 아닌 다른 경로를 통하여 수신된 정보가 있음을 감지하면, 상기 수신된 정보 중 특정 기능을 수행하기 위한 정보를 추출하며, 상기 추출한 정보를 이용하여 상기 특정 기능을 수행하는 것을 특징으로 하는 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 처리 장치.
KR1020090033247A 2009-01-29 2009-04-16 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치 KR20100088049A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP10736026A EP2382595A4 (en) 2009-01-29 2010-01-29 METHOD AND APPARATUS FOR PROCESSING A USER INTERFACE COMPOSED OF CONSTITUENT OBJECTS
JP2011547795A JP2012516490A (ja) 2009-01-29 2010-01-29 構成要素オブジェクトから成るユーザインターフェースの処理方法及びその装置
US12/696,293 US9250871B2 (en) 2009-01-29 2010-01-29 Method and apparatus for processing user interface composed of component objects
PCT/KR2010/000532 WO2010087635A2 (en) 2009-01-29 2010-01-29 Method and apparatus for processing user interface composed of component objects
CN2010800136213A CN102365619A (zh) 2009-01-29 2010-01-29 用于处理由组件对象构成的用户界面的方法和装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20090007097 2009-01-29
KR1020090007097 2009-01-29
KR20090030205 2009-04-08
KR1020090030205 2009-04-08

Publications (1)

Publication Number Publication Date
KR20100088049A true KR20100088049A (ko) 2010-08-06

Family

ID=42754384

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090033247A KR20100088049A (ko) 2009-01-29 2009-04-16 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치

Country Status (6)

Country Link
US (1) US9250871B2 (ko)
EP (1) EP2382595A4 (ko)
JP (1) JP2012516490A (ko)
KR (1) KR20100088049A (ko)
CN (1) CN102365619A (ko)
WO (1) WO2010087635A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131645A1 (en) * 2010-11-18 2012-05-24 Harm Michael W User Scriptable Server Initiated User Interface Creation
US8838680B1 (en) 2011-02-08 2014-09-16 Google Inc. Buffer objects for web-based configurable pipeline media processing
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
TWI459314B (zh) * 2011-11-22 2014-11-01 Univ Nat Chiao Tung 微件個人化及互動之架構及其方法
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
CN103412742B (zh) * 2013-07-01 2018-04-10 深圳Tcl新技术有限公司 应用程序可配置ui的方法及装置
CN103631495B (zh) * 2013-11-25 2017-03-22 联想(北京)有限公司 信息处理方法和电子设备
US9405759B2 (en) 2013-11-20 2016-08-02 Lenovo (Beijing) Co., Ltd. Information processing method and electronic device
CN105656688B (zh) * 2016-03-03 2019-09-20 腾讯科技(深圳)有限公司 状态控制方法和装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5777621A (en) * 1994-12-22 1998-07-07 Apple Computer, Inc. Quality control mechanism for three-dimensional graphics rendering
US6037939A (en) * 1995-09-27 2000-03-14 Sharp Kabushiki Kaisha Method for enabling interactive manipulation of data retained in computer system, and a computer system for implementing the method
JP3544422B2 (ja) * 1996-03-04 2004-07-21 日本電気株式会社 記事配置装置
US5895477A (en) * 1996-09-09 1999-04-20 Design Intelligence, Inc. Design engine for automatic layout of content
US6232974B1 (en) * 1997-07-30 2001-05-15 Microsoft Corporation Decision-theoretic regulation for allocating computational resources among components of multimedia content to improve fidelity
US5999978A (en) * 1997-10-31 1999-12-07 Sun Microsystems, Inc. Distributed system and method for controlling access to network resources and event notifications
US6343377B1 (en) * 1997-12-30 2002-01-29 Netscape Communications Corp. System and method for rendering content received via the internet and world wide web via delegation of rendering processes
US6363435B1 (en) * 1998-02-03 2002-03-26 Microsoft Corporation Event sourcing and filtering for transient objects in a hierarchical object model
US6097382A (en) * 1998-05-12 2000-08-01 Silverstream Software, Inc. Method and apparatus for building an application interface
US6446136B1 (en) * 1998-12-31 2002-09-03 Computer Associates Think, Inc. System and method for dynamic correlation of events
US7617453B1 (en) * 1999-02-03 2009-11-10 Microsoft Corporation Method and system for generating a user interface for distributing devices
JP4389323B2 (ja) * 2000-02-29 2009-12-24 ソニー株式会社 シーン記述変換装置及び方法
JP2001306615A (ja) 2000-04-18 2001-11-02 Sony Corp 情報記録媒体及びデータ構造
US6353448B1 (en) * 2000-05-16 2002-03-05 Ez Online Network, Inc. Graphic user interface display method
KR20020085985A (ko) * 2001-05-10 2002-11-18 권형우 리치 미디어의 실시간 전송 시스템
US7076734B2 (en) * 2001-06-22 2006-07-11 Microsoft Corporation Systems and methods for providing a dynamically controllable user interface that embraces a variety of media
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7234111B2 (en) * 2001-09-28 2007-06-19 Ntt Docomo, Inc. Dynamic adaptation of GUI presentations to heterogeneous device platforms
US6941521B2 (en) * 2002-03-29 2005-09-06 Intel Corporation Method for dynamically generating a user interface from XML-based documents
US20030195896A1 (en) * 2002-04-15 2003-10-16 Suda Aruna Rohra Method and apparatus for managing imported or exported data
US7987491B2 (en) * 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
US7012606B2 (en) * 2003-10-23 2006-03-14 Microsoft Corporation System and method for a unified composition engine in a graphics processing system
US20060168526A1 (en) * 2005-01-12 2006-07-27 Nokia Corporation Platform-specific application user interface remoting
US7667704B2 (en) * 2005-03-30 2010-02-23 Microsoft Corporation System for efficient remote projection of rich interactive user interfaces
TWI388216B (zh) * 2005-10-13 2013-03-01 Lg Electronics Inc 用於編碼/解碼之方法與裝置
FR2892883B1 (fr) * 2005-11-02 2008-01-25 Streamezzo Sa Procede d'optimisation de rendu d'une scene multimedia, programme, signal, support de donnees, terminal et procede de reception correspondants.
US20070174474A1 (en) * 2005-11-08 2007-07-26 Nokia Corporation System and method for providing feedback and forward transmission for remote interaction in rich media applications
KR101484054B1 (ko) * 2006-03-30 2015-01-19 엘지전자 주식회사 미디어 파일 포맷, 미디어 파일 재생 방법, 및 미디어 파일재생 장치
KR20080114496A (ko) 2007-06-26 2008-12-31 삼성전자주식회사 레이저 콘텐츠를 이용하여 장면을 구성하는 방법 및 장치
US8719711B2 (en) * 2007-08-28 2014-05-06 Ricoh Company, Ltd. Image forming apparatus, display screen customizing method and computer-readable storage medium

Also Published As

Publication number Publication date
US20100192078A1 (en) 2010-07-29
CN102365619A (zh) 2012-02-29
JP2012516490A (ja) 2012-07-19
EP2382595A4 (en) 2013-01-23
US9250871B2 (en) 2016-02-02
WO2010087635A2 (en) 2010-08-05
WO2010087635A3 (en) 2010-11-18
EP2382595A2 (en) 2011-11-02

Similar Documents

Publication Publication Date Title
KR20100088049A (ko) 사용자 인터페이스 구성 객체들로 이루어진 콘텐츠의 사전 예측 불가능한 경로를 통하여 수신되는 정보들의 처리 방법 및 이를 위한 장치
US11875140B2 (en) Application support for network devices
US20080010664A1 (en) Method and System for Providing Interactive Services in Digital Television
EP1110402B1 (en) Apparatus and method for executing interactive tv applications on set top units
CN109558290A (zh) 服务器、接口自动化测试方法及存储介质
CN112929681B (zh) 视频流图像渲染方法、装置、计算机设备及存储介质
CN112929680B (zh) 直播间图像渲染方法、装置、计算机设备及存储介质
KR20120050986A (ko) 사용자 인터페이스 표시 방법 및 그를 수행하는 장치
WO2023093414A1 (zh) 微应用的开发方法、装置、设备、存储介质及程序产品
US9298601B2 (en) Conditional processing method and apparatus
KR20100040545A (ko) 구조화된 리치 미디어 데이터 기반의 사용자 인터페이스를 제공하기 위한 장치 및 방법
US7512955B2 (en) Method and system for accessing and implementing declarative applications used within digital multi-media broadcast
KR100882381B1 (ko) Mpeg-4 표준의 인터액션 관리 방법 및 관리 장치
US6829758B1 (en) Interface markup language and method for making application code
CN114530148A (zh) 一种控制方法、装置及电子设备
CN114731343A (zh) 云服务的方法和装置
CN112786022A (zh) 终端、第一语音服务器、第二语音服务器及语音识别方法
KR100519807B1 (ko) 상황정보 전달을 위한 동적 메타데이터 생성/소비 장치 및그 방법
Shen et al. iMMS: Interactive multimedia messaging service
Concolato et al. Declarative Interfaces for dynamic widgets communications
CN117812345A (zh) 一种显示设备及交互媒资的播放方法
Lentini et al. Design and implementation of UPnP network functionality for a digital TV receiver

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application
E801 Decision on dismissal of amendment