KR20040027926A - 서로 다른 네트워크 상의 디바이스 사이에서 통신을인터페이스하기 위한 방법 및 디바이스 - Google Patents

서로 다른 네트워크 상의 디바이스 사이에서 통신을인터페이스하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20040027926A
KR20040027926A KR10-2004-7002434A KR20047002434A KR20040027926A KR 20040027926 A KR20040027926 A KR 20040027926A KR 20047002434 A KR20047002434 A KR 20047002434A KR 20040027926 A KR20040027926 A KR 20040027926A
Authority
KR
South Korea
Prior art keywords
message
network
interface
applet
havi
Prior art date
Application number
KR10-2004-7002434A
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 톰슨 라이센싱 소시에떼 아노님
Publication of KR20040027926A publication Critical patent/KR20040027926A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2832Interconnection of the control functionalities between home networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2805Home Audio Video Interoperability [HAVI] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network

Abstract

본 발명은, 제 1 네트워크 상의 제 1 디바이스(32)와 제 2 네트워크 상의 제 2 디바이스(35, 37) 사이의 통신을 인터페이스하기 위한 방법으로서, 상기 네트워크들은 인터페이스 디바이스(31)에 의해 연결되며, 상기 방법은 상기 인터페이스 디바이스에 의해 수행되는, 통신 인터페이스 방법에 관한 것이며, 이 방법은,
- 제 1 메시지를 상기 제 1 네트워크 상에서 검출하는 단계로서, 상기 제 1 메시지는 상기 제 1 디바이스(32)에 의해 생성되고, 상기 제 2 디바이스(35, 37)에 적합한, 제 1 메시지 검출 단계와;
- 상기 제 1 메시지를 상기 제 2 디바이스(35, 37)와 호환성이 있는 포맷으로 변환하는 단계와;
- 상기 제 2 디바이스에게 상기 제 1 메시지가 검출되었음을 통보하는 제 2 메시지를 상기 제 2 네트워크 상의 상기 제 2 디바이스로 전송하는 단계와;
상기 제 2 디바이스로부터 요청을 수신하자마자, 상기 변환된 제 1 메시지를 송신하는 단계를 특징으로 한다.
또한, 본 발명은 본 방법을 구현하기 위한 디바이스에 관한 것이다.

Description

서로 다른 네트워크 상의 디바이스 사이에서 통신을 인터페이스하기 위한 방법 및 디바이스{METHODS AND DEVICE FOR INTERFACING COMMUNICATION BETWEEN DEVICES ON DIFFERENT NETWORKS}
텔레비전, 홈 네트워킹 또는 인터넷 분야에서, 새로운 통신 기술이 고속으로 개발되고 도입되고 있다. 각 환경은 서로 다른 프로토콜, 스택 및 그래픽 인터페이스를 자랑한다.
이들 서로 다른 환경이 상호동작할 수 있게 할 필요가 있다. HAVi 규격은 가정 환경에서 가전 디바이스의 상호운용성에 초점을 맞추고 있다. 이것은, HAVi 도메인 서브-네트워크 외부에 있는 수단을 통해 및 특히 인터넷을 통해 HAVi 서브-네트워크에 액세스하는 인터넷-인에이블 디바이스를 통해서 HAVi 디바이스를 제어할 수 있는 데 유용함을 증명할 수 있다. 역으로, HAVi 디바이스를 사용하여 인터넷에 연결된 디바이스를 제어하는 것이 또한 가능해야 한다.
각 분야에서 사용자 인터페이스를 볼 때, HAVi는 현재 세 가지 서로 다른 메커니즘을 제안한다. 메커니즘 중 하나로, 디바이스 구동 상호동작(Device Driven Interaction), 즉 'DDI'로 불리는 것은 디바이스(DDI 목표로 불림)가 또 다른 디바이스(DDI 제어기로 불림)를 통해 그 사용자 인터페이스를 디스플레이하게 한다.
IP-기반 네트워크에서, HTML은 자바스크립트 또는 예컨대 자바 애플릿(Java applets)과 같은 다양한 플러그-인(plug-in)과 같은 스크립트에 의해 결국 보충되는 그래픽을 렌더링(rendering)하는데 널리 사용된다.
HAVi 서브-네트워크(도메인)와 IP-기반 네트워크 사이의 상호연결의 일 양상으로 상호연결 디바이스를 통한 이벤트 통지와, 한 네트워크에서 트리거되지만 다른 네트워크의 디바이스로 주소지정된 동작의 통지가 있다.
본 발명은 서로 다른 네트워크 상의 디바이스 사이에 통신하고, 특히 한 네트워크로부터 다른 네트워크로 통지(notification)를 송신하기 위한 방법 및 이 방법을 구현하기 위한 디바이스에 관한 것이다. 본 발명은 예컨대 IP 기반 네트워크에 연결된 HAVi 네트워크에 적용될 수 있다.
도 1은 DDI 제어기와 DDI 목표 사이의 정보 교환에 대한 종래기술의 도면.
도 2a는 웹 사용자가 HAVi 목표에 액세스하는 경우 HAVi 도메인과 인터넷 도메인을 포함하는 네트워크의 블록도.
도 2b는 HAVi 사용자가 웹 목표에 액세스할 때 도 2a의 도메인(서브-네트워크)을 도시한 도면.
도 3은 HAVi 도메인과 인터넷 도메인의 상호연결에 의해 형성된 또 다른 네트워크의 블록도.
도 4는 본 실시예에 따른 변환기 애플리케이션을 포함하는 도 3의 디바이스의 소프트웨어 아키택쳐를 도시한 도면.
도 5는 원격 방법 호출(RMI: Remote Method Invocation)을 사용하여 도 3의 디바이스에서의 소프트웨어 스택의 제 1 구현을 도시하는 것으로, 이 경우 디바이스의 DDI 제어기는 자바를 기반으로 하는 것인, 도면.
도 6은 RMI를 사용하여 도 3의 디바이스에서의 소프트웨어 스택의 제 2 구현을 도시하는 것으로, 이 경우 디바이스의 DDI 제어기는 원시 제어기(native controller)인, 도면.
도 7은 cgi API가 사용될 때 도 3의 디바이스에서의 소프트웨어 스택의 제 3 구현을 도시한 도면.
도 8은 본 발명의 본 실시예에 따라 인터넷 디바이스 상에서 HAVi 디바이스에 의해 제공되는 사용자 인터페이스를 셋업하기 위한 단계를 예시한 도면.
도 9는 본 발명의 본 실시예에 따라 한 동작이 인터넷 도메인으로부터 개시될 때 수행되는 단계를 예시한 도면.
도 10은 본 실시예에 따라 HAVi 도메인으로부터 인터넷 도메인으로 통지를 확산하기 위해 수행되는 단계를 예시한 도면.
도 11은 본 실시예에 따라 HAVi 디바이스 상의 인터넷 디바이스에 의해 제공된 사용자 인터페이스를 셋업하기 위한 단계를 예시한 도면.
좀더 상세하게, 본 발명은 제 1 네트워크 상의 제 1 디바이스와 제 2 네트워크 상의 제 2 디바이스 사이에 통신을 인터페이스하기 위한 방법에 관한 것이며, 이들 네트워크는 인터페이스 디바이스에 의해 연결되며, 이 방법은 인터페이스 디바이스에 의해 수행되고,
- 제 1 네트워크 상에서 제 1 메시지를 검출하는 단계로서, 상기 제 1 메시지는 제 1 디바이스에 의해 생성되고, 제 2 디바이스에 적합한, 제 1 메시지 검출 단계와;
- 상기 제 1 메시지를 상기 제 2 디바이스와 호환성이 있는 포맷으로 변환하는 단계와;
- 제 2 메시지를 상기 제 2 네트워크 상의 제 2 디바이스로 전송하는 단계로서, 상기 제 2 메시지는 상기 제 2 디바이스에게 상기 제 1 메시지가 검출되었음을 통보하는, 제 2 메시지 전송 단계와;
- 상기 제 2 디바이스로부터 요청을 수신하자마자, 상기 변환된 제 1 메시지를 송신하는 단계를 특징으로 한다.
본 발명의 실시예에 따라, 인터페이스 디바이스는,
- 적어도 하나의 애플릿을 제공하는 단계로서, 여기서 상기 애플릿은 상기 제 2 메시지를 수신하고 상기 요청을 생성하도록 적응되는, 적어도 하나의 애플릿 제공 단계와;
- 상기 애플릿을 상기 제 2 디바이스로 송신하는 단계를 더 수행한다.
본 발명의 실시예에 따라, 본 방법은,
- 상기 적어도 하나의 애플릿을 적어도 하나의 HTML 페이지에 포함시키고, 상기 적어도 하나의 페이지를 상기 제 2 디바이스에 송신하는 단계를 더 포함한다.
본 발명의 실시예에 따라, 상기 제 1 메시지를 변환하는 단계는 상기 HTML 페이지의 적어도 하나의 관련 객체를 상기 제 1 메시지에 포함된 파라미터로 업데이트하는 단계를 포함한다.
본 발명의 실시예에 따라, 방법은,
- 상기 제 1 디바이스의 사용자 인터페이스 요소를 검색하는 단계와;
- 상기 사용자 인터페이스 요소를 상기 제 2 디바이스를 통한 상기 제 1 디바이스의 제어에 호환성이 있는 포맷으로 변환하는 단계와;
- 상기 변환된 사용자 인터페이스 요소를 HTML 페이지에 포함시키는 단계를 더 포함한다.
본 발명의 실시예에 따라, 상기 제 1 메시지를 변환하는 단계는 적어도 하나의 변환된 사용자 인터페이스 요소를 상기 제 1 메시지에 포함된 파라미터를 기반으로 업데이트하는 단계를 포함한다.
본 발명의 실시예에 따라, HTML 페이지는 적어도 하나의 자바 객체 및/또는 적어도 하나의 HTML 객체를 포함한다.
본 발명의 실시예에 따라, 상기 제 2 메시지를 상기 제 2 디바이스로 전송하는 단계는 애플릿으로의 원격 방법 호출 콜(remote method invocation call)을 수행하는 단계를 포함하며, 애플릿의 원격 방법은 변환된 제 1 메시지를 송신하기 위해 적절한 요청을 제 2 디바이스로부터 인터페이스 디바이스로 트리거하는 것과 같은 것이다.
본 발명의 실시예에 따라, 요청은 다음 중 하나를 포함한다: HTML GET 메시지, 인터페이스 디바이스로의 원격 방법 호출 콜.
본 발명의 실시예에 따라, 애플릿은, 변환된 메시지가 인터페이스 디바이스에서 이용 가능한지를 결정하기 위해 인터페이스 디바이스의 사전에 결정된 포트에 정기적으로 폴링하도록(poll) 적응된다.
본 발명의 실시예에 따라, 변환된 제 1 메시지 송신에 대한 요청은 다음 중 하나를 포함한다:
- HTML 페이지의 일부에 대한 업데이트를 송신하라는 요청; 또는
- 전체 HTML 페이지의 업데이트를 송신하라는 요청; 또는
- 자바 객체 또는 HTML 객체의 업데이트를 송신하라는 요청.
본 발명의 실시예에 따라, 제 1 네트워크는 HAVi 네트워크이다.
본 발명의 실시예에 따라, 제 2 네트워크는 인터넷 프로토콜 기반 네트워크이다.
본 발명의 실시예에 따라, 제 1 네트워크는 인터넷 프로토콜 기반 네트워크이며, 제 1 메시지를 수신하는 단계는 제 1 디바이스에 있는 애플릿으로부터 사전에 결정된 포트 상에서 상기 메시지를 수신하는 단계를 포함한다.
본 발명의 실시예에 따라, 제 1 네트워크는 인터넷 프로토콜 기반 네트워크이고, 상기 제 1 메시지를 수신하는 단계는 상기 제 1 디바이스에 있는 애플릿에 의해 수행된 원격 방법 호출 콜을 통해 상기 메시지를 수신하는 단계를 포함한다.
본 발명의 또 다른 목적은, 제 1 네트워크 상의 제 1 디바이스와 제 2 네트워크 상의 제 2 디바이스 사이에 통신을 인터페이스하기 위한 디바이스이며, 상기 디바이스는,
- 상기 제 1 네트워크 상에 제 1 메시지를 검출하기 위한 수단으로서, 상기 제 1 메시지는 상기 제 1 디바이스에 의해 생성되고, 상기 제 2 디바이스에 적합한, 제 1 메시지 검출 수단과;
- 상기 제 1 메시지를 상기 제 2 디바이스와 호환성이 있는 포맷으로 변환하기 위한 수단과;
- 상기 제 2 디바이스에 상기 제 1 메시지가 검출되었음을 통보하는 제 2 메시지를 상기 제 2 네트워크 상의 상기 제 2 디바이스에 전송하고, 상기 제 2 디바이스로부터 요청을 수신하자마자 상기 변환된 제 1 메시지를 송신하기 위한 수단을 포함한다.
본 발명의 실시예에 따라, 디바이스는 제 2 네트워크의 디바이스에 의한 제어를 위해 제 1 네트워크의 디바이스의 사용자 인터페이스 요소에 대한 사용자 인터페이스 요소 표현(representation)을 저장하고 및 그 역으로도 사용하기 위한 메모리와, 변환된 요소를 제 2 디바이스로 송신하기 위해, 상기 표현에 따라 상기 제 1 디바이스의 사용자 인터페이스 요소를 변환하기 위한 수단을 더 포함하며, 여기서 상기 변환 수단은 한 디바이스 상에서 수행된 동작 또는 한 디바이스에 의해 생성된 통지를 다른 디바이스와 호환성이 있는 포맷으로 변환하도록 적응된다.
본 발명의 또 다른 목적은 제 1 네트워크 상의 제 1 디바이스와 제 2 네트워크 상의 제 2 디바이스 사이에 통신을 인터페이스하기 위한 방법이며, 상기 네트워크는 인터페이스 디바이스에 의해 연결되고, 이 방법은 인터페이스 디바이스에 의해 수행되며,
- 제 1 메시지를 상기 제 1 네트워크 상에서 검출하는 단계로서, 상기 제 1 메시지는 상기 제 1 디바이스에 의해 생성되고, 상기 제 2 디바이스에 적합한, 제 1 메시지 검출 단계와;
- 상기 제 1 메시지를 상기 제 2 디바이스와 호환성이 있는 포맷으로 변환하는 단계와;
- 상기 변환된 메시지를 상기 제 2 디바이스로 송신하는 단계를 특징으로 하고, 여기서 상기 제 1 및 제 2 네트워크는 IP 및 HAVi 네트워크이거나 그 반대이고, 상기 메시지는 통지 또는 동작이다.
본 발명의 실시예에 따라, 인터페이스 디바이스와 IP 기반 네트워크 상의 디바이스 사이의 통지 또는 동작의 교환은 원격 방법 호출 콜을 통해 수행된다.
본 발명의 실시예에 따라, 상기 인터페이스 디바이스로부터 IP 기반 네트워크 상의 제 2 디바이스로 통지를 송신하는 단계는 제 2 디바이스가 서버로 동작하는 인터페이스 디바이스의 고정 포트에 정기적으로 폴링하게 하는 단계를 포함한다.
본 발명의 다른 특징 및 장점은 포함된 도면의 도움으로 설명된 비-제한된 실시예에 대한 상세한 설명을 통해서 드러날 것이다.
본 실시예는 한 측면에서는 HAVi 규격(Home Audio/Video Interoperability)을 기반으로 하고, 다른 한 측면에서는 IP(Internet Protocol), UPnP(Universal Plug and Play), HTML(HyperText Markup Languate) 및 HTTP(Hypertext TransferProtocol)과 같은 인터넷관련 기술을 기반으로 한다.
본 출원의 우선일에 참조 버전은 다음과 같다::
HAVi1.1 규격(2001년 5월 15일에 발간됨)은 미국, 캘리포니아주 94583, 샌 래몬 슈트 275, 비숍 드라이브 2694 소재 Havi 인코포레이티드로부터 구입할 수 있다.
UPnP 1.0 규격은 마이크로소프트 코포레이션으로부터 구입할 수 있다.
HTML 4.01 문서는 W3C 컨소시엄(미국의 MIT, 프랑스의 INRIA 및 일본의 게이오 대학)으로부터 구입할 수 있다.
HTTP 프로토콜은 IETF(Internet Engineering Task Force)로부터 구입할 수 있다. 가장 최근의 버전은 RFC 2616에서 기술된 바와 같이 HTTP 1.1이다.
HTTP(Hypertext Transfer Protocol)은 분포되고 공동제작된 하이퍼미디어 정보 시스템을 위한 애플리케이션 레벨 프로토콜이다. 이것은 일반적이고 국적이 없는(generic, stateless) 프로토콜이다.
본 실시예는 주로 HAVi 네트워크를 인터넷을 거쳐 원격 디바이스를 통해 인터페이스하는 것에 초점을 맞추고 있다. 원격 디바이스는 전형적으로 표준 웹 브라우저를 구비한 개인용 컴퓨터이다. 물론, 당업자는 쉽게 본 실시예의 환경에서 기술된 특정한 양상을 다른 환경으로 적응시킬 것이다.
HAVi는 다수의 시스템 요소{CMM1394, 메시징(Messaging) 시스템, 레지스트리(Registry), 이벤트 관리자, 스트림 관리자, 자원 관리자 및 DCM 관리자}를 정의한다. 이들은 IEEE 1394 직렬 버스에 걸쳐 HAVi 네트워크를 관리하는 방식을 제공한다. HAVi는 다음과 같은 요소를 더 정의한다:
o DCMs: Device Control Modules은 네트워크 상의 제어된 디바이스의 소프트웨어 표현이다. 디바이스 당 하나의 DCM이 있다.
o FCMs: Functional Control Modules은 네트워크상의 기능의 소프트웨어 표현이다. FCM은 DCM에 포함되며(이 기능은 디바이스에 의해 제공됨), DCM은 몇몇 FCM을 포함할 수 있다(예컨대 D-VHS는 튜너 기능 및 VCR 기능을 제공할 수 있다).
o 애플리케이션: 일반적으로 사용자 인터페이스를 제공하고, 디바이스 및 네트워크의 제어를 허용하는 소프트웨어 요소.
o 하블릿(Havlet): 하블릿(HAVi 애플릿)은 DCM(또는 다른 곳)에 포함된 자바 바이트코드이며, DCM에 관련된 사용자 인터페이스를 제공하기 위해 가상 머신(Virtual Machine)을 운영하는 제어기{이러한 제어기는 FAV(Full Audio/Video) 유형 디바이스로 불림}로 다운로드될 수 있다. 이 메커니즘은 DCM의 제조사가 네트워크에 걸쳐서 그 자신의 룩 앤 필(look and feel)을 분배하게 한다.
o DDI 제어기: 이것의 목적은 DDI 목표(즉, DCM)에 의해 제공된 DDI 데이터를 디스플레이한다.
HAVi는 네트워크를 제어하기 위한 세 개의 사용자 인터페이스 메커니즘을 정의한다:
1. 원시 사용자 인터페이스:
원시 사용자 인터페이스는 직접 제어기 디바이스에 의해 독점적인 방식으로 사용자에게 제공된 사용자 인터페이스이다. 사용자 인터페이스는 자바, 비주얼 베이직, 윈도우즈, 리눅스 등을 기반으로 할 수 있다. 예컨대, 홈 네트워크 구성의 네비게이터(즉, HAVi 네트워크의 모든 다른 디바이스의 사용자 인터페이스로의 초기 사용자 인터페이스 진입점)는 원시 사용자 인터페이스이어야 한다. 게다가, 네트워크 내의 한 특정 디바이스에 대한 사용자 인터페이스는 또한 원시적일 수 있다(예컨대 표준화된 FCM을 제어하기 위해). 예컨대, VCR(VCR API은 HAVi에 의해 정의됨)을 제어하기 위해, 원시 사용자 인터페이스는 VCR 버튼, 현재 시간 및 기타 파라미터 및 제어를 디스플레이할 수 있다.
2. DDI 사용자 인터페이스:
DDI는 Data Driven Interaction을 나타낸다. HAVi 소프트웨어 요소는 HAVi DDI 메커니즘을 사용하여 또 다른 소프트웨어 요소를 제어하는 성능을 사용자에게 제공할 수 있다. 제 1 소프트웨어 요소는 DDI 제어기로 불리며, 제 2 소프트웨어 요소는 DDI 목표로 불린다. DDI 목표는 사실 제어된 DCM(즉 애플리케이션 모듈)이다. DDI 목표는 사용자에게 제공된 사용자 인터페이스의 설명인 "DDI 데이터"를 제공한다. 이 DDI 데이터는 DDI 목표의 상태를 지시하며, DDI 제어기가 명령을 어떻게 전송할 수 있는지를 정의한다.
더나아가, DDI는 크기조정 가능한 방법이다. 동일한 DDI 데이터로, 매우 간단한 디스플레이(예컨대, 이동 전화)가 단지 몇 개의 텍스트 버튼을 보여주는 반면, 좀더 강력한 디바이스(PC 같은)는 화상 버튼을 보여줄 수 있다. 이것은, DDI 데이터가 적어도 기본 정보(예컨대, 버튼 라벨)와 옵션으로 좀더 복잡한 정보(예컨대, 화상)를 제공하기 때문이 가능하다. DDI 제어기는 DDI 데이터를 그 스크린 상에서 디스플레이하는 방법을 결정한다.
DDI 제어기는 DDI 목표의 기능에 대한 어떠한 지식도 가지고 있지 않다. 이것은 메시지(예컨대 'DdiAction')를 사용자 명령에 응답하여 DDI 목표에 송신한다. 목표 측 상에서, DDI 목표는 코딩된 DdiAction을 디바이스 기능으로 변환한다. 예컨대, DDI 제어기는 "button 5 pressed" 유형인 DdiAction을 VCR DDI 목표로 전송하고, DDI 목표는 이것을 "Play"와 같은 명령으로 변환한다.
도 1은 종래기술로서 DDI 제어기와 DDI 목표 사이의 다양한 교환을 예시한다.
3. 하블릿:
하블릿은 DCM(또는 애플리케이션 모듈)의 일부이고, 가상 머신을 운영하는 임의의 제어기로 다운로드될 수 있는 자바 바이트코드이다. 이 바이트코드는 DCM의 사용자 인터페이스를 제공한다. 이를 통해, DCM의 제조사는 그 자신의 룩 앤 필을 부과할 수 있다.
제어기가 하블릿을 설치할 때, 그 자신의 애플리케이션은 하블릿이 무엇을 하는지, 어떤 명령을 전송하는 지 등에 대해 어떤 것도 알지 못한다. 하블릿은 그래픽 제어 및 목표 디바이스와의 메시지 교환에 대한 전적인 책임을 가진다.
웹으로부터 멀티미디어 홈 도메인을 제어하고(또는 그 역으로), 홈 도메인으로부터의 정보를 웹 디바이스 상에 디스플레이하기 위해(또는 그 역으로), DDI 메커니즘과 인터넷 기술(HTML, HTTP, 자바 개선...) 사이의 그래픽 변환기가 구현된다. 변환기는 양방향으로 작동한다:
(a) 이것은 HAVi DDI 그래픽을 다른 네트워크의 디바이스에 의해 사용 가능한 그래픽으로 변환하며(즉, 본 실시예의 HTML 그래픽), 이 디바이스는 이들 그래픽을 적절한 사용자 인터페이스 상에 디스플레이한다. HTML 데이터는 변환기 디바이스(22)의 웹 서버 부분에 의해 제안된 페이지를 통해 액세스 가능하다. 이 페이지는 렌더링(rendering)을 위해 웹 브라우저에 의해 다운로드된다. HTML 그래픽 상의 사용자 동작은 HAVi 네트워크 상의 HAVi 명령(즉, DDI 사용자 동작)으로 다시 변환된다. 이것은 예컨대 인터넷에 연결되고 웹 브라우저를 포함한 디바이스가 사용자 인터페이스 상에 표현된 요소를 통해 HAVi 디바이스를 제어하게 한다.
(b) 이것은 IP-기반 네트워크의 사용자 인터페이스를 DDI 데이터로 변환한다. 이것은 인터넷에 직접 연결되지 않은 홈 네트워크의 제어기 디바이스가 생성된 DDI 요소를 통해 디바이스를 액세스하게 한다. 특히, 이것은 (HTML을 기반한) 특정한 UPnP 그래픽을 HAVi 그래픽으로 변환하게 한다. 이 후, HAVi 디바이스는 UPnP 디바이스를 쉽게 제어할 수 있고, 그 역도 가능할 수 있다.
변환기는 사용자 인터페이스의 그래픽 부분을 변환 즉 전환하는 기능과, 사용자 인터페이스의 동작(명령) 및 통지를 변환하는 기능을 갖는다.
좀더 상세하게, 명령 및 제어 변환은:
- 사용자가 웹 페이지로부터 HAVi 디바이스를 제어할 수 있도록, 홈 네트워크 동작('DDiAction') 메커니즘의 IP 도메인으로의 변환;
- 사용자가 IP 도메인에 사용자의 변환된 사용자 인터페이스 상의 HAVi 디바이스의 상태 변경을 볼 수 있도록, 홈 네트워크 통지('NotifyDDiChange') 메커니즘의 IP 도메인으로의 변환('NotifyDDiChange'에 대한 대안은 HAVi 스택 내의 더 깊은 레이어의 통지 메커니즘으로 이루어진 몇 개의 DCM의 'StateChanged'-이벤트이다);
- 사용자가 웹 페이지를 'DDiAction' 명령으로 제어할 수 있도록, 웹 페이지로부터 HAVi 도메인으로의 동작 메커니즘의 변환;
- 사용자가 HAVi 도메인의 사용자의 변환된 사용자 인터페이스에서의 웹 페이지 상의 변화를 볼 수 있도록, 웹 내의 통지 메커니즘의 HAVi 도메인으로의 변환을 포함한다.
본 실시예에 따라, 용어 '웹 페이지'는 (웹 브라우저 상에서 렌더링될 수 있는) HTML-기반 페이지를 나타내며, 이 페이지는 페이지 요소(예컨대, 버튼)와 상호동작할 때 사용자가 동작을 생성하게 하기 위해 스크립트 또는 자바 애플릿을 통해 개선될 수 있다.
도 2a는 두-도메인 네트워크의 블록도이며, 여기서 제 1 도메인은 HAVi 유형이며, 제 2 도메인은 인터넷 프로토콜(IP) 유형이다. HAVi 도메인은 HAVi VCR 디바이스(21)와 개인용 컴퓨터(22)를 포함하며, 이들 두 디바이스는 IEEE 1394 버스(23)에 연결된다. 디바이스(21)는 VCR DCM 및 FCM을 포함한다. 디바이스(22)는 본 실시예에 따른 변환기를 포함하며, 또한 인터넷(25)에 연결되며, 이 인터넷(25)에는 웹 브라우저를 포함하는 디바이스{여기서는 개인용 컴퓨터(24)임}가 연결된다. 변환기는 DDI 제어기와 웹 서버 부분을 포함한다.
전형적인 사용자 제어 방법이 실제 환경에서 변환기의 역할을 예시하기 위해이제 기술될 것이다.
사용자는 사용자가 방금 들었던 영화를 레코딩하기 위해 사용자의 친구 집으로부터 VCR(21)에 액세스하고자 한다. 사용자는 디바이스(24)의 웹 브라우저를 사용하여 사용자의 홈 HAVi 네트워크에 액세스한다. 디바이스(22)는 이 경우 웹 서버로 동작하며, 사용자에게 알려진 IP-주소를 갖는다. 디바이스(22)는 VCR(21)로부터 DDI 데이터(경로 A)를 요청하고, 이것을 웹 페이지 포맷으로 변환하며, 이것을 요청시 원격 컴퓨터(24)에 전송하며, 이 컴퓨터(24)는 이것을 그 브라우저 상에 디스플레이한다.
그 후, 사용자는 디바이스(22)에 의해 생성된 웹 페이지 상의 브라우저에 의해 제공된 VCR 제어에 액세스한다. 사용자는 또한 VCR의 상태를 볼 수 있다. 사용자는 'Record' 버튼을 활성화한다. 대응하는 메시지(경로 B)는 변환기의 웹 서버 부분으로 전송된다. 변환기는 메시지를 DDI 사용자 동작으로 전환한다. 이 사용자 동작은 그에 따라 동작하는 VCR 디바이스(21)의 DDI 목표로 전송된다.
도 2b는 도 2a와 유사하지만, IP 도메인{이 경우, 컴퓨터(24) 상에 위치한 웹 서버} 상의 디바이스가 (예시되지 않은 텔레비전 모니터와 같은 디스플레이에 연결된) HAVi VCR(21)을 통해서 제어되는 경우를 예시한다. HAVi VCR(21)은 HAVi DDI 제어기를 보유하며, 이 제어기는 웹 서버(24)로부터 얻어진 사용자 인터페이스(예컨대, HTML) 페이지의 요소를 기반으로 하여 디바이스(22)의 변환기에 의해 제공된 DDI 데이터에 엑세스한다. 변환기는 HAVi 규격에 기술된 DDI 절차와 호환성이 있기 위해 HAVi 네트워크 상에 디바이스(24)에 대응하는 프록시 DCM과FCM을 제공한다. 인터넷 측 상에서, 디바이스(22)는 웹 클라이언트를 제공한다. 디바이스(26)는 이 때 웹 서버로 간주된다.
두 경우, 디바이스(22)는 각 도메인에 대해 알려진 기술(HAVi 도메인을 위한 레지스트리 및 IP 도메인에서 UPnP 디바이스를 위한 GENA 및 SSDP와 같은 적절한 프로토콜)을 사용하여 각 도메인에 연결된 디바이스를 인식한다고 가정된다.
도 3은 HAVi 도메인과 인터넷 도메인을 포함하는 또 다른 두-도메인 네트워크의 블록도이다. 이 네트워크의 경우, HAVi 도메인은 디바이스(31, 내지 34)를 포함하며, 여기서 디바이스(31)는 변환기를 병합하고 있는 HAVi 디바이스이다. 인터넷 도메인은 예컨대 네 개의 인터넷 디바이스(35 내지 38)를 포함하며, 여기서 디바이스(35)는 UPnP에 부합하며, 디바이스(37)는 인터넷 브라우저의 호스트 역할을 한다.
도 4는 HAVi 디바이스(31)의 간략화된 소프트웨어 아키택쳐를 예시하며: 변환기 애플리케이션이 HAVi 측 상에서 HAVi 스택 및 DDI 제어기 정상에 놓이며, 다른 측 상에서 인터넷 프로토콜(IP) 스택 및 웹 서버 레이어 정상에 놓인다.
변환기는 DDIController와 연계하여 사용되는 하나의 소프트웨어이다. 이것은 또한 DDIController를 포함하는 HAVi 디바이스 상에 제공된다. 본 실시예의 목적이 인터넷 디바이스와 동작하는 것이라는 사실로 인해, 웹 서버가 동일한 HAVi 디바이스(31) 내에 제공된다. 통신 경로는 예컨대 브라우저를 병합하고 있는 디바이스(37)인 웹 클라이언트로부터 웹 서버로 이어지고 및 적절한 애플리케이션 프로그램 가능한 인터페이스(API: Application Programmable Interface)를 통해서 애플리케이션(예컨대, HAVi 소프트웨어/하드웨어 스택)으로 이어지며, 다시 되돌아온다. 웹 서버 및 웹 클라이언트는 웹 도메인에 내주하는 것으로 간주되며, 애플리케이션은 본 실시예에서 디바이스(31 내지 34) 중 하나에서 HAVi 도메인에 있다.
그래픽 객체, 동작 및 통지를 두 도메인 사이에서 변환할 필요가 있으며, 여기서:
1) 그래픽 객체는 예컨대, 패널, 텍스트, 버튼 등이고,
2) 동작은 예컨대 사용자 인터페이스 요소를 활성화함으로써 생성된 메시지이다. 이것은 예컨대 동작이 활성화되었음을 반영하기 위해 버튼과 같은 그래픽 객체의 모양의 변화를 필요로 할 수 있다. 동작은 예컨대 애플리케이션에 의해 생성될 수 있다.
3) 통지는 네트워크 상의 이벤트를 디바이스에 통보하는 메시지이다. 이것은 예컨대 객체의 새로운 상태를 반영하기 위해 그래픽 객체의 모양의 변화를 초래할 수 있다.
문제는 웹 서버 및 애플리케이션으로부터 언급된 API를 통해 동작 또는 통지 메시지를 전송하는 것이다. 이 문제를 서브/클라이언트 측에서 보면 다음과 같은 점이 나타난다:
1) 웹 도메인에서 HTML-페이지를 다루는 동안, HTML-기반 객체 상에 동작(예컨대, 사용자에 의한)을 가지며 및 그에 따른 재-동작(제어된 디바이스에 의해, 변환기를 통해)을 갖는 것이 가능하다.
다른 한편으로, 자발적으로 웹 클라이언트{디바이스(37)}에 의해 디스플레이된 HTML 페이지를 업데이트하기 위해 서버에 이용 가능한 어떠한 간단한 통지 절차도 없다{예컨대, 도 2a에서, 디바이스(22)의 서버는 디바이스(24)의 브라우저에 데이터를 푸시(push)하기 위한 어떠한 간단한 수단도 가지고 있지 않다}.
2) 간단한 해결책은 주기적으로 폴링하는 것이다: 만약 HAVi 도메인에서 통지 이벤트가 있다면, 애플리케이션은 (변화된 모양의) 새로운 HTML-객체를 제공한다. 클라이언트는 정기적으로 이러한 변화를 포함하고 있는 HTML 페이지를 얻기 위해 서버에 (예컨대, 몇 초마다 매번) 폴링한다. 이것은 HTTP GET 메시지를 사용하여 얻을 수 있다. 클라이언트 PC(24)는 또한 별도의 프레임에서 운영되고 있는 적절한 애플릿을 통해 먼저 HTML 페이지가 수정되었는지의 여부를 체크하기 위해 HTTP HEAD 메시지를 사용하여 HTTP 응답의 헤더를 얻을 수 있음을 주목해야 한다. HTML 페이지는 실제 수정이 있는 경우에만 요청된다.
3) 본 실시예는 웹 도메인과 HAVi 도메인 사이에서 API에 추가하여 애플릿을 사용한다:
웹 도메인에 있는 가능한 언어 및/또는 스크립트는 자바스크립트, 애플릿(이 목록은 배타적이지 않다)이 있다.
애플리케이션과 웹 서버 사이의 API에 대한 가능한 해결책은 자바 원격 방법 호출(RMI: Remote Method Invocation), 공통 게이트웨이 인터페이스(cgi) 및 CORBA(다시 이 목록은 배타적이지 않다)가 있다.
RMI에서, HAVi 애플리케이션은 자바 가상 머신(JVM: Java Virtual Machine)과 상호동작하며, 자바 원시 인터페이스(JNI: Java Native Interface)는 더 높은레이어의 자바 애플리케이션을 더 낮은 레이어의 원시 애플리케이션에 추가하는데 사용되어야 한다. 도 5 및 도 6은 각각 DDIController 구현(자바나 원시 중 어느 하나)에 좌우되는 두 개의 소프트웨어 아키택쳐 모델을 도시한다.
웹 서버와 애플리케이션 사이의 API에 대한 또 다른 가능성은 cgi에 의존한다(도 7). 여기서, 사용자 인터페이스(인터넷 클라이언트에 의해 다운로드되는 애플릿)는 cgi를 통해 제공된다. 통신은 동작 처리에 관한 한(클라이언트는 서버로부터 애플릿을 로드하며, 예컨대 애플릿은 HTML 페이지에서 제공될 수 있고, 애플릿은 '동작'-트리거 메시지를 서버에 다시 전송할 수 있다)은 cgi{애플릿-/서블릿(servlet)-통신}를 통해서 수행되며, 통지 처리에 관한 한(애플릿은 예컨대 HTTP GET 명령이나 또 다른 적절한 HTTP 명령을 사용하여 알려진 고정된 서버 포트에 예컨대 주기적으로 매초마다 폴링하고, 검색될 객체의 식별을 판독하며, 이 후 객체의 식별을 알고 있는 새로운 객체 속성에 대한 요청을 발급한다)은 사전에 결정된 HTTP-포트를 통해서 수행된다. 통신 변환기로의 이러한 직접 웹 링크는, 웹 서버로부터 웹 클라이언트로의 손실된 업데이트 메커니즘 때문에 필요하다. 애플릿은 클라이언트에서의 자바 가상 머신(JVM) 상에서 수행된다.
제 3 가능성은 CORBA를 기반한 구현이다.
본 실시예는 애플리케이션에 의한 클라이언트의 통지를 위한 RMI를 기반하고 있다.
본 실시예에 따라, 그래픽 변환, 동작 통신 및 통지는 다음과 같이 구현된다:
1) 그래픽 요소:
변환기는 DdiElements 및 그 역(예컨대, DdiPaneljava.myPanel, DdiButton java.myButton,...)에 대응하는 사전에 정의된 자바 그래픽 객체를 저장하는 메모리를 포함한다.
변형으로, DdiElements는 또한 HTML 객체 상에 매핑될 수 있고, 그 역도 가능하다.
1.1) 인터넷 디바이스가 홈 도메인 디바이스를 제어하는 경우
DDI 요소는 HTML 요소(예컨대, HTML Buttons...) 또는 자바 그래픽 요소(예컨대, Java Buttons...)로 전환된다.
1.2) 홈 도메인 디바이스가 인터넷 디바이스를 제어하는 경우
HTML 요소 또는 자바 요소는 DDI 요소로 전환된다.
2) 동작:
2.1) 인터넷 디바이스가 홈 도메인 디바이스를 제어하는 경우
사용자는 렌더링된 그래픽 요소(자바 객체나 HTML 객체 중 어느 하나)와 상호동작한다. 이것은 웹 브라우저로부터 변환기 내에 내주하는 웹 서버로 메시지를 트리거한다. 이들 메시지는 클라이언트 측 상의 애플릿과 서버 사이의 HTTP 메시지(예컨대, GET 또는 POST)나 RMI 상호동작(예컨대, 방법 호출)일 수 있다. RMI 상호동작은 RMI 원격 방법 호출을 사용하여 서브 측에 위치한 자바 프로그램과 통신하는 애플릿을 통해서 달성된다.
서버 측에 도달한 메시지는 DDI 동작으로 전환되고, HAVi 네트워크 상에서전송된다. DDI 목표로부터의 응답은 변환기(DDI 제어기로 동작함)에 의해 수신되고, HTTP GET 메시지에 대한 응답으로서 웹 클라이언트로 다시 전송되거나 통지와 동일한 방법을 사용한다.
모든 그래픽 요소가 다 RMI를 통해서 보내질 수(exportable) 없으므로, 브라우저에 의해 디스플레이된 페이지 상에 그래픽 표현을 갖지 않는 (웹 서버에 위치한) 자바 객체로의 방법 호출을 또한 생성하게 되는 자바 그래픽 요소를 갖는 것이 제안된다.
2.2 홈 도메인 디바이스가 인터넷 디바이스를 제어하는 경우
DDI 제어기에 의해 생성된 DDI 동작은 (그 DDI 목표를 통해) 변환기에 도달한다. 이 후, 이것은 HTTP 캡슐화된 메시지(예컨대, GET 또는 POST)나 RMI 상호동작 중 어느 하나로 전환된다. 웹 서버에 의해 웹 클라이언트(즉, 변환기)에 전송된 응답은 이 후 DDI 동작 응답으로 변환되거나 또는 통지와 동일한 방법을 사용한다.
3) 통지:
3.1) 인터넷 디바이스가 홈 도메인 디바이스를 제어하는데 사용되는 경우
통지는 DDI 목표로부터 변환기(DDI 제어기의 형태)로 전송되며, 웹 클라이언트를 위한 메시지로 전환된다. 이 메시지는 RMI 상호동작, 즉 클라이언트 측 상의 애플릿에 내주한 자바 애플릿의 자바 방법의 원격 호출이다. 이것은 또한 클라이언트 측에서 애플릿에 의해 수신된 HTTP 메시지(본 경우에 POST 메시지)일 수 있다. HTTP POST 메시지 컨텐트는 애플릿에게 하나 이상의 그래픽 요소의 간단한 리프레시(refresh)를 요청하거나 전체 페이지를 다운로드하게 하거나 또는 임의의 다소복잡한 업데이트를 가질 것을 지시할 수 있다.
3.2) 홈 도메인 디바이스가 인터넷 디바이스를 제어하는데 사용되는 경우
통지는 웹 서버에 의해 웹 클라이언트(여기서 변환기)에 전송되며, 웹 클라이언트는 이것을 DDI 통지 메시지('NotifyDdiChange')로 변환한다. 웹 서버로부터의 통지 메시지는 RMI를 통해 또는 HTTP POST 메시지를 사용하여 전송될 수 있다. UPnP 디바이스의 경우, GENA 프로토콜이 또한 가능성이 있다.
이들 메커니즘은 다음과 같이 RMI를 사용하여 구현된다. 먼저, HAVi 도메인으로부터 인터넷 도메인으로의 변환이 기술될 것이며, 이 후 그 반대의 변환이 기술될 것이다.
(I) RMI를 사용한 HAVi 도메인-IP 도메인 변환
1) 변환기의 DdiController는 먼저 DdiTarget를 나타내는 HAVi-디바이스(32)에 가입한다. 이러한 가입은 HAVi 규격에 기술된 규칙을 따른다.
2) 다음의 통신 동안에, 변환기는 HAVi 규격에 의해 기술된 바와 같이 HAVi 디바이스(32)로부터 DDI 요소(예컨대, DdiButton)를 패치한다. 그 이후, 변환기는 그 내부 데이터베이스로부터 대응하는 자바 객체(예컨대, java.Button)를 추출하고, 그 대응하는 DDI 요소의 파라미터로 각 추출된 객체의 사례를 생성한다(instantiate).
3) 그 후, 변환기는 변환기에 의해 생성된 자바 객체를 포함하는 애플릿을 생성한다. 애플릿은 HTML-페이지 상의 인터넷 클라이언트에 제공된다. 몇 개의 애플릿이 페이지 당 사용될 수 있고, 몇 개의 페이지가 사용될 수 있다.
4) 클라이언트{예컨대, 디바이스(37)}는 이제 HTML 페이지를 참조할 수 있고, 애플릿을 수행할 수 있으며, 이 애플릿은 DdiTarget 디바이스{HAVi-디바이스(32)}의 사용자 인터페이스 요소에 대한 자바(또는 HTML) 객체 참조를 포함한다. HTML 페이지는 이처럼 알려진 방식으로 사용자에게 디스플레이된다. 도 8은 이러한 방법을 예시한다.
본 실시예에 따라, RMI는 도 9에 예시된 바와 같이 동작을 클라이언트로부터 서버로 송신하는데 사용된다.
인터넷 클라이언트(37)의 사용자가 동작을 수행한다고 가정하자. 예컨대, 사용자는 버튼을 활성화한다. 이 동작은 애플릿에서의 버튼의 'Listener' 방법에 의해 검출되고, 그러면, 이 애플릿은 원격 자바 객체 방법을 콜함으로써 서버와의 RMI 상호동작을 시작한다. 방법 및 원격 자바 객체의 수는 구현에 따라 다르다. 'Listener'는 객체의 방법이고, 객체가 활성화될 때 콜된다.
서버에서, 동작은 HAVi 도메인(DdiAction.ACT_BUTTON)으로 변환되고, 디바이스(22)의 DDI 제어기에 의해 제어된 HAVi 디바이스로 송신된다. DdiAction은 DDI 제어기에 응답하며, 그 정보는 이 후 그래픽 요소(들)의 상태를 변경하는데 사용된다. 이것은 그 후 RMI를 사용하여 클라이언트 레벨에서 업데이트된다. 변환기는 사실 클라이언트 측에 있는 원격 자바 객체 방법을 콜한다. 이 콜은 다소 복잡할 수 있다. 즉 이것은 간단히 "Refresh the whole page" 유형일 수 있거나, "Change the image for this button" 유형 또는 일련의 이러한 콜일 수 있다.
본 실시예에 따라, 원격 방법 호출은 또한 도 10에 예시된 바와 같이 통지의송신을 구현하는데 사용된다. 본 경우, 통지는 제어된 디바이스{디바이스(32)}로부터 제어 디바이스{디바이스(37)}로 디바이스(37)에 의한 간청(solicitation) 없이 전송된다.
예컨대, 사용자가 HAVi 디바이스의 사용자 인터페이스 버튼을 활성화하고, 디바이스의 상태 변경(예컨대, VCR의 경우 테이프의 끝)이 있는 경우 등에서, 통지가 필요할 수 있다. 변환기의 DDI 제어기가 DDI 목표 디바이스(32)로부터 NotifyDdiChange 메시지를 수신하기 때문에 변환기가 통보를 받은 이러한 변화는 인터넷 클라이언트(37) 레벨에서 반영되어야 한다.
통지는 다음과 같이 수립된다: NotifyDdiChange 메시지의 파라미터는 변환기에 의해 분석되고, RMI 상호동작은 웹 클라이언트 측에서 변환기와 애플릿 사이에서 수행된다. 변환기는 클라이언트 측에 내주하는 원격 자바 객체 방법을 콜한다. 그러면, 애플릿은 예로서 그래픽의 외양을 업데이트하거나 HTML 페이지의 모든 또는 특정한 부분을 리프레시하라는 HTTP 요청을 수행할 수 있다.
(II) RMI를 사용한 인터넷 도메인-HAVi 도메인 변환
HAVi 도메인으로부터의 인터넷-유형 디바이스{예컨대, UPnP 디바이스(35)}의 제어는 도 11에 의해 도시된 방법에 따라 이뤄진다.
본 실시예의 경우, 제어된 디바이스의 사용자 인터페이스는 HTML-페이지(예컨대, HTML-버튼을 포함함)나 애플릿(예컨대, java.Buttons와 같은 자바 객체를 포함함)의 형태로 제공된다.
변환기는 HTML 페이지를 검색하고, 자바 객체의 그 매핑에 기초하여 DDI 요소 상의 HTML 객체를 각각 검색하며, 적절한 DDI 목표 데이터를 생성하고, 이것을 초기 데이터를 나타내는 계층구조(hierarchy)에 따라 배치한다(예컨대, 변환기는 HTML 버튼 또는 자바 버튼의 DDI 버튼으로의 변환을 수행하고, 이들을 사용자에게 적절하게 표시하기 위해 HAVi 규격에 순응하여 배치한다).
이러한 새로운 DDI 목표는 임의의 다른 DDI 목표처럼 HAVi 도메인에서 DDi 제어기에 의해 액세스 가능하게 된다.
DDI 제어기가 디바이스(32)에 위치한다고 가정할 것이다. 디바이스(32)는 DDI 목표 데이터를 검색하고, 대응하는 사용자 인터페이스를 디스플레이한다. 사용자 입력에 응답하여, 디바이스(32)는 DDI 동작을 디바이스(31)에 위치한 DDI 목표에 다시 송신한다. 디바이스(31)의 변환기는 DDI 동작을 수신하고, 이것을 제어된 디바이스로 전송된 HTTP-명령(들)(예컨대, Submit HTML 버튼 상의 HTTP POST 메시지)으로 변환하거나 RMI를 사용하여 웹 도메인을 위한 독점적인 자바-객체-변경-메커니즘으로 변환한다.
예컨대, 사용자가 HAVi 디바이스(32) 상의 DdiButton을 누를 때, 변환기는 이것을 HTML-버튼의 'form' 동작으로 변환하며, 이것은 HTTP 메시지를 통해 웹 디바이스(31)로 전송된다. 변환기는 업데이트된 데이터를 웹 서버로부터 (연결 메커니즘을 사용하여) 수신하며, 그리하여 DDI 동작 응답 또는 홈 도메인 상의 DDI 통지 메시지를 전송하기 위해 DDI 데이터를 업데이트할 수 있다.
HAVi 도메인과 웹 도메인 사이의 DDI 그래픽의 변환은 다음과 같이 수행된다.
변환될 DdiElements는 DdiPanel, DdiGroup, DdiPanelLink, DdiButton, DdiBasicButton, DdiToggle, DdiAnimation, DdiShowRange, DdiSetRange, DdiEntry, DdiChoice, DdiText, DdiStatus, Ddilcon이 있다.
이 목록은 새로운 DDI 요소가 명시됨에 따라 진전될 수 있음을 주목하기 바란다.
이 대응하는 웹 사용자 인터페이스 요소는 웹 페이지의 프리젠테이션에 좌우된다: 만약 애플릿이 사용된다면, 자바 AWT(Abstract Windows Toolkit) 하의 적절한 자바 객체는 예컨대 java.Button, java.List, java.Label이며; 만약 HTML이 사용된다면, (예컨대 Form을 통해) 정의된 등가의 요소가 있다.
인터페이스 디바이스는 각 네트워크의 송신 매체에 엑세스하기 위한 물리적인 층을 포함한다(이것은 둘 이상일 수 있다). 인터페이스 디바이스는 또한 단지 기술되어진 방법을 수행하는데 필요한 데이터 및 다양한 프로그램을 저장하기 위한 휘발성 및 불-휘발성 메모리와, 마이크로프로세서와 같은 즉 상기 방법을 수행하며, 다양한 회로를 제어하기 위한 처리 수단과, 인터페이스 디바이스의 모듈을 포함한다.
비록 실시예가 단지 두 개의 서브-네트워크를 포함하는 네트워크에 초점을 맞추고 있지만, 본 실시예는 이러한 경우로 제한되지 않는다.
상술한 바와 같이, 본 발명은 서로 다른 네트워크 상의 디바이스 사이에 통신하고, 특히 한 네트워크로부터 다른 네트워크로 통지를 송신하기 위한 방법 및이 방법을 구현하기 위한 디바이스에 이용된다.

Claims (20)

  1. 제 1 네트워크 상의 제 1 디바이스(32)와 제 2 네트워크 상의 제 2 디바이스(35, 37) 사이에서 통신을 인터페이스하기 위한 방법으로서, 상기 네트워크들은 인터페이스 디바이스(31)에 의해 연결되며, 상기 방법은 상기 인터페이스 디바이스에 의해 수행되는, 통신 인터페이스 방법에 있어서,
    - 제 1 메시지를 상기 제 1 네트워크 상에서 검출하는 단계로서, 상기 제 1 메시지는 상기 제 1 디바이스(32)에 의해 생성되고, 상기 제 2 디바이스(35, 37)에 적합한, 제 1 메시지 검출 단계와;
    - 상기 제 1 메시지를 상기 제 2 디바이스(35, 37)와 호환되는 포맷으로 변환하는 단계와;
    - 상기 제 2 디바이스에게 상기 제 1 메시지가 검출되었음을 통보하는 제 2 메시지를 상기 제 2 네트워크 상의 상기 제 2 디바이스로 전송하는 단계와;
    상기 제 2 디바이스로부터 요청을 수신하자마자, 상기 변환된 제 1 메시지를 송신하는 단계를,
    특징으로 하는, 통신 인터페이스 방법.
  2. 제 1항에 있어서, 상기 인터페이스 디바이스는,
    - 적어도 하나의 애플릿(applet)을 제공하는 단계로서, 상기 애플릿은 상기 제 2 메시지를 수신하고, 상기 요청을 생성하도록 적응되는, 적어도 하나의 애플릿제공 단계와;
    - 상기 애플릿을 상기 제 2 디바이스로 송신하는 단계를 더 수행하는, 통신 인터페이스 방법.
  3. 제 2항에 있어서, 상기 적어도 하나의 애플릿을 적어도 하나의 HTML 페이지에 포함시키고, 상기 적어도 하나의 페이지를 상기 제 2 디바이스에 송신하는 단계를 더 포함하는, 통신 인터페이스 방법.
  4. 제 3항에 있어서, 상기 제 1 메시지를 변환하는 단계는 상기 HTML 페이지의 적어도 하나의 관련 객체를 상기 제 1 메시지에 포함된 파라미터로 업데이트하는 단계를 포함하는, 통신 인터페이스 방법.
  5. 제 2항 내지 제 4항 중 어느 한 항에 있어서,
    - 상기 제 1 디바이스의 사용자 인터페이스 요소를 검색하는 단계와;
    - 상기 사용자 인터페이스 요소를 상기 제 2 디바이스를 통한 상기 제 1 디바이스 제어를 위해 호환되는 포맷으로 변환하는 단계와;
    - 상기 변환된 사용자 인터페이스 요소를 상기 HTML 페이지에 포함시키는 단계를 더 포함하는, 통신 인터페이스 방법.
  6. 제 5항에 있어서, 상기 제 1 메시지를 변환하는 단계는, 상기 제 1 메시지에포함된 파라미터를 기초로하여 적어도 하나의 변환된 사용자 인터페이스 요소를 업데이트하는 단계를 포함하는, 통신 인터페이스 방법.
  7. 제 3항 또는 제 6항에 있어서, 상기 HTML 페이지는 적어도 하나의 자바 객체 및/또는 적어도 하나의 HTML 객체를 포함하는, 통신 인터페이스 방법.
  8. 제 3항 내지 제 7항 중 어느 한 항에 있어서, 상기 제 2 메시지를 상기 제 2 디바이스로 전송하는 단계는, 상기 애플릿으로의 원격 방법 호출 콜(remote method invocation call)을 수행하는 단계를 포함하며, 상기 애플릿의 원격 방법은 상기 변환된 제 1 메시지를 송신하기 위해 상기 제 2 디바이스로부터 상기 인터페이스 디바이스로의 적절한 요청을 트리거하는 것과 같은 것이 되는, 통신 인터페이스 방법.
  9. 제 8항에 있어서, 상기 요청은 다음: HTML GET 메시지, 상기 인터페이스 디바이스로의 원격 방법 호출 콜 중 하나를 포함하는, 통신 인터페이스 방법.
  10. 제 2항 내지 제 7항 중 어느 한 항에 있어서, 상기 애플릿은 변환된 메시지가 상기 인터페이스 디바이스에서 이용 가능한지를 결정하기 위해 상기 인터페이스 디바이스의 사전에 결정된 포트에 정기적으로 폴링하도록(poll) 적응되는, 통신 인터페이스 방법.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서, 상기 변환된 제 1 메시지를 송신하기 위한 상기 요청은 다음:
    - HTML 페이지의 일부의 업데이트를 송신하라는 요청;
    - 전체 HTML 페이지의 업데이트를 송신하라는 요청;
    - 자바 객체나 HTML 객체의 업데이트를 송신하라는 요청 중 하나를 포함하는, 통신 인터페이스 방법.
  12. 제 1항 내지 제 11항 중 어느 한 항에 있어서, 상기 제 1 네트워크는 HAVi 네트워크인, 통신 인터페이스 방법.
  13. 제 1항 내지 제 12항 중 어느 한 항에 있어서, 상기 제 2 네트워크는 인터넷 프로토콜 기반 네트워크인, 통신 인터페이스 방법.
  14. 제 1항에 있어서, 상기 제 1 네트워크는 인터넷 프로토콜 기반 네트워크이고, 상기 제 1 메시지를 수신하는 단계는 상기 제 1 디바이스에서의 애플릿으로부터의 사전에 결정된 포트 상에서 상기 메시지를 수신하는 단계를 포함하는, 통신 인터페이스 방법.
  15. 제 1항에 있어서, 상기 제 1 네트워크는 인터넷 프로토콜 기반 네트워크이고, 상기 제 1 메시지를 수신하는 단계는 상기 제 1 디바이스에서의 애플릿에 의해 수행된 원격 방법 호출 콜을 통해 상기 메시지를 수신하는 단계를 포함하는, 통신 인터페이스 방법.
  16. 제 1 네트워크 상의 제 1 디바이스(32)와, 제 2 네트워크 상의 제 2 디바이스(35, 37) 사이에 통신을 인터페이스하기 위한 디바이스(22)로서,
    - 상기 제 1 네트워크 상에서 제 1 메시지를 검출하기 위한 수단으로서, 상기 제 1 메시지는 상기 제 1 디바이스(32)에 의해 생성되고, 상기 제 2 디바이스(35, 37)에 적합한, 제 1 메시지 검출 수단과;
    - 상기 제 1 메시지를 상기 제 2 디바이스(35, 37)와 호환성이 있는 포맷으로 변환하기 위한 수단과;
    - 상기 제 2 디바이스에게 상기 제 1 메시지가 검출되었음을 통보하는 제 2 메시지를 상기 제 2 네트워크 상의 상기 제 2 디바이스에 전송하고, 상기 제 2 디바이스로부터 요청을 수신하자마자, 상기 변환된 제 1 메시지를 송신하기 위한 수단을,
    포함하는, 통신 인터페이스 디바이스.
  17. 제 16항에 있어서, 상기 제 2 네트워크의 디바이스에 의해 제어하기 위해 상기 제 1 네트워크의 디바이스의 사용자 인터페이스 요소를 위한 사용자 인터페이스 요소 표현(representations)을 저장하고 및 그 역으로도 사용되는 메모리와, 상기표현에 따라 상기 제 1 디바이스의 상기 사용자 인터페이스 요소를 변환하고, 상기 변환된 요소를 상기 제 2 디바이스로 송신하기 위한, 변환 수단을 더 포함하며, 여기서, 상기 변환 수단은 한 디바이스 상에서 수행된 동작이나 한 디바이스에 의해 생성된 통지를 다른 디바이스와 호환성이 있는 포맷으로 변환하도록 적응되는, 통신 인터페이스 디바이스.
  18. 제 1 네트워크 상의 제 1 디바이스(32)와 제 2 네트워크 상의 제 2 디바이스(35, 37) 사이에서 통신을 인터페이스하기 위한 방법으로서, 상기 네트워크들은 인터페이스 디바이스(31)에 의해 연결되며, 상기 방법은 상기 인터페이스 디바이스에 의해 수행되는, 통신 인터페이스 방법에 있어서,
    - 제 1 메시지를 상기 제 1 네트워크 상에서 검출하는 단계로서, 상기 제 1 메시지는 상기 제 1 디바이스(32)에 의해 생성되고, 상기 제 2 디바이스(35, 37)에 적합한, 제 1 메시지 검출 단계와;
    - 상기 제 1 메시지를 상기 제 2 디바이스(35, 37)와 호환성이 있는 포맷으로 변환하는 단계와;
    - 상기 변환된 메시지를 상기 제 2 디바이스에 송신하는 단계를 포함하며,
    여기서, 상기 제 1 및 제 2 네트워크는 각각 IP 및 HAVi 네트워크이거나 또는 그 반대이며, 여기서 상기 메시지는 통지 또는 동작인 것을,
    특징으로 하는, 통신 인터페이스 방법.
  19. 제 18항에 있어서, 상기 인터페이스 디바이스와 IP 기반 네트워크 상의 디바이스 사이의 통지 또는 동작의 교환은 원격 방법 호출 콜을 통해 수행되는, 통신 인터페이스 방법.
  20. 제 19항에 있어서, 상기 인터페이스 디바이스로부터 IP 기반 네트워크 상의 상기 제 2 디바이스로 통지를 송신하는 단계는 상기 제 2 디바이스가 서버로 동작하는 상기 인터페이스 디바이스의 고정 포트를 정기적으로 폴링하게 하는 단계를 포함하는, 통신 인터페이스 방법.
KR10-2004-7002434A 2001-08-22 2002-08-22 서로 다른 네트워크 상의 디바이스 사이에서 통신을인터페이스하기 위한 방법 및 디바이스 KR20040027926A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01402207.3 2001-08-22
EP01402207A EP1286260A1 (en) 2001-08-22 2001-08-22 Method for translating a HAVi DDI user interface to the HTML world and vice-versa
PCT/EP2002/009478 WO2003019361A2 (en) 2001-08-22 2002-08-22 Methods and device for interfacing communication between devices on different networks

Publications (1)

Publication Number Publication Date
KR20040027926A true KR20040027926A (ko) 2004-04-01

Family

ID=8182863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7002434A KR20040027926A (ko) 2001-08-22 2002-08-22 서로 다른 네트워크 상의 디바이스 사이에서 통신을인터페이스하기 위한 방법 및 디바이스

Country Status (8)

Country Link
US (1) US20050010689A1 (ko)
EP (2) EP1286260A1 (ko)
JP (1) JP2005519353A (ko)
KR (1) KR20040027926A (ko)
CN (1) CN1545653A (ko)
AU (1) AU2002340837A1 (ko)
MX (1) MXPA04001617A (ko)
WO (1) WO2003019361A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100803610B1 (ko) * 2006-11-21 2008-02-15 삼성전자주식회사 인터넷을 통해 UPnP 홈 네트워크에 접속된 디바이스를제어하는 방법 및 이를 위한 시스템 및 장치
WO2009093839A3 (ko) * 2008-01-25 2009-10-22 삼성전자 주식회사 홈 네트워크에서 이벤트를 처리하는 방법 및 이를 위한 장치
KR101273806B1 (ko) * 2006-03-07 2013-07-30 모토로라 모빌리티 엘엘씨 메시징 서비스 메시지 적응을 처리하기 위한 장치 및 방법

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1355136B1 (en) * 2002-04-18 2006-03-08 Thomson Licensing Method for generating a user interface on a HAVi device for the control of a non-HAVi device
DE10302477A1 (de) * 2003-01-23 2005-02-24 Deutsche Thomson-Brandt Gmbh Verfahren zur Verfügbarmachung eines Eingabeparameters einer Netzwerkstation eines Netzwerks eines ersten Typs in einem Netzwerk eines zweiten Typs sowie Verbindungseinheit zur Verbindung der Netzwerke des ersten und zweiten Typs
JP4007452B2 (ja) * 2003-10-10 2007-11-14 株式会社Access ブラウザを利用して機器情報を表示するシステム、およびプログラム
KR100940813B1 (ko) 2003-10-11 2010-02-05 엘지전자 주식회사 유피엔피(UPnP) 기반 네트워크 시스템의 UPnP AV 디바이스 연동 방법
WO2005045690A1 (en) * 2003-11-04 2005-05-19 Porto Ranelli, Sa Method and system for contextual activation of web services
JP4337591B2 (ja) * 2004-03-19 2009-09-30 株式会社日立製作所 情報処理装置、ネットワークシステムおよびネットワークシステムの制御方法
JP4681998B2 (ja) * 2005-09-16 2011-05-11 株式会社リコー データ処理システムとそのデータ管理装置,プログラム,および記録媒体
TWI421690B (zh) * 2007-11-21 2014-01-01 Ind Tech Res Inst 智慧型遠端介面裝置、系統及其使用方法
CN102035760B (zh) * 2009-09-24 2012-12-05 北京闪联云视信息技术有限公司 家庭网络互联装置、家庭网络服务系统和设备发现方法
CN101924791B (zh) * 2010-08-06 2013-08-21 百度在线网络技术(北京)有限公司 一种用于显示多媒体信息的方法、设备和系统
US8718443B2 (en) * 2010-10-13 2014-05-06 Sony Corporation Implementing web browser in BD platform
US20120096340A1 (en) * 2010-10-13 2012-04-19 Sony Pictures Technologies Inc. Reformatting web pages in bd platform
CN105991564A (zh) * 2015-02-05 2016-10-05 阿里巴巴集团控股有限公司 报文处理方法及装置
CN107070911A (zh) * 2017-04-07 2017-08-18 青岛海信网络科技股份有限公司 一种信息传输的方法及交通综合监控系统
US11533387B2 (en) * 2018-11-30 2022-12-20 Cerner Innovation, Inc. Interface engine architecture

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892909A (en) * 1996-09-27 1999-04-06 Diffusion, Inc. Intranet-based system with methods for co-active delivery of information to multiple users
WO1998053581A1 (en) * 1997-05-19 1998-11-26 Coactive Networks, Inc. Server system and method for networking control networks and direct input/output devices with the world wide web
US6484214B1 (en) * 1998-03-05 2002-11-19 Mcdonnell Douglas Helicopter Company Method for distributed object communications based on dynamically acquired and assembled software components
GB2342816B (en) * 1998-10-13 2003-04-23 Nokia Mobile Phones Ltd Accessing a server computer
JP2003501764A (ja) * 1999-06-02 2003-01-14 トムソン マルチメディア 外部通信ネットワークからホームネットワークを制御するための方法及び装置
EP1058422A1 (en) * 1999-06-02 2000-12-06 THOMSON multimedia Methods for bridging a HAVi sub-network and a UPnP sub-network and device for implementing said methods
JP4058845B2 (ja) * 1999-06-24 2008-03-12 松下電器産業株式会社 ゲートウェイ装置
US20010047431A1 (en) * 2000-02-09 2001-11-29 Eytchison Edward B. HAVi-VHN bridge solution
US7111079B2 (en) * 2000-02-23 2006-09-19 Koninklijke Philips Electronics, N.V. Architecture of a bridge between a non-IP network and the web
KR20010092525A (ko) * 2000-03-22 2001-10-26 윤종용 인터넷 프로토콜 근간 네트워크 기기로서 비 인터넷프로토콜 근간 네트워크 기기의 제어를 이루는 인터넷프로토콜 인터페이스 장치 및 그 방법
US7343427B2 (en) * 2000-12-13 2008-03-11 Sony Corporation Method and an apparatus for the integration of IP devices into a HAVi network
US20020083143A1 (en) * 2000-12-13 2002-06-27 Philips Electronics North America Corporation UPnP architecture for heterogeneous networks of slave devices
US20020078161A1 (en) * 2000-12-19 2002-06-20 Philips Electronics North America Corporation UPnP enabling device for heterogeneous networks of slave devices
US20020184620A1 (en) * 2001-06-05 2002-12-05 Davies Nigel Andrew Justin Method and an apparatus for an audiovisual monitoring application for children
US20030009597A1 (en) * 2001-06-27 2003-01-09 Joung Chul Yong Home network connection apparatus and control method thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101273806B1 (ko) * 2006-03-07 2013-07-30 모토로라 모빌리티 엘엘씨 메시징 서비스 메시지 적응을 처리하기 위한 장치 및 방법
KR100803610B1 (ko) * 2006-11-21 2008-02-15 삼성전자주식회사 인터넷을 통해 UPnP 홈 네트워크에 접속된 디바이스를제어하는 방법 및 이를 위한 시스템 및 장치
WO2009093839A3 (ko) * 2008-01-25 2009-10-22 삼성전자 주식회사 홈 네트워크에서 이벤트를 처리하는 방법 및 이를 위한 장치
US9137036B2 (en) 2008-01-25 2015-09-15 Samsung Electronics Co., Ltd. Method and apparatus for processing event in home network

Also Published As

Publication number Publication date
MXPA04001617A (es) 2004-07-08
EP1286260A1 (en) 2003-02-26
AU2002340837A1 (en) 2003-03-10
CN1545653A (zh) 2004-11-10
WO2003019361A3 (en) 2004-03-11
EP1433052A2 (en) 2004-06-30
JP2005519353A (ja) 2005-06-30
WO2003019361A2 (en) 2003-03-06
US20050010689A1 (en) 2005-01-13

Similar Documents

Publication Publication Date Title
KR20040027926A (ko) 서로 다른 네트워크 상의 디바이스 사이에서 통신을인터페이스하기 위한 방법 및 디바이스
EP1808789B1 (en) Improvements in and relating to remote user interfaces
US6892230B1 (en) Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6910068B2 (en) XML-based template language for devices and services
CN105409183B (zh) 用于在html5应用中实现任何网络功能客户端或服务器的系统和设备
US20060037036A1 (en) Remote control method of home network and system thereof
EP1058422A1 (en) Methods for bridging a HAVi sub-network and a UPnP sub-network and device for implementing said methods
KR20020027337A (ko) 인터넷을 통한 홈 네트워크 액세스 시스템
WO2006115862A1 (en) UPnP MOBILITY EXTENSION USING SESSION INITIATION PROTOCOL
EP1188291A2 (en) General api for remote control of devices
US20040133896A1 (en) Network device application interface
EP1511228B1 (en) Method of control between devices connected to a heterogeneous network and device implementing the method
Perumal et al. Design and implementation of SOAP-based residential management for smart home systems
EP1293081A2 (en) Gateway for home networks
KR20040065571A (ko) Havi-upnp 브리징
WO2002001833A1 (en) Remoting general purpose operating system services via a peer networking device control protocol
KR20030028310A (ko) 홈네트워크에 연결된 피제어 장치를 인터넷을 통해제어하는 방법 및 그 제어 장치
US20090254671A1 (en) Remote control of a device by a terminal
KR20050078541A (ko) 홈네트워크 디바이스 모니터링 및 제어 방법
KR100758791B1 (ko) 홈네트워크 장치 제어를 위한 프록시 장치 및 그 방법
KR20040102034A (ko) 비 ip 기반 홈 네트워크 상에서 웹 클라이언트를업데이트하는 방법, 및 이 방법을 구현하는 디바이스
KR100952280B1 (ko) 댁내에 설치되는 주거 게이트웨이의 재부팅을 원격으로제어하는 방법
Tranmanh et al. Implementation and Validation of UPnP for Embedded Systems in a Home Networking Environment.

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid