KR20230128913A - 로컬 서버가 주변 클라이언트들로 ui 화면 정보를 전송하는 방법 - Google Patents

로컬 서버가 주변 클라이언트들로 ui 화면 정보를 전송하는 방법 Download PDF

Info

Publication number
KR20230128913A
KR20230128913A KR1020220026426A KR20220026426A KR20230128913A KR 20230128913 A KR20230128913 A KR 20230128913A KR 1020220026426 A KR1020220026426 A KR 1020220026426A KR 20220026426 A KR20220026426 A KR 20220026426A KR 20230128913 A KR20230128913 A KR 20230128913A
Authority
KR
South Korea
Prior art keywords
information
local server
content
client
user device
Prior art date
Application number
KR1020220026426A
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 KR1020220026426A priority Critical patent/KR20230128913A/ko
Priority to PCT/KR2023/002793 priority patent/WO2023163566A1/en
Publication of KR20230128913A publication Critical patent/KR20230128913A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • 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
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally

Abstract

본 발명은 UI 애플리케이션이 주변 클라이언트들로 UI 화면 정보를 전송하는 방법에 관한 것으로서, 데이터 통신이 가능한 UI 애플리케이션이 주변 클라이언트들로 UI 화면 정보를 전송하는 방법에 있어서, 상기 UI 애플리케이션에 설치된 UI 배치 제어부를 이용하여 상기 UI 애플리케이션에서 실행된 컨텐츠 애플리케이션에서 제공하는 UI를 복수의 UI 엘리먼트 그룹으로 분리하는 단계, 상기 UI 배치 제어부가 상기 주변 클라이언트들과 상기 복수의 UI 엘리먼트 그룹을 각각 매핑하여 UI 배치정보를 생성하는 단계, 및 상기 UI 배치 제어부는 상기 UI 배치정보를 이용하여 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 상기 주변 클라이언트들로 전송하거나, 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송하는 것을 특징으로 하며, 컨텐츠 애플리케이션의 UI 화면정보 송수신을 UI 엘리먼트 그룹 단위로 함으로써, 복수의 기기에 UI 엘리먼트 그룹을 다양하게 조합하여 제공할 수 있다.

Description

로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법{Method of transmitting UI display information to peripheral clients by a local server}
본 발명은 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법에 관한 것으로서, 더욱 상세하게는 컨텐츠 애플리케이션의 UI 화면정보를 UI 엘리먼트 그룹 단위로 송신함으로써, 복수의 기기에 UI 엘리먼트 그룹을 다양하게 조합하여 제공할 수 있는 UI 화면 정보를 전송하는 방법에 관한 것이다.
종래에 UI 화면 정보를 2개 이상의 디스플레이 장치에서 공유하는 기술은 하나의 화면을 다른 화면에 미러링하거나 화면을 복수의 영역으로 분할하여 각각의 분할영역에 다른 내용을 디스플레이하는 것이 일반적이었다.
특히 미러링 기술은 여러 디스플레이 장치에 동일한 화면이 출력되어, 미러링 전송하는 모바일 기기를 다른 용도로 사용할 수 없는 불편함이 발생되어 효율적이지 못하다. 또한, 화면을 복수의 영역을 분할하여 사용하는 경우 하나의 장치내 디스플레이를 분할하여 사용하므로, UI 화면 정보를 여러 디스플레이 장치에 분산하여 사용하지 못하는 비효율성의 문제가 있다.
선행기술 1(한국 공개 특허 KR 10-20818-0081133)은 신속한 스크린 분할 방법에 관한 선행기술로서, 터치 감응 표면에 작용하는 손가락 관절 터치 제스처를 검출하는 경우, 상기 손가락 관절 터치 제스처에 응답하여 상기 디스플레이의 디스플레이 UI를 적어도 2개의 디스플레이 영역으로 분할하는 것이 특징이다.
선행기술 1을 살펴보면, 화면 분할을 손쉽게 하는 방법을 개시하고 있을 뿐, 분할된 화면을 주변 기기들과 효율적으로 협력하여 디스플레이할 수 있을지에 대한 구성이 개시되어 있지 않다.
선행기술 2는(한국 공개 특허 KR10-2010-0081383)는 터치 스크린 분할 방법에 관한 것으로 터치 스크린 상에 두 개의 위치를 입력받아 터치 스크린의 분할 영역 레이아웃을 형성하고, 형성된 분할 영역 각각에 별도의 디스플레이를 할당하는 것이 특징이다. 선행기술 2 역시 하나의 장치에서 화면 분할을 하는 방법을 개시하고 있어, 분할된 화면을 복수의 기기에서 협력하여 디스플레이하고자 하는 동기가 나타나 있지 않다.
선행기술 3은(미국 공개 특허 US20190373058-A1)은 다수의 기기간의 사용자 인터랙션 정보를 리모트 서버로 전송하여 사용자 인터랙션 정보를 동기화는 것이 특징이다. 선행기술 3은 분할된 화면을 복수의 기기에서 협력하여 디스플레이하고자 하는 동기가 나타나 있지 않다.
또한, 종래에는 여러 디스플레이 장치 간에 UI 화면을 공유하는 경우, 별도의 하드웨어(예를 들어 크롬캐스트)를 통해, UI 화면을 제공하나 사용자가 원하는 UI 화면을 재구성하는 기능을 제공하고 있지 않다. 또한, 디스플레이 장치간 OS가 상이한 경우에는 UI 화면 공유가 어려워 UI 정보를 여러 기기간에 공유하는데 어려움이 있었다.
따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 컨텐츠 애플리케이션의 UI 화면정보를 분리 가능한 UI 엘리먼트 그룹 단위로 전송함으로써, 복수의 기기에 UI 엘리먼트 그룹을 다양하게 조합하여 제공할 수 있는 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 두 번째 과제는 UI 배치 정보에 포함된 UI 엘리먼트 그룹을 비디오스트리밍 방법으로 전송함으로써 OS와 독립적으로 UI 화면정보를 전송할 수 있는 UI 화면 정보를 전송하는 로컬 서버를 제공하는 것이다.
또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
본 발명은 상기 첫 번째 과제를 달성하기 위하여, 데이터 통신이 가능한 로컬 서버가 주변 클라이언트들에게 UI 화면 정보를 전송하는 방법에 있어서, 어느 하나의 클라이언트에서 선택된 컨텐츠 어플리케이션이 상기 로컬 서버에서 실행된 후, 상기 컨텐츠 애플리케이션에서 제공하는 단일 UI를 복수의 UI 엘리먼트 그룹으로 분리하는 단계; 상기 주변 클라이언트들과 상기 복수의 UI 엘리먼트 그룹을 각각 매핑하여 UI 배치정보를 생성하는 단계; 및 상기 UI 배치정보를 이용하여 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 상기 주변 클라이언트들로 전송하거나, 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송하는 것을 특징으로 하는 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 제공한다.
본 발명의 일 실시 예에 의하면, 상기 주변 클라이언트들 중 어느 하나의 클라이언트에게 상기 컨텐츠 애플리케이션의 UI를 UI 엘리먼트 그룹으로 분리할 수 있는 권한을 허가(authorization) 또는 위임 (delegation)할 수 있다.
또한, 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송하는 경우, 상기 주변 클라이언트들 각각의 화면 크기 및 해상도를 반영한 비디오스트림으로 렌더링하여 전송할 수 있다.
본 발명의 다른 실시 예에 의하면, 상기 UI 배치정보 및 상기 주변 클라이언트들의 화면 크기와 해상도 정보를 클라우드 서버에 저장하는 것이 바람직하다.
또한, 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 상기 주변 클라이언트들에게 전송한 후, 상기 주변 클라이언트들로부터 사용자의 UI 제어정보를 수신하고, 상기 컨텐츠 애플리케이션에 상기 UI 제어 정보를 제공할 수 있다.
본 발명의 또 다른 실시 예에 의하면, 상기 로컬 서버를 기준으로 상기 주변 클라이언트와의 물리적 거리 또는 위치한 방향에 의해 상기 UI 배치정보를 결정할 수 있다.
또한, 상기 컨텐츠 애플리케이션이 복수인 경우, 상기 주변 클라이언트들에게 서로 다른 컨텐츠 애플리케이션의 UI 엘리먼트 그룹을 매핑하여 UI 배치정보로 저장하는 것이 바람직하다.
본 발명은 상기 두 번째 과제를 달성하기 위하여, 컨텐츠 어플리케이션의 UI를 분리할 수 있는 권한을 가진 어느 하나의 클라이언트에서 사용자가 선택한 컨텐츠 어플리케이션이 실행된 후, 상기 컨텐츠 애플리케이션에서 제공하는 단일 UI를 복수의 UI 엘리먼트 그룹으로 분리하는 UI 엘리먼트 분리부; 주변 클라이언트들과 상기 복수의 UI 엘리먼트 그룹을 각각 매핑하여 UI 배치정보를 생성하는 UI 배치정보 생성부; 상기 UI 배치정보를 이용하여 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 상기 주변 클라이언트들로 전송하거나, 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송하는 UI 엘리먼트 전송부를 포함하는 것을 특징으로 하는 주변 클라이언트들로 UI 화면 정보를 전송하는 로컬 서버를 제공한다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 컴퓨터, 모바일 기기, 스마트홈 기기 등에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 따르면, 컨텐츠 애플리케이션의 UI 화면정보를 UI 엘리먼트 그룹 단위로 전송함으로써, 복수의 기기에 다양한 조합의 UI 화면을 제공할 수 있다.
또한, 본 발명에 따르면, UI 배치 정보에 포함된 UI 엘리먼트 그룹을 비디오스트리밍 방법으로 전송함으로써 OS와 독립적으로 UI 화면정보를 전송할 수 있다.
나아가 본 발명에 따르면, 클라이언트로 참여하는 여러 모바일 장치에 동일한 컨텐츠 앱을 모두 설치할 필요없이, 한 대의 로컬 서버에 컨텐츠 앱을 설치하고, UI 배치정보를 각 클라이언트에 UI 화면정보로 전송함으로써 불필요한 앱설치를 최소화하면서도 서버-클라이언트 모니터링 및 제어가 가능하다.
또한, 디지털 컨텐츠 사용자에게 컨텐츠 액세스할 수 있는 포워딩 권한, UI 분리 권한, 신규 UI 앱 제공권한을 부여하여, 컨텐츠 사용자에게 신규 컨텐츠-어플리케이션을 제공할 수 있는 권한을 부여하고, 해당 컨텐츠의 액세스 권한을 제3 사용자에게 모든 권한을 포워딩함으로써 다양한 UX를 반영한 컨텐츠 서비스 제공이 가능하다.
도 1은 로컬 서버(100), 주변 클라이언트(200), 클라우드 서버(300), 및 컨텐츠 제공서버(400)로 구성된 네트워크에서 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 로컬 서버(100)가 원본 컨텐츠의 UI를 UI 트리 정보를 이용하여 UI 엘리먼트 그룹으로 분리하고, 주변 클라이언트들(21, 22)로 UI 엘리먼트 그룹을 전송하는 개념을 도시한 것이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 로컬 서버와 클라이언트의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 도시한 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 도시한 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 도시한 흐름도이다.
도 7은 본 발명의 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송시 릴레이 방법으로 UI 엘리먼트 그룹을 전송하는 개념을 도시한 것이다.
도 8은 본 발명의 실시예에 따른 로컬 서버가 도 7에 도시된 UI 트리정보를 분할하여 클라이언트로 전송하는 방법을 도시한 흐름도이다.
도 9는 본 발명의 실시예에 따른 클라이언트가 컨텐츠 앱의 UI를 편집하는 방법의 흐름을 도시한 것이다.
도 10은 본 발명의 다른 실시예에 따른 로컬 서버가 클라이언트로 IoT 상태정보를 전송하는 방법의 흐름을 도시한 것이다.
도 11은 본 발명의 또 다른 실시예에 따른 로컬 서버가 클라이언트로 IoT 상태정보를 전송하는 방법의 흐름을 도시한 것이다.
도 12는 본 발명의 또 다른 실시예에 따른 로컬 서버가 미인증 클라이언트로 IoT 상태정보를 전송하는 방법의 흐름을 도시한 것이다.
도 13은 본 발명의 또 다른 실시예에 따른 로컬 서버가 NFT 컨텐츠와 UI 앱 을 수신하여 UI 화면 정보를 전송하는 방법의 흐름을 도시한 것이다.
본 발명에 관한 구체적인 내용의 설명에 앞서 이해의 편의를 위해 본 발명이 해결하고자 하는 과제의 해결 방안의 개요 혹은 기술적 사상의 핵심을 우선 제시한다.
본 발명에서는 통신 네트워크로 연결된 디스플레이 장치간에 자유로운 UI 화면정보를 전달하기 위해 사용자 디스플레이 장치의 화면 크기 또는 해상도를 고려하여 컨텐츠 애플리케이션의 서비스 확장성을 극대화한다.
사용자가 등록한 복수의 디스플레이 장치 또는 여러 사용자가 등록한 디스플레이 장치들이 포함된 사용자 그룹의 장치간의 사용자 경험(User Experience)을 향상시키기 위한 효율적 양방향(interactive) 데이터 전송 방법을 제시한다.
통신네트워크로 연결된 디스플레이 장치 간에는 영상, 오디오, 이미지, 터치, 키보드, 음성 데이터를 공유할 수 있거나 미러링 및 포워딩 가능하다. 이 때 디스플레이 장치에서 실행되는 컨텐츠 애플리케이션의 컨텐츠 UI는 UI 엘리먼트 그룹으로 구성되어 있는데, 하나 이상의 개별 UI 엘리먼트 그룹 단위로 주변 디스플레이 장치에 전송할 수 있는 기능을 제공하고 UI 엘리먼트 관리 권한 기능을 제공함으로써 다양한 UI 변경 및 조합이 가능하도록 한다.
컨텐츠 UI의 분리 및 배치 권한을 가진 로컬 서버에서 UI를 구성하는 UI 엘리먼트 그룹의 비디오스트림을 주변 디스플레이 장치로 전송할 수 있다. 다른 방법으로서, UI 엘리먼트 그룹 정보만을 주변 디스플레이 장치에 전송하면, 각 주변 디스플레이 장치는 스스로 비디오 스트림을 생성하고, 이후 각 주변 디스플레이 장치는 사용자의 인터랙션 정보를 로컬 서버에 전송한다. 로컬 서버는 각 주변 디스플레이 장치로부터 전송받은 사용자 인터랙션 정보를 컨텐츠 애플리케이션에 입력할 수 있다. 이 때 주변 디스플레이 장치에 본 발명을 위해 설치된 사용자 앱은 서버로부터 수신한 UI 엘리먼트 그룹정보를 이용하여 디스플레이를 가상화하여 다수의 사용자 기기에게 UI 정보를 전송할 수 있다. 따라서 로컬 서버에서 OS 레벨에서 지원하는 기능을 UI 분리 기능 (UI 가상화), UI 배치정보 저장 및 UI 엘리먼트 그룹 전송 기능으로 최소화하여 구성할 수 있고, 이후 본 발명에 필요한 가상 디스플레이 구성 및 비디오스트리밍을 이용한 UI 전송 기능은 사용자 기기에 설치되는 사용자 앱에서 수행되도록 구성할 수 있다.
또한, 로컬 서버는 클라우드 서버로부터 수신한 컨텐츠 애플리케이션의 UI 배치 정보를 반영하여 각 주변 디스플레이 장치에 전송할 UI 엘리먼트 그룹 정보를 업데이트할 수 있다. 로컬서버가 UI 엘리먼트 그룹 정보를 비디오스트림으로 변환하여 각 주변 클라이엔트 장치에게 전송하는 경우, 데이터 통신 관점에서 비디오를 수신하는 기기의 OS에 독립적으로 전송 가능한 이점이 있다.
또한 사용자가 주변 클라이언트 및 IoT(Internet of Things) 장치를 용이하게 모니터링 또는 제어할 수 있는 방법을 제시한다.
특히 로컬 서버가 IoT(Internet of Things) 장치를 제어할 수 있는 IoT 애플리케이션의 UI를 주변 클라이언트에 비디오스트리밍 방법으로 전송함으로써, IoT 애플리케이션이 설치되지 않은 사용자의 기기에서도 IoT 기기의 상태 정보를 모니터링하거나, 사용자의 인터렉션 정보를 사용자 기기에서 로컬서버로 전송함으로써 IoT 기기의 제어가 가능하게 된다.
또한, 다양한 사용자 경험 환경을 변경할 수 있는 컨텐츠 권한 관리 및 컨텐츠 포워딩 방법을 제시한다. 사용자의 디지털 컨텐츠를 액세스할 수 있는 사용자 그룹을 대상으로 컨텐츠의 UI를 변경할 수 있는 UI 변경 권한, 신규 UI를 제공하는 어플리케이션 제공할 있는 권한 및 컨텐츠 액세스 권한 양도 기능을 제공하는 플랫폼 환경을 제공할 수 있다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 그러나 이들 실시예는 본 발명을 보다 구체적으로 설명하기 위한 것으로, 본 발명의 범위가 이에 의하여 제한되지 않는다는 것은 당업계의 통상의 지식을 가진 자에게 자명할 것이다.
본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
도 1은 로컬 서버(100), 주변 클라이언트(200), 클라우드 서버(300), 및 컨텐츠 제공서버(400)로 구성된 네트워크에서 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 개념도이다.
로컬 서버(100)가 사용자가 선택한 컨텐츠 어플리케이션 (CA)의 화면 정보를 주변 클라이언트(200) 기기에 제공하기 위해서는 컨텐츠 어플리케이션이 컨텐츠 제공서버(400)에게 컨텐츠 요청할 수 있다. 이때 로컬 서버(100)에 설치된 컨텐츠 어플리케이션이 직접 컨텐츠 제공서버(400)에 접속하여 해당 컨텐츠를 요청하거나, 클라우드 서버(300)를 거쳐서 컨텐츠를 요청할 수 있다. 이 때 로컬 서버(100)에 컨텐츠 제공서버(400)의 컨텐츠를 제공받는데 필요한 컨텐츠 애플리케이션이 설치되지 않은 경우, 컨텐츠 제공서버(400)에 요청하여 컨텐츠 애플리케이션을 전송받아 설치할 수 있다.
도 1을 참조하면, 주변 클라이언트(200)는 스마트 디스플레이(21), 스마트폰(22, 23), 스마트 전구(25), 또는 스마트 카메라(26) 등의 다양한 사용자 기기를 포함한다. 스마트 전구(25) 또는 스마트 카메라(26)는 IoT 기기 그룹이다.
주변 클라이언트(200)는 로컬 서버(100)에 사용자 기기 정보를 등록할 수 있다.
주변 클라이언트(200) 중 어느 하나의 클라이언트는 로컬 서버(100)로 사용자 기기 정보를 등록요청하고, 상기 로컬 서버(100)는 클라우드 서버(300)로 사용자 기기 정보 전송하여 저장할 수 있다.
즉, 셋톱박스또는 허브(hub)와 같은 주변 클라이언트(200) 기기들을 로컬 서버(100)에 사용자 기기 그룹으로 등록하고, 해당 사용자 기기 정보를 클라우드 서버(300)에 전송하여 재저장할 수 있다. 상기 사용자 기기 그룹 정보는 SSID(Service Set Identifier), MAC 어드레스, 또는 UUID(Universally Unique Identifier) 등이 사용될 수 있으며, 앱 실행 후 종료때까지의 세션 또는 앱이 설치된 후 삭제될 까지의 설치기간에 따라 다르게 설정되는 것이 바람직하다. 상기 사용자 기기 그룹 정보에는 디스플레이 크기 및 해상도 정보를 더 포함할 수 있다.
주변 클라이언트(200)와 로컬 서버(100)의 연결은 블루투스(Bluetooth), 비가청 사운드(ultrasound) 또는 지그비(Zigbee)와 같은 근거리 통신을 이용하여, 최초 통신 연결 및 인증을 수행할 수 있다. 이후 인증된 기기간의 UI 화면 정보 전송은 Wi-Fi 로 연결된 홈네트워크를 이용하여 가능하다.
또한 데이터 통신을 위한 주변 클라이언트(200)와 로컬 서버(100)로서의 Wi-Fi 라우터의 연결은, 최초 Wi-Fi 라우터와 연결된 스마트폰이나 셋톱박스가 Wi-Fi 연결정보를 다른 스마트기기나 IoT 기기에 전송함으로써, Wi-Fi 통신망에 새로운 사용자 기기를 추가할 수 있다. Wi-Fi 라우터가 로컬 서버(100)의 역할을 수행할 경우 셋톱박스는 주변 클라이언트(200)의 역할을 수행하게 된다.
로컬 서버(100)가 주변 클라이언트들(200)에 UI 화면정보를 각각 전송하면, 분리된 컨텐츠 애플리케이션의 UI가 여러 클라이언트들에서 나누어져 볼 수 있게 된다.
로컬 서버(100)는 컨텐츠 제공서버(400)의 컨텐츠를 수신하여 주변 클라이언트들(200)로 전송한다. 이 때 컨텐츠의 UI 화면정보는 로컬 서버(100)에 설치된 UI 배치 제어부(도 3 105 참조)에 의해 클라이언트별로 분리되어 매칭되어 전송될 수 있다.
특히 본 발명의 일 실시예에 따르면, 로컬 서버(100)에 설치된 UI 배치 제어부(105)는 상기 컨텐츠를 사용하는 애플리케이션의 앱 소스코드를 수정하여 컨텐츠의 UI 화면정보를 분리하는 것이 아니라 OS(operating system) 레벨에서 수신된 UI 화면 정보를 구성하는 UI 트리 정보를 UI 엘리먼트 그룹으로 분리하고, 렌더링하는 기능을 탑재함으로써 UI 화면정보를 분리하여 다수의 사용자의 기기에 전송할 수 있다. 로컬 서버(100)에 설치된 컨텐츠 애플리케이션이 컨텐츠 제공서버(400)로부터 수신하고, 로컬 서버는 OS 레벨에 필요한 최소한 기능을 제공하는 마이크로커널(microkernel)의 형태로 구현되어 컨텐츠의 단일 UI 정보를 복수의 UI 엘리먼트 그룹으로 분리한다. 또한 로컬 서버 또는 로컬 서버에 설치된, UI 편집 제어부의 일부의 기능을 포함하는, 응용 애플리케이션은 상기 복수의 UI 엘리먼트 그룹들을 주변 클라이언트 기기들에게 매핑하여 비디오스트리밍 방법으로 전송한다. 따라서 주변 클라이언트(200)들은 상기 로컬 서버에 설치된 컨텐츠 애플리케이션의 설치없이 UI 비디오스트림을 수신할 수 있다. 또한 로컬 서버 또는 로컬 서버에 설치된 응용 애플리케이션에서 주변 클라이언트(200)에게 매핑된 UI 엘리먼트 그룹을 비디오스트림으로 변환없이 클라이언트 기기들에게 전송할 수 있다. 이러한 경우, 클라이언트에 설치된 본 발명을 위한 사용자 어플리케이션은 UI 엘리먼트 그룹을 비디오스트림으로 변환하여 UI 화면 정보를 클라이언트 기기에 제공하게 된다.
본 발명에서는 로컬 서버가 주변 클라이언트들(200)에 UI를 용이하게 분배하여 전송하기 위해서는 OS 레벨에서 컨텐츠에 UI 트리 정보를 분리하여 가상화할 수 있는 권한 또는 기능이 필요하다. 로컬 서버(100) 또는 로컬서버에 설치된 별도의 응용 애플리케이션은 가상화된 상기 UI 트리 정보를 이용하여 주변 클라이언트들(200)과 컨텐츠 UI 화면정보를 구성하는 UI 엘리먼트 그룹을 매핑하는 UI-배치정보를 생성할 수 있다.
예를 들어 영화 컨텐츠의 영상은 스마트 디스플레이(21)로, 채팅창은 제1 스마트폰(22)으로, 영화의 자막은 제2 스마트폰(23)으로 매핑되어 각 기기로 전송될 수 있다.
따라서 본 발명의 기능은 로컬 서버에 해당되는 사용자 기기의 OS에서 컨텐츠 애플리케이션의 단일 UI 화면정보를 분리 가능한 UI 엘리먼트 그룹별로 분리한다. 이후에 로컬 서버 또는 로컬 서버에 설치된 응용 애플리케이션에서 클라이언트 기기에 해당되는 또 다른 사용자 기기들과상기 UI 엘리먼트 그룹들을 매핑하여 사용자 기기 그룹의 UI 배치정보를 생성할 수 있다. 상기 UI 배치정보는 클라우드 서버(300)에 백업되고, 백업된 UI 배치정보는 사용자별 기기 그룹의 연관된 정보로 저장될 수 있다. 사용자의 다른 클라이언트를 사용자 기기 그룹에 추가할 경우 추가된 클라이언트에 매핑될 UI 엘리먼트는 UI 배치정보를 업데이트하여 매핑할 수 있다.
상기 사용자별 기기 그룹에 다른 사용자의 클라이언트를 초대하여 포함하게 된 경우, 상기 다른 사용자의 클라이언트도 상기 UI 배치정보에 반영되어 업데이트될 수 있다. 초대된 사용자의 클라이언트에게 클라우드 서버(300)에 저장된 UI 배치정보가 공유 또는 복사되고, 추가 및 변경이 필요한 클라이언트만을 UI 배치정보에 반영하여 상기 UI 배치정보를 업데이트하거나 사용자가 선택 가능한 별도의 UI 배치정보로 저장할 수 있다.
클라우드 서버(300)에 저장된 사용자 기기 그룹 정보 및 이와 연관된 UI 배치정보는 로컬 서버(100)가 고장난 경우나, 로컬 서버의 물리적변경이 필요한 경우 사용될 수 있다. 또한 클라우드 서버(300)에 저장된 사용자의 기존 UI 배치정보를 복사 또는 수정하여 손쉽게 로컬 서버(100) 및 주변 클라이언트들의 UI 배치 정보를 수정할 수 있다. 이 때 인증에 성공한 클라이언트들이 Wi-Fi 네트워크 정보를 주변 클라이언트 및 로컬 서버에 전송함으로써 로컬 네트워크 세팅을 단순화할 수 있다.
사용자별 기기 그룹에 등록된 스마트 라이트(25)나 스마트 카메라(26)의 경우에는 일반적으로 컨텐츠 어플리케이션을 통해 사용자가 기기의 상태를 모니터링하거나 제거하게 된다. UI 엘리먼트 그룹의 일 례로서, 컨텐츠 영상이 어두운 경우 스마트 라이트의 밝게 조절하는 제어신호를 상기 UI 배치정보에 포함할 수 있고, 영화모드일 경우 스마트 라이트의 조명을 어둡게 하는 제어신호를 포함할 수 있다.
일반적으로 주변 클라이언트들(200) 중 스마트 라이트(25)나 스마트 카메라(26)는 별도의 디스플레이가 없으므로 사용자의 스마트폰(22,23)이나 스마트 디스플레이(21)로 필요한 애플리케이션(앱)을 다운로드하여 설치하여 설정하거나, 제조사의 홈페이지를 접속하여 스마트 라이트(25)나 스마트 카메라(26)의 설정이 필요하다.
이 때에 스마트 라이트(25)나 스마트 카메라(26)에 필요한 제조사별 앱을 설치해야 하고, 해당 앱은 사용자 계정과 연동되는 스마트 기기에 설치될 수 있다. 또한 스마트 라이트(25)나 스마트 카메라(26)를 제어하기 위해 서로 다른 사용자마다 동일한 작업을 수행해야 하는 불편함이 발생한다.
본 발명에서는 로컬 서버에만 필요한 컨텐츠 앱을 설치한 후, 최초 UI 배치정보를 구성한 사용자가 다른 사용자를 사용자별 기기 그룹에 초대하는 경우, 필요한 IoT 기기의 컨텐츠(조명상태, 카메라 정보, IoT 기기 정보) 정보를 로컬 서버로부터 IoT 모니터링 및 제어를 위한 UI 정보를 전송받을 수 있다. 이러한 경우 신규 사용자는 다양한 IoT 기기의 어플리케이션 설치없이 본 발명의 UI-애플리케이션 설치만으로 필요한 UI 화면을 비디오스트림으로 전송받을 수 있으므로, 사용자 클라이언트 장치의 OS(Android, iOS, Window, Linux 등)와 무관하게 비디오스트림을 수신하고 제어할 수 있다.
IoT 기기(25, 26)는 상태변화 정보를 홈네트워크로 연결된 로컬 서버(100)에 전송하거나 인터넷망으로 연결된 클라우드 서버(300)로 전송 가능하다. IoT 앱이 클라우드 서버(300)에 설치된 경우, 클라우드 서버(300)는 IoT 상태 정보 접근이 허용된 사용자에게 인터넷망을 통해 사용자에게 제공할 IoT 기기의 상태 정보를 본 발명을 통해 제공할 수 있다. 이러한 경우에는 로컬서버 및 클라우드에 설치된 IoT 앱의 컨텍스트 상태값(context status)이 업데이트되는 경우, 두 IoT 앱이 자동으로 동기화된다.
다른 실시 예로서, 스마트 라이트(25)나 스마트 카메라(26)와 같은 IoT 기기 모니터링 및 제어에 필요한 IoT 앱을 로컬 서버(100)에 설치할 수도 있다.
로컬 서버(100)는 컨텐츠에 포함된 UI 트리 정보를 이용하여 UI 엘리먼트 그룹을 주변 클라이언트(200) 별로 할당하여 매핑하는 것이 바람직하다.
로컬 서버(100)는 UI 배치정보와 주변 클라이언트들(200)의 디스플레이 크기와 해상도를 고려하여 필요한 UI 화면정보를 구성하고, 주변 클라이언트들(200)에 매핑된 UI 엘리먼트 그룹을 비디오스트림이나 이미지로 변경하여 사용자 기기로 전송한다.
상기 IoT 기기의 제어를 위해 필요한 UI 배치정보는 상기 사용자별 기기 그룹에 초대된 다른 사용자 기기에게 공유될 수 있다.
초대된 사용자 기기는 사용자 기기 그룹에 포함된 동일한 IoT 기기 모니터링 및 UI 제어 정보를 비디오스트림이나 이미지 정보로 전송받을 수 있다. 이때, 사용자 기기들이 사용하는 OS 시스템이 다른 경우에도 UI 제어정보를 비디오 스트림이나 이미지 정보로 전송받으므로, OS 시스템에 무관하게 데이터 전송이 가능한 장점이 있다.
도 2는 본 발명의 일 실시예에 따른 로컬 서버(100)가 원본 컨텐츠의 UI를 UI 트리 정보를 이용하여 UI 엘리먼트 그룹으로 분리하고, 주변 클라이언트들(21, 22)로 UI 엘리먼트 그룹을 비디오스트리밍 방법으로 전송하는 개념을 도시한 것이다.
도 2를 참조하면, 원본 컨텐츠가 컨텐츠 제공서버(400)에서 로컬서버(100)로 전송되어 주변 클라이언트(21, 22)로 전송되고 있다. 로컬 서버(100)는 원본 컨텐츠에 포함된 UI 트리 정보를 이용하여 UI 엘리먼트 그룹의 구성 및 배치 위치를 수정할 수 있다.
로컬 서버(100)는 원본 컨텐츠를 제1 UI 엘리먼트 그룹과 제2 엘리먼트 그룹으로 분할하여 각각을 스마트 디스플레이(21) 및 스마트 폰(22)에 매핑한 후, 픽셀 스트리밍으로 전송할 수 있다. 이 때 스마트 디스플레이에 전송되는 데이터는 원본 컨텐츠에 포함된 동영상으로서 로컬서버에서 디코딩되어 비디오 스트림으로 스마트 디스플레이에 전송되고, 제 2 UI 엘리먼트는 인코딩된 픽셀 스트리밍으로 스마트 폰에 전송되면, 스마트 폰에서 수신한 픽셀 스트림을 디코딩하는 경우이다. 이 때 스마트 디스플레이에서 재생되는 비디오스트림은 스마트 폰에서 사용자의 인터랙션에 따라 스마트 디스플레이의 비디오스트림의 재생 및 정지가 결정된다. 그러나 두 기기의 비디오 스트림의 재생 시간 동기화가 필요한 경우, 스마트 폰에서 비디오스트림이 디코딩되는 시간을 기준으로 스마트 디스플레이의 비디오스트림의 디코딩 시간을 동기화되어야 한다.
로컬 서버(100)에는 도 3에 도시된 바와 같이 UI 배치 제어부(105)를 포함하고, 스마트 디스플레이(21) 및 스마트 폰(22)에 UI 엘리먼트 디스플레이부(320) 내지 UI 편집부(350)를 포함하고, 두 개 이상의 컨텐츠 애플리케이션에서 제공하는 UI 엘리먼트 그룹정보로 UI 배치정보 생성 및 저장을 통해 다양한 컨텐츠 애플리케이션의 UI 화면으로 구성된 엘리먼트 그룹을 확장된 UI 기능을 제공할 수 있다.
도 3은 본 발명의 바람직한 일 실시예에 따른 로컬 서버와 클라이언트의 구성도이다.
도 3을 참조하면, 본 실시예에 따른 로컬 서버(100)는 수신부(110), UI 배치 제어부(105) 및 전송부(190)로 구성된다. UI 배치 제어부(105)는 컨텐츠 앱 실행부(120), UI 엘리먼트 분리부(130), UI 배치정보 생성부(140), 디스플레이 요청부(150), UI 엘리먼트 전송부(160), 가상디스플레이 생성부(170), UI 제어정보 변환부(180)로 구성된다. 로컬 서버(100)에 설치되는 UI 애플리케이션은 UI 배치 제어부(105) 구성의 전부 또는 일부를 포함하여 구성된다. 로컬 서버(100)와 클라이언트 A,B(21, 22)는 사용자 기기로 표현될 수 있다.
한편, 클라이언트 A, B(21,22)는 앱 선택부(300, 301), 전송부(310, 311), UI 엘리먼트 디스플레이부(320, 321), 가상디스플레이 생성부(330, 331), UI 제어정보 입력부(340, 341), UI 편집부(350, 351), 및 수신부(360, 361)로 구성된다.
로컬 서버(100)는 클라이언트 A와 B(21, 22)로 UI 화면정보를 비디오 스트리밍으로 전송하거나 UI 엘리먼트 그룹을 전송하고, 클라이언트로부터 사용자 인터랙션에 의한 UI 제어정보를 수신하여 컨텐츠 앱의 제어신호를 생성한다.
클라이언트 B(22)는 UI 배치정보를 변경하고자 하는 컨텐츠 앱을 선택하여 로컬 서버(100)로 전송하고, 변경된 UI 배치정보에 따른 UI 화면정보를 디스플레이한다.
클라이언트 A(21)는 클라이언트 B(22)의 UI 배치정보 변경을 위해 추가된 클라이언트로서, 컨텐츠 앱의 UI 엘리먼트 그룹을 로컬 서버(100)로부터 수신하여 디스플레이한다.
이하, 로컬 서버(100)의 구성을 상세히 살펴보기로 한다.
수신부(110)는 클라이언트 B(22)로부터 UI 배치정보를 변경하고자 하는 컨텐츠 앱의 선택여부를 수신한다. 이때, 클라이언트 B(22)가 선택할 수 있는 컨텐츠 앱의 개수는 2개 이상이어도 가능하다.
UI 배치 제어부(105)는 컨텐츠 앱의 UI 화면정보를 UI 엘리먼트 그룹으로 분리하고, 분리된 UI 엘리먼트 그룹을 클라이언트별로 매핑하여, UI 배치정보를 생성한다.
컨텐츠 앱 실행부(120)는 클라이언트 B(22)가 선택한 컨텐츠 앱을 실행한다. 컨텐츠 앱의 실행은 로컬 서버(100)에서 픽셀 스트리밍으로 UI 정보를 전송받는 경우에는 클라이언트 A, B(21,22)에서는 컨텐츠 앱의 실행이 불필요하다.
컨텐츠 앱 실행부(120)는 IoT 앱 실행부, NFT 컨텐츠와 결합되는 UI 앱 실행부로 대체될 수 있다.
UI 엘리먼트 분리부(130)는 컨텐츠 앱 실행부(120)에서 실행된 컨텐츠 앱에서 제공하는 UI를 복수의 UI 엘리먼트 그룹으로 분리한다.
UI 배치정보 생성부(140)는 주변 클라이언트들과 상기 복수의 UI 엘리먼트 그룹을 각각 매핑하여 UI 배치정보를 생성한다.
UI 배치정보 생성부(140)는 로컬 서버(100)를 기준으로 주변 클라이언트와의 물리적 거리 또는 위치한 방향에 의해 UI 배치정보가 결정될 수 있다. 예를 들어, 로컬 서버(100)로부터 상대적으로 먼 클라이언트에 디스플레이 크기가 큰 UI 엘리먼트 그룹을 배치하고, 상대적으로 가까운 클라이언트에 문자입력 디스플레이와 같은 디스플레이 크기가 작은 UI 엘리먼트 그룹을 배치를 자동으로 결정할 수 있다.
디스플레이 요청부(150)는 클라이언트 A(21) 또는 클라이언트 B(22)에게 UI 엘리먼트 디스플레이를 요청한다. 로컬 서버(100)가 클라이언트 A(21)로 UI 엘리먼트 디스플레이 요청시 푸시 메시지를 통해 UI 엘리먼트 디스플레이부(320)를 실행하도록 할 수 있다. 디스플레이 요청부(150)는 클라이언트가 UI 엘리먼트 그룹을 수신하게 되면, 수신된 UI 엘리먼트 그룹을 디스플레이할 수 있도록 클라이언트에서 준비할 수 있도록 한다.
UI 엘리먼트 전송부(160)는 상기 UI 배치정보를 이용하여 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 상기 주변 클라이언트들로 전송하거나, 상기 주변 클라이언트들 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송한다.
로컬 서버(100)가 UI 엘리먼트 그룹을 비디오스트림으로 전송하는 경우 클라이언트 A(21)와 클라이언트 B(22)는 상기 컨텐츠 애플리케이션이 설치되어 실행될 필요가 없다.
가상디스플레이 생성부(170)는 UI 배치정보 생성부(140)가 생성한 UI 배치정보를 이용하여 가상 디스플레이 정보를 생성한다.
UI 제어정보 변환부(180)는 클라이언트 A, B(21, 22)로부터 UI 제어정보를 수신하면, 수신된 UI 제어정보를 컨텐츠 앱의 제어신호로 변환한다.
전송부(190)는 디스플레이 요청부(150)의 디스플레이 요청이나 UI 엘리먼트 전송부(160)의 UI 엘리먼트 그룹 전송 등을 수행한다.
이하 클라이언트 A, B(21,22)의 구성을 상세히 살펴보기로 한다.
클라이언트 A(21)와 클라이언트 B(22)의 구성은 동일하므로, 클라이언트 A(21)를 중심으로 설명하기로 한다.
앱 선택부(300)는 UI 화면정보를 변형할 컨텐츠 앱을 선택한다. 이때, 상기 선택의 결과 컨텐츠 앱이 실행되어야 할 필요는 없다.
전송부(310)는 앱 선택부(300)가 어떠한 컨텐츠 앱을 선택하였는지 사용자 인터랙션 정보를 로컬 서버(100)로 전송하고, UI 제어정보 입력부(341)가 입력받은 UI 제어정보를 로컬 서버(100)로 전송한다.
UI 엘리먼트 디스플레이부(320)는 로컬 서버(100)의 디스플레이 요청부(150)의 요청에 의해 클라이언트 A(21)에서 실행된다. UI 엘리먼트 디스플레이부(320)가 클라이언트 A(21)에서 실행되고 있는 상태에서 UI 엘리먼트 그룹을 수신하거나 UI 엘리먼트 비디오 스트리밍을 수신하는 것이 바람직하다.
가상디스플레이 생성부(330)는 로컬 서버(100)로부터 수신한 UI 엘리먼트 그룹을 렌더링하여 그래픽 버퍼에 저장한다.
UI 제어정보 입력부(340)는 UI 제어정보를 터치스크린, 키보드, 음성, 그림 등을 통해 입력받는다. 그림 및 음성 등 상대적으로 데이터 사이즈가 큰 경우에는 별도의 저장 서버에 원본 데이터를 전송하고, 저장공간의 정보를 웹 URL 로 변경하여 전송할 수 있다.
UI 편집부(350, 351)는 컨텐츠 앱의 UI 엘리먼트 그룹을 적어도 하나 이상 선택하고, 상기 선택된 UI 엘리먼트 그룹을 디스플레이할 클라이언트를 선택하여 UI 배치정보를 변경할 수 있다.
수신부(360)는 로컬 서버(100)로부터 적어도 하나 이상의 UI 엘리먼트 그룹을 직접 수신하거나 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 수신한다.
도 4는 본 발명의 일 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 도시한 흐름도이다.
도 4를 참조하면, 본 실시예에 따른 UI 화면 정보를 전송하는 방법은 도 3에 도시된 로컬 서버와 클라이언트에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 로컬 서버와 클라이언트에 관하여 이상에서 기술된 내용은 본 실시예에 따른 UI 화면 정보를 전송하는 방법에도 적용된다.
도 4를 참조하면, 클라이언트 A(21), 클라이언트 B(22), 및 로컬 서버(100)는 홈 네트워크로 연결되어 있고, HTTP 기반 웹 API (REST 서비스 또는 RPC(remote procedure calls) 메커니즘), TCP/IP 프로토콜 이용하여 상호 호출 가능하다. 구체적인 예로 컨텐츠 앱의 동기화는 REST API를, 기기간의 비디오스트리밍은 RPC 를, 기기간 사용자 인터랙션에 따른 제어정보 전달에는 TCP/IP 프로토콜을 적용할 수 있다.
400 단계에서 로컬 서버(100)는 클라이언트 B(22)로부터 사용자의 컨텐츠 앱의 선택에 따른 UI 제어정보를 수신한다.
클라이언트 B(22)는 수신한 비디오스트림에 대해 사용자가 반응한 키보드 입력 및 터치스크린 입력정보를 앱 선택부(301)를 통해 사용자 UI 제어 정보를 로컬서버에 전달하면, 로컬서버는 상기 UI 제어 정보를 컨텐츠 애플리케이션에게 전달한다. 본 발명에서는 하나의 컨텐츠 애플리케이션을 중심으로 설명하나 앱 선택부는 복수의 컨텐츠 애플리케이션을 선택할 수 있다. 이 경우 로컬 서버(100)의 UI 배치 제어부(105)는 복수의 컨텐츠 애플리케이션 UI의 UI 엘리먼트 그룹별로 클라이언트를 매칭하여 UI를 분리할 수 있다. 컨텐츠 애플리케이션이란, 원본 컨텐츠를 디스플레이하는데 사용되는 애플리케이션으로서, 예를 들어, 유튜브(YouTube) 또는 트위치(Twitch)같은 동영상 애플리케이션이 될 수 있다.
한편, 컨텐츠 애플리케이션이 클라이언트 B(22)에 설치되어 있지 않은 경우에도 로컬 서버(100)로부터 UI 엘리먼트 그룹을 비디오스트리밍으로 수신하거나 UI 엘리먼트 그룹 정보를 수신한 후, 클라이언트에서 렌더링하여 디스플레이할 수 있다.
410 단계에서 로컬 서버(100)는 400 단계에서 선택된 컨텐츠 앱을 실행한다.
420 단계에서 로컬 서버(100)는 실행된 컨텐츠 앱의 UI를 복수의 UI 엘리먼트 그룹으로 분리한다. 로컬 서버(100)에 설치된 UI 배치 제어부(105)를 이용하여 로컬 서버(100)에서 실행된 컨텐츠 애플리케이션에서 제공하는 UI를 복수의 UI 엘리먼트로 분리할 수 있다. 여기에서 컨텐츠 앱의 단일 UI를 복수의 UI 엘리먼트 그룹으로 분리 및 UI 배치정보 생성 및 수정 기능은 해당 권리를 보유한 사용자의 특정 기기만 가능하게 권한을 부여함으로써 시스템의 보안 기능을 강화할 수 있다.
430 단계에서 로컬 서버(100)는 주변 클라이언트들(21, 22)과 복수의 UI 엘리먼트 그룹을 각각 매핑하여 UI 배치정보를 생성한다.
클라이언트 B(22)가 400 단계에서 컨텐츠 앱을 선택시 주변 클라이언트들 중에서 어떤 클라이언트와 어떤 UI 엘리먼트 그룹을 매핑하여 디스플레이를 할 것인지 선택하는 것이 바람직하다.
440 단계에서 로컬 서버(100)는 클라이언트 A(21)로 UI 엘리먼트 그룹의 디스플레이를 요청한다.
440 단계에서의 디스플레이 요청은 440 단계 이전에 요청이 되어도 무관하다. 로컬 서버(100)가 클라이언트 A(21)로 UI 엘리먼트 그룹 디스플레이 요청시 본 발명의 사용자 앱으로 푸시 메시지를 전달하여 디스플레이부(320)를 실행하도록 할 수 있다.
450 단계에서 UI 엘리먼트 그룹 디스플레이를 요청받은 클라이언트 A(21)의 사용자 앱은 UI 엘리먼트 그룹 디스플레이부(320)를 실행한다.
UI 엘리먼트 그룹 디스플레이부(320)를 실행하게 되면, 472 단계에서 로컬 서버(100)로부터 수신되는 비디오 스트리밍을 수신하여 디스플레이할 수 있게 된다.
460 단계에서 로컬 서버(100)는 430 단계에서 생성된 UI 배치정보를 이용하여 가상 디스플레이 정보를 생성한다. 가상 디스플레이 정보란, UI 엘리먼트 그룹정보를 그래픽 버퍼에서 렌더링을 수행하기 위해 저장되는 정보를 의미한다. 따라서 그래픽 버퍼에서 가상디스플레이 정보를 이용하여 UI 배치 정보를 반영하여 비디오스트림을 각 기기에 전송할 수 있다.
471 단계와 472 단계에서 로컬 서버(100)는 상기 UI 배치정보를 이용하여 클라이언트 A(21)와 클라이언트 B(22) 각각에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송한다. 로컬 서버(100)가 UI 엘리먼트 그룹을 비디오스트림으로 전송하기 때문에 클라이언트 A(21)와 클라이언트 B(22)는 상기 컨텐츠 애플리케이션이 설치되어 실행될 필요가 없다.
481 단계와 482 단계에서 로컬 서버(100)는 클라이언트 A(21)와 클라이언트 B(22)로부터 UI 제어정보를 수신한다.
490 단계에서 로컬 서버(100)는 수신된 UI 제어정보를 컨텐츠 앱의 제어신호로 변환한다.
사용자가 UI 제어정보를 클라이언트 A(21)와 클라이언트 B(22)의 터치스크린, 키보드, 음성 등을 통해 입력하면, 상기 UI 제어정보는 TCP/IP 프로토 또는 웹 API 통해 로컬서버로 전송될 수 있다.
로컬 서버(100)가 클라이언트 A(21)와 클라이언트 B(22)로부터 수신한 UI 제어정보는 로컬 서버(100)가 갖고 있는 각 클라이언트의 디스플레이 크기 및 해상도 정보를 고려하여 컨텐츠 앱의 제어신호로 변환할 수 있다. 또한 클라이언트 기기에 설치된 사용자 앱에서 수신한 비디오스트림과 함께 별도의 UI를 제공하여 사용자 제어정보를 로컬 서버에 전송할 수 있다. 이러한 경우에는 클라이언트 기기에서 사용자 제어신호를 변환하여 로컬 서버로 전송하여야 한다.
예를 들어, 로컬 서버(100)가 클라이언트 A(21)의 디스플레이 상에서 사용자가 입력한 좌표값을 수신한 경우, 수신된 좌표값이 컨텐츠 앱 UI의 어떠한 구성요소에 대응하는지 디스플레이 크기 및 해상도 정보를 고려한 판단이 필요하다. 상기 판단은 클라이언트 A(21)에서 이루어질 수도 있고, 로컬 서버(100)에서 이루어질 수도 있다. 로컬 서버(100)는 클라이언트 A(21)의 디스플레이 상에서 사용자가 입력한 좌표값을 수신하더라도 클라이언트 A(21)의 화면 크기와 해상도 정보를 갖고 있으므로, 컨텐츠 앱의 어느 부분 좌표값인지 변환할 수 있다.
또한, UI 제어정보는 컨텐츠 제어정보와 UI 배치 편집 정보를 포함할 수 있으며, 컨텐츠 제어와 UI 배치 편집은 다음과 같은 방법으로 이루어진다.
일 례로서, 로컬 서버(100)와 클라이언트(21, 22)에 동일한 컨텐츠 앱이 설치되어 있는 경우, 클라이언트(21, 22)에서 선택된 UI 배치 및 편집 결과의 컨텍스트 상태값(또는 컨텐츠 앱의 파라미터 설정값)을 로컬 서버(100)로 전송할 수 있다.
로컬 서버(100)는 컨텍스트 상태값 수집을 위해 필요한 클라이언트(21, 22)의 함수를 호출할 수 있는 권한을 가지고 수행한다.
이 경우, 로컬 서버(100)에서 UI 배치 편집을 위한 디스플레이 데이터를 클라이언트(21, 22)로 전송하는 것은 불필요하고, 클라이언트(21, 22)에서 화면 정보를 생성하고 UI 편집 제공이 완료되면 컨텍스트 상태값을 변경하여 로컬 서버(100)의 컨텐츠 앱에 제공하는 것이 바람직하다.
다른 예로서, 로컬 서버(100)에만 컨텐츠 앱이 설치된 경우는 UI 배치 편집에 필요한 정보를 로컬 서버(100)에서 클라이언트(21, 22)로 비디오스트림으로 제공하는 것이 바람직하다. 로컬 서버(100)가 전송한 UI 배치 화면을 클라이언트(21, 22)에서 수신하고, 클라이언트(21, 22)에서의 사용자의 터치 스크린 반응 결과를 로컬 서버(100)로 전송하면, 로컬 서버(100)는 터치 스크린 반응 결과를 사용자 인터랙션 정보를 컨텐츠 앱에 전달한다. 이후, 컨텐츠 앱의 단일 UI의 정보가 업데이트 되면, 로컬서버는 업데이트된 컨텐츠 앱의 UI 정보를 UI 배치 정보를 반영하여 비디오스트림으로 전송한다. 이러한 과정을 반복하여 사용자는 UI 배치 편집 작업을 수행할 수 있다.
또한 클라이언트(21, 22)의 OS 와 무관하게 비디오 스트림 전송이 가능하므로, 클라이언트(21, 22)에서는 터치 스크린 또는 터치패드의 반응정보로 사용자의 제어 의도 분석하고 해당 결과를 로컬 서버(100)로 전송할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 도시한 흐름도이다.
도 5를 참조하면, 본 실시예에 따른 UI 화면 정보를 전송하는 방법은 도 3에 도시된 로컬 서버와 클라이언트에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 로컬 서버와 클라이언트에 관하여 이상에서 기술된 내용은 본 실시예에 따른 UI 화면 정보를 전송하는 방법에도 적용된다.
도 5에 도시된 로컬 서버(100)가 주변 클라이언트들(21, 22)로 UI 화면 정보를 전송하는 방법과 도 4에 도시된 방법의 차이는 클라이언트 A(21)가 로컬 서버(100)로부터 UI 엘리먼트 그룹을 수신하는 것이다.
클라이언트 A(21)와 클라이언트 B(22)는 로컬 서버(100)와 홈네트워크로 연결되어 있고, HTTP 기반 웹 API(REST 서비스 또는 RPC 메커니즘)로 상호 호출 가능하다.
400 단계 내지 460 단계는 도 4에 도시된 바와 같다.
471 단계에서 로컬 서버(100)는 상기 UI 배치정보를 이용하여 클라이언트 B(22)에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송한다.
한편, 473 단계에서 로컬 서버(100)는 상기 UI 배치정보를 이용하여 클라이언트 A(21)에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 전송한다.
475 단계에서는 로컬 서버(100)가 UI 엘리먼트 그룹을 전송하기 때문에 가상 디스플레이 생성부(330)가 UI 엘리먼트 그룹을 이용하여 가상 디스플레이 정보를 생성한다.
한편, 클라이언트 A(21)는 수신한 UI 엘리먼트 그룹을 이용하여 가상 디스플레이 정보를 생성하기 때문에, 클라이언트 A(21)는 또 다른 클라이언트에게 픽셀 스트리밍을 수행하는 서브 로컬 서버의 기능을 가질 수 있다. 클라이언트가 서브 로컬 서버의 기능을 갖는 예는 도 7에서 상세히 설명하기로 한다.
481 단계와 482 단계에서 로컬 서버(100)는 클라이언트 A(21)와 클라이언트 B(22)로부터 UI 제어정보를 수신한다.
490 단계에서 로컬 서버(100)는 수신된 UI 제어정보를 컨텐츠 앱의 제어신호로 변환한다. 로컬 서버(100)에서는 수신된 UI 제어정보의 사용자 인터랙션을 분석하여, 로컬 서버(100)에서 실행 중인 컨텐츠 앱에 사용자 인터랙션을 제어신호로 변환하여 입력한다.
도 6은 본 발명의 또 다른 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송하는 방법을 도시한 흐름도이다.
도 6에 도시된 로컬 서버(100)가 주변 클라이언트들(200)로 UI 화면 정보를 전송하는 방법과 도 5에 도시된 방법의 차이는 로컬 서버(100)로부터 클라이언트 A(21)와 클라이언트 B(22) 모두 UI 엘리먼트 그룹을 수신하는 것이다.
클라이언트 A(21)와 클라이인트 B(22) 모두 UI 엘리먼트 그룹을 수신하여 가상 디스플레이 정보를 생성하기 때문에, 클라이언트(21, 22)는 또 다른 클라이언트에게 픽셀 스트리밍을 수행하는 서브 로컬 서버의 기능을 가질 수 있다
400 단계 내지 440 단계는 도 4에 도시된 바와 같다.
도 6에 도시된 441 단계에서는 440 단계에서와 마찬가지로 로컬 서버(100)가 클라이언트 B(22)로 UI 엘리먼트 그룹 디스플레이를 요청한다.
450 단계와 451 단계에서 UI 엘리먼트 그룹 디스플레이를 요청받은 클라이언트 A(21)와 클라이언트 B(22)는 UI 엘리먼트 디스플레이부(320, 321)를 각각 실행한다.
460 단계에서 로컬 서버(100)는 430 단계에서 생성된 UI 배치정보를 이용하여 가상 디스플레이 정보를 생성한다.
한편, 클라이언트(21, 22)가 각각 UI 엘리먼트 디스플레이부(320, 321)를 실행하게 되면, 473 단계와 474 단계에서 로컬 서버(100)로부터 UI 엘리먼트 그룹을 수신할 수 있게 된다.
460 단계에서 로컬 서버(100)가 가상 디스플레이 정보를 생성하는 것과 마찬가지로 475 단계와 476 단계에서 클라이언트 A(21)와 클라이언트 B(22)는 로컬 서버(100)로부터 수신한 UI 엘리먼트 그룹을 이용하여 가상 디스플레이 정보를 생성한다. 이러한 경우, 클라이언트 A/B는 생성된 가상 디스플레이 정보를 이용하여 제1의 UI 엘리먼트는 자기자신에게 비디오스트림으로 전송하고, 제2의 UI 엘리먼트는 또 다른 사용자 기기에서 비디오스트림으로 전송할 수 있다.
481 단계와 482 단계에서 로컬 서버(100)는 클라이언트 A(21)와 클라이언트 B(22)로부터 UI 제어정보를 수신한다.
490 단계에서 로컬 서버(100)는 수신된 UI 제어정보를 컨텐츠 앱의 제어신호로 변환한다.
한편, 로컬 서버(100)의 동작에 오류가 발생한 경우, 복원력 있는 시스템 (resilient system)을 구축하기 위해 클라이언트 A(21) 또는 클라이언트 B(22)를 로컬 서버(100)와 동일한 권한을 갖는 로컬 서버 후보로 정의할 수 있다.
로컬 서버(100)가 동작하는 상황에서는 로컬 서버 후보로 정의된 클라이언트에 로컬서버의 UI 배치정보 생성부(140)가 웹 RPC(Remote Procedure Call) 또는 REST 서비스 방법으로 동기화되고, 로컬 서버에 설치된 컨텐츠 앱이 클라이언트에도 설치되어야 하며, 웹 API 방법으로 로컬 서버(100)와 클라이어트의 컨텐츠 앱이 동기화되어야 한다.
로컬 서버(100)의 동작에 오류가 발생한 경우, 로컬 서버 권한을 가진 로컬 서버 후보 클라이언트는 동기화된 구성요소들의 정보를 이용하여 로컬 서버 역할을 수행할 수 있다.
한편, 로컬 서버(100)의 OS 시스템과 클라이언트의 OS가 다른 경우에는 OS 별 트랜스포트 레이어(Transport layer)를 이용하여 매핑된 UI 엘리먼트 그룹 정보를 클라이언트 기기의 본 발명을 위한 사용자 앱에 전달하고, 이후 UI 엘리먼트 그룹을 이용, 클라이언트 기기에서 가상디스플레이 생성 및 비디오스트리밍을 수행할 수 있다.
도 7은 본 발명의 실시예에 따른 로컬 서버가 주변 클라이언트들로 UI 화면 정보를 전송시 릴레이 방법으로 UI 엘리먼트 그룹을 전송하는 개념을 도시한 것이다.
도 7을 참조하면, 로컬 서버는 원본 컨텐츠에 포함된 UI 트리 정보를 추출하고, 단일 UI 가상화를 한 후, UI 트리 정보를 구성하는 UI 엘리먼트 그룹들을 그룹 1과 그룹 2로 분리한다.
그룹 1로 분리된 UI 엘리먼트 그룹들은 제1 그래픽 버퍼의 픽셀 데이터로 저장되고, 그룹 2로 분리된 UI 엘리먼트 그룹들은 픽셀 데이터로 변환없이 저장된다. 이때 로컬 서버는 그룹 1과 그룹 2로 분리된 UI 엘리먼트 그룹들중 제1 UI 엘리먼트 그룹은 렌더링하여 전송되고, 제 2 UI 엘리먼트 그룹은 렌더링없이 클라이언트 A 기기에 전송하면, 클라이언트 A 기기는 수신한 제2 UI 엘리먼트 그룹을 클라이언트들들(B, C) 기기에 포워딩한다. 클라이언트들(B, C) 에서는 제2 UI 엘리먼트 그룹을 스스로 렌더링하여 UI 화면을 제공함으로써 기기간의 UI 화면 정보를 포워딩하여 제공할 수 있다.
또한, 그룹 2의 클라이언트들(B, C)은 UI 제어정보를 생성하여 클라이언트 A로 전송하고, 클라이언트 A는 자신의 UI 제어정보와 클라이언트 B, C로부터 수신한 제어정보를 로컬 서버로 전송할 수 있다. 여기에서 UI 엘리먼트 정보에 로컬서버와 포워딩 클라이언트를 구별한 정보가 포함된 경우, 클라이언트 B, C의 UI 제어정보를 클라이언트 A를 거치지 않고, 로컬서버로 직접 전송되도록 본 발명의 사용자 앱을 구성할 수 있다.
도 8은 본 발명의 실시예에 따른 로컬 서버가 도 7에 도시된 UI 트리정보를 분할하여 클라이언트로 전송하는 방법을 도시한 흐름도이다.
도 8을 참조하면, 본 실시예에 따른 UI 트리정보를 분할하여 클라이언트로 전송하는 방법은 도 3에 도시된 로컬 서버와 클라이언트에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 로컬 서버와 클라이언트에 관하여 이상에서 기술된 내용은 본 실시예에 따른 UI 화면 정보를 전송하는 방법에도 적용된다.
800 단계에서 로컬 서버(100)는 컨텐츠에 포함된 UI 트리 정보를 클라이언트의 개수를 고려하여 분할한다.
810 단계에서 로컬 서버(100)는 단일 UI 트리를 가상화한다. 가상화의 의미는 컨텐츠 어플리케이션에서 사용자 기기에 UI 화면 정보를 단일 UI 트리로 관리하는 것을, OS 레벨에서 단일 UI 트리를 UI 엘리먼트 그룹으로 분리된 UI 그룹으로 관리하는 것을 의미한다. 따라서 가상화의 주요 기능은 다수의 사용자 기기에 전송할 분리된 UI 화면 정보를 UI 그룹 정보로 관리하는 것으로서, 다수의 UI 그룹으로 분리되어 다수의 기기에 전송된 UI 화면 정보에 대해 사용자 인터렉션 정보를 수집하여 단일 UI 트리로 관리되는 컨텐츠 어플리케이션에 전송함으로써 UI 트리 가상화에 따른 오동작을 방지하는 것이다.
따라서 오동작 방지를 위해서 분리된 UI 엘리먼트 그룹의 주요 변수값의 업데이트 주기의 동기화가 필요하고, 일반적으로 사용자 인터렉션 정보의 업데이트는 일정 업데이트 주기내에서 UI 엘리먼트 그룹의 주요 기능의 변수값이 변경된 경우, 컨텐츠 어플리케이션에 사용자 인터렉션 정보를 제공한다.
820 단계에서 로컬 서버(100)는 클라이언트 A(21)로부터 화면 해상도를 수신한다.
830 단계에서 로컬 서버(100)는 수신된 화면 해상도와 동일한 해상도를 갖는 그래픽 버퍼(예를 들면, 가상 디스플레이)를 생성한다.
840 단계에서 로컬 서버(100)는 800 단계에서 분할된 UI 트리정보를 클라이언트에 대응하는 그래픽 버퍼에 렌더링한다.
850 단계에서 로컬 서버(100)는 그래픽 버퍼에 저장된 픽셀 데이터를 인코딩하여 대응하는 클라이언트로 송신한다.
860 단계에서 클라이언트 A(21)는 수신한 픽셀 데이터를 비디오스트림으로 디코딩하여 렌더링한다.
도 9는 본 발명의 실시예에 따른 클라이언트가 컨텐츠 앱의 UI를 편집하는 방법의 흐름을 도시한 것이다.
도 9를 참조하면, 본 실시예에 따른 클라이언트가 컨텐츠 앱의 UI를 편집하는 방법은 도 3에 도시된 로컬 서버와 클라이언트에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 로컬 서버와 클라이언트에 관하여 이상에서 기술된 내용은 본 실시예에 따른 UI 화면 정보를 전송하는 방법에도 적용된다.
900 단계에서 클라이언트 A(21)는 컨텐츠 앱을 선택여부를 로컬 서버(100)로 전송한다.
910 단계에서 로컬 서버(100)는 선택된 컨텐츠 앱을 실행한다. 만일 선택된 컨텐츠 앱이 없는 경우, 클라우드 서버(300)를 통해 다운받아 실행할 수 있다.
920 단계에서 클라이언트 A(21)는 로컬 서버(100)로부터 컨텐츠 앱의 UI를 비디오 스트리밍하여 수신한다.
930 단계에서 클라이언트 A(21)는 수신된 컨텐츠 앱 UI를 디스플레이한다.
940 단계에서 클라이언트 A(21)는 컨텐츠 앱의 UI 설정모드를 실행한다.
950 단계에서 클라이언트 A(21)는 컨텐츠 앱의 UI 엘리먼트 그룹을 적어도 하나 이상 선택하고, 상기 선택된 UI 엘리먼트 그룹을 디스플레이할 클라이언트를 선택한다.
960 단계에서 클라이언트 A(21)는 선택된 UI 엘리먼트 그룹과 상기 선택된 UI 엘리먼트 그룹이 디스플레이를 위해 매칭된 클라이언트 정보가 포함된 UI 배치정보를 로컬 서버(100)로 전송한다.
970 단계에서 로컬 서버(100)는 상기 UI 배치정보를 참조하여 UI 엘리먼트 그룹이 디스플레이되는 것으로 매칭된 클라이언트로 상기 UI 엘리먼트 그룹을 전송한다.
도 10은 본 발명의 다른 실시예에 따른 로컬 서버가 OS 레벨에서 클라이언트 기기에게 IoT 상태정보를 전송하는 방법의 흐름을 도시한 것이다.
도 10을 참조하면, 본 실시예에 따른 클라이언트로 IoT 상태정보를 전송하는 방법은 도 3에 도시된 로컬 서버와 클라이언트에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 로컬 서버와 클라이언트에 관하여 이상에서 기술된 내용은 본 실시예에 따른 IoT 상태정보를 전송하는 방법에도 적용된다.
1000 단계에서 로컬 서버(100)는 클라이언트 A(21)로부터 사용자가 IoT IoT 상태정보 수신하기 위해 선택한 IoT 어플리케이션의 정보를 수신한다. 클라이언트 A(21)에는 선택가능한 IoT 애플리케이션이 리스팅되고, 사용자가 어느 하나의 IoT 애플리케이션을 선택하면, 로컬 서버(100)는 어떤 IoT 애플리케이션이 선택되었는지를 사용자 UI 제어 정보로 수신하게 된다.
1010 단계에서 로컬 서버(100)는 선택된 IoT 애플리케이션을 실행한다. 1000 단계에서 선택된 IoT 애플리케이션이 설치되어 있지 않은 경우 IoT 기기의 클라우드 서버(300)를 통해 IoT 애플리케이션를 다운받을 수 있다.
1020 단계에서 로컬 서버(100)는 실행된 IoT 애플리케이션의 UI를 복수의 UI 엘리먼트 그룹으로 분리한다.
1030 단계에서 로컬 서버(100)는 상기 분리된 복수의 UI 엘리먼트 그룹을 이용하여 UI 배치정보를 생성한다.
1040 단계에서 로컬 서버(100)는 상기 생성된 UI 배치정보를 이용하여 가상디스플레이 정보를 생성한다.
1050 단계에서 로컬 서버(100)는 상기 가상 디스플레이 정보를 클라이언트 A(21)로 비디오 스트리밍으로 송신하거나 클라이언트 기기에 매핑된 UI 엘리먼트 그룹을 송신할 수 있다.
1060 단계에서 로컬 서버(100)는 상기 클라이언트 A(21)의 사용자 앱으로 부터 UI 제어정보를 수신한다.
1070 단계에서 로컬 서버(100)는 상기 수신한 UI 제어정보를 IoT 애플리케이션의 제어신호로 변환한다.
1071 단계에서 로컬 서버(100)는 클라우드 또는 홈 네트워크를 통해서 IoT 제어신호를 IoT 장치(25)로 전송한다. 사용자 기기가 IoT 기기의 허브 (hub)의 역할을 수행하는 경우에는 지그비/와이파이(Zigbee/Wi-Fi)를 이용하는 홈네트워크를 통해 IoT 장치(25)를 제어할 수 있다.
한편, 로컬 서버(100)에 설치된 IoT 앱이 IoT 제어신호를 IoT 클라우드 서버로 전송하는 경우에는, IoT 클라우드 서버는 IoT 장치(25)에 고유하게 매핑된 IP Address 정보를 참조하여 TCP/IP 통신방법으로 IoT 허브를 통해 IoT 장치에 IoT 제어신호를 전달한다.
1072 단계에서 로컬 서버(100)의 IoT 앱은 IoT 장치(25)로부터 또는 IoT 클라우드 서버를 통해 IoT 상태정보를 수신한다.
1073 단계에서 로컬 서버(100)는 클라이언트 A(21)의 사용자 앱에게 상기 IoT 상태정보를 비디오스트림이나 UI 엘러먼트 그룹 정보로 전송한다.
도 11은 본 발명의 또 다른 실시예에 따른 클라우드 서버가 클라이언트기기에게 IoT 상태정보를 전송하는 방법의 흐름을 도시한 것이다.
도 11을 참조하면, 본 실시예에 따른 클라이언트로 IoT 상태정보를 전송하는 방법은 도 3에 도시된 로컬 서버와 클라이언트의 사용자 에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 로컬 서버와 클라이언트의 사용자 앱에 관하여 이상에서 기술된 내용은 본 실시예에 따른 IoT 상태정보를 전송하는 방법에도 적용된다.
도 11은 홈 네트워크 외부에 있는 클라이언트 A(21)가 클라우드 서버(300)를 통해 IoT 상태정보를 수신하는 것이 도 10과의 차이점이다.
도 11에서는 IoT 장치의 원격제어를 위해 클라우드 서버(300) 및 로컬 서버(100)의 UI 가상화 정보, UI 배치정보 및 이에 매핑된 사용자 기기정보 등이 웹 API(Web API)를 통해 동기화되는 것이 바람직하다.
1100 단계에서 클라우드 서버(300)는 클라이언트 A(21)로부터 사용자가 IoT 애플리케이션 선택하는 사용자 제어정보를 수신한다.
1110 단계에 클라우드 서버(300)는사용자 기기 그룹정보에서 클라이언트 A(21) 기기가 등록된 사용자 기기인지 여부를 판단한다.
1120 단계에서 클라우드 서버(300)가 판단한 결과 클라이언트 A(21)가 등록된 사용자 기기인 경우, 로컬 서버는(100)는 클라우드 서버(300) 로 부터 클라이언트 A(21)기기의 사용자가 선택한 IoT 애플리케이션 정보를 수신한다.
1130 단계에서 로컬 서버(100)는 상기 선택된 IoT 애플리케이션을 실행한다.
1140 단계에서 로컬 서버(100)는 실행된 IoT 애플리케이션의 UI를 OS 레벨에서 복수의 UI 엘리먼트 그룹으로 분리한다.
1150 단계에서 로컬 서버(100)는 상기 분리된 복수의 UI 엘리먼트 그룹을 이용하여 UI 배치정보를 생성한다. 또한 로컬 서버의 업데이트된 UI 배치정보를 클라우드 서버로 전송하여, 두 기기의 UI 배치정보를 동기화한다.
1160 단계에서 클라우드 서버(300)는 로컬 서버의 IoT 앱과 동기화된 클라우드 서버의 IoT 앱의 UI를 상기 생성된 UI 배치정보를 이용하여 가상디스플레이 정보를 생성한다.
1170 단계에서 클라우드 서버(300)는 상기 가상 디스플레이 정보를 이용하여 매핑된 IoT 앱의 UI 화면을 클라이언트 A(21) 기기로 비디오 스트리밍으로 전송하거나 매핑된 UI 엘리먼트 그룹 정보를 전송한다.
1180 단계에서 클라이언트 A(21)가 클라우드 서버(300)로 UI 제어정보를 송신하고, 클라우드 서버에 설치된 IoT 앱에 상기 UI 제어정보를 전송하면, IoT 기기의 클라우드 서버에 의해 로컬 서버의 IoT 앱의 컨텍스트 상태 정보 (context status)가 업데이트 된다.
따라서 로컬 서버(100)의 IoT 앱은 상기 수신한 UI 제어정보를 IoT 기기로 전송한다.
1191 단계에서 로컬 서버(100)의 IoT 앱은 인터넷 웹으로 IoT 클라우드 서버로 전송하거나, 상기 로컬 서버가 IoT 허브 역할을 수행하는 경우에는 상기 로컬서버가 홈 네트워크를 통해서 IoT 제어신호를 IoT 장치로 직접 전송한다.
1192 단계에서 로컬 서버(100)의 IoT 앱은 IoT 앱의 클라우드 및 IoT 허브를 거쳐서 IoT 기기의 상태 정보를 수신하거나, 상기 로컬 서버가 IoT 허브 역할을 수행하는 경우에는 홈 네트워크를 통해서 IoT 기기로부터 직접 상태정보를 수신한다.
1193 단계에서 로컬 서버(100)의 IoT 앱의 컨텍스트 상태정보가 변경된 경우에는 IoT 앱은 변경된 상태 정보를 IoT 기기의 클라우드에 제공하거나, 상기 로컬서버가 IoT 허브 역할을 수행하는 경우에는 클라우드 서버 (300)의 IoT 앱에 전송한다.
IoT 기기 제어를 위한 허브는 Zigbee, Bluetooth, Wi-Fi 네트워크를 이용하여, 홈 네트워크상의 IoT 기기를 제어한다.
도 12는 본 발명의 또 다른 실시예에 따른 로컬 서버가 미인증 클라이언트로 IoT 상태정보를 전송하는 방법의 흐름을 도시한 것이다.
도 12에 도시된 로컬 서버가 미인증 클라이언트로 IoT 상태정보를 전송하는 방법은 도 10과 도 11과 달리 미인증 클라이언트(30)가 로컬 서버(100)로 IoT 상태정보를 전송해줄 것을 요청하는 것이 차이점이다.
1200 단계에서 로컬 서버(100)는 클라이언트 기기와의 거리에 따른 IoT 상태정보 제공범위를 설정한다.
로컬 서버(100)은 미인증 클라이언트(30)의 위치에 따라 IoT 상태정보를 차별화하여 제공할 수 있다. 미인증 클라이언트(30)가 로컬 서버(100)와 물리적으로 가까운 위치에 있는 경우와 원거리에서 홈네트워크 또는 인터넷를 통해 IoT 상태정보를 요청하는 경우가 있으며, 로컬 서버(100)와 미인증 클라이언트(30)간의 물리적 거리에 따른 IoT 상태정보를 차별화하여 제공할 수 있다.
이 때, 미인증 클라이언트(30)의 위치가 로컬 서버(100)와 물리적으로 일정거리 내에 존재하는 경우, 보다 많은 IoT 상태정보를 제공하도록 설정할 수 있다.
또한 로컬 서버(100)가 설치된 장소의 내부 또는 외부에서 요청하는지 따라, IoT 장치(25)의 상태정보 제공을 차별화하여 제공할 수 있다.
1210 단계에서 로컬 서버(100)는 미인증 클라이언트(30)의 사용자 앱으로 부터 IoT 상태정보 전송요청을 수신한다.
1220 단계에서 로컬 서버(100)는 1210 단계에서 수신한 IoT 상태정보 전송요청에 기초하여 미인증 클라이언트(30)와의 거리를 계산한다.
로컬 서버(100)와 미인증 클라이언트(30)의 정확한 거리계산을 위해, 로컬 서버(100)의 무선 통신 모듈(Bluetooth, Wi-Fi, ultra wide band 등)의 안테나가 일정 이격거리(reference distance)를 갖는 멀티 안테나로 구현된 경우, 페어링된 안테나의 일부는 수평편파 (horizontal polarization)를 수신하고, 다른 일부 안테나는 수직편파 (vertical polarization)를 수신하도록 구현할 수 있다.
이러한 경우, 미인증 클라이언트(30)로부터 무선 통신 신호를 페어링된 수직편파/수평편파 멀티안테나에서 수신하고, 수신 신호의 입사각 차이에 따른 신호 수신 도달 시간 차이로, 미인증 클라이언트(30)의 정확한 위치 계산이 가능하다.
따라서 로컬 서버(100)와 미인증 클라이언트(30) 사이의 거리를 계산하여, 로컬 서버(100)에서 미인증 클라이언트(30) 사용자 앱에게 제공할 IoT 상태정보를 결정할 수 있다.
1230 단계에서 로컬 서버(100)는 IoT 장치(25)에게 IoT 상태정보 전송요청을 송신한다.
1240 단계에서 로컬 서버(100)는 IoT 장치(25)로 부터 IoT 상태정보를 수신한다.
1250 단계에서 로컬 서버(100)는 1220 단계에서 계산된 거리에 따라 미인증 클라이언트(30)로 송신할 IoT 상태정보와 UI 배치정보를 결정한다.
1260 단계에서 로컬 서버(100)는 상기 UI 배치정보를 이용하여 가상 디스플레이 정보를 생성한다.
1270 단계에서 로컬 서버(100)는 비디오 스트리밍으로 IoT 상태정보를 미인증 클라이언트 기기의 사용자 앱에 송신한다. 이 때 IoT 상태정보는 로컬 서버(100)에서 미인증 클라이언트(30)로 비디오스트림으로 전송되어 화면에 표시된다.따라서 다수의 IoT 장치의 IoT 상태정보를 수신하기 위해 필요한 IoT 애플리케이션의 설치가 미인증 클라이언트(30)에서는 필요하지 않게 된다.
도 13은 본 발명의 또 다른 실시예에 따른 로컬 서버가 NFT 컨텐츠와 UI 앱을 수신하여 UI 화면 정보를 전송하는 방법의 흐름을 도시한 것이다.
도 13을 참조하면, 본 실시예에 따른 UI 화면 정보를 전송하는 방법은 도 3에 도시된 로컬 서버와 클라이언트에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 로컬 서버와 클라이언트에 관하여 이상에서 기술된 내용은 본 실시예에 따른 UI 화면 정보를 전송하는 방법에도 적용된다.
도 13에서는 NFT 컨텐츠 서버(500)의 NFT 컨텐츠 및 UI 앱 서버(600)의 UI 앱을 로컬 서버(20)로 전송하여 로컬 서버(20) 또는 클라이언트 A(21)가 일정 기간동안 UI 앱에 NFT 컨텐츠를 포함하여 사용할 수 있는 방법이 도시된 것이다.
1300 단계에서 사용자는 NFT 컨텐츠 제공자(500)와 UI 앱 제공자(600)와 상호간에 스마트 컨트랙트를 체결한다.
디지털 자산은 블럭체인 기반의 스마트 계약으로 관리되며 있으며, 디지털 자산의 토큰은 크게 대체가능토큰(fungible token:FT)과 대체불가토큰(non-fungible token: NFT)으로 구분된다. 이더리움(Ethereum) 토큰에는 대체가능토큰으로 ERC-20이, 대체불가토큰은 ERC-721 토큰이 정의되어 있다. 또한 ERC-1155는 ERC-20, ERC-721 토큰을 하나의 스마트 계약으로 관리할 수 있는 토큰이다.
따라서, 본 발명에서는 NFT 컨텐츠 제공자/서버(500)와 UI 앱 제공자/ 서버(600) 및 사용자가 ERC-1155 기반으로 NFT 컨텐츠와 UI 앱의 소유/사용에 관한 스마트 컨트랙트를 체결하는 것이 바람직하다.
UI 앱 제공자/서버(600), NFT 컨텐츠 제공자/서버(500), 및 사용자/로컬 서버(20)가 특정 기간 동안 유효한 스마트 컨트랙트를 체결한 경우, 로컬 서버(20)로 NFT 컨텐츠와 UI 앱이 전송될 수 있다. 따라서, 로컬 서버(20)에서는 일정기간 동안의 NFT 컨텐츠 접근 권한 허가받게 되고, 유일한 사용자로서 접근 허용된다. 이 때 스마트 컨트랙트에는 사용자 기기 그룹에 포함되는 인증 사용자 기기의 수를 제한하여 본 발명에 따른 사용자 기기간의 UI 화면 전송에 따른 다수의 사용자 기기에 전송되는 NFT 컨텐츠의 화면 전송을 제한하는 조건을 포함할 수 있다.
1310 단계에서 클라이언트 A(21)는 사용하고자 하는 NFT 컨텐츠와 UI 앱을 선택하여 로컬 서버(100)로 전송한다.
이 때, 스마트 컨트랙트 내용을 바탕으로, UI 앱 서버(600)에 저장된 선택 가능한 다수의 UI 앱들을 대체가능토큰으로 매핑하여 로컬 서버(20)에 제공할 수 있고, 로컬 서버(20)는 OS 레벨에서 UI 앱의 단일 UI를 UI 엘리멘트 그룹 단위로 분리하여, 사용자의 클라이언트 기기들과 매핑하여 UI 배치정보를 생성하여, 클라이언트 A(21)와 매핑된 하나의 UI 엘리먼트 그룹을 보낼 수 있다.
클라이언트 A(21)에서는 UI 앱 서버(600)에 저장된 선택 가능한 다수의 UI 앱들 중 하나를 선택하여 NFT 컨텐츠와 결합하여 디스플레이 할 수 있다.
1320 단계에서 로컬 서버(100)는 UI 앱 서버(600)와 NFT 컨텐츠 서버(500) 간의 스마트 컨트랙트 체결여부 확인 후, UI 앱 서버(600)로부터 클라이언트 A(21)가 선택한 UI 앱을 수신한다.
1321 단계에서 로컬 서버(100)는 UI 앱 서버(600)와 NFT 컨텐츠 서버(500) 간의 스마트 컨트랙트 체결여부 확인 후, NFT 컨텐츠 서버(500)로부터 NFT 컨텐츠를 수신한다.
1330 단계에서 로컬 서버(100)는 선택된 UI 앱을 실행한다.
1340 단계에서 로컬 서버(100)는 실행된 UI 앱의 UI를 OS 레벨에서 복수의 UI 엘리먼트 그룹으로 분리한다.
1350 단계에서 로컬 서버(100)는 상기 분리된 각각의 UI 엘리먼트 그룹 과 사용자의 클라이언트 기기들에게 매핑하여 UI 배치정보를 생성한다.
로컬 서버(100)와 주변 클라이언트들이 홈네트워크로 연결된 경우, UI 배치 제어부(105)가 상기 생성된 UI 배치정보를 클라우드 서버(300)로 전송하는 것이 바람직하다.
1360 단계에서 로컬 서버(100)는 상기 생성된 UI 배치정보를 이용하여 가상디스플레이 정보를 생성한다.
1370 단계에서 로컬 서버(100)는 클라이언트 A(21)로 UI 엘리먼트 그룹을 전송한다. 클라이언트 A(21)로 UI 엘리먼트 그룹을 전송하는 대신 1370 단계에서 클라이언트 A(21)에 대응하는 적어도 하나 이상의 UI 엘리먼트 그룹을 비디오스트림으로 전송할 수 있다.
1371 단계에서 클라이언트 A(21)는 로컬 서버(100)로부터 수신한 UI 엘리먼트 그룹을 이용하여 가상 디스플레이 정보를 생성한다.
1380 단계에서 로컬 서버(100)는 클라이언트 A(21)로부터 UI 제어정보를 수신한다.
1381 단계에서 로컬 서버(100)는 상기 UI 제어정보를 UI 앱의 제어신호로 변환한다. 로컬 서버(100)는 UI 앱의 제어신호를 반영하여 상기 UI 엘리먼트 그룹 또는 비디오스트림을 업데이트하여 재전송할 수 있다.
1390 단계에서 로컬 서버(100)는 UI 앱과 NFT 컨텐츠를 사용할 수 있는 권한을 클라이언트 A(21)에게 위임할 수 있다.
1300 단계에서 체결한 NFT 컨텐츠 서버(500)와 UI 앱 서버(600) 상호간의 스마트 컨트랙트가 유효한 기간 동안에, NFT 컨텐츠를 다른 클라이언트로 양도할 상황이 발생할 수 있다. 이 때, 사용 권한을 다른 클라이언트에게 위임(delegation)하면, 스마트 컨트랙트는 업데이트되고, 새로운 클라이언트에서 UI 어플리케이션이 실행 가능하도록 도 13의 각 단계가 실행된다.
상기 사용권한이 클라이언트 A(21)에게 위임된 경우, UI 앱 서버(600)와 NFT 컨텐츠 서버(500) 간의 스마트 컨트랙트가 로컬 서버(100) 대신 클라이언트 A(21)를 포함하여 업데이트되고, UI 배치 제어부(105)가 클라이언트 A(21)에서 실행될 수 있다.
클라우드 서버(300)에서 사용자의 NFT 컨텐츠로의 액세스 권한, UI 앱을 이용한 UI 제공 권한, UI 배치정보 수정 권한, 사용 권한 위임 등의 정보를 관리할 수 있다. NFT 컨텐츠 사용자는 상기 모든 권한을 위임받고, 일정기간 동안 NFT 컨텐츠를 사용할 수 있고, 다른 사용자에게 권한을 위임하여 NFT 컨텐츠를 유통시킬 수 있다.
또한, 상기 NFT 컨텐츠 사용자는 일정기간 동안 자신이 원하는 스타일로 UI를 변경하여 자신의 디스플레이 장치에서 NFT 컨텐츠를 스트리밍하여 사용할 수 있다. 이후, 스마트 컨트랙트의 내용을 바탕으로 일정기간이 경과하면 컨텐츠 사용자를 제외한 모든 사용자의 사용 권한이 리셋되도록 구성될 수 있다.
본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (12)

  1. 제1 사용자 기기가 상기 제1 사용자 기기에서 실행되는 컨텐츠 애플리케이션의 UI들을, 상기 제 1 사용자 기기의 OS 레벨에서, 복수의 UI 엘리먼트 그룹들로 분리하는 단계;
    상기 제1 사용자 기기가 상기 복수의 UI 엘리먼트 그룹 중, 하나의 UI 엘리먼트 그룹을 제2 사용자 기기에게 매칭하여 UI 배치정보를 생성하는 단계; 및
    상기 제1 사용자 기기가 상기 UI 배치정보를 이용하여 상기 매칭된 하나의 UI 엘리먼트 그룹을 상기 제2 사용자 기기에게 전송하거나, 상기 매칭된 하나의 UI 엘리먼트 그룹을 상기 제2 사용자 기기에게 비디오 스트림으로 변환하여 UI 정보를 전송하는 단계를 포함하는 사용자 기기의 UI 정보 전송 방법.
  2. 상기 제1 항에 있어서,
    상기 제1 사용자 기기가 제3 사용자 기기에게 상기 제3 사용자 기기에 설치된 상기 컨텐츠 애플리케이션의 UI들을 복수의 UI 엘리먼트 그룹들로 분리할 수 있는 권한을 허가(authorization) 또는 위임(delegation)하는 단계를 더 포함하는 사용자 기기의 UI 정보 전송 방법.
  3. 상기 제1 항에 있어서,
    상기 제1 사용자 기기가 상기 매칭된 하나의 UI 엘리먼트 그룹을 비디오 스트림으로 전송하는 경우, 상기 제2 사용자 기기의 화면 크기 및 해상도를 반영한 비디오스 트림으로 렌더링하여 전송하는 사용자 기기의 UI 전송 방법.
  4. 상기 제1 항에 있어서,
    상기 제1 사용자가 상기 UI 배치정보 또는 상기 제2 사용자 기기의 화면 크기와 해상도 정보를 클라우드 서버에 전송하는 단계를 더 포함하는 사용자 기기의 UI 정보를 전송하는 방법.
  5. 상기 제1 항에 있어서,
    상기 제1 사용자 기기가 상기 제2 사용자 기기에 상기 UI 정보를 전송한 후, 상기 제2 사용자 기기로부터 UI 제어정보를 수신하고 상기 제 1 사용자 기기의 컨텐츠 애플리케이션에 상기 UI 제어 정보를 제공하는 단계를 더 포함하는 사용자 기기의 UI 정보 전송 방법.
  6. 상기 제1 항에 있어서,
    상기 제1 사용자 기기가 상기 제1 사용자 기기를 기준으로 상기 제2 사용자 기기와의 물리적 거리 또는 위치한 방향에 따라 상기 UI 배치정보를 결정하는 것을 특징으로 하는 사용자 기기의 UI 정보 전송 방법.
  7. 상기 제1 항에 있어서,
    상기 컨텐츠 어플리케이션의 UI들이 복수의 컨텐츠 애플리케이션을 이용하여 구성된 경우,
    상기 복수의 컨텐츠 애플리케이션의 각각의 콘텐츠 어플리케이션의 UI에서 분리된 다수의 UI 엘리먼트 그룹들 중에서 선택된 UI 엘리먼트 그룹들을 이용하여 상기 컨텐츠 어플리케이션의 UI들이 생성된 것을 특징으로 하는 사용자 기기의 UI 정보 전송 방법.
  8. 제1 기기의 OS 레벨에서 상기 제1 사용자 기기에서 실행되는 컨텐츠 어플리케이션의 UI들을 복수의 UI 엘리먼트 그룹들로 분리된 후, 상기 제1 기기의 UI 애플리케이션이 하나의 UI 엘리먼트 그룹을 제2 기기에 매칭하여 UI 배치정보를 생성하는 단계; 및
    상기 제1 기기의 UI 애플리케이션이 상기 UI 배치정보를 이용하여 상기 매칭된 하나의 UI 엘리먼트 그룹을 상기 제2 기기에게 전송하거나, 상기 매칭된 하나의 UI 엘리먼트 그룹을 비디오스트림으로 변환하여 상기 제2 기기에게 UI 정보를 전송하는 단계를 포함하는 UI 애플리케이션에서 UI 정보 전송방법.
  9. 상기 제8 항에 있어서,
    상기 제1 기기의 UI 어플리케이션이 상기 제2 기기에게 상기 UI 정보를 전송한 후, 상기 제2 기기로부터 UI 제어정보를 수신하고,
    상기 UI 어플리케이션이 상기 컨텐츠 애플리케이션에게 상기 수신한 UI 제어정보를 제공하는 단계를 더 포함하는 UI 애플리케이션에서 UI 정보 전송 방법.
  10. 상기 제8 항에 있어서,
    상기 제1 기기의 UI 어플리케이션이 UI 배치정보를 클라우드 서버에 저장하는 단계를 더 포함하는 UI 애플리케이션에서 UI 정보 전송 방법.
  11. 상기 제8 항에 있어서,
    상기 컨텐츠 어플리케이션의 UI들이 복수의 컨텐츠 애플리케이션을 이용하여 구성된 경우,
    상기 복수의 컨텐츠 애플리케이션의 각각의 콘텐츠 어플리케이션의 UI에서 분리된 다수의 UI 엘리먼트 그룹들 중에서 선택된 UI 엘리먼트 그룹들을 이용하여 상기 컨텐츠 어플리케이션의 UI들이 생성된 것을 특징으로 하는 UI 애플리케이션에서 UI 정보 전송 방법.
  12. 제1 항 내지 제11 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020220026426A 2022-02-28 2022-02-28 로컬 서버가 주변 클라이언트들로 ui 화면 정보를 전송하는 방법 KR20230128913A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220026426A KR20230128913A (ko) 2022-02-28 2022-02-28 로컬 서버가 주변 클라이언트들로 ui 화면 정보를 전송하는 방법
PCT/KR2023/002793 WO2023163566A1 (en) 2022-02-28 2023-02-28 Method of transmitting ui display information to proximal clients by local server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220026426A KR20230128913A (ko) 2022-02-28 2022-02-28 로컬 서버가 주변 클라이언트들로 ui 화면 정보를 전송하는 방법

Publications (1)

Publication Number Publication Date
KR20230128913A true KR20230128913A (ko) 2023-09-05

Family

ID=87766506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220026426A KR20230128913A (ko) 2022-02-28 2022-02-28 로컬 서버가 주변 클라이언트들로 ui 화면 정보를 전송하는 방법

Country Status (2)

Country Link
KR (1) KR20230128913A (ko)
WO (1) WO2023163566A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9336023B2 (en) * 2009-12-18 2016-05-10 Sybase, Inc. Visual generation of mobile applications based on data models
EP3168751B1 (en) * 2014-07-07 2022-05-04 Samsung Electronics Co., Ltd. Method for sharing application program and electronic device therefor
US11799955B2 (en) * 2018-06-03 2023-10-24 Apple Inc. Data synchronization across multiple devices
US11121935B2 (en) * 2018-07-20 2021-09-14 Paypal, Inc. System architecture for dynamically rendering a customized user interface on a mobile device

Also Published As

Publication number Publication date
WO2023163566A1 (en) 2023-08-31

Similar Documents

Publication Publication Date Title
US20100248698A1 (en) Mobile terminal device inlcuding mobile cloud platform
KR20210030073A (ko) 엣지 컴퓨팅 서비스를 위한 방법 및 장치
WO2016197862A1 (zh) 一种数据传输方法、装置和智能电视系统
JP6305524B2 (ja) コンピューティング・デバイス間におけるデバイス関連付けデータの同期化
KR20160144296A (ko) 어플리케이션을 공유하는 방법 및 장치
US9706249B2 (en) Extended, home, and mobile content delivery networks
KR101707549B1 (ko) 클라우드 서버를 이용한 디지털 사이니지 시스템 및 그 제어 방법
KR102387867B1 (ko) 통신 시스템에서 데이터 송수신 방법 및 장치
JP7392174B2 (ja) メディアストリーミングネットワーク上でのユーザ生成コンテンツのライブストリーミングを実行する方法、デバイス、及びコンピュータプログラム
JP6673980B2 (ja) デジタルデバイスを利用して遠隔地pcと接続する方法
KR20230128913A (ko) 로컬 서버가 주변 클라이언트들로 ui 화면 정보를 전송하는 방법
KR20140049449A (ko) 홈 네트워크에서의 애플리케이션 이동성 관리 장치
KR20230128916A (ko) 사용자 기기간에 ui 화면을 송수신하는 방법
KR20230128914A (ko) 로컬서버가 IoT 기기의 상태정보를 전송하는 방법
KR20230128915A (ko) 스마트 컨트랙트 기반으로 ui 화면 정보를 전송하는 방법
US20220060774A1 (en) Seamless dvrs
US11496791B2 (en) Devices, systems and processes for facilitating seamless use of tuners across multiple devices within a local area network
US11956281B2 (en) Method and apparatus for edge application server discovery or instantiation by application provider to run media streaming and services on 5G networks
US20230135220A1 (en) Methods for providing light 5g ar/mr devices by running ar/mr processing on 5g edge servers/cloud including simplified dynamic scene updates
US11736761B2 (en) Methods for media streaming content preparation for an application provider in 5G networks
CN110178353A (zh) 业务处理方法、云服务器和终端设备
KR101544486B1 (ko) 클라우드 컴퓨팅 환경에서의 자동 개인 가상화 생성 방법 및 장치
KR101928368B1 (ko) 디바이스간의 자원 공유 방법
KR20120126544A (ko) 클라우드 컴퓨팅 기반 영상 제작 제공 시스템, 그의 영상 제작 제공 방법 및 이를 위한 장치
KR20110096871A (ko) 클라우드 자원을 다수의 디바이스 자원과 결합하여 제공하는 자원제공방법 및 자원분배장치