首页 / 专利库 / 广播 / Xlet / 엑스렛 어플리케이션 실행 방법 및 기록매체

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

阅读:707发布:2020-05-23

专利汇可以提供엑스렛 어플리케이션 실행 방법 및 기록매체专利检索,专利查询,专利分析的服务。并且PURPOSE: An Xlet application execution method and recording medium thereof are provided to prevent resource waste during installing two VMs by executing Xlet application based on Dalvik VM which is included in an android platform. CONSTITUTION: An application lifecycle controller(24) operates an Xlet conversion unit(10) according to the input of meta information. The Xlet conversion unit converts an Xlet applicationinto a file which is executable in android. The application lifecycle controller executes the Xlet application by interlinking a Xlet API(Application Programming Interface) library and android platform based on the file and meta information.,下面是엑스렛 어플리케이션 실행 방법 및 기록매체专利的具体信息内容。

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

    엑스렛 어플리케이션 실행 방법 및 기록매체{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 : 안드로이드 프레임워크

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈