KR102107404B1 - 어플리케이션을 공유하는 전자 장치 및 그 제어 방법 - Google Patents

어플리케이션을 공유하는 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102107404B1
KR102107404B1 KR1020130130328A KR20130130328A KR102107404B1 KR 102107404 B1 KR102107404 B1 KR 102107404B1 KR 1020130130328 A KR1020130130328 A KR 1020130130328A KR 20130130328 A KR20130130328 A KR 20130130328A KR 102107404 B1 KR102107404 B1 KR 102107404B1
Authority
KR
South Korea
Prior art keywords
electronic device
application
client electronic
screen
client
Prior art date
Application number
KR1020130130328A
Other languages
English (en)
Other versions
KR20150049583A (ko
Inventor
정선영
김강태
김철주
백건우
윤희란
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130130328A priority Critical patent/KR102107404B1/ko
Priority to US14/517,092 priority patent/US10893092B2/en
Priority to EP20140190689 priority patent/EP2869188A1/en
Priority to EP22153064.5A priority patent/EP4009159A1/en
Publication of KR20150049583A publication Critical patent/KR20150049583A/ko
Application granted granted Critical
Publication of KR102107404B1 publication Critical patent/KR102107404B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/445Program loading or initiating
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • 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
    • G09G2358/00Arrangements for display data security
    • 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/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • 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/16Use of wireless transmission of display information
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

클라이언트(client) 전자 장치와 통신을 수행하는 호스트(host) 전자 장치의 제어 방법이 제공된다. 본 발명에 의한 전자 장치의 제어 방법은, 상기 클라이언트 전자 장치와 연결(connection)을 형성하는 과정과, 상기 클라이언트 전자 장치와 공유할 공유 대상 어플리케이션을 결정하는 과정과, 상기 공유 대상 어플리케이션에 대한 공유 데이터를 생성하는 과정과, 상기 공유 데이터를 상기 클라이언트 전자 장치로 전송하는 과정을 포함할 수 있다. 또한 다른 실시예도 가능하다.

Description

어플리케이션을 공유하는 전자 장치 및 그 제어 방법 {APPARATUS FOR SHARING APPLICATION AND METHOD FOR CONTROLLING THEREOF}
본 발명은 어플리케이션을 공유하는 전자 장치 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 소정의 방식으로 통신을 수행할 수 있도록 하여 어플리케이션을 공유할 수 있는 전자 장치 및 그 제어 방법에 관한 것이다.
데스크톱 컴퓨터는 적어도 하나의 디스플레이 장치(예, 모니터)를 가진다. 터치스크린을 사용하는 모바일 장치(예, 휴대폰, 스마트폰 또는 태블릿 PC)는 하나의 디스플레이 장치를 가진다.
데스크톱 컴퓨터의 사용자는 작업 환경에 따라 디스플레이 장치의 화면을 분할(예, 복수의 윈도우들을 띄워놓고 작업하는 방식으로 가로분할 또는 세로분할)하여 사용할 수 있다. 웹 브라우저가 실행되는 경우, 키보드에 있는 페이지 업(page up) 버튼 또는 페이지 다운(page down) 버튼을 이용하여 웹 페이지의 위(上) 방향 또는 아래(下) 방향으로 이동할 수 있다. 키보드 대신 마우스를 이용하는 경우, 마우스의 커서로 웹 페이지의 측면에 있는 스크롤 바(scroll bar)를 선택하여 웹 페이지의 위 방향 또는 아래 방향으로 이동할 수 있다. 또한, 웹 페이지의 아래 부분에 있는 텍스트 또는 아이콘으로 표시되는 맨 위로(top) 버튼을 선택하여 웹 페이지의 맨 위 부분으로 이동할 수 있다.
모바일 장치는 데스크톱 컴퓨터와 비교하여 디스플레이되는 화면의 크기가 작고, 입력에 제한을 가진다. 모바일 장치는 화면을 분할하여 사용하기가 어렵다.
또한, 모바일 장치에는 상기 장치의 제조사에 의해 제작되어 상기 장치에 설치되는 기본 어플리케이션들과, 인터넷의 어플리케이션 판매 사이트를 통하여 다운로드되는 추가 어플리케이션들 등 다양한 어플리케이션들이 실행될 수 있다. 상기 추가 어플리케이션들은 일반 이용자들에 의해 개발되고, 상기 판매 사이트에 등록될 수 있다. 따라서 누구든지 자신이 개발한 어플리케이션들을 상기 어플리케이션 판매 사이트를 통하여 자유롭게 상기 모바일 장치의 사용자에게 판매할 수 있다. 이에 따라 현재 모바일 장치에는 그 제품에 따라 수 만에서 수십 만개의 어플리케이션들이 무료 또는 유료로 제공되고 있다.
이와 같이, 소비자의 호기심을 자극하고, 소비자의 욕구를 충족시키는 다양한 어플리케이션들이 모바일 장치에 제공되고 있으나, 모바일 장치는 휴대 가능한 크기로 제작되기 때문에 그 디스플레이의 크기 및 유저 인터페이스(User Interface, UI)에 제한이 있다. 이에 따라, 모바일 장치에서 다수의 어플리케이션들을 실행하는데 사용자의 불편함이 초래된다. 상술한 바와 같이 스마트 폰 또는 태블릿 PC의 디스플레이 수단이 소형이기 때문에 식별이 어렵기 때문이다.
제한적인 디스플레이를 극복하기 위하여 타 전자 장치와 어플리케이션을 공유할 수 있는 기술 개발이 요청된다. 종래에는, 하나의 전자 장치의 디스플레이에서 표시되는 화면 전체를 다른 전자 장치와 공유하는 미러링(mirroring) 서비스가 제공되었다. 그러나 종래의 미러링 서비스는 디스플레이에서 표시되는 화면 전체를 다른 전자 장치와 공유함으로써, 사용자가 원하지 않는 부분까지 다른 전자 장치와 모두 공유해야 한다는 단점이 있다. 아울러, 미러링 서비스는 다른 전자 장치가 단순히 화면만을 수신하여 표시하기만 하며, 다른 전자 장치가 추가적인 명령을 입력할 수는 없어 다른 전자 장치의 사용자 편의성이 저하된다는 문제점 또한 가지고 있다.
본 발명은 상술한 문제점을 해결하면서 동시에 상술한 개발 요청에 응답하여 안출된 것으로, 본 발명은 타 전자 장치와 어플리케이션을 공유할 수 있는 전자 장치 및 그 제어 방법을 제공할 수 있다.
상술한 바를 달성하기 위하여, 본 발명의 일 실시 예에 따른 클라이언트(client) 전자 장치와 통신을 수행하는 호스트(host) 전자 장치의 제어 방법은, 상기 클라이언트 전자 장치와 연결(connection)을 형성하는 과정과, 상기 클라이언트 전자 장치와 공유할 공유 대상 어플리케이션을 결정하는 과정과, 상기 공유 대상 어플리케이션에 대한 공유 데이터를 생성하는 과정과, 상기 공유 데이터를 상기 클라이언트 전자 장치로 전송하는 과정을 포함할 수 있다.
본 발명의 일 실시예에 따른 클라이언트(client) 전자 장치와 통신을 수행하는 호스트(host) 전자 장치는, 상기 클라이언트 전자 장치와 연결(connection)을 형성하는 통신부와, 상기 클라이언트 전자 장치와 공유할 공유 대상 어플리케이션을 결정하고,, 상기 공유 대상 어플리케이션에 대한 공유 데이터를 생성하고, 상기 공유 데이터를 상기 클라이언트 전자 장치로 전송하도록 상기 통신부를 제어하는 제어부; 및 상기 공유 대상 어플리케이션의 실행 화면을 표시하는 스크린을 포함할 수 있다.
본 발명의 일 실시예에 따른 호스트(host) 전자 장치와 어플리케이션을 공유하는 클라이언트(client) 전자 장치의 제어 방법은, 상기 호스트 전자 장치와 연결(connection)을 형성하는 과정과, 상기 호스트 전자 장치와 공유하는 공유 대상 어플리케이션에 대한 공유 데이터를, 상기 호스트 전자 장치로부터 수신하는 과정과, 상기 공유 데이터를 출력하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 호스트(host) 전자 장치와 어플리케이션을 공유하는 클라이언트(client) 전자 장치는, 상기 호스트 전자 장치와 연결(connection)을 형성하고, 상기 호스트 전자 장치와 공유하는 공유 대상 어플리케이션에 대한 공유 데이터를, 상기 호스트 전자 장치로부터 수신하는 통신부와, 상기 공유 데이터를 출력하는 스크린을 포함할 수 있다.
본 발명의 다양한 실시 예들에 의하여 타 전자 장치와 어플리케이션을 공유할 수 있는 전자 장치 및 그 제어 방법이 제공될 수 있다. 이에 따라, 사용자는 디스플레이 전체가 아닌 공유 대상 어플리케이션만을 타 장치와 공유하도록 전자 장치를 조작할 수 있다. 한편, 타 전자 장치는 어플리케이션을 단순히 표시할 뿐만 아니라, 사용자로부터 소정의 명령을 입력받아 이를 전자 장치로 전송할 수 있다. 전자 장치는 타 전자 장치로부터 입력된 명령을 어플리케이션에 입력하여 처리할 수 있다. 이로써, 전자 장치는 타 전자 장치와 협업을 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 장치(100)의 구성을 나타낸 블록도,
도 2는 본 발명의 일 실시 예에 따른 적어도 하나의 어플리케이션을 공유하는 전자 장치들을 도시한 도면,
도 3은 본 발명의 일 실시 예에 따른 적어도 하나의 어플리케이션을 공유하는 전자 장치들의 동작의 일 예를 나타내는 순서도,
도 4는 본 발명의 일 실시 예에 따른 전자 장치와 타 전자 장치 간의 연결의 일 예를 나타내는 순서도,
도 5는 본 발명의 일 실시 예에 따른 전자 장치와 타 전자 장치 간의 연결의 다른 예를 나타내는 순서도,
도 6a 내지 6e는 본 발명의 일 실시 예에 따른 전자 장치들 사이의 연결의 일 예를 나타내는 도면들,
도 7a 및 7b는 본 발명의 일 실시예에 따른 호스트 전자 장치의 좌표 설정 방식의 일 예를 나타내는 도면들,
도 8은 본 발명의 일 실시 예에 따른 호스트 전자 장치의 제어 방법의 일 예를 나타낸 순서도,
도 9는 본 발명의 일 실시 예에 따른 호스트 전자 장치 및 클라이언트 전자 장치의 제어 방법의 일 예를 나타내는 순서도,
도 10a 및 도 10b는 도 9의 호스트 전자 장치 및 클라이언트 전자 장치가 공유 데이터를 공유하는 일 예를 나타낸 도면,
도 11은 본 발명의 다른 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 데이터를 공유하는 방법의 일 예를 나타낸 순서도,
도 12는 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 데이터를 공유하는 방법의 다른 예를 나타낸 순서도,
도 13a 내지 도 13c는 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 공유 데이터를 공유하는 다른 예를 나타낸 도면,
도 14는 본 발명의 일 실시 예에 따른 호스트 전자 장치에서의 시스템 아키텍처(architecture)의 일 예를 나타낸 도면,
도 15는 본 발명의 일 실시 예에 따른 호스트 전자 장치 및 클라이언트 전자 장치에서의 계층의 일 예를 나타낸 도면,
도 16은 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 공유 데이터를 공유하는 또 다른 예를 나타낸 도면,
도 17은 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 공유 데이터를 공유하는 또 다른 예를 나타낸 도면, 그리고
도 18은 본 발명의 일 실시 예에 따른 호스트 전자 장치와 액세서리 장치가 공유 데이터를 공유하는 또 다른 예를 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하여 상세하게 설명한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 전자 장치(100)의 구성을 나타낸 블록도이다.
도 1을 참조하면, 전자 장치(100)는 서브통신 모듈(130), 커넥터(165) 및 이어폰 연결잭(167)과 같은 외부 장치 연결부를 이용하여 외부 장치(미도시)와 연결될 수 있다. “외부 장치”는 전자 장치(100)에 탈착되어 유선으로 연결 가능한 이어폰(Earphone), 외부 스피커(External speaker), USB(Universal Serial Bus) 메모리, 충전기, 크래들(Cradle), 도킹 스테이션(Docking station), DMB 안테나, 결제 관련 장치, 건강 관리 장치(혈당계 등), 게임기, 자동차 내비게이션 장치 등 다양한 장치들을 포함할 수 있다. 또한 "외부 장치"는 근거리 통신에 의하여 무선으로 전자 장치(100)에 연결될 수 있는 블루투스 통신 장치, NFC(Near Field Communication) 장치와 같은 근거리 통신 장치, 및 WiFi Direct 통신 장치, 무선 액세스 포인트(AP, Access Point)를 포함할 수 있다. 또한 외부 장치는 다른 장치, 휴대폰, 스마트폰, 태블릿PC, 데스크탑 PC, 및 서버를 포함할 수 있다.
전자 장치(100)는 대표적인 예로서 모바일 전자 장치일 수 있으나, 태블릿, 데스크탑 PC, 스마트 TV, 노트북, 뮤직플레이어, MP3 플레이어 등 일 수도 있다.
도 1을 참조하면, 전자 장치(100)는 스크린(190) 및 스크린 컨트롤러(195)를 포함할 수 있으며, 제어부(110), 이동통신 모듈(120) 또는 서브통신 모듈(130)을 포함하는 통신부, 멀티미디어 모듈(140), 카메라 모듈(150), GPS모듈(155), 입/출력 모듈(160), 센서 모듈(170), 저장부(175) 및 전원공급부(180) 중 적어도 하나를 더 포함할 수 있다. 서브통신 모듈(130)은 무선랜 모듈(131) 및 근거리통신 모듈(132) 중 적어도 하나를 포함할 수 있고, 멀티미디어 모듈(140)은 방송통신 모듈(141), 오디오재생 모듈(142) 및 동영상재생 모듈(143) 중 적어도 하나를 포함할 수 있다. 카메라 모듈(150)은 제1 카메라(151) 및 제2 카메라(152) 중 적어도 하나를 포함할 수 있고, 입/출력 모듈(160)은 버튼(161), 마이크(162), 스피커(163), 진동모터(164), 커넥터(165), 키패드(166), 및 이어폰 연결잭(167) 중 적어도 하나를 포함할 수 있다.
제어부(110)는 CPU(111), 전자 장치(100)의 제어를 위한 제어 프로그램이 저장된 롬(ROM, 112) 및 전자 장치(100)의 외부로부터 입력되는 신호 또는 데이터를 기억하거나, 전자 장치(100)에서 수행되는 작업을 위한 기억영역으로 사용되는 램(RAM, 113)을 포함할 수 있다. CPU(111)는 싱글 코어, 듀얼 코어, 트리플 코어, 또는 쿼드 코어를 포함할 수 있다. CPU(111), 롬(112) 및 램(113)은 내부버스(bus)를 통해 상호 연결될 수 있다.
제어부(110)는 이동통신 모듈(120), 서브통신 모듈(130), 멀티미디어 모듈(140), 카메라 모듈(150), GPS 모듈(155), 입/출력 모듈(160), 센서 모듈(170), 저장부(175), 전원공급부(180), 스크린(190) 및 스크린 컨트롤러(195) 중 적어도 하나를 제어할 수 있다.
이동통신 모듈(120)은 제어부(110)의 제어 하에 적어도 하나-하나 또는 복수-의 안테나(미도시)를 이용하여 이동 통신을 통해 전자 장치(100)가 외부 장치와 연결되도록 할 수 있다. 이동통신 모듈(120)은 전자 장치(100)에 입력되는 전화번호를 가지는 휴대폰(미도시), 스마트폰(미도시), 태블릿 PC 또는 다른 장치(미도시)와 음성 통화, 화상 통화, 문자메시지(SMS) 또는 멀티미디어 메시지(MMS)를 위한 무선 신호를 송/수신할 수 있다.
서브통신 모듈(130)은 무선랜 모듈(131) 및 근거리통신 모듈(132) 중 적어도 하나를 포함할 수 있다. 예를 들어, 서브통신 모듈(130)은 무선랜 모듈(131)만 포함하거나, 근거리통신 모듈(132)만 포함하거나 또는 무선랜 모듈(131)과 근거리통신 모듈(132)을 모두 포함하는 형태로 구현될 수 있다.
무선랜 모듈(131)은 제어부(110)의 제어 하에 무선 액세스 포인트(AP, access point)(미도시)가 설치된 장소에서 인터넷에 연결될 수 있다. 무선랜 모듈(131)은 미국전기전자학회(IEEE)의 무선랜 규격(IEEE802.11x)을 지원할 수 있다. 근거리통신 모듈(132)은 제어부(110)의 제어 하에 전자 장치(100)와 화상형성장치(미도시) 간의 무선 근거리 통신을 수행할 수 있다. 근거리 통신방식은 블루투스(bluetooth), 적외선 통신(IrDA, infrared data association), 와이파이 다이렉트(WiFi-Direct) 통신, NFC(Near Field Communication) 등이 포함될 수 있다.
전자 장치(100)는 성능에 따라 이동통신 모듈(120), 무선랜 모듈(131) 및 근거리통신 모듈(132) 중 적어도 하나를 포함할 수 있다. 예를 들어, 전자 장치(100)는 성능에 따라 이동통신 모듈(120), 무선랜 모듈(131) 및 근거리통신 모듈(132)들의 조합을 포함할 수 있다.
멀티미디어 모듈(140)은 방송통신 모듈(141), 오디오재생 모듈(142) 또는 동영상재생 모듈(143)을 포함할 수 있다. 방송통신 모듈(141)은 제어부(110)의 제어에 따라 방송통신 안테나(미도시)를 통해 방송국에서부터 송출되는 방송 신호(예, TV방송 신호, 라디오방송 신호 또는 데이터방송 신호) 및 방송부가 정보(예, EPG(Electronic Program Guide) 또는 ESG(Electronic Service Guide))를 수신할 수 있다. 오디오재생 모듈(142)은 제어부(110)의 제어 하에 저장되거나 또는 수신되는 디지털 오디오 파일(예, 파일 확장자가 mp3, wma, ogg 또는 wav인 파일)을 재생할 수 있다. 동영상재생 모듈(143)은 제어부(110)의 제어하에 저장되거나 또는 수신되는 디지털 동영상 파일(예, 파일 확장자가 mpeg, mpg, mp4, avi, mov, 또는 mkv인 파일)을 재생할 수 있다. 동영상재생 모듈(143)은 디지털 오디오 파일을 재생할 수 있다.
실시예에 따라 멀티미디어 모듈(140)은 방송통신 모듈(141)을 제외하고 오디오재생 모듈(142)과 동영상재생 모듈(143)만을 포함할 수 있다. 도 1에서는 상기 오디오재생 모듈(142) 및 동영상재생 모듈(143)이 멀티미디어 모듈(140)에 포함되는 것으로 도시하였으나, 다른 실시예에 따라 멀티미디어 모듈(140)의 오디오재생 모듈(142) 또는 동영상재생 모듈(143)은 제어부(110)에 포함되는 형태로 구현될 수 있다.
카메라 모듈(150)은 제어부(110)의 제어에 따라 정지이미지 또는 동영상을 촬영하는 제1 카메라(151) 및 제2 카메라(152) 중 적어도 하나를 포함할 수 있다. 또한 제1 카메라(151) 또는 제2 카메라(152)는 촬영에 필요한 광량을 제공하는 보조 광원(예, 플래시(미도시))을 포함할 수 있다. 제1 카메라(151)는 전자 장치(100)의 전면에 배치되고, 제2 카메라(152)는 전자 장치(100)의 후면에 배치될 수 있다. 다른 실시예에 따라 제1 카메라(151)와 제2 카메라(152)는 인접(예, 제1 카메라(151)와 제2 카메라(152)의 간격이 1cm 보다 크고, 8cm 보다는 작은)하게 배치되어 3차원 정지이미지 또는 3차원 동영상을 촬영할 수 있다.
GPS 모듈(155)은 지구 궤도상에 있는 복수의 GPS 위성(미도시)으로부터 전파를 수신하고, GPS 위성(미도시)으로부터 전자 장치(100)까지의 전파도달시간(Time of Arrival)을 이용하여 전자 장치(100)의 위치를 산출할 수 있다.
입/출력 모듈(160)은 적어도 하나의 버튼(161), 마이크(162), 스피커(163), 진동모터(164), 커넥터(165) 및 키패드(166) 중 적어도 하나를 포함할 수 있다.
버튼(161)은 전자 장치(100)의 하우징의 전면, 측면 또는 후면에 형성될 수 있으며, 전원/잠금 버튼, 볼륨 버튼, 메뉴 버튼, 홈 버튼, 돌아가기 버튼(back button) 및 검색 버튼 중 적어도 하나를 포함할 수 있다.
마이크(162)는 제어부(110)의 제어 하에 음성(voice) 또는 사운드(sound)를 입력받아 전기적인 신호를 생성한다.
스피커(163)는 제어부(110)의 제어 하에 이동통신 모듈(120), 서브통신 모듈(130), 멀티미디어 모듈(140) 또는 카메라 모듈(150)의 다양한 신호(예, 무선신호, 방송신호, 디지털 오디오 파일, 디지털 동영상 파일 또는 사진 촬영 등)에 대응되는 사운드를 전자 장치(100)의 외부로 출력할 수 있다. 스피커(163)는 전자 장치(100)가 수행하는 기능에 대응하는 사운드(예를 들어, 전화 통화에 대응되는 버튼 조작음, 또는 통화 연결음 등)를 출력할 수 있다. 스피커(163)는 전자 장치(100)의 하우징의 적절한 위치 또는 위치들에 하나 또는 복수로 형성될 수 있다.
진동모터(164)는 제어부(110)의 제어 하에 전기적 신호를 기계적 진동으로 변환할 수 있다. 예를 들어, 진동 모드에 있는 전자 장치(100)는 다른 장치(미도시)로부터 음성통화가 수신되는 경우, 진동모터(164)가 동작한다. 진동모터(164)는 전자 장치(100)의 하우징 내에 하나 또는 복수로 형성될 수 있다. 진동모터(164)는 스크린(190) 상을 터치하는 사용자의 터치 동작 및 스크린(190) 상에서의 터치의 연속적인 움직임에 응답하여 동작할 수도 있다.
커넥터(165)는 전자 장치(100)와 외부 장치(미도시) 또는 전원소스(미도시)를 연결하기 위한 인터페이스로 이용될 수 있다. 전자 장치(100)는 제어부(110)의 제어 하에 커넥터(165)에 연결된 유선 케이블을 통해 전자 장치(100)의 저장부(175)에 저장된 데이터를 외부 장치(미도시)로 전송하거나 또는 외부 장치(미도시)로부터 데이터를 수신할 수 있다. 이때 외부 장치는 도킹 스테이션일 수 있고, 데이터는 외부 입력 장치 예를 들면, 마우스, 키보드 등으로부터 전달된 입력 신호일 수 있다. 또한 전자 장치(100)는 커넥터(165)에 연결된 유선 케이블을 통해 전원소스(미도시)로부터 전원을 입력받거나, 전원소스를 이용하여 배터리(미도시)를 충전할 수 있다.
키패드(166)는 전자 장치(100)의 제어를 위해 사용자로부터 키 입력을 수신할 수 있다. 키패드(166)는 전자 장치(100)에 형성되는 물리적인 키패드(미도시) 또는 스크린(190)에 표시되는 가상의 키패드(미도시)를 포함할 수 있다. 전자 장치(100)에 형성되는 물리적인 키패드(미도시)는 전자 장치(100)의 성능 또는 구조에 따라 제외될 수 있다.
이어폰 연결잭(Earphone Connecting Jack, 167)에는 이어폰(미도시)이 삽입되어 전자 장치(100)에 연결될 수 있다.
센서 모듈(170)은 전자 장치(100)의 상태를 검출하는 적어도 하나의 센서를 포함할 수 있다. 예를 들어, 센서모듈(170)은 사용자의 전자 장치(100)에 대한 접근여부를 검출하는 근접센서와, 전자 장치(100) 주변의 빛의 양을 검출하는 조도센서를 포함할 수 있다. 또한 센서모듈(170)은 자이로 센서(Gyro Sensor)를 포함할 수 있다. 자이로 센서는 전자 장치(100)의 동작(예, 전자 장치(100)의 회전, 전자 장치(100)에 가해지는 가속도 또는 진동)을 검출할 수 있고, 지구 자기장을 이용해 방위(point of the compass)를 검출할 수도 있으며, 중력의 작용 방향을 검출할 수도 있다. 또한 센서모듈(170)은 대기의 압력을 측정하여 고도를 검출하는 고도계(Altimeter)를 포함할 수 있다. 상기와 같이 센서 모듈(170)에 포함된 적어도 하나의 센서는 각각의 기능에 따라 전자 장치(100)의 상태를 검출하고, 검출에 대응되는 신호를 생성하여 제어부(110)로 전송할 수 있다. 센서모듈(170)의 센서는 전자 장치(100)의 성능에 따라 추가되거나 삭제될 수 있다.
저장부(175)는 제어부(110)의 제어 하에 이동통신 모듈(120), 서브통신 모듈(130), 멀티미디어 모듈(140), 카메라 모듈(150), GPS모듈(155), 입/출력 모듈(160), 센서 모듈(170), 스크린(190)의 동작에 대응되게 입/출력되는 신호 또는 데이터를 저장할 수 있다. 저장부(175)는 전자 장치(100) 또는 제어부(110)의 제어를 위한 제어 프로그램 또는 애플리케이션들을 저장할 수 있다.
“저장부”라는 용어는 저장부(175), 제어부(110)내 롬(112), 램(113) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예, SD 카드, 메모리 스틱)를 포함한다. 저장부는 비휘발성 메모리, 휘발성 메모리, 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD)를 포함할 수 있다.
전원공급부(180)는 제어부(110)의 제어에 따라 전자 장치(100)의 하우징에 배치되는 하나 또는 복수의 배터리(미도시)에 전원을 공급할 수 있으며, 상기 하나 또는 복수의 배터리(미도시)는 전자 장치(100)에 전원을 공급할 수 있다. 또한, 전원공급부(180)는 커넥터(165)와 연결된 유선 케이블을 통해 외부의 전원소스(미도시)로부터 입력되는 전원을 전자 장치(100)로 공급할 수 있다. 실시예에 따라 전원공급부(180)는 무선 충전 기술을 통해 외부의 전원소스로부터 무선으로 입력되는 전원을 전자 장치(100)로 공급할 수도 있다.
스크린(190)은 사용자로부터 사용자 입력으로서의 터치를 수신할 수 있는 터치스크린으로 구현될 수 있다. 스크린(190)은 사용자에게 다양한 서비스(예, 통화, 데이터 전송, 방송, 사진촬영 등)에 대응되는 사용자 인터페이스를 제공할 수 있다. 스크린(190)은 사용자 인터페이스에 입력되는 적어도 하나의 터치에 대응되는 아날로그 신호를 스크린 컨트롤러(195)로 전송할 수 있다. 스크린(190)은 사용자의 신체(예, 엄지를 포함하는 손가락 등) 또는 터치가능한 입력 수단(예, 스타일러스 펜 등)을 통해 적어도 하나의 터치를 입력받을 수 있다. 또한 스크린(190)은 적어도 하나의 터치 중에서, 하나의 터치의 연속적인 움직임을 입력받을 수 있다. 스크린(190)은 입력되는 터치의 연속적인 움직임에 대응되는 아날로그 신호를 스크린 컨트롤러(195)로 전송할 수 있다.
본 발명에서 터치는 스크린(190)과 사용자의 신체 또는 터치 가능한 입력 수단과의 접촉에 한정되지 않고, 비접촉을 포함할 수 있다. 스크린(190)에서 검출 가능한 간격은 전자 장치(100)의 성능 또는 구조에 따라 변경될 수 있다.
스크린(190)은 예를 들어, 저항막(resistive) 방식, 정전용량(capacitive) 방식, 전자기유도(EMR: Electronic Magnetic Resonance) 방식(이하 EMR 방식이라 칭함), 적외선(infrared) 방식 또는 초음파(acoustic wave) 방식으로 구현될 수 있으며, 하나 이상의 방식이 조합되어 구현될 수도 있다.
스크린 컨트롤러(195)는 스크린(190)이 수신한 아날로그 신호를 디지털 신호(예, X와 Y좌표)로 변환하여 제어부(110)로 전송한다. 제어부(110)는 스크린 컨트롤러(195)로부터 수신한 디지털 신호를 이용하여 스크린(190)을 제어할 수 있다. 예를 들어, 제어부(110)는 터치에 응답하여 스크린(190)에 표시된 단축 아이콘(미도시)이 선택되게 하거나 또는 단축 아이콘(미도시)에 대응하는 동작을 실행할 수 있다. 실시예에 따라 스크린 컨트롤러(195)는 제어부(110)에 포함되는 형태로 구현될 수 있다.
도 2는 본 발명의 일 실시 예에 따른 적어도 하나의 어플리케이션을 공유하는 전자 장치들을 도시한 도면이다. 이하에서는 클라이언트 전자 장치인 제2 전자 장치(200), 제3 전자 장치(300) 및 제4 전자 장치(400) 각각과 적어도 하나의 어플리케이션을 공유하는 호스트 전자 장치, 즉 제1 전자 장치(100)에 대하여 설명하기로 한다. 제1 전자 장치(100)는 상기 제1 전자 장치(100)에서 실행 중인 적어도 하나의 어플리케이션을 제2 전자 장치(200), 제3 전자 장치(300) 및 제4 전자 장치(400)와 공유할 수 있다. 본 실시예에서, 어플리케이션을 실행하고, 다른 전자 장치들과 상기 실행된 어플리케이션 또는 상기 어플리케이션이 실행되는 화면을 공유하는 제1 전자 장치(100)를 ‘호스트(host) 전자 장치’라 한다. 또한 호스트 전자 장치로부터 상기 어플리케이션과 관련된 공유 데이터, 예를 들어 상기 어플리케이션이 실행되는 화면을 수신하여 출력하는 제2 내지 제4 전자 장치(200, 300, 400)를 ‘클라이언트(client) 전자 장치’라 하기로 한다.
제1 전자 장치(100)는 스크린(190) 상에 제1 어플리케이션(A)을 실행하는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션(B)을 실행하는 제 2 어플리케이션 실행 화면(112)을 표시할 수 있다. 제1 전자 장치(100)는, 스플릿 모드(Split Mode)로 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)을 스크린(190) 상에 표시할 수 있다. 즉, 제1 전자 장치(100)는, 도 2에 도시된 바와 같이 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)이 스크린(190) 상에서 서로 다른 영역에 각각 분리되도록 표시할 수 있다.
다른 실시예에 따라 제1 전자 장치(100)는, 프리 스타일 모드(Free Style Mode)로 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)을 스크린(190) 상에 표시할 수도 있다. 제1 전자 장치(100)는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112) 각각에 표시 우선 순위를 부여할 수 있으며, 부여된 표시 우선 순위에 기초하여 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112) 각각이 스크린(190) 상에 서로 중첩되어 표시될 수도 있다. 상기와 같이 호스트 전자 장치, 예를 들어 제1 전자 장치(100)가 복수의 어플리케이션들을 실행하는 화면들은 스플릿 모드, 프리 스타일 모드로 스크린(190) 상에 출력될 수 있을 뿐만 아니라 그 외의 다양한 방식으로 스크린(190) 상에 표시될 수 있다.
도 2에서 제1 전자 장치(100)는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)를 스플릿 모드로 표시하고 있다. 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)에는 각각의 어플리케이션(A, B)과 관련된 다수의 객체들이 표시될 수 있다. 어플리케이션 실행 화면들에 표시될 수 있는 객체는 텍스트, 도형, 아이콘, 버튼, 체크박스, 사진, 동영상, 웹(web), 맵(map) 등 다양한 형상을 포함할 수 있다. 제1 전자 장치(100)의 제어부(110)는 스크린(190)에 표시되고 있는 객체를 사용자가 터치할 경우, 객체에 미리 정해진 기능 또는 대응되는 이벤트가 실행되도록 어플리케이션을 제어할 수 있다. 또한 객체는 운영체제에 따라 뷰(view)라고 불리울 수 있다.
한편, 도 2의 실시 예에서, 제1 전자 장치(100)는 제3 어플리케이션(C)을 더 실행하고 있는 것으로 가정한다. 즉 제1 전자 장치(100)는 제1 어플리케이션(A), 제2 어플리케이션(B) 및 제3 어플리케이션(C)을 실행하고 있다고 가정한다. 또한 도 2의 제1 전자 장치(100)는 제3 어플리케이션(C)을 스크린(190) 상에 표시하고 있지는 않은 것으로 가정한다. 상기와 같이, 제1 전자 장치(100)는 제3 어플리케이션(C)을 실행시키면서, 제3 어플리케이션(C)에 의한 연산을 수행할 수는 있지만, 제3 어플리케이션(C)을 실행한 결과물을 스크린(190) 상에 표시하지 않을 수도 있다.
제1 전자 장치(100)는 제1 어플리케이션(A)을 제2 전자 장치(200)와 공유하는 것으로 가정한다. 또한 제1 전자 장치(100)는 제2 어플리케이션(B)을 제3 전자 장치(300)와 공유하는 것으로 가정한다. 아울러, 제1 전자 장치(100)는 제3 어플리케이션(C)을 제4 전자 장치(400)와 공유하는 것으로 가정한다. 그에 따라 제1 전자 장치(100)는, 제2 전자 장치(200), 제3 전자 장치(300) 및 제4 전자 장치(400) 각각과 연결을 형성할 수 있다. 제1 전자 장치(100)는 제2 전자 장치(200), 제3 전자 장치(300) 및 제4 전자 장치(400) 각각에 제1 공유 데이터, 제2 공유 데이터 및 제3 공유 데이터를 전송할 수 있다. 이때 제1 공유 데이터는 제1 어플리케이션(A)의 출력 결과물로, 비디오 데이터, 그래픽 데이터, 오디오 데이터 및 디스플레이 정보 중 적어도 하나를 포함할 수 있다. 또한 제2 공유 데이터는 제2 어플리케이션(B)의 출력 결과물일 수 있고, 제3 공유 데이터는 제3 어플리케이션(C)의 출력 결과물일 수 있다.
제2 전자 장치(200)는 제1 전자 장치(100)로부터 수신한 제1 공유 데이터를 스크린(290) 상에 출력할 수 있다. 예를 들어, 제2 전자 장치(200)는 스크린(290) 상에 제1 어플리케이션 실행 화면(211)을 표시할 수 있다. 제3 전자 장치(300)는 수신한 제2 공유 데이터를 스크린(390) 상에 출력할 수 있다. 예를 들어, 제3 전자 장치(300)는 터치스크린(390) 상에 제2 어플리케이션 실행 화면(312)을 표시할 수 있다. 제4 전자 장치(400)는 제1 전자 장치(100)로부터 수신한 제3 공유 데이터를 스크린(490) 상에 출력할 수 있다. 예를 들어, 제4 전자 장치(400)는 터치스크린(490) 상에 제3 어플리케이션 실행 화면(413)을 표시할 수 있다.
도 2는, 클라이언트 전자 장치(예를 들어, 제2 전자 장치(200), 제3 전자 장치(300), 제4 전자 장치(400))들이 단순히 각각의 디스플레이 상에 소정의 데이터를 표시하는 것만을 도시하고 있지만, 이는 단순히 예시적인 것일 뿐이다. 실시예에 따라 클라이언트 전자 장치(예를 들어, 제2 전자 장치(200), 제3 전자 장치(300), 또는 제4 전자 장치(400))는 호스트 전자 장치(예를 들어, 제1 전자 장치(100))로부터 디스플레이 데이터 및 음성 또는 진동의 멀티미디어 출력 관련 데이터 중 적어도 하나를 수신할 수 있으며, 이에 따라 디스플레이(예를 들어 스크린) 상에 소정의 데이터를 표시할 뿐만 아니라, 음성 또는 진동의 각종 멀티미디어 출력을 제공할 수도 있다.
클라이언트 전자 장치, 즉 제2 전자 장치(200) 내지 제4 전자 장치(400)는 호스트 전자 장치로부터 수신한 공유 데이터를 그대로 출력하거나 또는 공유 데이터를 장치 특성에 대응하여 변환하여 출력할 수도 있다. 예를 들어, 제2 전자 장치(200)는, 제1 전자 장치(100)가 표시하는 제1 어플리케이션 실행 화면(111)과 동일한 가로세로 비율로 제1 어플리케이션 실행 화면(211)을 표시할 수 있다. 제3 전자 장치(300)는, 제1 전자 장치(100)가 표시하는 제2 어플리케이션 실행 화면(112)을 수신하여, 이에 대한 가로세로 비율을 제3 전자 장치(300)에 대응하여 변환시킨 제2 어플리케이션 실행 화면(312)을 표시할 수 있다. 또는 다른 실시 예로, 호스트 전자 장치인 제1 전자 장치(100)가 연결된 클라이언트 전자 장치(예를 들어, 제2 전자 장치(200), 제3 전자 장치(300), 제4 전자 장치(400)) 각각에 대응하여 공유 데이터를 그대로 또는 변환하여 전송할 수도 있다. 예를 들어, 제1 전자 장치(100)는 제2 전자 장치(200)에 제1 어플리케이션 실행 화면(211)을 전송하고, 제3 전자 장치(300)에 제2 어플리케이션 실행 화면(312)를 전송하고, 제4 전자 장치(400)에 제3 어플리케이션 실행 화면(413)을 전송할 수 있다.
도 2를 참조하여 설명하면, 제2 전자 장치(200)는 제1 전자 장치(100)로부터 제1 어플리케이션 실행 화면(111)에 대응하는 제1 공유 데이터를 수신하여 제1 어플리케이션 실행 화면(211)을 스크린(290) 상에 표시할 수 있다. 제3 전자 장치(300)는 제1 전자 장치(100)로부터 제2 어플리케이션 실행 화면(112)에 대응하는 제2 공유 데이터를 수신하여 제2 어플리케이션 실행 화면(312)을 스크린(390) 상에 표시할 수 있다. 또한 제3 전자 장치(400)는 제3 어플리케이션 실행 화면(113)에 대응하는 제3 공유 데이터를 수신하여 제3 어플리케이션 실행 화면(313)을 스크린(390) 상에 표시할 수 있다.
또한 실시예에 따라 호스트 전자 장치는 클라이언트 전자 장치를 연결된 출력 장치로 판단하여 기존 어플리케이션 실행 메커니즘에 영향을 주지 않도록 설계될 수 있다. 클라이언트 전자 장치는 호스트 전자 장치를 외부 장치 또는 클라우드 서버로 인식할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 적어도 하나의 어플리케이션을 공유하는 전자 장치들의 동작의 일 예를 나타내는 순서도이다.
도 3을 참조하여 설명하면, 제1 전자 장치(100)는 제2 전자 장치(200)와 연결을 형성한다(S2). 제2 전자 장치(200)와 연결이 형성되면, 제1 전자 장치(100)는 제2 전자 장치(200)를 등록 전자 장치 리스트에 추가한다(S4). 단계 S4에서 제1 전자 장치(100)는 상기 제2 전자 장치(200)를 등록 전자 장치 리스트에 추가하기 위하여, 예를 들어 제1 전자 장치(100)는 제2 전자 장치(200)로부터 제2 전자 장치 정보를 수신할 수 있으며, 수신한 제2 전자 장치 정보를 저장할 수 있다. 제2 전자 장치 정보는, 제2 전자 장치(200)의 식별자(identification), 디스플레이 크기 정보, 해상도 정보, 디스플레이 정보, dpi 및 음성 또는 진동의 멀티미디어 출력 관련 정보 중 적어도 하나를 포함할 수 있다. 실시예에 따라 제2 전자 장치 정보는 암호화되어 보안성을 향상시킬 수도 있다.
제1 전자 장치(100)는 제2 전자 장치(200)와 공유할 어플리케이션을 결정한다(S6). 예를 들어, 제1 전자 장치(100)는 사용자 입력에 기초하여 제2 전자 장치(200)와 공유할 공유 대상 어플리케이션을 결정할 수 있다. 제1 전자 장치(100)는 스크린(190) 상에 제2 전자 장치(200)와 공유 가능한 어플리케이션 목록을 표시할 수 있으며, 사용자는 상기 스크린(190) 상에 표시된 어플리케이션 목록 중 적어도 하나의 어플리케이션을 지정하기 위한 사용자 입력을 입력할 수 있다. 제1 전자 장치(100)는 상기 사용자 입력에 기초하여 공유 대상 어플리케이션을 결정할 수 있다. 상기와 같은 사용자 입력에 기초한 공유 대상 어플리케이션 결정 방식은, 메뉴를 통하거나 또는 환경 설정과 같은 시스템 기능에 기초하여 수행될 수 있다. 메뉴를 통하여 공유 대상 어플리케이션을 결정하는 경우에는, 사용자는 공유되는 순서대로 번호 또는 부여된 식별자를 이용하여 공유 대상 어플리케이션을 선택할 수 있다. 다른 실시예에 따라 제1 전자 장치(100)는 공유 대상 어플리케이션을 지정하는 기능 키를 스크린(190) 상에 표시하고, 사용자로부터의 표시된 기능 키의 지정에 기초하여 공유 대상 어플리케이션을 결정할 수도 있다.
다른 실시 예에 따라 제1 전자 장치(100)는 공유 대상 어플리케이션을 디폴트(default)된 형태로 저장할 수 있다. 예를 들어, 제1 전자 장치(100)가 디폴트된 공유 대상 어플리케이션을 실행하는 경우, 제1 전자 장치(100)는 제2 전자 장치(200)와 어플리케이션을 공유할 수 있다. 제1 전자 장치(100)는 어플리케이션의 속성을 구성하는 파일에서, 해당 어플리케이션을 공유 대상 어플리케이션으로 디폴트하도록 설정할 수 있다. 예를 들어, 안드로이드 플랫폼의 경우에는 제1 전자 장치(100)가 메니페스트(menifest) 파일을 설정하여, 공유 대상 어플리케이션으로 디폴트하도록 설정할 수 있다. 프레임워크는 어플리케이션 속성에 대응하여 디폴트된 공유 대상 어플리케이션을 다른 전자 장치와 공유하도록 제어할 수 있다.
공유 대상 어플리케이션이 결정되면, 제1 전자 장치(100)는 공유 데이터를 생성한다(S8). 여기에서, 공유 데이터는 공유 대상 어플리케이션의 출력일 수 있다. 제1 전자 장치(100)는 공유 대상 어플리케이션의 디스플레이 데이터뿐만 아니라, 공유 대상 어플리케이션으로부터 출력되는 음성 또는 진동 데이터가 포함된 공유 데이터를 생성할 수 있다. 실시예에 따라 제1 전자 장치(100)는, 제1 전자 장치(100)로부터 출력되는 전체 데이터가 아닌 공유 대상 어플리케이션으로부터 출력되는 데이터만을 공유 데이터로 추출하여 생성할 수 있다.
공유 데이터가 생성되면, 제1 전자 장치(100)는 생성된 공유 데이터를 제2 전자 장치(200)로 전송한다(S10). 제1 전자 장치(100)는, 예를 들어 블루투스(bluetooth), 블루투스 저에너지(bluetooth low energy), 적외선 통신(IrDA, infrared data association), 와이파이 다이렉트(WiFi-Direct) 통신, NFC(Near Field Communication), 와이파이 다이렉트(Wi-fi direct) 등의 근거리 통신 방식에 기초하여 제2 전자 장치(200)로 공유 데이터를 전송할 수 있다.
실시예에 따라 클라이언트 전자 장치(예를 들어, 제2 전자 장치(200) 내지 제4 전자 장치(400))는 와이파이 다이렉트를 지원하는 악세사리를 이용할 수도 있다. 예를 들어, NFC를 이용하는 경우, NFC 리더(NFC reader)가 검출하는 범핑(bumping)에 기초하여, 검출 시 자동 공유가 수행될 수 있다. 아울러, 호스트 전자 장치(예를 들어, 제1 전자 장치(100))는 클라이언트 전자 장치와 스트리밍 또는 VPN과 같은 네트워크 프로토콜 또는 메커니즘을 이용할 수 있다.
실시예에 따라 제1 전자 장치(100)는 공유 데이터를 무선 데이터 송신에 기초하여 중계 서버(미도시)로 전송할 수 있으며, 중계 서버(미도시)는 제1 전자 장치(100)로부터 수신한 공유 데이터를 제2 전자 장치(200)로 중계할 수도 있다. 이에 따라, 제1 전자 장치(100)는 근거리 통신 방식이 동작 가능한 거리를 초과한 거리에서도 제2 전자 장치(200)와 어플리케이션을 공유할 수 있다.
다른 실시예에 따라 제1 전자 장치(100)는 공유 데이터를 제2 전자 장치(200)로 유선 통신 방식에 기초하여 전송할 수도 있다. 예를 들어, 제1 전자 장치(100)는 HDMI(high definition multimedia interface) 케이블 또는 USB(universial serial bus) 케이블로 제2 전자 장치(230)에 공유 데이터를 전송할 수 있다.
단계 S10에서 제1 전자 장치(100)로부터 공유 데이터를 수신한 제2 전자 장치(200)는 제1 전자 장치(100)로부터 수신한 공유 데이터를 출력한다(S12). 제2 전자 장치(200)는 제1 전자 장치(100)로부터 디스플레이 데이터 및 음성 또는 진동의 멀티미디어 출력 관련 데이터 중 적어도 하나를 수신할 수 있으며, 이에 따라 디스플레이 상에 소정의 데이터를 표시할 뿐만 아니라, 음성 또는 진동의 각종 멀티미디어 출력을 제공할 수도 있다.
상술한 바와 같이, 제1 전자 장치(100)는 제 2 전자 장치(200)와 어플리케이션을 공유할 수 있다. 이하에서는, 제1 전자 장치(100)가 제2 전자 장치(200)와 연결을 형성하는 S2 단계에 대하여 더욱 상세하게 설명하도록 한다.
도 4는 본 발명의 일 실시 예에 따른 전자 장치와 타 전자 장치 간의 연결의 일 예를 나타내는 순서도이다. 이하에서는 제1 전자 장치(100) 및 제2 전자 장치(200) 간의 연결을 설명하기로 한다. 도 4에서 제1 전자 장치(100)는 호스트 전자 장치이고, 제2 전자 장치(200)는 클라이언트 전자 장치인 것으로 가정한다.
먼저 제1 전자 장치(100)는 주변 장치, 예를 들어 제2 전자 장치(200)를 인식한다(S22). 여기에서, 주변 장치는 제1 전자 장치(100)와 근거리 통신을 수행할 수 있는 전자 장치를 의미할 수 있다. 실시예에 따라 주변 장치는 중계 서버(미도시)를 통하여 데이터를 송수신할 수 있는 전자 장치를 의미할 수도 있다.
예를 들어, 제1 전자 장치(100)가 블루투스 저에너지 방식을 통하여 타 전자 장치와 어플리케이션을 공유하도록 설정된 경우에는, 제2 전자 장치(200)로부터 전송되는 애드버타이즈먼트(advertisement) 신호에 기초하여 제2 전자 장치(200)를 인식할 수 있다. 또한 제1 전자 장치(100)는 기 설정된 근거리 통신 방식에서 기초한 타 전자 장치 인식 방법에 기초하여 주변 장치를 인식할 수 있다. 실시예에 따라 제1 전자 장치(100)가 중계 서버(미도시)를 통하여 타 장치, 예를 들어 제2 전자 장치(200)와 어플리케이션을 공유하도록 설정된 경우에는, 제2 전자 장치(200)의 중계 서버(미도시) 접속 여부에 기초하여 주변 장치를 인식할 수 있다.
제2 전자 장치(200)와 같은 주변 장치를 인식하면, 제1 전자 장치(100)는 어플리케이션 공유 요청을 제2 전자 장치(200)로 전송한다(S24). 어플리케이션 공유 요청은, 공유 대상 어플리케이션에 대한 정보, 제1 전자 장치(100)의 장치 정보, 제1 전자 장치(100)의 식별자, 제2 전자 장치(200)의 장치 정보 요청 등을 포함할 수 있다.
제2 전자 장치(200)는 제1 전자 장치(100)의 어플리케이션 공유 요청에 대응하여 제2 전자 장치(200)의 장치 정보를 제1 전자 장치(100)로 전송한다(S26). 실시예에 따라 제2 전자 장치(200)는 어플리케이션 공유에 대한 문의 메시지를 스크린(290)에 표시함으로써 사용자에게 알릴 수 있다. 또한 제2 전자 장치(200)는 사용자가 어플리케이션 공유에 동의한 경우에 장치 정보를 제1 전자 장치(100)로 전송할 수 있다.
상기와 같이 단계 S26에서 제2 전자 장치(200)로부터 장치 정보를 수신하면, 제1 전자 장치(100)와 제2 전자 장치(200)와의 연결이 형성된다(S28).
도 5는 본 발명의 일 실시 예에 따른 전자 장치와 타 전자 장치 간의 연결의 다른 예를 나타내는 순서도이다. 도 5에서도 도 4에서와 마찬가지로 제1 전자 장치(100)가 호스트 전자 장치이고, 제2 전자 장치(200)가 클라이언트 전자 장치인 것으로 가정한다. 도 5에서는, 도 4의 실시 예와는 대조적으로, 클라이언트 전자 장치인 제2 전자 장치(200)가 호스트 전자 장치인 제1 전자 장치(100)로 어플리케이션 공유를 요청하는 경우에 대하여 설명한다.
도 5를 참조하면, 먼저 제2 전자 장치(200)는 주변 장치, 예를 들어 제1 전자 장치(100)를 인식한다(S32). 도 4에서 상술한 바와 같이, 제2 전자 장치(200)는 기 설정된 근거리 통신 방식에서 기초한 타 전자 장치 인식 방법에 기초하여 주변 장치를 인식할 수 있다. 실시예에 따라 제1 전자 장치(100)가 중계 서버(미도시)를 통하여 제2 전자 장치(200)와 어플리케이션을 공유하도록 설정될 수 있다. 이와 같은 경우 제2 전자 장치(200)는 제1 전자 장치(100)의 중계 서버(미도시) 접속 여부에 기초하여 주변 장치, 예를 들어 제1 전자 장치(100)를 인식할 수 있다.
주변 장치가 인식되면, 제2 전자 장치(200)는 제1 전자 장치(100)로 어플리케이션 공유 요청을 전송한다(S34). 어플리케이션 공유 요청은 공유 대상 어플리케이션에 대한 정보 및 공유 요청 취지 중 적어도 하나를 포함할 수 있다.
예를 들어, 제2 전자 장치(200)는 제1 전자 장치(100)로부터 공유 가능 어플리케이션 리스트를 수신하여 터치스크린(290)에 표시할 수 있다., 또한 터치스크린(290)에 표시된 공유 가능 어플리케이션 리스트에 포함된 어플리케이션들 중 사용자에 의해 선택된 어플리케이션을, 공유 대상 어플리케이션으로 하는 공유 요청을 제1 전자 장치(100)에 전송할 수 있다.
제2 전자 장치(200)로부터 어플리케이션의 공유를 요청받은 제1 전자 장치(100)는 해당 어플리케이션의 공유를 허가한다(S36). 단계 S34에서 제2 전자 장치(200)로부터 어플리케이션 공유에 대한 문의 메시지를 수신한 제1 전자 장치(200)는 해당 문의 메시지를 스크린(190)에 표시할 수 있다. 제1 전자 장치(100)는 제2 전자 장치(200)와 어플리케이션을 공유할 것인지 여부를 결정하기 위한 사용자 입력을 사용자로부터 수신할 수 있다.
제1 전자 장치(100)는 사용자가 상기 어플리케이션의 공유에 동의한 경우에 제2 전자 장치(200)에 상기 제2 전자 장치(200)에 대응하는 장치 정보를 요청할 수 있다. 그에 따라 제2 전자 장치(200)는 상기 장치 정보 요청에 대응하여 장치 정보를 제1 전자 장치(100)로 전송한다(S38). 제1 전자 장치(1000가 제2 전자 장치(200)로부터 장치 정보를 수신하면, 제1 전자 장치(100)와 제2 전자 장치(200)와의 연결이 형성된다(S40).
상술한 바와 같이, 제1 전자 장치(100)는 스스로 제2 전자 장치(200)와의 연결을 형성할 수 있으며, 제2 전자 장치(200)로부터 연결을 요청받아 이에 대응하여 연결을 형성할 수도 있다.
도 6a 내지 6d는 본 발명의 일 실시 예에 따른 전자 장치들 사이의 연결의 일 예를 나타내는 도면들이다. 도 6a 내지 도 6d에서 제1 전자 장치(100)는 호스트 전자 장치인 것으로 가정한다.
도 6a에서와 같이, 호스트 전자 장치인 제1 전자 장치(100)는 클라이언트 전자 장치, 예를 들어 제2 전자 장치(200)와 1:1로 연결될 수 있다. 제1 전자 장치(100)와 제2 전자 장치(200)가 서로 연결되면, 제1 전자 장치(100)는 실행 중인 제1 어플리케이션(A)을 제2 전자 장치(200)와 공유할 수 있다. 실시예에 따라 제1 전자 장치(100)는 실행 중인 어플리케이션(A, B) 모두를 제2 전자 장치(200)와 공유할 수도 있다. 또한 제1 전자 장치(100)는 실행 중이지만 표시하고 있지 않은 제3 어플리케이션(C)을 제2 전자 장치(200)와 공유할 수도 있다.
도 6a를 참조하여 설명하면, 호스트 전자 장치인 제1 전자 장치(100)는 클라이언트 전자 장치인 제2 전자 장치(200)와 연결되어 있다. 또한 제1 전자 장치(100)는 제1 어플리케이션(A) 및 제2 어플리케이션(B)을 실행하고 있다. 또한 제1 전자 장치(100)의 스크린(190)에는 제1 어플리케이션(A)을 실행하는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션(B)를 실행하는 제2 어플리케이션 실행 화면(112)가 표시되고 있다. 도 6a에서 제1 전자 장치(100)와 제2 전자 장치(200)는 제1 어플리케이션(A)만을 공유하고 있는 것으로 가정한다. 제1 전자 장치(100)는 제1 어플리케이션(A) 또는 상기 제1 어플리케이션 실행 화면(111)에 대응하는 공유 데이터를 생성하여 제2 전자 장치(200)에 전송할 수 있다. 제1 전자 장치(100)와 제1 어플리케이션(A)을 공유하는 제2 전자 장치(200)는, 제1 전자 장치(100)로부터 공유 데이터를 수신하여 제1 어플리케이션 실행 화면(211)을 스크린(190)에 표시할 수 있다.
도 6b에서는 제1 전자 장치(100)가 호스트 전자 장치이고, 제2 전자 장치(200), 제3 전자 장치(300) 및 제4 전자 장치(400) 각각이 클라이언트 전자 장치인 것으로 가정한다.
도 6a에서와 같이, 제1 전자 장치(100)는 제2 전자 장치(200), 제3 전자 장치(300) 및 제4 전자 장치(400) 각각과 제1 어플리케이션(A), 제2 어플리케이션(B) 및 제3 어플리케이션(C) 중 적어도 하나의 어플리케이션을 공유할 수 있다. 도 6b에서 제1 전자 장치(100)는 제1 어플리케이션(A), 제2 어플리케이션(B) 및 제3 어플리케이션(C)를 실행하고 있지만, 스크린(190) 상에는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)만을 표시하고 있다. 또한 제1 전자 장치(100)는 제2 전자 장치(200)와는 제1 어플케이션(A)을 공유하고, 제3 전자 장치(300)와는 제2 어플리케이션(B)를 공유하고, 제4 전자 장치(400)와는 제3 어플리케이션(C)를 공유하고 있는 것으로 가정한다. 도 6b에서, 제1 전자 장치(100)의 스크린(190)에는 제3 어플리케이션(C)를 실행하는 어플리케이션 실행 화면이 표시되지 않고 있지만, 본 실시예에 따른 제1 전자 장치(100)는 제3 어플리케이션에 대응하는 공유 데이터를 생성하여 제4 전자 장치(400)로 전송함으로써, 제4 전자 장치(400)와 제3 어플리케이션(C)을 공유할 수 있다.
그에 따라 제1 전자 장치(100)와 제1 어플리케이션(A)를 공유하는 제2 전자 장치(200)의 스크린(290)에는 제1 어플리케이션(A)을 실행하는 제1 어플리케이션 실행 화면(211)이 표시될 수 있다. 제1 전자 장치(100)와 제2 어플리케이션(B)를 공유하는 제3 전자 장치(300)의 스크린(390)에는 제2 어플리케이션(B)을 실행하는 제2 어플리케이션 실행 화면(212)이 표시될 수 있다. 또한 제1 전자 장치(100)와 제3 어플리케이션(C)를 공유하는 제4 전자 장치(400)의 스크린(490)에는 제3 어플리케이션(C)를 실행하는 제3 어플리케이션 실행 화면(213)이 표시될 수 있다.
도 6c는 호스트 전자 장치가 복수 개인 경우의 전자 장치들 사이의 연결을 설명하기 위한 개념도이다. 도 6c에서 호스트 전자 장치는 제1 전자 장치(100) 및 제5 전자 장치(500)인 것으로 가정한다.
제1 전자 장치(100)는 제1 어플리케이션(A)을 실행하고 있으며, 그에 따라 스크린(190)에 제1 어플리케이션 실행 화면(111)을 표시하고 있다. 제5 전자 장치(500)는 제2 어플리케이션(B)을 실행하고 있으며, 그에 따라 제2 어플리케이션 실행 화면(512)을 터치스크린(590)에 표시하고 있다.
도 6c에서 제1 전자 장치(100)는 제1 어플리케이션(A)을 클라이언트 전자 장치인 제2 전자 장치(200)와 공유하고, 제5 전자 장치(500)는 제2 어플리케이션(B)을 제2 전자 장치(200)와 공유하는 것으로 가정한다. 그에 따라 제1 전자 장치(100)는 제1 어플리케이션(A)에 대응하는 제1 공유 데이터를 생성하여 제2 전자 장치(200)로 전송할 수 있다. 또한 제5 전자 장치(500)는 제2 어플리케이션(B)에 대응하는 제2 공유 데이터를 생성하여 제2 전자 장치(200)로 전송할 수 있다.
제2 전자 장치(200)는 제1 전자 장치(100) 및 제5 전자 장치(500) 각각으로부터 수신한 제1 공유 데이터 및 제2 공유 데이터를 스크린(290)에 출력할 수 있다. 제2 전자 장치(200)는 도 6c에 도시된 바와 같이 제1 어플리케이션 실행 화면(211) 및 제2 어플리케이션 실행 화면(212)을 스크린(290) 상에 표시할 수 있다.
또한 도 6c에 도시된 바와 같이, 제2 전자 장치(200)는 제1 어플리케이션 실행 화면(211) 및 제2 어플리케이션 실행 화면(212) 각각을 윈도우(window) 형태로 표시할 수 있다. 또한 제2 전자 장치(200)는 제1 어플리케이션 실행 화면(211) 및 제2 어플리케이션 실행 화면(212) 각각에 표시 우선 순위를 부여할 수 있다. 예를 들어, 제2 전자 장치(200)는 제1 어플리케이션 실행 화면(211)에 제2 어플리케이션 실행 화면(212)보다 높은 표시 우선 순위를 부여할 수 있다. 그에 따라 제2 전자 장치(200)는 제1 어플리케이션 실행 화면(211)이 제2 어플리케이션 실행 화면(212)의 일부 또는 전체를 덮도록 표시할 수 있다.
도 6d는 본 발명의 다른 실시 예에 따른 전자 장치의 개념도들이다. 도 6d에서 제1 전자 장치(100) 및 제5 전자 장치(400)는 호스트 전자 장치이고, 제2 전자 장치(200) 및 제6 전자 장치(600)는 클라이언트 전자 장치인 것으로 가정한다. 또한 도 6d에서 제5 전자 장치(500)는 제6 전자 장치(600)에 대하여 호스트 전자 장치인 동시에, 제1 전자 장치(100)에 대하여 클라이언트 전자 장치로서 동작하는 것으로 가정한다. 상기의 제5 전자 장치(500)와 같이, 본 실시예에 따른 전자 장치들은 호스트 전자 장치인 동시에 클라이언트 전자 장치로서 동작할 수도 있다.
도 6d를 참조하면, 제1 전자 장치(100)는 제1 어플리케이션(A) 및 제2 어플리케이션(B)을 실행하고 있다. 그에 따라 제1 전자 장치(100)의 스크린(190) 상에는 제1 어플리케이션(A)을 실행하는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션(B)을 실행하는 제2 어플리케이션 실행 화면(112)이 표시될 수 있다. 또한 호스트 전자 장치로서의 제1 전자 장치(100)는 제1 어플리케이션(A)을 클라이언트 전자 장치인 제2 전자 장치(200)와 공유하고 있다. 그에 따라 제2 전자 장치(200)는 제2 어플리케이션(B)를 실행하는 제2 어플리케이션 실행 화면(211)을 스크린(290)에 표시할 수 있다.
또한 도 6d에서 호스트 전자 장치로서의 제1 전자 장치(100)는 클라이언트 전자 장치로서의 제5 전자 장치(500)와 제1 어플리케이션(A) 및 제2 어플리케이션(B)을 공유한다. 그에 따라 제5 전자 장치(500)는 제1 어플리케이션(A)를 실행하는 제1 어플리케이션 실행 화면(511) 및 제2 어플리케이션(B)을 실행하는 제2 어플리케이션 실행 화면(512)을 스크린(590) 상에 표시할 수 있다.
또한 제5 전자 장치(500)는 호스트 전자 장치로서 동작하여 클라이언트 전자 장치인 제6 전자 장치(600)와 제2 어플리케이션(B)을 공유할 수 있다. 즉 제5 전자 장치(500)는 제2 어플리케이션(B)을 실행하는 어플리케이션 실행 화면(512)을 제6 전자 장치(600)와 공유할 수 있다. 그에 따라 제6 전자 장치(600)는 제2 어플리케이션(B)을 실행하는 제2 어플리케이션 실행 화면(612)을 스크린(690) 상에 표시한다.
도 6e는 본 발명의 또 다른 실시 예에 따른 전자 장치의 개념도들이다. 도 6e에서, 제1 전자 장치(100)는 호스트 전자 장치이고, 제7 전자 장치(700) 및 제8 전자 장치(800)는 클라이언트 전자 장치인 것으로 가정한다. 제1 전자 장치(100)는 제1 어플리케이션(A) 및 제2 어플리케이션(B)을 실행하고 있다. 그에 따라 제1 전자 장치(100)는 제1 어플리케이션(A)을 실행하는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션(B)을 실행하는 제2 어플리케이션 실행 화면(112)을 스크린(190) 상에 표시한다. 또한 도 6e에서 제 1전자 장치(100)는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)을 프리스타일(freestyle) 모드로 표시하는 것으로 가정한다. 즉, 제1 전자 장치(100)는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112) 각각에 표시 우선 순위를 부여할 수 있다. 도 6e를 예로 들어 설명하면, 제1 전자 장치(100)는 제1 어플리케이션 실행 화면(111)의 표시 우선 순위보다 제2 어플리케이션 실행 화면(112)의 표시 우선 순위를 높게 부여할 수 있다. 그에 따라 제1 전자 장치(100)는 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)이 중첩되는 부분에서는, 제2 어플리케이션 실행 화면(112)이 스크린(190) 상에 표시되도록 제어할 수 있다. 즉, 제1 어플리케이션 실행 화면(111) 및 제2 어플리케이션 실행 화면(112)이 중첩되는 부분에서는, 제1 어플리케이션 실행 화면(111)은 스크린(190) 상에 표시되지 않을 수 있다.
도 6e에서, 호스트 전자 장치인 제1 전자 장치(100)는 제1 어플리케이션(A)을 클라이언트 전자 장치인 제7 전자 장치(700)와 공유하는 것으로 가정한다. 또한 제1 전자 장치(100)는 클라이언트 전자 장치인 제8 전자 장치(800)와 제2 어플리케이션(B)을 공유하는 것으로 가정한다. 제1 전자 장치(100)는 제1 어플리케이션(A)을 실행하는 제1 어플리케이션 실행 화면(111)을 제1 공유 데이터로서 제7 전자 장치(700)로 전송할 수 있다. 또한 제1 전자 장치(100)는 제2 어플리케이션(B)을 실행하는 제2 어플리케이션 실행 화면(112)을 제2 공유 데이터로서 제8 전자 장치(800)에 전송할 수 있다. 그에 따라 제7 전자 장치(700)의 스크린(790) 상에는 제1 어플리케이션(A)을 실행하는 제1 어플리케이션 실행 화면(711)이 표시되고, 제8 전자 장치(800)의 스크린(890) 상에는 제2 어플리케이션(B)를 실행하는 제2 어플리케이션 실행 화면(812)이 표시될 수 있다. 특히, 제7 전자 장치(700)는 제1 전자 장치(100)은, 제1 전자 장치(100)의 스크린(190) 상에서 일부 가려진 제1 어플리케이션 실행 화면(111)과는 대조적으로 제1 어플리케이션(A) 전체가 실행되는 제2 어플리케이션 실행 화면(711)을 스크린(790) 상에 표시할 수 있다.
이상에서와 같이, 호스트 전자 장치는 다양한 실시 예에 따라서 클라이언트 전자 장치와 어플리케이션을 공유할 수 있다. 특히 호스트 전자 장치는 다른 호스트 전자 장치로부터 공유 데이터를 수신한 후, 수신한 공유 데이터를 클라이언트 전자 장치와 공유할 수도 있다. 제1 전자 장치(100)는 연결 대상 클라이언트 전자 장치에 대한 그룹을 미리 설정할 수 있다. 아울러, 제1 전자 장치(100)는 연결 대상 클라이언트 전자 장치에 대응하는 공유 대상 어플리케이션도 미리 설정할 수 있다.
이하에서는 호스트 전자 장치가 화면을 인식하는 방법에 대하여 설명하도록 한다.
도 7a 및 7b는 본 발명의 일 실시예에 따른 호스트 전자 장치의 좌표 설정 방식의 일 예를 나타내는 도면들이다. 도 7a 및 도 7b에서 제1 전자 장치(100)는 호스트 전자 장치이고, 제2 전자 장치(200)는 클라이언트 전자 장치인 것으로 가정한다.
도 7a를 참조하여 설명하면, 호스트 전자 장치인 제1 전자 장치(100)는 가로 600 픽셀 및 세로 900 픽셀의 크기의 디스플레이, 즉 스크린(190)을 포함하는 것으로 가정한다. 또한 클라이언트 전자 장치인 제2 전자 장치(200)는 가로 1200 픽셀 및 세로 800 픽셀의 크기의 디스플레이, 즉 스크린(290)을 포함하는 것으로 가정한다. 상기와 같이, 디스플레이, 즉 스크린(190, 290)의 크기 단위를 픽셀로 설명한 것은 단순히 예시적인 것으로, 당업자는 픽셀 단위가 아닌 디스플레이 크기 설정 단위를 다양하게 변경 실시할 수 있으며, 스크린(190, 290)의 크기 단위에 의하여 본 발명의 권리범위가 제한되지는 않는다.
또한 도 7a에서 호스트 전자 장치인 제1 전자 장치(100)는 클라이언트 전자 장치인 제2 전자 장치(200)와 연결을 형성하고 있는 것으로 가정한다. 상술한 바와 같이, 호스트 전자 장치는 클라이언트 전자 장치와의 연결을 형성하면서 클라이언트 전자 장치로부터 상기 클라이언트 전자 장치에 대응하는 장치 정보를 수신할 수 있다. 그에 따라 도 7a에서의 제1 전자 장치(100)는 제2 전자 장치(200)의 스크린(290)으로 구현된 디스플레이 크기가 가로 1200 픽셀 및 세로 800 픽셀임을, 상기 장치 정보를 통하여 확인할 수 있다.
본 실시예에서 제1 전자 장치(100)는 제2 전자 장치(200)의 장치 정보에 기초하여 제1 전자 장치(100)의 디스플레이 좌표 및 제2 전자 장치(200)의 디스플레이 좌표를 설정할 수 있다. 이때 제1 전자 장치(100)는, 제1 전자 장치(100)와, 제2 전자 장치(200) 각각에 독립된 좌표를 부여할 수 있다.
도 7a에서 제1 전자 장치(100)는, 상기 제1 전자 장치(100)의 스크린(190)의 좌측 하단에 (0, 0, 1)의 좌표를 부여하고, 스크린(190)의 우측 하단에 (600, 0, 1)의 좌표를 부여하고, 스크린(190)의 좌측 상단에 (0, 900, 1)의 좌표를 부여하고, 스크린(190)의 우측 상단에 (600, 900, 1)의 좌표를 부여하고 있다. 여기에서, 좌표의 앞 두 자리는 제1 전자 장치(100)의 스크린(190) 상에서의 x축 좌표 및 y축 좌표를 의미할 수 있다. 또한 좌표의 뒤 한자리는 전자 장치 식별 번호일 수 있으며, 호스트 전자 장치인 제1 전자 장치(100)의 식별 번호는 1인 것으로 가정한다.
또한 호스트 전자 장치인 제1 전자 장치(100)는 클라이언트 전자 장치인 제2 전자 장치(200)의 스크린(290)의 좌측 하단에 (0, 0, 2)의 좌표를 부여하고, 제2트 전자 장치(200)의 스크린(290)의 우측 하단에 (1200, 0, 2)의 좌표를 부여하고, 제2 전자 장치(200)의 디스플레이(290)의 좌측 상단에 (0, 800, 2)의 좌표를 부여하고, 제2 전자 장치(200)의 스크린(290)의 우측 상단에 (1200, 800, 2)의 좌표를 부여하고 있다. 여기에서, 좌표의 앞 두 자리는 스크린(290) 상에서의 x축 좌표 및 y축 좌표를 의미할 수 있다. 또한 좌표의 뒤 한자리는 전자 장치 식별 번호일 수 있으며, 클라이언트 전자 장치인 제2 전자 장치(200)의 식별 번호는 2인 것으로 가정한다.
한편, 도 7b의 실시 예에서는 호스트 전자 장치인 제1 전자 장치(100)가 제1 전자 장치(100)와, 클라이언트 전자 장치인 제2 전자 장치(200)에 하나의 좌표계를 부여할 수 있다. 도 7b에서, 제1 전자 장치(100)는 상기 제1 전자 장치(100)의 스크린(190)의 좌측 하단에 (0, 0)의 좌표를 부여하고, 터치스크린(190)의 우측 하단에 (600, 0)의 좌표를 부여하며, 스크린(190)의 좌측 상단에 (0, 900)의 좌표를 부여하고, 스크린(190)의 우측 상단에 (600, 900)의 좌표를 부여하고 있다. 여기에서, 좌표의 두 자리는 스크린(190) 상에서의 x축 좌표 및 y축 좌표를 의미할 수 있다.
또한 제1 전자 장치(100)는 클라이언트 전자 장치인 제2 전자 장치(200)의 스크린(290)의 좌측 하단에 (600, 0)의 좌표를 부여하고, 제1 전자 장치(200)의 스크린(290)의 우측 하단에 (1800, 0)의 좌표를 부여하고, 제1 전자 장치(200)의 스크린(290)의 좌측 상단에 (600, 800)의 좌표를 부여하고, 제2 전자 장치(200)의 스크린(290)의 우측 상단에 (1800, 800)의 좌표를 부여하고 있다. 여기에서, 좌표의 두 자리는 스크린(290) 상에서의 x축 좌표 및 y축 좌표를 의미할 수 있다.
상술한 바와 같이, 제1 전자 장치(100)는 제2 전자 장치(200)의 스크린이(290)의 시작점의 x축 좌표를 600으로 부여할 수 있다. 이에 따라, 제1 전자 장치(100)는, 제2 전자 장치(200)의 스크린(290)이 제1 전자 장치(100)의 스크린(190) 우측에 배치된 것과 같은 효과를 줄 수 있는 좌표를 부여할 수 있다. 즉, 제1 전자 장치(100)는 제2 전자 장치(200)의 스크린(290)이 방향성을 가지도록 좌표를 부여할 수 있다. 상기와 같이 좌표가 부여되면 제1 전자 장치(100)의 우측 하단의 좌표(600, 0)와, 제2 전자 장치(200)의 좌측 하단의 좌표(600, 0)가 같아질 수 있다. 본 실시예에서는 상기와 같이 호스트 전자 장치의 디스플레이와 클라이언트 전자 장치의 디스플레이의 좌표가 연속되는 형태로 연결되도록 설정함으로써 하나의 디스플레이를 사용하는 효과를 발생시킬 수 있다. 즉 본 실시예에서 제1 전자 장치(100)의 스크린(190)과 제2 전자 장치(200)의 스크린(290)은 연결되어 하나의 디스플레이처럼 작동될 수 있다.
한편, 클라이언트 전자 장치인 제2 전자 장치(200)의 스크린(290)이 호스트 전자 장치인 제1 전자 장치(100)의 스크린(190) 우측에 배치된 것과 같이 좌표를 부여하는 것은 단순히 예시적인 것에 불과하다. 호스트 전자 장치인 제1 전자 장치(100)는 상기 제1 전자 장치(100)는 물론이고 제2 전자 장치(200)를 비롯한 클라이언트 전자 장치들 각각에 상/하/좌/우의 다양한 방향성을 반영하여 좌표를 부여할 수 있다. 그에 따라 호스트 전자 장치인 제1 전자 장치(100)는, 클라이언트 전자 장치인 제2 전자 장치(200)의 화면을 제1 전자 장치(100)의 화면으로부터 연장된 화면으로 인식할 수 있다.
또한 호스트 전자 장치인 제1 전자 장치(100)의 프레임워크에서 정의된 어플리케이션 공유 매니저는 제1 전자 장치(100)의 스크린(190) 및 클라이언트 전자 장치인 제2 전자 장치(200)의 스크린(290)에 좌표를 부여하며, 이를 관리할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 호스트 전자 장치의 제어 방법의 일 예를 나타낸 순서도이다. 도 8에서 호스트 전자 장치는 제1 전자 장치(100)인 것으로 가정하고, 클라이언트 전자 장치는 제2 전자 장치(200)인 것으로 가정한다.
도 8을 참조하여 설명하면, 먼저 제1 전자 장치(100)는 공유 대상 어플리케이션을 결정한다(S802). 공유 대상 어플리케이션이 결정되면, 제1 전자 장치(100)는 해당 공유 대상 어플리케이션을 실행하고(S804), 해당 어플리케이션에 대한 표면 플링거(surface flinger) 작업을 수행한다(S806). 상기와 같이 표면 플링거 작업을 수행함으로써, 제1 전자 장치(100)는 클라이언트 전자 장치인 제2 전자 장치(200)에 전송할 공유 데이터를 생성할 수 있다. 본 실시예에서 제1 전자 장치(100)는 먼저 제2 전자 장치(200)와 공유하고 있는 어플리케이션이 실행되고 있는 실행 화면을 포함하는 디스플레이 데이터를 공유 데이터로서 생성할 수 있다. 실시예에 따라 제1 전자 장치(100)는 상기 디스플레이 데이터를, 예를 들어 바탕화면 또는 다른 어플리케이션 디스플레이 데이터와 같은 다른 디스플레이 데이터와 합성(composition)하기 이전에 추출할 수도 있다.
실시예에 따라 제1 전자 장치(100)는 공유 대상 어플리케이션에 대한 표면 플링거 작업 결과로서 상기 공유 대상 어플리케이션의 실행 화면의 내부 정보를 조정할 수 있다(S808). 제1 전자 장치(100)는 클라이언트 전자 장치, 예를 들어 제2 전자 장치(200)의 장치 정보에 대응하여 공유 대상 어플리케이션 실행 화면의 내부 정보를 조정할 수 있다. 예를 들어, 제2 전자 장치(200)가 PC인 경우 제1 전자 장치(100)는 공유 대상 어플리케이션의 버전을 PC 버전으로 조정하거나 또는 공유 대상 어플리케이션 실행 화면의 해상도를 PC 버전으로 변환할 수 있다. 실시예에 따라 제2 전자 장치(200)의 해상도가 제1 전자 장치(100)의 해상도와 상이한 경우, 제1 전자 장치(100)는 공유 대상 어플리케이션 실행 화면의 해상도를 상기 제2 전자 장치(200)의 해상도로 변환할 수 있다.
또한 도 8에서는 S808 단계를 도시하였지만, 다른 실시예에 따라 S808 단계의 내부 정보 조정은 생략 가능하다. 예를 들어, 제1 전자 장치(100) 및 제2 전자 장치(200)가 동일한 장치인 경우에는, 내부 조정 단계를 생략할 수 있다.
이후 제1 전자 장치(100)는 공유 데이터를 생성한다(S810). 제1 전자 장치(100)는 공유 대상 어플리케이션의 실행 화면 또는 상기 공유 대상 어플리케이션 실행 화면의 내부 정보가 조정된 어플리케이션 화면을 공유 데이터로서 생성할 수 있다. 실시예에 따라 제1 전자 장치(100)는 내부 정보가 조정된 실행을 음성 또는 진동과 같은 다른 멀티미디어 출력과 결합함으로써 공유 데이터를 생성할 수도 있다. 즉 공유 데이터는 공유 대상 어플리케이션의 실행 화면뿐만 아니라 음성 또는 진동과 같은 멀티미디어 데이터를 더 포함하는 형태로 구현될 수 있다. 단계 S810에서 공유 데이터가 생성되면, 제1 전자 장치(100)는 상기 공유 데이터를 제2 전자 장치(200)로 전송한다(S812). 본 실시예에서는 제1 전자 장치(100)가 공유 대상 어플리케이션에 대한 표면 플링거(surface flinger) 작업을 수행함으로써, 클라이언트 전자 장치인 제2 전자 장치(200)에 전송할 공유 데이터를 생성하는 구성에 대하여 기재하였으나, 다른 실시예에 따라 호스트 전자 장치가 클라이언트 전자 장치와 공유할 공유 데이터를 생성하기 위한 방법은 여러가지가 있을 수 있다. 예를 들어, 제1 전자 장치(100)는 스크린(190)을 미러링함으로써 공유 데이터를 생성할 수도 있다.
또한 다른 실시예에 따라 원격 프레임 버퍼(Remote Frame Buffer: RFB) 프로토콜 등을 이용하여 호스트 전자 장치 및 클라이언트 전자 장치 간의 화면을 공유하거나 또는 어플리케이션을 공유할 수도 있다. 그에 따라 호스트 전자 장치는 공유되는 어플리케이션이 클라이언트 전자 장치에서 실행될 수 있도록 하는 제어 정보를 생성하여 클라이언트 전자 장치로 전송할 수도 있다.
도 9는 본 발명의 일 실시 예에 따른 호스트 전자 장치 및 클라이언트 전자 장치의 제어 방법의 일 예를 나타내는 순서도이다. 도 10a 및 도 10b는 도 9의 호스트 전자 장치 및 클라이언트 전자 장치가 공유 데이터를 공유하는 일 예를 나타낸 도면이다. 설명의 편이를 위하여 도 9, 도 10a 및 도 10b에서 제1 전자 장치(100)는 호스트 전자 장치이고, 제2 전자 장치(200)는 클라이언트 전자 장치인 것으로 가정한다.
도 9를 참조하면, 호스트 전자 장치, 즉 제1 전자 장치(100)는 공유 대상 어플리케이션을 실행하고(S902), 공유 데이터를 생성한다(S904). 제1 전자 장치(100)는 생성된 공유 데이터를 클라이언트 전자 장치, 즉 제2 전자 장치(200)로 전송한다(S906). 제2 전자 장치(200)는 단계 S906에서 제1 전자 장치(100)로부터 수신한 공유 데이터를 출력한다(S908). 도 10a 및 도 10b를 참조하여 설명하면 제1 전자 장치(100)는 갤러리 어플리케이션 및 지도 어플리케이션을 실행하여, 갤러리 어플리케이션을 실행하는 제1 실행 화면(1001) 및 지도 어플리케이션을 실행하는 제2 실행 화면(1002)을 스크린(190)에 표시할 수 있다. 또한 제1 전자 장치(100)는, 공유 데이터를 제2 전자 장치(200)에 전송함으로써 지도 어플리케이션을 제2 전자 장치(200)와 공유할 수 있다. 본 실시예에서 공유 데이터는 갤러리 어플리케이션을 실행하는 제1 실행 화면(1001) 및 지도 어플리케이션을 실행하는 제2 실행 화면(1002) 중 적어도 하나가 될 수 있다. 도 10a에서 제2 전자 장치(200)는 제2 실행 화면(1002)이 포함된 공유 데이터를 제1 전자 장치(100)로부터 수신할 수 있다. 그에 따라 제2 전자 장치(200)는 지도 어플리케이션을 실행하는 제2 실행 화면(1012)을 스크린(290)에 표시한다.
이후, 제2 전자 장치(200)는 사용자 명령을 입력받을 수 있다(S910). 실시예에 따라 제2 전자 장치(200)는 공유 데이터를 수신하면, 이를 출력하기 위한 더미(dummy) 윈도우를 생성할 수 있다. 본 실시예에서 ‘더미 윈도우’는 클라이언트 전자 장치, 즉 제2 전자 장치(200)가 사용자 명령을 입력받은 경우, 상기 사용자 입력을 호스트 전자 장치, 즉 제1 전자 장치(100)로 전송할 수 있도록 클라이언트 전자 장치(예를 들어, 제2 전자 장치(200)) 상에 설정된 윈도우일 수 있다. 본 실시예에서 제2 전자 장치(200)는 더미 윈도우를 통하여, 예를 들어 드래그 제스처와 같은 사용자 명령을 사용자로부터 입력받을 수 있다. 제2 전자 장치(200)는 드래그 제스처가 입력된 터치스크린(290)의 입력 좌표, 입력 시간, 입력 제스처의 종류와 같은 정보를 제1 전자 장치(100)로 전송할 수 있다.
도 10a를 참조하면, 제2 전자 장치(200)는 사용자(1)로부터 핀치 인(pinch-in) 제스처(1020)를 사용자 입력으로서 터치스크린(290)을 통해 입력받고 있다. 핀치 인 제스처(1020)는 사용자(1)에 의하여 터치스크린(290)의 제1 터치 지점(1020a)과 제2 터치 지점(1020b) 간의 거리가 감소하는 제스처이다. 즉 도 10a에서 사용자(1)는 스크린(290)의 제1 터치 지점(1020a)을 접촉하고 있는 엄지 손가락과 제2 터치 지점(1020b)을 접촉하고 있는 검지 손가락을 오므림으로써 엄지 손가락과 검지 손가락 간의 거리를 감소시키는 핀치 인 제스처를 사용자 입력으로서 스크린(290)에 입력하고 있다.
또한 도 10a를 참조하면, 제2 전자 장치(200)는 제1 전자 장치(100)로부터 제2 실행 화면(1002)를 공유 데이터로서 수신하여 지도 어플리케이션을 실행하는 제2 실행 화면(1012)을 스크린(290) 상에 표시할 수 있다. 실시예에 따라 제2 전자 장치(200)는 지도 어플리케이션을 실행하는 제2 실행 화면(1012) 상에 더미 윈도우를 생성하여 배치할 수 있다. 또한 제2 전자 장치(200)는 더미 윈도우의 투명도를 조정하여 스크린(290) 상에 더미 윈도우가 표시되지 않도록 제어할 수도 있다. 즉, 제2 전자 장치(200)는 사용자 명령을 입력받기 위한 더미 윈도우를 생성한 이후, 상기 더미 윈도우를 투명하게 조정하여 공유 대상 어플리케이션을 출력하는 윈도우(1012) 상에 배치할 수 있다.
도 10b는 도 10a의 제2 전자 장치에 핀치 인 제스처를 사용자 입력으로서 제2 전자 장치(100)에 입력한 이후의 제1 전자 장치(100) 및 제2 전자 장치(200)를 도시한 도면이다. 도 10b를 참조하면, 제2 전자 장치(200)는 지도 어플리케이션이 실행되는 제2 실행 화면(1013)이 스크린(290) 상에 표시되도록 제어하고 있다. 또한 실시예에 따라 사용자(1)가 입력한 핀치 인 제스처(1020)는 지도 어플리케이션이 실행되는 제2 실행 화면(1012)이 아닌 더미 윈도우에 입력될 수도 있다. 상기와 같이 제2 전자 장치(200)의 더미 윈도우에 핀치 인 제스처(1020)가 입력된 경우, 제2 전자 장치(200)는 상기 핀치 인 제스처(1020) 또는 핀치 인 제스처(1020)와 관련된 데이터를, 사용자 명령 정보로서 제1 전자 장치(100)로 전송할 수 있다. 제2 전자 장치(200)는 핀치 인 제스처(1020)가 입력된 스크린(290) 상의 입력 좌표, 입력 시각 및 입력 제스처의 종류 중 적어도 하나를 포함하는 사용자 명령 정보를, 상기 핀치 인 제스처(1020)와 관련된 데이터로서 제1 전자 장치(100)로 전송할 수 있다. 상기와 같이 제2 전자 장치(200)는 사용자 명령 정보를 제1 전자 장치(100)로 전송한다(S912).
도 9를 참조하면, 제1 전자 장치(100)는 제2 전자 장치로부터 사용자 명령 정보를 수신하고, 제1 전자 장치(100)는 제2 전자 장치(200)로부터 수신한 사용자 명령 정보를 공유 대상 어플리케이션에 입력한다(S914). 상기와 같이 본 실시예에서는 클라이언트 전자 장치인 제2 전자 장치(200)에 입력된 사용자 입력이, 공유 대상 어플리케이션을 실행하고 있는 제1 전자 장치(100)의 사용자 입력으로서 입력될 수 있다.
제1 전자 장치(100)는 사용자 명령 정보를 공유 대상 어플리케이션에 입력한 결과인 대응 이벤트를 출력한다(S916). 예를 들어, 도 10b의 실시 예에서, 제1 전자 장치(100)는 제2 전자 장치(200)로부터 수신한 사용자 명령 정보인 핀치 인 제스처(1020)를 공유 대상 어플리케이션인 지도 어플리케이션에 사용자 입력으로서 입력할 수 있다. 본 실시예에서 지도 어플리케이션은 핀치 인 제스처(1020)에 대응하는 동작으로서 축소 지도를 제공하도록 기 설정되었다고 가정하기로 한다. 도 10a 및 도 10b를 참조하면, 제1 전자 장치(100)는 핀치 인 제스처(1020)를 지도 어플리케이션에 입력한다. 지도 어플리케이션은 상기 핀치 인 제스처(1020)에 대응하는 동작을 수행할 수 있다. 핀치 인 제스처(1020)에 대응하는 지도 어플리케이션의 동작은, 스크린(190)을 통해 현재 표시되고 있는 지도를 축소하는 것이라고 가정한다.
제1전자 장치(100)는 제2 전자 장치(200)를 통해 입력된 핀치 인 제스처(1020)에 대응하여 현재 스크린(190)에 표시되고 있는 지도를 축소하도록 지도 어플리케이션을 제어할 수 있다. 그에 따라 도 10b에 도시된 바와 같이 제1 전자 장치(100)의 스크린(190)에는 제2 실행 화면(1002)에서보다 지도가 축소된 제3 실행 화면(1003)이 스크린(190)에 표시될 수 있다.
다시 도 9를 참조하면, 단계 S916에서 사용자 명령 정보에 대응하는 이벤트가 출력되었으므로 제1 전자 장치(100)는 공유 데이터를 다시 생성한다(S918). 공유 데이터가 다시 생성되면, 전자 장치(100)는 상기 공유 데이터를 제2 전자 장치(200)로 전송한다(S920).
단계 S920에서 제1 전자 장치(100)로부터 공유 데이터를 수신한 제2 전자 장치(200)는 상기 공유 데이터를 출력한다(S922). 도 10b를 예를 들어 설명하면, 제2 전자 장치(200)는 제1 전자 장치(100)에 표시되고 있는 제3 실행 화면(1003)을 공유 데이터로서 제1 전자 장치(100)로부터 수신할 수 있다. 제3 실행 화면(1003)은 도 10a에서의 제2 실행 화면(1002)에 표시되던 지도가 축소된 것이므로, 제2 전자 장치(200)는 제3 실행 화면(1003)과 마찬가지로 제2 실행 화면(1012)에 표시되던 지도가 축소된 제3 실행 화면(1013)을 스크린(290)에 표시할 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 데이터를 공유하는 방법의 일 예를 나타낸 순서도이다. 설명의 편이를 위하여 도 11에서 제1 전자 장치(100)는 호스트 전자 장치이고 제2 전자 장치(200)는 클라이언트 전자 장치인 것으로 가정한다. 호스트 전자 장치인 제1 전자 장치(100)는 어플리케이션을 실행한다(S1102). 어플리케이션이 실행되면, 제1 전자 장치(100)는 상기 어플리케이션의 내부 정보를 변경한다(S1104). 이후, 제1 전자 장치(100)는 제2 전자 장치(200)와 공유할 공유 데이터를 생성한다(S1106). 본 실시예에서, 제1 전자 장치(100)는 제2 전자 장치(200)와 공유 중인 어플리케이션, 즉 공유 대상 어플리케이션이 실행되고 있는 실행 화면의 내부 정보를 변경하여 공유 데이터를 생성할 수 있다. 제1 전자 장치(100)는 공유 데이터를 제2 전자 장치(200)로 전송한다(S1108).
제2 전자 장치(200)는 단계 S1108에서 호스트 전자 장치인 제1 전자 장치(100)로부터 공유 데이터를 수신한다. 제2 전자 장치(200)는 제1 전자 장치(100)로부터 수신한 공유 데이터를 스크린(290) 상에 표시함으로써 출력한다(S1110). 이후 제2 전자 장치(200)는 사용자로부터 사용자 명령을 입력받고(S1112), 상기 사용자 입력에 대응하는 사용자 명령 정보를 제1 전자 장치(100)에 전송한다(S1114).
예를 들어, 제2 전자 장치(200)는 스크린(290)의 한 점을 터치하는 사용자 입력을 사용자로부터 입력받을 수 있다. 또한 상술한 바와 같이, 제2 전자 장치(200)는 상기 제2 전자 장치(200)로 입력된 사용자 입력에 대응하는 사용자 명령 정보(예를 들어, 상기 사용자 입력이 입력된 지점의 좌표)를 제1 전자 장치(100)에 전달함으로써, 제1 전자 장치(100)가 상기 사용자 입력에 따른 동작을 수행할 수 있도록 할 수 있다.
제1 전자 장치(100)는, 제2 전자 장치(200)로부터 수신한 사용자 명령 정보를 상기 제1 전자 장치(100)에 적용할 수 있도록 변환한다(S1116). 실시예에 따라 제1 전자 장치(100)는 단계 S1104에서의 내부 정보 변경에 기초하여 사용자 명령 정보를 변환할 수 있다. 예를 들어, 제1 전자 장치(100)의 해상도와 제2 전자 장치(200)의 해상도는 다를 수 있다. 해상도가 서로 상이하면, 동일한 객체를 선택하기 위한 사용자 입력이라 하더라도 장치에 따라 입력된 좌표가 달라지게 된다. 예를 들어, 특정 객체의 좌표가 제1 전자 장치(100)에서는 (350, 50)이라고 가정하면, 제2 전자 장치(200)에서의 좌표는 (700, 160)가 될 수 있다. 단계 S1104에서 제1 전자 장치(100)는 상기의 좌표 (350, 50)을 (700, 160)으로 변환함으로써 내부 정보를 변경할 수 있다. 또한 단계 S1116에서 상기의 좌표 (700, 160)을 (350, 50)으로 변환함으로써 제2 전자 장치(200)로부터 수신한 사용자 명령 정보를 내부 정보 변경에 기초하여 변환할 수 있다.
제1 전자 장치(100)는 변환된 사용자 명령 정보를 어플리케이션에 입력한다(S1118). 제1 전자 장치(100)의 어플리케이션은 상기 변환된 사용자 명령 정보를 입력받아 그에 대응하는 이벤트를 출력할 수 있다. 어플리케이션으로부터 상기 사용자 명령 정보에 대응하는 이벤트가 출력되면(S1120), 제1 전자 장치(100)는 상기 이벤트에 대응하는 공유 데이터를 생성한다(S1122). 제1 전자 장치(100)는 상기 이벤트에 대응하는 공유 데이터를 제2 전자 장치(200)에 전송한다(S1124). 제2 전자 장치(200)는 단계 S1112에서의 사용자 명령에 따른 결과로서, 단계 S1124에서 제1 전자 장치(100)로부터 공유 데이터를 수신한다. 제2 전자 장치(200)는 공유 데이터를 출력한다(S1126).
도 12는 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 데이터를 공유하는 방법의 다른 예를 나타낸 순서도이다. 설명의 편이를 위하여 도 12에서 제1 전자 장치(100)는 호스트 전자 장치이고 제2 전자 장치(200)는 클라이언트 전자 장치인 것으로 가정한다.
호스트 전자 장치인 제1 전자 장치(100)는 제2 전자 장치(200)와 공유 중인 어플리케이션을 실행한다(S1202). 어플리케이션이 실행되면, 제1 전자 장치(100)는 제2 전자 장치와 공유할 공유 데이터를 생성한다(S1204). 공유 데이터가 전송되면, 제1 전자 장치(100)는 상기 공유 데이터를 제2 전자 장치(200)로 전송한다(S1206).
제1 전자 장치(100)로부터 공유 데이터를 수신한 제2 전자 장치(200)는 상기 공유 정보의 내부 정보를 변경한다(S1208). 본 실시에에 따른 제2 전자 장치(100)는, 제1 전자 장치(100)로부터 수신한 공유 데이터를 출력하기 위하여 공유 데이터의 내부 정보를 변경할 수 있다. 본 실시예에 따른 제2 전자 장치(200)는 제1 전자 장치(100)로부터 수신한 공유 데이터가 제2 전자 장치(200)에 의해 출력될 수 있는 포맷을 가지도록 상기 공유 데이터를 변환함으로써 상기 공유 데이터의 내부 정보를 변경할 수 있다.
제2 전자 장치(200)는 내부 정보가 변경된 공유 데이터를 출력한다(S1210). 단계 S1210에서 제2 전자 장치(200)의 스크린(290)은 제2 전자 장치(200)에 의해 출력될 수 있는 포맷을 가지도록 변환된 공유 데이터를 표시할 수 있다.
이후, 제2 전자 장치(200)는 사용자로부터 사용자 명령을 입력받을 수 있다(S1212). 예를 들어, 제2 전자 장치(200)는 스크린(290)의 한 점을 터치하는 사용자 입력을 사용자로부터 입력받을 수 있다.
제2 전자 장치(200)는 사용자 명령을 내부 정보 변경에 대응하여 변환한다(S1214). 단계 S1214에서 본 실시예에 따른 제2 전자 장치(200)는 단계 S1212에서 입력된 사용자 명령을, 제1 전자 장치(100)에 의해 판독될 수 있는 포맷을 가지도록 변환함으로써, 사용자 명령을 내부 정보 변경에 대응하여 변환할 수 있다. 예를 들어, 제2 전자 장치(200)는 상기 제2 전자 장치(200)로 입력된 사용자 입력에 대응하는 사용자 명령 정보(예를 들어, 스크린(290) 상의 사용자 입력이 입력된 지점의 좌표)를 제1 전자 장치(100)의 어플리케이션에 적용할 수 있도록 좌표 변환할 수 있다.
제2 전자 장치(200)는 변환된 사용자 명령 정보를 제1 전자 장치(100)로 전송한다(S1216). 제1 전자 장치(100)는 변환된 사용자 명령 정보를 어플리케이션에 입력한다(S1218). 제1 전자 장치(100)의 어플리케이션은 상기 변환된 사용자 명령 정보를 입력받아 그에 대응하는 이벤트를 출력할 수 있다. 어플리케이션으로부터 상기 사용자 명령 정보에 대응하는 이벤트가 출력되면(S1220), 제1 전자 장치(100)는 상기 이벤트에 대응하는 공유 데이터를 생성한다(S1222). 제1 전자 장치(100)는 상기 이벤트에 대응하는 공유 데이터를 제2 전자 장치(200)로 전송한다(S1224). 제2 전자 장치(200)는 단계 S1212에서의 사용자 명령에 따른 결과로서, 단계 S1224에서 제1 전자 장치(100)로부터 공유 데이터를 수신한다. 제2 전자 장치(200)는 공유 데이터를 출력한다(S1226). 실시예에 따라 제2 전자 장치(100)는 단계 S1224에서 제1 전자 장치(100)로부터 수신한 공유 데이터의 내부 정보를 변경할 수 있으며, 단계 S1226에서 내부 정보가 변경된 공유 데이터를 출력할 수도 있다.
도 13a 내지 도 13c는 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 공유 데이터를 공유하는 다른 예를 나타낸 도면들이다.
도 13a를 참조하면, 제1 전자 장치(100)는 가로 600 픽셀 및 세로 900 픽셀의 크기의 디스플레이, 즉 스크린(190)을 포함하는 형태로 구현될 수 있다. 제2 전자 장치(200)는 가로 1200 픽셀 및 세로 800 픽셀의 크기의 디스플레이, 즉 스크린(290)을 포함하는 형태로 구현될 수 있다. 상술한 바에서 디스플레이 즉 스크린(190, 290)의 크기 단위를 픽셀로 설명한 것은 단순히 예시적인 것으로, 당업자는 픽셀 단위가 아닌 디스플레이 크기 설정 단위를 다양하게 변경 실시할 수 있으며, 스크린(190, 290)의 크기 단위에 의하여 본 발명의 권리범위가 제한되지는 않는다.
도 13a에서 제1 전자 장치(100)는 스크린(190) 상측에 갤러리 어플리케이션을 실행하는 제1 실행 화면(1301)을 표시하고, 스크린(190) 하측에 지도 어플리케이션을 실행하는 제2 실행 화면(1302)을 표시한다. 도 13a의 실시 예에서 제1 전자 장치(100)는, 제1 전자 장치(100) 및 제2 전자 장치(200) 각각에 대응하는 별도의 좌표를 설정할 수 있다. 제1 전자 장치(100)는 (0, 0, 1), (0, 450, 1), (600, 0, 1) 및 (600, 450, 1)의 네 지점을 모서리로 하는 직사각형의 영역에 지도 어플리케이션의 실행 화면, 즉 제2 실행 화면(1302)을 표시할 수 있다.
제1 전자 장치(100)는, 제2 실행 화면(1302)이 클라이언트 전자 장치(200)의 스크린(290) 전면에 표시될 수 있도록 내부 정보 변경을 수행할 수 있다. 예를 들어, 도 13a의 실시 예에서 호스트 전자 장치인 제1 전자 장치(100)는 제2 실행 화면(1302)의 크기를 가로 방향으로 2배 확대하고, 세로 방향으로 16/5배 확대하도록 내부 정보를 변경할 수 있다.
제1 전자 장치(100)는 제2 실행 화면(1302)의 내부 정보를 변경한 공유 데이터를 생성할 수 있다. 제1 전자 장치(100)는 내부 정보가 변경된 공유 데이터를 클라이언트 전자 장치인 제2 전잦 장치(200)로 전송할 수 있다. 제2 전자 장치(200) 는 제1 전자 장치(100)로부터 수신한 공유 데이터를 스크린(290) 상에 표시할 수 있다. 도 13a에 도시된 바와 같이, 제2 전자 장치(200)는 내부 정보가 변경된 공유 데이터, 즉 제2 실행 화면(1312)을 1200 × 800의 크기로 표시할 수 있다. 상기와 같이, 도 13a에서 제1 전자 장치(100)는 내부 정보 변경을 통하여 제2 실행 화면(1302)이 제2 전자 장치(200)의 해상도에 적용될 수 있도록 할 수 있다.
도 13a에서, 제2 전자 장치(200)는 사용자 명령을 입력받고 있다. 사용자(1)는 제2 실행 화면(1012)의 ”A-Pizza”에 대응하는 위치를 클릭(1010)할 수 있다. 더욱 상세하게, 사용자(1)는 스크린(290)의 (700, 160) 지점을 터치할 수 있다. 이때 상기의 터치는 사용자 명령으로서 제1 전자 장치(100) 또는 제2 전자 장치(200)에 입력될 수 있다. 또한 사용자 명령은, 제2 전자 장치(200)에 의하여 사용자 명령 정보로서 제1 전자 장치(100)로 전달될 수 있다.
제2 전자 장치(200)는 사용자 명령 정보를 제1 전자 장치(100)로 전송할 수 있다. 예를 들어, 제2 전자 장치(200)는 디스플레이(290)의 (700, 160) 지점에 사용자(1)로부터의 터치 제스처(1332)가 입력되었다는 정보를 제1 전자 장치(100)로 전송할 수 있다.
제1 전자 장치(100)는 내부 정보 변경에 대응하여 사용자 명령 정보를 변환할 수 있다. 도 13a에서 제1 전자 장치(100)는 공유 대상 어플리케이션인 지도 어플리케이션을 실행하는 제2실행 화면(1302)의 크기를 가로 방향으로 2배 확대하고, 세로 방향으로 16/5배 확대함으로써 내부 정보를 변경할 수 있다. 또한 실시예에 따라 본 실시예에서 제1 전자 장치(100)는 사용자 명령 정보에 따른 확대 비율의 역수인 1/2 및 5/16을 가로, 세로 좌표에 곱함으로써 제2 전자 장치(200)로부터 수신한 사용자 명령 정보를 변환할 수도 있다. 도 13b를 참조하면 제1 전자 장치(100)는 사용자 명령 정보인 (700, 160) 지점으로의 터치 제스처 입력(1331)을, 내부 정보 변경에 대응하여 가로, 세로 좌표 각각에 1/2 및 5/16을 곱한 (350, 50)에 대응하는 지점에 입력된 터치 제스처(1331)로서 변환할 수 있다.
제1 전자 장치(100)는 변환된 사용자 명령 정보인 (350, 50) 지점에의 터치 제스처(1331)를 공유 대상 어플리케이션, 예를 들어 도 13a 내지 도 13b의 지도 어플리케이션에 입력할 수 있다. 제1 전자 장치(100)는 변환된 사용자 명령 정보에 대한 대응 이벤트를 출력하고, 공유 데이터를 생성할 수 있다. 제1 전자 장치(100)는 공유 데이터를 제2 전자 장치(200)로 전송할 수 있고, 제2 전자 장치(200)는 제1 전자 장치(100)로부터 수신한 공유 데이터를, 예를 들어 스크린(290)을 통해 출력할 수 있다.
예를 들어, 제1 전자 장치(100)는 사용자 명령 정보에 대응하여, ”A-Pizza”의 오브젝트에 터치 제스처(1331)가 입력된 것으로 판단할 수 있다. 제1 전자 장치(100)는 터치 제스처(1331)를 사용자 명령으로서 지도 어플리케이션에 입력할 수 있다. 또한 제1 전자 장치(100)는 사용자 명령에 대응하는 이벤트로서, ”A-Pizza”에 대한 정보를 포함하는 제3 실행 화면(1041)을 도 13c에 도시된 바와 같이 스크린(190)에 표시할 수 있다. 제1 전자 장치(100)는 제3 실행 화면(1041)을 공유 데이터로서 제2 전자 장치(200)로 전송할 수 있으며, 제2 전자 장치(200)는 제3 실행 화면(1042)을 표시할 수 있다. 실시예에 따라 제2 전자 장치(200)는 제1 전자 장치(100)로부터 수신한 제3 실행 화면(1041)의 내부 정보를 변경하여 제3 실행 화면(1042)를 생성하고, 상기 생성된 제3 실행 화면(1042)를 스크린(290)을 통해 출력할 수도 있다.
도 14는 본 발명의 일 실시 예에 따른 호스트 전자 장치에서의 시스템 아키텍처(architecture)의 일 예를 나타낸 도면이다. 호스트 전자 장치의 프레임워크(1410)에는 멀티 윈도우 매니저(Multi window manager)(1411), 어플리케이션 공유 매니저(application share manager)(1412) 및 프레임 버퍼(frame buffer)(1413)가 정의될 수 있다. 멀티 윈도우 매니저(1411)는 클라이언트 전자 장치에서 실행되는 복수 개의 어플리케이션 각각에 대응하는 복수 개의 윈도우의 크기, 투명도, 위치, dpi, 해상도 등을 관리할 수 있다. 적어도 하나의 액티비티(activity)(1401 내지 1404)는 멀티 윈도우 매니저(1411)로부터 API를 호출하여 처리할 수 있다. 멀티 윈도우 매니저(1411)는 콜백(callback)을 제공할 수도 있다. 멀티 윈도우 매니저(1411)는 적어도 하나의 액티비티(1401 내지 1404)를 호스트 전자 장치에서 표시하도록 관리할 수 있다.
멀티 윈도우 매니저(1411)는 어플리케이션 공유 매니저(1412)에 공유 대상 어플리케이션을 제공할 수 있으며, 어플리케이션 공유 매니저(1412)는 공유 대상 어플리케이션에 대한 공유 데이터를 클라이언트 전자 장치(1450)로 전송할 수 있다. 또는 어플리케이션 공유 매니저(1412)는 공유 대상 어플리케이션을 직접 입력받아 전송할 수도 있다.
한편, 프레임 버퍼(1413)는 전송할 공유 데이터를 임시 저장할 수 있다. 어플리케이션 공유 매니저(1412)는 어플리케이션 화면을 Wifi, 3G/4G 데이터 통신 또는 블루투스 등의 다양한 통신 방식에 기초하여 전송할 수 있다. 클라이언트 전자 장치(1450)는 수신한 어플리케이션 화면(1451)을 표시할 수 있다.
한편, 클라이언트 전자 장치(1450)가 사용자로부터 이벤트를 입력받으면, 상기 클라이언트 전자 장치(1450)는 상기 입력된 이벤트를 어플리케이션 공유 매니저(1412)로 전달할 수 있다. 어플리케이션 공유 매니저(1412)는 수신된 이벤트를 대응하는 액티비티(1401 내지 1404)에 출력할 수 있다.
도 15는 본 발명의 일 실시 예에 따른 호스트 전자 장치 및 클라이언트 전자 장치에서의 계층의 일 예를 나타낸 도면이다. 호스트 전자 장치(1500)는 제1 어플리케이션 실행 화면(1501)을 실행하여 표시할 수 있다. 호스트 전자 장치(1500)는 어플리케이션 계층(1551), 어플리케이션 프레임워크 계층(1552), 어플리케이션 공유 서비스 계층(1553), 표면 제어기 계층(1554), 네트워크 인터페이스(network interface)(1555), 프레임워크 계층(1556) 및 드라이버(1557)를 정의할 수 있다. 어플리케이션 계층(1551)에서는, 예를 들어 제1 어플리케이션(A)이 실행될 수 있다. 어플리케이션 프레임워크 계층(1552)은 어플리케이션 계층(1551)의 인터페이스일 수 있다. 어플리케이션 공유 서비스 계층(1553)에서는 어플리케이션 프레임워크 계층(1552)을 통하여 인터페이싱되는, 예를 들어 제1 어플리케이션(A) 데이터를 입력받을 수 있다.
어플리케이션 공유 서비스 계층(1553)에서는 프레임워크(1556)에서 표면 제어기(1554)에게 해당 어플리케이션의 표면을 공유 데이터로서 전송하도록 할 수 있다. 네트워크 인터페이스(1555)는 클라이언트 전자 장치(1510)의 네트워크 인터페이스(1565)로 해당 어플리케이션의 표면을 전송할 수 있다. 프레임 워크(1556)는 API 또는 콜백을 제공할 수 있으며, 드라이버(1557)는 하드웨어를 제어할 수 있다.
클라이언트 전자 장치(1510)의 네트워크 인터페이스(1565)는, 예를 들어 제1 어플리케이션(A)의 표면을 공유 데이터로서 수신할 수 있다. 프레임워크(1566)에서의 표면 제어기(1564)는 수신한 표면의 내용을 가공하여 어플리케이션 공유 서비스 계층(1563)으로 전달할 수 있다. 어플리케이션 공유 서비스 계층(1563)은 공유 데이터 전용 뷰어(viewer) 등의 어플리케이션을 이용하여 수신한 표면을 출력하도록 어플리케이션 프레임워크 계층(1562)으로 전달한다. 어플리케이션 프레임워크 계층(1562)은 전달받은 표면을 공유 데이터 전용 뷰어(viewer) 등의 어플리케이션(1561)으로 전달하여 출력하도록 한다. 한편, 공유 데이터 전용 뷰어(viewer) 등의 어플리케이션은 사용자로부터 이벤트를 입력받아 이를 어플리케이션 프레임워크 계층(1562)으로 전달할 수 있다. 어플리케이션 프레임워크 계층(1562)은 입력된 이벤트를 어플리케이션 공유 서비스 계층(1563)으로 전달하며, 어플리케이션 공유 서비스 계층(1563)은 네트워크 인터페이스(1565)를 통하여 호스트 전자 장치(1500)로 전송할 수 있다. 프레임워크 계층(1566)은 API 또는 콜백을 제공할 수 있으며, 드라이버(1567)는 하드웨어를 제어할 수 있다.
도 16은 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 공유 데이터를 공유하는 또 다른 예를 나타낸 도면이다.
도 16을 참조하면, 제1 전자 장치(1610: E1)은 제2 전자 장치(1620: E2) 및 제3 전자 장치(1630: E3)와 연결되어 있다. 본 실시예에서 제1 전자 장치(1610)가 호스트 전자 장치이고, 제2 전자 장치(1620) 및 제3 전자 장치(1630)는 제1 전자 장치(1610)에 대한 클라이언트 전자 장치인 것으로 가정한다.
도 16을 참조하면, 제1 전자 장치(1610)의 스크린(1611)에는 제1 전자 장치(1610)이 현재 실행하고 있는 어플리케이션(G)의 실행 화면이 표시되어 있다. 또한 스크린(1611)은 제1 전자 장치(1610)에 의하여 실행 가능한 어플리케이션들(A, B, C, D, E, F)의 리스트(1612)를 스크린(1611)의 좌측에 표시할 수 있고, 제1 전자 장치(1610)와 연결된 전자 장치들(E2, E3)의 리스트(1613)를 스크린(1611)의 우측에 표시할 수 있다. 제1 전자 장치(1610)를 사용하는 사용자(1)는 리스트(1612)에 포함된 어플리케이션들(A, B, C, D, E, F) 중 어느 하나를 선택하여 리스트(1613)에 포함된 전자 장치들(E2, E3)로 드래깅하는 드래그 입력을 제1 전자 장치(1610)에 입력함으로써, 제1 전자 장치(1610)의 어플리케이션들(A, B, C, D, E, F)을 다른 전자 장치들(E2, E3)과 공유할 수 있다.
도 16을 참조하면, 사용자(1)는 리스트(1612) 중 어플리케이션 A를 선택하여 제2 전자 장치(E2)로 드래깅하고, 어플리케이션 C 및 D를 선택하여 제3 전자 장치(E3)로 드랭깅하고 있다. 또한 제2 전자 장치(1620)는 어플리케이션 H를 실행 중이었다고 가정한다. 제2 전자 장치(1620)는 어플리케이션 H를 실행하고 있는 도중에 제1 전자 장치(1610)와 어플리케이션 A를 공유하게 된다. 그에 따라 제2 전자 장치(1620)의 스크린(1621)에는 어플리케이션 A의 실행 화면과 어플리케이션 H의 실행 화면이 표시될 수 있다. 또한 제1 전자 장치(1610)와 어플리케이션 C 및 D를 공유하게 된 제3 전자 장치(1630)의 스크린(1631)에는 어플리케이션 C 및 D의 실행 화면들이 표시될 수 있다.
다른 실시예에 따라 공유되는 어플리케이션은 제1 전자 장치(1610)에 의하여 실행 중인 아닌 어플리케이션일 수 있다. 즉 본 실시예에서 제1 전자 장치(1610)는, 드래그 입력에 따라 제1 전자 장치(1610)에서는 실행하고 있지 않은 어플리케이션을 제2 전자 장치(1620) 또는 제3 전자 장치(1630)가 실행하도록 제2 전자 장치(1620) 또는 제3 전자 장치(1630)를 제어할 수도 있다.
도 17은 본 발명의 일 실시 예에 따른 호스트 전자 장치와 클라이언트 전자 장치가 공유 데이터를 공유하는 또 다른 예를 나타낸 도면이다.
도 17을 참조하면, 제1 전자 장치(E1: 1710)는 제2 전자 장치(E2: 1720)와 연결되어 있고, 제2 전자 장치(1720)는 제1 전자 장치(1710) 및 제3 전자 장치(E3: 1730)과 연결되어 있으며, 제3 전자 장치(E3: 1730)는 제2 전자 장치(E2: 1720)과 연결되어 있다. 또한 본 실시예에서 제1 전자 장치(1710)는 제2 전자 장치(1720)의 호스트 전자 장치이고, 제2 전자 장치(1720)는 제1 전자 장치(1710)의 클라이언트 전자 장치인 동시에 제3 전자 장치(1730)의 호스트 전자 장치이며, 제3 전자 장치(1730)는 제2 전자 장치(1720)의 클라이언트 전자 장치인 것으로 가정한다.
도 17을 참조하면, 제1 전자 장치(1710)의 스크린(1711)에는 제1 전자 장치(1710)가 현재 실행하고 있는 어플리케이션(G)의 실행 화면이 표시되어 있다. 또한 스크린(1711)은 제1 전자 장치(1710)에 의하여 실행 가능한 어플리케이션들(A, B, C, D, E, F)의 리스트(1712)를 스크린(1711)의 좌측에 표시할 수 있고, 제1 전자 장치(1710)와 연결된 전자 장치(E2)의 리스트(1713)를 스크린(1711)의 우측에 표시할 수 있다. 또한 제2 전자 장치(1720)는 제2 전자 장치(1720)와 연결된 전자 장치(E1, E3)의 리스트(1723)를 스크린(1721)의 우측에 표시할 수 있다. 마찬가지로 제3 전자 장치(1730)는 제3 전자 장치(1730)와 연결된 전자 장치(E2)의 리스트(1733)를 스크린(1731)의 우측에 표시할 수 있다.
실시예에 따라 제1 전자 장치(1710)를 사용하는 사용자(1)는 리스트(1712)에 포함된 어플리케이션들(A, B, C, D, E, F) 중 어느 하나를 선택하여 리스트(1713)에 포함된 전자 장치(E2)로 드래깅하는 드래그 입력을 제1 전자 장치(1710)에 입력함으로써, 제1 전자 장치(1710)의 어플리케이션들(A, B, C, D, E, F)을 다른 전자 장치(E2)와 공유할 수 있다.
도 17을 참조하면, 사용자(1)는 리스트(1712) 중 어플리케이션 A를 선택하여 제2 전자 장치(1720)로 드래깅하고 있다. 이때 제2 전자 장치(1720)는 어플리케이션 H를 실행 중이었다고 가정한다. 제2 전자 장치(1720)는 어플리케이션 H를 실행하고 있는 도중에 제1 전자 장치(1710)와 어플리케이션 A를 공유하게 된다. 그에 따라 제2 전자 장치(1720)의 스크린(1721)에는 어플리케이션 A의 실행 화면과 어플리케이션 H의 실행 화면이 함께 표시될 수 있다.
제1 전자 장치(1710)를 사용하는 사용자(1)는 리스트(1712) 중 어플리케이션 C를 선택하여 제2 전자 장치(1720)와 연결된 제3 전자 장치(E3)로 드래깅할 수도 있다. 이때 제3 전자 장치(1730)는 어플리케이션 I를 실행 중이었다고 가정한다. 어플리케이션 C를 선택한 사용자의 드래그 입력은 제1 전자 장치(1710)와 연결된 제2 전자 장치(1720)에 전달될 수 있다. 제2 전달 장치(1720)는 상기 드래그 입력에 대응하여 제3 전자 장치(1730)를 제어함으로써 어플리케이션 C가 제3 전자 장치(1730)에 의하여 실행되도록 할 수 있다. 그에 따라 제3 전자 장치(1730)의 스크린(1731)에는 어플리케이션 C와 I의 실행 화면이 표시될 수 있다.
도 18은 본 발명의 일 실시 예에 따른 호스트 전자 장치와 액세서리 장치가 공유 데이터를 공유하는 또 다른 예를 나타낸 도면이다. 본 실시예에서 제1 전자 장치(E1: 1810)는 제2 전자 장치 장치(E2: 1820)의 호스트 전자 장치이고, 제2 전자 장치(1820)는 제1 전자 장치(1810)의 클라이언트 전자 장치인 것으로 가정한다. 또한 도 18에서 클라이언트 전자 장치 즉 제2 전자 장치(1820)는 호스트 전자 장치의 액세서리 장치일 수 있다.
도 18을 참조하면, 제1 전자 장치(1810)의 스크린(1811)에는 제1 전자 장치(1810)이 현재 실행하고 있는 어플리케이션(B)의 실행 화면이 표시되어 있다. 또한 스크린(1811)은 제1 전자 장치(1810)에 의하여 실행 가능한 어플리케이션들(A, B, C, D, E, F, G, H)의 리스트(1812)를 스크린(1811)의 좌측에 표시할 수 있고, 제1 전자 장치(1810)와 연결된 전자 장치들(E2, E3)의 리스트(1813)를 스크린(1811)의 우측에 표시할 수 있다.
도 18에서 제1 전자 장치(1810)는 클라이언트 전자 장치로서 액세서리 장치들, 예를 들어 호스트 전자 장치에 탈착 가능하거나 또는 상기 호스트 전자 장치와 통신이 가능한 기기들과 연결될 수 있다. 액세서리 장치들은, 예를 들어, TV, 모니터 등의 디스플레이 장치, 디지털 시계 등이 될 수 있다. 실시예에 따라 호스트 전자 장치, 예를 들어 제1 전자 장치(1810)는 디스커버리(discovery) 동작을 수행함으로써, 상기 제1 전자 장치(1810)와 근접한 위치에 있는 동시에 상기 제1 전자 장치(1810)와 통신이 가능한 기기들을 검출할 수 있다. 제1 전자 장치(1810)는 상기 디스커버리 동작을 통해 검출된 액세서리 장치들(예를 들어, 디스플레이 장치 등)을 사용자(1)에게 알리고 상기 액세서리 장치들과 제1 전자 장치(1810)를 연결할 것인지 여부를 결정하기 위한 사용자 입력을 수신할 수 있다. 본 실시예에서 액세서리 장치는 클라이언트 전자 장치으로 동작할 수 있는 장치들을 가리킨다. 액세서리 장치들과 제1 전자 장치(1810)를 연결할 것인지 여부를 결정하기 위한 사용자 입력을 수신하면, 제1 전자 장치(1810)는 해당 액세서리 장치를 클라이언트 전자 장치로서 결정한다. 즉 호스트 전자 장치는 호스트 전자 장치와 연결된 액세서리 장치를 클라이언트 전자 장치로서 인식할 수 있다. 이때 호스트 전자 장치는 액세서리 장치로부터 상기 액세서리 장치에 대한 장치 정보를 수신할 수 있다. 또한 클라이언트 전자 장치인 제2 전자 장치(1820)가 제1 전자 장치(1810)와 연결되면, 상기 제2 전자 장치(1820)는 호스트 전자 장치에 해당하는 제1 전자 장치(1810)의 제어에 따라 동작하게 된다.
상기와 같이 액세서리 장치, 예를 들어 제2 전자 장치(1820)과 제1전자 장치(1810)이 연결되면, 스크린(1811)에 표시되는 리스트(1813)에 제2 전자 장치(E2: 1820)가 포함될 수 있다. 또한 본 실시예에 따른 사용자(1)는 도 18에 도시된 바와 같이 드래그 입력을 통하여 액세서리 장치, 즉 제2 전자 장치(1820)의 스크린(1821)에 표시될 어플리케이션(A)의 실행 화면을 결정할 수 있다.
도 18을 참조하면, 사용자(1)는 리스트(1812) 중 어플리케이션 A를 선택하여 제1전자 장치(1810)과 연결된 액세서리 장치, 즉 제2 전자 장치(1820)로 드래깅하는 드래그 입력을 제1 전자 장치(1810)로 입력하고 있다. 본 실시예에 따른 호스트 전자 장치, 즉 제1 전자 장치(1810)는 도 18에 도시된 바와 같이 액세서리 장치와 공유하기 위한 공유 데이터를 생성하고, 상기 공유 데이터를 액세서리 장치로 전송할 수 있다. 실시예에 따라 호스트 전자 장치(예를 들어 제1 전자 장치(1810))는 액세서리 장치(예를 들어 제2 전자 장치(1820))로부터 상기 액세서리 장치의 장치 정보를 수신할 수 있다. 또한 호스트 전자 장치는 상기 장치 정보를 기초로 공유 데이터를 생성하여 액세서리 장치에 전송함으로써, 액세서리 장치와 데이터를 공유할 수 있다. 이때, 액세서리 장치의 장치 정보는, 상기 액세서리 장치 장치의 식별자, 디스플레이 크기 정보, 해상도 정보, 디스플레이 정보 및 음성 또는 진동의 멀티미디어 출력 관련 정보 등을 포함할 수 있다.
액세서리 장치, 예를 들어 제2 전자 장치(1820)는 제1 전자 장치(1810)와 어플리케이션 A를 공유한다. 실시예에 따라 제2 전자 장치(1820)는, 상기 제1 전자 장치(1810)로부터 공유 데이터, 예를 들어 어플리케이션 A의 실행 화면을 수신하여 스크린(1821)에 표시할 수 있다. 실시예에 따라 어플리케이션 A의 실행 화면은, 상기 제2 전자 장치(1820)의 장치 정보에 기초하여 상기 제1 전자 장치(1810)가 생성한 데이터일 수 있다.
또한 본 실시예에 따른 호스트 전자 장치와 클라이언트 전자 장치 간의 연결은 NFC, WiFi Direct, Bluetooth 및 IR 통신 등의 단거리 통신 방식뿐만 아니라 LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 등의 유무선 광역 통신 방식을 통해서도 가능하다. 또한 호스트 전자 장치 또는 클라이언트 전자 장치는 연결되어 있는 전자 장치의 리스트를 표시하여 사용자에게 제공할 수 있다. 실시예에 따라 호스트 전자 장치 또는 클라이언트 전자 장치는 연결 가능한 전자 장치를 자동 검색하여 그 결과를 리스트로 사용자에게 제공할 수도 있다. 본 실시예에 따른 사용자는 리스트에 포함된 적어도 하나의 전자 장치를 선택함으로써 해당 전자 장치와 연결될 수 있다. 실시예에 따라 전자 장치들 간의 연결은 1:M(M은 자연수), M:1 또는 M:N(N은 자연수)의 형태로 이루어질도 수 있다.
본 발명의 실시예들은 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 또한 본 발명의 실시예들은 제어부 및 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의해 구현될 수 있고, 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 따라서, 본 발명은 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.
또한, 전자 장치는 유선 또는 무선으로 연결되는 프로그램 제공 장치로부터 프로그램을 수신하여 저장할 수 있다. 프로그램 제공 장치는 본 발명의 실시예들을 수행하도록 하는 지시들을 포함하는 프로그램, 본 발명의 실시예들에 필요한 정보 등을 저장하기 위한 메모리와, 전자 장치와의 유선 또는 무선 통신을 수행하기 위한 통신부와, 전자 장치의 요청 또는 자동으로 해당 프로그램을 송수신 장치로 전송하는 제어부를 포함할 수 있다.
100: 전자 장치 110: 제어부
111: CPU 112: ROM
113: RAM 120: 이동 통신 모듈
130: 서브 통신 모듈 131: 무선 랜 모듈
132: 근거리 통신 모듈 140: 멀티미디어 모듈
141: 방송 통신 모듈 142: 오디오 재생 모듈
143: 동영상 재생 모듈 150: 카메라 모듈
151: 제1카메라 152: 제2카메라
153: GPS 모듈 160: 입출력 모듈
161: 버튼 162: 마이크
163: 스피커 164: 진동 모터
165: 커넥터 166: 키패드
167: 이어폰 연결잭 170: 센서 모듈
175: 저장부 180: 전원 공급부
190: 스크린 195: 스크린 컨트롤러

Claims (47)

  1. 제1클라이언트(client) 전자 장치와 통신을 수행하는 호스트(host) 전자 장치의 제어 방법에 있어서,
    상기 제1클라이언트 전자 장치 및 제2 클라이언트 전자 장치 각각과의 연결(connection)을 형성하는 과정과,
    상기 제1클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로부터 장치 정보를 수신하는 과정과,
    상기 연결에 대응하여, 제1영역 및 제2영역을 포함하는 제1화면을 표시하는 과정과, 상기 제1영역은 상기 제1클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각에 해당하는 객체를 포함하는 것이며, 상기 제2영역은 상기 제1클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치와 데이터를 공유하기 위한 복수의 어플리케이션들을 포함하는 것이며,
    상기 제1영역의 제1클라이언트 전자 장치와 상기 제2영역의 적어도 하나의 제1어플리케이션의 데이터를 공유하기 위한 제1드래깅 입력 및 상기 제1영역의 상기 제2클라이언트 전자 장치와 상기 제2영역의 적어도 하나의 제2어플리케이션의 데이터를 공유하기 위한 제2드래깅 입력을 수신하는 과정과,
    상기 제1드래깅 입력 및 상기 제2드래깅 입력에 대응하여, 상기 제1어플리케이션과 연관된 제1공유 데이터 및 상기 제2어플리케이션과 연관된 제2공유 데이터를 상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로 전송하는 과정을 포함함을 특징으로 하는 전자 장치의 제어 방법.
  2. 제1항에 있어서,
    상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로 어플리케이션 공유 요청을 전송하는 과정을 더 포함함을 특징으로 하는 전자 장치의 제어 방법.
  3. 제1항에 있어서,
    상기 클라이언트 전자 장치와 연결을 형성하는 과정은,
    상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로부터 어플리케이션 공유 요청을 수신하는 과정과,
    상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로 어플리케이션 공유 허가를 전송하는 과정을 포함함을 특징으로 하는 전자 장치의 제어 방법.
  4. 제1항에 있어서,
    상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각과의 연결을 형성하는 과정은,
    액세서리 장치를 검출하고, 상기 액세서리 장치를 상기 제1클라이언트 전자 장치로 결정하는 과정을 포함함을 특징으로 하는 전자 장치의 제어 방법.
  5. 제1 항에 있어서,
    상기 장치 정보는, 클라이언트 전자 장치의 식별자(identification), 디스플레이 크기 정보, 해상도 정보, 디스플레이 정보 및 음성 또는 진동의 멀티미디어 출력 관련 정보 중 적어도 하나를 포함함을 특징으로 하는 전자 장치의 제어 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    외부로부터 상기 복수의 어플리케이션들 중 공유 대상 어플리케이션에 대한 선택을 위한 사용자 명령 입력을 수신하는 과정을 더 포함함을 특징으로 하는 전자 장치의 제어 방법.
  10. 제1항에 있어서,
    상기 제1 어플리케이션 및 상기 상기 제2어플리케이션은 디폴트(default)로 미리 설정된 어플리케이션인 것을 특징으로 하는 전자 장치의 제어 방법.
  11. 제1항에 있어서,
    상기 제1어플리케이션 및 상기 제2어플리케이션 중 적어도 하나의 공유 대상 어플리케이션을 실행하는 과정과,
    상기 공유 대상 어플리케이션의 실행 화면을 플링거(flinger)하는 과정과,
    상기 공유 대상 어플리케이션의 실행 화면이 플링거된 데이터를 포함하는 공유 데이터를 생성하는 과정을 포함함을 특징으로 하는 전자 장치의 제어 방법.
  12. 제11항에 있어서,
    상기 장치 정보에 기초하여, 상기 플링거된 데이터의 내부 정보를 조정하여 상기 공유 데이터를 생성하는 단계를 더 포함하는 것을 특징으로 하는 전자 장치의 제어 방법.
  13. 제1항에 있어서,
    상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각에서 상기 제1어플리케이션 및 상기 제2어플리케이션이 각각 실행되도록 하기 위한 제어 정보를 생성하는 과정을 더 포함함을 특징으로 하는 전자 장치의 제어 방법.
  14. 제1항에 있어서,
    상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각에 대한 사용자 명령과 관련한 사용자 명령 정보를 수신하는 과정을 더 포함함을 특징으로 하는 전자 장치의 제어 방법.
  15. 제14항에 있어서,
    상기 사용자 명령 정보를 상기 장치 정보에 대응하여 변환하는 과정을 더 포함함을 특징으로 하는 전자 장치의 제어 방법.
  16. 제15항에 있어서,
    상기 사용자 명령 정보를 상기 제1 어플리케이션 및 상기 제2어플리케이션에 입력하는 과정과,
    상기 사용자 명령 정보를 입력한 결과인 대응 이벤트를 출력하는 과정을 더 포함함을 특징으로 하는 전자 장치의 제어 방법.
  17. 제16항에 있어서,
    상기 대응 이벤트를 포함하는 공유 데이터를 상기 제1 클라이언트 전자 장치 및 제2 클라이언트 전자 장치로 전송하는 과정을 더 포함함을 특징으로 하는 전자 장치의 제어 방법.
  18. 제1 클라이언트(client) 전자 장치와 통신을 수행하는 호스트(host) 전자 장치에 있어서,
    터치스크린과,
    상기 제1클라이언트 전자 장치 및 제2 클라이언트 전자 장치 각각과의 연결(connection)을 형성하는 통신부와,
    제어부를 포함하며,
    상기 제어부는,
    상기 제1클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로부터 장치 정보를 수신하도록 상기 통신부를 제어하고,
    상기 연결에 대응하여, 상기 터치스크린 상에 제1영역 및 제2영역을 포함하는 제1화면을 표시하도록 제어하고, 상기 제1영역은 상기 제1클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각에 해당하는 객체를 포함하는 것이며, 상기 제2영역은 상기 제1클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치와 데이터를 공유하기 위한 복수의 어플리케이션들을 포함하는 것이며,
    상기 제1영역의 제1클라이언트 전자 장치와 상기 제2영역의 적어도 하나의 제1어플리케이션의 데이터를 공유하기 위한 제1드래깅 입력 및 상기 제1영역의 상기 제2클라이언트 전자 장치와 상기 제2영역의 적어도 하나의 제2어플리케이션의 데이터를 공유하기 위한 제2드래깅 입력을 상기 터치스크린을 통해 수신하며,
    상기 제1드래깅 입력 및 상기 제2드래깅 입력에 대응하여, 상기 제1어플리케이션과 연관된 제1공유 데이터 및 상기 제2어플리케이션과 연관된 제2 공유 데이터를 상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로 전송하도록 상기 통신부를 제어하고,
    상기 제1 어플리케이션에 대한 실행 화면은 상기 제1 클라이언트 전자 장치의 디스플레이 상에 표시되며, 상기 제2 어플리케이션에 대한 실행 화면은 상기 제2 클라이언트 전자 장치의 디스플레이 상에 표시되는 것을 특징으로 하는 전자 장치.
  19. 제18항에 있어서, 상기 제어부는,
    상기 통신부를 통해,상기 제1클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로 어플리케이션 공유 요청을 전송함을 특징으로 하는 전자 장치.
  20. 제18항에 있어서, 상기 제어부는,
    상기 통신부를 통해 상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로부터 어플리케이션 공유 요청을 수신하고, 상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각으로 어플리케이션 공유 허가를 전송함을 특징으로 하는 전자 장치.
  21. 제18항에 있어서, 상기 제어부는,
    디스커버리 동작을 통해 액세서리 장치를 검출하도록 상기 통신부를 제어하고, 상기 액세서리 장치를 상기 제1 클라이언트 전자 장치로 결정함을 특징으로 하는 전자 장치.
  22. 제18 항에 있어서, 상기 장치 정보는,
    클라이언트 전자 장치의 식별자(identification), 디스플레이 크기 정보, 해상도 정보, 디스플레이 정보 및 음성 또는 진동의 멀티미디어 출력 관련 정보 중 적어도 하나를 포함함을 특징으로 하는 전자 장치.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 제18항에 있어서, 상기 제어부는,
    외부로부터 상기 통신부를 통해 상기 복수의 어플리케이션들 중 공유 대상 어플리케이션에 대한 선택을 위한 사용자 명령 입력을 수신함을 특징으로 하는 전자 장치.
  27. 제18항에 있어서, 상기 제1어플리케이션 및 상기 제2어플리케이션은 공유를 위해 디폴트(default)로 미리 설정된 어플리케이션인 것을 특징으로 하는 전자 장치.
  28. 제18항에 있어서, 상기 제어부는,
    상기 제1어플리케이션 및 상기 제2어플리케이션 중 적어도 하나의 공유 대상 어플리케이션을 실행하고, 상기 공유 대상 어플리케이션의 실행 화면을 플링거(flinger)하여, 상기 공유 대상 어플리케이션의 실행 화면의 플링거된 데이터를 포함하는 공유 데이터를 생성함을 특징으로 하는 전자 장치.
  29. 제28항에 있어서,
    상기 제어부는, 상기 수신된 장치 정보에 기초하여, 상기 플링거된 데이터의 내부 정보를 조정하여 상기 공유 데이터를 생성함을 특징으로 하는 전자 장치.
  30. 제18항에 있어서, 상기 제어부는,
    상기 통신부를 통해 상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치 각각에 대한 사용자 명령과 관련한 사용자 명령 정보를 수신함을 특징으로 하는 전자 장치.
  31. 제30항에 있어서,
    상기 제어부는, 상기 사용자 명령 정보를 상기 장치 정보에 대응하여 변환함을 특징으로 하는 전자 장치.
  32. 제31항에 있어서, 상기 제어부는,
    상기 사용자 명령 정보를 상기 제1 어플리케이션 및 상기 제2 어플리케이션에 입력하고, 상기 사용자 명령 정보를 입력한 결과인 대응 이벤트를 출력하도록 제어함을 특징으로 하는 전자 장치.
  33. 제32항에 있어서, 상기 제어부는,
    상기 통신부를 통해 상기 대응 이벤트를 포함하는 공유 데이터를 상기 제1 클라이언트 전자 장치 및 상기 제2 클라이언트 전자 장치로 전송함을 특징으로 하는 전자 장치.
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
KR1020130130328A 2013-10-30 2013-10-30 어플리케이션을 공유하는 전자 장치 및 그 제어 방법 KR102107404B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130130328A KR102107404B1 (ko) 2013-10-30 2013-10-30 어플리케이션을 공유하는 전자 장치 및 그 제어 방법
US14/517,092 US10893092B2 (en) 2013-10-30 2014-10-17 Electronic device for sharing application and control method thereof
EP20140190689 EP2869188A1 (en) 2013-10-30 2014-10-28 Electronic device for sharing application and control method thereof
EP22153064.5A EP4009159A1 (en) 2013-10-30 2014-10-28 Electronic device for sharing application and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130130328A KR102107404B1 (ko) 2013-10-30 2013-10-30 어플리케이션을 공유하는 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20150049583A KR20150049583A (ko) 2015-05-08
KR102107404B1 true KR102107404B1 (ko) 2020-05-07

Family

ID=52003550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130130328A KR102107404B1 (ko) 2013-10-30 2013-10-30 어플리케이션을 공유하는 전자 장치 및 그 제어 방법

Country Status (3)

Country Link
US (1) US10893092B2 (ko)
EP (2) EP4009159A1 (ko)
KR (1) KR102107404B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024072117A1 (ko) * 2022-09-30 2024-04-04 삼성전자 주식회사 전자 장치 및 어플리케이션 간의 통신 방법

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608403B (zh) * 2014-02-14 2017-12-11 緯創資通股份有限公司 多視窗快速排列方法與系統及其行動裝置
TWI610221B (zh) * 2014-06-18 2018-01-01 緯創資通股份有限公司 螢幕播送方法以及使用該方法的系統與裝置
US9569105B2 (en) * 2014-06-18 2017-02-14 Mediatek Inc. Method for managing virtual control interface of an electronic device, and associated apparatus and associated computer program product
WO2016200018A1 (en) 2015-06-08 2016-12-15 Samsung Electronics Co., Ltd. Method and apparatus for sharing application
CN104850463B (zh) * 2015-06-08 2019-11-15 三星电子(中国)研发中心 应用程序共享方法及装置
US9813506B2 (en) * 2015-06-18 2017-11-07 Vmware, Inc. Distributed self-served application remoting
FR3039906B1 (fr) 2015-08-04 2018-09-07 Kineti Technologies Procede de partage interactif d'applications et de donnees entre ordinateurs a ecran tactile et programme d'ordinateur pour la mise en œuvre dudit procede
KR102433879B1 (ko) * 2015-08-21 2022-08-18 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
KR102371683B1 (ko) * 2015-09-23 2022-03-08 삼성전자주식회사 컨텐츠 공유 방법 및 이를 지원하는 전자 장치
KR102512840B1 (ko) 2015-10-15 2023-03-22 삼성전자주식회사 실행 화면 레코딩 방법 및 그 방법을 처리하는 전자 장치
KR101730315B1 (ko) * 2015-11-05 2017-04-27 엘지전자 주식회사 영상을 공유하는 전자 기기 및 방법
US10838613B2 (en) * 2016-02-17 2020-11-17 Trufan Llc Consumer electronic entertainment and display system
WO2018124689A1 (en) * 2016-12-29 2018-07-05 Samsung Electronics Co., Ltd. Managing display of content on one or more secondary device by primary device
KR102481894B1 (ko) * 2017-11-06 2022-12-28 삼성전자 주식회사 전자 장치 및 이를 이용한 화면 공유 방법
FR3079048B1 (fr) 2018-03-19 2021-11-19 Fabian Humbert Procede d’interaction entre d’une part au moins un utilisateur et/ou un premier dispositif electronique et d’autre part un second dispositif electronique
US10628115B2 (en) * 2018-08-21 2020-04-21 Facebook Technologies, Llc Synchronization of digital content consumption
JP6803581B2 (ja) * 2018-09-28 2020-12-23 パナソニックIpマネジメント株式会社 表示制御装置、表示制御方法、および表示制御システム
CN109660842B (zh) * 2018-11-14 2021-06-15 华为技术有限公司 一种播放多媒体数据的方法及电子设备
KR20200136256A (ko) * 2019-05-27 2020-12-07 삼성전자주식회사 전자 장치 및 그의 제어 방법
WO2021045247A1 (ko) * 2019-09-03 2021-03-11 엘지전자 주식회사 데이터를 처리하는 방법 및 그 전자 장치
CN113157230A (zh) * 2019-09-18 2021-07-23 华为技术有限公司 一种数据传输的方法及相关设备
CN110662198A (zh) * 2019-09-24 2020-01-07 维沃移动通信有限公司 一种应用共享方法及终端
CN110825709B (zh) * 2019-10-30 2022-08-02 维沃移动通信有限公司 一种交互方法及电子设备
CN111163449B (zh) * 2019-12-26 2021-10-12 维沃移动通信有限公司 一种应用分享方法、第一电子设备及计算机可读存储介质
CN111328057B (zh) * 2020-01-22 2023-02-07 维沃移动通信有限公司 一种应用共享方法及第一电子设备
US11625155B2 (en) * 2020-03-23 2023-04-11 Ricoh Company, Ltd. Information processing system, user terminal, method of processing information
KR20210119174A (ko) 2020-03-24 2021-10-05 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN115981582B (zh) * 2020-09-10 2024-05-14 华为技术有限公司 显示方法及电子设备
US11606456B1 (en) 2021-10-19 2023-03-14 Motorola Mobility Llc Electronic devices and corresponding methods utilizing ultra-wideband communication signals for user interface enhancement
US11503358B1 (en) 2021-10-19 2022-11-15 Motorola Mobility Llc Electronic devices and corresponding methods utilizing ultra-wideband communication signals for user interface enhancement
US11907495B2 (en) * 2021-10-19 2024-02-20 Motorola Mobility Llc Electronic devices and corresponding methods utilizing ultra-wideband communication signals for user interface enhancement
US11689695B1 (en) * 2022-12-15 2023-06-27 Northern Trust Corporation Computing technologies for screensharing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262673A1 (en) * 2009-04-14 2010-10-14 Jae Young Chang Terminal and controlling method thereof
US20100312817A1 (en) * 2009-06-03 2010-12-09 Apple Inc. Installing applications based on a seed application from a separate device
US20130278484A1 (en) * 2012-04-23 2013-10-24 Keumsung HWANG Mobile terminal and controlling method thereof

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260784A (ja) 1997-03-17 1998-09-29 Hitachi Ltd カーソル制御方法及び装置
US6832355B1 (en) 1998-07-28 2004-12-14 Microsoft Corporation Web page display system
US6686852B1 (en) 2000-09-15 2004-02-03 Motorola, Inc. Keypad layout for alphabetic character input
JP4102045B2 (ja) 2001-09-28 2008-06-18 富士フイルム株式会社 デスクトップ上の隠蔽ウインドウの表示制御方法および表示制御処理装置
CN1458576A (zh) 2002-05-17 2003-11-26 张逶 一种微型电脑和手机显示和键盘方案
JP2004046796A (ja) 2002-07-15 2004-02-12 Seiko Epson Corp ディレクトリ管理プログラム、オブジェクト表示プログラム、ディレクトリ管理方法及びディレクトリ管理装置
KR100478920B1 (ko) 2002-11-07 2005-03-28 에스케이 텔레콤주식회사 화면 분할 기능을 갖는 이동통신 단말기 및 그 제어 방법
KR100652626B1 (ko) 2004-03-04 2006-12-06 엘지전자 주식회사 이동통신단말기의 멀티윈도우 전환 방법
KR100650257B1 (ko) 2004-08-19 2006-11-24 주식회사 팬택앤큐리텔 화면분할 제어 기능을 갖는 무선통신 단말기 및 그 방법
JP2006115213A (ja) 2004-10-14 2006-04-27 Sony Ericsson Mobilecommunications Japan Inc 携帯端末装置及び携帯端末の表示方法
KR20060039503A (ko) 2004-11-03 2006-05-09 주식회사 팬택 외부 디스플레이 장치를 통해 위성 dmb 방송을디스플레이하는 개인 휴대 단말기 및 위성 dmb 방송디스플레이 방법
JP2006073015A (ja) 2005-09-05 2006-03-16 Hitachi Kokusai Electric Inc 携帯端末
KR100700171B1 (ko) 2005-10-25 2007-03-28 엘지전자 주식회사 이동통신단말기의 서브 디스플레이 표시장치 및 그제어방법
EP1969870B1 (en) 2005-12-29 2017-08-30 Ozmiz Pty. Ltd. Method and system for displaying data on a mobile terminal
MY150138A (en) 2005-12-29 2013-11-29 Ozmiz Pty Ltd Method and system for displaying data on a mobile terminal
KR100818918B1 (ko) 2006-02-14 2008-04-04 삼성전자주식회사 윈도우의 배치를 관리하는 장치 및 그 방법
KR20080018396A (ko) 2006-08-24 2008-02-28 한국문화콘텐츠진흥원 이동통신 단말기의 디스플레이 정보를 외부 디스플레이장치에서 디스플레이하기 위한 모바일 애플리케이션 및pc 애플리케이션을 기록한 컴퓨터 판독 가능 기록매체
JP4958517B2 (ja) 2006-11-06 2012-06-20 ソニーモバイルコミュニケーションズ, エービー 携帯端末およびその表示制御方法
JP5242043B2 (ja) 2006-11-27 2013-07-24 富士通株式会社 携帯端末装置および表示方法
US20080172609A1 (en) 2007-01-11 2008-07-17 Nokia Corporation Multiple application handling
WO2008090902A1 (ja) 2007-01-25 2008-07-31 Sharp Kabushiki Kaisha マルチウィンドウ管理装置及びプログラム、記憶媒体、並びに情報処理装置
JP2008211379A (ja) 2007-02-23 2008-09-11 Fujitsu Ltd 表示制御プログラムおよび携帯端末装置
JP4796017B2 (ja) 2007-07-30 2011-10-19 京セラ株式会社 電子機器
KR20090016044A (ko) 2007-08-10 2009-02-13 삼성전자주식회사 휴대용 단말기의 멀티태스킹 방법 및 장치
US8219936B2 (en) 2007-08-30 2012-07-10 Lg Electronics Inc. User interface for a mobile device using a user's gesture in the proximity of an electronic device
KR100900295B1 (ko) 2008-04-17 2009-05-29 엘지전자 주식회사 이동 디바이스와 이동 통신 시스템의 사용자 인터페이스방법
EP2283421B1 (en) 2008-05-20 2019-08-14 Citrix Systems, Inc. Methods and systems for using external display devices with a mobile computing device
US20090322690A1 (en) 2008-06-30 2009-12-31 Nokia Corporation Screen display
KR20100030968A (ko) 2008-09-11 2010-03-19 엘지전자 주식회사 단말기 및 그의 메뉴 디스플레이 방법
US20110106954A1 (en) 2008-09-26 2011-05-05 Manjirnath Chatterjee System and method for inductively pairing devices to share data or resources
KR101514460B1 (ko) 2008-11-13 2015-04-22 주식회사 케이티 휴대용 단말기의 어플리케이션 연동 방법
US20100169791A1 (en) 2008-12-31 2010-07-01 Trevor Pering Remote display remote control
KR101640460B1 (ko) 2009-03-25 2016-07-18 삼성전자 주식회사 휴대 단말기의 분할 화면 운용 방법 및 이를 지원하는 휴대 단말기
US20110066971A1 (en) * 2009-09-14 2011-03-17 Babak Forutanpour Method and apparatus for providing application interface portions on peripheral computing devices
US9043706B2 (en) 2010-08-31 2015-05-26 Anders Nancke-Krogh System and method for using state replication between application instances to provide a collaborative desktop environment
WO2012046890A1 (ko) * 2010-10-06 2012-04-12 엘지전자 주식회사 이동단말기, 디스플레이 장치 및 그 제어 방법
WO2012064870A2 (en) 2010-11-09 2012-05-18 Openpeak Inc. Communication devices, networks, services and accompanying methods
WO2012079153A1 (en) * 2010-12-15 2012-06-21 Userful Corporation Multiple user computing method and system for same
KR101741551B1 (ko) * 2010-12-20 2017-06-15 엘지전자 주식회사 이동 단말기 및 이것의 애플리케이션 제어 방법
US9110743B2 (en) 2010-12-21 2015-08-18 Microsoft Technology Licensing, Llc Extensible system action for sharing while remaining in context
US10042546B2 (en) 2011-01-07 2018-08-07 Qualcomm Incorporated Systems and methods to present multiple frames on a touch screen
US20150200998A1 (en) * 2012-01-30 2015-07-16 Google Inc. Displaying portions of a host display area of a host device at a client device
US20130219303A1 (en) 2012-02-21 2013-08-22 Research In Motion Tat Ab Method, apparatus, and system for providing a shared user interface
CN102638586B (zh) 2012-05-03 2014-05-14 腾讯科技(深圳)有限公司 应用程序信息的分享方法、***和装置
EP2680119A3 (en) * 2012-06-28 2015-04-22 Orange Enhanced user interface to suspend a drag and drop operation
US9635414B2 (en) * 2012-09-27 2017-04-25 Hewlett-Packard Development Company, L.P. Application views
US9936335B2 (en) * 2012-12-13 2018-04-03 Microsoft Technology Licensing, Llc Mobile computing device application sharing
US9250700B2 (en) * 2013-02-28 2016-02-02 Apple Inc. System and method for virtual displays

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262673A1 (en) * 2009-04-14 2010-10-14 Jae Young Chang Terminal and controlling method thereof
US20100312817A1 (en) * 2009-06-03 2010-12-09 Apple Inc. Installing applications based on a seed application from a separate device
US20130278484A1 (en) * 2012-04-23 2013-10-24 Keumsung HWANG Mobile terminal and controlling method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024072117A1 (ko) * 2022-09-30 2024-04-04 삼성전자 주식회사 전자 장치 및 어플리케이션 간의 통신 방법

Also Published As

Publication number Publication date
EP2869188A1 (en) 2015-05-06
US20150120817A1 (en) 2015-04-30
US10893092B2 (en) 2021-01-12
EP4009159A1 (en) 2022-06-08
KR20150049583A (ko) 2015-05-08

Similar Documents

Publication Publication Date Title
KR102107404B1 (ko) 어플리케이션을 공유하는 전자 장치 및 그 제어 방법
KR102016975B1 (ko) 디스플레이 장치 및 그 제어 방법
KR102283509B1 (ko) 디스플레이 장치 및 그 제어 방법
KR102210278B1 (ko) 디스플레이 장치 및 제어 방법
KR101984673B1 (ko) 복수 어플리케이션을 실행하는 디스플레이 장치 및 그 제어 방법
US9977497B2 (en) Method for providing haptic effect set by a user in a portable terminal, machine-readable storage medium, and portable terminal
KR102089707B1 (ko) 디스플레이 장치 및 그 제어 방법
KR102102438B1 (ko) 디스플레이 장치 및 그 제어 방법
EP2753053B1 (en) Method and apparatus for dynamic display box management
KR102028336B1 (ko) 복수 스크린을 표시하는 디스플레이 장치 및 그 제어 방법
KR20140068573A (ko) 디스플레이 장치 및 그 제어 방법
CN109582212B (zh) 用户界面显示方法及其设备
KR20170059242A (ko) 영상 표시 장치 및 그 동작방법
KR20140118338A (ko) 복수 어플리케이션을 실행하는 디스플레이 장치 및 그 제어 방법
CN105763914A (zh) 图像显示装置和方法
KR102022050B1 (ko) 패럴랙스 스크롤 기능을 가지는 모바일 장치 및 그 제어 방법
KR20140084966A (ko) 디스플레이 장치 및 그 제어 방법
KR20140113032A (ko) 휴대단말기의 표시화면을 표시하는 방법 및 장치
KR102360249B1 (ko) 디스플레이 장치 및 제어 방법
KR20140117092A (ko) 디스플레이 장치 및 그 제어 방법
KR20140028352A (ko) 복수 어플리케이션을 실행하는 장치 및 그 방법
KR20140076395A (ko) 어플리케이션을 실행하는 디스플레이 장치 및 그 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant