KR101393153B1 - 외부 하드웨어를 사용하기 위한 모바일 플랫폼 및 이를 이용한 방법 - Google Patents

외부 하드웨어를 사용하기 위한 모바일 플랫폼 및 이를 이용한 방법 Download PDF

Info

Publication number
KR101393153B1
KR101393153B1 KR1020130007083A KR20130007083A KR101393153B1 KR 101393153 B1 KR101393153 B1 KR 101393153B1 KR 1020130007083 A KR1020130007083 A KR 1020130007083A KR 20130007083 A KR20130007083 A KR 20130007083A KR 101393153 B1 KR101393153 B1 KR 101393153B1
Authority
KR
South Korea
Prior art keywords
hardware
mobile terminal
external device
application
driving
Prior art date
Application number
KR1020130007083A
Other languages
English (en)
Inventor
김주성
권오철
이창건
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Application granted granted Critical
Publication of KR101393153B1 publication Critical patent/KR101393153B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)

Abstract

본 발명의 일 실시예에 따르면, 모바일 단말기에서 외부 하드웨어를 사용하기 위한 방법에 있어서, 상기 모바일 단말기 내의 하드웨어 통합화 계층이 어플리케이션으로부터 하드웨어의 구동 명령을 수신하는 단계; 하드웨어 통합화 계층이, 상기 하드웨어가 상기 모바일 단말기 외부의 장치에 속하는지를 판단하는 단계; 및 상기 하드웨어가 외부의 장치에 속한다고 판단한 경우, 상기 하드웨어의 구동을 위한 데이터를 상기 외부의 장치로 전송하는 단계;를 포함하고, 상기 하드웨어 통합화 계층은 어플리케이션 프레임워크 계층과 커널 계층 사이에 위치하는 계층인 것을 특징으로 하는 방법이 제공될 수 있다.

Description

외부 하드웨어를 사용하기 위한 모바일 플랫폼 및 이를 이용한 방법 {Mobile platform for using external hardware and method for using the same}
본 발명은 외부 하드웨어를 사용하기 위한 모바일 플랫폼 및 이를 이용한 방법에 관한 것으로, 보다 상세하게는, 모바일 단말기의 어플리케이션이 외부 장치의 하드웨어를 사용할 수 있도록 하는 모바일 플랫폼 및 이를 이용한 방법에 관한 것이다.
최근 스마트폰이나 태블릿 PC와 같은 모바일 단말기가 일반 사용자에게 급속도로 확산되고 있다. 이처럼 스마트폰과 태블릿 PC 시장이 성장하면서 개인이 소지하고 있는 모바일 디바이스의 수가 늘어나고 있고 사용자들은 다양한 사용자 인터페이스(UI)를 가지고 다양한 사용자 경험(UX)를 체험할 수 있게 되었다.
하지만 사용자는 모바일 디바이스의 각 기기를 따로 관리해야 하는 문제가 발생하였다. 예컨대 하나의 모바일 장치에서 다운로드 받은 어플리케이션을 다른 모바일 장치에서 실행하려면 그 모바일 장치에서 다시 다운로드 받아야 하는 번거로움이 있다.
그러므로 여러 대의 모바일 장치를 마치 하나의 디바이스처럼 관리할 수 있는 방법이 필요하고, 더 나아가 하나의 어플리케이션을 하나의 모바일 장치에 설치하더라도 다른 모바일 장치의 하드웨어를 통해 이를 실행할 수 있도록 하는 기술에 대한 필요성이 제기되고 있다.
본 발명의 일 실시예에 따르면, 복수개의 모바일 장치를 마치 하나의 디바이스처럼 관리할 수 있도록 하는 모바일 플랫품을 갖는 모바일 디바이스 및 이를 이용한 방법이 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 어플리케이션을 하나의 모바일 장치에 설치하더라도 다른 모바일 장치의 하드웨어를 사용하여 이 어플리케이션을 실행할 수 있는 모바일 플랫폼을 갖는 모바일 디바이스 및 이를 이용한 방법이 제공될 수 있다.
본 발명의 일 실시예에 따르면, 모바일 단말기에서 외부 하드웨어를 사용하기 위한 방법에 있어서, 상기 모바일 단말기 내의 하드웨어 통합화 계층이 어플리케이션으로부터 하드웨어의 구동 명령을 수신하는 단계; 하드웨어 통합화 계층이, 상기 하드웨어가 상기 모바일 단말기 외부의 장치에 속하는지를 판단하는 단계; 및 상기 하드웨어가 외부의 장치에 속한다고 판단한 경우, 상기 하드웨어의 구동을 위한 데이터를 상기 외부의 장치로 전송하는 단계;를 포함하고, 상기 하드웨어 통합화 계층은 어플리케이션 프레임워크 계층과 커널 계층 사이에 위치하는 계층인 것을 특징으로 하는 방법이 제공될 수 있다.
본 발명의 일 실시예에 따르면, 모바일 단말기에 있어서, 상기 모바일 단말기 내에서 어플리케이션 프레임워크 계층과 커널 계층 사이에 위치하며, 어플리케이션이 하드웨어에 접근할 수 있는 인터페이스를 제공하는 하드웨어 통합화 계층을 포함하고, 상기 하드웨어 통합화 계층은, 상기 어플리케이션으로부터 하드웨어의 구동 명령을 수신하고, 상기 하드웨어가 상기 모바일 단말기 외부의 장치에 속하는지를 판단하고, 상기 하드웨어가 외부의 장치에 속할 경우 상기 하드웨어의 구동을 위한 데이터를 상기 외부의 장치로 전송하는 시스템 호출 처리부를 포함하는 것을 특징으로 하는 모바일 단말기가 제공될 수 있다.
본 발명의 일 실시예에 따르면, 복수개의 모바일 장치를 마치 하나의 디바이스처럼 관리할 수 있도록 하는 장점이 있다.
본 발명의 다른 실시예에 따르면, 어플리케이션을 하나의 모바일 장치에 설치하더라도 다른 모바일 장치의 하드웨어를 사용하여 이 어플리케이션을 실행할 수 있는 장점이 있다.
도1은 본 발명의 일 실시예에 따라 외부 하드웨어를 사용하기 위한 모바일 플랫폼을 설명하기 위한 네트워크 구성을 나타내는 도면,
도2는 일 실시예에 따라 외부 하드웨어를 사용하기 위한 모바일 플랫폼을 구비한 모바일 단말기의 예시적인 기능 블록도,
도3은 일 실시예에 따른 하드웨어 통합화 계층의 블록도,
도4는 일 실시예에 따라 모바일 단말기가 외부 하드웨어를 사용하는 예시적 방법을 나타내는 흐름도,
도5는 일 실시예에 따라 모바일 단말기가 외부 하드웨어를 사용하기 위한 각 기능 블록의 동작을 설명하기 위한 도면,
도6은 일 실시예에 따라 모바일 단말기의 관점에서 바라본 기능블록을 개념적으로 도시한 도면, 그리고,
도7 및 도8은 모바일 단말기가 외부 하드웨어를 사용하는 구체적 실시예를 각각 설명하기 위한 도면이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.
본 명세서에서 제1, 제2 등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시예들은 그것의 상보적인 실시예들도 포함한다.
위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
도1은 본 발명의 일 실시예에 따라 외부 하드웨어를 사용하기 위한 모바일 플랫폼을 설명하기 위한 네트워크 구성을 나타내는 도면이다.
도1을 참조하면, 일 실시예에 따른 모바일 플랫폼을 구비한 모바일 단말기(100)는 네트워크(300)를 통해 외부 장치(200)와 통신할 수 있다.
모바일 단말기(100)는 예를 들어 스마트폰, 태블릿 PC 등의 모바일 컴퓨터 장치 중 하나가 될 수 있다. 모바일 단말기(100)는 구글의 안드로이드, 애플의 iOS, RIM사의 블랙베리 OS, 또는 마이크로소프트의 윈도폰 등 임의의 운영체제로 구동될 수 있으며, 이하의 실시예에서는 설명의 편의를 위해 모바일 단말기(100)가 구글의 안드로이드 운영체제를 채택하고 있는 스마트폰이라고 가정한다.
외부 장치(200)는 모바일 단말기(100)의 관점에서 볼 때 모바일 단말기(100)의 외부에 존재한다는 의미에서 "외부 장치"라고 명명한 것으로, 네트워크(300)를 통해 모바일 단말기(100)와 통신할 수 있는 컴퓨터 장치이면 어느 것이나 무방하고, 바람직하게는 모바일 단말기(100)의 프로그램 실행 속도보다 빠른 실행 속도를 갖는 장치이다. 예를 들어 외부 장치(200)는 스마트폰, 태블릿 PC, 노트북 컴퓨터, 데스크탑 컴퓨터 등의 장치 중 하나가 될 수 있고, 바람직하게는 스트폰이나 태블릿 PC와 같은 모바일 컴퓨터 장치이다. 설명의 편의를 위해 이하의 실시예에서는 외부 장치(200)가 태블릿 PC이고 모바일 단말기(100)와 마찬가지로 안드로이드 운영체제로 구동된다고 전제한다.
네트워크(300)는 모바일 단말기(100)와 외부 장치(200) 사이에 데이터 송수신을 위한 전송경로를 제공하는 임의의 종류나 형태의 네트워크가 될 수 있다. 예를 들어 WAN, LAN, 사설 네트워크 등도 포함될 수 있고, 유선망 또는 무선망 중 어느 하나에 제한되지 않는다. 그러나 본 발명의 바람직한 실시예에 따르면 네트워크(300)는 무선 공유기를 사용하는 무선 LAN이다. 이와 같은 환경의 예로서, 사용자가 스마트폰(모바일 단말기(100))과 태블릿 PC(외부 장치(200))를 모두 갖고 있고 이 두 장치(100,200)가 무선 공유기를 통해 서로 통신가능한 환경을 가정할 수 있다.
이러한 구성에서, 일 실시예에 따르면 모바일 단말기(100) 및 외부 장치(200)에는 외부의 하드웨어를 사용할 수 있도록 하는 모바일 플랫폼이 구현되어 있다. 구체적인 실시예로서, 이 모바일 플랫폼은 예컨대 하드웨어 추상화 계층(HAL: Hardware Abstraction Layer)에 추가되는 기능부로 설치될 수 있다 이하 본 명세서에서, 외부 장치의 하드웨어를 사용할 수 있도록 하는 기능부가 추가로 포함된 하드웨어 추상화 계층을 하드웨어 통합화 계층(HUL: Hardware Unification Layer)이라 칭하기로 한다.
모바일 단말기(100)에서 실행중인 임의의 어플리케이션에서 예컨대 외부의 하드웨어를 사용하고자 하면, 이 어플리케이션으로부터의 요청이 모바일 단말기(100)의 하드웨어 통합화 계층(HUL)에 오면 HUL은 적절한 외부 장치를 선택하여 이 외부 장치에 시스템 호출을 요청한다. 이 때, 시스템 호출은 받은 외부 장치도 HUL이 동일하게 설치되어 있다고 가정한다. 이 외부 장치의 HUL은 모바일 단말기(100)로부터 받은 시스템 호출에 따라 자신의 하드웨어를 작동한다. 결과적으로, 모바일 단말기(100)의 사용자나 어플리케이션 관점에서는 모바일 단말기(100)의 하드웨어 장치에 제한이 있더라도 이러한 제한없이 다양한 하드웨어 장치를 사용할 수 있는 장점이 있다.
도2는 일 실시예에 따라 외부 하드웨어를 사용하기 위한 모바일 플랫폼을 구비한 모바일 단말기의 예시적인 기능 블록도이다.
도2에 도시한 바와 같이 모바일 단말기(100)가 안드로이드 운영체제의 스마트폰인 경우 모바일 단말기(100)는 사용자측에 가까운 쪽에서부터 차례로 어플리케이션(110) 및 사용자 인터페이스(U/I)(115), 어플리케이션 프레임워크(120)(이하 간단히 "프레임워크"(F/W)라고도 함), 하드웨어 통합화 계층(HUL)(130), 및 하드웨어부(140)로 이루어지는 안드로이드 계층구조를 가진다.
어플리케이션(110)은 모바일 단말기(100)에서 실행되는 통상의 응용 프로그램이 될 수 있다. 사용자 인터페이스(115)는 각각의 어플리케이션(110)이 실행될 때 각 어플리케이션(110)이 제공하는 사용자 인터페이스를 의미할 수도 있지만 이에 한정되지 않고, 그 아래 계층의 기능부를 위한 사용자 인터페이스를 포함할 수 있다. 예를 들어 프레임워크(120)나 하드웨어 통합화 계층(130)에 속하는 임의의 기능부에 대한 사용자 인터페이스를 의미할 수도 있고, 이 사용자 인터페이스를 통해 사용자는 해당 기능부에 대한 사용자 설정을 확인하거나 변경할 수 있다.
어플리케이션 프레임워크(120)는 안드로이드의 API(Application Programming Interface)가 모여있는 계층으로, API를 이용하여 그 아래 계층들과 통신할 수 있게 해주는 역할을 한다. 어플리케이션 프레임워크(120)는 예를 들어 액티비티 매니저(Activity manager), 윈도우 매니저(Window manager), 뷰 시스템(View system), 패키지 매니저(Package manager) 등의 기능모듈을 포함한다. 액티비티 매니저는 응용프로그램의 생명주기를 담당하고, 윈도우 매니저는 모든 응용프로그램과 관련된 화면을 담당하고, 뷰 시스템은 표준 위젯을 담당하고, 패키지 매니저는 시스템에서 동작중인 응용프로그램들의 정보를 담당한다.
하드웨어 통합화 계층(HUL)(130)은 어플리케이션(110) 또는 어플리케이션 프레임워크(120)가 하드웨어부(140)에 접근하기 위한 인터페이스 제공하는 영역으로, 기존의 안드로이드 계층에서의 하드웨어 추상화 계층(HAL)에 대응한다. 하드웨어 통합화 계층(130)을 두면 상위의 어플리케이션(110) 또는 어플리케이션 프레임워크(120) 계층이나 하위의 하드웨어부(140)를 서로 독립적으로 개발할 수 있고 어플리케이션도 독립적으로 동작할 수 있으며 이는 하드웨어 통합화 계층(130)의 표준화된 API 함수들이 있기 때문에 가능한 것이다.
도시된 실시예에서 하드웨어 통합화 계층(HUL)(130)은 기존의 안드로이드 계층구조에서 라이브러리 계층 및 안드로이드 런타임 계층을 포함하는 의미로 사용된다. 라이브러리 계층은 안드로이드 시스템에서 제공하는 기본적인 화면, 사운드, 멀티미디어 기능들을 위한 함수들의 라이브러리를 제공하는 계층이고, 예컨대 데이터베이스를 위한 SQLite, 웹브라우징을 위한 Webkit, 3차원 그래픽을 위한 Open GL 등의 라이브러리 모듈을 포함한다. 또한 안드로이드 런타임 계층은 자바(JAVA)로 구현된 안드로이드 어플리케이션(110)을 실행하기 위한 달빅(Dalvik) 가상머신과 자바의 코어 라이브러리로 이루어진다.
한편 본 발명의 바람직한 일 실시예에서 하드웨어 통합화 계층(HUL)(130)은 외부 장치의 하드웨어를 사용하기 위한 기능부도 포함하며 이에 대해서는 도3을 참조하여 후술하기로 한다.
하드웨어부(140)는 리눅스 커널(141) 계층 및 하드웨어 계층(143)을 포함한다. 리눅스 커널(141)(이하에서는 간단히 "커널"이라고도 함)은 특정 하드웨어에 필요한 드라이버들을 포함하고, 하드웨어(143)는 모바일 단말기(100)에 장착된 각종 하드웨어를 포함한다.
한편 도시된 실시예에서는 설명의 편의를 위해 무선공유기를 통한 통신용 하드웨어부(150)를 별도로 도시하였다. 즉 커널(141) 계층에 속하는 드라이버로서 예를 들어 WiFi 드라이버(151)를 예시하였고 하드웨어(143) 계층에 속하는 하드웨어로서 통신부(153)를 예시하였다. 이는 이하의 실시예의 설명을 위해 통신용 하드웨어부(150)를 별도로 명시한 것으로, 다른 통신방식을 사용하는 실시예에서는 다른 통신용 커널과 하드웨어 장치가 예시될 수 있음을 이해할 것이다.
도3은 일 실시예에 따른 하드웨어 통합화 계층의 블록도이다.
도3을 참조하면, 하드웨어 통합화 계층(HUL)(130)은 하드웨어 추상화 계층(HAL)(131), 하드웨어 관리부(133) 및 시스템 호출 처리부(135)를 포함할 수 있다. 하드웨어 통합화 계층(HUL)(130)은 어플리케이션(110) 또는 어플리케이션 프레임워크(120)가 하드웨어부(140)에 접근하기 위한 인터페이스 제공하는 계층이고, 이 중에서도 특히 하드웨어 관리부(131) 및 시스템 호출 처리부(135)는 외부의 장치의 하드웨어를 사용할 수 있도록 하는 기능부이다.
하드웨어 관리부(133)는 모바일 단말기(100) 및 이 모바일 단말기와 통신가능한 적어도 하나의 외부 장치(200)의 사용가능한 하드웨어의 리스트를 생성하고 관리할 수 있다. 즉 하드웨어 관리부(133)는 자신이 속한 모바일 단말기(100)에 설치된 하드웨어의 리스트 및 이 모바일 단말기(100)와 통신가능한 하나 이상의 외부 장치(200)들에 설치된 하드웨어의 리스트를 생성, 유지, 변경, 및/또는 삭제하는 기능을 포함한다.
여기서 통신가능한 외부 장치(200)들에 설치된 하드웨어의 리스트는 실시 형태에 따라 다양한 방식 중 하나에 의해 관리될 수 있다. 외부 장치(200)가 무선공유기로 연결된 예시적인 일 실시예에서, 모바일 단말기(100)는 이 무선공유기로부터 이 리스트를 획득하거나 이 리스트의 생성에 필요한 정보를 획득할 수 있다.
예를 들어 모바일 단말기(100)는 무선공유기에 연결된 외부 장치(200)들의 리스트를 UPnP(Universal Plug and Play) 방식에 의해 알아낸다. 이 때 각각의 외부 장치(200)는 모바일 단말기(100)에서와 마찬가지로 하드웨어 통합화 계층(HUL)(130)이 모두 설치되어 있다고 가정한다. 무선공유기를 통해 통신가능한 외부 장치(200)의 리스트를 확보한 모바일 단말기(100)는, 하드웨어 통합화 계층(HUL)(130) 레벨에서 각 외부 장치(200)에 설치된 하드웨어에 대한 정보를 각 외부장치(200)에 요청하고, 각 외부장치(200)의 하드웨어 통합화 계층(HUL)은 이 요청에 대한 응답을 모바일 단말기(100)로 전달할 수 있다. 즉 일 실시예에서, 모바일 단말기(100)와 외부 장치(200)들간의 하드웨어 정보에 대한 통신을 하드웨어 통합화 계층(HUL)에서 담당할 수 있고, 이와 같은 통신에 의해 모바일 단말기(100)는 어플리케이션(110)이 사용가능한 모든 하드웨어에 대한 리스트를 획득하고 관리할 수 있다.
또는 대안적인 실시예에서 하드웨어 관리부(133)는 모바일 단말기(100) 및/또는 외부 장치(200)의 사용가능한 하드웨어의 리스트를 사용자 인터페이스(115)를 통해 사용자로부터 입력받을 수도 있다.
시스템 호출 처리부(135)는 어플리케이션(110) 또는 어플리케이션 프레임워크(120) 계층으로부터 하드웨어의 구동 명령(예컨대, 하드웨어의 구동을 위한 API 호출)을 수신하고, 이 호출된 하드웨어가 모바일 단말기(100)에 속하는지 외부 장치(200)에 속하는지를 판단할 수 있다. 이 때 시스템 호출 처리부(135)는 하드웨어 관리부(133)에서 관리하는 상술한 사용가능한 하드웨어의 리스트를 참조하여 하드웨어가 모바일 단말기(100)에 속하는지 외부 장치(200)에 속하는지 여부를 판단할 수 있다.
만일 호출된 하드웨어가 외부 장치(200)에 속할 경우, 시스템 호출 처리부(135)는 하드웨어의 구동을 위한 데이터를 상기 외부 장치(200)로 전송하는 기능을 포함할 수 있다. 이 때 하드웨어의 구동을 위한 데이터는 예를 들어 하드웨어의 구동을 위한 시스템 호출 및 이 시스템 호출의 실행에 필요한 파라미터를 포함할 수 있다.
하드웨어의 구동을 위한 데이터를 수신한 외부 장치(200)는 이 외부 장치(200)내의 하드웨어 통합화 계층(HUL)에서 이 데이터를 처리할 수 있다. 즉 외부 장치(200)의 HUL 계층에서 그 아래의 하드웨어부를 호출하여 하드웨어를 구동하고, 구동의 결과값인 결과 파라미터를 모바일 단말기(100)로 전송해야 할 필요가 있을 경우 이 결과 파라미터를 모바일 단말기(100)로 반환할 수도 있다. 이 경우 모바일 단말기(100)의 시스템 호출 처리부(135)는 외부 장치(200)의 하드웨어 구동의 결과인 시스템 호출의 반환값을 수신하고 이를 어플리케이션(110) 또는 어플리케이션 프레임워크(120)로 전달할 수 있다.
한편, 상세히 설명하지는 않았지만, 당업자는 하드웨어 관리부(133) 및 시스템 호출 처리부(135)를 비롯한 하드웨어 통합화 계층(130)의 기능부들이 실제로는 예컨대 프로그램 코드로 작성되고 모바일 단말기(100)의 메모리(도시 생략)에 로딩되어 실행됨으로써 구현되는 것임을 이해할 것이다. 즉, 이러한 프로그램 코드들이 모바일 단말기(100) 내의 임의의 저장장치에 저장되어 있다가 모바일 단말기(100)의 프로세서(예컨대 AP(Application Processor))의 제어하에 메모리에 로딩되어 실행됨으로써 하드웨어 관리부(133) 및/또는 시스템 호출 처리부(135)가 상술한 기능을 수행할 수 있다.
도4는 일 실시예에 따라 모바일 단말기가 외부 하드웨어를 사용하는 예시적 방법을 나타내는 흐름도이고, 도5는 일 실시예에 따라 모바일 단말기가 외부 하드웨어를 사용하기 위한 각 기능 블록의 동작을 설명하기 위한 도면이다.
우선 도5를 참조하면, 모바일 단말기(100)는 도2에 도시한 바와 같이 어플리케이션1(110), U/I(115), 프레임워크(120), 하드웨어 통합화 계층(HUL)(130), 하드웨어부(140), 및 통신용 하드웨어부(150)를 포함한다.
마찬가지로 외부 장치(200)는 어플리케이션2(210), U/I(215), 프레임워크(220), 하드웨어 통합화 계층(HAL)(230), 하드웨어부(240), 및 통신용 하드웨어부(250)를 포함할 수 있다. 어플리케이션2(210)는 모바일 단말기(100)의 어플리케이션(110) 계층과 마찬가지로 응용 프로그램 계층이고, "어플리케이션2"로 구별하였듯이 모바일 단말기(100)의 어플리케이션1(110)과 상이한 응용 프로그램일 수 있다. 즉 외부 장치(200)는 모바일 단말기(100)에서 실행하는 어플리케이션(즉, "어플리케이션1")을 가질 필요가 없다.
외부 장치(200)의 U/I(215), 프레임워크(220), 하드웨어 통합화 계층(HAL)(230), 하드웨어부(240), 및 통신용 하드웨어부(250)는 도2를 참조하여 상술한 모바일 단말기(100)의 대응 계층과 모두 동일 또는 유사하므로 설명을 생략하기로 한다.
한편 모바일 단말기(100)의 하드웨어 통합화 계층(130)의 하드웨어 관리부(133)는 외부 장치(200)의 하드웨어부(240)에 대한 정보를 획득하여 사용가능한 하드웨어 리스트의 일부로서 관리하고, 마찬가지로 외부 장치(200)의 하드웨어 통합화 계층(230)의 하드웨어 관리부도 모바일 단말기(100)의 하드웨어부(140)에 대한 정보를 획득하여 사용가능한 하드웨어 리스트의 일부로서 관리한다고 전제한다.
이러한 구성에서 도4를 참조하면, 단계(S110)에서 제1 디바이스(예컨대 모바일 단말기(100))의 어플리케이션(110) 또는 어플리케이션 프레임워크(120)가 하드웨어 구동을 위해 하드웨어 통합화 계층(130)을 호출한다(도5의 ① 단계). 즉 하드웨어 통합화 계층(130)이 제1 디바이스의 어플리케이션(110) 또는 어플리케이션 프레임워크(120)로부터 하드웨어의 구동 명령을 수신한다. 이 때 하드웨어의 구동 명령은 예컨대 하드웨어의 구동을 위한 API 함수의 호출 또는 시스템 호출을 의미한다.
단계(S120)에서 하드웨어 통합화 계층(130)의 시스템 호출 관리부(135)는 이 구동 대상이 되는 하드웨어가 제1 디바이스 내의 장치인지 외부의 장치(제2 디바이스)에 속하는지 여부를 판단한다. 이 때 이 단계(S120)에서 시스템 호출 관리부(135)는 하드웨어 관리부(133)에 의해 관리되는 사용가능한 하드웨어의 리스트를 참조하여 이 리스트에 해당 하드웨어가 포함되었는지 여부를 판단함으로써 단계(S120)를 수행할 수 있다.
만일 이 하드웨어가 제1 디바이스의 하드웨어인 경우(S120-Y) 단계(S130)로 진행하여, 시스템 호출 처리부(135)는 제1 디바이스의 하드웨어부를 호출한다(도5의 ②'단계). 예를 들어 제1 디바이스의 커널(141)의 하드웨어의 드라이버를 호출하고 이 드라이버는 해당 하드웨어를 동작시킨다(S140).
단계(S120)에서 만일 이 하드웨어가 제2 디바이스의 하드웨어인 경우(S120-N) 단계(S150)로 진행하여, 하드웨어의 구동을 위한 데이터를 제2 디바이스로 전송한다. 이 때 상기 하드웨어의 구동을 위한 데이터는 예를 들어 하드웨어의 구동을 위한 시스템 호출 및 이 시스템 호출의 실행에 필요한 파라미터를 포함할 수 있다.
데이터를 제2 디바이스로 전송하는 단계(S150)는 예를 들어 도5에서 ②, ③, ④의 단계에 의해 수행될 수 있다. 즉 도5를 참조하면, 하드웨어 통합화 계층(130)의 시스템 호출 처리부(135)가 커널 중 통신용 하드웨어부(150)를 호출하고(② 단계), 통신용 하드웨어부(150)는 예컨대 WiFi 통신을 통해 제2 디바이스로 데이터를 전송하고(③ 단계), 이 데이터를 수신받은 제2 디바이스의 통신용 하드웨어부(250)는 데이터를 하드웨어 통합화 계층(230)으로 전달할 수 있다(④ 단계). 그러나 이러한 ② 내지 ④단계로 도시한 전송과정은 일 예시에 불과하고 실시 형태에 따라 다른 방식으로 제1 디바이스에서 제2 디바이스로 데이터를 전송할 수 있음은 물론이다.
다음으로, 단계(S160)에서 제2 디바이스는의 하드웨어 통합화 계층(230)은 하드웨어부(250)를 시스템 호출한다(⑤ 단계)하고, 단계(S170)에서 제2 디바이스의 하드웨어가 구동된다.
이 때 예를 들어 제2 디바이스의 하드웨어가 디스플레이 화면이라면 제2 디바이스는 제1 디바이스로부터 수신한 데이터 중 화면으로 출력할 데이터를 제2 디바이스의 화면에 디스플레이하면 제2 디바이스는 자신의 역할을 다한 것이 된다. 그런데 만일 제2 디바이스의 하드웨어 중 중앙처리장치(CPU)를 사용하는 경우라면, 제2 디바이스는 수신한 데이터를 자신의 CPU를 사용하여 처리한 후 그 결과값을 다시 제1 디바이스로 반환해야 할 필요성이 있을 수 있다.
이러한 경우 일 예로서 제2 디바이스는 도5에 도시한 ⑥ 내지 ⑩의 단계를 거쳐 결과값을 제1 디바이스로 반환할 수 있다. 즉, 하드웨어 통합화 계층(230)이 하드웨어부(240)로부터 결과값을 반환받아(⑥ 단계) 이를 통신용 하드웨어부(250)로 전달하고(⑦ 단계), 통신용 하드웨어부(250)는 이 결과값을 제1 디바이스로 전달한다(⑧ 단계). 결과값을 수신한 제1 디바이스의 통신용 하드웨어부(150)는 이를 하드웨어 통합화 계층(130)으로 전달하고(⑨ 단계), 하드웨어 통합화 계층(130)은 API 함수 호출의 반환값으로서 이 결과값을 어플리케이션(110) 또는 어플리케이션 프레임워크(120)로 전달할 수 있다(⑩ 단계). 그러나 이러한 전송과정 역시 일 예시에 불과하고 실시 형태에 따라 다른 방식으로 제2 디바이스에서 제1 디바이스로 결과값을 전송할 수 있음은 물론이다.
더욱이, 실시 형태에 따라 상술한 ① 내지 ⑤ 단계가 없이 ⑥ 내지 ⑩ 단계만 수행되는 경우도 존재할 수 있다. 예를 들어, 제2 디바이스의 화면이 터치스크린이거나 각종 센서인 경우, 사용자의 터치스크린 입력이나 각종 센서가 감지하는 신호들이 제2 디바이스의 하드웨어부(240)로 먼저 입력되고, 그 후 ⑥ 내지 ⑩ 단계를 거쳐 제1 디바이스의 어플리케이션(110)이 이러한 사용자 입력이나 센싱 신호를 분석하거나 처리하는 상황을 상정할 수 있을 것이다.
도6은 일 실시예에 따라 모바일 단말기의 관점에서 바라본 기능블록을 개념적으로 도시한 도면이다.
모바일 단말기(100) 내의 어플리케이션(110)이나 프레임워크(120)의 관점에서 볼 때 임의의 하드웨어를 구동하기 위한 어플리케이션(110)이나 프레임워크(120)의 API 호출은 하드웨어 통합화 계층(130)을 통해서 하드웨어에 접근한다. 하드웨어 통합화 계층(130)은 이들 상위 계층으로부터 요청이 올 때마다, 해당 하드웨어가 모바일 단말기(100) 내에 있는지 외부 장치에 있는지에 상관없이 이 요청을 받을 수 있다. 상위 계층의 요청이 모바일 단말기(100) 내의 하드웨어부(140)를 호출하는 것이면 해당 요청에 따라 하드웨어부(140)로 시스템 호출을 하면 되고, 외부 장치의 하드웨어부(240,340)를 호출하는 것이면 이 요청에 따라 해당 외부 장치로 데이터를 전송하고 그 결과값을 받아서 상위 계층으로 다시 반환하면 된다. 따라서, 상위 계층의 관점에서 상위 계층은 자신이 사용하고자 하는 하드웨어가 어느 장치에 설치된 것인지 모르더라도 이를 이용할 수 있다. 결과적으로, 모바일 단말기(100)에 물리적인 하드웨어 제한이 있더라도 상위 계층은 이러한 제한을 느끼지 않고 다양한 종류의 하드웨어를 사용할 수 있으며 하드웨어 통합화 계층(130)이 이와 같이 하나 이상의 외부 장치(200)의 하드웨어들이 하나의 장치 내에 있는 것처럼 관리할 수 있는 메타 모바일 플랫폼을 제공하는 것이다.
도7 및 도8은 모바일 단말기가 외부 하드웨어를 사용하는 구체적 실시예를 각각 설명하기 위한 도면이다.
도7을 참조하면, 아이들 상태인 스마트폰 및 현재 사용자에 의해 사용중인 태블릿 PC가 도시되어 있다. 아이들 상태인 스마트폰은 도5에서의 제1 디바이스, 태블릿 PC는 제2 디바이스에 각각 대응될 수 있다. 이 때 만일 SMS 메시지가 스마트폰으로 전송되더라도 스마트폰은 아이들 상태이므로 사용자에게 메시지 수신을 알리지 못한다.
그러나 예를 들어 두 디바이스에 모두 하드웨어 통합화 계층이 존재하고 사용자가 스마트폰이 아이들 상태인 경우 태블릿 PC의 화면으로 SMS 메시지를 표시하도록 스마트폰의 SMS 관련 어플리케이션의 환경설정을 미리 설정해 놓았다고 가정하면, 아이들 상태인 스마트폰이 SMS 메시지를 받으면 하드웨어 통합화 계층에서 SMS 메시지를 태블릿 PC로 전달하고 태블릿 PC는 이 전달받은 메시지를 자신의 화면에 디스플레이할 수 있다.
또 다른 예로서 도8을 참조하면, 스마트폰의 저장장치에 레이싱 게임이 저장되어 있고 사용자는 CPU 속도가 빠르고 화면이 큰 태블릿 PC로 이 레이싱 게임을 실행하고 싶어하는 경우이다. 이 경우 스마트폰은 도5에서의 제1 디바이스, 태블릿 PC는 제2 디바이스에 각각 대응될 수 있고, 사용자가 레이싱 게임의 실행을 위해 저장장치를 제외한 나머지 하드웨어를 모두 태블릿 PC의 하드웨어로 설정하도록 레이싱 게임의 환경설정을 미리 설정해 놓았다고 가정한다. 그러면 스마트폰에서 레이싱 게임을 실행하면 스마트폰의 저장장치에 저장되어 있던 레이싱 게임 프로그램의 프로그램 코드와 데이터들이 태블릿 PC로 전송되고, 태블릿 PC의 하드웨어는 이 데이터들을 처리하여 화면으로 디스플레이할 수 있다. 따라서 레이싱 게임이 스마트폰에만 저장되어 있더라도 사용자는 태블릿 PC에서 이 게임을 실행하는 것처럼 느낄 수 있다.
상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되지 않는다. 예를 들어 지금까지 안드로이드 운영체제를 가정하여 설명하였지만 대안적인 실시형태로서 제1 및 제2 디바이스가 아이폰과 아이패드인 경우에도 적용가능함은 물론이다. 아이폰이나 아이패드의 운영체제인 iOS는 아래쪽(하드웨어쪽)에서부터 코어 OS(Core OS), 코어 서비스(Core Services), 미디어 레이어(Media Layer), 및 코코아 터치(Cocoa Touch)의 4개 계층으로 이루어져 있는데, 코코아 터치가 사용자와 가장 가까운 부분이고, 코어 OS는 iOS의 제일 아래에서 하드웨어를 제어하는 부분이다. 그러므로 예컨대 아이폰의 경우 본 발명의 하드웨어 통합화 계층은 코어 서비스 계층에서 구현될 수 있을 것이다.
이와 같이 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 상술한 기재로부터 다양한 수정 및 변형이 가능함을 이해할 것이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 모바일 단말기
200: 외부 장치
110, 210: 어플리케이션
120, 220: 어플리케이션 프레임워크
130, 230: 하드웨어 통합화 계층(HUL)
133: 하드웨어 관리부
135: 시스템 호출 처리부
140, 240: 하드웨어부
150, 250: 통신용 하드웨어부
300: 네트워크

Claims (14)

  1. 모바일 단말기에서 외부 하드웨어를 사용하기 위한 방법에 있어서,
    상기 모바일 단말기 내의 하드웨어 통합화 계층이 어플리케이션으로부터 하드웨어의 구동 명령을 수신하는 단계;
    하드웨어 통합화 계층이, 상기 하드웨어가 상기 모바일 단말기 외부의 장치에 속하는지를 판단하는 단계; 및
    상기 하드웨어가 외부의 장치에 속한다고 판단한 경우, 상기 하드웨어의 구동을 위한 데이터를 상기 외부의 장치로 전송하는 단계;를 포함하고,
    상기 하드웨어 통합화 계층은 어플리케이션 프레임워크 계층과 커널 계층 사이에 위치하는 계층인 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 구동 명령을 수신하는 단계 이전에, 상기 하드웨어 통합화 계층이, 상기 모바일 단말기 및 이 모바일 단말기와 통신가능한 적어도 하나의 외부의 장치의 사용가능한 하드웨어의 리스트를 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 상기 리스트를 저장하는 단계는, 상기 사용가능한 하드웨어의 리스트를 사용자 인터페이스를 통해 사용자로부터 입력받아 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 2 항에 있어서, 상기 판단하는 단계는, 상기 구동 명령이 상기 하드웨어의 리스트에 포함된 하드웨어 중 어느 하드웨어에 대한 호출인지를 판단하는 단계;를 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 상기 하드웨어의 구동을 위한 데이터는 상기 하드웨어의 구동을 위한 시스템 호출 및 이 시스템 호출의 실행에 필요한 파라미터를 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서, 상기 외부의 장치로 전송하는 단계 이후에, 상기 외부의 장치의 하드웨어 구동의 결과인 시스템 호출의 반환값을 수신하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서, 상기 하드웨어의 구동 명령이 하드웨어의 구동을 위한 API 호출인 것을 특징으로 하는 방법.
  8. 모바일 단말기에 있어서,
    상기 모바일 단말기 내에서 어플리케이션 프레임워크 계층과 커널 계층 사이에 위치하며, 어플리케이션이 하드웨어에 접근할 수 있는 인터페이스를 제공하는 하드웨어 통합화 계층을 포함하고,
    상기 하드웨어 통합화 계층은,
    상기 어플리케이션으로부터 하드웨어의 구동 명령을 수신하고, 상기 하드웨어가 상기 모바일 단말기 외부의 장치에 속하는지를 판단하고, 상기 하드웨어가 외부의 장치에 속할 경우 상기 하드웨어의 구동을 위한 데이터를 상기 외부의 장치로 전송하는 시스템 호출 처리부를 포함하는 것을 특징으로 하는 모바일 단말기.
  9. 제 8 항에 있어서, 상기 하드웨어 통합화 계층은, 상기 모바일 단말기 및 이 모바일 단말기와 통신가능한 적어도 하나의 외부의 장치의 사용가능한 하드웨어의 리스트를 생성하고 관리하는 하드웨어 관리부를 더 포함하는 것을 특징으로 하는 모바일 단말기.
  10. 제 9 항에 있어서, 상기 시스템 호출 처리부가, 상기 하드웨어의 리스트를 참조하여 하드웨어가 상기 모바일 단말기 외부의 장치에 속하는지를 판단하는 것을 특징으로 하는 모바일 단말기.
  11. 제 9 항에 있어서, 상기 하드웨어 관리부가, 상기 사용가능한 하드웨어의 리스트를 사용자 인터페이스를 통해 사용자로부터 입력받는 것을 특징으로 하는 모바일 단말기.
  12. 제 8 항에 있어서, 상기 하드웨어의 구동을 위한 데이터가 상기 하드웨어의 구동을 위한 시스템 호출 및 이 시스템 호출의 실행에 필요한 파라미터를 포함하는 것을 특징으로 하는 모바일 단말기.
  13. 제 8 항에 있어서, 상기 시스템 호출 처리부가, 상기 외부의 장치의 하드웨어 구동의 결과인 시스템 호출의 반환값을 수신하고 이를 어플리케이션으로 전달할 수 있는 것을 특징으로 하는 모바일 단말기.
  14. 제 8 항에 있어서, 상기 하드웨어의 구동 명령이 하드웨어의 구동을 위한 API 호출인 것을 특징으로 하는 모바일 단말기.
KR1020130007083A 2012-12-13 2013-01-22 외부 하드웨어를 사용하기 위한 모바일 플랫폼 및 이를 이용한 방법 KR101393153B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120145495 2012-12-13
KR20120145495 2012-12-13

Publications (1)

Publication Number Publication Date
KR101393153B1 true KR101393153B1 (ko) 2014-05-09

Family

ID=50893578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130007083A KR101393153B1 (ko) 2012-12-13 2013-01-22 외부 하드웨어를 사용하기 위한 모바일 플랫폼 및 이를 이용한 방법

Country Status (1)

Country Link
KR (1) KR101393153B1 (ko)

Similar Documents

Publication Publication Date Title
US10437631B2 (en) Operating system hot-switching method and apparatus and mobile terminal
CN102662665B (zh) 在安卓系统上实现支持各种传感器的输入子系统
KR101702728B1 (ko) 멀티-환경 운영 체제
AU2022211850B2 (en) Application function implementation method and electronic device
CN107291456B (zh) 一种多屏显示的控制方法及系统
WO2018045948A1 (zh) 一种后台静默启动应用的方法、装置及终端设备
KR101516903B1 (ko) 운영 체제 환경 간의 웹 데이터 전달
US20220004316A1 (en) Touch control method and apparatus
KR20220158800A (ko) 컨텐츠 공유 방법 및 전자 장비
US9354919B2 (en) Method and device for loading android virtual machine application
US20190188030A1 (en) Terminal background application management method and apparatus
WO2013130967A1 (en) Software application previews
KR20150072442A (ko) 홈 게이트웨이와 스마트 단말의 통합 시스템 및 그 통신 방법
US20140013257A1 (en) Method and Terminal Device for File Processing Based on User Interface
KR20160071826A (ko) 무선 네트워크 연결 방법 및 그 전자 장치 및 방법
KR20160042739A (ko) 화면을 공유하기 위한 방법 및 그 전자 장치
CN106027631B (zh) 一种数据传输方法及装置
CN110457621B (zh) 一种混合应用的页面显示方法、装置及介质
CN111371676A (zh) 一种客服功能接入方法和相关装置
WO2017211260A1 (zh) 一种访问数据的方法及相关设备
EP3584700A1 (en) Fingerprint recognition method and related product
CN107463395B (zh) 组件调用方法及装置
KR101393153B1 (ko) 외부 하드웨어를 사용하기 위한 모바일 플랫폼 및 이를 이용한 방법
CN107155202A (zh) 一种控制网络切换的方法及终端
KR20150116875A (ko) 네트워크를 거치는 애드-혹 디바이스 공유

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160224

Year of fee payment: 6