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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/32—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
- G07F17/3225—Data transfer within a gaming system, e.g. data sent between gaming machines and users
- G07F17/3232—Data 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
본 발명은 단말의 어플리케이션 실행 기술에 관한 것으로, 더욱 상세하게는, 단말에 이식된 운영 체제의 종류에 무관하게 여러 개의 어플리케이션을 동시에 실행시킬 수 있는 실행 환경을 제공하는 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것이다. 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
저장부(12)는 데이터를 저장하기 위한 장치로, 주 기억 장치 및 보조 기억 장치를 포함한다. 저장부(12)는 운영 체제(10), 플랫폼(20) 및 어플리케이션(30)을 저장하며, 단말의 기능 실행에 따라 발생하는 각종 데이터 들을 저장한다. The
제어부(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
제어부(11)는 운영 체제(10)의 요청에 따라 주변 장치(13)를 제어한다. 즉, 운영 체제(10)는 제어부(11)를 통해 단말의 기능 실행을 관장한다. 여기서, 단말의 기능을 실행하는 것은 주변 장치(13)의 개별 기능 및 이 개별 기능 실행에 따른 자원(resource)의 사용을 포함하며, 운영 체제(10)의 자체 기능 실행과, 운영 체제(10)의 자체 기능 실행에 따른 자원의 사용을 더 포함한다. The
기본적으로, 운영 체제(10)는 어플리케이션(30)의 실행 중 상술한 단말 기능의 실행을 요청하면, 운영 체제(10)는 어플리케이션(30)에 인터페이스를 제공하며, 어플리케이션(30)은 제공된 인터페이스를 통해 단말 기능의 실행을 운영 체제(10)에 요청한다. 이러한 인터페이스는 어플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)가 될 수 있다. 이 인터페이스는 라이브러리 형태로 구현되며, 운영 체제(10) 별로 라이브러리는 고유한 형식으로 구현된다. 따라서 운영 체제(10)는 그 운영 체제(10)의 종류에 따라 동일한 기능을 제공하는 인터페이스의 형식이 다르다. 이와 같이, 어플리케이션(30)이 운영 체제(10)를 직접 참조하여 실행되는 경우, 어플리케이션(30)은 운영 체제(10)의 종류에 따라 다르게 구현되어야 한다. Basically, when the
한편, 플랫폼(20)은 운영 체제(10)가 제공하는 단말 기능 실행을 위한 인터페이스를 어플리케이션(30)이 이용할 수 있도록 제공하되, 어플리케이션(30) 입장에서는 운영 체제(10)의 종류에 무관하게 제공한다. 즉, 운영 체제(10)는 단말 의 기능 실행을 위한 인터페이스를 그 운영 체제(10)의 종류에 따라 다른 형식을 가지는 인터페이스로 제공하지만, 플랫폼(20)은 서로 다른 형식을 가지는 인터페이스를 하나의 형식으로 변환시켜 어플리케이션(30)에 제공한다. 바꿔 말하면, 어플리케이션(30)이 하나의 형식을 가지는 인터페이스를 통해 단말 기능 실행을 요청하면, 플랫폼(20)은 그 요청을 각 운영 체제(10)가 제공하는 인터페이스의 형식에 맞게 변환하여 운영 체제(10)에 전달하고, 운영 체제(10)는 이를 수행한다. 이에 따라, 어플리케이션(30)은 플랫폼(20)이 제공하는 인터페이스를 통해 운영 체제(10)의 종류에 무관하게 동일한 방법으로 단말의 자원 또는 기능에 접근하여 이를 제어할 수 있다. 이러한 본 발명의 실시예에 따르면, 개발자들은 동일한 어플리케이션(30)을 운영 체제(10)별로 따로 제작해야 하는 노력을 덜 수 있다. 또한, 사용자들은 어떠한 운영 체제(10)에서도 동일한 사용자 경험을 가지는 어플리케이션(30)을 사용할 수 있다. The
한편, 본 발명의 실시예에서 어플리케이션(30)은 웹 어플리케이션을 예로 들어 설명하며, 이는 브라우저(browser)에서 동작하는 어플리케이션이다. 이러한 웹 어플리케이션은 웹 표준 언어로 작성된다. 웹 표준 언어는 HTML(Hyper Text Markup Language), CSS(Cascading Style sheet), JavaScript 등을 예시할 수 있다. 하지만, 본 발명의 실시예를 웹 어플리케이션에 한정하는 것은 아니며, 단말에서 구동 가능한 어떠한 어플리케이션이라도 본 발명의 균등 범위에서 실시 가능함은 당연하다. Meanwhile, in the embodiment of the present invention, the
본 발명의 실시예에 따르면, 플랫폼(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
주변 장치(13)는 각각 고유의 기능을 가지며, 운영 체제(10)가 제어부(11)를 통해 그 실행을 제어할 수 있다. 이러한 주변 장치(13)는 각종 키들을 구비하여 사용자의 입력을 수신하는 입력부(14), 단말의 기능 실행에 따라 발생하는 화면 데이터를 표시하기 위한 표시부(15), 무선 통신 기능을 수행하기 위한 무선 통신부(16), GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하기 위한 GPS부(17), 음성 신호를 입력 받고 출력하기 위한 마이크 및 스피커 등을 구비하는 오디오 처리부(18), 및 카메라 기능을 수행하기 위한 카메라부(19)를 포함한다. 또한 도시되진 않았으나, 본 발명의 실시예에 따른 단말의 주변 장치(13)로, 메모리 카드와 같은 외부 저장 매체를 삽입하여 데이터 저장을 가능토록 하는 저장매체 삽입부, 외부 타 장치와의 데이터 교환을 위한 연결 단자, 충전용 단자를 구비할 수 있다. 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 주변 장치(13)와 동등한 수준의 장치들이 본 발명의 실시예에 따른 단말에 추가로 더 포함되어 구성될 수 있다는 것은 본 기술 분야의 통상의 지식을 가진 자라면 쉽게 이해할 수 있을 것이다. Each of the
운영 체제(10)는 상술한 주변 장치(13)의 기능 실행을 제어부(11)를 통해 관리한다. 이는 운영 체제(10)의 실행 명령을 제어부(11)가 해석하여, 제어부(11)가 주변 장치(13)를 동작시킴으로써 이루어진다. 또한, 어플리케이션(30)은 이러한 단말의 기능 실행을 플랫폼(20)이 제공하는 인터페이스를 통해 요청하면, 플랫폼(20)의 기능 실행 요청을 운영 체제(10)에 전달하고, 이러한 기능 실행을 전달 받은 운영 체제(10)는 제어부(11)를 통해 주변 장치(13)의 기능을 실행하도록 한다. The
다음으로, 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼(20)에 대해서 보다 상세히 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼의 구조를 설명하기 위한 도면이다. Next, the
도 2를 참조하면, 본 발명의 실시예에 따른 플랫폼(20)은 브라우저 엔진 컨테이너 코어(Browser Engine Container Core, 21: 이하, "컨테이너 코어"로 축약함)와 브라우저 엔진 컨테이너 실행(Browser Engine Container Executor)부(200: 이하, "컨테이너 실행부"로 축약함)를 포함한다. 또한, 플랫폼(20)은 시스템 어플리케이션(40)을 더 포함한다. 2, a
컨테이너 실행부(200) 및 이의 세부 구성들은 앞서 설명한 바와 같은 어플리케이션 실행 요청을 수신하는 객체가 될 수 있다. 또한, 컨테이너 코어(21) 및 이의 각 세부 구성들은 앞서 설명한 바와 같은 어플리케이션을 실제 실행시키는 객체가 될 수 있다. 따라서, 컨테이너 실행부(200) 및 이의 세부 구성들은 실행 된 후, 자신의 기능을 수행하고, 바로 자기 자신의 실행을 종료하는 동작 특성을 갖는다. 이에 따라, 컨테이너 코어(21)가 다수의 어플리케이션을 실행시킬 수 있도록 한다. The
컨테이너 코어(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
상술한 바와 같은 플랫폼(20)의 구조를 살펴보면, 이식 계층부(600)는 운영 체제(10)에 직접 연결된다. 이러한 이식 계층부(600)에 컨테이너 실행부(200) 및 컨테이너 커먼 모듈(22)이 연결되므로, 컨테이너 실행부(200) 및 컨테이너 커먼 모듈(22)은 이식 계층부(600)를 통해 운영 체제(10)에 접근할 수 있다. Referring to the structure of the
특히, 어플리케이션(30) 및 시스템 어플리케이션(40)은 실행된 후, 컨테이너 커먼 모듈(22)에 직접 연결되므로, 컨테이너 커먼 모듈(22) 및 이식 계층(600)을 통해 운영 체제(10)에 접근할 수 있다. 어플리케이션(30)이 단말의 기능을 실행시키고자 하는 경우, 어플리케이션(30)은 컨테이너 커먼 모듈(22)에 이를 요청한다. 그러면, 컨테이너 커먼 모듈(22)은 이 요청을 이식 계층부(600)에 전달하고, 이식 계층부(600)는 운영 체제(10)에 이 요청을 재 전달한다. 이때, 이식 계층부(600)는 운영 체제(10)의 인터페이스에 따라 이 요청을 변환하여 운영 체제(10)에 전달한다. 이에 따라, 운영 체제(10)는 어플리케이션(30)이 요청한 기능을 제어부(11)를 통해 실행한다. In particular, since the
이식 계층부(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
한편, 플랫폼(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
다음으로, 본 발명의 실시예에 따른 플랫폼(20)의 세부 구조에 대해서 보다 상세하게 설명한다. 도 3은 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 컨테이너 실행부의 세부 구성을 설명하기 위한 도면이며, 도 4는 본 발명의 실시예에 따른 플랫폼에서 어플리케이션 런타임 계층부를 설명하기 위한 도면이고, 도 5는 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 계층부를 설명하기 위한 도면이다. 또한, 도 6은 본 발명의 실시예에 따른 플랫폼에서 보안 계층부의 세부 구성을 설명하기 위한 도면이며, 도 7은 본 발명의 실시예에 따른 플랫폼에서 이식 계층부를 설명하기 위한 도면이고, 도 8은 본 발명의 실시예에 따른 플랫폼에서 시스템 어플리케이션을 설명하기 위한 도면이다. Next, the detailed structure of the
먼저, 본 발명의 실시예에 따른 컨테이너 실행부(200)에 대해서 설명하기로 한다. First, the
도 3 내지 도 6을 참조하면, 컨테이너 실행부(200)는 어플리케이션(30)의 일반적인 실행 및 대기 모드에서의 실행, 컨테이너 코어(21)의 전부 또는 일부의 업데이트 등을 관장하는 역할을 수행한다. 컨테이너 실행부(200)는 어플리케이션(30)의 시작점(Entry Point) 역할을 하며, 컨테이너 코어(21)를 생성시킬 수 있다. 컨테이너 실행부(200)는 실행된 후 백그라운드에서 프로세스를 계속 실행하는 데몬(Daemon) 형태로 구동되지 않으며, 실행된 후 해당 기능을 수행하고 즉시 종료되는 형태로 구동된다. 이는 운영 체제(10)가 다중 실행 또는 멀티 인스턴스(Multi-instance)를 지원하지 않는 경우에도 복수의 어플리케이션(30)을 구동시키기 위함이다. 즉, 컨테이너 실행부(200) 및 이의 세부 구성 각각은 앞서 설명한 바와 같이, 어플리케이션의 실행 요청을 수신하는 객체이다. 3 to 6, the
컨테이너 실행부(200)는 컨테이너 에이전트(210), 더미 컨테이너 실행부(220) 및 대기 모드 에이전트(230)를 포함한다.The
컨테이너 에이전트(210)는 어플리케이션 런처(211)와 컨테이너 업데이트 모듈(213)을 포함한다. 컨테이너 에이전트(210)는 어플리케이션(30)을 실행하도록 요청 받으면 어플리케이션(30)을 실행시키는 트리거 동작을 수행한다. The
어플리케이션(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
컨테이너 에이전트(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
더미 컨테이너 실행부(220)는 운영 체제(10) 또는 컨테이너 에이전트(210)로부터 어플리케이션을 실행할 것을 요청 받아, 실제로 어플리케이션의 실행을 담당하는 어플리케이션 런타임 계층부(300)의 런타임 매니저(310)를 실행시킨다. 그런 다음, 더미 컨테이너 실행부(220)는 런타임 매니저(310)의 커맨드 핸들러(311)에 실행 명령을 전달한 후, 자기 자신의 실행을 종료한다. 이때, 런타임 매니저(310)가 이미 실행 중이면, 단순히 커맨드 핸들러(311)에 실행 명령을 전달한 후, 자기 자신의 실행을 종료한다. 여기서, 더미 컨테이너 실행부(220)가 실행 명령을 전달하는 것은, 컨테이너 코어(21)의 런타임 매니저(310)에 제어권을 넘겨주는 것을 의미한다. The dummy
특히, 더미 컨테이너 실행부(220)가 제어권을 넘겨준 후, 자기 자신의 실행을 종료하는 것은 운영 체제(10)가 다중 실행 또는 동일한 객체의 멀티 인스턴스를 지원하지 않는 경우, 복수의 어플리케이션을 실행시키기 위한 것이다. 즉, 런타임 매니저(310)은 언제나 종료 상태이므로, 운영 체제(10)로부터 어플리케이션의 실행 요청은 단일 실행(단일 인스턴스)이며, 어플리케이션의 다중 실행은 런타임 매니저(310)에서 수행하므로, 운영 체제(10)에 상관 없이 언제나 어플리케이션을 다중으로 실행시킬 수 있다. In particular, after the dummy
한편, 더미 컨테이너 실행부(220)가 컨테이너 에이전트(210)가 어플리케이션 런처(211)를 통해 더미 컨테이너 실행부(220)에 어플리케이션 실행 요청을 전달하는 경우에도, 컨테이너 에이전트(210)는 더미 컨테이너 실행부(220)와 마찬가지로 실행 요청 후에 자기 자신의 실행을 종료한다. 이는 더미 컨테이너 실행부(220)가 실행 명령 전송 후, 자기 자신의 실행을 종료하는 것과 같은 이유이다.When the dummy
더미 컨테이너 실행부(220)는 실행 요청을 전달할 때, 어플리케이션(30)을 실행하기 위한 정보인 실행 인자를 같이 전송한다. 여기서, 실행 인자는 식별자 및 주소를 포함하며, 주소는 생략 될 수 있다. 여기서, 식별자는 어플리케이션(30)을 다른 어플리케이션(30)과 구분하기 위한 것이다. 따라서 어플리케이션(30) 실행 시, 실행 인자의 식별자를 통해 해당 어플리케이션(30)을 다른 어플리케이션(30)과 구분하여 실행시킬 수 있다. 한편, 하나의 어플리케이션(30)은 복수의 페이지로 이루어지며, 각각의 페이지는 주소가 할당된다. 또한, 어플리케이션(30)은 복수의 페이지 중 어느 하나의 페이지를 시작 페이지로 하여 실행된다. 따라서, 실행 인자에 주소가 포함된 경우, 해당 주소를 시작 페이지로 하여 어플리케이션(30)을 실행시킬 수 있다. 실행 인자에 주소가 포함되지 않는 경우, 어플리케이션(30) 설치 시 미리 설정된 디폴트 페이지를 시작 주소로 하여 어플리케이션(30)을 실행시킬 수 있다. When delivering an execution request, the dummy
어플리케이션(30)을 단말의 대기 모드 화면에서 동작시키기 위한 모듈로써, 운영 체제(10) 별로 각각의 대기 모드 컴포넌트 프로토콜(IDLE Component Protocol)에 맞춰 구현된다. The
다음으로, 본 발명의 실시예에 따른 어플리케이션 런타임 계층부(300)에 대해서 설명하기로 한다. Next, the application
도 3 내지 도 6을 참조하면, 어플리케이션 런타임 계층부(300)는 어플리케이션 실행 환경을 제공하며, 전체 플랫폼(20)의 커널(Kernel) 역할을 수행한다. 어플리케이션 런타임 계층부(300) 어플리케이션(30)이 생성되면, 그 생성된 어플리케이션(30)을 관리하고, 어플리케이션 설치 및 구성 정보 설정을 위한 레지스트리(Registry) 정보 및 사용자 인터페이스(UI, User Interface)를 관리한다. 3 to 6, the
런타임 매니저(310)는 어플리케이션(30)이 실행된 경우, 이 어플리케이션(30)의 컨텍스트(context)를 관리하고, 이벤트 핸들링(Event Handling)을 수행하며, 컨테이너 실행부(200)로부터의 명령이 있으면, 이 명령을 처리한다. 이를 위하여, 런타임 매니저(310)는 커맨드 핸들러(Command Handler, 311), 컨텍스트 매니저(Context Manager, 313), 이벤트 핸들러(Event Handler, 315), 라이프 사이클 매니저(Life cycle Manager, 317)를 포함한다. When the
커맨드 핸들러(311)는 컨테이너 실행부(200)로부터 프로세스간 통신(IPC, Inter-Process Communication) 방법으로 명령을 전달 받아 해석한 뒤, 각 명령에 해당하는 동작을 수행하는 IPC 명령 처리기이다. 커맨드 핸들러(311)는 명령에 따라 다음과 같은 동작을 수행한다. 커맨드 핸들러(311)는 컨텍스트 매니저(313)에 어플리케이션(30)의 실행 또는 종료를 요청할 수 있다. 또한, 커맨드 핸들러(311)는 플랫폼(20)의 구성 정보를 레지스트리 매니저(320)를 통해 업데이트 할 수 있다. 그리고 커맨드 핸들러(311)는 자원을 정리하고 자기 자신 프로세스인 플랫폼(20)을 종료할 수 있다. 이는 타 프로세스 종료 기능을 제공하지 않는 운영 체제(10)를 대비하여 플랫폼(20) 업데이트 시에 실행 중인 플랫폼(20) 프로세스를 종료시키기 위한 것이다. 또한, 커맨드 핸들러(311)는 플러그 인 매니저(420)에 플러그 인(430)의 설치, 삭제 및 업데이트를 요청할 수 있다. The
컨텍스트 매니저(313)는 어플리케이션(30)의 컨텍스트를 관리하는 모듈로써, 브라우저 엔진(410) 렌더러(Renderer)와 윈도우의 생성 및 소멸을 관장한다. 커맨드 핸들러(311)로부터 어플리케이션(30) 실행이 요청되면, 컨텍스트 매니저(313)는 브라우저 엔진(410)으로부터의 윈도우 생성 명령에 따라 윈도우를 생성한다. 이어서, 컨텍스트 매니저(313)는 브라우저 엔진(410)의 렌더러(Renderer)를 생성한다. 그런 다음, 컨텍스트 매니저(313)는 생성된 렌더러를 통해 요청된 페이지를 렌더링하여, 랜더링된 결과를 생성된 윈도우에 표시한다. 컨텍스트 매니저(313)는 커맨드 핸들러(311)로부터 브라우저를 종료할 것을 지시하는 명령이나, 이벤트 핸들러(315)와 브라우저 엔진(410)으로부터 윈도우 소멸시킬 것을 지시하는 명령을 수신할 수 있다. 이러한 경우, 컨텍스트 매니저(313)는 브라우저 엔진(410)의 렌더러 및 윈도우 자원을 회수한 후, 어플리케이션(30)을 종료하거나 윈도우를 소멸시킨다. 또한, 컨텍스트 매니저(313)는 어플리케이션(30)이 소유하고 있는 모든 윈도우가 소멸되었을 경우 해당 어플리케이션(30)을 종료시킨다. The
이벤트 핸들러(315)는 컨텍스트 매니저(313)에서 생성한 윈도우 관련 이벤트와 플랫폼(20) 자체에서 확장된 시스템 관련 이벤트 등을 받아서 처리하는 모듈이다. 한편, 브라우저 엔진(410)에 관련된 이벤트는 브라우저 엔진(410)에서 직접 처리하므로, 이벤트 핸들러(315)는 브라우저 엔진(410)과 관련된 이벤트는 처리하지 않는다. The
라이프 사이클 매니저(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
레지스트리 매니저(320)는 어플리케이션(30) 설치 정보 및 플랫폼(20)의 구성(Configuration) 정보를 관리하는 모듈이며, 실제 정보는 보안 매니저(Security Manager)(625)를 통해 보안된 영역에 보관할 수 있다. 레지스트리 매니저(320)는 어플리케이션(30), 플랫폼(20) 및 플러그 인(430) 관련 기능을 제공한다. 이러한 레지스트리 매니저(320)가 제공하는 기능은 그 대상에 따라 다음과 같다.The
UI 엔진(330)은 브라우저 엔진(410)이 렌더링하는 영역 이외의 모든 UI 및 사용자 입력 처리를 담당한다. 구체적으로, 어플리케이션(30) 컨텐츠 영역 이외의 모든 영역의 표시를 담당하며, 상태 바 영역과 소프트 버튼 영역이 여기에 해당한다. 여기서, 상태 바 영역은 단말의 상태를 나타내는 아이콘들을 표시하는 영역으로, 주로 표시부(15)의 상단에 배치되며, 이 영역에는 수신 신호 세기를 나타내는 아이콘, 배터리 잔량을 나타내는 아이콘, 진동 모드인지 또는 벨 모드인지 여부를 나타내는 아이콘 등이 표시될 수 있다. 또한, 소프트 버튼 영역은 단말이 표시부(15)로 풀 터치 터치스크린을 채용한 경우, "메뉴"키, "확인"키, "취소"키 등의 기본 키를 표시하는 영역으로, 주로 표시부(15)의 하단에 배치된다.The
네트워크 셀렉터(340)는 컨테이너 코어(21)가 사용할 네트워크를 설정하고 관리하는 기능을 제공하는 모듈로서 사용자가 단말에서 사용 가능한 네트워크들(예컨대, Modem, Wi-Fi, Bluetooth 등)의 선택 방법 및 우선순위를 설정할 수 있도록 한다. 네트워크 선택 방법은 자동, 수동, 반자동의 3가지 옵션을 제공한다. 자동일 경우 설정된 우선순위에 따라 접속 가능한 네트워크를 통해 접속하며, 수동일 경우 선택된 네트워크에 대해서만 접속을 시도하고, 반자동일 경우 네트워크 연결 또는 전환이 요구될 때 마다 팝업을 띄워 사용자가 원하는 네트워크를 선택할 수 있도록 한다. The
어플리케이션 동기 매니저(350)는 단말이 온 라인 또는 오프라인에 있는지 여부와 상관없이, 어플리케이션(30)의 실행을 끊김 없이(Seamless) 보장해주는 모듈로서, 외부 데이터에 접근하는 어플리케이션(30)에 대해서 네트워크 연결이 끊겼을 경우에도 캐싱 매커니즘(Caching Mechanism)을 통해 동작 가능하도록 하며, 다시 네트워크에 연결되었을 때, 로컬 스토리지에 저장되었던 데이터를 사용자가 인식하지 못하는 사이에 백그라운드로 자동 싱크(Auto Sync)를 수행할 수 있도록 한다. The
다음으로, 본 발명의 실시예에 따른 브라우저 엔진 계층부(400)에 대해서 설명하기로 한다. Next, the browser
도 5 및 도 7을 참조하면, 브라우저 엔진 계층부(400)는 브라우저 엔진(410), 플러그 인 매니저(Plug-In Manager, 420) 및 플러그 인 매니저(420)가 관리하는 다수의 플러그 인(430)을 포함한다.5 and 7, the
브라우저 엔진(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
한편, 브라우저 엔진 계층부(400)는 어플리케이션(30)이 웹 표준 기능 이외의 기능을 요청하는 경우, 이러한 기능을 플러그 인(430)을 통해 제공할 수 있다. 여기서, 웹 표준 기능 이외의 기능은 운영 체제(10)가 관리하는 단말의 기능을 실행함을 의미한다. 예컨대, 이는 주소록이나 다른 어플리케이션과의 연동과 같은 장치에 의존적인 기능 등이 그 예가 될 수 있다. Meanwhile, the browser
어플리케이션(30)이 운영 체제(10)가 관장하는 기능 실행을 요청하면, 브라우저 엔진(410)은 플러그 인 매니저(420)를 통해 해당 기능을 가지는 플러그 인(430)을 호출하며, 호출된 플러그 인(430)은 이식 계층(600)에서 해당하는 기능을 제공하는 인터페이스 모듈(610)에 어플리케이션(30)의 요청을 전달한다. 이 전달 방법은 인터페이스 모듈(610)이 운영 체제(10)에 무관하게 단일한 형식의 인터페이스를 제공함으로써, 플러그 인(430)은 운영 체제(10)에 무관하게 언제나 동일한 형식으로 해당 기능의 요청을 전달한다. 플러그 인(430)의 요청 전달에 따라, 해당하는 인터페이스 모듈(610)은 어플리케이션(30)이 요청한 단말의 기능을 운영 체제(10)를 통해 실행한다. 이러한 기능 실행을 위하여, 인터페이스 모듈(610)은 상술한 요청에 따라 각 운영 체제(10)에 맞는 형식으로 변경하여 운영 체제(10)에 지시한다. When the
상술한 바와 같이, 브라우저 엔진 계층부(400)를 브라우저 엔진(410)에 플러그 인(430)을 동적으로 결합하는 구조로 설계함으로써, 다음과 같은 이점을 가질 수 있다. 브라우저 엔진(410)이 업데이트될 경우 최신의 브라우저 엔진(410)을 별다른 수정 없이 플랫폼(20)에 빠르게 적용할 수 있다. 또한, 현재 파악되지 않은 기능의 확장도 일관되게 플러그 인(430) 형태로 제공할 수 있는 이점이 있다. 예를 들어, 특정 형식의 미디어를 재생할 수 있는 플러그 인이 필요한 경우, 이를 플러그 인(430)으로 개발하여 추가하는 것이 가능하다. As described above, by designing the browser
상술한 플러그 인 매니저(420) 및 플러그 인(430)에 대해서 좀 더 상세히 살펴보면 다음과 같다. The plug-in
플러그인 매니저(420)는 플러그 인(430)을 관리한다. 즉, 플러그인 매니저(420)는 설치된 플러그 인(430)의 목록을 관리하고, 새로운 플러그 인(430)을 다운로드 및 설치하며, 기 존재하는 플러그 인(430)을 업데이트하고, 어플리케이션(30)의 기능 실행 요청이 있으면, 이 기능 실행의 종류에 따라 해당하는 플러그 인(430)을 호출한다. The plug-in
본 발명의 실시예에서 플러그 인(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
시스템 API 플러그 인(433)은 어플리케이션(30)이 OS API 관련 기능을 호출하면 이식 계층부(600)의 OS API 매니저(623)에 전달한다. 이에 따라, 이식 계층부(600)의 OS API 매니저(623)는 해당 기능을 실행한다. The system API plug-in 433 transmits the
공통 작업 플러그 인(435)은 어플리케이션(30)이 다른 어플리케이션과의 연동을 요청하면, 이식 계층부(600)의 공통 작업 매니저(625)에 전달한다. 그러면, 공통 작업 매니저(625)는 해당 기능을 실행한다. The common job plug-in 435 transmits the request to the
싱크 플러그 인(437)은 어플리케이션(30)이 타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능을 호출하면, 이식 계층(600)의 싱크 매니저(627)에 전달한다. 그러면, 싱크 매니저(627)는 해당 기능을 실행한다. The sink plug-in 437 transfers the synchronization plug-in 437 to the
다음으로, 본 발명의 실시예에 따른 보안 계층부(500)에 대해서 설명하기로 한다. Next, the
도 3 내지 7을 참조하면, 보안 계층부(500)는 어플리케이션 런타임 계층부(300) 및 브라우저 엔진 계층부(400)의 각 구성들이 이식 계층부(600)의 접근에 대해 인증을 수행하고, 보안 정책에 따라 그 접근의 일부 또는 전부를 허여한다. 이러한 보안 계층부(500)는 인증 매니저(510) 및 정책 매니저(520)를 포함한다. 3 to 7, the
인증 매니저(510)는 어플리케이션(30) 및 플러그 인(430)에 대해 설치 및 실행 시 인증을 수행한다. 여기서, 설치 시, 인증은 어플리케이션(30) 및 플러그 인(430)이 정당한 절차에 의해서 설치되는지 여부를 확인하는 절차이고, 실행 시, 인증은 어플리케이션(30) 및 플러그 인(430)이 정당한 절차에 의해서 설치되었는지 여부를 확인하는 절차이다. 이러한 인증을 위하여, 인증 매니저(510)는 해싱 알고리즘(hashing algorithm) 및 각종 보안 라이브러리를 구비하며, 이에 따라 인증 기능을 수행한다. The
정책 매니저(520)는 컨테이너 업데이트 모듈(213)로부터 접근 제어에 대한 정책을 기술한 파일 등을 전달 받고, 이를 설치 및 저장한다. 그리고 정책 매니저(520)는 각종 플러그 인(430)의 접근 요청에 대해 미리 저장된 정책을 검색하여, 해당 정책에 따라 접근의 일부 또는 전부를 수락하거나 거부한다. 정책 매니저(520)는 그 접근 제어에 대한 정책을 실시간으로 업데이트할 수 있다. The
다음으로, 본 발명의 실시예에 따른 이식 계층부(600)에 대해서 설명하기로 한다. Next, the
도 3 내지 도 7을 참조하면, 이식 계층부(600)는 컨테이너 커먼 모듈(22)에 의해 어플리케이션(30)이 운영 체제(10)의 종류에 무관하게 구현되고 동작할 수 있도록, 운영 체제(10)가 제공하는 인터페이스를 단일 형식의 인터페이스로 변경하여 제공한다. 이를 위하여, 이식 계층부(600)의 인터페이스는 운영 체제(10)에 따라 구현되는 동시에, 이식 계층부(600) 및 컨테이너 커먼 모듈(22) 상호간에 맞도록 구현될 수 있다. 또한, 어플리케이션(30)은 컨테이너 커먼 모듈(22)에 맞춰 기능 실행을 요청한다. 3 to 7, the
이에 따라, 어플리케이션(30)이 컨테이너 커먼 모듈(22)에 기능 실행을 요청하면, 컨테이너 커먼 모듈(22)은 이식 계층부(600)에 이를 전달할 수 있다. 그리고, 이식 계층부(600)은 컨테이너 커먼 모듈(22)로부터 전달 받은 기능 실행 요청을 통해 운영 체제(10)에 해당 기능을 실행하도록 지시할 수 있다. Accordingly, when the
이식 계층부(600)는 다수개의 인터페이스 모듈(610)을 포함하며, 각 인터페이스 모듈(610)은 기능별로 서로 관련된 복수개의 인터페이스로 이루어진다. 각 인터페이스는 운영 체제(10)의 종류에 따라 단말의 기능을 실행시킬 수 있도록하며, 컨테이너 커먼 모듈(22)에 맞게 기능 실행 요청을 수신할 수 있다.따라서 어플리케이션(30)은 단말의 자원에 대해 접근할 수 있는 인터페이스를 운영 체제(10)에 무관하게 제공 받을 수 있다. The
인터페이스 모듈(610) 내부의 인터페이스는 각각 라이브러리 형태로 구현되고 관리될 수 있다. 이후에 추가된 기능을 실행하는 인터페이스를 추가로 제공하고 싶다면, 별도의 인터페이스를 정의하고 라이브러리 형태로 구현한 후, 해당하는 인터페이스 모듈(610)에 링크시킬 수 있다. 이러한 인터페이스는 운영 체제(10)의 종류에 따라, 운영 체제(10)를 통해 해당 기능을 실행하도록 구현할 수도 있고, 컨테이너 실행부(200), 컨테이너 커먼 모듈(22) 및 어플리케이션(30) 등의 요청을 각 운영 체제(10)에 맞게 형식만 변환하여 운영 체제(10)에 바이패스(bypass)하는 스터브(stub)일 수도 있다. The interfaces within the
인터페이스 모듈(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
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
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
스레드 모듈(615)은 스레드(thread) 기능을 가지는 인터페이스를 포함한다. 여기서, 스레드 기능은 어플리케이션(30)이 복수의 명령을 처리하는 경우 그 우선 순위 등을 처리하는 것을 말한다. 스레드 모듈(615)의 인터페이스는 런타임 매니저(310)와 브라우저 엔진(410)에서 사용된다. The
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
보안 스토리지 모듈(619)은 보안 스토리지(Secure Storage)에 접근할 수 있는 인터페이스를 포함한다. 여기서, 보안 스토리지는 보안이 적용되어야 할 데이터를 저장한다. 이러한 인터페이스는 보안 계층(500)의 인증 매니저(510) 및 정책 매니저(520)는 보안되어야 할 데이터를 다루며, 이 데이터는 보안 스토리지 모듈(619)의 인터페이스를 통해 보안 스토리지에 저장된다. 한편, 보안 스토리지가 없는 단말 또는 장치의 경우, 보안 스토리지 모듈(619)은 소프트웨어 적으로 암호화 알고리즘을 적용하여 실시간으로 데이터를 암호화 및 복호화하는 기능을 제공하는 인터페이스를 더 포함할 수 있다. The
리소스 매니저(621)는 단말 자원에 접근할 수 있는 인터페이스를 제공한다. 이러한 단말 자원은 단말의 주변 장치(13)의 실행에 따라 생성되는 데이터가 될 수 있다. 예컨대, 단말 자원은 폰북(phone book), 사진(Photo), 통화 기록(Call History), SMS(Short Messaging Service) 목록 등을 포함한다. 이러한 인터페이스는 운영 체제(10)의 종류에 따라 단말 자원에 접근할 수 있도록하며, 컨테이너 커먼 모듈(22)로부터 단말 자원에 대한 접근 요청을 수신한다. 따라서 어플리케이션(30)은 단말의 자원에 대해 접근할 수 있는 인터페이스를 운영 체제(10)에 무관하게 제공 받을 수 있다. 리소스 매니저(621)는 내부에 각 자원 별로 별도의 라이브러리를 가지고 있으며, 각 라이브러리는 별도로 구현되고 관리된다. 각 자원 별로 별도의 인터페이스가 제공되며, 이후에 추가된 자원에 접근하는 인터페이스를 추가로 제공하고 싶다면, 별도의 인터페이스를 정의하고 라이브러리 형태로 구현한 후, 리소스 매니저(621)에 링크시킬 수 있다. The
리소스 매니저(621)는 인터페이스를 통해 다음과 같은 기능을 제공할 수 있다. 리소스 매니저(621)는 수신 및 발송한 SMS 메시지에 대한 목록 및 각 SMS 메시지의 세부 내용, 수신 및 발신한 음성 통화 또는 화상 통화에 대한 세부 정보로 수신시각, 통화시간, 발신인 등을 제공할 수 있다. 또한, 리소스 매니저(621)는 폰북(Phonebook) 상의 각 개인의 목록 및 각 개인 목록에 대한 세부 정보를 제공하며, 폰북 상의 그룹 목록 및 각 그룹에 속한 각 개인의 목록을 제공할 수 있다. 그리고 리소스 매니저(621)는 스케줄, 알람, 메모 등의 목록 및 상세 정보를 제공할 수 있다. 또한, 리소스 매니저(621)는 사진, 비디오, 음악 등이 세부 정보 및 각각의 원본 데이터에 접근 가능한 경로를 제공할 수 있다. The
OS API 매니저(623)는 운영 체제(10) 자체의 단말 제어 기능을 제공하며, 이러한 기능을 제공하는 인터페이스를 포함한다. OS API 매니저(623)는 인터페이스를 통해 다음과 같은 단말 기능을 제공한다. OS API 매니저(623)는 음성 통화, 화상 통화, 문자 메시지 기능, 랜드 마크(Landmark) 정보 제공, 위치 정보 제공 등의 단말 기능을 제공한다. 또한, OS API 매니저(623)는 각 운영 체제(10)의 대기 화면에 어플리케이션 등록 및 해제를 수행하는 기능을 제공할 수 있다. 그리고 OS API 매니저(623)는 오디오 또는 비디오 데이터를 생성 또는 삭제하는 단말 기능을 제공하며, 생성된 오디오 또는 비디오 데이터의 실행, 일시 정지 및 중지 등의 기능, 오디오 또는 비디오 데이터에 대해 볼륨 및 비디오 출력 위치를 지정하는 단말 기능을 제공할 수 있다. 게다가, OS API 매니저(623)는 카메라 미리 보기 설정, 캡처 등의 기능 및 시리얼 통신, 근거리 통신 등의 입출력을 제어하는 단말 기능을 제공할 수 있다. The
공통 작업 매니저(625)는 각 운영 체제(10)에서 동작하는 다른 어플리케이션과의 연동 기능을 제공하는 인터페이스를 포함한다. 이러한 다른 어플리케이션은 폰북, 카메라, 음악 재생기, 다이얼러(Dialer), SMS 등과 관련된 것이 될 수 있다. 공통 작업 매니저(625)가 제공하는 인터페이스를 이용하면, 어플리케이션(30)은 상술한 다른 어플리케이션과 연동될 수 있다. The
싱크 매니저(627)는 타 장치와 연동하여 데이터를 실시간으로 교환하는 기능을 제공하는 인터페이스를 포함한다. 단말이 다른 기기와 연동하여 그 기기와 데이터를 실시간으로 교환하려고 하는 경우, 운영 체제(10)는 그 단말이 타 장치와 연동하도록 하고, 타 장치의 데이터와 동기를 획득하도록 한다. 따라서 싱크 매니저(627)의 인터페이스는 상술한 연동 및 동기를 제공하는 운영 체제(10)의 기능을 제공한다. The
로컬 스토리지 모듈(629)은 각 운영 체제(10)에 존재하는 고유의 스토리지 기능을 추출(Abstraction)하여, 그 종류에 상관없이 상위 계층에 일관되게 제공하는 인터페이스를 포함한다. The
다음으로, 본 발명의 실시예에 따른 시스템 어플리케이션(40)에 대해서 설명하기로 한다. Next, the
도 4, 도 5 및 도 8을 참조하면, 시스템 어플리케이션(40)은 어플리케이션(30)의 다운로드 및 설치 등의 기능을 제공한다. 또한, 시스템 어플리케이션(40)은 설치된 어플리케이션(30)의 실행 및 설치된 어플리케이션(30)의 목록을 제공할 수 있다. 시스템 어플리케이션(40)은 그 자체가 어플리케이션(30) 형태로 작성되므로, 어플리케이션(30)과 마찬가지로 컨테이너 커먼 모듈(22)에 연결되어 동작한다. 이러한 시스템 어플리케이션(40)은 어플리케이션 매니저(41) 및 어플리케이션 다운로더(43)를 포함한다. 4, 5, and 8, the
어플리케이션 매니저(41)는 시스템 API 플러그 인(433)을 통해 어플리케이션 런타임 계층부(300)의 레지스트리 매니저(320)에 접근하여 설치된 어플리케이션(30)의 정보를 얻어 올 수 있으며, 이를 UI를 통해 표시하는 역할을 수행한다. The
어플리케이션 다운로더(43)는 어플리케이션(30)을 서버로부터 다운로드 하여 설치하는 역할을 수행한다. The
다음으로, 본 발명의 실시예에 따른 어플리케이션 실행 방법에 대해서 설명하기로 한다. 이를 더미 컨테이너 실행부(220)의 동작을 통해 살펴보기로 한다. 도 9는 본 발명의 실시예에 따른 더미 컨테이너 실행부의 어플리케이션 실행 방법을 설명하기 위한 도면이다. Next, an application execution method according to an embodiment of the present invention will be described. The operation of the dummy
도 9를 참조하면, 더미 컨테이너 실행부(220)는 자기 자신의 실행이 종료된 상태에 있다고 가정한다. 이러한 상태 중, 더미 컨테이너 실행부(220)는 S901 단계에서 어플리케이션(30) 실행 요청을 수신함으로써 자기 자신의 실행을 시작한다. 여기서, 실행의 시작이라 함은 객체를 인스턴스화 한다는 의미이다. 즉, 더미 컨테이너 실행부(220)는 하나의 객체(object)이며, 더미 컨테이너 실행부(220)가 실행을 시작한다는 것은 더미 컨테이너 실행부(220)가 인스턴스화 된다는 것을 의미한다. Referring to FIG. 9, the dummy
이와 같이, 그 실행을 시작한 더미 컨테이너 실행부(220)는 S903 단계에서 런타임 매니저(310)가 실행 중인지 여부를 확인한다. 런타임 매니저(310)가 실행 중인 경우는 이미 적어도 하나의 다른 어플리케이션(30)이 실행되고 있음을 의미한다. 또한, 런타임 매니저(310)가 실행 중이 아닌 경우는 어떤 어플리케이션(30)도 실행되고 있는 상태가 아님을 의미한다. 또한, 런타임 매니저(310)가 실행 중인 경우에는, 런타임 매니저(310)의 내부 구성들인 커맨드 핸들러(311), 컨텍스트 매니저(313), 이벤트 핸들러(315) 및 라이프 사이클 매니저(317)가 실행 중임을 의미한다. In this manner, the dummy
S903 단계의 확인 결과, 런타임 매니저(310)가 이미 실행 중이면, 더미 컨테이너 실행부(220)는 S907 단계에서 런타임 매니저(310)의 커맨드 핸들러(311)에 어플리케이션(30)을 실행하도록 실행 인자와 함께 실행 명령을 전송한다. 여기서, 실행 인자는 어플리케이션의 식별자 및 어플리케이션을 구성하는 페이지들의 어느 한 페이지의 주소 중 적어도 하나를 포함한다. 그런 다음, 더미 컨테이너 실행부(220)는 S909 단계에서 자기 자신의 실행을 종료한다. If it is determined in step S903 that the
반면, 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
이와 같이, 본 발명은 어플리케이션(30)의 실행을 트리거하는 더미 컨테이너 실행부(220)와 실제로 어플리케이션(30)을 실행시키는 런타임 매니저(310)가 서로 다른 객체(Object)로 이루어져 있으므로, 운영 체제(10)가 복수의 인스턴스를 허용하지 않는 경우에도, 어플리케이션(30)의 멀티 실행을 수행할 수 있다. The dummy
런타임 매니저(310)는 자기 자신의 실행 후, 실제로 어플리케이션(30)을 실행시키며, 복수의 어플리케이션(30)을 실행 시킬 수 있다. 하지만, 멀티 인스턴스를 지원하지 않는 운영 체제(10)의 경우, 복수의 어플리케이션(30)을 실행시키기 위해서, 런타임 매니저(310)는 적어도 2 번 실행되어야 하므로 복수의 어플리케이션(30)을 실행시킬 수 없다. The
따라서 본 발명은 더미 컨테이너 실행부(220)가 어플리케이션(30)의 실행 요청이 있을 때마다 새로 실행되어, 실행 인자와 함께 런타임 매니저(310)에 어플리케이션(30)을 실행시키도록 실행 명령을 한 후, 자기 자신의 실행을 종료함으로써, 멀티 인스턴스를 지원하지 않는 운영 체제(10)에서도 복수의 어플리케이션(30)을 실행시킬 수 있다. Therefore, the present invention is executed every time the dummy
이어서, 본 발명의 실시예에 따른 어플리케이션(30) 실행 방법에 대해서 보다 상세하게 설명하기로 한다. 이때, 어떤 어플리케이션(30)도 실행되고 있지 않은 상태에서 어플리케이션(30)을 실행시키는 방법과, 적어도 하나의 어플리케이션(30)이 실행되어 있는 상태에서 다른 어플리케이션(30)을 실행시키는 방법으로 구분하여 설명하기로 한다. Next, a method of executing the
도 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
도 10을 참조하면, 사용자가 입력부(14)를 통해 특정의 어플리케이션(30)을 실행하도록 요청하면, 제어부(11)는 이를 감지하며, 이러한 입력에 대한 감지는 운영 체제(10)를 통해 이루어진다. 이에 따라, 운영 체제(10)는 S1001 단계에서 더미 컨테이너 실행부(220)를 실행시키고, 사용자의 특정 어플리케이션(30)에 대한 실행 요청을 실행할 어플리케이션(30)의 실행 인자와 함께 전달한다. Referring to FIG. 10, when the user requests to execute a
어떤 어플리케이션(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
한편, 실행 인자를 포함하는 실행 명령을 수신한 커맨드 핸들러(311)는 S1011 단계에서 런타임 매니저(310)의 내부 구성인 컨텍스트 매니저(313)에 실행 인자에 대응하는 어플리케이션(30)이 실행되도록 해당 실행 명령을 제공한다. 그러면, 컨텍스트 매니저(313)는 S1011 단계에서 해당 어플리케이션(30)을 실행 시킨다. 이때, 컨텍스트 매니저(313)는 브라우저 엔진 계층부(400)의 브라우저 엔진(410)을 호출함으로써 어플리케이션을 실행시킨다. 이때, 브라우저 엔진(410)은 S1013 단계에서 어플리케이션의 랜더링을 수행한다. On the other hand, the
도 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
도 11을 참조하면, 사용자가 입력부(14)를 통해 특정의 어플리케이션(30)을 실행하도록 요청하면, 제어부(11)는 이를 감지하며, 이러한 입력에 대한 감지는 운영 체제(10)를 통해 이루어진다. 이에 따라, 운영 체제(10)는 S1101 단계에서 더미 컨테이너 실행부(220)를 실행시키고, 사용자의 특정 어플리케이션(30)에 대한 실행 요청을 실행할 어플리케이션(30)의 실행 인자와 함께 전달한다. Referring to FIG. 11, when the user requests to execute a
어느 하나의 어플리케이션(30)이 실행되어 있는 상태이므로, 런타임 매니저(310)가 실행 중인 상태이며, 이에 따라, 런타임 매니저(310)의 구성 요소인 커맨드 핸들러(311) 및 컨텍스트 매니저(313)도 실행 중이다. 따라서 더미 컨테이너 실행부(220)는 S1103 단계에서 커맨드 핸들러(311)에 어플리케이션(30)을 실행하도록 실행 명령과 함께 실행 인자를 제공한다. 그런 다음, 더미 컨테이너 실행부(220)는 S1105 단계에서 자신의 실행을 종료한다. 여기서, S1005 단계는 S1005 단계 이후의 S1107 내지 S1111 단계의 실행 순서와 상관 없이, S1003 단계 후, 바로 수행된다. 이와 같이, 더미 컨테이너 실행부(220)는 어플리케이션(30) 실행 명령을 전송하고 바로 종료함으로써, 멀티 실행을 지원하지 않는 운영 체제(10)에서도 다른 어플리케이션(30) 실행 요청을 수신할 준비를 갖추게 된다. The
한편, 실행 명령을 수신한 커맨드 핸들러(311)는 S1107 단계에서 런타임 매니저(310)의 내부 구성인 컨텍스트 매니저(313)에 실행 인자에 대응하는 어플리케이션(30)이 실행되도록 해당 실행 명령을 제공한다. 그러면, 컨텍스트 매니저(313)는 S1109 단계에서 해당 어플리케이션(30)을 실행 시킨다. 이때, 컨텍스트 매니저(313)는 브라우저 엔진 계층부(400)의 브라우저 엔진(410)을 호출하여 어플리케이션(30)을 실행시키며, 브라우저 엔진(410)은 S1111 단계에서 어플리케이션의 랜더링을 수행한다. On the other hand, the
이상에서 설명한 바와 같이, 어플리케이션(30) 실행 요청에 따라, 더미 컨테이너 실행부(220)가 어플리케이션(30) 실행을 트리거하는 프로세스를 처리한 후, 바로 자신의 실행을 종료함으로써, 운영 체제(10)가 하나의 객체에 대해 다중 실행 또는 멀티 인스턴스를 지원하지 않는 경우에도, 복수의 서로 다른 어플리케이션(30)을 실행시킬 수 있다. As described above, according to the
본 발명의 실시예에 따른 어플리케이션(30) 실행 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method for executing the
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.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.
어플리케이션 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 이미 실행 중인 경우, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 것을 특징으로 하는 어플리케이션 실행 장치. 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.
어플리케이션을 실행시키는 컨텍스트 매니저를 더 포함하며,
상기 커맨드 핸들러는 상기 컨텍스트 매니저에 상기 실행 인자를 포함하는 상기 실행 명령을 전달하는 것을 특징으로 하는 어플리케이션 실행 장치. 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.
상기 어플리케이션을 랜더링하는 브라우저 엔진을 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치. 4. The system according to claim 3, wherein the application execution device
And a browser engine for rendering the application.
상기 어플리케이션의 윈도우를 생성하며, 상기 브라우저 엔진은 상기 어플리케이션의 랜더링된 결과를 상기 윈도우에 표시하는 것을 특징으로 하는 어플리케이션 실행 장치. 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.
상기 어플리케이션의 마크 업 랭귀지와 스타일 시트를 랜더링하기 위한 엔진 코어; 및
상기 어플리케이션의 스크립트 언어를 처리하기 위한 인터프리터인 스크립트 엔진;을 포함하는 것을 특징으로 하는 어플리케이션 실행 장치. 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.
상기 어플리케이션 실행 후, 실행된 어플리케이션으로부터 운영 체제의 종류에 무관하게 상기 운영 체제가 관장하는 기능 실행의 요청을 수신하여, 수신된 기능 실행의 요청을 전달하는 브라우저 엔진 계층부; 및
상기 기능 실행 요청을 상기 운영 체제의 종류에 맞게 변경하여 상기 기능 실행 요청에 해당하는 기능을 실행하도록 지시하는 이식 계층부;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.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.
적어도 하나의 인터페이스 모듈을 포함하며, 상기 인터페이스 모듈 각각은 상기 기능 실행의 종류에 따른 인터페이스를 가지는 것을 특징으로 하는 어플리케이션 실행 장치.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.
상기 해당하는 기능을 실행하도록 지시하기 위해 상기 운영 체제의 종류에 맞춰 구현됨과 동시에 상기 컨테이너 커먼 모듈로부터 요청을 수신하기 위해 상기 컨테이너 커먼 모듈과 상호간에 맞춰 구현되는 것을 특징으로 하는 어플리케이션 실행 장치.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.
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.
상기 기능 실행의 종류에 대응하여 상기 요청을 상기 이식 계층부에 전달하는 적어도 하나의 플러그 인;
상기 기능 실행의 종류에 따라 대응하는 상기 플러그 인을 호출하는 플러그 인 매니저; 및
상기 플러그 인이 호출되면 상기 기능 실행의 요청을 전달하도록 상기 플러그 인에 지시하는 브라우저 엔진;을 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.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.
단말 자원에 관련된 기능의 실행 요청을 상기 이식 계층에 전달하는 리소스 플러그 인;
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:
상기 어플리케이션 및 상기 플러그 인에 대해 설치 및 실행 시 인증을 수행하는 인증 매니저; 및
상기 브라우저 엔진 계층부의 상기 이식 계층부에 대한 접근 범위 및 접근 권한을 관리하는 정책 매니저;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.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.
상기 운영 체제의 기능 실행에 의해 관리되는 적어도 하나의 주변 장치;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치. 9. The method of claim 8,
And at least one peripheral device managed by the execution of the function of the operating system.
상기 운영 체제 자체 기능 실행, 상기 운영 체제 자체 기능 실행에 따른 자원의 사용, 상기 주변 장치의 개별 기능의 실행, 및 상기 주변 장치의 개별 기능의 실행에 따른 자원의 사용 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치. 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.
무선 통신을 수행하기 위한 무선 통신부;
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.
상기 확인 결과, 상기 런타임 매니저가 이미 실행 중이면, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 실행 명령을 전송하는 단계; 및
상기 더미 컨테이너 실행부가 자기 자신의 실행을 종료하는 단계;
를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법. 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 >
상기 커맨드 핸들러가 컨텍스트 매니저에 상기 실행 인자를 포함하는 상기 실행 명령을 전달하는 단계; 및
상기 컨텍스트 매니저가 상기 실행 명령에 따라 어플리케이션을 실행 시키는 단계;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법. 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.
상기 어플리케이션을 다른 어플리케이션과 구분할 수 있는 식별자 및 상기 어플리케이션을 이루는 복수의 페이지의 주소 중 어느 일 페이지의 주소 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 방법. 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.
상기 컨텍스트 매니저가 상기 실행 인자로 상기 일 페이지의 주소를 수신하면, 상기 일 페이지의 주소를 상기 어플리케이션의 시작 페이지로 설정하여 실행시키는 것을 특징으로 하는 어플리케이션 실행 방법. 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.
상기 컨텍스트 매니저가 상기 실행 인자로 식별자를 수신하면, 해당하는 식별자를 가지는 어플리케이션의 디폴트 페이지를 시작 주소로 하여 실행시키는 것을 특징으로 하는 어플리케이션 실행 방법. 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.
상기 컨텍스트 매니저가 브라우저 엔진을 호출하여 상기 어플리케이션을 랜더링하는 단계;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법. 21. The method of claim 20, further comprising: after executing the application,
And the context manager calls a browser engine to render the application.
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)
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)
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)
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 |
-
2010
- 2010-05-06 KR KR20100042400A patent/KR101482149B1/en active IP Right Grant
Patent Citations (3)
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)
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 |