KR101482149B1 - Apparatus for executing application, method thereof and computer recordable medium storing the method - Google Patents

Apparatus for executing application, method thereof and computer recordable medium storing the method Download PDF

Info

Publication number
KR101482149B1
KR101482149B1 KR20100042400A KR20100042400A KR101482149B1 KR 101482149 B1 KR101482149 B1 KR 101482149B1 KR 20100042400 A KR20100042400 A KR 20100042400A KR 20100042400 A KR20100042400 A KR 20100042400A KR 101482149 B1 KR101482149 B1 KR 101482149B1
Authority
KR
South Korea
Prior art keywords
application
execution
manager
function
executing
Prior art date
Application number
KR20100042400A
Other languages
Korean (ko)
Other versions
KR20110122996A (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 KR20100042400A priority Critical patent/KR101482149B1/en
Publication of KR20110122996A publication Critical patent/KR20110122996A/en
Application granted granted Critical
Publication of KR101482149B1 publication Critical patent/KR101482149B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • G07F17/3232Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것으로, 운영 체제의 종류에 무관하게 운영 체제가 객체의 다중 실행 또는 다중 인스턴스를 지원하지 않더라도, 운영 체제로부터 요청을 수신하는 객체와 해당 요청을 실행하는 객체를 따로 구비하여, 요청을 수신하는 객체는 요청 수신 시에만 실행 한 후, 요청을 실행하는 객체에 전달하고 종료함으로써, 단일 실행만을 지원하는 운영 체제에서도 다수의 어플리케이션을 실행시킬 수 있다. The present invention relates to an application execution device, a method thereof, and a computer-readable recording medium on which the method is recorded. Even if an operating system does not support multiple execution or multiple instances of an object regardless of an operating system, The object receiving the request and the object executing the request may be separately provided so that the object receiving the request is executed only at the time of receiving the request and then forwarding to the executing object and terminating the request so that the operating system A plurality of applications can be executed.

Description

어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체{Apparatus for executing application, method thereof and computer recordable medium storing the method}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to an apparatus for executing an application, a method thereof, and a computer-readable recording medium on which the method is recorded.

본 발명은 단말의 어플리케이션 실행 기술에 관한 것으로, 더욱 상세하게는, 단말에 이식된 운영 체제의 종류에 무관하게 여러 개의 어플리케이션을 동시에 실행시킬 수 있는 실행 환경을 제공하는 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것이다. The present invention relates to an application execution technology of a terminal, and more particularly, to an application execution apparatus that provides an execution environment capable of simultaneously executing a plurality of applications regardless of the type of an operating system implanted in the terminal, The present invention relates to a computer-readable recording medium on which a method is recorded.

운영 체제(Operating System)는 그 자신이 이식(porting)된 단말의 자원(resource) 및 기능 등을 관리하며, 그 단말에 이식된 어플리케이션(Application)이 요청하는 경우, 단말의 자원 및 기능의 일부 또는 전부의 접근을 어플리케이션에 허여할 수 있다. 이는 운영 체제가 어플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)를 제공함으로써 이루어진다. 바꿔 말하면, 어플리케이션은 운영 체제가 제공하는 API를 참조하여 장치의 자원 및 기능에 접근한다. 따라서 개발자들은 특정 운영 체제가 이식된 장치의 어플리케이션을 개발하기 위해서는 운영 체제가 제공하는 API의 형식에 따라 개발하여야 한다. An operating system manages resources and functions of a terminal that is itself ported and when an application implanted in the terminal requests an application, a part of resources and functions of the terminal, All access can be granted to the application. This is accomplished by the operating system providing an application programming interface (API). In other words, the application refers to the API provided by the operating system to access the resources and functions of the device. Developers must therefore develop their applications in accordance with the format of the API provided by the operating system in order to develop applications for the device on which the particular operating system is being ported.

근래에는 다양한 기능들이 단말에 추가로 구현되고 있으며, 이에 따라, 추가로 구현되는 기능들을 제공하는 다양한 형태의 주변 장치들이 단말에 추가되고 있다. 이러한 주변 장치들의 기능은 운영 체제가 관리한다. 따라서 개발자들이 이러한 주변 장치들을 이용할 수 있는 어플리케이션을 개발하기 위해서 운영 체제가 관리하는 주변 장치들에 기능에 접근하기 위한 API들이 추가로 요구되고 있다. 더욱이, 근래의 단말은 다양한 종류의 운영 체제가 이식되고 있다. 운영 체제가 다른 단말에서는 어플리케이션이 실행되지 않으므로, 단말의 어플리케이션 개발자들은 동일한 어플리케이션을 각 운영 체제의 API에 따라 따로 제작해야 하는 문제가 있다. Various functions have been recently implemented in the terminal, and various types of peripheral devices providing additional implemented functions are added to the terminal. The functions of these peripheral devices are managed by the operating system. Therefore, APIs are required to access functions of peripheral devices managed by the operating system in order to develop an application in which developers can utilize such peripheral devices. Moreover, various types of operating systems are being ported in recent terminals. Since the application is not executed in the terminal having the different operating system, the application developer of the terminal has to issue the same application separately according to the API of each operating system.

특히, 운영 체제 중, 그 운영 체제 자체의 성능 또는 그 운영 체제가 이식된 장치의 성능 등의 문제로 인해, 하나의 객체(Object)에 대해서는 하나의 실행(인스턴스)만을 허용하는 것이 있다. 이러한 경우, 동일한 객체에 대해서 복수의 실행을 할 수 없으므로, 어플리케이션을 개발하는 개발자 입장에서는 그 개발에 불편함이 있으며, 이를 사용하는 사용자 입장에서도 어느 하나의 어플리케이션을 실행하다가 다른 어플리케이션을 사용하기 위해서는 하나의 어플리케이션을 종료해야 하는 번거로움이 있다. In particular, only one instance (instance) is allowed for an object due to problems such as the performance of the operating system itself or the performance of the device to which the operating system is implanted. In this case, since a plurality of executions of the same object can not be performed, the development of the application is inconvenient for a developer developing the application. In order to use another application while executing one application, It is troublesome to terminate the application.

따라서 본 발명의 목적은 운영 체제에 무관하게, 즉, 운영 체제가 하나의 객체에 대해 하나의 실행만을 지원하는 경우라도, 복수의 어플리케이션을 실행시킬 수 있는 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체를 제공함에 있다. Therefore, an object of the present invention is to provide an application execution device capable of executing a plurality of applications regardless of an operating system, that is, even if the operating system supports only one execution for one object, And a computer readable recording medium.

상술한 바와 같은 목적을 달성하기 위한 본 발명에 따른 어플리케이션 실행 장치는, 어플리케이션을 실행시키기 위한 실행 명령 수신을 위한 커맨드 핸들러를 가지며, 상기 실행 명령을 수신하여 어플리케이션을 실행시키는 런타임 매니저; 및 운영 체제로부터 어플리케이션 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 실행 중이 아닌 경우, 상기 런타임 매니저를 실행 시킨 후, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 더미 컨테이너 실행부;를 포함한다. According to an aspect of the present invention, there is provided an application execution apparatus including: a run-time manager having a command handler for receiving an execution command for executing an application; And a runtime manager for executing the runtime manager if the runtime manager is not running, and for executing an execution parameter, which is information for executing the application, in the command handler And a dummy container execution unit that transmits the execution command including the execution command and terminates the execution of itself.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 더미 컨테이너 실행부는 어플리케이션 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 이미 실행 중인 경우, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 것을 특징으로 한다. In the application execution apparatus of the present invention, when receiving the application execution request, the dummy container execution unit checks whether the run time manager is executing, and when the run time manager is already executing, And transmits the execution command including the argument, and terminates execution of itself.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 런타임 매니저는 어플리케이션을 실행시키는 컨텍스트 매니저를 더 포함하며, 상기 커맨드 핸들러는 상기 컨텍스트 매니저에 상기 실행 인자를 포함하는 상기 실행 명령을 전달하는 것을 특징으로 한다. In the application execution apparatus of the present invention, the run-time manager may further include a context manager for executing an application, and the command handler transmits the execution command including the execution parameter to the context manager.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 어플리케이션 실행 장치는 상기 어플리케이션을 랜더링하는 브라우저 엔진을 더 포함하는 것을 특징으로 한다. In the application execution device of the present invention, the application execution device may further include a browser engine rendering the application.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 컨텍스트 매니저는 상기 실행 명령에 따라 상기 어플리케이션을 실행시키고, 실행된 어플리케이션을 랜더링 하도록 상기 브라우저 엔진을 호출하는 것을 특징으로 한다. In the application execution apparatus of the present invention, the context manager executes the application according to the execution command, and calls the browser engine to render the executed application.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 컨텍스트 매니저는 상기 어플리케이션의 윈도우를 생성하며, 상기 브라우저 엔진은 상기 어플리케이션의 랜더링된 결과를 상기 윈도우에 표시하는 것을 특징으로 한다. In the application execution apparatus of the present invention, the context manager creates a window of the application, and the browser engine displays the rendered result of the application on the window.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 브라우저 엔진은 상기 어플리케이션의 마크 업 랭귀지와 스타일 시트를 랜더링하기 위한 엔진 코어 및 상기 어플리케이션의 스크립트 언어를 처리하기 위한 인터프리터인 스크립트 엔진을 포함하는 것을 특징으로 한다.In the application execution device of the present invention, the browser engine includes an engine core for rendering a markup language and a style sheet of the application, and a script engine as an interpreter for processing the script language of the application.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 어플리케이션 실행 후, 실행된 어플리케이션으로부터 운영 체제의 종류에 무관하게 상기 운영 체제가 관장하는 기능 실행의 요청을 수신하여, 수신된 기능 실행의 요청을 전달하는 브라우저 엔진 계층부; 및 상기 기능 실행 요청을 상기 운영 체제의 종류에 맞게 변경하여 상기 기능 실행 요청에 해당하는 기능을 실행하도록 지시하는 이식 계층부;를 더 포함한다. The application execution apparatus of the present invention is characterized by comprising: a browser engine for receiving a request for executing a function supervised by the operating system from an executed application, regardless of the type of the operating system, A layer portion; And an implantation layer unit for instructing execution of a function corresponding to the function execution request by changing the function execution request according to the type of the operating system.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 이식 계층부는 적어도 하나의 인터페이스 모듈을 포함하며, 상기 인터페이스 모듈 각각은 상기 기능 실행의 종류에 따른 인터페이스를 가지는 것을 특징으로 한다. In the application execution apparatus of the present invention, the transplantation layer unit includes at least one interface module, and each of the interface modules has an interface according to the type of the function execution.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 인터페이스는 상기 해당하는 기능을 실행하도록 지시하기 위해 상기 운영 체제의 종류에 맞춰 구현됨과 동시에 상기 컨테이너 커먼 모듈로부터 요청을 수신하기 위해 상기 컨테이너 커먼 모듈과 상호간에 맞춰 구현되는 것을 특징으로 한다. In the application execution device of the present invention, the interface is implemented in accordance with the type of the operating system for instructing execution of the corresponding function, and simultaneously with the container common module to receive a request from the container common module .

본 발명의 어플리케이션 실행 장치에 있어서, 상기 인터페이스 모듈은, HTTP 및 HTTPS 관련 기능을 제공하는 HTTP 모듈; XML 파서 기능 및 XSLT 변환 기능을 제공하는 XML 모듈; 스레드 기능을 제공하는 스레드 모듈; 사용자 인터페이스를 이식하기 위해 필요한 상기 운영 체제 자체의 윈도우 시스템 기능을 제공하는 UI 백엔드 모듈; 보안 스토리지에 접근할 수 있는 기능을 제공하는 보안 스토리지 모듈; 스토리지에 접근할 수 있는 기능을 제공하는 로컬 스토리지 모듈; 단말의 자원에 관련된 기능을 제공하는 리소스 매니저; OS API와 관련된 기능을 제공하는 OS API 매니저; 타 어플리케이션과의 연동을 위한 기능을 제공하는 공통 작업 매니저; 및 타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능을 제공하는 싱크 매니저 중 적어도 하나를 포함한다. In the application execution device of the present invention, the interface module may include: an HTTP module for providing functions related to HTTP and HTTPS; An XML module providing an XML parser function and an XSLT transformation function; A thread module providing a thread function; A UI backend module that provides the operating system's own window system functionality needed to port the user interface; A secure storage module that provides access to secure storage; A local storage module that provides access to storage; A resource manager for providing functions related to resources of the terminal; An OS API manager that provides functions related to the OS API; A common task manager for providing a function for interworking with other applications; And a sink manager that provides functions related to data synchronization with other devices and interworking with other devices.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 브라우저 엔진 계층부는 상기 기능 실행의 종류에 대응하여 상기 요청을 상기 이식 계층부에 전달하는 적어도 하나의 플러그 인; 상기 기능 실행의 종류에 따라 대응하는 상기 플러그 인을 호출하는 플러그 인 매니저; 및 상기 플러그 인이 호출되면 상기 기능 실행의 요청을 전달하도록 상기 플러그 인에 지시하는 브라우저 엔진;을 포함한다. In the application execution apparatus of the present invention, the browser engine layer unit may include at least one plug-in for delivering the request to the transplantation layer unit corresponding to the type of the function execution; A plug-in manager that calls the plug-in corresponding to the type of the function execution; And a browser engine for instructing the plug-in to transmit a request for executing the function when the plug-in is called.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 플러그 인은 단말 자원에 관련된 기능의 실행 요청을 상기 이식 계층에 전달하는 리소스 플러그 인; OS API 관련 기능의 실행 요청을 상기 이식 계층에 전달하는 시스템 API 플러그 인; 타 어플리케이션과 연동을 위한 기능의 실행 요청을 상기 이식 계층에 전달하는 공통 작업 플러그 인; 및 타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능의 실행 요청을 상기 이식 계층에 전달하는 싱크 플러그 인; 중 적어도 하나를 포함한다. In the application execution apparatus of the present invention, the plug-in may include: a resource plug-in which transmits an execution request of a function related to terminal resources to the transplantation layer; A system API plug-in for transferring an execution request of an OS API-related function to the above-mentioned porting layer; A common task plug-in for transmitting an execution request of a function for interworking with another application to the transplantation layer; A sink plug for transmitting an execution request of a function related to data synchronization with another device and data synchronization with another device to the transplantation layer; Or the like.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 어플리케이션 실행 장치는, 보안 계층부를 더 포함하며, 상기 보안 계층부는 상기 어플리케이션 및 상기 플러그 인에 대해 설치 및 실행 시 인증을 수행하는 인증 매니저; 및 상기 브라우저 엔진 계층부의 상기 이식 계층부에 대한 접근 범위 및 접근 권한을 관리하는 정책 매니저;를 포함한다. In the application execution apparatus of the present invention, the application execution apparatus may further include a security layer unit, wherein the security layer unit includes: an authentication manager for performing authentication upon installation and execution of the application and the plug-in; And a policy manager for managing access ranges and access rights to the port layer of the browser engine layer unit.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 운영 체제의 기능 실행에 의해 관리되는 적어도 하나의 주변 장치;를 더 포함한다. The application execution device of the present invention further includes at least one peripheral device managed by the execution of the function of the operating system.

본 발명의 어플리케이션 실행 장치에 있어서, 상기 기능 실행은 상기 운영 체제 자체 기능 실행, 상기 운영 체제 자체 기능 실행에 따른 자원의 사용, 상기 주변 장치의 개별 기능의 실행, 및 상기 주변 장치의 개별 기능의 실행에 따른 자원의 사용 중 적어도 하나를 포함한다. In the application execution apparatus of the present invention, the execution of the functions may include executing the functions of the operating system itself, using the resources in accordance with execution of the operating system's own functions, executing individual functions of the peripheral devices, And / or the use of resources according to < / RTI >

본 발명의 어플리케이션 실행 장치에 있어서, 상기 주변 장치는, 무선 통신을 수행하기 위한 무선 통신부; GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하기 위한 GPS부; 사용자의 입력을 받기 위한 입력부; 단말의 사용에 따라 발생하는 화면 데이터를 표시하기 위한 표시부; 음성 신호를 입력 받고 출력 받기 위한 마이크 및 스피커 등을 구비하는 오디오 처리부; 및 카메라 기능을 수행하기 위한 카메라부; 중 적어도 하나를 포함한다. In the application execution device of the present invention, the peripheral device may include: a wireless communication unit for performing wireless communication; A GPS unit for receiving GPS signals from GPS (Global Positioning System) satellites; An input unit for receiving a user input; A display unit for displaying screen data generated according to use of the terminal; An audio processor having a microphone and a speaker for receiving and outputting a voice signal; A camera unit for performing a camera function; Or the like.

상술한 바와 같은 목적을 달성하기 위한 본 발명에 따른 어플리케이션 실행 방법은, 더미 컨테이너 실행부가 운영 체제로부터 어플리케이션 실행 요청에 따라 자기 자신의 실행을 시작하는 단계; 상기 더미 컨테이너 실행부가 어플리케이션을 실행시키기 위한 실행 명령을 수신하는 커맨드 핸들러를 포함하는 런타임 매니저의 실행 여부를 확인하는 단계; 상기 확인 결과, 상기 런타임 매니저가 실행 중이 아니면, 상기 런타임 매니저를 실행시키는 단계; 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 실행 명령을 전송하는 단계; 및 상기 더미 컨테이너 실행부가 자기 자신의 실행을 종료하는 종료 단계;를 포함한다. According to another aspect of the present invention, there is provided a method for executing an application, the method comprising: starting execution of the application in response to an application execution request from an operating system; Checking whether a runtime manager including a command handler for receiving an execution command for executing the application is executed; Executing the runtime manager if the runtime manager is not running; Transmitting an execution command including an execution parameter, which is information for executing an application, to the command handler; And a termination step of the dummy-container execution unit terminating its execution.

본 발명의 어플리케이션 실행 방법에 있어서, 상기 확인하는 단계 후, 상기 확인 결과, 상기 런타임 매니저가 이미 실행 중이면, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 실행 명령을 전송하는 단계; 및 상기 더미 컨테이너 실행부가 자기 자신의 실행을 종료하는 단계;를 더 포함한다. In the method of executing an application of the present invention, when the execution manager is already executing the execution of the command, transmitting an execution command including an execution parameter, which is information for executing the application, to the command handler, And the dummy container execution unit terminating execution of itself.

본 발명의 어플리케이션 실행 방법에 있어서, 상기 전송하는 단계 후, 상기 커맨드 핸들러가 상기 컨텍스트 매니저에 상기 실행 인자를 가지는 상기 실행 명령을 전달하는 단계; 및 상기 컨텍스트 매니저가 상기 실행 명령에 따라 어플리케이션을 실행 시키는 단계;를 더 포함한다. In the method of executing an application of the present invention, after the step of transferring, the command handler transfers the execution command having the execution parameter to the context manager; And causing the context manager to execute the application according to the execution command.

본 발명의 어플리케이션 실행 방법에 있어서, 상기 실행 인자는 상기 어플리케이션을 다른 어플리케이션과 구분할 수 있는 식별자 및 상기 어플리케이션을 이루는 복수의 페이지의 주소 중 어느 일 페이지의 주소 중 적어도 하나를 포함하는 것을 특징으로 한다. In the method of executing an application of the present invention, the execution factor may include at least one of an identifier of an application that can distinguish the application from another application, and an address of a page of an address of a plurality of pages constituting the application.

본 발명의 어플리케이션 실행 방법에 있어서, 상기 어플리케이션을 실행시키는 단계는 상기 컨텍스트 매니저가 상기 실행 인자로 상기 일 페이지의 주소를 수신하면, 상기 일 페이지의 주소를 상기 어플리케이션의 시작 페이지로 설정하여 실행시키는 것을 특징으로 한다. In the application execution method of the present invention, the execution of the application may include setting the address of the one page to the start page of the application and executing the address when the context manager receives the address of the page as the execution factor .

본 발명의 어플리케이션 실행 방법에 있어서, 상기 어플리케이션을 실행시키는 단계는 상기 컨텍스트 매니저가 상기 실행 인자로 식별자를 수신하면, 해당하는 식별자를 가지는 어플리케이션의 디폴트 페이지를 시작 주소로 하여 실행시키는 것을 특징으로 한다. In the application execution method of the present invention, the execution of the application may be executed when the context manager receives the identifier as the execution argument, using the default page of the application having the corresponding identifier as the start address.

본 발명의 어플리케이션 실행 방법에 있어서, 상기 어플리케이션을 실행시키는 단계 후, 상기 컨텍스트 매니저가 브라우저 엔진을 호출하여 상기 어플리케이션을 랜더링하는 단계;를 더 포함하는 것을 특징으로 한다. In the method of executing an application of the present invention, the context manager may call a browser engine to render the application after executing the application.

그리고 본 발명의 어플리케이션 실행 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공한다. And a computer-readable recording medium on which an application execution method of the present invention is recorded.

상술한 바와 같은 본 발명에 따르면, 더미 컨테이너 실행부가 어플리케이션 실행 요청을 수신하면, 어플리케이션을 실행시키는 런타임 매니저에 어플리케이션 실행 명령을 전달하고, 자기 자신의 실행을 종료하여, 다른 어플리케이션 실행 요청에 대비함으로써, 운영 체제가 다중 실행 또는 다중 인스턴스를 지원하지 않는 경우에도 어플리케이션의 다중 실행을 제공할 수 있다. 이에 따라, 사용자들의 단말 사용의 편의를 제공할 수 있다. According to the present invention as described above, when the dummy container execution unit receives the application execution request, the dummy container execution unit transmits the application execution command to the runtime manager that executes the application, terminates its own execution, Multiple runs of an application can be provided even if the operating system does not support multiple runs or multiple instances. Accordingly, it is possible to provide convenience for users to use the terminal.

도 1은 본 발명의 실시예에 따른 어플리케이션 실행 장치의 구성을 설명하기 위한 도면.
도 2는 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼의 구조를 설명하기 위한 도면.
도 3은 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 컨테이너 실행부의 세부 구성을 설명하기 위한 도면.
도 4는 본 발명의 실시예에 따른 플랫폼에서 어플리케이션 런타임 계층부를 설명하기 위한 도면.
도 5는 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 계층부를 설명하기 위한 도면.
도 6은 본 발명의 실시예에 따른 플랫폼에서 보안 계층부의 세부 구성을 설명하기 위한 도면.
도 7은 본 발명의 실시예에 따른 플랫폼에서 이식 계층부를 설명하기 위한 도면.
도 8은 본 발명의 실시예에 따른 플랫폼에서 시스템 어플리케이션을 설명하기 위한 도면.
도 9는 본 발명의 실시예에 따른 더미 컨테이너 실행부의 어플리케이션 실행 방법을 설명하기 위한 도면.
도 10은 본 발명의 실시예에 따른 어떤 어플리케이션도 실행되고 있지 않은 상태에서 어플리케이션을 실행시키는 방법을 설명하기 위한 도면.
도 11은 본 발명의 실시예에 따른 어플리케이션이 실행되어 있는 상태에서 다른 어플리케이션을 실행시키는 방법을 설명하기 위한 도면.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram for explaining a configuration of an application execution device according to an embodiment of the present invention; Fig.
2 is a diagram illustrating a structure of a platform in an application execution apparatus according to an embodiment of the present invention;
3 is a diagram for explaining a detailed configuration of a browser engine container execution unit in a platform according to an embodiment of the present invention;
4 illustrates an application runtime layer in a platform according to an embodiment of the present invention;
5 illustrates a browser engine layer in a platform according to an embodiment of the present invention.
6 is a diagram illustrating a detailed configuration of a security layer in a platform according to an embodiment of the present invention;
7 is a diagram for explaining an implantation layer in a platform according to an embodiment of the present invention;
8 illustrates a system application in a platform according to an embodiment of the present invention.
9 is a diagram for explaining a method of executing an application of a dummy container execution unit according to an embodiment of the present invention;
10 is a diagram for explaining a method of executing an application in a state in which no application is executed according to an embodiment of the present invention;
11 is a view for explaining a method of executing another application in a state where an application according to an embodiment of the present invention is executed;

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It is to be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.The terms and words used in the present specification and claims should not be construed as limited to ordinary or dictionary meanings and the inventor is not limited to the meaning of the terms in order to describe his invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible.

먼저, 본 발명의 실시예에 따른 어플리케이션 실행 장치의 구성에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 어플리케이션 실행 장치의 구성을 설명하기 위한 도면이다. First, the configuration of an application execution apparatus according to an embodiment of the present invention will be described. 1 is a diagram for explaining a configuration of an application execution apparatus according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 어플리케이션 실행 장치는 제어부(11), 저장부(12) 및 주변 장치(13)를 포함한다. Referring to FIG. 1, an application execution apparatus according to an embodiment of the present invention includes a control unit 11, a storage unit 12, and a peripheral device 13.

저장부(12)는 데이터를 저장하기 위한 장치로, 주 기억 장치 및 보조 기억 장치를 포함한다. 저장부(12)는 운영 체제(10), 플랫폼(20) 및 어플리케이션(30)을 저장하며, 단말의 기능 실행에 따라 발생하는 각종 데이터 들을 저장한다. The storage unit 12 is an apparatus for storing data, and includes a main storage device and an auxiliary storage device. The storage unit 12 stores the operating system 10, the platform 20, and the application 30, and stores various data generated according to the function of the terminal.

제어부(11)는 운영 체제(10), 플랫폼(20) 및 어플리케이션(30)을 실제로 구동시키는 프로세스 장치이다. 예컨대, 제어부(11)는 중앙처리장치(CPU, Central Processing Unit)가 될 수 있다. 제어부(11)는 단말의 전원이 켜지면, 운영 체제(10)를 보조 기억 장치로부터 주 기억 장치로 이동시킨 후, 운영 체제(10)를 구동하는 부팅(booting)을 수행한다. 또한, 제어부(11)는 사용자의 조작에 따른 어플리케이션(30)의 실행 요청이 있는 경우, 계층 구조상 운영 체제(10) 상위에서 플랫폼(20)을 실행시키고, 플랫폼(20)은 그 상위에서 어플리케이션(30)을 실행시킨다. 이와 같이, 제어부(11)는 플랫폼(20)을 저장부(12)로부터 불러 와서 실행시키지만, 플랫폼(20)은 제어부(11) 내에 하나의 모듈로 구성될 수 있다. 이하로는, 본 발명의 실시예에 따른 플랫폼(20)을 제어부(11)의 구성으로 설명할 것이다. The control unit 11 is a processing device that actually drives the operating system 10, the platform 20, and the application 30. For example, the control unit 11 may be a central processing unit (CPU). When the terminal is powered on, the control unit 11 moves the operating system 10 from the auxiliary storage device to the main storage device, and then performs booting to drive the operating system 10. The control unit 11 executes the platform 20 at the top of the operating system 10 in a hierarchical structure when there is an execution request of the application 30 according to the user's operation and the platform 20 executes the application 20 30). As described above, the control unit 11 loads the platform 20 from the storage unit 12 and executes the platform 20. However, the platform 20 may be configured as one module in the control unit 11. [ Hereinafter, the platform 20 according to the embodiment of the present invention will be described with the configuration of the control unit 11. [

제어부(11)는 운영 체제(10)의 요청에 따라 주변 장치(13)를 제어한다. 즉, 운영 체제(10)는 제어부(11)를 통해 단말의 기능 실행을 관장한다. 여기서, 단말의 기능을 실행하는 것은 주변 장치(13)의 개별 기능 및 이 개별 기능 실행에 따른 자원(resource)의 사용을 포함하며, 운영 체제(10)의 자체 기능 실행과, 운영 체제(10)의 자체 기능 실행에 따른 자원의 사용을 더 포함한다. The control unit 11 controls the peripheral device 13 at the request of the operating system 10. That is, the operating system 10 controls the execution of functions of the terminal through the control unit 11. The execution of the functions of the terminal here includes the individual functions of the peripheral device 13 and the use of resources according to the execution of the individual functions and is performed by the operating system 10, Lt; RTI ID = 0.0 > function < / RTI >

기본적으로, 운영 체제(10)는 어플리케이션(30)의 실행 중 상술한 단말 기능의 실행을 요청하면, 운영 체제(10)는 어플리케이션(30)에 인터페이스를 제공하며, 어플리케이션(30)은 제공된 인터페이스를 통해 단말 기능의 실행을 운영 체제(10)에 요청한다. 이러한 인터페이스는 어플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)가 될 수 있다. 이 인터페이스는 라이브러리 형태로 구현되며, 운영 체제(10) 별로 라이브러리는 고유한 형식으로 구현된다. 따라서 운영 체제(10)는 그 운영 체제(10)의 종류에 따라 동일한 기능을 제공하는 인터페이스의 형식이 다르다. 이와 같이, 어플리케이션(30)이 운영 체제(10)를 직접 참조하여 실행되는 경우, 어플리케이션(30)은 운영 체제(10)의 종류에 따라 다르게 구현되어야 한다. Basically, when the operating system 10 requests execution of the terminal functions described above during execution of the application 30, the operating system 10 provides an interface to the application 30, and the application 30 sends the provided interface And requests the operating system 10 to execute the terminal function. Such an interface may be an application programming interface (API). This interface is implemented in the form of a library, and the library is implemented in a unique format for each operating system 10. Therefore, depending on the type of the operating system 10, the operating system 10 has a different type of interface that provides the same function. In this way, when the application 30 is executed by directly referring to the operating system 10, the application 30 must be implemented differently according to the type of the operating system 10.

한편, 플랫폼(20)은 운영 체제(10)가 제공하는 단말 기능 실행을 위한 인터페이스를 어플리케이션(30)이 이용할 수 있도록 제공하되, 어플리케이션(30) 입장에서는 운영 체제(10)의 종류에 무관하게 제공한다. 즉, 운영 체제(10)는 단말 의 기능 실행을 위한 인터페이스를 그 운영 체제(10)의 종류에 따라 다른 형식을 가지는 인터페이스로 제공하지만, 플랫폼(20)은 서로 다른 형식을 가지는 인터페이스를 하나의 형식으로 변환시켜 어플리케이션(30)에 제공한다. 바꿔 말하면, 어플리케이션(30)이 하나의 형식을 가지는 인터페이스를 통해 단말 기능 실행을 요청하면, 플랫폼(20)은 그 요청을 각 운영 체제(10)가 제공하는 인터페이스의 형식에 맞게 변환하여 운영 체제(10)에 전달하고, 운영 체제(10)는 이를 수행한다. 이에 따라, 어플리케이션(30)은 플랫폼(20)이 제공하는 인터페이스를 통해 운영 체제(10)의 종류에 무관하게 동일한 방법으로 단말의 자원 또는 기능에 접근하여 이를 제어할 수 있다. 이러한 본 발명의 실시예에 따르면, 개발자들은 동일한 어플리케이션(30)을 운영 체제(10)별로 따로 제작해야 하는 노력을 덜 수 있다. 또한, 사용자들은 어떠한 운영 체제(10)에서도 동일한 사용자 경험을 가지는 어플리케이션(30)을 사용할 수 있다. The platform 20 provides an interface for executing the terminal function provided by the operating system 10 to be used by the application 30 and provides the interface 30 regardless of the type of the operating system 10 do. That is, although the operating system 10 provides the interface for executing the function of the terminal as an interface having a different format according to the type of the operating system 10, the platform 20 can use interfaces having different formats in one format And provides it to the application 30. In other words, when the application 30 requests execution of a terminal function through an interface having a single format, the platform 20 converts the request according to the format of the interface provided by each operating system 10, 10, and the operating system 10 performs this. Accordingly, the application 30 can access and control the resource or function of the terminal through the interface provided by the platform 20 in the same manner regardless of the type of the operating system 10. According to the embodiment of the present invention, the developers can reduce the effort of separately preparing the same application 30 for each operating system 10. In addition, users can use the application 30 with the same user experience in any operating system 10.

한편, 본 발명의 실시예에서 어플리케이션(30)은 웹 어플리케이션을 예로 들어 설명하며, 이는 브라우저(browser)에서 동작하는 어플리케이션이다. 이러한 웹 어플리케이션은 웹 표준 언어로 작성된다. 웹 표준 언어는 HTML(Hyper Text Markup Language), CSS(Cascading Style sheet), JavaScript 등을 예시할 수 있다. 하지만, 본 발명의 실시예를 웹 어플리케이션에 한정하는 것은 아니며, 단말에서 구동 가능한 어떠한 어플리케이션이라도 본 발명의 균등 범위에서 실시 가능함은 당연하다. Meanwhile, in the embodiment of the present invention, the application 30 describes a web application as an example, and it is an application operating in a browser. These web applications are written in the web standard language. The web standard language can be exemplified by HTML (Hyper Text Markup Language), CSS (Cascading Style Sheet), JavaScript, and the like. However, the embodiment of the present invention is not limited to the web application, and it is natural that any application that can be driven by the terminal can be implemented in the equivalent range of the present invention.

본 발명의 실시예에 따르면, 플랫폼(20)이 운영 체제(10)의 종류에 무관하게 어플리케이션을 실행시키기 위해서, 계층 구조 상 어플리케이션의 하위에서 어플리케이션을 실행시켜야 한다. 하지만, 운영 체제(10) 중 동일한 객체(Object)의 다중 실행(인스턴스, instance)를 지원하지 않는 것이 있다. 이러한 환경에서 플랫폼(20)이 하나의 어플리케이션(30)을 실행시킨 후, 다른 어플리케이션(30)을 실행시키기 위해서는 그 실행을 중복으로 해야 하지만, 운영 체제(10)가 지원하지 않으므로, 복수의 어플리케이션(30)을 실행 시킬 수 없다. 따라서 본 발명의 실시예에 따르면, 플랫폼(20)은 어플리케이션(30) 실행 요청을 수신하는 객체와 실제 어플리케이션(30)을 실행 시키는 객체를 따로 구비한다. 어플리케이션(30) 실행 요청을 수신하는 객체는 운영 체제(10)로부터 어플리케이션(30) 실행 요청이 있는 경우, 그 실행 요청을 수신하고, 이를 플랫폼(20)의 어플리케이션(30)을 실행 시키는 객체에 전달한 후, 자기 자신의 실행을 종료한다. 이와 같이, 실행 요청을 수신하는 객체가 그 실행을 종료함으로 인해, 운영 체제(10)로부터 어플리케이션 실행 요청이 있을 때마다, 새로 실행하여 그 요청을 수신할 수 있다. 또한, 어플리케이션(30)을 실행시키는 객체는 실행 요청을 수신하는 객체로부터 어플리케이션 실행 요청을 수신함으로써, 운영 체제(10)의 지원 여부에 무관하게, 복수의 어플리케이션(30)을 실행시킬 수 있다. According to the embodiment of the present invention, in order for the platform 20 to execute the application regardless of the type of the operating system 10, the application must be executed under the application hierarchically. However, there is a case in which multiple executions (instances) of the same object (Object) among the operating system 10 are not supported. In this environment, in order for the platform 20 to execute one application 30 and then execute another application 30, the execution thereof must be duplicated. However, since the operating system 10 does not support it, 30) can not be executed. Therefore, according to the embodiment of the present invention, the platform 20 separately includes an object for receiving the request to execute the application 30 and an object for executing the actual application 30. The object receiving the application execution request from the application 30 receives the execution request when there is a request to execute the application 30 from the operating system 10 and transmits the execution request to the object executing the application 30 of the platform 20 After that, it ends its own execution. In this way, the object receiving the execution request terminates its execution, so that whenever an application execution request is received from the operating system 10, the object can be newly executed and receive the request. The object executing the application 30 can execute a plurality of applications 30 regardless of whether the operating system 10 is supported or not by receiving an application execution request from the object receiving the execution request.

주변 장치(13)는 각각 고유의 기능을 가지며, 운영 체제(10)가 제어부(11)를 통해 그 실행을 제어할 수 있다. 이러한 주변 장치(13)는 각종 키들을 구비하여 사용자의 입력을 수신하는 입력부(14), 단말의 기능 실행에 따라 발생하는 화면 데이터를 표시하기 위한 표시부(15), 무선 통신 기능을 수행하기 위한 무선 통신부(16), GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하기 위한 GPS부(17), 음성 신호를 입력 받고 출력하기 위한 마이크 및 스피커 등을 구비하는 오디오 처리부(18), 및 카메라 기능을 수행하기 위한 카메라부(19)를 포함한다. 또한 도시되진 않았으나, 본 발명의 실시예에 따른 단말의 주변 장치(13)로, 메모리 카드와 같은 외부 저장 매체를 삽입하여 데이터 저장을 가능토록 하는 저장매체 삽입부, 외부 타 장치와의 데이터 교환을 위한 연결 단자, 충전용 단자를 구비할 수 있다. 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 주변 장치(13)와 동등한 수준의 장치들이 본 발명의 실시예에 따른 단말에 추가로 더 포함되어 구성될 수 있다는 것은 본 기술 분야의 통상의 지식을 가진 자라면 쉽게 이해할 수 있을 것이다. Each of the peripheral devices 13 has a unique function and the operating system 10 can control its execution through the control unit 11. [ The peripheral device 13 includes an input unit 14 having various keys for receiving a user's input, a display unit 15 for displaying screen data generated according to the execution of functions of the terminal, a wireless unit An audio processing unit 18 having a communication unit 16, a GPS unit 17 for receiving a GPS signal from a GPS (Global Positioning System) satellite, a microphone and a speaker for inputting and outputting a voice signal, And a camera unit 19 for carrying out the present invention. Although not shown, a peripheral device 13 of a terminal according to an embodiment of the present invention may include a storage medium inserting unit for inserting an external storage medium such as a memory card to store data, And a charging terminal. Although the variations of the portable devices vary greatly depending on the convergence trend of the digital devices, it is not possible to enumerate all of them, but it is also possible that devices equivalent to the above-mentioned peripheral device 13 are added to the terminal according to the embodiment of the present invention It will be understood by those skilled in the art that various changes and modifications may be made without departing from the scope of the present invention.

운영 체제(10)는 상술한 주변 장치(13)의 기능 실행을 제어부(11)를 통해 관리한다. 이는 운영 체제(10)의 실행 명령을 제어부(11)가 해석하여, 제어부(11)가 주변 장치(13)를 동작시킴으로써 이루어진다. 또한, 어플리케이션(30)은 이러한 단말의 기능 실행을 플랫폼(20)이 제공하는 인터페이스를 통해 요청하면, 플랫폼(20)의 기능 실행 요청을 운영 체제(10)에 전달하고, 이러한 기능 실행을 전달 받은 운영 체제(10)는 제어부(11)를 통해 주변 장치(13)의 기능을 실행하도록 한다. The operating system 10 manages the above-described function execution of the peripheral device 13 through the control unit 11. [ This is accomplished by the control unit 11 interpreting the execution command of the operating system 10 and the control unit 11 operating the peripheral device 13. [ When the application 30 requests the function execution of the terminal 20 through the interface provided by the platform 20, the application 30 transmits a function execution request of the platform 20 to the operating system 10, The operating system 10 causes the control unit 11 to execute the function of the peripheral device 13. [

다음으로, 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼(20)에 대해서 보다 상세히 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼의 구조를 설명하기 위한 도면이다. Next, the platform 20 in the application execution apparatus according to the embodiment of the present invention will be described in more detail. 2 is a diagram for explaining the structure of a platform in an application execution apparatus according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예에 따른 플랫폼(20)은 브라우저 엔진 컨테이너 코어(Browser Engine Container Core, 21: 이하, "컨테이너 코어"로 축약함)와 브라우저 엔진 컨테이너 실행(Browser Engine Container Executor)부(200: 이하, "컨테이너 실행부"로 축약함)를 포함한다. 또한, 플랫폼(20)은 시스템 어플리케이션(40)을 더 포함한다. 2, a platform 20 according to an embodiment of the present invention includes a browser engine container core 21 (abbreviated as "container core") and a browser engine container executor ) Unit 200 (abbreviated as "container execution unit" hereinafter). In addition, the platform 20 further includes a system application 40.

컨테이너 실행부(200) 및 이의 세부 구성들은 앞서 설명한 바와 같은 어플리케이션 실행 요청을 수신하는 객체가 될 수 있다. 또한, 컨테이너 코어(21) 및 이의 각 세부 구성들은 앞서 설명한 바와 같은 어플리케이션을 실제 실행시키는 객체가 될 수 있다. 따라서, 컨테이너 실행부(200) 및 이의 세부 구성들은 실행 된 후, 자신의 기능을 수행하고, 바로 자기 자신의 실행을 종료하는 동작 특성을 갖는다. 이에 따라, 컨테이너 코어(21)가 다수의 어플리케이션을 실행시킬 수 있도록 한다. The container execution unit 200 and its detailed configurations may be objects receiving an application execution request as described above. Further, the container core 21 and its detailed configurations may be objects that actually execute the application as described above. Therefore, the container executing unit 200 and its detailed configurations have the operating characteristics of executing their functions after they are executed, and ending their own execution immediately. This allows the container core 21 to execute a plurality of applications.

컨테이너 코어(21)는 어플리케이션 런타임(Application Runtime) 계층부(300), 브라우저 엔진(Browser Engine) 계층부(400), 보안(Security) 계층부(500) 및 이식(Porting) 계층부(600)를 포함한다. 그리고 이식 계층부(600), 보안 계층부(500), 브라우저 엔진 계층부(400) 및 어플리케이션 런타임 계층부(300)는 순차로 연결된다. 상기한 컨테이너 코어(21)에서 이식 계층부(600)를 제외한 어플리케이션 런타임 계층부(300), 브라우저 엔진 계층부(400) 및 보안 계층부(500)는 브라우저 엔진 컨테이너 커먼 모듈(Browser Engine Container Common, 22: 이하, "컨테이너 커먼 모듈"로 축약함)에 포함된다. The container core 21 includes an application runtime layer 300, a browser engine layer 400, a security layer 500 and a porting layer 600 . The transplanting layer unit 600, the security layer unit 500, the browser engine layer unit 400, and the application runtime layer unit 300 are sequentially connected. The application runtime layer 300, the browser engine layer 400 and the security layer 500 except for the porting layer 600 in the container core 21 may include a browser engine container common module, 22: hereinafter abbreviated as "container common module").

상술한 바와 같은 플랫폼(20)의 구조를 살펴보면, 이식 계층부(600)는 운영 체제(10)에 직접 연결된다. 이러한 이식 계층부(600)에 컨테이너 실행부(200) 및 컨테이너 커먼 모듈(22)이 연결되므로, 컨테이너 실행부(200) 및 컨테이너 커먼 모듈(22)은 이식 계층부(600)를 통해 운영 체제(10)에 접근할 수 있다. Referring to the structure of the platform 20 as described above, the implantation layer 600 is directly connected to the operating system 10. The container executing unit 200 and the container common module 22 are connected to the porting layer unit 600 so that the container executing unit 200 and the container common module 22 can communicate with each other through the porting unit 600 10).

특히, 어플리케이션(30) 및 시스템 어플리케이션(40)은 실행된 후, 컨테이너 커먼 모듈(22)에 직접 연결되므로, 컨테이너 커먼 모듈(22) 및 이식 계층(600)을 통해 운영 체제(10)에 접근할 수 있다. 어플리케이션(30)이 단말의 기능을 실행시키고자 하는 경우, 어플리케이션(30)은 컨테이너 커먼 모듈(22)에 이를 요청한다. 그러면, 컨테이너 커먼 모듈(22)은 이 요청을 이식 계층부(600)에 전달하고, 이식 계층부(600)는 운영 체제(10)에 이 요청을 재 전달한다. 이때, 이식 계층부(600)는 운영 체제(10)의 인터페이스에 따라 이 요청을 변환하여 운영 체제(10)에 전달한다. 이에 따라, 운영 체제(10)는 어플리케이션(30)이 요청한 기능을 제어부(11)를 통해 실행한다. In particular, since the application 30 and the system application 40 are executed and are directly connected to the container common module 22, the application 30 and the system application 40 can access the operating system 10 through the container common module 22 and the porting layer 600 . When the application 30 wants to execute the function of the terminal, the application 30 requests the container common module 22 to do so. The container common module 22 then forwards the request to the transplantation layer 600 and the transplantation layer 600 forwards the request back to the operating system 10. At this time, the porting layer unit 600 converts the request according to the interface of the operating system 10 and transfers the converted request to the operating system 10. Accordingly, the operating system 10 executes the function requested by the application 30 through the control unit 11. [

이식 계층부(600)의 인터페이스는 운영 체제(10)와 연결되는 동시에 컨테이너 커먼 모듈(22)에 연결된다. 따라서, 이식 계층부(600)의 인터페이스는 운영 체제(10)와의 연결에서 각 운영 체제(10)와 서로 연결할 수 있도록 각 운영 체제(10)에 맞게 구현된다. 이와 같이, 각 운영 체제(10)별로 구현된 인터페이스는 모두 컨테이너 커먼 모듈(22) 및 이식 계층부(600) 상호간에 서로 연결되도록 컨테이너 커먼 모듈(22) 및 이식 계층부(600) 중 어느 하나에 맞게 구현된다. 이에 따라, 어플리케이션(30)이 운영 체제(10)에 무관하게 컨테이너 커먼 모듈(22)에 맞게 운영 체제(10)가 관장하는 기능 실행을 요청하면, 컨테이너 커먼 모듈(22)은 운영 체제(10)에 무관하게 이식 계층부(600)에 어플리케이션(30)의 요청을 전달할 수 있다. 이 요청을 전달 받은 이식 계층부(600)은 각 운영 체제(10)에 맞게 이 요청에 따른 기능 실행을 운영 체제(10)에 지시할 수 있다. 그러므로, 어플리케이션(30)은 플랫폼(20)을 통해 운영 체제(10)의 종류에 무관하게 단말 자원 또는 기능에 접근 할 수 있다. The interface of the transport layer unit 600 is connected to the container common module 22 while being connected to the operating system 10. Thus, the interface of the portability layer 600 is implemented for each operating system 10 so that it can connect with each operating system 10 in connection with the operating system 10. In this way, the interfaces implemented by the respective operating systems 10 can be connected to either the container common module 22 or the implantation layer 600 so that they are mutually connected to each other between the container common module 22 and the implantation layer 600 It is implemented correctly. Accordingly, when the application 30 requests execution of a function governed by the operating system 10 in conformity with the container common module 22 regardless of the operating system 10, the container common module 22 executes the function common to the operating system 10, The application layer 30 can transmit the request of the application 30 to the porting layer unit 600 regardless of the type of the application. The transport layer unit 600 receiving this request can instruct the operating system 10 to execute the function according to the request for each operating system 10. [ Therefore, the application 30 can access the terminal resources or functions through the platform 20 regardless of the type of the operating system 10.

한편, 플랫폼(20)에서 컨테이너 커먼 모듈(22)은 어플리케이션(30)으로부터 요청을 수신하며, 이식 계층부(600)는 어플리케이션의 요청을 운영 체제(10)에 맞춰 그 요청에 따른 기능 실행을 지시한다. 이를 위하여, 컨테이너 커먼 모듈(22)과 어플리케이션(30)은 상호간에 맞게 구현되며, 이식 계층부(600)는 각 운영 체제(10)의 종류에 맞게 구현된다. 또한, 컨테이너 커먼 모듈(22)은 어플리케이션(30)의 요청을 이식 계층부(600)에 전달할 수 있어야 한다. 이에 따라, 컨테이너 커먼 모듈(22)과 이식 계층부(600)는 상호간에 맞게 구현된다. 이와 같이, 플랫폼(20)이 어플리케이션(20)과 운영 체제(10) 사이에서, 컨테이너 커먼 모듈(22)과 이식 계층부(600)의 2개의 계층 구조로 형성됨에 따라, 어플리케이션(30) 및 운영 체제(10) 중 어느 하나가 변경되더라도 플랫폼(20) 전체를 변경하지 않아도 되며, 컨테이너 커먼 모듈(22)과 이식 계층부(600) 중 대응하는 구성만을 변경할 수 있다. In the platform 20, the container common module 22 receives a request from the application 30, and the porting layer unit 600 instructs the application 10 to execute the function according to the request, do. For this purpose, the container common module 22 and the application 30 are implemented mutually, and the portable layer module 600 is implemented according to the type of each operating system 10. In addition, the container common module 22 must be able to transmit the request of the application 30 to the transplantation layer 600. Accordingly, the container common module 22 and the porting layer unit 600 are implemented mutually. As described above, since the platform 20 is formed between the application 20 and the operating system 10 in two hierarchical structures, that is, the container common module 22 and the porting layer unit 600, the application 30 and the operation Even if any one of the container 10 and the container 10 is changed, the entire platform 20 need not be changed and only the corresponding configuration among the container common module 22 and the transplantation layer 600 can be changed.

다음으로, 본 발명의 실시예에 따른 플랫폼(20)의 세부 구조에 대해서 보다 상세하게 설명한다. 도 3은 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 컨테이너 실행부의 세부 구성을 설명하기 위한 도면이며, 도 4는 본 발명의 실시예에 따른 플랫폼에서 어플리케이션 런타임 계층부를 설명하기 위한 도면이고, 도 5는 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 계층부를 설명하기 위한 도면이다. 또한, 도 6은 본 발명의 실시예에 따른 플랫폼에서 보안 계층부의 세부 구성을 설명하기 위한 도면이며, 도 7은 본 발명의 실시예에 따른 플랫폼에서 이식 계층부를 설명하기 위한 도면이고, 도 8은 본 발명의 실시예에 따른 플랫폼에서 시스템 어플리케이션을 설명하기 위한 도면이다. Next, the detailed structure of the platform 20 according to the embodiment of the present invention will be described in more detail. FIG. 3 is a view for explaining a detailed configuration of a browser engine container executing unit in a platform according to an embodiment of the present invention, FIG. 4 is a view for explaining an application runtime layer in a platform according to an embodiment of the present invention, Is a diagram for explaining a browser engine layer in a platform according to an embodiment of the present invention. 6 is a view for explaining the detailed configuration of the security layer in the platform according to the embodiment of the present invention, FIG. 7 is a view for explaining the porting layer in the platform according to the embodiment of the present invention, FIG. 4 is a diagram for describing a system application in a platform according to an embodiment of the present invention. FIG.

먼저, 본 발명의 실시예에 따른 컨테이너 실행부(200)에 대해서 설명하기로 한다. First, the container executing unit 200 according to the embodiment of the present invention will be described.

도 3 내지 도 6을 참조하면, 컨테이너 실행부(200)는 어플리케이션(30)의 일반적인 실행 및 대기 모드에서의 실행, 컨테이너 코어(21)의 전부 또는 일부의 업데이트 등을 관장하는 역할을 수행한다. 컨테이너 실행부(200)는 어플리케이션(30)의 시작점(Entry Point) 역할을 하며, 컨테이너 코어(21)를 생성시킬 수 있다. 컨테이너 실행부(200)는 실행된 후 백그라운드에서 프로세스를 계속 실행하는 데몬(Daemon) 형태로 구동되지 않으며, 실행된 후 해당 기능을 수행하고 즉시 종료되는 형태로 구동된다. 이는 운영 체제(10)가 다중 실행 또는 멀티 인스턴스(Multi-instance)를 지원하지 않는 경우에도 복수의 어플리케이션(30)을 구동시키기 위함이다. 즉, 컨테이너 실행부(200) 및 이의 세부 구성 각각은 앞서 설명한 바와 같이, 어플리케이션의 실행 요청을 수신하는 객체이다. 3 to 6, the container executing unit 200 plays a role of managing the general execution of the application 30, the execution in the standby mode, the updating of all or a part of the container core 21, and the like. The container execution unit 200 serves as an entry point of the application 30 and can generate the container core 21. [ The container execution unit 200 is not driven in the form of a daemon that continuously executes a process in the background after being executed, and executes the corresponding function after being executed and is immediately terminated. This is for driving a plurality of applications 30 even when the operating system 10 does not support multiple execution or multi-instance. That is, each of the container executing unit 200 and its detailed configuration is an object that receives an application execution request, as described above.

컨테이너 실행부(200)는 컨테이너 에이전트(210), 더미 컨테이너 실행부(220) 및 대기 모드 에이전트(230)를 포함한다.The container execution unit 200 includes a container agent 210, a dummy container execution unit 220, and a standby mode agent 230.

컨테이너 에이전트(210)는 어플리케이션 런처(211)와 컨테이너 업데이트 모듈(213)을 포함한다. 컨테이너 에이전트(210)는 어플리케이션(30)을 실행하도록 요청 받으면 어플리케이션(30)을 실행시키는 트리거 동작을 수행한다. The container agent 210 includes an application launcher 211 and a container update module 213. When the container agent 210 is requested to execute the application 30, the container agent 210 performs a trigger operation to execute the application 30.

어플리케이션(30) 실행을 트리거하는 것은 어플리케이션 런처(211)가 더미 컨테이너 실행부(220)를 통해 실행 인자를 어플리케이션 런타임 계층부(300)에 전달함으로써 이루어진다. 어플리케이션 런처(211)는 어플리케이션(30)의 식별자(ID) 및 주소(URL) 중 적어도 하나를 실행 인자로 전달하여 어플리케이션(30)이 실행되도록 할 수 있다. 이때, 어플리케이션(30)의 주소(URL)가 인자로 전달되는 경우, 어플리케이션(30)은 해당 주소를 시작 페이지로 하여 실행될 수 있다. 어플리케이션(30)의 명칭 또는 식별자(ID)만 인자로 전달된 경우, 해당 어플리케이션(30)의 모든 소스 파일이 저장된 패키지에 대한 메타 데이터(Meta data)로부터 추출한 디폴트 페이지(default page)를 시작 페이지로 실행한다. 여기서, 디폴트 페이지는 어플리케이션(30) 설치 시, 어플리케이션(30)의 메타 데이터로부터 추출되어 레지스트리 매니저(320)를 통해 등록된 것이다.Triggering the execution of the application 30 is accomplished by the application launcher 211 delivering the execution factor to the application runtime layer 300 through the dummy container execution unit 220. The application launcher 211 may transmit at least one of an identifier (ID) and an address (URL) of the application 30 as an execution parameter so that the application 30 is executed. At this time, when the address (URL) of the application 30 is transmitted as an argument, the application 30 can be executed with the corresponding address as the start page. When only the name or identifier (ID) of the application 30 is passed as a parameter, a default page extracted from the metadata of the package in which all the source files of the application 30 are stored is set as a start page . Here, the default page is extracted from the metadata of the application 30 when the application 30 is installed and registered through the registry manager 320.

컨테이너 에이전트(210)는 컨테이너 코어(21)의 일부 또는 전부를 업데이트하는 역할을 수행한다. 업데이트는 다음의 2 가지 방법에 따라 이루어질 수 있다. 첫째, 업데이트를 위한 서버가 컨테이너 에이전트(210)를 업데이트를 수행하도록 트리거(trigger)하는 방법이 있으며, 이 방법은 서버가 "SMS push"를 통해 컨테이너 에이전트(210)를 트리거하는 것을 예시할 수 있다. 둘째, 컨테이너 에이전트(210)가 주기적으로 업데이트를 위해 확인하는 방법이 있다. 이는 컨테이너 에이전트(210)가 주기적으로 업데이트를 수행해야 할지 여부를 자가 진단(Self Check)하는 방법이다. 상술한 업데이트는 컨테이너 업데이트 모듈(213)에 의해 이루어질 수 있다. 컨테이너 업데이트 모듈(213)은 컨테이너 코어(21)의 전부를 업데이트하거나, 컨테이너 코어(21)의 각 구성을 업데이트 할 수 있다. 즉, 컨테이너 코어(21)는 복수의 세부 구성으로 모듈화되어 있으므로, 컨테이너 업데이트 모듈(213)은 각 구성을 개별적으로 업데이트 할 수 있다. 특히, 브라우저 엔진 계층부(400)의 플러그 인(430)의 경우, 새로운 기능을 구현하기 위한 플러그 인(430)을 추가로 설치할 수 있다. 또한, 컨테이너 업데이트 모듈(213)은 컨테이너 코어(21)의 각 구성이 사용하는 데이터를 업데이트 할 수 있다. 예컨대, 보안 계층부(500)의 보안 정책들을 새로 업데이트할 수 있다. The container agent 210 plays a role of updating part or all of the container core 21. The update can be performed according to the following two methods. First, there is a way for the server for updating to trigger the container agent 210 to perform the update, which may illustrate that the server triggers the container agent 210 via "SMS push" . Second, there is a method in which the container agent 210 periodically checks for update. This is a method of self-checking whether the container agent 210 periodically performs update. The above-described update may be performed by the container update module 213. [ The container update module 213 can update all of the container core 21 or update each configuration of the container core 21. [ That is, since the container core 21 is modularized into a plurality of detailed configurations, the container update module 213 can update each configuration individually. In particular, in the case of the plug-in 430 of the browser engine layer 400, a plug-in 430 for implementing a new function may be additionally provided. In addition, the container update module 213 can update data used by each configuration of the container core 21. For example, the security policies of the security layer 500 may be newly updated.

더미 컨테이너 실행부(220)는 운영 체제(10) 또는 컨테이너 에이전트(210)로부터 어플리케이션을 실행할 것을 요청 받아, 실제로 어플리케이션의 실행을 담당하는 어플리케이션 런타임 계층부(300)의 런타임 매니저(310)를 실행시킨다. 그런 다음, 더미 컨테이너 실행부(220)는 런타임 매니저(310)의 커맨드 핸들러(311)에 실행 명령을 전달한 후, 자기 자신의 실행을 종료한다. 이때, 런타임 매니저(310)가 이미 실행 중이면, 단순히 커맨드 핸들러(311)에 실행 명령을 전달한 후, 자기 자신의 실행을 종료한다. 여기서, 더미 컨테이너 실행부(220)가 실행 명령을 전달하는 것은, 컨테이너 코어(21)의 런타임 매니저(310)에 제어권을 넘겨주는 것을 의미한다. The dummy container execution unit 220 is requested to execute an application from the operating system 10 or the container agent 210 and executes the runtime manager 310 of the application runtime layer 300 that is in charge of execution of the application . Then, the dummy container execution unit 220 transmits an execution command to the command handler 311 of the runtime manager 310, and then ends its execution. At this time, if the runtime manager 310 is already executing, the execution manager 310 simply passes the execution command to the command handler 311, and then ends its execution. Here, when the dummy container execution unit 220 delivers the execution command, it means that the control authority is handed over to the runtime manager 310 of the container core 21.

특히, 더미 컨테이너 실행부(220)가 제어권을 넘겨준 후, 자기 자신의 실행을 종료하는 것은 운영 체제(10)가 다중 실행 또는 동일한 객체의 멀티 인스턴스를 지원하지 않는 경우, 복수의 어플리케이션을 실행시키기 위한 것이다. 즉, 런타임 매니저(310)은 언제나 종료 상태이므로, 운영 체제(10)로부터 어플리케이션의 실행 요청은 단일 실행(단일 인스턴스)이며, 어플리케이션의 다중 실행은 런타임 매니저(310)에서 수행하므로, 운영 체제(10)에 상관 없이 언제나 어플리케이션을 다중으로 실행시킬 수 있다. In particular, after the dummy container execution unit 220 hands over the control, the execution of the self-execution is terminated when the operating system 10 does not support multiple execution or multiple instances of the same object, . That is, since the execution request of the application from the operating system 10 is a single execution (single instance) and the execution of the application is performed in the runtime manager 310, the operating system 10 The application can be run multiple times at any time.

한편, 더미 컨테이너 실행부(220)가 컨테이너 에이전트(210)가 어플리케이션 런처(211)를 통해 더미 컨테이너 실행부(220)에 어플리케이션 실행 요청을 전달하는 경우에도, 컨테이너 에이전트(210)는 더미 컨테이너 실행부(220)와 마찬가지로 실행 요청 후에 자기 자신의 실행을 종료한다. 이는 더미 컨테이너 실행부(220)가 실행 명령 전송 후, 자기 자신의 실행을 종료하는 것과 같은 이유이다.When the dummy container execution unit 220 transmits an application execution request to the dummy container execution unit 220 through the application launcher 211, The execution of itself is terminated after the execution request. This is the reason why the dummy container execution unit 220 ends its execution after sending the execution command.

더미 컨테이너 실행부(220)는 실행 요청을 전달할 때, 어플리케이션(30)을 실행하기 위한 정보인 실행 인자를 같이 전송한다. 여기서, 실행 인자는 식별자 및 주소를 포함하며, 주소는 생략 될 수 있다. 여기서, 식별자는 어플리케이션(30)을 다른 어플리케이션(30)과 구분하기 위한 것이다. 따라서 어플리케이션(30) 실행 시, 실행 인자의 식별자를 통해 해당 어플리케이션(30)을 다른 어플리케이션(30)과 구분하여 실행시킬 수 있다. 한편, 하나의 어플리케이션(30)은 복수의 페이지로 이루어지며, 각각의 페이지는 주소가 할당된다. 또한, 어플리케이션(30)은 복수의 페이지 중 어느 하나의 페이지를 시작 페이지로 하여 실행된다. 따라서, 실행 인자에 주소가 포함된 경우, 해당 주소를 시작 페이지로 하여 어플리케이션(30)을 실행시킬 수 있다. 실행 인자에 주소가 포함되지 않는 경우, 어플리케이션(30) 설치 시 미리 설정된 디폴트 페이지를 시작 주소로 하여 어플리케이션(30)을 실행시킬 수 있다. When delivering an execution request, the dummy container execution unit 220 transmits an execution parameter, which is information for executing the application 30, together. Here, the execution parameter includes an identifier and an address, and an address may be omitted. Here, the identifier is for distinguishing the application 30 from the other applications 30. Therefore, when the application 30 is executed, the application 30 can be executed separately from the other applications 30 through the identifier of the execution factor. On the other hand, one application 30 is made up of a plurality of pages, and each page is assigned an address. In addition, the application 30 is executed by using any one of a plurality of pages as a start page. Therefore, when an address is included in the execution parameter, the application 30 can be executed with the address as the start page. When the address is not included in the execution parameter, the application 30 can be executed with the default page set as a start address set in advance when the application 30 is installed.

어플리케이션(30)을 단말의 대기 모드 화면에서 동작시키기 위한 모듈로써, 운영 체제(10) 별로 각각의 대기 모드 컴포넌트 프로토콜(IDLE Component Protocol)에 맞춰 구현된다. The application module 30 is a module for operating the application on the idle mode screen of the terminal, and is implemented in accordance with each idle mode component protocol (IDLE Component Protocol) for each operating system 10.

다음으로, 본 발명의 실시예에 따른 어플리케이션 런타임 계층부(300)에 대해서 설명하기로 한다. Next, the application runtime layer unit 300 according to the embodiment of the present invention will be described.

도 3 내지 도 6을 참조하면, 어플리케이션 런타임 계층부(300)는 어플리케이션 실행 환경을 제공하며, 전체 플랫폼(20)의 커널(Kernel) 역할을 수행한다. 어플리케이션 런타임 계층부(300) 어플리케이션(30)이 생성되면, 그 생성된 어플리케이션(30)을 관리하고, 어플리케이션 설치 및 구성 정보 설정을 위한 레지스트리(Registry) 정보 및 사용자 인터페이스(UI, User Interface)를 관리한다. 3 to 6, the application runtime layer 300 provides an application execution environment and functions as a kernel of the entire platform 20. Application runtime layer 300 When the application 30 is created, it manages the generated application 30 and manages registry information and UI (User Interface) for application installation and configuration information setting do.

런타임 매니저(310)는 어플리케이션(30)이 실행된 경우, 이 어플리케이션(30)의 컨텍스트(context)를 관리하고, 이벤트 핸들링(Event Handling)을 수행하며, 컨테이너 실행부(200)로부터의 명령이 있으면, 이 명령을 처리한다. 이를 위하여, 런타임 매니저(310)는 커맨드 핸들러(Command Handler, 311), 컨텍스트 매니저(Context Manager, 313), 이벤트 핸들러(Event Handler, 315), 라이프 사이클 매니저(Life cycle Manager, 317)를 포함한다. When the application 30 is executed, the runtime manager 310 manages the context of the application 30, performs event handling, and if there is an instruction from the container execution unit 200 , And processes this command. To this end, the runtime manager 310 includes a command handler 311, a context manager 313, an event handler 315, and a life cycle manager 317.

커맨드 핸들러(311)는 컨테이너 실행부(200)로부터 프로세스간 통신(IPC, Inter-Process Communication) 방법으로 명령을 전달 받아 해석한 뒤, 각 명령에 해당하는 동작을 수행하는 IPC 명령 처리기이다. 커맨드 핸들러(311)는 명령에 따라 다음과 같은 동작을 수행한다. 커맨드 핸들러(311)는 컨텍스트 매니저(313)에 어플리케이션(30)의 실행 또는 종료를 요청할 수 있다. 또한, 커맨드 핸들러(311)는 플랫폼(20)의 구성 정보를 레지스트리 매니저(320)를 통해 업데이트 할 수 있다. 그리고 커맨드 핸들러(311)는 자원을 정리하고 자기 자신 프로세스인 플랫폼(20)을 종료할 수 있다. 이는 타 프로세스 종료 기능을 제공하지 않는 운영 체제(10)를 대비하여 플랫폼(20) 업데이트 시에 실행 중인 플랫폼(20) 프로세스를 종료시키기 위한 것이다. 또한, 커맨드 핸들러(311)는 플러그 인 매니저(420)에 플러그 인(430)의 설치, 삭제 및 업데이트를 요청할 수 있다. The command handler 311 is an IPC command processor that receives commands from the container execution unit 200 via an inter-process communication (IPC) method, analyzes the commands, and performs an operation corresponding to each command. The command handler 311 performs the following operations according to the command. The command handler 311 may request the context manager 313 to execute or terminate the application 30. In addition, the command handler 311 can update the configuration information of the platform 20 through the registry manager 320. Then, the command handler 311 can organize resources and terminate the platform 20, which is a process of itself. This is to terminate the running platform 20 process at the time of updating the platform 20 against the operating system 10 which does not provide the other process termination function. In addition, the command handler 311 may request the plug-in manager 420 to install, delete, and update the plug-in 430.

컨텍스트 매니저(313)는 어플리케이션(30)의 컨텍스트를 관리하는 모듈로써, 브라우저 엔진(410) 렌더러(Renderer)와 윈도우의 생성 및 소멸을 관장한다. 커맨드 핸들러(311)로부터 어플리케이션(30) 실행이 요청되면, 컨텍스트 매니저(313)는 브라우저 엔진(410)으로부터의 윈도우 생성 명령에 따라 윈도우를 생성한다. 이어서, 컨텍스트 매니저(313)는 브라우저 엔진(410)의 렌더러(Renderer)를 생성한다. 그런 다음, 컨텍스트 매니저(313)는 생성된 렌더러를 통해 요청된 페이지를 렌더링하여, 랜더링된 결과를 생성된 윈도우에 표시한다. 컨텍스트 매니저(313)는 커맨드 핸들러(311)로부터 브라우저를 종료할 것을 지시하는 명령이나, 이벤트 핸들러(315)와 브라우저 엔진(410)으로부터 윈도우 소멸시킬 것을 지시하는 명령을 수신할 수 있다. 이러한 경우, 컨텍스트 매니저(313)는 브라우저 엔진(410)의 렌더러 및 윈도우 자원을 회수한 후, 어플리케이션(30)을 종료하거나 윈도우를 소멸시킨다. 또한, 컨텍스트 매니저(313)는 어플리케이션(30)이 소유하고 있는 모든 윈도우가 소멸되었을 경우 해당 어플리케이션(30)을 종료시킨다. The context manager 313 manages the context of the application 30 and manages the creation and destruction of the browser engine 410 renderer and window. When the execution of the application 30 is requested from the command handler 311, the context manager 313 creates a window according to a window creation command from the browser engine 410. [ Next, the context manager 313 creates a renderer of the browser engine 410. The context manager 313 then renders the requested page through the generated renderer and displays the rendered result in the generated window. The context manager 313 may receive a command from the command handler 311 to terminate the browser or an instruction to instruct the event handler 315 and the browser engine 410 to extinguish the window. In this case, the context manager 313 retrieves the renderer and window resources of the browser engine 410, and then terminates the application 30 or extinguishes the window. In addition, the context manager 313 terminates the corresponding application 30 when all the windows owned by the application 30 are destroyed.

이벤트 핸들러(315)는 컨텍스트 매니저(313)에서 생성한 윈도우 관련 이벤트와 플랫폼(20) 자체에서 확장된 시스템 관련 이벤트 등을 받아서 처리하는 모듈이다. 한편, 브라우저 엔진(410)에 관련된 이벤트는 브라우저 엔진(410)에서 직접 처리하므로, 이벤트 핸들러(315)는 브라우저 엔진(410)과 관련된 이벤트는 처리하지 않는다. The event handler 315 receives and processes window related events generated by the context manager 313 and system related events extended from the platform 20 itself. On the other hand, since the event related to the browser engine 410 is handled directly by the browser engine 410, the event handler 315 does not process the event related to the browser engine 410. [

라이프 사이클 매니저(317)는 어플리케이션 및 그 어플리케이션의 윈도우 및 페이지의 라이프 사이클을 관리한다. 어플리케이션(30)은 복수의 페이지로 구성될 수 있다. 또한, 어플리케이션(30) 마다 적어도 하나의 윈도우를 생성하여 시작되며, 적어도 하나의 페이지가 윈도우를 통해 표시된다. 다른 페이지로 이동하는 경우, 이전 페이지는 그 표시가 사라질 수 있다. 또한, 어플리케이션(30)과 관련된 모든 윈도우가 닫히면 그 어플리케이션(30)은 종료된다. 이처럼, 어플리케이션(30), 그 어플리케이션(30)의 윈도우 및 페이지의 라이프 사이클이 존재하며, 라이프 사이클 매니저(317)는 이를 관리한다. The lifecycle manager 317 manages the life cycle of the application and the windows and pages of the application. The application 30 may comprise a plurality of pages. Also, at least one window is created for each application 30, and at least one page is displayed through a window. If you navigate to another page, the previous page may disappear. In addition, if all windows associated with the application 30 are closed, the application 30 is terminated. As described above, there is a life cycle of the application 30, the window and the page of the application 30, and the life cycle manager 317 manages the life cycle.

레지스트리 매니저(320)는 어플리케이션(30) 설치 정보 및 플랫폼(20)의 구성(Configuration) 정보를 관리하는 모듈이며, 실제 정보는 보안 매니저(Security Manager)(625)를 통해 보안된 영역에 보관할 수 있다. 레지스트리 매니저(320)는 어플리케이션(30), 플랫폼(20) 및 플러그 인(430) 관련 기능을 제공한다. 이러한 레지스트리 매니저(320)가 제공하는 기능은 그 대상에 따라 다음과 같다.The registry manager 320 is a module for managing application 30 installation information and configuration information of the platform 20 and actual information can be stored in a secured area through a security manager 625 . The registry manager 320 provides functions related to the application 30, the platform 20, and the plug-in 430. The function provided by the registry manager 320 is as follows according to the subject.

UI 엔진(330)은 브라우저 엔진(410)이 렌더링하는 영역 이외의 모든 UI 및 사용자 입력 처리를 담당한다. 구체적으로, 어플리케이션(30) 컨텐츠 영역 이외의 모든 영역의 표시를 담당하며, 상태 바 영역과 소프트 버튼 영역이 여기에 해당한다. 여기서, 상태 바 영역은 단말의 상태를 나타내는 아이콘들을 표시하는 영역으로, 주로 표시부(15)의 상단에 배치되며, 이 영역에는 수신 신호 세기를 나타내는 아이콘, 배터리 잔량을 나타내는 아이콘, 진동 모드인지 또는 벨 모드인지 여부를 나타내는 아이콘 등이 표시될 수 있다. 또한, 소프트 버튼 영역은 단말이 표시부(15)로 풀 터치 터치스크린을 채용한 경우, "메뉴"키, "확인"키, "취소"키 등의 기본 키를 표시하는 영역으로, 주로 표시부(15)의 하단에 배치된다.The UI engine 330 is responsible for all UI and user input processing other than the area rendered by the browser engine 410. More specifically, it is responsible for display of all areas except the content area of the application 30, and the status bar area and the soft button area correspond to this. Here, the status bar area is an area for displaying icons representing the status of the terminal, and is mainly disposed at the top of the display part 15. In this area, an icon indicating the received signal strength, an icon indicating the battery remaining amount, An icon indicating whether the mode is displayed or the like may be displayed. The soft button area is an area for displaying a basic key such as a "menu" key, an "OK" key, a cancel key, etc. when the terminal employs a full- As shown in Fig.

네트워크 셀렉터(340)는 컨테이너 코어(21)가 사용할 네트워크를 설정하고 관리하는 기능을 제공하는 모듈로서 사용자가 단말에서 사용 가능한 네트워크들(예컨대, Modem, Wi-Fi, Bluetooth 등)의 선택 방법 및 우선순위를 설정할 수 있도록 한다. 네트워크 선택 방법은 자동, 수동, 반자동의 3가지 옵션을 제공한다. 자동일 경우 설정된 우선순위에 따라 접속 가능한 네트워크를 통해 접속하며, 수동일 경우 선택된 네트워크에 대해서만 접속을 시도하고, 반자동일 경우 네트워크 연결 또는 전환이 요구될 때 마다 팝업을 띄워 사용자가 원하는 네트워크를 선택할 수 있도록 한다. The network selector 340 is a module for providing a function of setting and managing a network to be used by the container core 21 and a method for selecting a network (e.g., modem, Wi-Fi, Bluetooth, Allows you to set a ranking. The network selection method offers three options: automatic, manual, and semi-automatic. If it is automatic, it connects through the connectable network according to the set priority. If the number is the same, it tries to connect only to the selected network. If it is semi-automatic, it pops up every time a network connection or switching is requested, .

어플리케이션 동기 매니저(350)는 단말이 온 라인 또는 오프라인에 있는지 여부와 상관없이, 어플리케이션(30)의 실행을 끊김 없이(Seamless) 보장해주는 모듈로서, 외부 데이터에 접근하는 어플리케이션(30)에 대해서 네트워크 연결이 끊겼을 경우에도 캐싱 매커니즘(Caching Mechanism)을 통해 동작 가능하도록 하며, 다시 네트워크에 연결되었을 때, 로컬 스토리지에 저장되었던 데이터를 사용자가 인식하지 못하는 사이에 백그라운드로 자동 싱크(Auto Sync)를 수행할 수 있도록 한다. The application synchronization manager 350 is a module for ensuring seamless execution of the application 30 irrespective of whether the terminal is on line or offline or not. (Caching Mechanism), and when connected to the network, performs auto synchronization in the background while the user does not recognize the data stored in the local storage .

다음으로, 본 발명의 실시예에 따른 브라우저 엔진 계층부(400)에 대해서 설명하기로 한다. Next, the browser engine layer unit 400 according to the embodiment of the present invention will be described.

도 5 및 도 7을 참조하면, 브라우저 엔진 계층부(400)는 브라우저 엔진(410), 플러그 인 매니저(Plug-In Manager, 420) 및 플러그 인 매니저(420)가 관리하는 다수의 플러그 인(430)을 포함한다.5 and 7, the browser engine layer 400 includes a browser engine 410, a plug-in manager 420, and a plurality of plug-ins 430 managed by the plug-in manager 420 ).

브라우저 엔진(410)은 어플리케이션(30)을 해석하여 화면에 표시하고 실행시키는 역할을 수행한다. 이를 위하여, 브라우저 엔진(410)은 마크 업 랭귀지(Markup Language)와 스타일시트 등을 처리하기 위한 엔진 코어(411)와, 스크립트 언어를 처리하기 위한 인터프리터인 스크립트 엔진(413)을 포함한다. 또한, 브라우저 엔진(410)은 프로토콜 처리기, XML 처리기, 윈도우(Window) 처리기, 폰트(Font) 처리기, 이미지 디코더(Image Decoder) 처리기, 국제화(Internationalization) 처리기 및 시스템(System) 처리기를 포함한다. 프로토콜 처리기는 HTTP, HTTPS 프로토콜 기능을 제공하며, HTTP 기능 동작을 위해 필요한 업로드(upload), 프록시들(proxies), 쿠키(cookie) 등에 대한 관리 기능을 제공한다. XML 처리기는 XML 파서 기능 및 XSLT 변환 기능을 제공한다. 윈도우 처리기는 브라우저 엔진(410)이 사용할 윈도우 시스템을 제공하며, 엔진 코어(411)가 사용할 버튼, 리스트 박스, 콤보 박스, 텍스트 에디터 등의 UI 위젯(Widget)을 제공한다. 폰트 처리기는 엔진 코어(411)가 사용할 폰트 시스템을 제공한다. 이미지 디코더 처리기는 엔진 코어(411)가 사용할 이미지 디코더 기능을 제공한다. 국제화 처리기는 다국어 처리를 위해 필요한 문자열 변환 기능을 제공한다. 시스템 처리기는 타이머 등의 시스템 기능을 제공한다. 브라우저 엔진(410)은 프로토콜 처리기, XML 처리기, 윈도우 처리기, 폰트 처리기, 이미지 디코더 처리기, 국제화 처리기 및 시스템 처리기 등이 그 기능을 수행하기 위하여 필요한 기본적인 기능은 이식 계층부(600)를 통해 운영 체제(10)에서 얻어온다. The browser engine 410 interprets the application 30, displays it on the screen, and executes it. To this end, the browser engine 410 includes an engine core 411 for processing a markup language and a style sheet, and a script engine 413, which is an interpreter for processing a script language. The browser engine 410 also includes a protocol processor, an XML processor, a window processor, a Font processor, an Image Decoder processor, an Internationalization processor, and a System processor. The protocol handler provides HTTP and HTTPS protocol functions and provides management functions such as uploads, proxies, and cookies required for HTTP function operations. The XML processor provides XML parser functionality and XSLT transformation functionality. The window processor provides a window system to be used by the browser engine 410 and provides a UI widget such as a button, a list box, a combo box, and a text editor to be used by the engine core 411. The font processor provides a font system to be used by the engine core 411. The image decoder processor provides an image decoder function to be used by the engine core 411. The internationalization processor provides the string conversion function necessary for multilingual processing. The system handler provides system functions such as a timer. The browser engine 410 includes a protocol processor, an XML processor, a window processor, a font processor, an image decoder processor, an internationalization processor, a system processor, and the like. 10).

한편, 브라우저 엔진 계층부(400)는 어플리케이션(30)이 웹 표준 기능 이외의 기능을 요청하는 경우, 이러한 기능을 플러그 인(430)을 통해 제공할 수 있다. 여기서, 웹 표준 기능 이외의 기능은 운영 체제(10)가 관리하는 단말의 기능을 실행함을 의미한다. 예컨대, 이는 주소록이나 다른 어플리케이션과의 연동과 같은 장치에 의존적인 기능 등이 그 예가 될 수 있다. Meanwhile, the browser engine layer unit 400 may provide the function through the plug-in 430 when the application 30 requests a function other than the web standard function. Here, the function other than the Web standard function means that the function of the terminal managed by the operating system 10 is executed. For example, this may be a device-dependent function such as an address book or interworking with other applications.

어플리케이션(30)이 운영 체제(10)가 관장하는 기능 실행을 요청하면, 브라우저 엔진(410)은 플러그 인 매니저(420)를 통해 해당 기능을 가지는 플러그 인(430)을 호출하며, 호출된 플러그 인(430)은 이식 계층(600)에서 해당하는 기능을 제공하는 인터페이스 모듈(610)에 어플리케이션(30)의 요청을 전달한다. 이 전달 방법은 인터페이스 모듈(610)이 운영 체제(10)에 무관하게 단일한 형식의 인터페이스를 제공함으로써, 플러그 인(430)은 운영 체제(10)에 무관하게 언제나 동일한 형식으로 해당 기능의 요청을 전달한다. 플러그 인(430)의 요청 전달에 따라, 해당하는 인터페이스 모듈(610)은 어플리케이션(30)이 요청한 단말의 기능을 운영 체제(10)를 통해 실행한다. 이러한 기능 실행을 위하여, 인터페이스 모듈(610)은 상술한 요청에 따라 각 운영 체제(10)에 맞는 형식으로 변경하여 운영 체제(10)에 지시한다. When the application 30 requests execution of a function supervised by the operating system 10, the browser engine 410 calls the plug-in 430 having the corresponding function through the plug-in manager 420, The application layer 430 transmits a request of the application 30 to the interface module 610 providing the corresponding function in the layer 600. [ This delivery method allows the interface module 610 to provide a single type of interface, regardless of the operating system 10, so that the plug-in 430 can always request the function in the same format, regardless of the operating system 10. [ . In response to the request of the plug-in 430, the corresponding interface module 610 executes the function of the terminal requested by the application 30 through the operating system 10. In order to perform such a function, the interface module 610 changes the format of each operating system 10 according to the above-described request and directs the operating system 10 to change the format.

상술한 바와 같이, 브라우저 엔진 계층부(400)를 브라우저 엔진(410)에 플러그 인(430)을 동적으로 결합하는 구조로 설계함으로써, 다음과 같은 이점을 가질 수 있다. 브라우저 엔진(410)이 업데이트될 경우 최신의 브라우저 엔진(410)을 별다른 수정 없이 플랫폼(20)에 빠르게 적용할 수 있다. 또한, 현재 파악되지 않은 기능의 확장도 일관되게 플러그 인(430) 형태로 제공할 수 있는 이점이 있다. 예를 들어, 특정 형식의 미디어를 재생할 수 있는 플러그 인이 필요한 경우, 이를 플러그 인(430)으로 개발하여 추가하는 것이 가능하다. As described above, by designing the browser engine layer unit 400 as a structure that dynamically combines the plug-in 430 with the browser engine 410, the following advantages can be obtained. When the browser engine 410 is updated, the latest browser engine 410 can be quickly applied to the platform 20 without any modification. There is also the advantage that extensions of functions that are not currently understood can be provided consistently in the form of plug-ins 430. For example, if a plug-in capable of playing a specific type of media is required, it can be developed and added to the plug-in 430.

상술한 플러그 인 매니저(420) 및 플러그 인(430)에 대해서 좀 더 상세히 살펴보면 다음과 같다. The plug-in manager 420 and the plug-in 430 will now be described in more detail.

플러그인 매니저(420)는 플러그 인(430)을 관리한다. 즉, 플러그인 매니저(420)는 설치된 플러그 인(430)의 목록을 관리하고, 새로운 플러그 인(430)을 다운로드 및 설치하며, 기 존재하는 플러그 인(430)을 업데이트하고, 어플리케이션(30)의 기능 실행 요청이 있으면, 이 기능 실행의 종류에 따라 해당하는 플러그 인(430)을 호출한다. The plug-in manager 420 manages the plug-in 430. That is, the plug-in manager 420 manages the list of the installed plug-ins 430, downloads and installs the new plug-ins 430, updates existing plug-ins 430 existing therein, If there is an execution request, the corresponding plug-in 430 is called according to the type of execution of the function.

본 발명의 실시예에서 플러그 인(430)은 리소스 플러그 인(Resource Plug-In, 431), 시스템 API 플러그 인(System API Plug-In, 433), 공통 작업 플러그 인(Collaboration Plug-In, 435) 및 싱크 플러그 인(Sync Plug-In, 437)을 포함한다. In the embodiment of the present invention, the plug-in 430 includes a resource plug-in 431, a system API plug-in 433, a common operation plug-in 435, And a Sync Plug-In (437).

리소스 플러그 인(431)은 어플리케이션(30)이 단말 자원에 관련된 기능 실행을 요청하면, 이식 계층부(600)의 리소스 매니저(621)에 전달한다. 이에 따라, 리소스 매니저(621)는 해당 기능을 실행한다. 즉, 리소스 매니저(621)는 운영 체제(10)의 기능 실행을 통해 단말 자원을 제공할 수 있다. The resource plug-in 431 transmits the resource plug-in 431 to the resource manager 621 of the transplantation layer 600 when the application 30 requests the function execution related to the terminal resource. Accordingly, the resource manager 621 executes the corresponding function. That is, the resource manager 621 can provide the terminal resources through the execution of the functions of the operating system 10.

시스템 API 플러그 인(433)은 어플리케이션(30)이 OS API 관련 기능을 호출하면 이식 계층부(600)의 OS API 매니저(623)에 전달한다. 이에 따라, 이식 계층부(600)의 OS API 매니저(623)는 해당 기능을 실행한다. The system API plug-in 433 transmits the OS API manager 623 of the transplantation layer 600 to the application 30 when the application 30 calls the OS API related function. Accordingly, the OS API manager 623 of the porting layer unit 600 executes the corresponding function.

공통 작업 플러그 인(435)은 어플리케이션(30)이 다른 어플리케이션과의 연동을 요청하면, 이식 계층부(600)의 공통 작업 매니저(625)에 전달한다. 그러면, 공통 작업 매니저(625)는 해당 기능을 실행한다. The common job plug-in 435 transmits the request to the common operation manager 625 of the porting layer unit 600 when the application 30 requests interworking with another application. Then, the common task manager 625 executes the corresponding function.

싱크 플러그 인(437)은 어플리케이션(30)이 타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능을 호출하면, 이식 계층(600)의 싱크 매니저(627)에 전달한다. 그러면, 싱크 매니저(627)는 해당 기능을 실행한다. The sink plug-in 437 transfers the synchronization plug-in 437 to the sink manager 627 of the implantation layer 600 when the application 30 calls a function related to interlocking with another device and data synchronization with another device. Then, the sink manager 627 executes the corresponding function.

다음으로, 본 발명의 실시예에 따른 보안 계층부(500)에 대해서 설명하기로 한다. Next, the security layer 500 according to the embodiment of the present invention will be described.

도 3 내지 7을 참조하면, 보안 계층부(500)는 어플리케이션 런타임 계층부(300) 및 브라우저 엔진 계층부(400)의 각 구성들이 이식 계층부(600)의 접근에 대해 인증을 수행하고, 보안 정책에 따라 그 접근의 일부 또는 전부를 허여한다. 이러한 보안 계층부(500)는 인증 매니저(510) 및 정책 매니저(520)를 포함한다. 3 to 7, the security layer 500 performs authentication of accesses of the application layer unit 300 and the browser engine layer unit 400 to the access layer unit 600, Grant some or all of the access in accordance with the policy. The security layer 500 includes an authentication manager 510 and a policy manager 520.

인증 매니저(510)는 어플리케이션(30) 및 플러그 인(430)에 대해 설치 및 실행 시 인증을 수행한다. 여기서, 설치 시, 인증은 어플리케이션(30) 및 플러그 인(430)이 정당한 절차에 의해서 설치되는지 여부를 확인하는 절차이고, 실행 시, 인증은 어플리케이션(30) 및 플러그 인(430)이 정당한 절차에 의해서 설치되었는지 여부를 확인하는 절차이다. 이러한 인증을 위하여, 인증 매니저(510)는 해싱 알고리즘(hashing algorithm) 및 각종 보안 라이브러리를 구비하며, 이에 따라 인증 기능을 수행한다. The authentication manager 510 performs authentication for the application 30 and the plug-in 430 during installation and execution. Here, at the time of installation, authentication is a procedure for confirming whether the application 30 and the plug-in 430 are installed by a proper procedure. At the time of execution, authentication is performed by the application 30 and the plug- In order to confirm whether or not it has been installed. For this authentication, the authentication manager 510 has a hashing algorithm and various security libraries, and performs an authentication function accordingly.

정책 매니저(520)는 컨테이너 업데이트 모듈(213)로부터 접근 제어에 대한 정책을 기술한 파일 등을 전달 받고, 이를 설치 및 저장한다. 그리고 정책 매니저(520)는 각종 플러그 인(430)의 접근 요청에 대해 미리 저장된 정책을 검색하여, 해당 정책에 따라 접근의 일부 또는 전부를 수락하거나 거부한다. 정책 매니저(520)는 그 접근 제어에 대한 정책을 실시간으로 업데이트할 수 있다. The policy manager 520 receives a file describing a policy for access control from the container update module 213, and installs and stores the file. The policy manager 520 searches the pre-stored policies for access requests of the plug-ins 430 and accepts or rejects some or all of the accesses according to the policy. The policy manager 520 may update the policy for that access control in real time.

다음으로, 본 발명의 실시예에 따른 이식 계층부(600)에 대해서 설명하기로 한다. Next, the transplantation layer unit 600 according to the embodiment of the present invention will be described.

도 3 내지 도 7을 참조하면, 이식 계층부(600)는 컨테이너 커먼 모듈(22)에 의해 어플리케이션(30)이 운영 체제(10)의 종류에 무관하게 구현되고 동작할 수 있도록, 운영 체제(10)가 제공하는 인터페이스를 단일 형식의 인터페이스로 변경하여 제공한다. 이를 위하여, 이식 계층부(600)의 인터페이스는 운영 체제(10)에 따라 구현되는 동시에, 이식 계층부(600) 및 컨테이너 커먼 모듈(22) 상호간에 맞도록 구현될 수 있다. 또한, 어플리케이션(30)은 컨테이너 커먼 모듈(22)에 맞춰 기능 실행을 요청한다. 3 to 7, the porting layer unit 600 includes an operating system 10 (FIG. 3) so that the application 30 can be implemented and operated by the container common module 22 regardless of the type of the operating system 10 ) In the form of a single type of interface. To this end, the interface of the transport layer unit 600 may be implemented according to the operating system 10, and may be implemented between the transport layer unit 600 and the container common module 22. In addition, the application 30 requests the function common to the container common module 22 to execute the function.

이에 따라, 어플리케이션(30)이 컨테이너 커먼 모듈(22)에 기능 실행을 요청하면, 컨테이너 커먼 모듈(22)은 이식 계층부(600)에 이를 전달할 수 있다. 그리고, 이식 계층부(600)은 컨테이너 커먼 모듈(22)로부터 전달 받은 기능 실행 요청을 통해 운영 체제(10)에 해당 기능을 실행하도록 지시할 수 있다. Accordingly, when the application 30 requests the container common module 22 to execute the function, the container common module 22 can deliver it to the transplantation layer unit 600. The porting layer unit 600 may instruct the operating system 10 to execute the corresponding function through the function execution request received from the container common module 22.

이식 계층부(600)는 다수개의 인터페이스 모듈(610)을 포함하며, 각 인터페이스 모듈(610)은 기능별로 서로 관련된 복수개의 인터페이스로 이루어진다. 각 인터페이스는 운영 체제(10)의 종류에 따라 단말의 기능을 실행시킬 수 있도록하며, 컨테이너 커먼 모듈(22)에 맞게 기능 실행 요청을 수신할 수 있다.따라서 어플리케이션(30)은 단말의 자원에 대해 접근할 수 있는 인터페이스를 운영 체제(10)에 무관하게 제공 받을 수 있다. The transplanting layer unit 600 includes a plurality of interface modules 610, and each interface module 610 includes a plurality of interfaces related to each function. Each interface is capable of executing the functions of the terminal according to the type of the operating system 10 and can receive a function execution request according to the container common module 22. Accordingly, An accessible interface can be provided regardless of the operating system 10.

인터페이스 모듈(610) 내부의 인터페이스는 각각 라이브러리 형태로 구현되고 관리될 수 있다. 이후에 추가된 기능을 실행하는 인터페이스를 추가로 제공하고 싶다면, 별도의 인터페이스를 정의하고 라이브러리 형태로 구현한 후, 해당하는 인터페이스 모듈(610)에 링크시킬 수 있다. 이러한 인터페이스는 운영 체제(10)의 종류에 따라, 운영 체제(10)를 통해 해당 기능을 실행하도록 구현할 수도 있고, 컨테이너 실행부(200), 컨테이너 커먼 모듈(22) 및 어플리케이션(30) 등의 요청을 각 운영 체제(10)에 맞게 형식만 변환하여 운영 체제(10)에 바이패스(bypass)하는 스터브(stub)일 수도 있다. The interfaces within the interface module 610 can be implemented and managed in the form of libraries, respectively. If it is desired to further provide an interface for executing the added functions, it is possible to define a separate interface, implement it in the form of a library, and link it to the corresponding interface module 610. Such an interface may be implemented to execute the corresponding function through the operating system 10 according to the type of the operating system 10 or may be implemented by a request of the container executing section 200, the container common module 22, And may be a stub that converts only the format for each operating system 10 and bypasses the operating system 10 to the operating system 10.

인터페이스 모듈(610)은 HTTP(hypertext transfer protocol) 모듈(611), XML(eXtensible Markup Language) 모듈(613), 스레드(Thread) 모듈(615), UI 백엔드(UI Backend) 모듈(617), 보안 스토리지(secure storage) 모듈(619), 리소스 매니저(Resource Manager, 621), OS API 매니저(OS API Manager, 623), 공통 작업 매니저(Collaboration Manager, 625), 싱크 매니저(Sync Manager, 627) 및 로컬 스토리지 매니저(Local Storage Manager, 629)를 포함한다. The interface module 610 includes a hypertext transfer protocol (HTTP) module 611, an extensible markup language (XML) module 613, a thread module 615, a UI backend module 617, a secure storage module 619, a resource manager 621, an OS API manager 623, a collaboration manager 625, a sync manager 627, Manager (Local Storage Manager, 629).

HTTP 모듈(611)은 기본적으로 HTTP 및 HTTPS 관련 기능을 가지는 인터페이스를 포함한다. 브라우저 엔진(410)이 동작하기 위해서는 어플리케이션 컨텐츠를 브라우저 엔진(410)에 전달해줄 수 있는 HTTP 프로토콜 처리기가 필요하며, HTTP 모듈(611)은 이러한 HTTP 프로토콜 처리기 기능을 제공하는 인터페이스를 포함한다. 예컨대, HTTP 모듈(611)은 소켓 생성, TCP/IP(/l) 연결, 데이터 전송, 데이터 수신, HTTP 통신 연결, 데이터 요청, SSL(yer) 보안 통신 채널 연결 및 인증서 요청 등의 기능을 가지는 인터페이스를 제공할 수 있다. HTTP 모듈(611)은 내부에 별도의 라이브러리를 가지고 있으며, 각 라이브러리는 별도로 구현되고 관리된다. 각 라이브러리는 운영 체제(10)의 HTTP와 관련된 기능 지원 수준에 따라, 요구사항을 실제 구현한 코드일 수도 있고, 단순히 브라우저 엔진(410)의 요구를 OS에 바이패스(bypass) 전달하는 스터브일 수 도 있다. The HTTP module 611 basically includes an interface having HTTP and HTTPS related functions. In order for the browser engine 410 to operate, an HTTP protocol processor capable of delivering application contents to the browser engine 410 is required, and the HTTP module 611 includes an interface for providing the HTTP protocol processor function. For example, the HTTP module 611 may include an interface having functions such as socket creation, TCP / IP (/ l) connection, data transmission, data reception, HTTP communication connection, data request, SSL Can be provided. The HTTP module 611 has a separate library, and each library is separately implemented and managed. Each library may be a code that actually implements the requirements according to the level of function support associated with HTTP of the operating system 10 or may simply be a stub that passes the request of the browser engine 410 to the OS There is also.

XML 모듈(613)은 XML 파서 기능을 제공하는 인터페이스 및 XSLT(Extensible Style sheet Language Transformations) 변환 기능을 제공하는 인터페이스를 포함한다. XML 파서 기능은 HTML 컨텐츠를 파싱(parsing)해서 DOM(Document Object Model) 트리 형태로 변환하는 기능이며, XSLT 변환 기능은 XSLT를 통해 XML 문서를 변환하는 기능이다. 브라우저 엔진(410)은 어플리케이션(30)을 랜더링하기 위해 이러한 XML 파서 기능 및 XSLT 변환 기능이 필요하다. 이에 따라, XML 모듈(613)은 운영 체제(10)에서 XML 파서 기능 및 XSLT 변환 기능을 사용할 수 있는지 여부에 따라 사용할 수 있는 경우 단순 링크하여 제공하며, 그렇지 않은 경우 인터페이스를 통해 실제 구현 코드를 제공한다.The XML module 613 includes an interface that provides an XML parser function and an interface that provides an XSLT (Extensible Style Sheet Language Transformation) conversion function. The XML parser function is a function to convert HTML contents into a DOM (Document Object Model) tree format, and the XSLT transformation function is a function to convert an XML document through XSLT. The browser engine 410 needs these XML parser functions and XSLT transform functions to render the application 30. [ Accordingly, the XML module 613 provides a simple link when the XML parser 613 can use the XML parser function and the XSLT transformation function in the operating system 10, and if not, the actual implementation code is provided through the interface do.

스레드 모듈(615)은 스레드(thread) 기능을 가지는 인터페이스를 포함한다. 여기서, 스레드 기능은 어플리케이션(30)이 복수의 명령을 처리하는 경우 그 우선 순위 등을 처리하는 것을 말한다. 스레드 모듈(615)의 인터페이스는 런타임 매니저(310)와 브라우저 엔진(410)에서 사용된다. The thread module 615 includes an interface having a thread function. Here, the thread function refers to processing the priority or the like when the application 30 processes a plurality of commands. The interface of the thread module 615 is used in the runtime manager 310 and the browser engine 410.

UI 백엔드 모듈(617)은 브라우저 엔진(410)의 사용자 인터페이스(UI)를 이식(porting)하기 위해 필요한 운영 체제(10) 자체의 윈도우 시스템 기능을 제공하는 인터페이스를 포함한다. 브라우저 엔진(410)이 어플리케이션(30)이 제공하는 컨텐츠를 표시부(15)에 표시하기 위해서는 버튼(Button), 리스트 박스(List Box), 콤보 박스(Combo Box), 에디트 박스(Edit Box) 등의 다양한 UI를 제공하는 위젯(Widget)이 필요하다. 따라서 UI 백엔드 모듈(617)은 운영 체제(10)로부터 어플리케이션(30)이 필요로 하는 UI의 위젯을 얻어 이를 브라우저 엔진(410)에 전달한다. 그리고 UI 백엔드 모듈(617)은 운영 체제(10)의 폰트 시스템을 브라우저 엔진(410)에 전달하는 역할도 수행한다. 또한, UI 백엔드 모듈(617)의 인터페이스는 화면 전화 효과를 표시 및 선택할 수 있도록 한다. The UI backend module 617 includes an interface that provides the window system functionality of the operating system 10 itself, which is required to port the user interface (UI) of the browser engine 410. In order for the browser engine 410 to display the content provided by the application 30 on the display unit 15, a button, a list box, a combo box, an edit box, You need a widget that provides a variety of UIs. Accordingly, the UI backend module 617 obtains a widget of the UI required by the application 30 from the operating system 10 and delivers it to the browser engine 410. The UI backend module 617 also transfers the font system of the operating system 10 to the browser engine 410. In addition, the interface of the UI backend module 617 allows display and selection of screen telephony effects.

보안 스토리지 모듈(619)은 보안 스토리지(Secure Storage)에 접근할 수 있는 인터페이스를 포함한다. 여기서, 보안 스토리지는 보안이 적용되어야 할 데이터를 저장한다. 이러한 인터페이스는 보안 계층(500)의 인증 매니저(510) 및 정책 매니저(520)는 보안되어야 할 데이터를 다루며, 이 데이터는 보안 스토리지 모듈(619)의 인터페이스를 통해 보안 스토리지에 저장된다. 한편, 보안 스토리지가 없는 단말 또는 장치의 경우, 보안 스토리지 모듈(619)은 소프트웨어 적으로 암호화 알고리즘을 적용하여 실시간으로 데이터를 암호화 및 복호화하는 기능을 제공하는 인터페이스를 더 포함할 수 있다. The secure storage module 619 includes an interface for accessing secure storage. Here, the secure storage stores data to which security is to be applied. This interface handles the data to be secured by the authentication manager 510 and the policy manager 520 of the security layer 500 and this data is stored in secure storage through the interface of the secure storage module 619. [ Meanwhile, in the case of a terminal or device without secure storage, the secure storage module 619 may further include an interface that provides a function of encrypting and decrypting data in real time by applying an encryption algorithm in software.

리소스 매니저(621)는 단말 자원에 접근할 수 있는 인터페이스를 제공한다. 이러한 단말 자원은 단말의 주변 장치(13)의 실행에 따라 생성되는 데이터가 될 수 있다. 예컨대, 단말 자원은 폰북(phone book), 사진(Photo), 통화 기록(Call History), SMS(Short Messaging Service) 목록 등을 포함한다. 이러한 인터페이스는 운영 체제(10)의 종류에 따라 단말 자원에 접근할 수 있도록하며, 컨테이너 커먼 모듈(22)로부터 단말 자원에 대한 접근 요청을 수신한다. 따라서 어플리케이션(30)은 단말의 자원에 대해 접근할 수 있는 인터페이스를 운영 체제(10)에 무관하게 제공 받을 수 있다. 리소스 매니저(621)는 내부에 각 자원 별로 별도의 라이브러리를 가지고 있으며, 각 라이브러리는 별도로 구현되고 관리된다. 각 자원 별로 별도의 인터페이스가 제공되며, 이후에 추가된 자원에 접근하는 인터페이스를 추가로 제공하고 싶다면, 별도의 인터페이스를 정의하고 라이브러리 형태로 구현한 후, 리소스 매니저(621)에 링크시킬 수 있다. The resource manager 621 provides an interface for accessing terminal resources. Such terminal resources may be data generated according to the execution of the peripheral device 13 of the terminal. For example, the terminal resources include a phone book, a photo, a call history, and a short messaging service (SMS) list. This interface allows access to the terminal resources according to the type of the operating system 10 and receives an access request for the terminal resources from the container common module 22. [ Therefore, the application 30 can be provided with an interface for accessing resources of the terminal irrespective of the operating system 10. The resource manager 621 has a separate library for each resource, and each library is separately implemented and managed. If a separate interface is provided for each resource and an interface for accessing the added resource is to be additionally provided, a separate interface can be defined and implemented in a library form, and then linked to the resource manager 621.

리소스 매니저(621)는 인터페이스를 통해 다음과 같은 기능을 제공할 수 있다. 리소스 매니저(621)는 수신 및 발송한 SMS 메시지에 대한 목록 및 각 SMS 메시지의 세부 내용, 수신 및 발신한 음성 통화 또는 화상 통화에 대한 세부 정보로 수신시각, 통화시간, 발신인 등을 제공할 수 있다. 또한, 리소스 매니저(621)는 폰북(Phonebook) 상의 각 개인의 목록 및 각 개인 목록에 대한 세부 정보를 제공하며, 폰북 상의 그룹 목록 및 각 그룹에 속한 각 개인의 목록을 제공할 수 있다. 그리고 리소스 매니저(621)는 스케줄, 알람, 메모 등의 목록 및 상세 정보를 제공할 수 있다. 또한, 리소스 매니저(621)는 사진, 비디오, 음악 등이 세부 정보 및 각각의 원본 데이터에 접근 가능한 경로를 제공할 수 있다. The resource manager 621 can provide the following functions through the interface. The resource manager 621 can provide the reception time, the call time, the sender, etc. with the list of the received and sent SMS messages, the details of each SMS message, and the details of the received and transmitted voice or video calls . The resource manager 621 also provides a list of each individual on the phonebook and detailed information about each personal list, and may provide a list of groups on the phone book and a list of individuals belonging to each group. The resource manager 621 can provide a list of schedule, alarm, memo, and detailed information. In addition, the resource manager 621 can provide detailed information on photographs, videos, music, and the like and a path through which each original data can be accessed.

OS API 매니저(623)는 운영 체제(10) 자체의 단말 제어 기능을 제공하며, 이러한 기능을 제공하는 인터페이스를 포함한다. OS API 매니저(623)는 인터페이스를 통해 다음과 같은 단말 기능을 제공한다. OS API 매니저(623)는 음성 통화, 화상 통화, 문자 메시지 기능, 랜드 마크(Landmark) 정보 제공, 위치 정보 제공 등의 단말 기능을 제공한다. 또한, OS API 매니저(623)는 각 운영 체제(10)의 대기 화면에 어플리케이션 등록 및 해제를 수행하는 기능을 제공할 수 있다. 그리고 OS API 매니저(623)는 오디오 또는 비디오 데이터를 생성 또는 삭제하는 단말 기능을 제공하며, 생성된 오디오 또는 비디오 데이터의 실행, 일시 정지 및 중지 등의 기능, 오디오 또는 비디오 데이터에 대해 볼륨 및 비디오 출력 위치를 지정하는 단말 기능을 제공할 수 있다. 게다가, OS API 매니저(623)는 카메라 미리 보기 설정, 캡처 등의 기능 및 시리얼 통신, 근거리 통신 등의 입출력을 제어하는 단말 기능을 제공할 수 있다. The OS API manager 623 provides a terminal control function of the operating system 10 itself and includes an interface for providing such a function. OS API manager 623 provides the following terminal functions through the interface. The OS API manager 623 provides terminal functions such as voice call, video call, text message function, landmark information, and location information provision. In addition, the OS API manager 623 can provide a function of registering and releasing an application on the idle screen of each operating system 10. [ The OS API manager 623 provides a terminal function for creating or deleting audio or video data and has functions such as execution, pause, and stop of the generated audio or video data, volume and video output A terminal function for specifying a location can be provided. In addition, the OS API manager 623 can provide functions such as camera preview setting and capturing, and a terminal function for controlling input and output such as serial communication and local communication.

공통 작업 매니저(625)는 각 운영 체제(10)에서 동작하는 다른 어플리케이션과의 연동 기능을 제공하는 인터페이스를 포함한다. 이러한 다른 어플리케이션은 폰북, 카메라, 음악 재생기, 다이얼러(Dialer), SMS 등과 관련된 것이 될 수 있다. 공통 작업 매니저(625)가 제공하는 인터페이스를 이용하면, 어플리케이션(30)은 상술한 다른 어플리케이션과 연동될 수 있다. The common task manager 625 includes an interface that provides an interworking function with other applications operating in each operating system 10. These other applications may be related to phone books, cameras, music players, dialers, SMS, and the like. Using the interface provided by the common task manager 625, the application 30 can be interworked with the above-mentioned other applications.

싱크 매니저(627)는 타 장치와 연동하여 데이터를 실시간으로 교환하는 기능을 제공하는 인터페이스를 포함한다. 단말이 다른 기기와 연동하여 그 기기와 데이터를 실시간으로 교환하려고 하는 경우, 운영 체제(10)는 그 단말이 타 장치와 연동하도록 하고, 타 장치의 데이터와 동기를 획득하도록 한다. 따라서 싱크 매니저(627)의 인터페이스는 상술한 연동 및 동기를 제공하는 운영 체제(10)의 기능을 제공한다. The sink manager 627 includes an interface that provides a function of exchanging data in real time in cooperation with another device. When the terminal attempts to exchange data with the other apparatus in real time, the operating system 10 allows the terminal to interwork with the other apparatus and acquires synchronization with data of the other apparatus. Thus, the interface of the sink manager 627 provides the functionality of the operating system 10 to provide the interworking and synchronization described above.

로컬 스토리지 모듈(629)은 각 운영 체제(10)에 존재하는 고유의 스토리지 기능을 추출(Abstraction)하여, 그 종류에 상관없이 상위 계층에 일관되게 제공하는 인터페이스를 포함한다. The local storage module 629 includes an interface for abstraction of a unique storage function existing in each operating system 10 and consistently providing it to an upper layer regardless of its type.

다음으로, 본 발명의 실시예에 따른 시스템 어플리케이션(40)에 대해서 설명하기로 한다. Next, the system application 40 according to the embodiment of the present invention will be described.

도 4, 도 5 및 도 8을 참조하면, 시스템 어플리케이션(40)은 어플리케이션(30)의 다운로드 및 설치 등의 기능을 제공한다. 또한, 시스템 어플리케이션(40)은 설치된 어플리케이션(30)의 실행 및 설치된 어플리케이션(30)의 목록을 제공할 수 있다. 시스템 어플리케이션(40)은 그 자체가 어플리케이션(30) 형태로 작성되므로, 어플리케이션(30)과 마찬가지로 컨테이너 커먼 모듈(22)에 연결되어 동작한다. 이러한 시스템 어플리케이션(40)은 어플리케이션 매니저(41) 및 어플리케이션 다운로더(43)를 포함한다. 4, 5, and 8, the system application 40 provides functions such as downloading and installation of the application 30, and the like. In addition, the system application 40 can provide a list of the installed applications 30 and the installed applications 30. The system application 40 itself is created in the form of an application 30, so it is connected to the container common module 22 and operates in the same manner as the application 30. The system application 40 includes an application manager 41 and an application downloader 43.

어플리케이션 매니저(41)는 시스템 API 플러그 인(433)을 통해 어플리케이션 런타임 계층부(300)의 레지스트리 매니저(320)에 접근하여 설치된 어플리케이션(30)의 정보를 얻어 올 수 있으며, 이를 UI를 통해 표시하는 역할을 수행한다. The application manager 41 accesses the registry manager 320 of the application runtime layer 300 through the system API plug-in 433 to obtain the information of the installed application 30 and displays it through the UI Role.

어플리케이션 다운로더(43)는 어플리케이션(30)을 서버로부터 다운로드 하여 설치하는 역할을 수행한다. The application downloader 43 downloads and installs the application 30 from the server.

다음으로, 본 발명의 실시예에 따른 어플리케이션 실행 방법에 대해서 설명하기로 한다. 이를 더미 컨테이너 실행부(220)의 동작을 통해 살펴보기로 한다. 도 9는 본 발명의 실시예에 따른 더미 컨테이너 실행부의 어플리케이션 실행 방법을 설명하기 위한 도면이다. Next, an application execution method according to an embodiment of the present invention will be described. The operation of the dummy container execution unit 220 will be described below. FIG. 9 is a diagram for explaining an application execution method of the dummy container execution unit according to the embodiment of the present invention.

도 9를 참조하면, 더미 컨테이너 실행부(220)는 자기 자신의 실행이 종료된 상태에 있다고 가정한다. 이러한 상태 중, 더미 컨테이너 실행부(220)는 S901 단계에서 어플리케이션(30) 실행 요청을 수신함으로써 자기 자신의 실행을 시작한다. 여기서, 실행의 시작이라 함은 객체를 인스턴스화 한다는 의미이다. 즉, 더미 컨테이너 실행부(220)는 하나의 객체(object)이며, 더미 컨테이너 실행부(220)가 실행을 시작한다는 것은 더미 컨테이너 실행부(220)가 인스턴스화 된다는 것을 의미한다. Referring to FIG. 9, the dummy container execution unit 220 assumes that its own execution is terminated. In this state, the dummy container execution unit 220 starts execution of itself by receiving a request to execute the application 30 in step S901. Here, the start of execution means to instantiate the object. That is, the dummy container execution unit 220 is an object, and the dummy container execution unit 220 starts execution, which means that the dummy container execution unit 220 is instantiated.

이와 같이, 그 실행을 시작한 더미 컨테이너 실행부(220)는 S903 단계에서 런타임 매니저(310)가 실행 중인지 여부를 확인한다. 런타임 매니저(310)가 실행 중인 경우는 이미 적어도 하나의 다른 어플리케이션(30)이 실행되고 있음을 의미한다. 또한, 런타임 매니저(310)가 실행 중이 아닌 경우는 어떤 어플리케이션(30)도 실행되고 있는 상태가 아님을 의미한다. 또한, 런타임 매니저(310)가 실행 중인 경우에는, 런타임 매니저(310)의 내부 구성들인 커맨드 핸들러(311), 컨텍스트 매니저(313), 이벤트 핸들러(315) 및 라이프 사이클 매니저(317)가 실행 중임을 의미한다. In this manner, the dummy container execution unit 220 that has started executing checks whether the runtime manager 310 is executing in step S903. If the runtime manager 310 is running, it means that at least one other application 30 is already running. If the runtime manager 310 is not running, it means that no application 30 is running. When the runtime manager 310 is running, the command handler 311, the context manager 313, the event handler 315, and the life cycle manager 317, which are internal components of the runtime manager 310, it means.

S903 단계의 확인 결과, 런타임 매니저(310)가 이미 실행 중이면, 더미 컨테이너 실행부(220)는 S907 단계에서 런타임 매니저(310)의 커맨드 핸들러(311)에 어플리케이션(30)을 실행하도록 실행 인자와 함께 실행 명령을 전송한다. 여기서, 실행 인자는 어플리케이션의 식별자 및 어플리케이션을 구성하는 페이지들의 어느 한 페이지의 주소 중 적어도 하나를 포함한다. 그런 다음, 더미 컨테이너 실행부(220)는 S909 단계에서 자기 자신의 실행을 종료한다. If it is determined in step S903 that the runtime manager 310 is already executing, the dummy container execution unit 220 sets the execution argument to execute the application 30 in the command handler 311 of the runtime manager 310 in step S907 Send the execute command together. Here, the execution factor includes at least one of an identifier of an application and an address of a page of pages constituting an application. Then, the dummy container execution unit 220 ends its execution in step S909.

반면, S903 단계의 확인 결과, 런타임 매니저(310)가 실행 중이 아니면, 더미 컨테이너 실행부(220)는 S905 단계에서 런타임 매니저(310)를 실행 시킨다. 런타임 매니저(310)를 실행시키는 것은 런타임 매니저(310)의 내부 구성들인 커맨드 핸들러(311), 컨텍스트 매니저(313), 이벤트 핸들러(315) 및 라이프 사이클 매니저(317)를 실행시키는 것과 같다. 따라서, 더미 컨테이너 실행부(220)는 S907 단계에서 런타임 매니저(310)의 커맨드 핸들러(311)에 어플리케이션(30)을 실행하도록 실행 인자와 함께 실행 명령을 전송한다. 여기서, 실행 인자는 어플리케이션의 식별자 및 어플리케이션을 구성하는 페이지들의 어느 한 페이지의 주소 중 적어도 하나를 포함한다. 그런 다음, 더미 컨테이너 실행부(220)는 S909 단계에서 자기 자신의 실행을 종료한다. On the other hand, if it is determined in step S903 that the runtime manager 310 is not running, the dummy container execution unit 220 executes the runtime manager 310 in step S905. Executing the runtime manager 310 is like executing the command handler 311, the context manager 313, the event handler 315 and the life cycle manager 317, which are internal components of the runtime manager 310. Accordingly, the dummy container execution unit 220 transmits an execution command together with the execution argument to execute the application 30 in the command handler 311 of the runtime manager 310 in step S907. Here, the execution factor includes at least one of an identifier of an application and an address of a page of pages constituting an application. Then, the dummy container execution unit 220 ends its execution in step S909.

이와 같이, 본 발명은 어플리케이션(30)의 실행을 트리거하는 더미 컨테이너 실행부(220)와 실제로 어플리케이션(30)을 실행시키는 런타임 매니저(310)가 서로 다른 객체(Object)로 이루어져 있으므로, 운영 체제(10)가 복수의 인스턴스를 허용하지 않는 경우에도, 어플리케이션(30)의 멀티 실행을 수행할 수 있다. The dummy container execution unit 220 that triggers the execution of the application 30 and the runtime manager 310 that actually executes the application 30 are made up of different objects. The multi-execution of the application 30 can be performed even if the application 10 does not allow a plurality of instances.

런타임 매니저(310)는 자기 자신의 실행 후, 실제로 어플리케이션(30)을 실행시키며, 복수의 어플리케이션(30)을 실행 시킬 수 있다. 하지만, 멀티 인스턴스를 지원하지 않는 운영 체제(10)의 경우, 복수의 어플리케이션(30)을 실행시키기 위해서, 런타임 매니저(310)는 적어도 2 번 실행되어야 하므로 복수의 어플리케이션(30)을 실행시킬 수 없다. The runtime manager 310 can actually execute the application 30 and execute a plurality of applications 30 after execution of itself. However, in the case of the operating system 10 that does not support multi-instance, in order to execute a plurality of applications 30, the runtime manager 310 must be executed at least twice, .

따라서 본 발명은 더미 컨테이너 실행부(220)가 어플리케이션(30)의 실행 요청이 있을 때마다 새로 실행되어, 실행 인자와 함께 런타임 매니저(310)에 어플리케이션(30)을 실행시키도록 실행 명령을 한 후, 자기 자신의 실행을 종료함으로써, 멀티 인스턴스를 지원하지 않는 운영 체제(10)에서도 복수의 어플리케이션(30)을 실행시킬 수 있다. Therefore, the present invention is executed every time the dummy container execution unit 220 requests execution of the application 30, and issues an execution command to the runtime manager 310 to execute the application 30 together with the execution factor , And by ending its own execution, it is possible to execute a plurality of applications 30 even in the operating system 10 that does not support multi-instance.

이어서, 본 발명의 실시예에 따른 어플리케이션(30) 실행 방법에 대해서 보다 상세하게 설명하기로 한다. 이때, 어떤 어플리케이션(30)도 실행되고 있지 않은 상태에서 어플리케이션(30)을 실행시키는 방법과, 적어도 하나의 어플리케이션(30)이 실행되어 있는 상태에서 다른 어플리케이션(30)을 실행시키는 방법으로 구분하여 설명하기로 한다. Next, a method of executing the application 30 according to the embodiment of the present invention will be described in more detail. At this time, a method of executing the application 30 in a state in which no application 30 is executed, and a method of executing another application 30 in a state in which at least one application 30 is executed .

도 10은 본 발명의 실시예에 따른 어떤 어플리케이션도 실행되고 있지 않은 상태에서 어플리케이션을 실행시키는 방법을 설명하기 위한 도면이다. 도 10에서 어떤 어플리케이션(30)도 실행되고 있지 않은 상태라고 가정한다. 또한, 본 발명의 실시예에 따라 더미 컨테이너 실행부(220)도 실행 종료 중인 상태이다. 10 is a diagram for explaining a method of executing an application in a state in which no application is executed according to the embodiment of the present invention. It is assumed in FIG. 10 that no application 30 is being executed. Also, according to the embodiment of the present invention, the dummy container execution unit 220 is also in a state where the execution is finished.

도 10을 참조하면, 사용자가 입력부(14)를 통해 특정의 어플리케이션(30)을 실행하도록 요청하면, 제어부(11)는 이를 감지하며, 이러한 입력에 대한 감지는 운영 체제(10)를 통해 이루어진다. 이에 따라, 운영 체제(10)는 S1001 단계에서 더미 컨테이너 실행부(220)를 실행시키고, 사용자의 특정 어플리케이션(30)에 대한 실행 요청을 실행할 어플리케이션(30)의 실행 인자와 함께 전달한다. Referring to FIG. 10, when the user requests to execute a specific application 30 through the input unit 14, the control unit 11 senses the input, and the detection of the input is performed through the operating system 10. Accordingly, the operating system 10 executes the dummy container execution unit 220 in step S1001 and delivers the execution request for the specific application 30 of the user together with the execution parameter of the application 30 to execute.

어떤 어플리케이션(30)도 실행되고 있지 않은 상태이므로, 런타임 매니저(310)는 실행 중이 아니다. 따라서, 어플리케이션(30) 실행 요청을 수신한 더미 컨테이너 실행부(220)는 S1003 단계에서 어플리케이션(30)을 실제로 실행시키는 역할을 하는 런타임 매니저(310)를 실행시킨다. 런타임 매니저(310)가 실행됨에 따라 런타임 매니저(310)의 구성 요소인 커맨드 핸들러(311) 및 컨텍스트 매니저(313)도 실행된다. 따라서, 더미 컨테이너 실행부(220)는 S1005 단계에서 커맨드 핸들러(311)에 어플리케이션(30)을 실행하도록 실행 명령과 함께 실행 인자를 전송한다. 그런 다음, 더미 컨테이너 실행부(220)는 S1007 단계에서 자신의 실행을 종료한다. 여기서, S1007 단계는 S1007 단계 이후의 S1009 내지 S1013 단계의 실행 순서와 상관 없이, S1005 단계 후, 바로 수행된다. 이와 같이, 더미 컨테이너 실행부(220)는 어플리케이션(30) 실행 명령을 전송하고 바로 종료함으로써, 멀티 실행을 지원하지 않는 운영 체제(10)에서도 다른 어플리케이션(30) 실행 요청을 수신할 준비를 갖추게 된다. Since no application 30 is running, the runtime manager 310 is not running. Accordingly, the dummy container execution unit 220 receiving the execution request of the application 30 executes the runtime manager 310, which plays the role of actually executing the application 30 in step S1003. As the runtime manager 310 is executed, the command handler 311 and the context manager 313, which are components of the runtime manager 310, are also executed. Therefore, in step S1005, the dummy container execution unit 220 transmits an execution command together with an execution command to execute the application 30 in the command handler 311. [ Then, the dummy container execution unit 220 ends its execution in step S1007. Here, step S1007 is performed immediately after step S1005 regardless of the order of execution of steps S1009 to S1013 after step S1007. In this manner, the dummy container execution unit 220 transmits the application 30 execution command and immediately terminates the operation so that the operating system 10 that does not support the multi-execution is ready to receive another application 30 execution request .

한편, 실행 인자를 포함하는 실행 명령을 수신한 커맨드 핸들러(311)는 S1011 단계에서 런타임 매니저(310)의 내부 구성인 컨텍스트 매니저(313)에 실행 인자에 대응하는 어플리케이션(30)이 실행되도록 해당 실행 명령을 제공한다. 그러면, 컨텍스트 매니저(313)는 S1011 단계에서 해당 어플리케이션(30)을 실행 시킨다. 이때, 컨텍스트 매니저(313)는 브라우저 엔진 계층부(400)의 브라우저 엔진(410)을 호출함으로써 어플리케이션을 실행시킨다. 이때, 브라우저 엔진(410)은 S1013 단계에서 어플리케이션의 랜더링을 수행한다. On the other hand, the command handler 311 that receives the execution command including the execution parameter causes the context manager 313, which is an internal configuration of the runtime manager 310, to execute the application 30 corresponding to the execution parameter Command. Then, the context manager 313 executes the corresponding application 30 in step S1011. At this time, the context manager 313 calls the browser engine 410 of the browser engine layer 400 to execute the application. At this time, the browser engine 410 performs rendering of the application in step S1013.

도 11은 본 발명의 실시예에 따른 어플리케이션이 실행되어 있는 상태에서 다른 어플리케이션을 실행시키는 방법을 설명하기 위한 도면이다. 도 11에서는 적어도 하나의 어플리케이션(30)이 실행 중인 상태이며, 더미 컨테이너 실행부(220)은 실행 종료 중인 상태라고 가정한다. 11 is a diagram for explaining a method for executing another application in a state where an application according to an embodiment of the present invention is executed. In FIG. 11, it is assumed that at least one application 30 is in execution and the dummy container execution unit 220 is in a state of being in execution.

도 11을 참조하면, 사용자가 입력부(14)를 통해 특정의 어플리케이션(30)을 실행하도록 요청하면, 제어부(11)는 이를 감지하며, 이러한 입력에 대한 감지는 운영 체제(10)를 통해 이루어진다. 이에 따라, 운영 체제(10)는 S1101 단계에서 더미 컨테이너 실행부(220)를 실행시키고, 사용자의 특정 어플리케이션(30)에 대한 실행 요청을 실행할 어플리케이션(30)의 실행 인자와 함께 전달한다. Referring to FIG. 11, when the user requests to execute a specific application 30 through the input unit 14, the control unit 11 senses this, and the detection of such input is performed through the operating system 10. Accordingly, the operating system 10 executes the dummy container execution unit 220 in step S1101 and delivers the execution request for the specific application 30 of the user together with the execution parameter of the application 30 to execute.

어느 하나의 어플리케이션(30)이 실행되어 있는 상태이므로, 런타임 매니저(310)가 실행 중인 상태이며, 이에 따라, 런타임 매니저(310)의 구성 요소인 커맨드 핸들러(311) 및 컨텍스트 매니저(313)도 실행 중이다. 따라서 더미 컨테이너 실행부(220)는 S1103 단계에서 커맨드 핸들러(311)에 어플리케이션(30)을 실행하도록 실행 명령과 함께 실행 인자를 제공한다. 그런 다음, 더미 컨테이너 실행부(220)는 S1105 단계에서 자신의 실행을 종료한다. 여기서, S1005 단계는 S1005 단계 이후의 S1107 내지 S1111 단계의 실행 순서와 상관 없이, S1003 단계 후, 바로 수행된다. 이와 같이, 더미 컨테이너 실행부(220)는 어플리케이션(30) 실행 명령을 전송하고 바로 종료함으로써, 멀티 실행을 지원하지 않는 운영 체제(10)에서도 다른 어플리케이션(30) 실행 요청을 수신할 준비를 갖추게 된다. The command manager 311 and the context manager 313 which are components of the runtime manager 310 are also executed because the runtime manager 310 is in the running state because any one of the applications 30 is running It is. Therefore, in step S1103, the dummy container execution unit 220 provides the execution command with the execution command to execute the application 30 in the command handler 311. [ Then, the dummy container execution unit 220 ends its execution in step S1105. Here, step S1005 is performed immediately after step S1003 irrespective of the execution order of steps S1107 to S1111 after step S1005. In this manner, the dummy container execution unit 220 transmits the application 30 execution command and immediately terminates the operation so that the operating system 10 that does not support the multi-execution is ready to receive another application 30 execution request .

한편, 실행 명령을 수신한 커맨드 핸들러(311)는 S1107 단계에서 런타임 매니저(310)의 내부 구성인 컨텍스트 매니저(313)에 실행 인자에 대응하는 어플리케이션(30)이 실행되도록 해당 실행 명령을 제공한다. 그러면, 컨텍스트 매니저(313)는 S1109 단계에서 해당 어플리케이션(30)을 실행 시킨다. 이때, 컨텍스트 매니저(313)는 브라우저 엔진 계층부(400)의 브라우저 엔진(410)을 호출하여 어플리케이션(30)을 실행시키며, 브라우저 엔진(410)은 S1111 단계에서 어플리케이션의 랜더링을 수행한다. On the other hand, the command handler 311 receiving the execution command provides the execution command to the context manager 313, which is an internal configuration of the runtime manager 310, so that the application 30 corresponding to the execution parameter is executed in step S1107. Then, the context manager 313 executes the corresponding application 30 in step S1109. At this time, the context manager 313 calls the browser engine 410 of the browser engine layer 400 to execute the application 30, and the browser engine 410 performs rendering of the application in step S1111.

이상에서 설명한 바와 같이, 어플리케이션(30) 실행 요청에 따라, 더미 컨테이너 실행부(220)가 어플리케이션(30) 실행을 트리거하는 프로세스를 처리한 후, 바로 자신의 실행을 종료함으로써, 운영 체제(10)가 하나의 객체에 대해 다중 실행 또는 멀티 인스턴스를 지원하지 않는 경우에도, 복수의 서로 다른 어플리케이션(30)을 실행시킬 수 있다. As described above, according to the application 30 execution request, the dummy container execution unit 220 processes the process of triggering the execution of the application 30, and immediately terminates its execution, It is possible to execute a plurality of different applications 30 even when the application does not support multiple execution or multi-instance for one object.

본 발명의 실시예에 따른 어플리케이션(30) 실행 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method for executing the application 30 according to the embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable recording medium. The recording medium may include program commands, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. For example, the recording medium may be a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical medium such as a CD-ROM or a DVD, a magneto-optical medium such as a floppy disk magneto-optical media, and hardware devices that are specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.It should be noted that the embodiments of the present invention disclosed in the present specification and drawings are only illustrative of specific examples for the purpose of understanding and are not intended to limit the scope of the present invention. It will be apparent to those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.

본 발명은 이동통신 단말기, PMP, PDA, 노트북, MP3 플레이어와 같은 다양한 종류의 사용자 장치에 적용되는 어플리케이션 실행 장치, 그 방법, 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것으로, 어플리케이션 실행 요청을 수신하는 객체와 어플리케이션을 실행시키는 객체 두 개의 객체를 구비하고, 어플리케이션 실행 요청을 수신하는 객체가 실행 요청을 수신할 경우에만 실행하여 수신된 실행 요청을 전달한 후, 자기 자신을 종료한 후, 다른 실행 요청에 대비함으로써, 운영 체제가 다중 실행(인스턴스)를 지원하지 않는 경우에도 어플리케이션의 다중 실행을 수행할 수 있어, 본 발명의 실시예에 따른 플랫폼을 이용하는 경우, 운영 체제의 종류에 무관하게 어플리케이션의 다중 실행을 수행할 수 있으며, 이러한 이유로 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.The present invention relates to an application execution apparatus applied to various types of user apparatuses such as a mobile communication terminal, a PMP, a PDA, a notebook, and an MP3 player, a method thereof, and a computer readable recording medium on which the method is recorded. An object for receiving a request and an object for executing an application. The object is executed only when an object receiving the application execution request receives the execution request, and the received execution request is transmitted. After the object is terminated, By preparing for another execution request, multiple executions of an application can be performed even when the operating system does not support multiple executions (instances). When using the platform according to the embodiment of the present invention, Multiple executions of an application can be performed, and for this reason, Because of the degree to which the potential not only be sufficient to explicitly carried in reality there is industrial applicability.

10: 운영 체제 11: 제어부
12: 저장부 13: 주변 장치
14: 입력부 15: 표시부
16: 무선 통신부 17: GPS부
18: 오디오 처리부 19: 카메라부
20: 플랫폼 21: 브라우저 엔진 컨테이너 코어
22: 브라우저 엔진 컨테이너 커먼 모듈
30: 어플리케이션 40: 시스템 어플리케이션
41: 어플리케이션 매니저 43: 어플리케이션 다운로더
200: 브라우저 엔진 컨테이너 실행부 210: 컨테이너 에이전트
211: 어플리케이션 런처 213: 컨테이너 업데이트 모듈
220: 더미 컨테이너 실행부 230: 대기 모드 에이전트
300: 어플리케이션 런타임 계층부 310: 런타임 매니저
311: 커맨드 핸들러 313: 컨텍스트 매니저
315: 이벤트 핸들러 317: 라이프 사이클 매니저
320: 레지스트리 매니저 330: UI 엔진
340: 네트워크 셀렉터 350: 어플리케이션 동기 매니저
400: 브라우저 엔진 계층부 410: 브라우저 엔진
411: 엔진 코어 413: 스크립트 엔진
420: 플러그 인 매니저 430: 플러그 인
431: 리소스 플러그 인 433: 시스템 API 플러그 인
435: 공통 작업 플러그 인 437: 싱크 플러그 인
500: 보안 계층부 510: 인증 매니저
520: 정책 매니저
600: 이식 계층부 610: 인터페이스 모듈
611: HTTP 모듈 613: XML 모듈
615: 스레드 모듈 617: UI 백엔드 모듈
619: 보안 스토리지 모듈 621: 리소스 매니저
623: OS API 매니저 625: 공통 작업 매니저
627: 싱크 매니저 629: 로컬 스토리지 모듈
10: Operating system 11:
12: storage part 13: peripheral device
14: input unit 15: display unit
16: wireless communication unit 17: GPS unit
18: audio processing unit 19: camera unit
20: Platform 21: Browser Engine Container Core
22: Browser Engine Container Common Module
30: Application 40: System Application
41: Application Manager 43: Application Downloader
200: Browser engine container execution unit 210: Container agent
211: Application Launcher 213: Container Update Module
220: dummy container execution unit 230: standby mode agent
300: Application runtime layer 310: Runtime manager
311: Command Handler 313: Context Manager
315: Event Handler 317: Life Cycle Manager
320: Registry manager 330: UI engine
340: Network Selector 350: Application Sync Manager
400: Browser Engine Layer 410: Browser Engine
411: engine core 413: script engine
420: Plug-in Manager 430: Plug-in
431: Resource plug-in 433: System API plug-in
435: Common operation plug-in 437: Sync plug-in
500: security layer unit 510: authentication manager
520: Policy Manager
600: Portion layer unit 610: Interface module
611: HTTP module 613: XML module
615: Thread module 617: UI backend module
619: Secure Storage Module 621: Resource Manager
623: OS API Manager 625: Common Operations Manager
627: Sync manager 629: Local storage module

Claims (25)

어플리케이션 실행 장치에 있어서,
어플리케이션을 실행시키기 위한 실행 명령 수신을 위한 커맨드 핸들러를 가지며, 상기 실행 명령을 수신하여 어플리케이션을 실행시키는 런타임 매니저; 및
운영 체제로부터 어플리케이션 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 실행 중이 아닌 경우, 상기 런타임 매니저를 실행 시킨 후, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 더미 컨테이너 실행부;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
In an application execution device,
A runtime manager having a command handler for receiving an execution command for executing an application, the execution manager receiving the execution command and executing the application; And
The method of claim 1, further comprising: determining whether the runtime manager is running when the application execution request is received from the operating system; executing the runtime manager if the runtime manager is not running; And a dummy container execution unit for sending the execution command to terminate the execution of the application.
제1항에 있어서, 상기 더미 컨테이너 실행부는
어플리케이션 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 이미 실행 중인 경우, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 것을 특징으로 하는 어플리케이션 실행 장치.
The apparatus of claim 1, wherein the dummy container execution unit
When the runtime manager is already executing, transmitting the execution command including an execution parameter, which is information for executing an application, to the command handler, And terminates the execution of the application.
제1항에 있어서, 상기 런타임 매니저는
어플리케이션을 실행시키는 컨텍스트 매니저를 더 포함하며,
상기 커맨드 핸들러는 상기 컨텍스트 매니저에 상기 실행 인자를 포함하는 상기 실행 명령을 전달하는 것을 특징으로 하는 어플리케이션 실행 장치.
The method of claim 1, wherein the runtime manager
Further comprising a context manager for executing the application,
And the command handler delivers the execution command including the execution parameter to the context manager.
제3항에 있어서, 상기 어플리케이션 실행 장치는
상기 어플리케이션을 랜더링하는 브라우저 엔진을 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
4. The system according to claim 3, wherein the application execution device
And a browser engine for rendering the application.
제4항에 있어서, 상기 컨텍스트 매니저는 상기 실행 명령에 따라 상기 어플리케이션을 실행시키고, 실행된 어플리케이션을 랜더링하도록 상기 브라우저 엔진을 호출하는 것을 특징으로 하는 어플리케이션 실행 장치. 5. The application execution device according to claim 4, wherein the context manager calls the browser engine to execute the application according to the execution command and render the executed application. 제5항에 있어서, 상기 컨텍스트 매니저는
상기 어플리케이션의 윈도우를 생성하며, 상기 브라우저 엔진은 상기 어플리케이션의 랜더링된 결과를 상기 윈도우에 표시하는 것을 특징으로 하는 어플리케이션 실행 장치.
6. The method of claim 5, wherein the context manager
Wherein the browser engine generates a window of the application, and the browser engine displays the rendered result of the application on the window.
제4항에 있어서, 상기 브라우저 엔진은
상기 어플리케이션의 마크 업 랭귀지와 스타일 시트를 랜더링하기 위한 엔진 코어; 및
상기 어플리케이션의 스크립트 언어를 처리하기 위한 인터프리터인 스크립트 엔진;을 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
5. The method of claim 4, wherein the browser engine
An engine core for rendering a markup language and a style sheet of the application; And
And a script engine which is an interpreter for processing a script language of the application.
제1항에 있어서,
상기 어플리케이션 실행 후, 실행된 어플리케이션으로부터 운영 체제의 종류에 무관하게 상기 운영 체제가 관장하는 기능 실행의 요청을 수신하여, 수신된 기능 실행의 요청을 전달하는 브라우저 엔진 계층부; 및
상기 기능 실행 요청을 상기 운영 체제의 종류에 맞게 변경하여 상기 기능 실행 요청에 해당하는 기능을 실행하도록 지시하는 이식 계층부;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
The method according to claim 1,
A browser engine layer for receiving a request for executing a function supervised by the operating system and transmitting a request for executing the received function, regardless of the type of the operating system, after executing the application; And
Further comprising: an import layer unit for changing the function execution request according to the type of the operating system and instructing execution of a function corresponding to the function execution request.
제8항에 있어서, 상기 이식 계층부는
적어도 하나의 인터페이스 모듈을 포함하며, 상기 인터페이스 모듈 각각은 상기 기능 실행의 종류에 따른 인터페이스를 가지는 것을 특징으로 하는 어플리케이션 실행 장치.
9. The apparatus of claim 8, wherein the implantation layer
And at least one interface module, wherein each of the interface modules has an interface according to the type of the execution of the function.
제9항에 있어서, 상기 인터페이스는
상기 해당하는 기능을 실행하도록 지시하기 위해 상기 운영 체제의 종류에 맞춰 구현됨과 동시에 상기 컨테이너 커먼 모듈로부터 요청을 수신하기 위해 상기 컨테이너 커먼 모듈과 상호간에 맞춰 구현되는 것을 특징으로 하는 어플리케이션 실행 장치.
10. The apparatus of claim 9, wherein the interface
Wherein the container common module is implemented in accordance with the type of the operating system to instruct execution of the corresponding function, and is configured to be mutually compatible with the container common module in order to receive a request from the container common module.
제9항에 있어서, 상기 인터페이스 모듈은,
HTTP 및 HTTPS 관련 기능을 제공하는 HTTP 모듈;
XML 파서 기능 및 XSLT 변환 기능을 제공하는 XML 모듈;
스레드 기능을 제공하는 스레드 모듈;
사용자 인터페이스를 이식하기 위해 필요한 상기 운영 체제 자체의 윈도우 시스템 기능을 제공하는 UI 백엔드 모듈;
보안 스토리지에 접근할 수 있는 기능을 제공하는 보안 스토리지 모듈;
스토리지에 접근할 수 있는 기능을 제공하는 로컬 스토리지 모듈; 단말의 자원에 관련된 기능을 제공하는 리소스 매니저;
OS API와 관련된 기능을 제공하는 OS API 매니저;
타 어플리케이션과의 연동을 위한 기능을 제공하는 공통 작업 매니저; 및
타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능을 제공하는 싱크 매니저 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
10. The apparatus of claim 9,
An HTTP module providing HTTP and HTTPS related functionality;
An XML module providing an XML parser function and an XSLT transformation function;
A thread module providing a thread function;
A UI backend module that provides the operating system's own window system functionality needed to port the user interface;
A secure storage module that provides access to secure storage;
A local storage module that provides access to storage; A resource manager for providing functions related to resources of the terminal;
An OS API manager that provides functions related to the OS API;
A common task manager for providing a function for interworking with other applications; And
And a sink manager for providing functions related to data synchronization with other apparatuses and interlocking with other apparatuses.
제8항에 있어서, 상기 브라우저 엔진 계층부는
상기 기능 실행의 종류에 대응하여 상기 요청을 상기 이식 계층부에 전달하는 적어도 하나의 플러그 인;
상기 기능 실행의 종류에 따라 대응하는 상기 플러그 인을 호출하는 플러그 인 매니저; 및
상기 플러그 인이 호출되면 상기 기능 실행의 요청을 전달하도록 상기 플러그 인에 지시하는 브라우저 엔진;을 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
9. The apparatus of claim 8, wherein the browser engine layer
At least one plug-in for delivering the request to the grafting layer portion in correspondence with the type of function execution;
A plug-in manager that calls the plug-in corresponding to the type of the function execution; And
And a browser engine for instructing the plug-in to transmit a request for executing the function when the plug-in is called.
제12항에 있어서, 상기 플러그 인은
단말 자원에 관련된 기능의 실행 요청을 상기 이식 계층에 전달하는 리소스 플러그 인;
OS API 관련 기능의 실행 요청을 상기 이식 계층에 전달하는 시스템 API 플러그 인;
타 어플리케이션과 연동을 위한 기능의 실행 요청을 상기 이식 계층에 전달하는 공통 작업 플러그 인; 및
타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능의 실행 요청을 상기 이식 계층에 전달하는 싱크 플러그 인; 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
13. The plug of claim 12, wherein the plug-
A resource plug-in for transmitting an execution request of a function related to terminal resources to the transplantation layer;
A system API plug-in for transferring an execution request of an OS API-related function to the above-mentioned porting layer;
A common task plug-in for transmitting an execution request of a function for interworking with another application to the transplantation layer; And
A sink plug for transmitting an execution request of a function related to interlocking with another device and data synchronization with another device to the transplanting layer; The application executing apparatus comprising:
제12항에 있어서, 상기 어플리케이션 실행 장치는, 보안 계층부를 더 포함하며, 상기 보안 계층부는
상기 어플리케이션 및 상기 플러그 인에 대해 설치 및 실행 시 인증을 수행하는 인증 매니저; 및
상기 브라우저 엔진 계층부의 상기 이식 계층부에 대한 접근 범위 및 접근 권한을 관리하는 정책 매니저;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
13. The apparatus of claim 12, wherein the application execution device further comprises a security layer,
An authentication manager for performing authentication when the application and the plug-in are installed and executed; And
And a policy manager for managing an access range and an access right to the port layer of the browser engine layer unit.
제8항에 있어서,
상기 운영 체제의 기능 실행에 의해 관리되는 적어도 하나의 주변 장치;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
9. The method of claim 8,
And at least one peripheral device managed by the execution of the function of the operating system.
제15항에 있어서, 상기 기능 실행은
상기 운영 체제 자체 기능 실행, 상기 운영 체제 자체 기능 실행에 따른 자원의 사용, 상기 주변 장치의 개별 기능의 실행, 및 상기 주변 장치의 개별 기능의 실행에 따른 자원의 사용 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
16. The method of claim 15,
And at least one of execution of the operating system's own functions, use of resources in accordance with execution of the operating system's own functions, execution of individual functions of the peripheral devices, and use of resources in execution of individual functions of the peripheral devices To the application execution unit.
제15항에 있어서, 상기 주변 장치는,
무선 통신을 수행하기 위한 무선 통신부;
GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하기 위한 GPS부;
사용자의 입력을 받기 위한 입력부;
단말의 사용에 따라 발생하는 화면 데이터를 표시하기 위한 표시부;
음성 신호를 입력 받고 출력 받기 위한 마이크 및 스피커 등을 구비하는 오디오 처리부; 및
카메라 기능을 수행하기 위한 카메라부; 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
16. The system of claim 15,
A wireless communication unit for performing wireless communication;
A GPS unit for receiving GPS signals from GPS (Global Positioning System) satellites;
An input unit for receiving a user input;
A display unit for displaying screen data generated according to use of the terminal;
An audio processor having a microphone and a speaker for receiving and outputting a voice signal; And
A camera unit for performing a camera function; The application executing apparatus comprising:
어플리케이션 실행 방법에 있어서,
더미 컨테이너 실행부가 운영 체제로부터 어플리케이션 실행 요청에 따라 자기 자신의 실행을 시작하는 단계;
상기 더미 컨테이너 실행부가 어플리케이션을 실행시키기 위한 실행 명령을 수신하는 커맨드 핸들러를 포함하는 런타임 매니저의 실행 여부를 확인하는 단계;
상기 확인 결과, 상기 런타임 매니저가 실행 중이 아니면, 상기 런타임 매니저를 실행시키는 단계;
상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 실행 명령을 전송하는 단계; 및
상기 더미 컨테이너 실행부가 자기 자신의 실행을 종료하는 종료 단계;를 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
In an application execution method,
The dummy container execution unit initiating execution of itself according to an application execution request from the operating system;
Checking whether a runtime manager including a command handler for receiving an execution command for executing the application is executed;
Executing the runtime manager if the runtime manager is not running;
Transmitting an execution command including an execution parameter, which is information for executing an application, to the command handler; And
And terminating the execution of the dummy-container executing unit itself by the dummy-container executing unit.
제18항에 있어서, 상기 확인하는 단계 후,
상기 확인 결과, 상기 런타임 매니저가 이미 실행 중이면, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 실행 명령을 전송하는 단계; 및
상기 더미 컨테이너 실행부가 자기 자신의 실행을 종료하는 단계;
를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
19. The method of claim 18,
Transmitting an execution command including an execution parameter, which is information for executing an application, to the command handler if the runtime manager is already executing the command; And
Ending execution of the dummy container execution unit itself;
Lt; RTI ID = 0.0 > 1, < / RTI >
제18항에 있어서, 상기 전송하는 단계 후,
상기 커맨드 핸들러가 컨텍스트 매니저에 상기 실행 인자를 포함하는 상기 실행 명령을 전달하는 단계; 및
상기 컨텍스트 매니저가 상기 실행 명령에 따라 어플리케이션을 실행 시키는 단계;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
19. The method of claim 18,
The command handler delivering the execution command including the execution parameter to the context manager; And
And executing the application according to the execution command by the context manager.
제20항에 있어서, 상기 실행 인자는
상기 어플리케이션을 다른 어플리케이션과 구분할 수 있는 식별자 및 상기 어플리케이션을 이루는 복수의 페이지의 주소 중 어느 일 페이지의 주소 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
21. The method of claim 20,
An identifier for distinguishing the application from other applications, and an address of one page among a plurality of page addresses constituting the application.
제21항에 있어서, 상기 어플리케이션을 실행시키는 단계는
상기 컨텍스트 매니저가 상기 실행 인자로 상기 일 페이지의 주소를 수신하면, 상기 일 페이지의 주소를 상기 어플리케이션의 시작 페이지로 설정하여 실행시키는 것을 특징으로 하는 어플리케이션 실행 방법.
22. The method of claim 21,
And when the context manager receives the address of the page as the execution parameter, the context manager sets the address of the page as the start page of the application and executes the application.
제21항에 있어서, 상기 어플리케이션을 실행시키는 단계는
상기 컨텍스트 매니저가 상기 실행 인자로 식별자를 수신하면, 해당하는 식별자를 가지는 어플리케이션의 디폴트 페이지를 시작 주소로 하여 실행시키는 것을 특징으로 하는 어플리케이션 실행 방법.
22. The method of claim 21,
And when the context manager receives the identifier as the execution parameter, executes the application with the default page of the application having the corresponding identifier as the start address.
제20항에 있어서, 상기 어플리케이션을 실행시키는 단계 후,
상기 컨텍스트 매니저가 브라우저 엔진을 호출하여 상기 어플리케이션을 랜더링하는 단계;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
21. The method of claim 20, further comprising: after executing the application,
And the context manager calls a browser engine to render the application.
제18항 내지 제24항 중 어느 한 항에 따른 방법이 기록된 컴퓨터로 판독 가능한 기록매체.A computer-readable recording medium on which the method according to any one of claims 18 to 24 is recorded.
KR20100042400A 2010-05-06 2010-05-06 Apparatus for executing application, method thereof and computer recordable medium storing the method KR101482149B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100042400A KR101482149B1 (en) 2010-05-06 2010-05-06 Apparatus for executing application, method thereof and computer recordable medium storing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100042400A KR101482149B1 (en) 2010-05-06 2010-05-06 Apparatus for executing application, method thereof and computer recordable medium storing the method

Publications (2)

Publication Number Publication Date
KR20110122996A KR20110122996A (en) 2011-11-14
KR101482149B1 true KR101482149B1 (en) 2015-01-14

Family

ID=45393293

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100042400A KR101482149B1 (en) 2010-05-06 2010-05-06 Apparatus for executing application, method thereof and computer recordable medium storing the method

Country Status (1)

Country Link
KR (1) KR101482149B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001612A (en) * 2019-06-28 2021-01-06 한국전자통신연구원 Method and apparatus for interworking cloud platform and securty tools

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460515B1 (en) * 2010-05-06 2014-11-12 에스케이플래닛 주식회사 Apparatus for executing application, method thereof and computer recordable medium storing the method
KR101482152B1 (en) * 2010-05-07 2015-01-14 에스케이플래닛 주식회사 Web application executable device and method with page association function
KR101482151B1 (en) * 2010-05-11 2015-01-14 에스케이플래닛 주식회사 Device and method for executing web application

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080038825A (en) * 2006-10-31 2008-05-07 에스케이 텔레콤주식회사 Multitasking terminal and application switching method
US20090037649A1 (en) 2004-07-07 2009-02-05 Yongyong Xu Methods and Systems for Running Multiple Operating Systems in a Single Mobile Device
KR100918658B1 (en) 2009-01-30 2009-09-22 (주)티비스톰 Middleware device for executing multiple applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037649A1 (en) 2004-07-07 2009-02-05 Yongyong Xu Methods and Systems for Running Multiple Operating Systems in a Single Mobile Device
KR20080038825A (en) * 2006-10-31 2008-05-07 에스케이 텔레콤주식회사 Multitasking terminal and application switching method
KR100918658B1 (en) 2009-01-30 2009-09-22 (주)티비스톰 Middleware device for executing multiple applications

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001612A (en) * 2019-06-28 2021-01-06 한국전자통신연구원 Method and apparatus for interworking cloud platform and securty tools
KR102209993B1 (en) 2019-06-28 2021-02-01 한국전자통신연구원 Method and apparatus for interworking cloud platform and securty tools
US11159577B2 (en) 2019-06-28 2021-10-26 Electronics And Telecommunications Research Institute Method and apparatus for interworking of cloud platform and security tools

Also Published As

Publication number Publication date
KR20110122996A (en) 2011-11-14

Similar Documents

Publication Publication Date Title
US11829186B2 (en) System and methods for integration of an application runtime environment into a user computing environment
EP3255909B1 (en) Messaging application interacting with one or more extension applications
WO2011060735A1 (en) Method,device and system for invoking widget
KR101482150B1 (en) Web application executable device and web application management method therof
US20240086231A1 (en) Task migration system and method
KR101482149B1 (en) Apparatus for executing application, method thereof and computer recordable medium storing the method
KR101482151B1 (en) Device and method for executing web application
JP3986721B2 (en) Software module dynamic exchange method and software module dynamic exchange program recording medium
KR101460515B1 (en) Apparatus for executing application, method thereof and computer recordable medium storing the method
KR101154717B1 (en) A method and apparatus for managing multiple languages in a data language
KR101482152B1 (en) Web application executable device and method with page association function
EP2075697A1 (en) Portable terminal, server, and method for realizing function of portable terminal using network
KR20130034832A (en) Expansion function supporting method and electric device supporting the same
JP2009070373A (en) Communication device and program
KR101599713B1 (en) Apparatus for transmitting and receiving the status for executing web application seamlessly in a terminal, method thereof and computer recordable medium storing the method
CN110399040A (en) Multi-modal exchange method, ustomer premises access equipment, server and system
KR101000195B1 (en) Mobile device and method of providing mobile widget service by the mobile device
KR20140128017A (en) Information processing apparatus and control method thereof
KR100866741B1 (en) Mobile device and method of providing mobile booking widget service by the mobile device
JP2006146512A (en) Information processor, its control method, and program
KR20110134593A (en) Method and system for providing advertising using platform of mobile device
WO2022081859A1 (en) Page loading method and display apparatus
KR20120136773A (en) Method, apparatus and system for calling contents considering user's situation
KR20160128957A (en) Method, apparatus and system for calling contents considering user's situation
Lalonde et al. Communications and Speech

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for 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: 20180105

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191220

Year of fee payment: 6