KR20150100458A - 전자 장치 사이의 동기화 - Google Patents

전자 장치 사이의 동기화 Download PDF

Info

Publication number
KR20150100458A
KR20150100458A KR1020140083137A KR20140083137A KR20150100458A KR 20150100458 A KR20150100458 A KR 20150100458A KR 1020140083137 A KR1020140083137 A KR 1020140083137A KR 20140083137 A KR20140083137 A KR 20140083137A KR 20150100458 A KR20150100458 A KR 20150100458A
Authority
KR
South Korea
Prior art keywords
application
package
information
electronic device
module
Prior art date
Application number
KR1020140083137A
Other languages
English (en)
Other versions
KR102265737B1 (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 US14/628,879 priority Critical patent/US9830170B2/en
Publication of KR20150100458A publication Critical patent/KR20150100458A/ko
Priority to US15/794,243 priority patent/US10223132B2/en
Application granted granted Critical
Publication of KR102265737B1 publication Critical patent/KR102265737B1/ko

Links

Images

Classifications

    • 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
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 다양한 실시 예에 따른 전자 장치는, 전자 장치에 구비된 패키지를 확인하는 관리 모듈, 외부 장치로부터 상기 외부 장치에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 통신 모듈, 및 상기 외부 장치에 설치된 어플리케이션에 대한 항목을 출력하는 디스플레이를 포함할 수 있다. 여기서 상기 관리 모듈은 상기 확인된 패키지와 상기 정보의 비교 결과에 기반하여 각각의 상기 어플리케이션에 대한 항목의 출력 여부를 결정하도록 설정될 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예들이 가능하다.

Description

전자 장치 사이의 동기화{Synchronization between Electronic Devices}
본 발명의 다양한 실시 예들은 호스트 장치 및 상기 호스트 장치와 연결되어 사용하는 외부 장치 간의 동기화 기술과 관련된다.
스마트 폰이나 태블릿과 같은 전자 장치가 널리 보급되고 있다. 근래에는 갤럭시 기어(Galaxy Gear), 갤럭시 기어 2(Galaxy Gear 2), 갤럭시 기어 핏(Galaxy Gear Fit), HMD(head mounted display)를 장착한 구글 글래스(Google Glasses)과 같은 웨어러블 또는 컴패니언 디바이스(wearable or companion device)가 스마트 폰이나 태블릿과 같은 메인 전자 장치와 함께 사용되고 있다.
각각의 전자 장치는 독립적으로 동작할 수도 있고, 마스터/슬래이브(master/slave) 또는 프로바이더/컨슈머(provider/consumer) 관계로 동작할 수도 있다. 예를 들어 호스트 장치로 동작하는 스마트 폰(마스터 또는 프로바이더 장치)은 웨어러블 장치(슬래이브 또는 컨슈머 장치) 용 어플리케이션을 포함하는 패키지를 포함할 수 있다. 스마트 폰은 상기 패키지에 포함된 웨어러블 장치 용 어플리케이션을 네트워크(예: Bluetooth)를 통해 웨어러블 장치로 제공할 수 있다.
예를 들어, 사용자는 스마트 폰과 스마트 워치를 연결하여 사용할 수 있다. 스마트 워치에는 어플리케이션 a, b, c가 설치되어 있을 수 있고, 스마트 폰에는 상기 어플리케이션을 지원하는 어플리케이션(또는 패키지) A, B, C가 설치되어 있을 수 있다. 만약 사용자가 스마트 폰을 분실하여 새로운 스마트 폰을 구입한 후, 새 스마트 폰에 패키지 A, B만 설치된 상황에서, 상기 새 스마트 폰과 기존의 스마트 워치를 연결하면 어플리케이션 c가 동작하기 위한 스마트 폰의 구성 요소가 존재하지 않는 경우가 발생할 수 있다. 이러한 경우, 어플리케이션 c와 관련하여 오작동이 발생하거나, 심지어 스마트 폰이나 스마트 워치가 동작을 멈추는(frozen) 상황이 발생할 수 있기 때문에, 스마트 폰과 스마트 워치를 새로 연결할 때 강제로 스마트 워치를 공장 초기화(factory reset) 할 수 있다. 이로 인하여 사용자는 불필요한 초기화를 경험하게 된다.
본 발명의 다양한 실시 예들은, 상기와 같이 상호 연결해서 사용하는 전자 장치의 호환에 대한 정보를 상호 교환하여, 상대방 장치에 요구되는 패키지, 기능, 어플리케이션 등이 존재하지 않는 경우에는 관련된 항목, 또는 관련된 설정 메뉴를 숨기는 방식(negative sync)의 동기화를 제공할 수 있다.
또한 본 발명의 다양한 실시 예들은, 상대방 장치에 존재하지 않는 패키지, 기능, 어플리케이션을 업데이트 하는 방식의 동기화(positive sync)를 제공할 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치는, 전자 장치에 구비된 패키지를 확인하는 관리 모듈, 외부 장치로부터 상기 외부 장치에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 통신 모듈, 및 상기 외부 장치에 설치된 어플리케이션에 대한 항목을 출력하는 디스플레이를 포함할 수 있다. 여기서 상기 관리 모듈은 상기 확인된 패키지와 상기 정보의 비교 결과에 기반하여 각각의 상기 어플리케이션에 대한 항목의 출력 여부를 결정하도록 설정될 수 있다.
본 발명의 다양한 실시 예에 따르면, 호스트 장치와 외부 장치가 연결될 때, 공장 초기화 동작을 수행하지 않고 지원되지 않는 항목이 출력되지 않도록 하거나, 최대한의 항목이 지원되도록 업데이트 하는 방식 등을 포함하는 다양한 동기화가 가능하다.
도 1은 다양한 실시 예에 따른 전자 장치 동기화의 개념도를 나타낸다.
도 2는 다양한 실시 예에 따른 전자 장치의 연결 및 연결 해제 방법을 나타낸다.
도 3은 다양한 실시 예에 따른 연결 및 동기화 순서를 나타낸다.
도 4는 다양한 실시 예에 따른 외부 장치의 데이터 구조의 예시를 나타낸다.
도 5는 다양한 실시 예에 따른 호스트 장치의 데이터 구조의 예시를 나타낸다.
도 6은 다양한 실시 예에 따른 네거티브 동기화(negative sync)의 프로세스를 나타낸다.
도 7은 다양한 실시 예에 따른, 전자 장치를 포함하는 네트워크 환경을 도시한다.
도 8은 다양한 실시 예에 따른 전자 장치의 하드웨어를 도시한다.
도 9는 다양한 실시 예에 따른 복수의 전자 장치 사이의 통신 프로토콜을 도시한다.
도 10은 다양한 실시 예에 따른 포지티브 동기화의 예시를 나타낸다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면과 연관되어 기재된다. 본 발명의 다양한 실시 예는 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 발명의 다양한 실시 예를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 다양한 실시 예의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 발명의 다양한 실시 예 가운데 사용될 수 있는 "포함한다" 또는 "포함할 수 있다" 등의 표현은 개시된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한 본 발명의 다양한 실시 예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 본 발명의 다양한 실시 예에서 "또는" 또는 "A 또는/및 B 중 적어도 하나" 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, "A 또는 B" 또는 "A 또는/및 B 중 적어도 하나" 각각은, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 발명의 다양한 실시 예 가운데 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들이 본 발명의 다양한 실시 예의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분 짓기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 다양한 실시 예의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 발명의 다양한 실시 예에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명의 다양한 실시 예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 다양한 실시 예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 다양한 실시 예에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 다양한 실시 예에 따른 전자 장치는, 통신 기능이 포함된 장치일 수 있다. 예를 들면, 전자 장치는 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크톱 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted-device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 장치는 통신 기능을 갖춘 스마트 가전 제품(smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들자면, 전자 장치는 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 장치는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller? machine) 또는 상점의 POS(point of sales) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 장치는 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 본 발명의 다양한 실시 예에 따른 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 발명의 다양한 실시 예에 따른 전자 장치는 플렉서블 장치일 수 있다. 또한, 본 발명의 다양한 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.
이하, 첨부된 도면을 참조하여 다양한 실시 예에 따른 전자 장치에 대해서 살펴본다. 다양한 실시 예에서 이용되는 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 다양한 실시 예에 따른 전자 장치 동기화의 개념도를 나타낸다.
도 1을 참조하면, 복수의 전자 장치가 동기화를 위해 상호 연결될 수 있다. 복수의 전자 장치는 전술한 프로바이더/컨슈머 혹은 마스터/슬래이브로 동작하는 형태의 임의의 장치를 포함할 수 있다. 다양한 실시 예에서, 제1 장치에서 제1 장치와 제2 장치에서 동작하는 패키지를 구비하고, 상기 패키지에서 제2 장치 용 어플리케이션에 대한 데이터를 제2 장치로 제공하고, 상기 제2 장치 용 어플리케이션이 상기 제2 장치에서 동작하기 위해 상기 제1 장치에 해당 패키지가 지원되어야 하는 조건을 만족하는 장치는 모두 본 명세서에서 개시하는 전자 장치에 해당할 수 있다.
이하에서는 설명의 편의를 위해, 제1 전자 장치(예: 프로바이더)는 호스트 장치(예: 스마트 폰)으로, 제2 전자 장치는 웨어러블 장치로 설명될 수 있다. 호스트 장치 이외의 전자 장치는 모두 외부 장치로 이해될 수 있다. 그러나 본 명세서에서 개시되는 취지에 부합하는 경우, 제1 전자 장치와 제2 전자 장치는 모두 스마트 폰이 될 수도 있다. 또는 제1 전자 장치는 스마트 폰, 제2 전자 장치는 태블릿과 같이 구성될 수 있다.
다양한 실시 예에서, 패키지는 단순히 어플리케이션 패키지(예: 스마트 폰 용 .apk 및 스마트 워치 용 .apk가 통합된 어플리케이션 패키지) 외에, 스마트 워치의 특정 기능이 동작하기 위한 기능/어플리케이션/하드웨어/모듈의 총합으로 이해될 수 있다. 예를 들어, BLE(Bluetooth low energy) 기능을 지원하는 스마트 폰과 웨어러블 장치가 상호 연동돼서 사용 중이었으나, 상기 스마트 폰을 분실하고 새로운 스마트 폰을 상기 웨어러블 장치와 다시 연동한 경우, 새로운 스마트 폰이 BLE 기능을 지원하지 않는 스마트 폰인 경우, 상기 웨어러블 장치의 BLE 기능과 관련된 기능(또는 어플리케이션)은 정상적으로 동작하지 않을 수 있다. 이와 같은 경우에도, 본 발명의 다양한 실시 예에 따른 네거티브 동기화가 적용될 수 있다. 다양한 실시 예에서, 단순히 “패키지”에 대해서 설명하고 있다 하더라도, 상기 “패키지”는 전술한 광의의 개념으로 이해될 수 있다.
다시 도 1을 참조하면, 호스트 장치(예: 스마트 폰)와 웨어러블 장치(예: 스마트 워치)가 서로 연결될 수 있다. 상기 장치들은 BT(Bluetooth)와 같은 근거리 통신이나 Wi-Fi, Wi-Fi Direct, 또는 유선 연결 등을 통해 연결될 수 있다. 연결 과정 및 연결 과정에서 일어나는 프로세스에 대해서는 도 2 및 도 3을 참조하여 후술한다.
웨어러블 장치의 웨어러블 매니저 서비스(wearable manager service) 모듈 110과 호스트 장치의 호스트 장치 매니저(host manager) 모듈 120은 서로 호환성 교환(capability exchange)을 수행할 수 있다. 각각의 모듈이 수행하는 동작을 설명한다.
WMS 모듈 110은 웨어러블 장치에 설치된 어플리케이션의 목록 및 각 어플리케이션이 요구하는 패키지에 대한 정보를 확인할 수 있다. 예를 들어, 웨어러블 장치에 웨어러블 용 어플리케이션 111A(wearable App A)와 웨어러블 용 어플리케이션 111B(wearable App B)가 설치되어 있다고 가정할 수 있다. 각각의 어플리케이션은 해당 어플리케이션의 기능에 대한 정보를 포함할 수 있고, 상기 정보는 호스트 장치에서 요구되는 패키지에 대한 정보를 포함할 수 있다. 예를 들어, 어플리케이션 111A는 호스트 장치의 패키지 X와 Y를 요구하고, 어플리케이션 111B는 호스트 장치의 패키지 X, Y, 및 Z를 요구할 수 있다. 이와 같은 정보는 구조화된 문서(예를 들어, xml 문서 등)에 포함되어 있을 수 있다. WMS 모듈 110은 상기 문서(예: features.xml) 등으로부터 상기 어플리케이션이 요구하는 패키지에 대한 정보를 획득할 수 있다.
HM 모듈 120은 호스트 장치에 설치된(구비된) 패키지의 목록을 확인할 수 있다. 도시된 예시에서, 호스트 장치에는 패키지 X 및 Y를 포함하는 어플리케이션 121이 설치되어 있을 수 있다. HM 모듈 120은 WMS와 유사하게 설치 정보가 포함된 구조화된 문서에서 설치된 패키지에 대한 정보를 가져올 수 있다. 또한 다양한 실시 예에서, HM 모듈은 호스트 장치 자체에 저장된 기본 정보, 스펙 등으로부터 패키지 정보를 가져올 수 있다.
다양한 실시 예에서, WMS 모듈 110과 HM 모듈 120은 서로 호환성 교환(capability exchange)을 수행할 수 있다. 예를 들어, WMS 모듈 110은 웨어러블 장치와 호스트 장치 사이에 형성된 통신 채널을 통해 상기 웨어러블 장치에 설치된 어플리케이션이 요구하는 패키지 정보(웨어러블 장치)를 송신하고, 호스트 장치에 설치된 패키지 정보를 수신할 수 있다. 또한 HM 모듈 120은 상기 통신 채널을 통해 웨어러블 장치로부터 요구되는 패키지 정보를 수신하고, 웨어러블 장치로 호스트 장치에 설치된 패키지 정보를 송신할 수 있다.
다양한 실시 예에서, WMS 모듈 110 및 HM 모듈 120은 자신이 보유한 정보와 상대로부터 수신한 정보를 서로 비교하여, 각각의 어플리케이션에 대한 항목의 출력 여부를 결정할 수 있다.
예를 들어, 웨어러블 장치의 디스플레이에는 기본 UI(예: home UI) 113이 표시될 수 있는데, 상기 UI 113에는 웨어러블 장치에 설치된 어플리케이션들의 아이콘 또는 목록이 표시될 수 있다. 이 경우, WMS 모듈 110은 비교 결과, 어플리케이션의 정상 작동을 위해 요구되는 패키지가 호스트 장치에서 지원되지 않는 것으로 판단된 어플리케이션이 상기 디스플레이에 출력되지 않도록 할 수 있다.
예를 들어, 호스트 장치는 웨어러블 장치에 설치된 어플리케이션을 관리하기 위한 호스트 매니저 화면 123을 제공할 수 있다. HM 모듈 120은 비교 결과, 호스트 장치에서 지원되지 않는 어플리케이션이 웨어러블 장치에 설치되어 있는 경우, 해당 어플리케이션(예: 미지원 어플리케이션) 항목이 화면 123에 출력되지 않도록 할 수 있다. 부가적으로, HM 모듈 120은, 미지원 어플리케이션의 목록을 별도로 제공하여 해당 목록에 포함된 어플리케이션의 삭제 기능을 지원하거나, 해당 어플리케이션을 지원할 수 있도록 호스트 장치의 설정을 변경하는 동작(예: 포지티브 동기화)을 수행할 수 있다. 포지티브 동기화에 대해서는 도 10을 참조하여 후술한다.
도 2는 다양한 실시 예에 따른 전자 장치의 연결 및 연결 해제 방법을 나타낸다.
도 2에 도시된 화면은 호스트 장치에서 웨어러블 장치의 여러 설정을 제어하는 호스트 매니저 화면 123의 일부로 이해될 수 있다. 예를 들어, 화면 210은 호스트 매니저의 시작 화면(예: Gear Manager)을 나타낼 수 있다. 화면 210에는 호스트 장치와 연결된 장치(paired device)가 있는 경우, 상기 연결된 장치의 대표 이미지, 연결된 장치의 이름, 연결된 장치의 홈 스크린을 편집하기 위한 메뉴(Edit home screen) 등이 포함될 수 있다. 사용자는 화면 210에서 연결된 장치의 레이아웃, 시계 구성, 월페이퍼 등을 편집할 수 있다.
화면 210에서 사용자가 연결된 장치를 선택(예: Device name 항목을 탭(tap))하면, 선택된 장치에 대한 하위 메뉴가 화면 220에서 제공될 수 있다. 예를 들어, 화면 220은 연결된 장치와의 연결을 해제(disconnection)하기 위한 메뉴, 연결된 장치의 소프트웨어를 업데이트 하기 위한 메뉴, 연결된 장치의 모델 번호, 연결된 장치의 소프트웨어 버전 등을 제공할 수 있다.
화면 220에서 사용자가 연결 해제 메뉴를 선택하면, 화면 230에서 연결 해제를 확인할 수 있다. 사용자가 OK 버튼을 선택하면, 호스트 장치와 연결된 장치(예: 웨어러블 장치) 사이의 연결이 해제될 수 있다.
연결이 해제되면, 호스트 장치와 연결 가능한 외부 장치에 대한 정보를 제공하는 화면 240이 제공될 수 있다. 호스트 장치는 탑재된 다양한 안테나를 이용하여 BLE, BT, Wi-Fi, Wi-Fi Direct와 같은 근거리 통신이나 3G, LTE 등을 이용한 셀룰러 통신, 또는 유선 연결 등을 이용하여 감지되거나 연결될 수 있는 장치의 목록을 제공할 수 있다.
화면 240에 제공된 목록 중 적어도 하나의 외부 장치에 대한 연결이 선택되면, 화면 250이 디스플레이 될 수 있다. 예를 들어, 사용자가 스마트 폰(예: Galaxy S5)에서 스마트 폰 근처에 위치한 스마트 워치(Galaxy Gear 2)와의 연결을 선택한 경우, 스마트 폰과 스마트 워치 사이의 연결이 시도 중임을 나타내는 화면이 출력될 수 있다. 만약 사용자가 취소(cancel) 버튼을 선택하면 화면 240으로 복귀가 이루어지고, 연결에 성공하면 동작 260으로 진행한다. 화면 250이 출력되는 동안 수행되는 동작의 예시가 도 3을 참조하여 설명된다.
외부 장치와의 연결이 성공하면, 화면 220이 출력될 수 있다. 이 경우 화면 220에 포함되는 항목은 연결된(connected) 장치에 대한 정보로 갱신될 수 있다. 또한 화면 220은 한번 이상 연결되었던 장치의 목록을 현재 연결된 장치 항목과 함께 제공할 수 있다.
외부 장치와의 연결이 실패하면, 화면 270이 출력될 수 있다. 화면 270은 에러 메시지를 나타낼 수 있다. 사용자가 재 연결 시도(예: OK 버튼)을 선택하면, 호스트 장치는 화면 250을 출력하면서 외부 장치와의 연결을 다시 시도할 수 있다. 만약 취소 버튼(예: cancel)이 선택되면, 화면 240이 출력될 수 있다.
도 2에 도시된 예시에서, 연결된 장치의 어플리케이션에 대한 항목이 제공될 수 있다. 예를 들어, 화면 210의 홈 스크린 편집 메뉴(edit home screen)나 화면 220의 장치 세부 메뉴(about device) 등에서 어플리케이션에 대한 항목이나 정보가 제공될 수 있다. 이 경우, 전술한 네거티브 동기화가 적용되면, 외부 장치에 설치되었으나 호스트 장치에 의해 지원되지 않는 것으로 판단되는 어플리케이션에 대한 항목은 출력되지 않을 수 있다. 다양한 실시 예에서, 상기 호스트 장치에 의해 지원되지 않는 것으로 판단되는 어플리케이션에 대한 항목은 별도의 구분되는 메뉴나 구분되는 화면에서 출력될 수 있다. 이와 같이 외부 장치에 설치된 어플리케이션 중 호스트 장치에 의해 지원되지 않는 어플리케이션을 구분하여 출력함으로써, 지원되지 않는 어플리케이션에 대한 설정이나 조작을 수행할 때 발생하는 오류, 오작동, 기기 정지 등을 방지할 수 있다.
도 3은 다양한 실시 예에 따른 연결 및 동기화 순서를 나타낸다.
도 3을 참조하면, 호스트 장치(예: 호스트 매니저 또는 호스트 장치의 관리 모듈)는 외부 장치(예: 웨어러블 장치)와 연결을 수립하고 동기화를 진행할 수 있다. 동작 301에서 호스트 장치는 웨어러블 장치의 상태를 요청(MGR_WEARABLE_STATUS_REQ)할 수 있다. 웨어러블 장치는 상기 요청을 수신하면 동작 303에서 웨어러블 장치의 상태를 포함하는 정보를 생성할 수 있다. 상기 정보는 구조화된 문서(예: WearableStatus.xml)의 형태로 생성될 수 있다. 동작 305에서 웨어러블 장치는 호스트 장치의 요청에 대한 응답(MGR_WEARABLE_STATUS_RES)을 호스트 장치로 전송할 수 있다. 호스트 장치는 상기 응답으로부터 웨어러블 장치의 상태 정보(예: WearableStatus.xml)를 저장할 수 있다.
웨어러블 장치는 동작 305에서 응답을 송신하고 나서, 동작 309에서 호스트 장치의 상태를 요청(MGR_HOST_STATUS_REQ)할 수 있다. 호스트 장치는 상기 요청을 수신하면, 동작 311에서 호스트 장치의 상태를 포함하는 정보를 생성할 수 있다. 상기 정보는 구조화된 문서(예: HostStatus.xml)의 형태로 생성될 수 있다. 동작 313에서 호스트 장치는 웨어러블 장치의 요청에 대한 응답(MGR_HOST_STATUS_RES)을 웨어러블 장치로 전송할 수 있다. 웨어러블 장치는 동작 315에서 수신된 호스트 장치의 응답으로부터 호스트 장치의 상태 정보를 저장할 수 있다.
동작 317에서 웨어러블 장치는 웨어러블 장치에서 이용 가능한 어플리케이션/기능에 대한 정보를 생성할 수 있다. 상기 정보는 구조화된 문서(예: WearableStatus.xml)의 형태로 생성될 수 있다. 이 정보는 동작 303에서 생성된 정보와 일부 다를 수 있으며, 다른 형식이나 이름으로(예: WearableStatusEnable.xml) 구별될 수 있다. 혹은 문서 내에서 소정 태그(예: <ENABLE APPLICATION> 혹은 <ENABLE> 등)를 이용하여 지원 가능한 어플리케이션이 구별될 수 있다.
동작 319에서 웨어러블 장치는 지원 가능한 어플리케이션에 대한 정보를 포함하는 응답(예: MGR_WEARABLE_STATUS_RES)을 다시 전송할 수 있다. 또한, 동작 319의 전송 후에, 웨어러블 장치는 상태 정보 교환(예: 호환성 교환)이 완료되었다는 메시지(MGR_STATUS_EXCHANGE_DONE)를 호스트 장치로 보낼 수 있다.
호스트 장치는 동작 321에서 추가적으로 수신된 웨어러블 장치의 상태 정보(WearableStatus.xml 혹은 WearableStatusEnable.xml)를 저장할 수 있다. 또한 호스트 장치는 동작 325에서 연결 수립을 완료할 수 있다. 동작 325까지 완료되면, 예를 들어 도 2에 도시된 화면 220이 다시 출력될 수 있다.
다양한 실시 예에서, 상기 외부 장치는 웨어러블 장치로 한정되지 않는다. 도 1과 관련하여 전술한 것과 같이, 호스트 장치와 커플링된 장치(coupled device)로서 호스트 장치의 기능(또는 패키지)를 이용하는 장치 역시 상기 외부 장치에 포함될 수 있다. 예를 들어, 스마트 폰과 스마트 폰, 스마트 폰과 태블릿, 스마트 폰과 노트PC 등이 상호 연결될 때에도 전술한 프로세스가 적용될 수 있다. (이 경우, 예를 들어 MGR_WEARABLE_STATUS_REQ는 MGR_TABLET_STATUS_REQ 등으로 변형될 수 있다.)
상기 실시 예에서는 웨어러블 장치에서 이용 가능한 어플리케이션/기능에 관한 정보(예: 지원 목록 정보)를 웨어러블 장치에서 생성하여 호스트 장치로 제공하는 것으로 설명되었다(동작 317 내지 321 참조). 다양한 실시 예에서, 대응되는 방식으로 지원 목록 정보가 호스트 장치에서 생성될 수도 있고, 또는 호스트 장치와 웨어러블 장치 양쪽에서 모두 생성되어 상호 교환될 수도 있다.
도 4는 다양한 실시 예에 따른 외부 장치의 데이터 구조의 예시를 나타낸다. 이하에서는 편의상 외부 장치는 웨어러블 장치로 가정하고 설명한다.
웨어러블 장치의 데이터 구조 400은 deviceID 401, devicePlatform 403, devicePlatformVersion 405, deviceType 407, modelNumber 409, swVersion 411, apps 413, deviceFeature 415, notification 417, settings 419 항목 중 하나 이상을 포함할 수 있다.
deviceID 401은 BT/BLE MAC 주소를 기반으로 한 웨어러블 장치의 고유 ID(unique ID)를 의미할 수 있다. devicePlatform 403은 안드로이드(android) 또는 타이젠(Tizen)과 같이 장치에 적용된 플랫폼의 종류를 의미할 수 있다. devicePlatformVersion 405는 장치에 적용된 플랫폼의 버전(예: 4.4, 또는 2.2.0)을 나타낼 수 있다. deviceType 407은 장치의 타입(예: Gear, Gear 2, Gear Fit 등)을 나타낼 수 있다. modelNumber 409는 장치의 모델 번호(예: SM-R380 등)를 나타낼 수 있다. swVersion 411은 장치의 소프트웨어 버전(예: R380XXE0ANB6 등)을 나타낼 수 있다.
App 413은 웨어러블 장치에 포함된 어플리케이션에 대한 정보를 나타낼 수 있다. 예를 들어, app 413은 복수의 어플리케이션 app 421을 포함할 수 있다. 각각의 app 421은 packagename 431, name 433, version 435, features 437, isAppWidget 439, preloaded 441 중 하나 이상을 포함할 수 있다.
다양한 실시 예에서, packagename 431은 어플리케이션의 패키지 이름이자 고유 ID로서 사용될 수 있다. 여기서의 고유 ID는 어플리케이션, 또는 어플리케이션 패키지를 인식하기 위한 것으로, 전술한 장치를 인식하기 위한 고유 ID와는 구별될 수 있다.
다양한 실시 예에서, name 433은 어플리케이션의 이름(예: Find My Wearable 등)을 나타낼 수 있다. version 435는 설치된 어플리케이션의 버전을 나타낼 수 있다. isAppWidget 429는 앱 위젯 방식인지 여부(예: true|false)를, preloaded 441은 해당 어플리케이션이 장치에 프리로드 되어야 하는지 여부(예: true|false)를 나타낼 수 있다.
다양한 실시 예에서, feature 437은 사용자 정의 기능(User-Define feature 445) 및 필수 패키지(requiredPackage 443)(예: com.samsung.app.abc)에 대한 정보를 포함할 수 있다. 또한 필수 패키지에 대한 정보는, 상기 어플리케이션이 동작하기 위해 요구되는 최소한의 버전(attribute: minVer) 정보를 더 포함할 수 있다.
deviceFeature 415는 호스트 장치와 외부 장치에서 각각의 역할에 따라 정의된 기능을 나타낼 수 있다. 예를 들어, 웨어러블 장치는 camera 451에 해당하는 카메라 기능을 포함할 수 있다.
Notification 417은 BLE로 연결된 장치에서 설정하는 알림 속성의 우선 순위에 대한 정보(DeviceBLENotificationAttributePriority 461), BT로 연결된 장치에서 설정하는 알림의 기본 크기(byte) (DeviceBTNotificationSize 463), BT로 연결된 장치에서 설정하는 알림 속성의 우선 순위(DeviceBTNotificationAttributePriority 465), 및 BLE로 연결된 장치에서 설정하는 알림의 기본 크기(byte)(DeviceBLENotificationSize 467)을 포함할 수 있다.
Settings 419는 사용자 정의 기능(User-Define feature 481) 및 모든 메뉴 항목(All menu items 471)을 포함할 수 있다.
다양한 실시 예에서, 예를 들어 도 3의 동작 303에서, 웨어러블 장치는 동작 301의 요청에 응답하여, 도 4의 데이터 구조 400(예: 웨어러블 장치의 XML 구조)로부터 필요한 정보를 적어도 하나 이상 포함하여 wearableStatus.xml을 생성하고, 이를 호스트 장치로 전송할 수 있다. 예를 들어 상기 WearableStatus.xml은 웨어러블 장치의 소프트웨어 버전(swVersion 411), 설치된 앱 종류 및 버전(name 433 and version 435, 및 필수 패키지 정보(requiredPackage 433)을 포함할 수 있다.
도 5는 다양한 실시 예에 따른 호스트 장치의 데이터 구조의 예시를 나타낸다. 도 5의 데이터 구조 500은 도 4의 외부 장치와 연결되는 호스트 장치의 데이터 구조로 이해될 수 있다. 도 5에 도시된 항목 중에서, 도 4에서 설명한 항목과 중복되거나 대응되는 내용은 그 설명을 생략한다.
도 5를 참조하면, 호스트 장치의 데이터 구조 500은 도 4의 외부 장치의 데이터 구조 400과 유사한 구조를 가질 수 있다. 도시된 예시에서, 데이터 구조 500에서 apps 513은 복수 개의 app 521에 대한 정보를 포함하고, 각 app 521은 각 어플리케이션의 특징 532를 포함한다. 이 경우, 호스트 장치에 설치된 것은 패키지 그 자체이므로 필수 패키지에 대한 정보(예: requiredPackage 433)은 데이터 구조에 포함되지 않을 수 있다.
도 5를 참조하면, 호스트 장치의 데이터 구조 500은 device Feature 515를 포함할 수 있다. 다양한 실시 예에서 deviceFeature 515는 호스트 장치가 태블릿인지 여부를 나타내는 정보(tablet 551), 자동 잠금 지원 여부(autolock 555), 제조사 정보(vender 557), 통화 기능 지원 여부(telephony 559), 하드웨어 적인 스마트 릴레이 지원 여부(smartrelay 561) 등을 포함할 수 있다. 다양한 실시 예에서, 도 5에 도시된 deviceFeature 515의 항목 중 일부는 도 4의 deviceFeature 415에 포함될 수 있고, 혹은 그 역도 성립할 수 있다.
다양한 실시 예에서, 다시 도 3 내지 도 5를 참조하면, 호스트 장치는 적어도 app 521의 packagename 정보 또는 deviceFeature 515 정보를 포함하는(또는 추출하여) HostStatus.xml을 생성하여 웨어러블 장치로 전송할 수 있다. 웨어러블 장치에서는 동작 317에서, 수신된 HostStatus에 포함된 패키지 또는 기능에 대한 정보와 웨어러블 장치에서 요구하는 패키지(requiredPackage 443) 또는 기능(예: camera 451) 등을 비교할 수 있다. 웨어러블 장치에서 정상 동작이 가능하다고 판단되는 정보를 데이터 구조 형태로 생성하여 다시 호스트 장치로 전송할 수 있다.
다양한 실시 예에서, 대응되는 동작이 호스트 장치를 기준으로 수행될 수도 있다. 예를 들어, 웨어러블 장치는 호스트 장치로 설치된 어플리케이션에 대한 정보를 전송할 수 있다. 상기 정보에는 설치된 어플리케이션이 요구하는 패키지 정보 및/또는 상기 패키지의 최소 버전 정보가 포함될 수 있다. 호스트 장치는 수신된 정보와 상기 데이터 구조 500을 비교하여, 웨어러블 장치에서 정상적으로 실행하는 것이 어렵다고 판단된 어플리케이션을 호스트 매니저 화면(예: 화면 123) 등에서 출력되지 않도록 할 수 있다.
도 6은 다양한 실시 예에 따른 네거티브 동기화(negative sync)의 프로세스를 나타낸다. 도 6과 관련하여, 전술된 내용과 중복되거나 대응되는 내용은 그 설명이 생략될 수 있다.
편의상 도 6에서 제1 장치가 외부 장치이고, 제2 장치가 호스트 장치인 경우에 대해서 설명한다. 우선, 제1 장치를 기준으로 설명한다.
동작 610에서, 제1 장치는 제1 장치에 설치된 어플리케이션을 확인할 수 있다. 예를 들어, 제1 장치는 전술한 데이터 구조에서 해당 항목에 포함된 데이터를 추출할 수 있다.
동작 620에서 제1 장치는 각 어플리케이션이 요구하는 조건이 제2 장치에서 충족되는지 여부를 확인할 수 있다. 예를 들어, 제1 장치는 제2 장치로부터 제2 장치에 설치된 패키지에 대한 정보를 수신하고, 상기 수신된 정보와 상기 제1 장치에 설치된 어플리케이션의 정보를 비교할 수 있다.
동작 630에서, 제1 장치는 제2 장치에서 제1 장치에 설치된 어플리케이션의 요구 조건이 충족되지 않는 경우, 해당 앱을 디스플레이(UI)에서 숨김 처리 할 수 있다.
다양한 실시 예에서, 제1 장치는 제2 장치로 정보의 비교 결과를 전송할 수 있다. 상기 비교 결과에는 제1 장치의 어플리케이션 중, 정상 동작이 가능할 것으로 판단되는 어플리케이션의 목록(혹은 정상 동작이 불가능할 것으로 판단되는 어플리케이션의 목록)이 포함될 수 있다. 제2 장치는 상기 비교 결과에 기초하여 제1 장치에서 출력되거나 출력되지 않을 항목을 설정할 수 있다. 제1 장치는 제2 장치에서 설정된 항목에 따라 어플리케이션의 항목(예: 아이콘, 메뉴 등)을 출력할 수 있다.
다양한 실시 예에서, 제1 장치는 상기 비교 결과에 따라 자체적으로 제1 장치에서 해당 어플리케이션의 항목이 출력되지 않도록 할 수 있다. 다만 이 경우에도 제2 장치에서의 관리 화면에서 제1 장치에서 지원되지 않는 어플리케이션에 대한 출력 처리를 위해 제1 장치는 제2 장치로 비교 결과를 전송할 수 있다.
다음으로, 제2 장치(호스트 장치)를 기준으로 설명한다. 동작 610에서 제2 장치는 제1 장치에 설치된 어플리케이션을 확인할 수 있다. 예를 들어, 제2 장치는 제1 장치로부터 제1 장치에 설치된 어플리케이션 등에 대한 정보를 수신할 수 있다.
동작 620에서 제2 장치는 제1 장치에 설치된 어플리케이션이 요구하는 조건이 제2 장치에서 충족되는지 확인할 수 있다. 동작 620에서 제2 장치는, 제2 장치의 데이터 구조(예: 데이터 구조 500) 등에 포함된 정보로부터 제2 장치에 설치된 패키지, 기능, 하드웨어 등이 제1 장치의 어플리케이션을 지원하는지 여부를 판단할 수 있다. 다른 방법으로, 제2 장치는 제1 장치로 제2 장치에 설치된 패키지, 기능 등에 대한 정보를 제1 장치로 전송하고, 제1 장치로부터 지원 가능 어플리케이션에 대한 정보를 회신할 수 있다.
동작 630에서, 제2 장치는 제2 장치의 디스플레이 또는 제1 장치의 디스플레이에서 상기 요구 조건이 충족되지 않는 어플리케이션이 디스플레이 되지 않도록 할 수 있다. 예를 들어, 제2 장치는 제1 장치의 디스플레이서 미지원 어플리케이션이 출력되지 않도록 하는 제어 명령을 제1 장치로 전송할 수 있다. 또한 제2 장치는 제2 장치의 호스트 매니저 화면 등에서 상기 미지원 어플리케이션이 출력되지 않도록 하거나, 별도의 항목으로 구분되어 출력되도록 할 수 있다.
다양한 실시 예에 따르면, 전자 장치의 동기화 방법은 제1 장치에 설치된 어플리케이션을 확인하는 동작, 상기 어플리케이션이 요구하는 조건이 제2 장치에서 충족되는지 여부를 확인하는 동작, 및 상기 확인 결과에 기초하여 상기 어플리케이션의 일부를 상기 제1 장치 또는 상기 제2 장치에서 출력할지 여부를 결정하는 동작을 할 수 있다.
여기서 상기 충족 여부를 확인하는 동작은, 상기 어플리케이션이 요구하는 패키지가 상기 제2 장치에 설치되어 있는지 여부를 판단하는 동작을 포함할 수 있다.
또한 상기 방법은 상기 제2 장치에 설치된 패키지에 대한 정보를 상기 제1 장치로 전송하는 동작, 및 상기 설치된 패키지에 대한 정보를 기반하여 생성된 제1 어플리케이션에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 동작을 더 포함할 수 있다. 여기서 상기 충족 여부를 확인하는 동작은, 상기 작동 가능한 어플리케이션에 대한 정보에 기반하여 판단하는 동작을 더 포함할 수 있다.
다양한 실시 예에서 상기 출력 여부를 결정하는 동작은, 상기 충족 여부의 확인 결과, 충족되지 않는다고 판단되면 상기 제1 장치 또는 상기 제2 장치의 디스플레이에서 충족되지 않는 어플리케이션 항목의 출력을 제한하는 동작을 더 포함할 수 있다.
도 7은 다양한 실시 예에 따른, 전자 장치를 포함하는 네트워크 환경을 도시한다.
도 7을 참조하면, 상기 전자 장치 700은 버스 710, 프로세서 720, 메모리 730, 입출력 인터페이스 740, 디스플레이 750, 통신 인터페이스 760 및 관리 모듈 770을 포함할 수 있다. 전자 장치 700은 예를 들어, 호스트 장치 일 수 있고, 전자 장치 704는 예를 들어, 외부 장치(웨어러블 장치)일 수 있다.
상기 버스 710은 전술한 구성요소들을 서로 연결하고, 전술한 구성요소들 간의 통신(예: 제어 메시지)을 전달하는 회로일 수 있다.
상기 프로세서 720은, 예를 들면, 상기 버스 710을 통해 전술한 다른 구성요소들(예: 상기 메모리 730, 상기 입출력 인터페이스 740, 상기 디스플레이 750, 상기 통신 인터페이스 760, 또는 상기 관리 모듈 770 등)로부터 명령을 수신하여, 수신된 명령을 해독하고, 해독된 명령에 따른 연산이나 데이터 처리를 실행할 수 있다.
상기 메모리 730은, 상기 프로세서 720 또는 다른 구성요소들(예: 상기 입출력 인터페이스 740, 상기 디스플레이 750, 상기 통신 인터페이스 760, 또는 상기 관리 모듈 770 등)로부터 수신되거나 상기 프로세서 720 또는 다른 구성요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 상기 메모리 730은, 예를 들면, 커널 731, 미들웨어 732, 어플리케이션 프로그래밍 인터페이스(API: application programming interface) 733 또는 어플리케이션 734 등의 프로그래밍 모듈들을 포함할 수 있다. 전술한 각각의 프로그래밍 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.
상기 커널 731은 나머지 다른 프로그래밍 모듈들, 예를 들면, 상기 미들웨어 732, 상기 API 733 또는 상기 어플리케이션 734에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 상기 버스 710, 상기 프로세서 720 또는 상기 메모리 730 등)을 제어 또는 관리할 수 있다. 또한, 상기 커널 731은 상기 미들웨어 732, 상기 API 733 또는 상기 어플리케이션 734에서 상기 전자 장치 700의 개별 구성요소에 접근하여 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
상기 미들웨어 732는 상기 API 733 또는 상기 어플리케이션 734이 상기 커널 731과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 상기 미들웨어 732는 상기 어플리케이션 734로부터 수신된 작업 요청들과 관련하여, 예를 들면, 상기 어플리케이션 734 중 적어도 하나의 어플리케이션에 상기 전자 장치 700의 시스템 리소스(예: 상기 버스 710, 상기 프로세서 720 또는 상기 메모리 730 등)를 사용할 수 있는 우선 순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 제어(예: 스케줄링 또는 로드 밸런싱)을 수행할 수 있다.
상기 API 733은 상기 어플리케이션 734이 상기 커널 731 또는 상기 미들웨어 732에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 어플리케이션 734는 SMS/MMS 어플리케이션, 이메일 어플리케이션, 달력 어플리케이션, 알람 어플리케이션, 건강 관리(health care) 어플리케이션(예: 운동량 또는 혈당 등을 측정하는 어플리케이션) 또는 환경 정보 어플리케이션(예: 기압, 습도 또는 온도 정보 등을 제공하는 어플리케이션) 등을 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 어플리케이션 734는 상기 전자 장치 700과 외부 전자 장치(예: 전자 장치 704) 사이의 정보 교환과 관련된 어플리케이션일 수 있다. 상기 정보 교환과 관련된 어플리케이션은, 예를 들어, 상기 외부 전자 장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 상기 외부 전자 장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들면, 상기 알림 전달 어플리케이션은 상기 전자 장치 700 의 다른 어플리케이션(예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션 또는 환경 정보 어플리케이션 등)에서 발생한 알림 정보를 외부 전자 장치(예: 전자 장치 704)로 전달하는 기능을 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 알림 전달 어플리케이션은, 예를 들면, 외부 전자 장치(예: 전자 장치 704)로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 상기 장치 관리 어플리케이션은, 예를 들면, 상기 전자 장치 700과 통신하는 외부 전자 장치(예: 전자 장치 704)의 적어도 일부에 대한 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴온/턴오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 상기 외부 전자 장치에서 동작하는 어플리케이션 또는 상기 외부 전자 장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스)를 관리(예: 설치, 삭제 또는 업데이트)할 수 있다.
다양한 실시 예에 따르면, 상기 어플리케이션 734는 상기 외부 전자 장치(예: 전자 장치 704)의 속성(예: 전자 장치의 종류)에 따라 지정된 어플리케이션을 포함할 수 있다. 예를 들어, 외부 전자 장치가 MP3 플레이어인 경우, 상기 어플리케이션 734는 음악 재생과 관련된 어플리케이션을 포함할 수 있다. 유사하게, 외부 전자 장치가 모바일 의료기기인 경우, 상기 어플리케이션 734는 건강 관리와 관련된 어플리케이션을 포함할 수 있다. 한 실시 예에 따르면, 상기 어플리케이션 734는 전자 장치 700에 지정된 어플리케이션 또는 외부 전자 장치(예: 서버 706 또는 전자 장치 704)로부터 수신된 어플리케이션 중 적어도 하나를 포함할 수 있다.
상기 입출력 인터페이스 740은, 입출력 장치(예: 센서, 키보드 또는 터치 스크린)를 통하여 사용자로부터 입력된 명령 또는 데이터를, 예를 들면, 상기 버스 710을 통해 상기 프로세서 720, 상기 메모리 730, 상기 통신 인터페이스 760, 또는 상기 관리 모듈 770에 전달할 수 있다. 예를 들면, 상기 입출력 인터페이스 740은 터치 스크린을 통하여 입력된 사용자의 터치에 대한 데이터를 상기 프로세서 720로 제공할 수 있다. 또한, 상기 입출력 인터페이스 740은, 예를 들면, 상기 버스 710을 통해 상기 프로세서 720, 상기 메모리 730, 상기 통신 인터페이스 760, 또는 상기 관리 모듈 770로부터 수신된 명령 또는 데이터를 상기 입출력 장치(예: 스피커 또는 디스플레이)를 통하여 출력할 수 있다. 예를 들면, 상기 입출력 인터페이스 740은 상기 프로세서 720을 통하여 처리된 음성 데이터를 스피커를 통하여 사용자에게 출력할 수 있다.
상기 디스플레이 750은 사용자에게 각종 정보(예: 멀티미디어 데이터 또는 텍스트 데이터 등)을 표시할 수 있다. 예를 들어, 디스플레이 750은 설치된 어플리케이션에 대한 항목, 전자 장치 704에 설치된 어플리케이션을 관리하기 위한 호스트 매니저 화면 등을 출력할 수 있다.
상기 통신 인터페이스 760은 상기 전자 장치 700과 외부 장치(예: 전자 장치 704 또는 서버 706) 간의 통신을 연결할 수 있다. 예를 들면, 상기 통신 인터페이스 760은 무선 통신 또는 유선 통신을 통해서 네트워크 762에 연결되어 상기 외부 장치와 통신할 수 있다. 상기 무선 통신은, 예를 들어, Wi-Fi(wireless fidelity), BT(Bluetooth), NFC(near field communication), GPS(global positioning system) 또는 cellular 통신(예: LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro 또는 GSM 등) 중 적어도 하나를 포함할 수 있다. 상기 유선 통신은, 예를 들어, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232) 또는 POTS(plain old telephone service) 중 적어도 하나를 포함할 수 있다.
한 실시 예에 따르면, 상기 네트워크 762는 통신 네트워크(telecommunications network)일 수 있다. 상기 통신 네트워크 는 컴퓨터 네트워크(computer network), 인터넷(internet), 사물 인터넷(internet of things) 또는 전화망(telephone network) 중 적어도 하나를 포함할 수 있다. 한 실시 예에 따르면, 상기 전자 장치 700과 외부 장치 간의 통신을 위한 프로토콜(예: transport layer protocol, data link layer protocol 또는 physical layer protocol))은 어플리케이션 734, 어플리케이션 프로그래밍 인터페이스 733, 상기 미들웨어 732, 커널 731 또는 통신 인터페이스 760 중 적어도 하나에서 지원될 수 있다.
상기 관리 모듈 770은, 다른 구성요소들(예: 상기 프로세서 720, 상기 메모리 730, 상기 입출력 인터페이스 740, 또는 상기 통신 인터페이스 760 등)로부터 획득된 정보 중 적어도 일부를 처리하고, 이를 다양한 방법으로 사용자에게 제공 할 수 있다. 예를 들어, 상기 관리 모듈 770은 전술한 HM 모듈 120 또는 WMC 모듈 110(예를 들어, 전자 장치 704의 경우)에 해당할 수 있다. 상기 관리 모듈 770은 전자 장치 700과 전자 장치 704에 설치된 어플리케이션 또는 패키지의 설치 정보를 비교하여, 상기 디스플레이 750 또는 전자 장치 704의 디스플레이(미도시)에 특정 어플리케이션에 대한 내용이 출력되거나 출력되지 않도록 할 수 있다.
도 8은 다양한 실시 예들에 따른 전자 장치의 하드웨어를 도시한다.
상기 전자 장치 800은, 예를 들면, 도 7에 도시된 전자 장치 700의 전체 또는 일부를 구성할 수 있다. 도 8을 참조하면, 상기 전자 장치 800은 하나 이상의 어플리케이션 프로세서(AP: application processor) 810, 통신 모듈 820, SIM(subscriber identification module) 카드 824, 메모리 830, 센서 모듈 840, 입력 장치 850, 디스플레이 860, 인터페이스 870, 오디오 모듈 880, 카메라 모듈 891, 전력관리 모듈 895, 배터리 896, 인디케이터 897 및 모터 898 를 포함할 수 있다.
상기 AP 810은 운영체제 또는 응용 프로그램을 구동하여 상기 AP 810에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있다. 상기 AP 810은, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시 예에 따르면, 상기 AP 810은 GPU(graphic processing unit, 미도시)를 더 포함할 수 있다.
상기 통신 모듈 820(예: 상기 통신 인터페이스 760)은 상기 전자 장치 800(예: 상기 전자 장치 700)와 네트워크를 통해 연결된 다른 전자 장치들(예: 전자 장치 704 또는 서버 706) 간의 통신에서 데이터 송수신을 수행할 수 있다. 한 실시 예에 따르면, 상기 통신 모듈 820은 셀룰러 모듈 821, Wi-Fi 모듈 823, BT 모듈 825, GPS 모듈 827, NFC 모듈 828 및 RF(radio frequency) 모듈 829를 포함할 수 있다.
상기 셀룰러 모듈 821은 통신망(예: LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro 또는 GSM 등)을 통해서 음성 통화, 영상 통화, 문자 서비스 또는 인터넷 서비스 등을 제공할 수 있다. 또한, 상기 셀룰러 모듈 821은, 예를 들면, 가입자 식별 모듈(예: SIM 카드 824)을 이용하여 통신 네트워크 내에서 전자 장치의 구별 및 인증을 수행할 수 있다. 한 실시 예에 따르면, 상기 셀룰러 모듈 821은 상기 AP 810가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 예를 들면, 상기 셀룰러 모듈 821은 멀티 미디어 제어 기능의 적어도 일부를 수행할 수 있다.
한 실시 예에 따르면, 상기 셀룰러 모듈 821은 커뮤니케이션 프로세서(CP: communication processor)를 포함할 수 있다. 또한, 상기 셀룰러 모듈 821은, 예를 들면, SoC로 구현될 수 있다. 도 8에서는 상기 셀룰러 모듈 821(예: 커뮤니케이션 프로세서), 상기 메모리 830 또는 상기 전력관리 모듈 895 등의 구성요소들이 상기 AP 810과 별개의 구성요소로 도시되어 있으나, 한 실시 예에 따르면, 상기 AP 810가 전술한 구성요소들의 적어도 일부(예: 셀룰러 모듈 821)를 포함하도록 구현될 수 있다.
한 실시 예에 따르면, 상기 AP 810 또는 상기 셀룰러 모듈 821(예: 커뮤니케이션 프로세서)은 각각에 연결된 비 휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 상기 AP 810 또는 상기 셀룰러 모듈 821은 다른 구성요소 중 적어도 하나로부터 수신하거나 다른 구성요소 중 적어도 하나에 의해 생성된 데이터를 비 휘발성 메모리에 저장(store)할 수 있다.
상기 Wi-Fi 모듈 823, 상기 BT 모듈 825, 상기 GPS 모듈 827 또는 상기 NFC 모듈 828 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 도 8에서는 셀룰러 모듈 821, Wi-Fi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828이 각각 별개의 블록으로 도시되었으나, 한 실시 예에 따르면, 셀룰러 모듈 821, Wi-Fi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. 예를 들면, 셀룰러 모듈 821, Wi-Fi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 각각에 대응하는 프로세서들 중 적어도 일부(예: 셀룰러 모듈 821에 대응하는 커뮤니케이션 프로세서 및 Wi-Fi 모듈 823에 대응하는 Wi-Fi 프로세서)는 하나의 SoC로 구현될 수 있다.
상기 RF 모듈 829는 데이터의 송수신, 예를 들면, RF 신호의 송수신을 할 수 있다. 상기 RF 모듈 829는, 도시되지는 않았으나, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter) 또는 LNA(low noise amplifier) 등을 포함할 수 있다. 또한, 상기 RF 모듈 829는 무선 통신에서 자유 공간상의 전자파를 송수신하기 위한 부품, 예를 들면, 도체 또는 도선 등을 더 포함할 수 있다. 도 8에서는 셀룰러 모듈 821, Wi-Fi 모듈 823, BT 모듈 825, GPS 모듈 827 및 NFC 모듈 828이 하나의 RF 모듈 829를 서로 공유하는 것으로 도시되어 있으나, 한 실시 예에 따르면, 셀룰러 모듈 821, Wi-Fi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호의 송수신을 수행할 수 있다.
상기 SIM 카드 824는 가입자 식별 모듈을 포함하는 카드일 수 있으며, 전자 장치의 특정 위치에 형성된 슬롯에 삽입될 수 있다. 상기 SIM 카드 824는 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
상기 메모리 830(예: 상기 메모리 730)는 내장 메모리 832 또는 외장 메모리 834를 포함할 수 있다. 상기 내장 메모리 832는, 예를 들면, 휘발성 메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비 휘발성 메모리(non-volatile Memory, 예를 들면, OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory 등) 중 적어도 하나를 포함할 수 있다.
한 실시 예에 따르면, 상기 내장 메모리 832는 Solid State Drive (SSD)일 수 있다. 상기 외장 메모리 834는 flash drive, 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 등을 더 포함할 수 있다. 상기 외장 메모리 834는 다양한 인터페이스를 통하여 상기 전자 장치 800과 기능적으로 연결될 수 있다. 한 실시 예에 따르면, 상기 전자 장치 800은 하드 드라이브와 같은 저장 장치(또는 저장 매체)를 더 포함할 수 있다.
상기 센서 모듈 840은 물리 량을 계측하거나 전자 장치 800의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 상기 센서 모듈 840은, 예를 들면, 제스처 센서 840A, 자이로 센서 840B, 기압 센서 840C, 마그네틱 센서 840D, 가속도 센서 840E, 그립 센서 840F, 근접 센서 840G, color 센서 840H(예: RGB(red, green, blue) 센서), 생체 센서 840I, 온/습도 센서 840J, 조도 센서 840K 또는 UV(ultra violet) 센서 840M 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 센서 모듈 840은, 예를 들면, 후각 센서(E-nose sensor, 미도시), EMG 센서(electromyography sensor, 미도시), EEG 센서(electroencephalogram sensor, 미도시), ECG 센서(electrocardiogram sensor, 미도시), IR(infra red) 센서(미도시), 홍채 센서(미도시) 또는 지문 센서(미도시) 등을 포함할 수 있다. 상기 센서 모듈 840은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 입력 장치 850은 터치 패널(touch panel) 852, (디지털) 펜 센서(pen sensor) 854, 키(key) 856 또는 초음파(ultrasonic) 입력 장치 858를 포함할 수 있다. 상기 터치 패널 852은, 예를 들면, 정전식, 감압식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 터치 입력을 인식할 수 있다. 또한, 상기 터치 패널 852은 제어 회로를 더 포함할 수도 있다. 정전식의 경우, 물리적 접촉 또는 근접 인식이 가능하다. 상기 터치 패널 852은 택타일 레이어(tactile layer)를 더 포함할 수도 있다. 이 경우, 상기 터치 패널 852은 사용자에게 촉각 반응을 제공할 수 있다.
상기 (디지털) 펜 센서 854는, 예를 들면, 사용자의 터치 입력을 받는 것과 동일 또는 유사한 방법 또는 별도의 인식용 시트(sheet)를 이용하여 구현될 수 있다. 상기 키 856는, 예를 들면, 물리적인 버튼, 광학식 키 또는 키 패드를 포함할 수 있다. 상기 초음파(ultrasonic) 입력 장치 858는 초음파 신호를 발생하는 입력 도구를 통해, 전자 장치 800에서 마이크(예: 마이크 888)로 음파를 감지하여 데이터를 확인할 수 있는 장치로서, 무선 인식이 가능하다. 한 실시 예에 따르면, 상기 전자 장치 800은 상기 통신 모듈 820을 이용하여 이와 연결된 외부 장치(예: 컴퓨터 또는 서버)로부터 사용자 입력을 수신할 수도 있다.
상기 디스플레이 860(예: 상기 디스플레이 750)은 패널 862, 홀로그램 장치 864 또는 프로젝터 866을 포함할 수 있다. 상기 패널 862은, 예를 들면, LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등일 수 있다. 상기 패널 862은, 예를 들면, 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널 862은 상기 터치 패널 852과 하나의 모듈로 구성될 수도 있다. 상기 홀로그램 장치 864는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 상기 프로젝터 866는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 상기 스크린은, 예를 들면, 상기 전자 장치 800의 내부 또는 외부에 위치할 수 있다. 한 실시 예에 따르면, 상기 디스플레이 860은 상기 패널 862, 상기 홀로그램 장치 864, 또는 프로젝터 866를 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 인터페이스 870은, 예를 들면, HDMI(high-definition multimedia interface) 872, USB(universal serial bus) 874, 광 인터페이스(optical interface) 876 또는 D-sub(D-subminiature) 878를 포함할 수 있다. 상기 인터페이스 870은, 예를 들면, 도 7에 도시된 통신 인터페이스 760에 포함될 수 있다. 추가적으로 또는 대체적으로, 상기 인터페이스 870은, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD(secure Digital) 카드/MMC(multi-media card) 인터페이스 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
상기 오디오 모듈 880은 소리(sound)와 전기신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 모듈 880의 적어도 일부 구성요소는, 예를 들면, 도 7 에 도시된 입출력 인터페이스 740에 포함될 수 있다. 상기 오디오 모듈 880은, 예를 들면, 스피커 882, 리시버 884, 이어폰 886 또는 마이크 888 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
상기 카메라 모듈 891은 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시 예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈(미도시), ISP(image signal processor, 미도시) 또는 플래시 (flash, 미도시)(예: LED 또는 xenon lamp)를 포함할 수 있다.
상기 전력 관리 모듈 895은 상기 전자 장치 800의 전력을 관리할 수 있다. 도시하지는 않았으나, 상기 전력 관리 모듈 895은, 예를 들면, PMIC(power management integrated circuit), 충전 IC(charger integrated circuit) 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다.
상기 PMIC는, 예를 들면, 집적회로 또는 SoC 반도체 내에 탑재될 수 있다. 충전 방식은 유선과 무선으로 구분될 수 있다. 상기 충전 IC는 배터리를 충전시킬 수 있으며, 충전기로부터의 과전압 또는 과전류 유입을 방지할 수 있다. 한 실시 예에 따르면, 상기 충전 IC는 유선 충전 방식 또는 무선 충전 방식 중 적어도 하나를 위한 충전 IC를 포함할 수 있다. 무선 충전 방식으로는, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등이 있으며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로 또는 정류기 등의 회로가 추가될 수 있다.
상기 배터리 게이지는, 예를 들면, 상기 배터리 896의 잔량, 충전 중 전압, 전류 또는 온도를 측정할 수 있다. 상기 배터리 896는 전기를 저장 또는 생성할 수 있고, 그 저장 또는 생성된 전기를 이용하여 상기 전자 장치 800에 전원을 공급할 수 있다. 상기 배터리 896는, 예를 들면, 충전식 전지(rechargeable battery) 또는 태양 전지(solar battery)를 포함할 수 있다.
상기 인디케이터 897는 상기 전자 장치 800 혹은 그 일부(예: 상기 AP 810)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 상기 모터 898는 전기적 신호를 기계적 진동으로 변환할 수 있다. 도시되지는 않았으나, 상기 전자 장치 800은 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 상기 모바일 TV지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting) 또는 미디어플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치의 전술한 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 본 발명의 다양한 실시 예에 따른 전자 장치는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 본 발명의 다양한 실시 예에 따른 전자 장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
다양한 실시 예에 따르면, 호스트 장치(예: 전자 장치, 모바일 단말 등)와 외부 장치(예: 웨어러블 장치, 스마트 워치, 갤럭시 기어, 서브 장치 등) 간에 업데이트 처리가 수행될 수 있다.
예컨대, 호스트 장치는 외부 장치와 통신 채널을 형성하고, 외부 장치의 설정 정보(capability)를 수신하고, 외부 장치의 설정 정보 버전을 확인할 수 있다.
호스트 장치는 외부 장치의 설정 정보 버전이 해당 기능과 동일한 기능을 지원하면서 호스트 장치에 설치된 기능과 버전이 다른 경우, 버전 갱신과 관련한 메시지를 출력할 수 있다. 여기서 버전 갱신과 관련한 메시지는 버전 정보가 다름을 안내하는 메시지, 버전 정보 다름에 따라 버전 갱신을 요청하는 메시지(버전 업데이트와 관련한 확인 또는 취소를 나타내는 가상 버튼을 포함하는 팝업 창 등)를 포함할 수 있다. 상기 버전 갱신과 관련한 메시지는 호스트 장치 및 외부 장치 중 적어도 하나에서 출력될 수 있다.
다양한 실시 예에 따르면, 호스트 장치는 버전 갱신과 관련하여, 해당 데이터를 수집하여 외부 장치에 제공할 수도 있다. 이와 관련하여, 호스트 장치는 특정 통합 패키지(호스트 장치 및 외부 장치에서 동일한 기능 또는 유사한 기능을 수행할 수 있도록 마련된 데이터로서, 호스트 장치에 설치되는 기본 데이터와 외부 장치에 설치되는 서브 데이터를 포함한 패키지)를 저장 모듈에 저장하고 있거나, 해당 패키지를 제공하는 서버 장치로부터 수신할 수 있다. 이에 따라, 호스트 장치는 상위 버전의 데이터를 외부 장치에 제공할 수 있다.
다양한 실시 예에 따르면, 외부 장치가 호스트 장치에 비하여 상위 버전의 데이터를 포함하는 경우, 호스트 장치는 서버 장치 등으로부터 해당 버전에 해당하는 통합 패키지를 수신하고, 통합 패키지에 포함된 설치 정보에 따라 프로그램을 설치할 수도 있다.
다양한 실시 예에 따르면, 호스트 장치와 외부 장치는 버전 업그레이드뿐만 아니라 버전 다운그레이드도 지원할 수 있다. 예컨대, 호스트 장치에 마련된 통합 패키지에서 서브 데이터의 버전이 통신 연결된 외부 장치에 설치된 프로그램의 서브 데이터 버전보다 하위 버전인 경우, 호스트 장치는 하위 버전의 서브 데이터를 외부 장치에 전송할 수 있다. 그러면 외부 장치는 설치된 상위 버전의 서브 데이터를 호스트 장치가 제공한 하위 버전의 서브 데이터로 다운그레이드 할 수 있다. 이와 관련하여, 호스트 장치 및 외부 장치 중 적어도 하나는 다운그레이드에 대한 안내 메시지 및 설치와 관련한 가이드 정보 출력을 지원할 수 있다.
다양한 실시 예에 따르면, 전자 장치는 상기 전자 장치에 구비된 패키지를 확인하는 관리 모듈, 외부 장치로부터 상기 외부 장치에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 통신 모듈, 및 상기 외부 장치에 설치된 어플리케이션에 대한 항목을 출력하는 디스플레이를 포함할 수 있다. 여기서 상기 관리 모듈은 상기 확인된 패키지와 상기 정보의 비교 결과에 기반하여 각각의 상기 어플리케이션에 대한 항목의 출력 여부를 결정하도록 설정될 수 있다.
다양한 실시 예에서, 상기 전자 장치는 호스트 장치고, 상기 외부 장치는 상기 전자 장치와 페어링 된 웨어러블 장치일 수 있다.
다양한 실시 예에서, 상기 통신 모듈은 상기 확인된 패키지에 대한 정보를 상기 외부 장치로 전송하고, 상기 비교 결과는 상기 외부 장치로부터 상기 전송된 패키지에 대한 정보를 기반으로 생성될 수 있다.
다양한 실시 예에서, 상기 설치된 어플리케이션에 대한 정보는, 상기 어플리케이션이 요구하는 패키지에 대한 정보 및 상기 패키지의 최소 버전 정보를 포함할 수 있다.
다양한 실시 예에서, 상기 관리 모듈은 상기 전자 장치가 상기 외부 장치와 연결될 때 상기 항목의 출력 여부를 결정하도록 설정될 수 있다.
다양한 실시 예에서, 상기 제어 모듈은 상기 외부 장치에서 동기화가 이루어질 수 있도록, 상기 통신 모듈로 하여금 상기 구비된 패키지에 대한 정보를 외부 장치로 전송하도록 설정될 수 있다.
다양한 실시 예에 따르면, 전자 장치는 상기 전자 장치에 설치된 어플리케이션의 요구 사항을 확인하는 관리 모듈, 호스트 장치로부터 상기 호스트 장치에서 지원하는 기능에 대한 정보를 수신하는 통신 모듈, 및 상기 설치된 어플리케이션에 대한 항목을 출력하는 디스플레이를 포함할 수 있다. 여기서 상기 관리 모듈은 상기 호스트 장치에서 지원하는 기능에 대한 정보와 상기 어플리케이션의 요구 사항을 비교하여 각각의 상기 어플리케이션에 대한 항목의 출력 여부를 결정하도록 설정될 수 있다.
다양한 실시 예에서, 상기 전자 장치는 상기 호스트 장치와 커플링 되어 동작하는 웨어러블 장치일 수 있다.
다양한 실시 예에서, 상기 어플리케이션의 요구 사항은 상기 어플리케이션이 구동되는데 필요한 패키지 또는 기능 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에서, 상기 관리 모듈은 상기 어플리케이션이 상기 호스트 장치에 의해 지원되지 않는 것으로 판단되면, 상기 디스플레이의 UI에 출력되지 않도록 결정할 수 있다.
다양한 실시 예에서, 상기 관리 모듈은 상기 전자 장치의 데이터 구조로부터 상기 요구 사항을 확인하고, 상기 데이터 구조는 각 어플리케이션이 요구하는 패키지 정보 및 각 패키지의 최소 버전 정보를 포함하도록 설정될 수 있다.
다양한 실시 예에서, 상기 통신 모듈은 상기 비교 결과에 대한 정보 데이터 구조 문서 포맷으로 상기 호스트 장치로 전송하도록 설정될 수 있다.
도 9는 다양한 실시 예에 따른 복수의 전자 장치들(예: 전자 장치 910 및 전자 장치 930) 사이의 통신 프로토콜 900을 도시한다.
도 9를 참조하면, 예를 들어, 상기 통신 프로토콜 900은, 장치 발견 프로토콜(device discovery protocol) 951, 기능 교환 프로토콜(capability exchange protocol) 953, 네트워크 프로토콜(network protocol) 955 및 어플리케이션 프로토콜(application protocol) 957 등을 포함할 수 있다.
한 실시 예에 따르면, 상기 장치 발견 프로토콜 951은 전자 장치들(예: 전자 장치 910 또는 전자 장치 930)이 자신과 통신 가능한 외부 전자 장치를 감지하거나 감지된 외부 전자 장치와 연결하기 위한 프로토콜일 수 있다. 예를 들어, 전자 장치 910(예: 전자 장치 700)은, 상기 장치 발견 프로토콜 951을 이용하여, 상기 전자 장치 910에서 사용 가능한 통신 방법(예: Wi-Fi, BT 또는 USB 등)을 통해, 상기 전자 장치 910과 통신 가능한 기기(device)로, 전자 장치 930(예: 전자 장치 704)를 감지할 수 있다. 상기 전자 장치 910은, 상기 전자 장치 930과의 통신 연결을 위해, 상기 장치 발견 프로토콜 951을 이용하여, 감지된 전자 장치 930에 대한 식별 정보를 획득하여 저장할 수 있다. 상기 전자 장치 910은, 예를 들면, 적어도 상기 식별 정보에 기반하여, 상기 전자 장치 930과의 통신 연결을 개설할 수 있다.
어떤 실시 예에 따르면, 상기 장치 발견 프로토콜 951은 복수의 전자 장치들 사이에서 상호 인증을 하기 위한 프로토콜일 수 있다. 예를 들어, 전자 장치 910은 적어도 전자 장치 930과 연결을 위한 통신 정보(예: MAC(media access control) address, UUID(universally unique identifier), SSID(subsystem identification), IP(internet protocol) address)에 기반하여, 상기 전자 장치 910과 상기 전자 장치 930 간의 인증을 수행할 수 있다.
한 실시 예에 따르면, 상기 기능 교환 프로토콜 953은 전자 장치 910 또는 전자 장치 930 중 적어도 하나에서 지원 가능한 서비스의 기능과 관련된 정보를 교환하기 위한 프로토콜일 수 있다. 예를 들어, 전자 장치 910 및 전자 장치 930은 상기 기능 교환 프로토콜 953을 통하여, 각각이 현재 제공하고 있는 서비스의 기능과 관련된 정보를 서로 교환할 수 있다. 교환 가능한 정보는 전자 장치 910 및 전자 장치 930에서 지원 가능한 복수의 서비스들 중에서 특정 서비스를 가리키는 식별 정보를 포함할 수 있다. 예를 들어, 전자 장치 910은 상기 기능 교환 프로토콜 953을 통해 전자 장치 930로부터 상기 전자 장치 930가 제공하는 특정 서비스의 식별 정보를 수신할 수 있다. 이 경우, 전자 장치 910은 상기 수신된 식별 정보에 기반하여, 상기 전자 장치 910이 상기 특정 서비스를 지원할 수 있는지 여부를 판단할 수 있다.
한 실시 예에 따르면, 상기 네트워크 프로토콜 955은 통신이 가능하도록 연결된 전자 장치들(예: 전자 장치 910, 전자 장치 930) 간에, 예컨대, 서비스를 연동하여 제공하기 위하여 송수신 되는, 데이터 흐름을 제어하기 위한 프로토콜일 수 있다. 예를 들어, 전자 장치 910 또는 전자 장치 930 중 적어도 하나는 상기 네트워크 프로토콜 955을 이용하여, 오류 제어, 또는 데이터 품질 제어 등을 수행할 수 있다. 추가적으로 또는 대체적으로, 상기 네트워크 프로토콜 955은 전자 장치 910과 전자 장치 930 사이에서 송수신되는 데이터의 전송 포맷을 결정할 수 있다. 또한, 전자 장치 910 또는 전자 장치 930 중 적어도 하나는 상기 네트워크 프로토콜 955를 이용하여 상호간의 데이터 교환을 위한 적어도 세션(session)을 관리(예: 세션 연결 또는 세션 종료)할 수 있다.
한 실시 예에 따르면, 상기 어플리케이션 프로토콜 957은 외부 전자 장치로 제공되는 서비스와 관련된 데이터를 교환하기 위한, 절차 또는 정보를 제공하기 위한 프로토콜일 수 있다. 예를 들어, 전자 장치 910(예: 전자 장치 700)은 상기 어플리케이션 프로토콜 957을 통해 전자 장치 930(예: 전자 장치 704 또는 서버 706)로 서비스를 제공할 수 있다.
한 실시 예에 따르면, 상기 통신 프로토콜 900은 표준 통신 프로토콜, 개인 또는 단체에서 지정한 통신 프로토콜(예: 통신 장치 제조 업체 또는 네트워크 공급 업체 등에서 자체적으로 지정한 통신 프로토콜) 또는 이들의 조합을 포함할 수 있다.
도 10은 다양한 실시 예에 따른 포지티브 동기화의 예시를 나타낸다.
도 10을 참조하면, 웨어러블 장치는 웨어러블 매니저 서비스 모듈 1010을, 호스트 장치는 호스트 매니저 모듈 1020을 포함할 수 있다. 상기 모듈 1010, 1020은 전술한 관리 모듈 770의 일 예시로 이해될 수 있다.
다양한 실시 예에서, 웨어러블 장치에는 웨어러블 어플리케이션 1011, 1013, 1015가 각각 설치되어 있을 수 있다. 호스트 장치에는 호스트 어플리케이션(패키지) 1021, 1023, 1025가 각각 설치되어 있을 수 있다.
모듈 1010 및 모듈 1020은 각 장치에 설치된 어플리케이션/패키지에 대한 정보를 상호 교환할 수 있다. 이와 관련된 내용은 도 1 내지 6을 참조하여 설명한 내용과 중복되므로 이하에서는 생략하도록 한다.
다양한 실시 예에서, 어플리케이션 1011(Wearable App A)을 살펴보면, 웨어러블 장치의 버전은 1인 반면 호스트 장치의 버전은 3일 수 있다. 이 경우, 호스트 장치의 버전이 더 높기 때문에 네거티브 동기화의 경우에도 어플리케이션 1011 항목은 정상적으로 디스플레이에 출력될 수 있다.
다만 도 10의 실시 예에서, 호스트 장치는 호스트 장치가 보유한 어플리케이션 패키지 1021에 포함된 버전 3의 웨어러블 용 설치 데이터를 웨어러블 장치로 전송할 수 있다(positive sync). 만약 호스트 장치에서 임의적으로 또는 사용자 설정에 의해 설치 파일(예: .apk)이 삭제된 경우, 호스트 장치는 서버(store)에 저장된 어플리케이션 1030에 접근하여 어플리케이션 A 패키지(App A)를 수신하여 웨어러블 장치로 설치 파일을 제공할 수 있다.
어플리케이션 1013(Wearable App B)을 살펴보면, 웨어러블 장치의 버전과 호스트 장치의 버전이 동일하다. 따라서 어플리케이션 1013에 대해서는 네거티브 동기화나 포지티브 동기화 중 어떤 것을 적용하더라도 동일한 결과(두 장치의 디스플레이에서 모두 정상적으로 출력됨)가 도출될 수 있다.
어플리케이션 1015(Wearable App C)를 살펴보면, 웨어러블 장치의 어플리케이션의 버전이 호스트 장치의 패키지 버전보다 높다. 만약 이 경우 웨어러블 장치의 데이터 구조에서 필수 패키지의 최소 요구 버전(예: requiredPackage 443의 attribute: minVer)이 버전 1보다 높은 경우(예: 버전 2), 네거티브 동기화의 경우, 어플리케이션 1015는 웨어러블 장치의 디스플레이 및/또는 호스트 장치의 호스트 매니저 화면에서 출력되지 않을 수 있다.
그러나 도 10의 실시 예에서, 호스트 장치는 서버(예: 스토어 1030)로부터 버전 3 또는 그 이상에 해당하는 어플리케이션 c 패키지를 수신하고, 호스트 장치의 어플리케이션 버전을 웨어러블 장치의 버전보다 크거나 갖게 갱신할 수 있다. 다양한 실시 예에서 호스트 장치가 서버에 연결될 수 없거나, 혹은 서버에서 해당 패키지를 제공하지 않거나, 또는 다른 환경적인 이유로 인해 호스트 장치의 패키지 버전을 웨어러블 장치의 어플리케이션을 기준으로 업데이트 할 수 없는 경우, 호스트 장치는 호스트 장치에 저장된 설치 파일을 이용하여 웨어러블 장치의 어플리케이션을 대체(예를 들어, 버전 1의 어플리케이션 1015로 대체)할 수 있다.
다양한 실시 예에서, 만약 웨어러블 장치에는 어플리케이션 1011이 설치되어 있는데 호스트 장치에는 어플리케이션 패키지 1021이 아예 설치되어 있지 않은 경우에도, 포지티브 동기화의 경우에, 호스트 장치는 서버(예: 서버 1030)로부터 어플리케이션 1011에 대응되는 패키지를 수신하여 웨어러블 장치의 어플리케이션 1011이 정상적으로 동작하도록 할 수 있다. 같은 상황에서, 만약 네거티브 동기화의 경우, 어플리케이션 1011은 웨어러블 장치의 디스플레이에 출력되지 않을 수 있다.
다양한 실시 예에 따른 전자 장치는, 전자 장치에 구비된 패키지를 확인하는 관리 모듈, 및 외부 장치로부터 상기 외부 장치에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 통신 모듈을 포함할 수 있다. 여기서 상기 관리 모듈은 상기 확인된 패키지와 상기 정보의 비교 결과에 기반하여 상기 패키지 또는 상기 어플리케이션의 동기화 여부를 결정할 수 있다.
다양한 실시 예에서, 상기 관리 모듈은, 상기 어플리케이션보다 상기 어플리케이션에 대응하는 패키지의 버전이 높은 경우, 상기 외부 장치의 어플리케이션을 상기 대응하는 패키지를 기준으로 업데이트 할 수 있다.
다양한 실시 예에서, 상기 관리 모듈은, 상기 어플리케이션보다 상기 어플리케이션에 대응하는 패키지의 버전이 낮은 경우, 서버로부터 상기 어플리케이션을 기준으로 상기 패키지를 업데이트 할 수 있다.
다양한 실시 예에서, 상기 관리 모듈은, 상기 어플리케이션보다 상기 어플리케이션에 대응하는 패키지의 버전이 낮은 경우, 상기 어플리케이션을 상기 패키지에 포함된 어플리케이션으로 대체할 수 있다.
본 발명의 다양한 실시 예에 사용된 용어 "모듈"은, 예를 들어, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은 예를 들어, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component) 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, 본 발명의 다양한 실시 예에 따른 "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따르면, 본 발명의 다양한 실시 예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그래밍 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어는, 하나 이상의 프로세서 (예: 상기 프로세서 720)에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 메모리 730가 될 수 있다. 상기 프로그래밍 모듈의 적어도 일부는, 예를 들면, 상기 프로세서 810에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그래밍 모듈 의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트 (sets of instructions) 또는 프로세스 등을 포함할 수 있다.
상기 컴퓨터로 판독 가능한 기록 매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 마그네틱 매체(Magnetic Media)와, CD-ROM(Compact Disc Read Only Memory), DVD(Digital Versatile Disc)와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 그리고 ROM(Read Only Memory), RAM(Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령(예: 프로그래밍 모듈)을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 다양한 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
본 발명의 다양한 실시 예에 따른 모듈 또는 프로그래밍 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 본 발명의 다양한 실시 예에 따른 모듈, 프로그래밍 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
다양한 실시 예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은 제1 장치에 설치된 어플리케이션을 확인하는 동작, 상기 어플리케이션이 요구하는 조건이 제2 장치에서 충족되는지 여부를 확인하는 동작, 및 상기 확인 결과에 기초하여 상기 어플리케이션의 일부를 상기 제1 장치 또는 상기 제2 장치에서 출력할지 여부를 결정하는 동작을 포함할 수 있다.
그리고 본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 실시 예에 따른 의 기술 내용을 쉽게 설명하고 본 발명의 실시 예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시 예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시 예의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 다양한 실시 예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시 예의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 구비된 패키지를 확인하는 관리 모듈;
    외부 장치로부터 상기 외부 장치에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 통신 모듈;
    상기 외부 장치에 설치된 어플리케이션에 대한 항목을 출력하는 디스플레이를 포함하고,
    상기 관리 모듈은 상기 확인된 패키지와 상기 정보의 비교 결과에 기반하여 각각의 상기 어플리케이션에 대한 항목의 출력 여부를 결정하도록 설정되는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 전자 장치는 호스트 장치고, 상기 외부 장치는 상기 전자 장치와 페어링 된 웨어러블 장치인, 전자 장치.
  3. 청구항 1에 있어서,
    상기 통신 모듈은 상기 확인된 패키지에 대한 정보를 상기 외부 장치로 전송하고,
    상기 비교 결과는 상기 외부 장치로부터 상기 전송된 패키지에 대한 정보를 기반으로 생성된 것인, 전자 장치.
  4. 청구항 1에 있어서,
    상기 설치된 어플리케이션에 대한 정보는, 상기 어플리케이션이 요구하는 패키지에 대한 정보 및 상기 패키지의 최소 버전 정보를 포함하는, 전자 장치.
  5. 청구항 1에 있어서,
    상기 관리 모듈은 상기 전자 장치가 상기 외부 장치와 연결될 때 상기 항목의 출력 여부를 결정하도록 설정되는, 전자 장치.
  6. 청구항 1에 있어서,
    상기 관리 모듈은, 상기 외부 장치에서 동기화가 이루어질 수 있도록, 상기 통신 모듈로 하여금 상기 구비된 패키지에 대한 정보를 외부 장치로 전송하도록 설정되는, 전자 장치.
  7. 전자 장치에 설치된 어플리케이션의 요구 사항을 확인하는 관리 모듈;
    호스트 장치로부터 상기 호스트 장치에서 지원하는 기능에 대한 정보를 수신하는 통신 모듈; 및
    상기 설치된 어플리케이션에 대한 항목을 출력하는 디스플레이를 포함하고,
    상기 관리 모듈은 상기 호스트 장치에서 지원하는 기능에 대한 정보와 상기 어플리케이션의 요구 사항을 비교하여 각각의 상기 어플리케이션에 대한 항목의 출력 여부를 결정하도록 설정되는, 전자 장치.
  8. 청구항 7에서,
    상기 전자 장치는 상기 호스트 장치와 커플링 되어 동작하는 웨어러블 장치인, 전자 장치.
  9. 청구항 7에 있어서,
    상기 어플리케이션의 요구 사항은 상기 어플리케이션이 구동되는데 필요한 패키지 또는 기능 중 적어도 하나를 포함하는, 전자 장치.
  10. 청구항 7에 있어서,
    상기 관리 모듈은 상기 어플리케이션이 상기 호스트 장치에 의해 지원되지 않는 것으로 판단되면, 상기 디스플레이의 UI에 출력되지 않도록 결정하는, 전자 장치.
  11. 청구항 7에 있어서,
    상기 관리 모듈은 상기 전자 장치의 데이터 구조로부터 상기 요구 사항을 확인하고,
    상기 데이터 구조는 각 어플리케이션이 요구하는 패키지 정보 및 각 패키지의 최소 버전 정보를 포함하도록 설정되는, 전자 장치.
  12. 청구항 11에 있어서,
    상기 통신 모듈은 상기 비교 결과에 대한 정보 데이터 구조 문서 포맷으로 상기 호스트 장치로 전송하도록 설정되는, 전자 장치.
  13. 전자 장치의 동기화 방법에 있어서,
    제1 장치에 설치된 어플리케이션을 확인하는 동작;
    상기 어플리케이션이 요구하는 조건이 제2 장치에서 충족되는지 여부를 확인하는 동작; 및
    상기 확인 결과에 기초하여 상기 어플리케이션의 일부를 상기 제1 장치 또는 상기 제2 장치에서 출력할지 여부를 결정하는 동작을 포함하는 방법.
  14. 청구항 13에 있어서,
    상기 충족 여부를 확인하는 동작은, 상기 어플리케이션이 요구하는 패키지가 상기 제2 장치에 설치되어 있는지 여부를 판단하는 동작을 포함하는, 방법.
  15. 청구항 13에 있어서,
    상기 제2 장치에 설치된 패키지에 대한 정보를 상기 제1 장치로 전송하는 동작; 및
    상기 설치된 패키지에 대한 정보를 기반하여 생성된 제1 어플리케이션에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 동작을 더 포함하고,
    상기 충족 여부를 확인하는 동작은, 상기 작동 가능한 어플리케이션에 대한 정보에 기반하여 판단하는 동작을 더 포함하는 방법.
  16. 청구항 13에 있어서,
    상기 출력 여부를 결정하는 동작은, 상기 충족 여부의 확인 결과, 충족되지 않는다고 판단되면 상기 제1 장치 또는 상기 제2 장치의 디스플레이에서 충족되지 않는 어플리케이션 항목의 출력을 제한하는 동작을 더 포함하는 방법.
  17. 전자 장치에 구비된 패키지를 확인하는 관리 모듈; 및
    외부 장치로부터 상기 외부 장치에서 작동 가능한 어플리케이션에 대한 정보를 수신하는 통신 모듈을 포함하고,
    상기 관리 모듈은 상기 확인된 패키지와 상기 정보의 비교 결과에 기반하여 상기 패키지 또는 상기 어플리케이션의 동기화 여부를 결정하는, 전자 장치.
  18. 청구항 17에 있어서,
    상기 관리 모듈은, 상기 어플리케이션 보다 상기 어플리케이션에 대응하는 패키지의 버전이 높은 경우, 상기 외부 장치의 어플리케이션을 상기 대응하는 패키지를 기준으로 업데이트 하는, 전자 장치.
  19. 청구항 17에 있어서,
    상기 관리 모듈은, 상기 어플리케이션 보다 상기 어플리케이션에 대응하는 패키지의 버전이 낮은 경우, 서버로부터 상기 어플리케이션을 기준으로 상기 패키지를 업데이트 하는, 전자 장치.
  20. 청구항 17에 있어서,
    상기 관리 모듈은, 상기 어플리케이션 보다 상기 어플리케이션에 대응하는 패키지의 버전이 낮은 경우, 상기 어플리케이션을 상기 패키지에 포함된 어플리케이션으로 대체하는, 전자 장치.
KR1020140083137A 2014-02-24 2014-07-03 전자 장치 사이의 동기화 KR102265737B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/628,879 US9830170B2 (en) 2014-02-24 2015-02-23 Synchronization between electronic devices
US15/794,243 US10223132B2 (en) 2014-02-24 2017-10-26 Synchronization between electronic devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201461943781P 2014-02-24 2014-02-24
US61/943,781 2014-02-24

Publications (2)

Publication Number Publication Date
KR20150100458A true KR20150100458A (ko) 2015-09-02
KR102265737B1 KR102265737B1 (ko) 2021-06-16

Family

ID=54242175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140083137A KR102265737B1 (ko) 2014-02-24 2014-07-03 전자 장치 사이의 동기화

Country Status (1)

Country Link
KR (1) KR102265737B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020138730A1 (ko) * 2018-12-24 2020-07-02 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467379B2 (en) * 2001-01-16 2008-12-16 International Business Machines Corporation System and method for incrementally executing a client/server application
KR20120050077A (ko) * 2010-11-10 2012-05-18 에스케이 텔레콤주식회사 동기화 프로토콜 자동 설정 시스템 및 방법
US20120254290A1 (en) * 2011-03-30 2012-10-04 Ebay, Inc. Device specific remote disabling of applications
US8650543B1 (en) * 2011-03-23 2014-02-11 Intuit Inc. Software compatibility checking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467379B2 (en) * 2001-01-16 2008-12-16 International Business Machines Corporation System and method for incrementally executing a client/server application
KR20120050077A (ko) * 2010-11-10 2012-05-18 에스케이 텔레콤주식회사 동기화 프로토콜 자동 설정 시스템 및 방법
US8650543B1 (en) * 2011-03-23 2014-02-11 Intuit Inc. Software compatibility checking
US20120254290A1 (en) * 2011-03-30 2012-10-04 Ebay, Inc. Device specific remote disabling of applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020138730A1 (ko) * 2018-12-24 2020-07-02 엘지전자 주식회사 디스플레이 디바이스 및 그 제어 방법

Also Published As

Publication number Publication date
KR102265737B1 (ko) 2021-06-16

Similar Documents

Publication Publication Date Title
US10223132B2 (en) Synchronization between electronic devices
US10038290B2 (en) Electrical device
US10963211B2 (en) Electronic device and method for controlling audio path thereof
CN108513165B (zh) 共享内容的方法和支持该方法的电子设备
US10354077B2 (en) Permission control method and electronic device operating the same
EP3021562A1 (en) Method for sharing screen and electronic device thereof
KR20150141313A (ko) 전자 장치의 정보 처리 방법 및 장치
KR102206351B1 (ko) 전자 장치 및 이의 작업 연계 방법
KR102277460B1 (ko) 화면을 공유하기 위한 방법 및 그 전자 장치
US20150220247A1 (en) Electronic device and method for providing information thereof
KR20150135837A (ko) 디스플레이 운용 전자장치 및 방법
KR20150133989A (ko) 홈 스크린 페이지를 추가하는 전자 장치 및 방법
KR20150125464A (ko) 메시지 표시 방법 및 전자 장치
KR20150086150A (ko) 사용자 인터페이스 제어 방법 및 장치
KR20170033335A (ko) 응용프로그램을 공유하기 위한 방법 및 그 전자 장치
KR102241831B1 (ko) 전자 장치 및 이의 운영 방법
US10887383B2 (en) Electronic device and application sharing method thereof
KR20160037019A (ko) 전자 장치, 그 제어 방법 및 기록 매체
KR102220766B1 (ko) 메시지를 구성하는 전자 장치와 방법 및 메시지를 수신하여 실행하는 웨어러블 전자 장치와 방법
AU2015219606B2 (en) Method of providing preview image regarding display setting for device
KR102285072B1 (ko) 전자 기기간 연동 방법 및 장치
KR20160063018A (ko) 다른 전자 장치로부터의 데이터 이용을 관리하는 전자 장치 및 그 제어 방법
KR20150086808A (ko) 폴더 관리 방법 및 장치
KR20150128302A (ko) 전자 장치 및 그 연동 방법
KR102250777B1 (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