KR101095426B1 - 엑스렛 어플리케이션 실행 방법 및 기록매체 - Google Patents

엑스렛 어플리케이션 실행 방법 및 기록매체 Download PDF

Info

Publication number
KR101095426B1
KR101095426B1 KR1020110067055A KR20110067055A KR101095426B1 KR 101095426 B1 KR101095426 B1 KR 101095426B1 KR 1020110067055 A KR1020110067055 A KR 1020110067055A KR 20110067055 A KR20110067055 A KR 20110067055A KR 101095426 B1 KR101095426 B1 KR 101095426B1
Authority
KR
South Korea
Prior art keywords
application
android
execution
file
xlet
Prior art date
Application number
KR1020110067055A
Other languages
English (en)
Inventor
박현철
박민주
이기영
정운교
Original Assignee
(주)티비스톰
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)티비스톰 filed Critical (주)티비스톰
Priority to KR1020110067055A priority Critical patent/KR101095426B1/ko
Application granted granted Critical
Publication of KR101095426B1 publication Critical patent/KR101095426B1/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/448Execution paradigms, e.g. implementations of programming paradigms
    • 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
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

안드로이드 플랫폼에서 안드로이드 어플리케이션 뿐만 아니라 엑스렛 어플리케이션을 실행할 수 있도록 하는 장치 및 방법을 제시한다. 제시된 본 발명의 장치는 입력받은 엑스렛 어플리케이션을 안드로이드에서 실행될 파일로 변환하는 엑스렛 변환부, 엑스렛 어플리케이션의 실행에 필요한 API(Application Programming Interface)가 구현된 엑스렛 API 라이브러리, 및 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행에 필요한 메타정보가 입력됨에 따라 엑스렛 변환부를 동작시키고, 안드로이드에서 실행될 파일 및 엑스렛 어플리케이션의 실행에 필요한 메타정보를 기초로 엑스렛 API 라이브러리 및 안드로이드 플랫폼과 연계하여 엑스렛 어플리케이션을 실행시키는 어플 라이프사이클 제어부를 포함한다. 안드로이드 플랫폼에서 엑스렛(Xlet) 어플리케이션을 구동시키고자 하는 경우 많은 리소스의 추가 사용없이 원래의 안드로이드 플랫폼의 기능을 최대한 활용하여 효과적으로 구현가능하다.

Description

엑스렛 어플리케이션 실행 방법 및 기록매체{Method for execurting Xlet application and recording medium}
본 발명은 엑스렛 어플리케이션 실행 장치 및 방법에 관한 것으로, 보다 상세하게는 안드로이드 플랫폼에서 엑스렛(Xlet) 어플리케이션을 실행시키는 장치 및 방법에 관한 것이다.
구글이 개발한 안드로이드는 자바(JAVA) 언어로 개발된 다양한 애플리케이션들을 구동할 수 있는 소프트웨어 플랫폼이다. 안드로이드는 스마트폰을 운용하기 위한 목적으로 개발되었으나 최근에는 TV, 셋톱박스, 네비게이션 기기 등 다양한 용도로 확산되고 있다.
통상적으로, 엑스렛 어플리케이션 라이프 사이클을 이용하는 자바 어플리케이션을 엑스렛(Xlet)이라고 한다. API(Application Programming Interface)측면에서 볼 때, JavaTV에 정의되어 있는 엑스렛 인터페이스를 구현하고 있는 어플리케이션을 엑스렛 어플리케이션이라고 한다.
엑스렛(Xlet) 어플리케이션은 주로 TV, 셋톱박스 등의 디지털방송 수신기에서 게임, 쇼핑 등 다양한 부가 서비스를 제공하기 위한 용도로 사용된다. 이러한 엑스렛 어플리케이션은 MHP, OCAP, ACAP 등과 같은 데이터방송 미들웨어 표준 규격에도 포함되어 최근 수년간 널리 활용되고 있다.
최근 안드로이드 플랫폼을 스마트폰 뿐만 아니라 TV, 셋톱박스 등의 기기에도 사용하게 되었다. 그에 따라, 하나의 기기에서 안드로이드 어플리케이션 뿐만 아니라 엑스렛(Xlet) 어플리케이션들을 통한 서비스까지도 제공하고자 하는 시도가 이루어지고 있다.
그러나, 안드로이드 플랫폼은 엑스렛(Xlet) 어플리케이션을 구동하는 데 필요한 실행 환경을 갖추고 있지 않기 때문에 엑스렛(Xlet) 어플리케이션을 구동시키지 못한다.
일반적으로, 어플리케이션을 구동하는 데 필요한 실행 환경은 어플리케이션의 실행 및 종료를 제어하는 라이프사이클 제어부, 어플리케이션이 요청하는 기능을 처리하는 API 라이브러리, 및 어플리케이션의 실행 코드를 해석하여 실행하는 코드 실행부 등을 포함한다.
안드로이드 플랫폼에서는 안드로이드 어플리케이션을 위한 라이프사이클 제어부와 API 라이브러리를 갖추고 있으며, 달빅(Dalvik)이라는 가상머신이 코드 실행부 역할을 수행한다. 일반적으로, 안드로이드 어플리케이션을 개발하기 위해서는 자바(Java) 언어로 소스 파일을 작성하여 컴파일을 통해 자바(Java) 실행 파일을 얻는다. 이후, 안드로이드 SDK(Software Development Kit) 내에 포함된 변환 도구를 통하여 자바 실행 파일을 달빅(Dalvik) 실행 파일로 변환하는 과정을 거치게 된다. 달빅(Dalvik)은 자바 실행 파일을 실행할 수 없기 때문에 자바 실행 파일에서 달빅 실행 파일로의 변환은 반드시 필요하다.
엑스렛(Xlet) 어플리케이션은 실행하기 위해서는 엑스렛(Xlet) 어플리케이션에 대한 라이프사이클 제어부와 엑스렛(Xlet) 어플리케이션이 호출하는 API 라이브러리가 필요하다. 또한, 엑스렛 어플리케이션은 자바(Java) 실행 파일 형태로 배포되므로 자바 실행 파일을 실행할 수 있는 실행부가 필요하다. 그러나, 안드로이드 플랫폼에서는 이러한 각 요소가 없기 때문에 엑스렛 어플리케이션을 실행할 수 없는 것이다.
이러한 문제를 극복하거나 회피하여, 하나의 기기에서 안드로이드 어플리케이션과 엑스렛 어플리케이션을 모두 구동할 수 있도록 하기 위한 시도들이 이루어지고 있다.
그러나, 현재까지의 접근법들은 엑스렛 어플리케이션을 실행하기 위한 가상 머신(Java Virtual Machine, JVM)과 라이브러리를 별도로 추가하여, 엑스렛 어플리케이션은 JVM에서 동작시키고, 안드로이드 어플리케이션은 달빅(Dalvik)에서 동작시키는 방식이 사용되고 있다.
이러한 방법은 많은 리소스가 소요되며, 서비스간의 조화로운 통합이 원활하지 않다는 문제가 있다. 즉, 하나의 기기에 두 가지의 가상 머신을 탑재해야 하므로 메모리 소요가 많다. 그리고, 안드로이드 어플리케이션과 엑스렛 어플리케이션이 개별적인 실행 환경에서 동작하므로 안드로이드 어플리케이션과 엑스렛 어플리케이션이 전환하거나 또는 연동하는 데 있어서 효율적이지 못하다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 안드로이드 플랫폼에서 안드로이드 어플리케이션 뿐만 아니라 엑스렛 어플리케이션을 실행할 수 있도록 하는 장치 및 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 엑스렛 어플리케이션 실행 장치는, 입력받은 엑스렛 어플리케이션을 안드로이드에서 실행될 파일로 변환하는 엑스렛 변환부; 엑스렛 어플리케이션의 실행에 필요한 API(Application Programming Interface)가 구현된 엑스렛 API 라이브러리; 및 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행에 필요한 메타정보가 입력됨에 따라 엑스렛 변환부를 동작시키고, 안드로이드에서 실행될 파일 및 엑스렛 어플리케이션의 실행에 필요한 메타정보를 기초로 엑스렛 API 라이브러리 및 안드로이드 플랫폼과 연계하여 엑스렛 어플리케이션을 실행시키는 어플 라이프사이클 제어부;를 포함한다.
바람직하게, 엑스렛 변환부는 엑스렛 어플리케이션의 JVM(Java Virtual Machine)용 실행 코드를 달빅(Dalvik)용 실행 코드로 변환하는 실행코드 변환부, 엑스렛 어플리케이션에 포함된 자원을 추출하는 자원 추출부, 및 달빅용 실행 코드 및 자원을 이용하여 안드로이드에서 실행될 파일을 만드는 패키징부를 포함한다.
엑스렛 API 라이브러리 및 어플 라이프사이클 제어부는 하나의 모듈로 구성되어 플러그-인 형태로 안드로이드 플랫폼에 설치됨이 바람직하다.
엑스렛 어플리케이션의 실행을 위해 필요한 메타정보 및 엑스렛 어플리케이션은, 방송 스트림, 셋탑박스 내부의 저장매체, 셋탑박스에 연결된 외부 저장매체, 및 인터넷중에서 어느 하나를 통해 입력받되, 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보를 포함한다.
본 발명의 바람직한 실시양태에 따른 엑스렛 어플리케이션 실행 방법은, 어플 라이프사이클 제어부가, 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행에 필요한 메타정보가 입력됨에 따라 엑스렛 변환부를 동작시키는 단계; 엑스렛 변환부가, 입력되는 엑스렛 어플리케이션을 안드로이드에서 실행될 파일로 변환하는 단계; 및 어플 라이프사이클 제어부가, 안드로이드에서 실행될 파일 및 엑스렛 어플리케이션의 실행에 필요한 메타정보를 기초로, 엑스렛 어플리케이션의 실행에 필요한 API(Application Programming Interface)가 구현된 엑스렛 API 라이브러리 및 안드로이드 플랫폼과 연계하여 엑스렛 어플리케이션을 실행시키는 단계;를 포함한다.
바람직하게, 변환 단계는, 엑스렛 어플리케이션의 JVM(Java Virtual Machine)용 실행 코드를 달빅(Dalvik)용 실행 코드로 변환하는 단계; 엑스렛 어플리케이션에 포함된 자원을 추출하는 단계; 및 달빅용 실행 코드 및 자원을 이용하여 안드로이드에서 실행될 파일을 만드는 단계;를 포함한다.
엑스렛 어플리케이션의 실행을 위해 필요한 메타정보 및 엑스렛 어플리케이션은, 방송 스트림, 셋탑박스 내부의 저장매체, 셋탑박스에 연결된 외부 저장매체, 및 인터넷중에서 어느 하나를 통해 입력받되, 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보를 포함한다.
본 발명의 다른 실시양태에 따른 엑스렛 어플리케이션 실행 장치는, 엑스렛 어플리케이션의 실행에 필요한 API(Application Programming Interface)가 구현된 엑스렛 API 라이브러리; 및 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행에 필요한 메타정보가 입력됨에 따라 엑스렛 변환부를 동작시켜 엑스렛 어플리케이션을 안드로이드에서 실행될 파일로 변환시키고, 안드로이드에서 실행될 파일 및 엑스렛 어플리케이션의 실행에 필요한 메타정보를 기초로 엑스렛 API 라이브러리 및 안드로이드 플랫폼과 연계하여 상기 엑스렛 어플리케이션을 실행시키는 어플 라이프사이클 제어부;를 포함한다.
엑스렛 API 라이브러리 및 어플 라이프사이클 제어부는 하나의 모듈로 구성되어 플러그-인 형태로 안드로이드 플랫폼에 설치됨이 바람직하다.
엑스렛 어플리케이션의 실행을 위해 필요한 메타정보 및 엑스렛 어플리케이션은, 방송 스트림, 셋탑박스 내부의 저장매체, 셋탑박스에 연결된 외부 저장매체, 및 인터넷중에서 어느 하나를 통해 입력받되, 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보를 포함한다.
본 발명의 다른 실시양태에 따른 엑스렛 어플리케이션 실행 방법은, 어플 라이프사이클 제어부가, 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행에 필요한 메타정보가 입력됨에 따라 엑스렛 변환부를 동작시키는 단계; 및 어플 라이프사이클 제어부가, 엑스렛 변환부에 의해 안드로이드에서 실행될 파일로 변환된 엑스렛 어플리케이션 및 엑스렛 어플리케이션의 실행에 필요한 메타정보를 기초로, 엑스렛 어플리케이션의 실행에 필요한 API(Application Programming Interface)가 구현된 엑스렛 API 라이브러리 및 안드로이드 플랫폼과 연계하여 엑스렛 어플리케이션을 실행시키는 단계;를 포함한다.
바람직하게, 엑스렛 어플리케이션의 실행을 위해 필요한 메타정보 및 엑스렛 어플리케이션은, 방송 스트림, 셋탑박스 내부의 저장매체, 셋탑박스에 연결된 외부 저장매체, 및 인터넷중에서 어느 하나를 통해 입력받되, 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보를 포함한다.
이러한 구성의 본 발명에 따르면, 안드로이드 플랫폼에서 엑스렛(Xlet) 어플리케이션을 구동시키고자 하는 경우 많은 리소스의 추가 사용없이 원래의 안드로이드 플랫폼의 기능을 최대한 활용하여 효과적으로 구현가능하다.
종래에는 안드로이드 플랫폼에서 엑스렛 어플리케이션을 실행하기 위해서는 자바 가상 머신(JVM)을 달빅(Dalvik) 가상 머신과 별도로 탑재하여 어플리케이션의 종류에 따라 가상머신을 다르게 운용해 주어야 하였다. 그러나, 본 발명에 의하면 달빅 가상 머신에서 안드로이드 어플리케이션은 물론 엑스렛 어플리케이션을 실행할 수 있게 된다. 다시 말해서, 본 발명에 따르면 엑스렛 어플리케이션은 안드로이드 플랫폼에 원래 포함되어 있는 달빅 가성 머신에 의해 실행되므로, 실행을 위한 별도의 가상 머신을 포함하지 않게 된다. 그에 따라, 본 발명의 경우 두 개의 가상 머신 설치에 따른 자원 낭비를 해결하고, 안드로이드 플랫폼에서 안드로이드 어플리케이션과 엑스렛 어플리케이션을 모두 실행할 수 있게 된다. 이는 이미 개발된 많은 엑스렛 어플리케이션들을 사용할 수 있게 됨에 따른 안드로이드 플랫폼의 서비스 영역을 넓혀주는 효과를 창출하게 된다.
즉, 본 발명에 따르면 자바 가상머신을 사용하기 위해 들어가는 가상 머신 실행 메모리, 자바 가상머신을 저장하기 위한 저장 공간, 자바 가상 머신과 달빅 가상 머신을 관리하는 프로그램 매니저 등이 필요없게 된다.
한편, 본 발명에 따르면 기존의 송출 시스템의 수정 없이 방송용 어플리케이션을 재사용 가능하기 때문에 방송 사업자는 많은 비용을 절감할 수 있다.
또한, 안드로이드 플랫폼은 다양한 디바이스에 이식되고 있기 때문에 기존의 셋탑박스 뿐만 아니라 다양한 디바이스에서 손쉽게 방송용 어플리케이션을 사용할 수 있게 된다.
도 1은 본 발명의 실시예에 따른 엑스렛 어플리케이션 실행 장치를 설명하는 블럭구성도이다.
도 2는 본 발명의 실시예에 따른 엑스렛 어플리케이션 실행 방법을 설명하는 플로우차트이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 따른 엑스렛 어플리케이션 실행 장치 및 방법에 대하여 설명하면 다음과 같다. 본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니된다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명의 실시예에 따른 엑스렛 어플리케이션 실행 장치를 설명하는 블럭구성도이다.
본 발명의 실시예에 따른 장치는 엑스렛 변환부(10) 및 엔진부(20)를 포함한다. 본 발명의 장치는 셋탑박스를 포함하고 있는 안드로이드용 장비에 적용된다. 여기서, 엔진부(20)는 셋탑박스내에 설치됨이 바람직하고, 엑스렛 변환부(10)는 셋탑박스내에 설치되거나 셋탑박스 외부에 설치되어도 무방하다.
엑스렛 변환부(10)는 엑스렛 어플리케이션을 안드로이드에서 실행될 파일로 변환한다. 안드로이드에서 실행될 파일의 예로는 안드로이드용 어플 형태의 어플리케이션 패키지(Application Package) 파일(이하에서는 "APK 파일"(안드로이드 어플의 설치 파일)이라고 함) 또는 자바 압축파일(Java Archive) 등이 있다. APK 파일은 안드로이드 어플을 배포해서 설치할 목적으로 만들어진 파일로서, 통상의 윈도우즈 프로그램의 설치 파일과 동일한 개념으로 이해하면 된다. 여기서, 엑스렛 어플리케이션은 엑스렛 개발사 등에 의해 이미 만들어진 것으로 가정한다. 엑스렛 어프리케이션은 JVM용 실행 코드 및 자원(resource)을 포함한다. 여기서, 자원은 그림 파일, 정보 파일 등을 포함한다. 정보 파일이라 함은 날씨 정보, 교통 정보, 드라마 관련 정보, 인물 상세 설명, 줄거리 등을 의미한다.
JVM용 실행 코드는 자바 가상 머신에서만 실행되고, 달빅(Dalvik) 가상 머신은 JVM용 실행 코드를 실행시키지 못한다. 그에 따라, 덱스(DX) 툴에 의해 변형된 달빅용 실행 코드를 생성하는 것이 필요하기 때문에 엑스렛 변환부(10)를 채용하였다.
바람직하게, 엑스렛 변환부(10)는 실행코드 변환부(12), 자원 추출부(14), 및 패키징부(16)를 포함한다.
실행코드 변환부(12)는 덱스(DX) 프로그램을 이용하여 엑스렛 어플리케이션의 JVM용 실행 코드를 달빅용 실행 코드로 변환한다. 여기서, 덱스 프로그램은 주지의 기술로 충분히 이해가능하므로, 별도의 설명을 하지 않는다.
자원 추출부(14)는 엑스렛 어플리케이션에 포함된 자원을 추출한다.
패키징부(16)는 실행코드 변환부(12)에서 출력되는 달빅용 실행 코드 및 자원 추출부(14)로부터의 자원을 하나로 묶어서 안드로이드에서 실행될 파일(예컨대, APK 파일 또는 자바 압축파일)을 만든다.
엔진부(20)는 안드로이드 프레임워크(30)상에서 동작한다. 엔진부(20)는 ICSP(IPTV Convergence Service Platform)-자바의 표준을 만족하는 안드로이드용 라이브러리 및 엑스렛 어플리케이션을 제어하는 관리자 기능을 갖는다. 엔진부(20)는 안드로이드용 어플리케이션이라고 할 수 있다.
엔진부(20)는 엑스렛 API 라이브러리(22) 및 어플 라이프사이클 제어부(24)를 포함한다.
엑스렛 API 라이브러리(22)는 방송용 어플리케이션의 표준인 ICSP(IPTV Convergence Service Platform)-자바용 라이브러리를 포함한다. 예를 들어, 방송용 어플리케이션의 표준인 ICSP-자바용 라이브러리로는 JavaTV API, Havi API, Davic API 등을 있을 수 있다. 여기서, JavaTV API는 IPTV에서 TV기능을 제공하는 컴포넌트에 대한 API이다. JavaTV API는 기본적인 TV시청에 필요한 서비스 선택, 미디어 재생 등 광범위한 기능을 제공한다. Havi API는 어플리케이션 실행에 요구되는 TV상의 그래픽 표시와 사용자 상호작용에 사용되는 그래픽 컴포넌트에 대한 API를 제공한다. Davic API는 미디어 컨텐츠에 대한 표현 및 조작을 제공하는 API를 제공한다.
한편, 엑스렛 API 라이브러리(22)는 ICSP-자바용 라이브러리(즉, 안드로이드에 원래부터 있었던 라이브러리) 이외로 안드로이드에서 지원하지 않는 java.awt, javax 등의 API(즉, 안드로이드에 없었던 라이브러리)가 추가적으로 구현된다. 다시 말해서, 엑스렛 API 라이브러리(22)는 엑스렛 어플리케이션의 실행에 필요한 API(예컨대, java.awt, javax 등)가 별도로 구현된다.
어플 라이프사이클 제어부(24)는 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행에 필요한 메타정보가 입력됨에 따라 엑스렛 변환부(10)를 동작시킨다. 여기서, 엑스렛 어플리케이션의 실행을 위해 필요한 메타정보 및 엑스렛 어플리케이션은 방송 스트림, 셋탑박스 내부의 저장매체(예컨대, 하드디스크), 셋탑박스에 연결된 외부 저장매체(예컨대, USB), 및 인터넷중에서 어느 하나를 통해 입력받을 수 있다. 엑스렛 어플리케이션의 실행을 위해 필요한 메타정보는 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보를 포함한다. 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보는 엑스렛 어플리케이션을 실행할 시점에서 필요한 메타정보이다.
어플 라이프사이클 제어부(24)는 엑스렛 변환부(10)로부터의 안드로이드에서 실행될 파일 및 엑스렛 어플리케이션의 실행에 필요한 메타정보를 기초로 엑스렛 API 라이브러리(22) 및 안드로이드 플랫폼과 연계하여 엑스렛 어플리케이션의 라이프사이클을 제어한다. 여기서, 엑스렛 API 라이브러리(22)와의 연계는 어플 라이프사이클 제어부(24)가 엑스렛 API 라이브러리(22)의 API를 이용한다는 것을 의미한다. 그리고, 안드로이드 플랫폼과의 연계는 엑스렛 어플리케이션 실행동안에 어플 라이프사이클 제어부(24)가 안드로이드 플랫폼내의 달빅 가상 머신(도시 생략)이 읽어내는 정보(예컨대, 클래스명, 메서드명, 변수명, 시스템 API 등)를 이용한다는 것을 의미한다. 한편, 엑스렛 어플리케이션의 라이프사이클 제어란 엑스렛 어플리케이션을 실행시킨다는 의미로 해석하면 된다.
이와 같은 엔진부(20)는 하나의 모듈(유닛이라고도 할 수 있음)로 구성되어 플러그-인 형태로 안드로이드 플랫폼에 설치됨이 바람직하다. 엔진부(20)를 안드로이드 플랫폼 또는 송출 시스템에 직접적인 수정없이 플러그-인 형태의 어플리케이션으로 만들게 되면 안드로이드 플랫폼의 버전이 업그레이드되어도 사용이 용이하고, 특히 다른 디바이스에도 이식이 쉽다는 장점이 있다.
도 2는 본 발명의 실시예에 따른 엑스렛 어플리케이션 실행 방법을 설명하는 플로우차트이다.
먼저, 엔진부(20)내의 엑스렛 API 라이브러리(22)는 안드로이드에 원래부터 있었던 라이브러리인 ICSP-자바용 라이브러리 뿐만 아니라 안드로이드에서 지원하지 않았던 java.awt, javax 등의 API가 함께 구현된 것으로 한다.
일단, 장치내로 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행에 필요한 메타정보가 입력된다(S10). 여기서, 엑스렛 어플리케이션의 실행을 위해 필요한 메타정보 및 엑스렛 어플리케이션은 방송 스트림, 셋탑박스 내부의 저장매체(예컨대, 하드디스크), 셋탑박스에 연결된 외부 저장매체(예컨대, USB), 및 인터넷중에서 어느 하나를 통해 입력될 수 있다. 엑스렛 어플리케이션의 실행을 위해 필요한 메타정보는 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보를 포함한다. 엑스렛 클래스 정보, 실행 파라미터 정보, 실행 권한 정보는 엑스렛 어플리케이션을 실행할 시점에서 필요한 메타정보이다.
이와 같이 엑스렛 어플리케이션이 입력되고 엑스렛 어플리케이션의 실행을 위해 필요한 메타정보가 입력되면 어플 라이프사이클 제어부(24)는 엑스렛 변환부(10)를 동작시킨다(S20).
그에 따라, 엑스렛 변환부(10)는 입력되는 엑스렛 어플리케이션을 안드로이드에서 실행될 파일로 변환한다(S30). 보다 상세하게는, 엑스렛 변환부(10)의 실행코드 변환부(12)는 엑스렛 어플리케이션의 JVM용 실행 코드를 달빅용 실행 코드로 변환한다. 이때, 자원 추출부(14)는 엑스렛 어플리케이션에 포함된 자원을 추출한다. 이어, 패키징부(16)는 달빅용 실행 코드 및 자원을 하나로 묶어서 안드로이드에서 실행될 파일인 APK 파일 또는 자바 압축파일을 만들어 낸다. 엑스렛 변환부(10)의 결과물인 안드로이드에서 실행될 파일은 어플 라이프사이클 제어부(24)에게로 전송된다.
이어, 어플 라이프사이클 제어부(24)는 안드로이드에서 실행될 파일 및 엑스렛 어플리케이션의 실행에 필요한 메타정보를 기초로, 엑스렛 API 라이브러리(22) 및 안드로이드 플랫폼과 연계하여 엑스렛 어플리케이션을 실행시킨다(S40). 보다 자세하게는, 어플 라이프사이클 제어부(24)는 APK 파일 또는 자바 압축파일이 입력되면 입력된 APK 파일 또는 자바 압축파일을 읽으라고 달빅 가상 머신(도시 생략)에게 지시한다. 그에 따라, 달빅 가상 머신(도시 생략)은 클래스 로더(class loader)를 통해 그 입력된 APK 파일 또는 자바 압축파일을 읽는다. 클래스 로더는 APK 파일 또는 자바 압축파일에서 실행에 필요한 정보를 읽어내게 되는데, 우선 클래스 로더는 APK 파일 또는 자바 압축파일에서 바이트 코드로 된 클래스 파일을 읽는다. 이후, 클래스 로더는 클래스 파일내에 있는 클래스명, 메서드명, 변수명, 시스템 API 등을 읽는다. 그리고 나서, 클래스 로더는 클래스명의 상위 클래스중에서 시스템 클래스를 불러온다. 여기서, 시스템 클래스는 달빅 가상 머신에서 제공하는 클래스이다. 이와 같이 하면 엑스렛(Xlet) 어플리케이션을 실행시키는 동안에 필요한 클래스명, 메서드명, 변수명, 시스템 클래스 등을 알 수 있게 된다. 이와 함께, 어플 라이프사이클 제어부(24)는 엑스렛 API 라이브러리(22)에서 시스템 클래스 이외의 사용할 클래스를 불러온다. 즉, 어플 라이프사이클 제어부(24)는 클래스 로더에 의한 시스템 클래스 이외로 엑스렛(Xlet) 어플리케이션 실행에 필요한 클래스(예컨대, HActionEvent, HActionListner, HItemEvent, HKeyEvent, HRcEvent, HTextEvent 등)를 엑스렛 API 라이브러리(22)에서 읽어낸다.
이와 같이 하게 되면 엑스렛(Xlet) 어플리케이션을 실행시킬 준비가 완료된다.
이와 같이 엑스렛(Xlet) 어플리케이션을 실행시킬 준비가 완료된 이후에는 어플 라이프사이클 제어부(24)는 엑스렛(Xlet) 어플리케이션을 통상의 어플리케이션 라이프사이클에 따라 실행시킨다. 통상의 엑스렛(Xlet) 어플리케이션은 하기와 같은 Xlet 라이프사이클 모델을 따른다. 최초 Xlet이 생성되어서 로딩이 이루어지고 나면 로더(LOADED) 상태가 되고, LOADED 상태에서 initXlet()메서드가 호출되면 PAUSED 상태가 된다. 그 PAUSED 상태에서 startXlet()메서드가 호출되면 GUI로 구성된 Xlet인 경우 최종 TV화면에 보여지게 되는 ACTIVE 상태가 된다. 또한, ACTIVE 상태에서 pauseXlet()메서드가 호출되면 PAUSED 상태가 된다. LOADED, PAUSED, ACTIVE 상태에서 destroyXlet()메서드가 호출되면 Xlet는 DESTROYED 상태가 되어 최종 메모리에서 제거되는 상태 변경이 이루어진다.
상술한 본 발명의 실시예는 엑스렛 어플리케이션에 한정하여 설명하였으나, 엑스렛 어플리케이션과 인터페이스 형태가 아주 유사한 미들렛(MIDlet) 어플리케이션을 실행시키는 경우에도 본 발명이 쉽게 적용될 수 있음은 동종업계에 종사하는 자라면 상술한 설명을 근거로 누구라도 쉽게 알 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
한편, 본 발명은 상술한 실시예로만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위내에서 수정 및 변형하여 실시할 수 있고, 그러한 수정 및 변형이 가해진 기술사상 역시 이하의 특허청구범위에 속하는 것으로 보아야 한다.
10 : 엑스렛 변환부 12 : 실행코드 변환부
14 : 자원 추출부 16 : 패키징부
20 : 엔진부 22 : 엑스렛 API 라이브러리
24 : 어플 라이프사이클 제어부 30 : 안드로이드 프레임워크

Claims (12)

  1. 어플 라이프사이클 제어부가, 엑스렛 어플리케이션의 실행에 필요한 엑스렛 클래스 정보와 실행 파라미터 정보 및 실행 권한 정보를 포함하는 메타정보가 입력됨에 따라 엑스렛 변환부를 동작시키는 단계;
    상기 엑스렛 변환부가, 상기 엑스렛 어플리케이션을 안드로이드에서 실행될 파일로 변환하는 단계; 및
    상기 어플 라이프사이클 제어부가, 상기 안드로이드에서 실행될 파일 및 상기 메타정보를 기초로, 상기 엑스렛 어플리케이션의 실행에 필요한 API(Application Programming Interface)가 구현된 엑스렛 API 라이브러리 및 안드로이드 플랫폼과 연계하여 상기 엑스렛 어플리케이션을 실행시키는 단계;를 포함하는 것을 특징으로 하는 엑스렛 어플리케이션 실행 방법.
  2. 청구항 1에 있어서,
    상기 변환 단계는,
    상기 엑스렛 어플리케이션의 JVM(Java Virtual Machine)용 실행 코드를 달빅(Dalvik)용 실행 코드로 변환하는 단계;
    상기 엑스렛 어플리케이션에 포함된 자원을 추출하는 단계; 및
    상기 달빅용 실행 코드 및 상기 자원을 이용하여 상기 안드로이드에서 실행될 파일을 만드는 단계;를 포함하는 것을 특징으로 하는 엑스렛 어플리케이션 실행 방법.
  3. 청구항 1에 있어서,
    상기 메타정보 및 상기 엑스렛 어플리케이션은,
    방송 스트림, 셋탑박스 내부의 저장매체, 셋탑박스에 연결된 외부 저장매체, 및 인터넷중에서 어느 하나를 통해 입력받는 것을 특징으로 하는 엑스렛 어플리케이션 실행 방법.
  4. 청구항 1 내지 청구항 3중의 어느 한 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체.
  5. 어플 라이프사이클 제어부가, 엑스렛 어플리케이션의 실행에 필요한 엑스렛 클래스 정보와 실행 파라미터 정보 및 실행 권한 정보를 포함하는 메타정보가 입력됨에 따라 엑스렛 변환부를 동작시키는 단계; 및
    상기 어플 라이프사이클 제어부가, 상기 메타정보 및 상기 엑스렛 변환부에 의해 안드로이드에서 실행될 파일로 변환된 엑스렛 어플리케이션을 기초로, 상기 엑스렛 어플리케이션의 실행에 필요한 API(Application Programming Interface)가 구현된 엑스렛 API 라이브러리 및 안드로이드 플랫폼과 연계하여 상기 엑스렛 어플리케이션을 실행시키는 단계;를 포함하는 것을 특징으로 하는 엑스렛 어플리케이션 실행 방법.
  6. 청구항 5에 있어서,
    상기 메타정보 및 상기 엑스렛 어플리케이션은,
    방송 스트림, 셋탑박스 내부의 저장매체, 셋탑박스에 연결된 외부 저장매체, 및 인터넷중에서 어느 하나를 통해 입력받는 것을 특징으로 하는 엑스렛 어플리케이션 실행 방법.
  7. 청구항 5 또는 청구항 6에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
KR1020110067055A 2011-07-06 2011-07-06 엑스렛 어플리케이션 실행 방법 및 기록매체 KR101095426B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110067055A KR101095426B1 (ko) 2011-07-06 2011-07-06 엑스렛 어플리케이션 실행 방법 및 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110067055A KR101095426B1 (ko) 2011-07-06 2011-07-06 엑스렛 어플리케이션 실행 방법 및 기록매체

Publications (1)

Publication Number Publication Date
KR101095426B1 true KR101095426B1 (ko) 2011-12-16

Family

ID=45506493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110067055A KR101095426B1 (ko) 2011-07-06 2011-07-06 엑스렛 어플리케이션 실행 방법 및 기록매체

Country Status (1)

Country Link
KR (1) KR101095426B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014042297A1 (ko) * 2012-09-13 2014-03-20 주식회사 인프라웨어테크놀러지 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법
KR101427562B1 (ko) 2013-03-08 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
KR101427561B1 (ko) 2013-05-16 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Application framework for multi platform mobile application software developmentAdvanced Communication Technology, 2009. ICACT 2009. 11th International Conference on IEEE pp.208-213.

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014042297A1 (ko) * 2012-09-13 2014-03-20 주식회사 인프라웨어테크놀러지 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법
KR101427562B1 (ko) 2013-03-08 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
WO2014137025A1 (ko) * 2013-03-08 2014-09-12 (주)인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환 방법
KR101427561B1 (ko) 2013-05-16 2014-08-07 주식회사 인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
WO2014185573A1 (ko) * 2013-05-16 2014-11-20 (주)인프라웨어테크놀러지 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법

Similar Documents

Publication Publication Date Title
WO2015035908A1 (zh) 一种智能电视操作系统
US9473827B2 (en) Apparatus and methods for implementation of network software interfaces
KR101295393B1 (ko) 단일 운영체제 상에서 스마트 서비스와 디지털 텔레비젼 서비스를 제공하는 스마트 셋탑 박스 및 그것의 구동 방법
KR101260185B1 (ko) 단일 운영체제에 포함된 기본 미디어 플레이어를 이용하여 스마트 서비스와 디지털 텔레비젼 서비스를 제공하는 스마트 셋탑 박스 및 그것의 구동 방법
US11263027B2 (en) Plugin loading method and apparatus, terminal, and storage medium
RU2483345C2 (ru) Устройство обработки информации, способ обработки информации и программа
Kuzmanovic et al. Google's android as an application environment for DTV decoder system
CN102355603B (zh) 基于有线数字电视机顶盒中间件系统
KR101427561B1 (ko) 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환을 이용한 적응 실행 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
US8813084B2 (en) Broadcast receiving apparatus and scheduling method thereof
KR20140106838A (ko) 스트리밍 기반의 게임 플랫폼을 이용한 클라우드 서비스 제공 장치 및 방법
KR100725386B1 (ko) 가상 머신 어플리케이션을 실행하는 방법 및 그 방법을이용한 디지털 방송 수신기
JP2007524297A (ja) デジタル放送端末
KR101095426B1 (ko) 엑스렛 어플리케이션 실행 방법 및 기록매체
KR100870200B1 (ko) 통합 미들웨어형 디지털방송 수신장치
KR101427562B1 (ko) 안드로이드 어플리케이션의 타이젠 설치가능 패키지 자동변환 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
Pravin et al. Set top box system with android support using Embedded Linux operating systempaper
JP2015073322A (ja) デジタルテレビ用アプリケーション実行システム、デジタルテレビ用アプリケーション実行装置、および該システムの実装方法
US20130191853A1 (en) Program execution method and program execution apparatus
KR101155218B1 (ko) 패키지 파일을 이용하여 어플리케이션을 설치하는 시스템,단말기 및 그 방법 그리고 패키지 파일을 생성하는 서버
US8127313B2 (en) Method and system for providing services
KR101276115B1 (ko) Xlet 애플리케이션을 지원하는 안드로이드용 데이터방송 모듈, 이를 구비한 셋톱박스 및 그 지원 방법
KR20050014619A (ko) 어플리케이션을 저장하고 실행하는 디지털 방송 수신 장치및 그 방법
Kulesza et al. Ginga-J-An open java-based application environment for interactive digital television services
Zivkov et al. Application engine for resource-constrained embedded platforms

Legal Events

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

Payment date: 20141105

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181024

Year of fee payment: 8