Movatterモバイル変換


[0]ホーム

URL:


KR101460515B1 - 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
KR101460515B1
KR101460515B1KR1020100042399AKR20100042399AKR101460515B1KR 101460515 B1KR101460515 B1KR 101460515B1KR 1020100042399 AKR1020100042399 AKR 1020100042399AKR 20100042399 AKR20100042399 AKR 20100042399AKR 101460515 B1KR101460515 B1KR 101460515B1
Authority
KR
South Korea
Prior art keywords
application
execution
function
manager
operating system
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020100042399A
Other languages
Korean (ko)
Other versions
KR20110122995A (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 에스케이플래닛 주식회사filedCritical에스케이플래닛 주식회사
Priority to KR1020100042399ApriorityCriticalpatent/KR101460515B1/en
Publication of KR20110122995ApublicationCriticalpatent/KR20110122995A/en
Application grantedgrantedCritical
Publication of KR101460515B1publicationCriticalpatent/KR101460515B1/en
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Classifications

Landscapes

Abstract

Translated fromKorean

본 발명은 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것으로, 운영 체제의 종류에 무관하게 운영 체제가 관장하는 단말의 기능을 실행할 수 있는 인터페이스를 제공하여, 어플리케이션은 동일한 방법으로 운영 체제가 관장하는 단말의 기능을 실행시킬 수 있다. 이에 따라, 개발자는 운영 체제의 종류에 무관하게 동일한 형식으로 어플리케이션을 작성할 수 있으며, 사용자는 어떠한 종류의 운영 체제가 이식된 단말인지 여부에 무관하게 동일한 어플리케이션을 사용할 수 있다.The present invention relates to an application execution apparatus, a method thereof, and a computer-readable recording medium on which the method is recorded. The present invention provides an interface capable of executing functions of a terminal managed by an operating system regardless of the type of an operating system, Can execute the functions of the terminal managed by the operating system in the same manner. Accordingly, a developer can create an application in the same format regardless of the type of the operating system, and the user can use the same application regardless of what type of operating system is the terminal to which it is ported.

Description

Translated fromKorean
어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체{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 device that provides an application execution environment independent of the type of an operating system implanted in the terminal, a method thereof, and a computer readable And a recording medium.

운영 체제(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들이 추가로 요구되고 있다.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.

더욱이, 근래의 단말은 다양한 종류의 운영 체제가 이식되고 있다. 운영 체제가 다른 단말에서는 어플리케이션이 실행되지 않으므로, 단말의 어플리케이션 개발자들은 동일한 어플리케이션을 각 운영 체제의 API에 따라 따로 제작해야 하는 문제가 있다.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.

따라서 상술한 바와 같은 종래의 문제를 감안한 본 발명의 목적은 운영 체제에 무관하게 운영 체제가 관리하는 단말의 기능을 실행할 수 있는 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체를 제공함에 있다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made keeping in mind the above problems occurring in the prior art, and it is an object of the present invention to provide an application execution apparatus capable of executing functions of a terminal managed by an operating system, .

상술한 바와 같은 목적을 달성하기 위한 본 발명에 따른 어플리케이션 실행 장치는, 상기 어플리케이션으로부터 운영 체제의 종류에 무관하게 상기 운영 체제가 관장하는 기능 실행의 요청을 수신하여, 수신된 기능의 실행 요청을 전달하는 컨테이너 커먼 모듈; 및 상기 기능 실행 요청을 상기 운영 체제의 종류에 맞게 변경하여 상기 기능 실행 요청에 해당하는 기능을 실행하도록 운영 체제에 지시하는 이식 계층부를 포함한다.According to an aspect of the present invention, there is provided an application execution apparatus for receiving an execution request of a function managed by an operating system regardless of an operating system type, Container common module; And an implantation layer unit for instructing the operating system to execute 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 according to 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 apparatus according to the present invention, the interface may be implemented in accordance with the type of the operating system to instruct execution of the corresponding function, and may be configured to mutually communicate with the container common module in order to receive a request from the container common module. And is implemented in accordance with the application program.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 인터페이스 모듈은, HTTP 및 HTTPS 관련 기능을 제공하는 HTTP 모듈; XML 파서 기능 및 XSLT 변환 기능을 제공하는 XML 모듈; 스레드 기능을 제공하는 스레드 모듈; 사용자 인터페이스를 이식하기 위해 필요한 운영 체제 자체의 윈도우 시스템 기능을 제공하는 UI 백엔드 모듈; 보안 스토리지에 접근할 수 있는 기능을 제공하는 보안 스토리지 모듈; 스토리지에 접근할 수 있는 기능을 제공하는 로컬 스토리지 모듈; 단말의 자원에 관련된 기능을 제공하는 리소스 매니저; OS API와 관련된 기능을 제공하는 OS API 매니저; 타 어플리케이션과의 연동을 위한 기능을 제공하는 공통 작업 매니저, 및 타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능을 제공하는 싱크 매니저 중 적어도 하나를 포함한다.In the application execution device according to 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 for interlocking with other devices and providing functions related to data synchronization with other devices.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 컨테이너 커먼 모듈은 브라우저 엔진 계층부를 더 포함하며, 상기 브라우저 엔진 계층부는, 상기 기능 실행의 종류에 대응하여 상기 요청을 상기 이식 계층부에 전달하는 적어도 하나의 플러그 인; 상기 기능 실행의 종류에 따라 대응하는 상기 플러그 인을 호출하는 플러그 인 매니저; 및 상기 플러그 인이 호출되면 상기 기능 실행의 요청을 전달하도록 상기 플러그 인에 지시하는 브라우저 엔진;을 포함한다.In the application executing apparatus according to the present invention, the container common module may further include a browser engine layer unit, and the browser engine layer unit may include at least one Plug-in; 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 according to 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 device according to the present invention, the application execution device may further include at least one peripheral device managed by the execution of the function of the operating system.

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

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 주변 장치는, 무선 통신을 수행하기 위한 무선 통신부; GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하기 위한 GPS부; 사용자의 입력을 받기 위한 입력부; 단말의 사용에 따라 발생하는 화면 데이터를 표시하기 위한 표시부; 음성 신호를 입력 받고 출력 받기 위한 마이크 및 스피커 등을 구비하는 오디오 처리부; 및 카메라 기능을 수행하기 위한 카메라부; 중 적어도 하나를 포함한다.In the application execution device according to 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.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 컨테이너 커먼 모듈은, 어플리케이션 런타임 계층부를 더 포함하며, 상기 어플리케이션 런타임 계층부는, 상기 어플리케이션의 실행 및 종료를 관리하는 런타임 매니저; 상기 어플리케이션 설치 정보와, 상기 컨테이너 커먼 모듈 및 상기 이식 계층부의 구성 정보를 관리하는 레지스트리 매니저; 상태 바 및 소프트 버튼 영역을 랜더링하는 UI 엔진; 상기 컨테이너 커먼 모듈이 사용할 네트워크를 설정하고 관리하는 기능을 제공하는 네트워크 셀렉터; 및 온 라인 또는 오프라인에 있는지 여부와 상관없이, 상기 어플리케이션의 실행을 끊김 없이 제공하는 어플리케이션 동기 매니저;를 포함한다.In the application execution device according to the present invention, the container common module may further include an application runtime layer, wherein the application runtime layer includes: a runtime manager for managing execution and termination of the application; A registry manager for managing the application installation information, configuration information of the container common module and the porting layer; A UI engine rendering a status bar and a soft button area; A network selector for providing a function of setting and managing a network to be used by the container common module; And an application synchronization manager for seamlessly providing execution of the application regardless of whether the application is on-line or off-line.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 런타임 매니저는, 상기 어플리케이션의 실행 명령을 수신하여 전달하는 커맨드 핸들러; 상기 실행 명령을 전달받아 어플리케이션을 실행시키는 컨텍스트 매니저; 상기 어플리케이션 실행시 발생하는 이벤트를 처리하는 이벤트 핸들러; 및 상기 어플리케이션의 윈도우 및 페이지의 실행 및 종료를 관리하는 라이프사이클 매니저;를 포함한다.In the application execution device according to the present invention, the runtime manager may include: a command handler for receiving and delivering an execution command of the application; A context manager for receiving the execution command and executing the application; An event handler for processing an event that occurs when the application is executed; And a lifecycle manager for managing execution and termination of windows and pages of the application.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 어플리케이션 실행 장치는 컨테이너 실행부를 더 포함하며, 상기 컨테이너 실행부는 운영 체제로부터 상기 어플리케이션의 실행 요청을 전달하거나, 상기 컨테이너 커먼 모듈 및 이식 계층부의 업데이트를 제공하는 컨테이너 에이전트; 상기 어플리케이션 실행 요청을 수신하여, 상기 어플리케이션 런타임 계층을 구동시키는 더미 컨테이너 실행부; 및 상기 어플리케이션을 단말의 대기 모드 화면에서 동작시키는 대기 모드 에이전트;를 포함한다.In the application execution apparatus according to the present invention, the application execution apparatus may further include a container execution unit, and the container execution unit may transmit the execution request of the application from the operating system, or provide update of the container common module and the portability layer Container agent; A dummy container execution unit for receiving the application execution request and driving the application runtime layer; And a standby mode agent for operating the application in a standby mode screen of the terminal.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 컨테이너 커먼 모듈은, 보안 계층부를 포함하며, 상기 보안 계층부는, 상기 어플리케이션 및 플러그 인에 대해 설치 및 실행 시 인증을 수행하는 인증 매니저; 및 상기 컨테이너 커먼 모듈이 상기 이식 계층부에 대한 접근 범위 및 접근 권한을 관리하는 정책 매니저;를 포함한다.In the application execution device according to the present invention, the container common module may include a security layer, and the security layer may include an authentication manager for performing authentication when the application and the plug-in are installed and executed; And a policy manager managing the access scope and the access authority for the port layer unit by the container common module.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 어플리케이션 실행 장치는, 상기 어플리케이션을 실행시키기 위한 실행 명령 수신을 위한 커맨드 핸들러를 가지며, 상기 실행 명령을 수신하여 상기 어플리케이션을 실행시키는 런타임 매니저; 및 운영 체제로부터 상기 어플리케이션의 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 실행 중이 아닌 경우, 상기 런타임 매니저를 실행 시킨 후, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 더미 컨테이너 실행부;를 더 포함한다.In the application execution device according to the present invention, the application execution device may include a runtime manager having a command handler for receiving an execution command for executing the application, the execution manager receiving the execution command and executing the application; And a run-time manager for executing the application when the run-time manager is not executing the run-time manager when the execution-manager receives the execution request from the operating system, And a dummy container execution unit for sending the execution command including the argument and terminating the execution of itself.

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 더미 컨테이너 실행부는 어플리케이션 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 이미 실행 중인 경우, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 것을 특징으로 한다.In the application execution apparatus according to 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, The execution command including the execution parameter is transmitted, and the execution of the self-execution is terminated.

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

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 어플리케이션 실행 장치는 상기 어플리케이션을 랜더링하는 브라우저 엔진을 더 포함한다.In the application execution apparatus according to the present invention, the application execution apparatus further includes a browser engine rendering the application.

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

본 발명에 따른 어플리케이션 실행 장치에 있어서, 상기 컨텍스트 매니저는 상기 어플리케이션의 윈도우를 생성하며, 상기 브라우저 엔진은 상기 어플리케이션의 랜더링된 결과를 상기 윈도우에 표시하는 것을 특징으로 한다.In the application execution device according to 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 according to 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.

상술한 바와 같은 목적을 달성하기 위한 본 발명에 따른 어플리케이션 실행 방법은, 상기 어플리케이션으로부터 운영 체제가 관장하는 기능 실행의 요청이 있으면, 플러그 인 매니저가 상기 기능 실행의 종류에 대응하는 플러그 인을 호출하는 호출 단계; 브라우저 엔진이 상기 기능 실행의 요청을 전달하도록 상기 호출된 플러그 인에 지시하는 전달 지시 단계; 상기 호출된 플러그 인이 상기 지시에 따라 상기 기능 실행의 요청을 상기 이식 계층부에 전달하는 전달 단계; 및 상기 이식 계층부가 상기 기능 실행의 요청을 전달 받고, 상기 전달 받은 요청을 상기 운영 체제의 종류에 맞게 변환하여 상기 운영 체제가 상기 기능을 실행하도록 지시하는 실행 지시 단계;를 포함한다.According to another aspect of the present invention, there is provided a method of executing an application, the method comprising: when a request for executing a function supervised by an operating system is requested from the application, Calling phase; A delivery instruction step of instructing the browser engine to send the request for executing the function to the called plug-in; A transferring step in which the called plug-in transfers a request for executing the function to the transplantation layer unit according to the instruction; And an execution instruction step in which the transfer layer receives a request for executing the function and instructs the operating system to execute the function by converting the received request into the type of the operating system.

본 발명에 따른 어플리케이션 실행 방법에 있어서, 상기 실행 지시 단계는 상기 이식 계층부가 상기 기능 실행의 요청을 수신하기 위해 상기 플러그 인과 상호간에 맞춰 구현됨과 동시에 상기 기능을 실행하도록 지시하기 위해 상기 운영 체제의 종류에 따라 구현된 인터페이스를 이용하여 수행하는 것을 특징으로 한다.In the method of executing an application according to the present invention, the step of instructing execution may be performed in a state in which the transplantation layer is implemented in mutual relation with the plug-in to receive a request for executing the function, And an interface implemented according to the present invention.

본 발명에 따른 어플리케이션 실행 방법에 있어서, 상기 실행 지시 단계는, 상기 이식 계층부가 상기 운영 체제의 종류에 따라 상기 운영 체제에 상기 기능 실행 요청의 기능을 실행하도록 하거나, 상기 운영 체제에 맞게 형식만 변경하여 운영 체제에 전달하는 것을 특징으로 한다.In the application execution method according to the present invention, the execution instruction step may be a step of causing the transplantation layer to execute the function of the function execution request in the operating system according to the type of the operating system, To the operating system.

본 발명에 따른 어플리케이션 실행 방법에 있어서, 상기 전달 지시 단계 후, 상기 전달 단계 전, 상기 플러그 인이 상기 이식 계층부에 대한 접근 범위 및 접근 권한을 확인하는 단계를 더 포함한다.In the method of executing an application according to the present invention, the step of confirming an access range and an access right to the transplantation layer unit by the plug-in may be performed after the transfer instruction step and before the transfer step.

본 발명에 따른 어플리케이션 실행 방법에 있어서, 상기 전달 지시 단계 후, 상기 전달 단계 전, 상기 플러그 인이 정당한 절차에 따라 설치되었는지 여부를 인증하는 단계를 더 포함한다.In the method of executing an application according to the present invention, the method further comprises authenticating whether the plug-in is installed according to a proper procedure after the delivery instruction step and before the delivery step.

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

본 발명에 따르면, 운영 체제 별로 다른 형식을 가지는 기능 실행을 위한 인터페이스를 운영 체제의 종류에 무관하게 제공함으로써, 어플리케이션이 동일한 방법으로 운영 체제가 관리하는 단말의 기능을 실행하도록 할 수 있다. 따라서 개발자들은 운영 체제의 종류에 무관하게 동일한 형식으로 어플리케이션을 제작할 수 있다. 그리고 사용자들은 동일한 어플리케이션을 운영 체제의 종류에 무관하게 동일한 사용자 경험에 의해 사용할 수 있다.According to the present invention, an interface for executing a function having a different format according to an operating system can be provided irrespective of the type of an operating system, so that the application can execute the function of the terminal managed by the operating system in the same manner. Therefore, developers can create applications in the same format regardless of the operating system. And users can use the same application by the same user experience regardless of operating system type.

도 1은 본 발명의 실시예에 따른 어플리케이션 실행 장치의 구성을 설명하기 위한 도면.
도 2는 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼의 구조를 설명하기 위한 도면.
도 3은 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 컨테이너 실행부의 세부 구성을 설명하기 위한 도면.
도 4는 본 발명의 실시예에 따른 플랫폼에서 어플리케이션 런타임 계층부를 설명하기 위한 도면.
도 5는 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 계층부를 설명하기 위한 도면.
도 6은 본 발명의 실시예에 따른 플랫폼에서 보안 계층부의 세부 구성을 설명하기 위한 도면.
도 7은 본 발명의 실시예에 따른 플랫폼에서 이식 계층부를 설명하기 위한 도면.
도 8은 본 발명의 실시예에 따른 플랫폼에서 시스템 어플리케이션을 설명하기 위한 도면.
도 9는 본 발명의 실시예에 따른 어플리케이션 실행 방법을 설명하기 위한 도면.
도 10은 본 발명의 실시예에 따른 어플리케이션의 폰북 기능을 실행하는 방법을 설명하기 위한 도면.
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 an application execution method according to an embodiment of the present invention.
10 is a diagram for explaining a method of executing a phone book function of an application according to an embodiment of the present invention;

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.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 acontrol unit 11, astorage unit 12, and aperipheral device 13.

저장부(12)는 데이터를 저장하기 위한 장치로, 주 기억 장치 및 보조 기억 장치를 포함한다. 저장부(12)는 운영 체제(10), 플랫폼(20) 및 어플리케이션(30)을 저장하며, 단말의 기능 실행에 따라 발생하는 각종 데이터를 저장한다.Thestorage unit 12 is an apparatus for storing data, and includes a main storage device and an auxiliary storage device. Thestorage unit 12 stores theoperating system 10, theplatform 20, and theapplication 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)의 구성으로 설명할 것이다.Thecontrol unit 11 is a processing device that actually drives theoperating system 10, theplatform 20, and theapplication 30. For example, thecontrol unit 11 may be a central processing unit (CPU). When the terminal is powered on, thecontrol unit 11 moves theoperating system 10 from the auxiliary storage device to the main storage device, and then performs booting to drive theoperating system 10. Thecontrol unit 11 executes theplatform 20 at the top of theoperating system 10 in a hierarchical structure when there is an execution request of theapplication 30 according to the user's operation and theplatform 20 executes theapplication 20 30). As described above, thecontrol unit 11 loads theplatform 20 from thestorage unit 12 and executes theplatform 20. However, theplatform 20 may be configured as one module in thecontrol unit 11. [ Hereinafter, theplatform 20 according to the embodiment of the present invention will be described with the configuration of thecontrol unit 11. [

제어부(11)는 운영 체제(10)의 요청에 따라 주변 장치(13)를 제어한다. 즉, 운영 체제(10)는 제어부(11)를 통해 단말의 기능 실행을 관장한다. 여기서, 단말의 기능을 실행하는 것은 주변 장치(13)의 개별 기능 및 이 개별 기능 실행에 따른 자원(resource)의 사용을 포함하며, 운영 체제(10)의 자체 기능 실행과, 운영 체제(10)의 자체 기능 실행에 따른 자원의 사용을 더 포함한다.Thecontrol unit 11 controls theperipheral device 13 at the request of theoperating system 10. That is, theoperating system 10 controls the execution of functions of the terminal through thecontrol unit 11. The execution of the functions of the terminal here includes the individual functions of theperipheral device 13 and the use of resources according to the execution of the individual functions and is performed by theoperating 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 theoperating system 10 requests execution of the terminal functions described above during execution of theapplication 30, theoperating system 10 provides an interface to theapplication 30, and theapplication 30 sends the provided interface And requests theoperating 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 eachoperating system 10. Therefore, depending on the type of theoperating system 10, theoperating system 10 has a different type of interface that provides the same function. In this way, when theapplication 30 is executed by directly referring to theoperating system 10, theapplication 30 must be implemented differently according to the type of theoperating system 10.

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

한편, 본 발명의 실시예에서 어플리케이션(30)은 웹 어플리케이션을 예로 들어 설명하며, 이는 브라우저(browser)에서 동작하는 어플리케이션이다. 이러한 웹 어플리케이션은 웹 표준 언어로 작성된다. 웹 표준 언어는 HTML(Hyper Text Markup Language), CSS(Cascading Style sheet), JavaScript 등을 예시할 수 있다. 하지만, 본 발명의 실시예를 웹 어플리케이션에 한정하는 것은 아니며, 단말에서 구동 가능한 어떠한 어플리케이션이라도 본 발명의 균등 범위에서 실시 가능함은 당연하다.Meanwhile, in the embodiment of the present invention, theapplication 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.

주변 장치(13)는 각각 고유의 기능을 가지며, 운영 체제(10)가 제어부(11)를 통해 그 실행을 제어할 수 있다. 이러한 주변 장치(13)는 각종 키들을 구비하여 사용자의 입력을 수신하는 입력부(14), 단말의 기능 실행에 따라 발생하는 화면 데이터를 표시하기 위한 표시부(15), 무선 통신 기능을 수행하기 위한 무선 통신부(16), GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하기 위한 GPS부(17), 음성 신호를 입력 받고 출력하기 위한 마이크 및 스피커 등을 구비하는 오디오 처리부(18), 및 카메라 기능을 수행하기 위한 카메라부(19)를 포함한다. 또한 도시되진 않았으나, 본 발명의 실시예에 따른 단말의 주변 장치(13)로, 메모리 카드와 같은 외부 저장 매체를 삽입하여 데이터 저장을 가능토록 하는 저장매체 삽입부, 외부 타 장치와의 데이터 교환을 위한 연결 단자, 충전용 단자를 구비할 수 있다. 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 주변 장치(13)와 동등한 수준의 장치들이 본 발명의 실시예에 따른 단말에 추가로 더 포함되어 구성될 수 있다는 것은 본 기술 분야의 통상의 지식을 가진 자라면 쉽게 이해할 수 있을 것이다.Each of theperipheral devices 13 has a unique function and theoperating system 10 can control its execution through thecontrol unit 11. [ Theperipheral device 13 includes aninput unit 14 having various keys for receiving a user's input, adisplay unit 15 for displaying screen data generated according to the execution of functions of the terminal, a wireless unit Anaudio processing unit 18 having acommunication unit 16, aGPS 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 acamera unit 19 for carrying out the present invention. Although not shown, aperipheral 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-mentionedperipheral 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)의 기능을 실행하도록 한다.Theoperating system 10 manages the above-described function execution of theperipheral device 13 through thecontrol unit 11. [ This is accomplished by thecontrol unit 11 interpreting the execution command of theoperating system 10 and thecontrol unit 11 operating theperipheral device 13. [ When theapplication 30 requests the function execution of the terminal 20 through the interface provided by theplatform 20, theapplication 30 transmits a function execution request of theplatform 20 to theoperating system 10, Theoperating system 10 causes thecontrol unit 11 to execute the function of theperipheral device 13. [

다음으로, 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼(20)에 대해서 보다 상세히 설명하기로 한다. 도 2는 본 발명의 실시예에 따른 어플리케이션 실행 장치에서 플랫폼의 구조를 설명하기 위한 도면이다.Next, theplatform 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, aplatform 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, theplatform 20 further includes asystem application 40.

컨테이너 코어(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: 이하, "컨테이너 커먼 모듈"로 축약함)에 포함된다.Thecontainer core 21 includes anapplication runtime layer 300, abrowser engine layer 400, asecurity layer 500 and aporting layer 600 . Thetransplanting layer unit 600, thesecurity layer unit 500, the browserengine layer unit 400, and the applicationruntime layer unit 300 are sequentially connected. Theapplication runtime layer 300, thebrowser engine layer 400 and thesecurity layer 500 except for theporting layer 600 in thecontainer 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 theplatform 20 as described above, theimplantation layer 600 is directly connected to theoperating system 10. Thecontainer executing unit 200 and the containercommon module 22 are connected to theporting layer unit 600 so that thecontainer executing unit 200 and the containercommon module 22 can communicate with each other through theporting 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 theapplication 30 and thesystem application 40 are directly connected to the containercommon module 22, they can access theoperating system 10 through the containercommon module 22 and theporting layer 600. When theapplication 30 wants to execute the function of the terminal, theapplication 30 requests the containercommon module 22 to do so. The containercommon module 22 then forwards the request to thetransplantation layer 600 and thetransplantation layer 600 forwards the request back to theoperating system 10. At this time, theporting layer unit 600 converts the request according to the interface of theoperating system 10 and transfers the converted request to theoperating system 10. Accordingly, theoperating system 10 executes the function requested by theapplication 30 through thecontrol 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 thetransport layer unit 600 is connected to the containercommon module 22 while being connected to theoperating system 10. Thus, the interface of theportability layer 600 is implemented for eachoperating system 10 so that it can connect with each operatingsystem 10 in connection with theoperating system 10. In this way, the interfaces implemented by therespective operating systems 10 can be connected to either the containercommon module 22 or theimplantation layer 600 so that they are mutually connected to each other between the containercommon module 22 and theimplantation layer 600 Is implemented. Accordingly, when theapplication 30 requests the execution of a function supervised by theoperating system 10 in accordance with the containercommon module 22 regardless of theoperating system 10, the containercommon module 22 executes the function common to theoperating system 10, Theapplication layer 30 can transmit the request of theapplication 30 to theporting layer unit 600 regardless of the type of the application. Thetransport layer unit 600 receiving this request can instruct theoperating system 10 to execute the function according to the request for eachoperating system 10. [ Therefore, theapplication 30 can access the terminal resources or functions through theplatform 20 regardless of the type of theoperating 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 theplatform 20, the containercommon module 22 receives a request from theapplication 30, and theporting layer unit 600 instructs theapplication 10 to execute the function according to the request, do. For this purpose, the containercommon module 22 and theapplication 30 are implemented mutually, and theportable layer module 600 is implemented according to the type of eachoperating system 10. In addition, the containercommon module 22 must be able to transmit the request of theapplication 30 to thetransplantation layer 600. Accordingly, the containercommon module 22 and theporting layer unit 600 are implemented mutually. As described above, since theplatform 20 is formed between theapplication 20 and theoperating system 10 in two hierarchical structures, that is, the containercommon module 22 and theporting layer unit 600, theapplication 30 and the operating system Even if any one of the containercommon module 22 and thetransplantation layer 10 is changed, theentire platform 20 need not be changed and only the corresponding configuration among the containercommon module 22 and thetransplantation layer 600 can be changed.

다음으로, 본 발명의 실시예에 따른 플랫폼(20)의 세부 구조에 대해서 보다 상세하게 설명한다.Next, the detailed structure of theplatform 20 according to the embodiment of the present invention will be described in more detail.

도 3은 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 컨테이너 실행부의 세부 구성을 설명하기 위한 도면이며, 도 4는 본 발명의 실시예에 따른 플랫폼에서 어플리케이션 런타임 계층부를 설명하기 위한 도면이고, 도 5는 본 발명의 실시예에 따른 플랫폼에서 브라우저 엔진 계층부를 설명하기 위한 도면이다. 또한, 도 6은 본 발명의 실시예에 따른 플랫폼에서 보안 계층부의 세부 구성을 설명하기 위한 도면이며, 도 7은 본 발명의 실시예에 따른 플랫폼에서 이식 계층부를 설명하기 위한 도면이고, 도 8은 본 발명의 실시예에 따른 플랫폼에서 시스템 어플리케이션을 설명하기 위한 도면이다.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, thecontainer 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)을 구동시키기 위함이다.3 to 6, thecontainer executing unit 200 plays a role of managing the general execution of theapplication 30, the execution in the standby mode, the updating of all or a part of thecontainer core 21, and the like. Thecontainer execution unit 200 serves as an entry point of theapplication 30 and can generate thecontainer core 21. [ Thecontainer 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 ofapplications 30 even when theoperating system 10 does not support multiple execution or multi-instance.

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

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

어플리케이션(30) 실행 요청이 있을 때, 컨테이너 에이전트(210)는 컨테이너 코어(21)가 이미 실행되어 있으면, 어플리케이션(30)을 실행하도록 컨테이너 코어(21)에 해당 어플리케이션(30)에 대한 정보를 제공한다. 한편, 어플리케이션(30) 실행 요청이 있을 때, 컨테이너 에이전트(210)는 컨테이너 코어(21)가 실행 중이 아니면, 컨테이너 코어(21)를 실행시키고 컨테이너 코어(21)에 어플리케이션(30)을 실행시킬 수 있는 정보를 제공하여 어플리케이션(30)을 실행시키도록 한다. 어플리케이션(30)의 실행은 어플리케이션 런처(211)가 더미 컨테이너 실행부(220)를 통해 실행 인자를 어플리케이션 런타임 계층부(300)에 전달함으로써 이루어진다. 어플리케이션 런처(211)는 어플리케이션(30)의 명칭 또는 식별자(ID) 및 주소(URL) 중 적어도 하나를 실행 인자로 전달하여 어플리케이션(30)이 실행되도록 할 수 있다. 이때, 어플리케이션(30)의 주소(URL)가 인자로 전달되는 경우, 어플리케이션(30)은 해당 주소를 시작 페이지로 하여 실행될 수 있다. 어플리케이션(30)의 명칭 또는 식별자(ID)만 인자로 전달된 경우, 해당 어플리케이션(30)의 모든 소스 파일이 저장된 패키지에 대한 메타 데이터(Meta data)로부터 추출한 디폴트 페이지(default page)를 시작 페이지로 실행한다. 여기서, 디폴트 페이지는 어플리케이션(30) 설치 시, 어플리케이션(30)의 메타 데이터로부터 추출되어 레지스트리 매니저(320)를 통해 등록된 것이다.When there is a request to execute theapplication 30, thecontainer agent 210 provides information about theapplication 30 to thecontainer core 21 to execute theapplication 30, if thecontainer core 21 has already been executed do. When there is a request to execute theapplication 30, thecontainer agent 210 may execute thecontainer core 21 and execute theapplication 30 in thecontainer core 21, if thecontainer core 21 is not running And theapplication 30 is executed. Execution of theapplication 30 is performed by theapplication launcher 211 transmitting an execution factor to theapplication runtime layer 300 through the dummycontainer execution unit 220. Theapplication launcher 211 may transmit at least one of the name or the identifier (ID) and the address (URL) of theapplication 30 as an execution parameter so that theapplication 30 is executed. At this time, when the address (URL) of theapplication 30 is transmitted as an argument, theapplication 30 can be executed with the corresponding address as the start page. When only the name or identifier (ID) of theapplication 30 is passed as a parameter, a default page extracted from the metadata of the package in which all the source files of theapplication 30 are stored is set as a start page . Here, the default page is extracted from the metadata of theapplication 30 when theapplication 30 is installed and registered through theregistry 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)의 보안 정책을 새로 업데이트할 수 있다.Thecontainer agent 210 plays a role of updating part or all of thecontainer core 21. The update can be performed according to the following two methods. First, there is a method for the server for updating to trigger the update of thecontainer agent 210, and it can be illustrated that the server triggers thecontainer agent 210 via "SMS push ". Second, there is a method in which thecontainer agent 210 periodically checks for update. This is a method of self-checking whether thecontainer agent 210 periodically performs update. The above-described update may be performed by thecontainer update module 213. [ Thecontainer update module 213 can update all of thecontainer core 21 or update each configuration of thecontainer core 21. [ That is, since thecontainer core 21 is modularized into a plurality of detailed configurations, thecontainer update module 213 can update each configuration individually. In particular, in the case of the plug-in 430 of thebrowser engine layer 400, a plug-in 430 for implementing a new function may be additionally provided. In addition, thecontainer update module 213 can update data used by each configuration of thecontainer core 21. For example, the security policy of thesecurity layer 500 may be updated.

더미 컨테이너 실행부(220)는 컨테이너 에이전트(210)에 의해 실제로 컨테이너 코어(21)를 실행시키는 실행 모듈이다. 즉, 컨테이너 에이전트(210)는 어플리케이션 런처(211)를 통해 더미 컨테이너 실행부(220)를 트리거 시키면, 더미 컨테이너 실행부(220)는 컨테이너 코어(21)를 실행시킨다. 이때, 더미 컨테이너 실행부(220)는 컨테이너 코어(21)의 런타임 매니저(310)에 제어권을 넘겨주는 역할을 수행한다.The dummycontainer execution unit 220 is an execution module that actually executes thecontainer core 21 by thecontainer agent 210. That is, when thecontainer agent 210 triggers the dummycontainer execution unit 220 through theapplication launcher 211, the dummycontainer execution unit 220 executes thecontainer core 21. At this time, the dummycontainer execution unit 220 hands the control right to theruntime manager 310 of thecontainer core 21.

더미 컨테이너 실행부(220)는 운영 체제(10) 또는 컨테이너 에이전트(210)로부터 어플리케이션(30)을 실행할 것을 요청 받아, 실제로 어플리케이션(30)의 실행을 담당하는 어플리케이션 런타임 계층부(300)의 런타임 매니저(310)를 실행시킨다. 그런 다음, 더미 컨테이너 실행부(220)는 런타임 매니저(310)의 커맨드 핸들러(311)에 실행 명령을 전달한 후, 자기 자신의 실행을 종료한다. 이때, 런타임 매니저(310)가 이미 실행 중이면, 단순히 커맨드 핸들러(311)에 실행 명령을 전달한 후, 자기 자신의 실행을 종료한다. 여기서, 더미 컨테이너 실행부(220)가 실행 명령을 전달하는 것은, 컨테이너 코어(21)의 런타임 매니저(310)에 제어권을 넘겨주는 것을 의미한다. 특히, 더미 컨테이너 실행부(220)가 제어권을 넘겨준 후, 자기 자신의 실행을 종료하는 것은 운영 체제(10)가 다중 실행 또는 동일한 객체의 멀티 인스턴스를 지원하지 않는 경우, 복수의 어플리케이션을 실행시키기 위한 것이다. 즉, 더미 컨테이너 실행부(220)는 종료 상태이므로, 운영 체제(10)는 더미 컨테이너 실행부(220)를 실행(단일 실행, 단일 인스턴스)시킴과 동시에 특정 어플리케이션을 실행시키도록 요청한다. 이에 따라, 어플리케이션의 다중 실행은 더미 컨테이너 실행부(220)로부터 실행 명령을 수신한 런타임 매니저(310)에서 수행하므로, 운영 체제(10)에 상관 없이 언제나 어플리케이션을 다중으로 실행시킬 수 있다.The dummycontainer execution unit 220 is requested to execute theapplication 30 from theoperating system 10 or thecontainer agent 210 and receives a request for executing theapplication 30 from theruntime manager 300 of theapplication runtime layer 300, (310). Then, the dummycontainer execution unit 220 transmits an execution command to thecommand handler 311 of theruntime manager 310, and then ends its execution. At this time, if theruntime manager 310 is already executing, theexecution manager 310 simply passes the execution command to thecommand handler 311, and then ends its execution. Here, when the dummycontainer execution unit 220 delivers the execution command, it means that the control authority is handed over to theruntime manager 310 of thecontainer core 21. In particular, after the dummycontainer execution unit 220 hands over the control, the execution of the self-execution is terminated when theoperating system 10 does not support multiple execution or multiple instances of the same object, . That is, since the dummycontainer execution unit 220 is in an end state, theoperating system 10 requests the dummycontainer execution unit 220 to execute a specific application while executing the dummy container execution unit 220 (single execution, single instance). Accordingly, the multiple execution of the application is performed by theruntime manager 310 that receives the execution command from the dummycontainer execution unit 220, so that the application can be executed multiple times at any time regardless of theoperating system 10. [

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

다음으로, 본 발명의 실시예에 따른 어플리케이션 런타임 계층부(300)에 대해서 설명하기로 한다.Next, the applicationruntime 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, theapplication runtime layer 300 provides an application execution environment and functions as a kernel of theentire platform 20.Application runtime layer 300 When theapplication 30 is created, it manages the generatedapplication 30 and manages registry information and UI (User Interface) for application installation and configuration information setting do.

런타임 매니저(310)는 어플리케이션(30)이 실행된 경우, 이 어플리케이션(30)의 컨텍스트(context)를 관리하고, 이벤트 핸들링(Event Handling)을 수행하며, 컨테이너 에이전트(210)로부터의 명령이 있으면, 이 명령을 처리한다. 이를 위하여, 런타임 매니저(310)는 커맨드 핸들러(Command Handler, 311), 컨텍스트 매니저(Context Manager, 313), 이벤트 핸들러(Event Handler, 315), 라이프 사이클 매니저(Life cycle Manager, 317)를 포함한다.When theapplication 30 is executed, theruntime manager 310 manages the context of theapplication 30, performs event handling, and if there is an instruction from thecontainer agent 210, Process this command. To this end, theruntime manager 310 includes acommand handler 311, a context manager 313, anevent 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)의 설치, 삭제 및 업데이트를 요청할 수 있다.Thecommand handler 311 is an IPC command processor that receives commands from thecontainer execution unit 200 via an inter-process communication (IPC) method, analyzes the commands, and performs an operation corresponding to each command. Thecommand handler 311 performs the following operations according to the command. Thecommand handler 311 may request the context manager 313 to execute or terminate theapplication 30. In addition, thecommand handler 311 can update the configuration information of theplatform 20 through theregistry manager 320. Then, thecommand handler 311 can organize resources and terminate theplatform 20, which is a process of itself. This is to terminate the runningplatform 20 process at the time of updating theplatform 20 against theoperating system 10 which does not provide the other process termination function. In addition, thecommand handler 311 may request the plug-inmanager 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 theapplication 30 and manages the creation and destruction of thebrowser engine 410 renderer and window. When the execution of theapplication 30 is requested from thecommand handler 311, the context manager 313 creates a window according to a window creation command from thebrowser engine 410. [ Next, the context manager 313 creates a renderer of thebrowser 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 thecommand handler 311 to terminate the browser or an instruction to instruct theevent handler 315 and thebrowser engine 410 to extinguish the window. In this case, the context manager 313 retrieves the renderer and window resources of thebrowser engine 410, and then terminates theapplication 30 or extinguishes the window. In addition, the context manager 313 terminates thecorresponding application 30 when all the windows owned by theapplication 30 are destroyed.

이벤트 핸들러(315)는 어플리케이션 실행시 발생하는 이벤트를 처리한다. 즉, 이벤트 핸들러(315)는 컨텍스트 매니저(313)에서 생성한 윈도우 관련 이벤트와 플랫폼(20) 자체에서 확장된 시스템 관련 이벤트 등을 받아서 처리하는 모듈이다. 한편, 브라우저 엔진(410)에 관련된 이벤트는 브라우저 엔진(410)에서 직접 처리하므로, 이벤트 핸들러(315)는 브라우저 엔진(410)과 관련된 이벤트는 처리하지 않는다.Theevent handler 315 processes an event that occurs when the application is executed. That is, theevent handler 315 is a module for receiving and processing window-related events generated by the context manager 313 and system-related events extended from theplatform 20 itself. On the other hand, since the event related to thebrowser engine 410 is handled directly by thebrowser engine 410, theevent handler 315 does not process the event related to thebrowser 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. Theapplication 30 may comprise a plurality of pages. Also, at least one window is created for eachapplication 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 theapplication 30 are closed, theapplication 30 is terminated. As described above, there is a life cycle of theapplication 30, the window and the page of theapplication 30, and the life cycle manager 317 manages the life cycle.

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

UI 엔진(330)은 브라우저 엔진(410)이 렌더링하는 영역 이외의 모든 UI 및 사용자 입력 처리를 담당한다. 구체적으로, 어플리케이션(30) 콘텐츠 영역 이외의 모든 영역의 표시를 담당하며, 상태 바 영역과 소프트 버튼 영역이 여기에 해당한다. 여기서, 상태 바 영역은 단말의 상태를 나타내는 아이콘들을 표시하는 영역으로, 주로 표시부(15)의 상단에 배치되며, 이 영역에는 수신 신호 세기를 나타내는 아이콘, 배터리 잔량을 나타내는 아이콘, 진동 모드인지 또는 벨 모드인지 여부를 나타내는 아이콘 등이 표시될 수 있다. 또한, 소프트 버튼 영역은 단말이 표시부(15)로 풀 터치 터치스크린을 채용한 경우, "메뉴"키, "확인"키, "취소"키 등의 기본 키를 표시하는 영역으로, 주로 표시부(15)의 하단에 배치된다.(340)는 컨테이너 코어(21)가 사용할 네트워크를 설정하고 관리하는 기능을 제공하는 모듈로서 사용자가 단말에서 사용 가능한 네트워크들(예컨대, Modem, Wi-Fi, Bluetooth 등)의 선택 방법 및 우선순위를 설정할 수 있도록 한다. 네트워크 선택 방법은 자동, 수동, 반자동의 3가지 옵션을 제공한다. 자동일 경우 설정된 우선순위에 따라 접속 가능한 네트워크를 통해 접속하며, 수동일 경우 선택된 네트워크에 대해서만 접속을 시도하고, 반자동일 경우 네트워크 연결 또는 전환이 요구될 때 마다 팝업을 띄워 사용자가 원하는 네트워크를 선택할 수 있도록 한다.TheUI engine 330 is responsible for all UI and user input processing other than the area rendered by thebrowser engine 410. More specifically, it is responsible for display of all areas except for theapplication content area 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 thedisplay 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- 340 is a module for providing a function of setting up and managing a network to be used by thecontainer core 21 and is a module in which a user can use networks (e.g., Modem, Wi-Fi, Bluetooth, So that the selection method and priority can be set. 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)를 수행할 수 있도록 한다.Theapplication synchronization manager 350 is a module for ensuring seamless execution of theapplication 30 regardless of whether the terminal is on-line or off-line, Even if the data is temporarily disconnected, the data can be operated through a caching mechanism (service) storing data in the local storage in advance, and the data and external data stored in the local storage can not be recognized by the user (Auto Sync) in the background.

다음으로, 본 발명의 실시예에 따른 브라우저 엔진 계층부(400)에 대해서 설명하기로 한다.Next, the browserengine 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, thebrowser engine layer 400 includes abrowser engine 410, a plug-inmanager 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(Extensible Style sheet Language Transformations) 변환 기능을 제공한다. 윈도우 처리기는 브라우저 엔진(410)이 사용할 윈도우 시스템을 제공하며, 엔진 코어(411)가 사용할 버튼, 리스트 박스, 콤보 박스, 텍스트 에디터 등의 UI 위젯(Widget)을 제공한다. 폰트 처리기는 엔진 코어(411)가 사용할 폰트 시스템을 제공한다. 이미지 디코더 처리기는 엔진 코어(411)가 사용할 이미지 디코더 기능을 제공한다. 국제화 처리기는 다국어 처리를 위해 필요한 문자열 변환 기능을 제공한다. 시스템 처리기는 타이머 등의 시스템 기능을 제공한다. 브라우저 엔진(410)은 프로토콜 처리기, XML 처리기, 윈도우 처리기, 폰트 처리기, 이미지 디코더 처리기, 국제화 처리기 및 시스템 처리기 등이 그 기능을 수행하기 위하여 필요한 기본적인 기능은 이식 계층부(600)를 통해 운영 체제(10)에서 얻어온다.Thebrowser engine 410 interprets theapplication 30, displays it on the screen, and executes it. To this end, thebrowser engine 410 includes anengine core 411 for processing a markup language and a style sheet, and ascript engine 413, which is an interpreter for processing a script language. Thebrowser 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 Extensible Style Sheet Language Transformations (XSLT) transformation. The window processor provides a window system to be used by thebrowser 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 theengine core 411. The font processor provides a font system to be used by theengine core 411. The image decoder processor provides an image decoder function to be used by theengine core 411. The internationalization processor provides the string conversion function necessary for multilingual processing. The system handler provides system functions such as a timer. Thebrowser 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 browserengine layer unit 400 may provide the function through the plug-in 430 when theapplication 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 theoperating 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)에 맞는 인터페이스를 제공함으로써, 플러그 인(430)은 운영 체제(10)에 무관하게 언제나 해당 기능의 요청을 전달한다. 플러그 인(430)의 요청 전달에 따라, 해당하는 인터페이스 모듈(610)은 어플리케이션(30)이 요청한 단말의 기능을 운영 체제(10)를 통해 실행한다. 이러한 기능 실행을 위하여, 인터페이스 모듈(610)은 상술한 요청에 따라 각 운영 체제(10)에 맞는 형식으로 변경하여 운영 체제(10)에 지시한다.When theapplication 30 requests execution of a function supervised by theoperating system 10, thebrowser engine 410 calls the plug-in 430 having the corresponding function through the plug-inmanager 420, Theapplication layer 430 transmits a request of theapplication 30 to theinterface module 610 providing the corresponding function in thelayer 600. [ This method of delivery allows theinterface module 610 to provide an interface to the plug-in 430 independent of theoperating system 10 so that the plug-in 430 can always make a request for that function, regardless of theoperating system 10. [ . In response to the request of the plug-in 430, the correspondinginterface module 610 executes the function of the terminal requested by theapplication 30 through theoperating system 10. In order to perform such a function, theinterface module 610 changes the format of eachoperating system 10 according to the above-described request and directs theoperating system 10 to change the format.

상술한 바와 같이, 브라우저 엔진 계층부(400)를 브라우저 엔진(410)에 플러그 인(430)을 동적으로 결합하는 구조로 설계함으로써, 다음과 같은 이점을 가질 수 있다. 브라우저 엔진(410)이 업데이트될 경우 최신의 브라우저 엔진(410)을 별다른 수정 없이 플랫폼(20)에 빠르게 적용할 수 있다. 또한, 현재 파악되지 않은 기능의 확장도 일관되게 플러그 인(430) 형태로 제공할 수 있는 이점이 있다. 예를 들어, 특정 형식의 미디어를 재생할 수 있는 플러그 인이 필요한 경우, 이를 플러그 인(430)으로 개발하여 추가하는 것이 가능하다.As described above, by designing the browserengine layer unit 400 as a structure that dynamically combines the plug-in 430 with thebrowser engine 410, the following advantages can be obtained. When thebrowser engine 410 is updated, thelatest browser engine 410 can be quickly applied to theplatform 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-inmanager 420 and the plug-in 430 will now be described in more detail.

플러그인 매니저(420)는 플러그 인(430)을 관리한다. 즉, 플러그인 매니저(420)는 설치된 플러그 인(430)의 목록을 관리하고, 새로운 플러그 인(430)을 다운로드 및 설치하며, 기 존재하는 플러그 인(430)을 업데이트하고, 어플리케이션(30)의 기능 실행 요청이 있으면, 이 기능 실행의 종류에 따라 해당하는 플러그 인(430)을 호출한다.The plug-inmanager 420 manages the plug-in 430. That is, the plug-inmanager 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 theresource manager 621 of thetransplantation layer 600 when theapplication 30 requests the function execution related to the terminal resource. Accordingly, theresource manager 621 executes the corresponding function. That is, theresource manager 621 can provide the terminal resources through the execution of the functions of theoperating system 10.

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

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

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

다음으로, 본 발명의 실시예에 따른 보안 계층부(500)에 대해서 설명하기로 한다.Next, thesecurity 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, thesecurity layer 500 performs authentication of accesses of theapplication layer unit 300 and the browserengine layer unit 400 to theaccess layer unit 600, Grant some or all of the access in accordance with the policy. Thesecurity layer 500 includes anauthentication manager 510 and apolicy manager 520.

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

정책 매니저(520)는 컨테이너 업데이트 모듈(213)로부터 접근 제어에 대한 정책을 기술한 파일 등을 전달 받고, 이를 설치 및 저장한다. 그리고 정책 매니저(520)는 각종 플러그 인(430)의 접근 요청에 대해 미리 저장된 정책을 검색하여, 해당 정책에 따라 접근의 일부 또는 전부를 수락하거나 거부한다. 정책 매니저(520)는 그 접근 제어에 대한 정책을 실시간으로 업데이트할 수 있다.Thepolicy manager 520 receives a file describing a policy for access control from thecontainer update module 213, and installs and stores the file. Thepolicy 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. Thepolicy manager 520 may update the policy for that access control in real time.

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

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

이에 따라, 어플리케이션(30)이 컨테이너 커먼 모듈(22)에 기능 실행을 요청하면, 컨테이너 커먼 모듈(22)은 이식 계층부(600)에 이를 전달할 수 있다. 그리고, 이식 계층부(600)는 컨테이너 커먼 모듈(22)로부터 전달 받은 기능 실행 요청을 통해 운영 체제(10)에 해당 기능을 실행하도록 지시할 수 있다. 이식 계층부(600)는 다수개의 인터페이스 모듈(610)을 포함하며, 각 인터페이스 모듈(610)은 기능별로 서로 관련된 복수개의 인터페이스로 이루어진다. 각 인터페이스는 운영 체제(10)의 종류에 따라 단말의 기능을 실행시킬 수 있도록 하며, 컨테이너 커먼 모듈(22)에 맞춰 기능 실행 요청을 수신할 수 있다. 따라서 어플리케이션(30)은 단말의 자원에 대해 접근할 수 있는 인터페이스를 운영 체제(10)에 무관하게 제공 받을 수 있다.Accordingly, when theapplication 30 requests the containercommon module 22 to execute the function, the containercommon module 22 can deliver it to thetransplantation layer unit 600. Theporting layer unit 600 may instruct theoperating system 10 to execute the corresponding function through the function execution request received from the containercommon module 22. Thetransplanting layer unit 600 includes a plurality ofinterface modules 610, and eachinterface module 610 includes a plurality of interfaces related to each function. Each interface can execute the function of the terminal according to the type of theoperating system 10, and can receive the function execution request in conformity with the containercommon module 22. Therefore, theapplication 30 can be provided with an interface for accessing resources of the terminal irrespective of theoperating system 10.

인터페이스 모듈(610) 내부의 인터페이스는 각각 라이브러리 형태로 구현되고 관리될 수 있다. 이후에 추가된 기능을 실행하는 인터페이스를 추가로 제공하고 싶다면, 별도의 인터페이스를 정의하고 라이브러리 형태로 구현한 후, 해당하는 인터페이스 모듈(610)에 링크시킬 수 있다. 이러한 인터페이스는 운영 체제(10)의 종류에 따라, 운영 체제(10)를 통해 해당 기능을 실행하도록 구현할 수도 있고, 컨테이너 실행부(200), 컨테이너 커먼 모듈(22) 및 어플리케이션(30) 등의 요청을 각 운영 체제(10)에 맞게 형식만 변환하여 운영 체제(10)에 바이패스(bypass)하는 스터브(stub)일 수도 있다.The interfaces within theinterface 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 thecorresponding interface module 610. Such an interface may be implemented to execute the corresponding function through theoperating system 10 according to the type of theoperating system 10 or may be implemented by a request of thecontainer executing section 200, the containercommon module 22, And may be a stub that converts only the format for eachoperating system 10 and bypasses theoperating system 10 to theoperating 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)를 포함한다.Theinterface module 610 includes a hypertext transfer protocol (HTTP)module 611, an extensible markup language (XML)module 613, athread module 615, aUI backend module 617, asecure storage module 619, aresource manager 621, anOS API manager 623, acollaboration manager 625, async 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) 전달하는 스터브 일수도 있다.TheHTTP module 611 basically includes an interface having HTTP and HTTPS related functions. In order for thebrowser engine 410 to operate, an HTTP protocol processor capable of delivering application content to thebrowser engine 410 is required, and theHTTP module 611 includes an interface for providing the HTTP protocol processor function. For example, theHTTP 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. TheHTTP 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 the HTTP of theoperating system 10 or may simply be a stub that bypasses the request of thebrowser engine 410 to the OS have.

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

스레드 모듈(615)은 스레드(thread) 기능을 가지는 인터페이스를 포함한다. 여기서, 스레드 기능은 어플리케이션(30)에서 복수의 명령을 처리하는 경우 그 우선 순위 등을 처리하는 것을 말한다. 스레드 모듈(615)의 인터페이스는 런타임 매니저(310)와 브라우저 엔진(410)에서 사용된다.Thethread module 615 includes an interface having a thread function. Here, the thread function refers to processing the priority or the like when theapplication 30 processes a plurality of instructions. The interface of thethread module 615 is used in theruntime manager 310 and thebrowser 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)의 인터페이스는 화면 전화 효과를 표시 및 선택할 수 있도록 한다.TheUI backend module 617 includes an interface that provides the window system functionality of theoperating system 10 itself, which is required to port the user interface (UI) of thebrowser engine 410. In order for thebrowser engine 410 to display the content provided by theapplication 30 on thedisplay unit 15, a button, a list box, a combo box, an edit box, You need a widget that provides a variety of UIs. Accordingly, theUI backend module 617 obtains a widget of the UI required by theapplication 30 from theoperating system 10 and delivers it to thebrowser engine 410. TheUI backend module 617 also transfers the font system of theoperating system 10 to thebrowser engine 410. In addition, the interface of theUI backend module 617 allows display and selection of screen telephony effects.

보안 스토리지 모듈(619)은 보안 스토리지(Secure Storage)에 접근할 수 있는 인터페이스를 포함한다. 여기서, 보안 스토리지는 보안이 적용되어야 할 데이터를 저장한다. 이러한 인터페이스는 보안 계층(500)의 인증 매니저(510) 및 정책 매니저(520)는 보안되어야 할 데이터를 다루며, 이 데이터는 보안 스토리지 모듈(619)의 인터페이스를 통해 보안 스토리지에 저장된다. 한편, 보안 스토리지가 없는 단말 또는 장치의 경우, 보안 스토리지 모듈(619)은 소프트웨어 적으로 암호화 알고리즘을 적용하여 실시간으로 데이터를 암호화 및 복호화하는 기능을 제공하는 인터페이스를 더 포함할 수 있다.Thesecure 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 theauthentication manager 510 and thepolicy manager 520 of thesecurity layer 500 and this data is stored in secure storage through the interface of thesecure storage module 619. [ Meanwhile, in the case of a terminal or device without secure storage, thesecure 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)에 링크시킬 수 있다.Theresource manager 621 provides an interface for accessing terminal resources. Such terminal resources may be data generated according to the execution of theperipheral 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 theoperating system 10 and receives an access request for the terminal resources from the containercommon module 22. [ Therefore, theapplication 30 can be provided with an interface for accessing resources of the terminal irrespective of theoperating system 10. Theresource 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 theresource manager 621.

리소스 매니저(621)는 인터페이스를 통해 다음과 같은 기능을 제공할 수 있다. 리소스 매니저(621)는 수신 및 발송한 SMS 메시지에 대한 목록 및 각 SMS 메시지의 세부 내용, 수신 및 발신한 음성 통화 또는 화상 통화에 대한 세부 정보로 수신시각, 통화시간, 발신인 등을 제공할 수 있다. 또한, 리소스 매니저(621)는 폰북(Phonebook) 상의 각 개인의 목록 및 각 개인 목록에 대한 세부 정보를 제공하며, 폰북 상의 그룹 목록 및 각 그룹에 속한 각 개인의 목록을 제공할 수 있다. 그리고 리소스 매니저(621)는 스케줄, 알람, 메모 등의 목록 및 상세 정보를 제공할 수 있다. 또한, 리소스 매니저(621)는 사진, 비디오, 음악 등이 세부 정보 및 각각의 원본 데이터에 접근 가능한 경로를 제공할 수 있다.Theresource manager 621 can provide the following functions through the interface. Theresource 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 . Theresource 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. Theresource manager 621 can provide a list of schedule, alarm, memo, and detailed information. In addition, theresource 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)는 인터페이스를 통해 다음과 같은 단말 기능을 제공한다. 매니저(623)는 음성 통화, 화상 통화, 문자 메시지, 랜드 마크(Landmark) 정보 제공, 위치 정보 제공 등의 단말 기능을 제공한다. 또한, OS API 매니저(623)는 각 운영 체제(10)에 따른 단말의 대기 화면에 어플리케이션 등록 및 해제를 수행하는 단말 기능을 제공할 수 있다. 그리고 OS API 매니저(623)는 오디오 또는 비디오 데이터를 생성 또는 삭제하는 단말 기능을 제공하며, 생성된 오디오 또는 비디오 데이터의 실행, 일시 정지 및 중지 등의 기능, 오디오 또는 비디오 데이터에 대해 볼륨 및 비디오 출력 위치를 지정하는 단말 기능을 제공할 수 있다. 게다가, OS API 매니저(623)는 카메라 미리 보기 설정, 캡처 등의 기능 및 시리얼 통신, 근거리 통신 등의 입출력을 제어하는 단말 기능을 제공할 수 있다.TheOS API manager 623 provides a terminal control function of theoperating system 10 itself and includes an interface for providing such a function.OS API manager 623 provides the following terminal functions through the interface. Themanager 623 provides terminal functions such as voice call, video call, text message, landmark information, and location information. In addition, theOS API manager 623 can provide a terminal function for registering and releasing an application on the idle screen of the terminal according to eachoperating system 10. [ TheOS 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, theOS 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)은 상술한 타 어플리케이션과 연동될 수 있다.Thecommon task manager 625 includes an interface that provides an interworking function with other applications operating in eachoperating system 10. [ Such other application may be related to a phone book, a camera, a music player, a dialer, an SMS, or the like. Using the interface provided by thecommon task manager 625, theapplication 30 can be interworked with the above-mentioned other applications.

싱크 매니저(627)는 타 장치와 연동하여 데이터를 실시간으로 교환하는 기능을 제공하는 인터페이스를 포함한다. 단말이 다른 기기와 연동하여 그 기기와 데이터를 실시간으로 교환하려고 하는 경우, 운영 체제(10)는 그 단말이 타 장치와 연동하도록 하고, 타 장치의 데이터와 동기를 획득하도록 한다. 따라서 싱크 매니저(627)의 인터페이스는 상술한 연동 및 동기를 제공하는 운영 체제(10)의 기능을 제공한다.Thesink 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, theoperating system 10 allows the terminal to interwork with the other apparatus and acquires synchronization with data of the other apparatus. Thus, the interface of thesink manager 627 provides the functionality of theoperating system 10 to provide the interworking and synchronization described above.

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

다음으로, 본 발명의 실시예에 따른 시스템 어플리케이션(40)에 대해서 설명하기로 한다.Next, thesystem 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, thesystem application 40 provides functions such as downloading and installation of theapplication 30, and the like. In addition, thesystem application 40 can provide a list of the installedapplications 30 and the installedapplications 30. Thesystem application 40 itself is created in the form of anapplication 30, so it is connected to the containercommon module 22 and operates in the same manner as theapplication 30. Thesystem application 40 includes anapplication manager 41 and anapplication downloader 43.

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

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

다음으로, 본 발명의 실시예에 따른 어플리케이션(30)의 단말 자원에 대한 접근 방법을 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 어플리케이션 실행 방법을 설명하기 위한 도면이다.Next, a method for accessing terminal resources of theapplication 30 according to the embodiment of the present invention will be described. 9 is a diagram for explaining an application execution method according to an embodiment of the present invention.

도 9에서, 어플리케이션(30)은 이미 실행 중이라고 가정한다. 어플리케이션(30)은 그 실행 중, S901 단계에서 운영 체제(10)가 관장하는 단말의 기능 실행을 요청할 수 있다. 이러한 요청이 있으면, 브라우저 엔진(410)은 S903 단계에서 수신된 요청을 처리하기 위한 플러그 인(430)을 호출하도록 플러그 인 매니저(420)를 호출한다.In Fig. 9, it is assumed that theapplication 30 is already executing. During the execution of theapplication 30, theapplication 30 may request the execution of the function of the terminal managed by theoperating system 10 in step S901. If there is such a request, thebrowser engine 410 calls the plug-inmanager 420 to call the plug-in 430 to process the received request in step S903.

브라우저 엔진(410)의 요청에 의해, 플러그 인 매니저(420)는 S905 단계에서 어플리케이션(30)의 요청한 기능 실행의 종류에 대응하는 플러그 인(430)을 호출한다. 이는 기능 실행의 종류에 대응하는 인터페이스 모듈(610)에 상기 기능 실행 요청을 전달할 수 있는 플러그 인(430)을 호출하는 것이다. 예컨대, 어플리케이션(30)이 장치, 즉, 단말의 자원을 요청하면 플러그 인 매니저(420)는 리소스 플러그 인(431)을 호출하며, 어플리케이션(30)이 운영 체제(10)의 API 관련 기능 실행을 요청하면 플러그 인 매니저(420)는 시스템 API 플러그 인(433)을 생성한다. 또한, 어플리케이션(30)이 타 어플리케이션과의 연동을 위한 기능을 요청하면 플러그 인 매니저(420)는 공통 작업 플러그 인(435)을 호출하며, 어플리케이션(30)이 타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능을 호출하면 플러그 인 매니저(420)는 싱크 플러그 인(437)을 호출한다. 여기서, 플러그 인(430)의 호출은 플러그 인(430) 객체를 인스탄스(instance)화하는 것이 될 수 있다.At the request of thebrowser engine 410, the plug-inmanager 420 calls the plug-in 430 corresponding to the type of function execution requested by theapplication 30 in step S905. This is to call the plug-in 430 which can forward the function execution request to theinterface module 610 corresponding to the type of function execution. For example, when theapplication 30 requests the resource of the terminal, that is, the terminal, the plug-inmanager 420 calls the resource plug-in 431, and theapplication 30 executes the API- Upon request, the plug-inmanager 420 creates a system API plug-in 433. In addition, when theapplication 30 requests a function for interworking with other applications, the plug-inmanager 420 calls the common work plug-in 435, and theapplication 30 interlocks with other devices, The plug-inmanager 420 invokes the sync plug-in 437. The sync plug- Here, a call to the plug-in 430 may be to instantiate the plug-in 430 object.

그런 다음, 플러그 인 매니저(420)는 S907 단계에서 플러그 인(430)을 호출하였음을 브라우저 엔진(410)에 알린다. 이에 따라, 브라우저 엔진(410)은 S909 단계에서 호출된 플러그 인(430)에 어플리케이션(30)의 기능 실행 요청을 전달하도록 지시한다. 이에 따라, 플러그 인(430)은 S911 단계에서 보안 계층부(500)의 인증 매니저(510)에 인증을 수행한다. 여기서, 인증은 플러그 인(430)이 정당한 절차에 의해서 설치되었는지 여부를 인증하는 것이다. 또한, 플러그 인(430)은 S913 단계에서 정책 매니저(520)에 이식 계층(600)에 대한 접근 범위 및 접근 권한을 확인한다. 이 접근 범위 및 접근 권한은 정책 매니저(520)에 미리 저장된 정책에 따라 결정된다.Then, the plug-inmanager 420 notifies thebrowser engine 410 that the plug-in 430 has been called in step S907. Accordingly, thebrowser engine 410 instructs the plug-in 430 called in step S909 to transmit the function execution request of theapplication 30. [ Accordingly, the plug-in 430 performs authentication in theauthentication manager 510 of thesecurity layer 500 in step S911. Here, the authentication is to authenticate whether or not the plug-in 430 is installed by a proper procedure. In step S913, the plug-in 430 confirms the access scope and access authority to thepolicy layer 520 with respect to thelayer 600. [ This access range and access authority are determined according to the policy stored in thepolicy manager 520 in advance.

인증에 성공하고, 접근이 허여된 경우, 플러그 인(430)은 S915 단계에서 요청된 기능 실행의 종류에 따라 대응하는 인터페이스 모듈(610)에 애플리케이션(30)의 기능 실행 요청을 전달한다. 예컨대, 리소스 플러그 인(431)은 리소스 매니저(621)에 그 요청을 전달하며, 시스템 API 플러그 인(433)은 그 요청을 OS API 매니저(623)에 전달한다. 또한, 공통 작업 플러그 인(435)은 그 요청을 공통 작업 매니저(625)에 전달하고, 싱크 플러그 인(437)은 그 요청을 싱크 매니저(627)에 전달한다. 상술한 요청의 전달은 해당 인터페이스 모듈(610)이 가지는 인터페이스의 형식에 따라 이루어진다. 이 인터페이스의 형식은 운영 체제(10)에 따라 변하지 않으므로, 플러그 인(430)은 운영 체제(10)의 종류에 무관하게 동일한 방법에 따라 상술한 요청의 전달을 수행할 수 있다.If the authentication succeeds and the access is granted, the plug-in 430 delivers the function execution request of theapplication 30 to thecorresponding interface module 610 according to the type of the function execution requested in the step S915. For example, the resource plug-in 431 sends the request to theresource manager 621, and the system API plug-in 433 delivers the request to theOS API manager 623. [ The common task plug-in 435 also passes the request to thecommon task manager 625 and the sink plug-in 437 forwards the request to thesink manager 627. [ The transmission of the request is performed according to the format of the interface of thecorresponding interface module 610. Since the format of this interface does not depend on theoperating system 10, the plug-in 430 can perform the transfer of the above-mentioned request in the same way regardless of the type of theoperating system 10. [

이러한 요청을 수신한 이식 계층부(600)의 해당하는 인터페이스 모듈(610)은 S917 단계에서 운영 체제(10)에 해당 기능을 실행하도록 지시한다. 이때, 인터페이스 모듈(610)은 운영 체제(10)의 종류에 따라 해당 운영 체제(10)의 형식에 맞는 방법으로 해당 기능의 실행을 지시한다. 이러한 지시에 따라, 운영 체제(10)는 S919 단계에서 해당 기능을 실행한다.Upon receiving the request, the correspondinginterface module 610 of theporting layer unit 600 instructs theoperating system 10 to execute the corresponding function in step S917. At this time, theinterface module 610 instructs execution of the corresponding function according to the type of theoperating system 10 according to the type of theoperating system 10. In accordance with this instruction, theoperating system 10 executes the corresponding function in step S919.

다음으로, 보다 구체적인 실시예에 대해서 설명하기로 한다. 도 10은 본 발명의 실시예에 따른 어플리케이션의 폰북 기능을 실행하는 방법을 설명하기 위한 도면이다.Next, a more specific embodiment will be described. 10 is a diagram for explaining a method of executing a phone book function of an application according to an embodiment of the present invention.

도 10을 참조하면, 어플리케이션(30)은 폰북 기능을 실행하기 위한 것이라고 가정한다. 여기서, 폰북의 기능 실행은 폰북 데이터를 화면에 표시함을 의미한다.Referring to FIG. 10, it is assumed that theapplication 30 is for executing a phonebook function. Here, the function execution of the phone book means that the phonebook data is displayed on the screen.

도면 부호 1100은 어플리케이션(30)이 실행된 후, 폰북 데이터가 표시되기 전의 화면 예이다. 이러한 화면에서, 사용자의 입력에 따라, 어플리케이션(30)은 S1001 단계에서 브라우저 엔진(410)에 폰북 기능의 실행을 요청한다.Reference numeral 1100 is an example of a screen before phonebook data is displayed after theapplication 30 is executed. In this screen, in response to the user's input, theapplication 30 requests thebrowser engine 410 to execute the phonebook function in step S1001.

이 요청에 따라, 브라우저 엔진(410)은 S1003 단계에서 플러그 인 매니저(420)에 폰북 기능의 실행 처리를 위한 플러그 인(430)을 요청한다. 이 기능을 가지는 플러그 인(430)은 리소스 플러그 인(431)이므로, 플러그 인 매니저(420)는 S1005 단계에서 리소스 플러그 인(431)을 호출하고, S1007 단계에서 리소스 플러그 인(431)이 호출되었음을 브라우저 엔진(410)에 알린다.In response to the request, thebrowser engine 410 requests the plug-inmanager 420 to process the execution of the phone book function in step S1003. Since the plug-in 430 having this function is the resource plug-in 431, the plug-inmanager 420 calls the resource plug-in 431 in step S1005 and determines that the resource plug-in 431 has been called in step S1007 To thebrowser engine 410.

이에 따라, 브라우저 엔진(410)은 S1009 단계에서 리소스 플러그 인(431)에 폰북 기능의 실행 요청을 전달할 것을 지시한다. 이 지시에 따라 리소스 플러그 인(431)은 S1011 단계에서 보안 계층부(500)의 인증 매니저(510)에 인증을 수행한다. S1011 단계에서 리소스 플러그 인(431)은 정책 매니저(520)에 이식 계층부(600)에 대한 접근 범위 및 접근 권한을 확인하는 절차를 추가로 더 수행할 수 있다. 이 접근 범위 및 접근 권한은 정책 매니저(520)에 미리 저장된 정책에 따라 결정된다.Accordingly, in step S1009, thebrowser engine 410 instructs the resource plug-in 431 to transmit a request to execute the phonebook function. In response to this instruction, the resource plug-in 431 authenticates theauthentication manager 510 of thesecurity layer 500 in step S1011. In step S1011, the resource plug-in 431 may further perform a procedure for confirming the access scope and access authority to theporting layer unit 600 to thepolicy manager 520. [ This access range and access authority are determined according to the policy stored in thepolicy manager 520 in advance.

인증에 성공한 경우, 리소스 플러그 인(431)은 S1013 단계에서 이식 계층(600)의 리소스 매니저(621)에 폰북 기능 실행의 요청을 전달한다.If the authentication is successful, the resource plug-in 431 transmits a request for executing the phone book function to theresource manager 621 of thetransplantation layer 600 in step S1013.

리소스 매니저(621)는 요청의 전달을 리소스 매니저(621)가 구비한 인터페이스를 통해 수신한다. 이 인터페이스는 라이브러리 형태로 구현될 수 있으며, 운영 체제(10)에 무관하게 언제나 동일한 형식으로 폰북 기능의 실행 요청을 받는다. 따라서 리소스 플러그 인(413)은 폰북 기능을 실행하도록 리소스 매니저(621)에 동일한 형식으로 요청한다. 이와 같이, 요청을 수신한 리소스 매니저(621)는 S1015 단계에서 폰북 기능을 실행한다. 이는 리소스 매니저(621)가 운영 체제(10)에 폰북의 데이터를 불러 오도록 지시함으로써 이루어진다. 즉, 리소스 매니저(621)가 운영 체제(10)에 폰북 데이터를 화면에 표시하도록 지시함에 따라, 운영 체제(10)는 저장부(120)로부터 폰북 데이터를 불러와서 화면에 표시한다. 도면 부호 1200은 폰북 기능이 실행된 화면 예를 보인다.Theresource manager 621 receives the transfer of the request through the interface provided by theresource manager 621. [ This interface can be implemented in a library form and is always requested to execute the phonebook function in the same format regardless of theoperating system 10. [ Therefore, the resource plug-in 413 requests theresource manager 621 in the same format to execute the phone book function. In this manner, theresource manager 621 that has received the request executes the phone book function in step S1015. This is accomplished by theresource manager 621 instructing theoperating system 10 to load the phonebook data. That is, as theresource manager 621 instructs theoperating system 10 to display the phone book data on the screen, theoperating system 10 loads the phone book data from the storage unit 120 and displays the phone book data on the screen.Reference numeral 1200 denotes an example of a screen on which a phonebook function is executed.

이상에서 설명한 바와 같이, 이식 계층(600)의 개별 인터페이스 모듈(610)이 구비한 인터페이스를 통해 기능 실행을 요청을 전달 받는 경우, 이 인터페이스는 동일한 형식으로 기능 실행의 요청을 수신함으로써, 운영 체제에 무관하게 어플리케이션(30)이 단말의 기능을 실행시킬 수 있다.As described above, when a function execution request is received through the interface provided by theindividual interface module 610 of theporting layer 600, the interface receives a request for executing the function in the same format, Theapplication 30 can execute the function of the terminal irrespective of whether or not the terminal 30 is operating.

본 발명의 실시예에 따른 어플리케이션 실행 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method of executing an application according to an 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 플레이어와 같은 다양한 종류의 사용자 장치에 적용되는 어플리케이션 실행 장치, 그 방법, 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것으로, 운영 체제 별로 다른 형식을 가지는 단말의 자원 및 기능에 접근할 수 있는 인터페이스를 운영 체제의 종류에 무관하게 제공함으로써, 어플리케이션이 동일한 방법으로 장치의 기능 및 자원을 제어할 수 있으므로, 개발자들이 OS의 종류에 무관하게 동일한 형식으로 어플리케이션을 제작할 수 있으며, 사용자들도 동일한 어플리케이션을 운영 체제의 종류에 무관하게 동일한 사용자 경험에 따라 사용할 수 있어, 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.The present invention relates to an apparatus for executing an application 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. Since the application can control the functions and resources of the device in the same manner by providing the interface that can access resources and functions of the terminal having different formats irrespective of the type of the operating system, And users can use the same application according to the same user experience irrespective of the type of operating system, so that the possibility of commercialization or sales is sufficient and it is practically possible to carry out the application clearly. Therefore, There is a possibility of award.

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 (26)

Translated fromKorean
어플리케이션 실행 장치에 있어서,
상기 어플리케이션으로부터 운영 체제의 종류에 무관하게 상기 운영 체제가 관장하는 기능 실행의 요청을 수신하여, 수신된 기능 실행의 요청을 전달하는 컨테이너 커먼 모듈; 및
상기 기능 실행 요청을 상기 운영 체제의 종류에 맞게 변경하여 상기 기능 실행 요청에 해당하는 기능을 실행하도록 지시하는 이식 계층부;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
In an application execution device,
A container common module 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; And
And an execution 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.
제1항에 있어서, 상기 이식 계층부는
적어도 하나의 인터페이스 모듈을 포함하며, 상기 인터페이스 모듈 각각은 상기 기능 실행의 종류에 따른 인터페이스를 가지는 것을 특징으로 하는 어플리케이션 실행 장치.
The apparatus of claim 1, 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.
제2항에 있어서, 상기 인터페이스는
상기 해당하는 기능을 실행하도록 지시하기 위해 상기 운영 체제의 종류에 맞춰 구현됨과 동시에 상기 컨테이너 커먼 모듈로부터 요청을 수신하기 위해 상기 컨테이너 커먼 모듈과 상호간에 맞춰 구현되는 것을 특징으로 하는 어플리케이션 실행 장치.
3. The method of claim 2,
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.
제2항에 있어서, 상기 인터페이스 모듈은,
HTTP 및 HTTPS 관련 기능을 제공하는 HTTP 모듈;
XML 파서 기능 및 XSLT 변환 기능을 제공하는 XML 모듈;
스레드 기능을 제공하는 스레드 모듈;
사용자 인터페이스를 이식하기 위해 필요한 상기 운영 체제 자체의 윈도우 시스템 기능을 제공하는 UI 백엔드 모듈;
보안 스토리지에 접근할 수 있는 기능을 제공하는 보안 스토리지 모듈;
스토리지에 접근할 수 있는 기능을 제공하는 로컬 스토리지 모듈; 단말의 자원에 관련된 기능을 제공하는 리소스 매니저;
OS API와 관련된 기능을 제공하는 OS API 매니저;
타 어플리케이션과의 연동을 위한 기능을 제공하는 공통 작업 매니저; 및
타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능을 제공하는 싱크 매니저; 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
3. The apparatus of claim 2,
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
A sink manager for providing functions related to interlocking with other devices and data synchronization with other devices; The application executing apparatus comprising:
제1항에 있어서, 상기 컨테이너 커먼 모듈은 브라우저 엔진 계층부를 더 포함하며,
상기 브라우저 엔진 계층부는
상기 기능 실행의 종류에 대응하여 상기 요청을 상기 이식 계층부에 전달하는 적어도 하나의 플러그 인;
상기 기능 실행의 종류에 따라 대응하는 상기 플러그 인을 호출하는 플러그 인 매니저; 및
상기 플러그 인이 호출되면 상기 기능 실행의 요청을 전달하도록 상기 플러그 인에 지시하는 브라우저 엔진;을 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
The method of claim 1, wherein the container common module further comprises a browser engine layer,
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.
제5항에 있어서, 상기 플러그 인은
단말 자원에 관련된 기능의 실행 요청을 상기 이식 계층에 전달하는 리소스 플러그 인;
OS API 관련 기능의 실행 요청을 상기 이식 계층에 전달하는 시스템 API 플러그 인;
타 어플리케이션과 연동을 위한 기능의 실행 요청을 상기 이식 계층에 전달하는 공통 작업 플러그 인; 및
타 장치와의 연동 및 타 장치와의 데이터 동기화 관련 기능의 실행 요청을 상기 이식 계층에 전달하는 싱크 플러그 인; 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
6. The plug-in connector of claim 5,
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:
제1항에 있어서,
상기 운영 체제의 기능 실행에 의해 관리되는 적어도 하나의 주변 장치;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
The method according to claim 1,
And at least one peripheral device managed by the execution of the function of the operating system.
제7항에 있어서, 상기 기능 실행은
상기 운영 체제 자체 기능 실행, 상기 운영 체제 자체 기능 실행에 따른 자원의 사용, 상기 주변 장치의 개별 기능의 실행, 및 상기 주변 장치의 개별 기능의 실행에 따른 자원의 사용 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
8. The method of claim 7,
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.
제7항에 있어서, 상기 주변 장치는,
무선 통신을 수행하기 위한 무선 통신부;
GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하기 위한 GPS부;
사용자의 입력을 받기 위한 입력부;
단말의 사용에 따라 발생하는 화면 데이터를 표시하기 위한 표시부;
음성 신호를 입력 받고 출력 받기 위한 마이크 및 스피커 등을 구비하는 오디오 처리부; 및
카메라 기능을 수행하기 위한 카메라부; 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
8. The apparatus of claim 7,
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:
제1항에 있어서, 상기 컨테이너 커먼 모듈은 어플리케이션 런타임 계층부를 더 포함하며,
상기 어플리케이션 런타임 계층부는
상기 어플리케이션의 실행 및 종료를 관리하는 런타임 매니저;
상기 어플리케이션 설치 정보와, 상기 컨테이너 커먼 모듈 및 상기 이식 계층부의 구성 정보를 관리하는 레지스트리 매니저;
상태 바 및 소프트 버튼 영역을 랜더링하는 UI 엔진;
상기 컨테이너 커먼 모듈이 사용할 네트워크를 설정하고 관리하는 기능을 제공하는 네트워크 셀렉터; 및
온 라인 또는 오프라인에 있는지 여부와 상관없이, 상기 어플리케이션의 실행을 끊김 없이 제공하는 어플리케이션 동기 매니저;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
The method of claim 1, wherein the container common module further comprises an application runtime layer,
The application runtime layer
A runtime manager for managing execution and termination of the application;
A registry manager for managing the application installation information, configuration information of the container common module and the porting layer;
A UI engine rendering a status bar and a soft button area;
A network selector for providing a function of setting and managing a network to be used by the container common module; And
And an application synchronization manager for seamlessly providing the execution of the application regardless of whether the application is on-line or off-line.
제10항에 있어서, 상기 런타임 매니저는
상기 어플리케이션의 실행 명령을 수신하여 전달하는 커맨드 핸들러;
상기 실행 명령을 전달받아 어플리케이션을 실행시키는 컨텍스트 매니저;
상기 어플리케이션 실행시 발생하는 이벤트를 처리하는 이벤트 핸들러; 및
상기 어플리케이션의 윈도우 및 페이지의 실행 및 종료를 관리하는 라이프사이클 매니저;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
11. The system of claim 10, wherein the runtime manager
A command handler for receiving and delivering an execution command of the application;
A context manager for receiving the execution command and executing the application;
An event handler for processing an event that occurs when the application is executed; And
And a lifecycle manager for managing execution and termination of windows and pages of the application.
제10항에 있어서, 상기 어플리케이션 실행 장치는 컨테이너 실행부를 더 포함하며,
상기 컨테이너 실행부는
운영 체제로부터 상기 어플리케이션의 실행 요청을 전달하거나, 상기 컨테이너 커먼 모듈 및 이식 계층부의 업데이트를 제공하는 컨테이너 에이전트;
상기 어플리케이션 실행 요청을 수신하여, 상기 어플리케이션 런타임 계층을 구동시키는 더미 컨테이너 실행부; 및
상기 어플리케이션을 단말의 대기 모드 화면에서 동작시키는 대기 모드 에이전트;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
11. The apparatus of claim 10, wherein the application execution device further comprises a container execution unit,
The container executing section
A container agent for transferring an execution request of the application from an operating system, or providing an update of the container common module and the porting layer;
A dummy container execution unit for receiving the application execution request and driving the application runtime layer; And
And a standby mode agent for operating the application in a standby mode screen of the terminal.
제1항에 있어서, 상기 컨테이너 커먼 모듈은 보안 계층부를 더 포함하며,
상기 보안 계층부는
상기 어플리케이션 및 플러그 인에 대해 설치 및 실행 시 인증을 수행하는 인증 매니저; 및
상기 컨테이너 커먼 모듈이 상기 이식 계층부에 대한 접근 범위 및 접근 권한을 관리하는 정책 매니저;를 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
The method of claim 1, wherein the container common module further comprises a security layer,
The 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 the access scope and access authority of the container common module to the transplantation layer unit.
제1항에 있어서, 상기 어플리케이션 실행 장치는
상기 어플리케이션을 실행시키기 위한 실행 명령 수신을 위한 커맨드 핸들러를 가지며, 상기 실행 명령을 수신하여 상기 어플리케이션을 실행시키는 런타임 매니저; 및
운영 체제로부터 상기 어플리케이션의 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 실행 중이 아닌 경우, 상기 런타임 매니저를 실행 시킨 후, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 더미 컨테이너 실행부;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
The apparatus according to claim 1, wherein the application execution device
A runtime manager having a command handler for receiving an execution command for executing the 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 execution request of the application is received from an operating system, executing the runtime manager if the runtime manager is not running, And a dummy container execution unit for sending the execution command including the execution command and ending its own execution.
제14항에 있어서, 상기 더미 컨테이너 실행부는
어플리케이션 실행 요청을 수신하면, 상기 런타임 매니저가 실행 중인지 확인하여, 상기 런타임 매니저가 이미 실행 중인 경우, 상기 커맨드 핸들러에 어플리케이션 실행을 위한 정보인 실행 인자를 포함하는 상기 실행 명령을 전송하고, 자기 자신의 실행을 종료하는 것을 특징으로 하는 어플리케이션 실행 장치.
15. The apparatus of claim 14, 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.
제14항에 있어서, 상기 런타임 매니저는
상기 어플리케이션을 실행시키는 컨텍스트 매니저를 더 포함하며,
상기 커맨드 핸들러는 상기 컨텍스트 매니저에 상기 실행 인자를 포함하는 상기 실행 명령을 전달하는 것을 특징으로 하는 어플리케이션 실행 장치.
15. The system of claim 14, wherein the runtime manager
And a context manager for executing the application,
And the command handler delivers the execution command including the execution parameter to the context manager.
제16항에 있어서, 상기 어플리케이션 실행 장치는
상기 어플리케이션을 랜더링하는 브라우저 엔진을 더 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
The system according to claim 16, wherein the application execution device
And a browser engine for rendering the application.
제17항에 있어서, 상기 컨텍스트 매니저는 상기 실행 명령에 따라 상기 어플리케이션을 실행시키고, 실행된 어플리케이션을 랜더링하도록 상기 브라우저 엔진을 호출하는 것을 특징으로 하는 어플리케이션 실행 장치.18. The application execution device according to claim 17, wherein the context manager calls the browser engine to execute the application according to the execution command and render the executed application.제18항에 있어서, 상기 컨텍스트 매니저는
상기 어플리케이션의 윈도우를 생성하며, 상기 브라우저 엔진은 상기 어플리케이션의 랜더링된 결과를 상기 윈도우에 표시하는 것을 특징으로 하는 어플리케이션 실행 장치.
19. The system of claim 18, 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.
제17항에 있어서, 상기 브라우저 엔진은
상기 어플리케이션의 마크 업 랭귀지와 스타일 시트를 랜더링하기 위한 엔진 코어; 및
상기 어플리케이션의 스크립트 언어를 처리하기 위한 인터프리터인 스크립트 엔진;을 포함하는 것을 특징으로 하는 어플리케이션 실행 장치.
18. The system of claim 17, 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.
어플리케이션 실행 방법에 있어서,
상기 어플리케이션으로부터 운영 체제가 관장하는 기능 실행의 요청이 있으면, 플러그 인 매니저가 상기 기능 실행의 종류에 대응하는 플러그 인을 호출하는 호출 단계;
브라우저 엔진이 상기 기능 실행의 요청을 전달하도록 상기 호출된 플러그 인에 지시하는 전달 지시 단계;
상기 호출된 플러그 인이 상기 지시에 따라 상기 기능 실행의 요청을 이식 계층부에 전달하는 전달 단계; 및
상기 이식 계층부가 상기 기능 실행의 요청을 전달 받고, 상기 전달 받은 요청을 상기 운영 체제의 종류에 맞게 변환하여 상기 운영 체제가 상기 기능을 실행하도록 지시하는 실행 지시 단계;를 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
In an application execution method,
A calling step in which the plug-in manager calls a plug-in corresponding to the type of the function execution if there is a request for executing a function supervised by the operating system from the application;
A delivery instruction step of instructing the browser engine to send the request for executing the function to the called plug-in;
A transferring step in which the called plug-in transfers a request for executing the function to the transplanting layer unit according to the instruction; And
And an execution instruction step in which the transfer layer receives a request for executing the function and instructs the operating system to execute the function by converting the received request into the type of the operating system, How to do it.
제21항에 있어서, 상기 실행 지시 단계는
상기 이식 계층부가
상기 기능 실행의 요청을 수신하기 위해 상기 플러그 인과 상호간에 맞춰 구현됨과 동시에 상기 기능을 실행하도록 지시하기 위해 상기 운영 체제의 종류에 따라 구현된 인터페이스를 이용하여 수행하는 것을 특징으로 하는 어플리케이션 실행 방법.
22. The method according to claim 21,
The above-
Wherein the execution of the application is performed using an interface implemented according to the type of the operating system to instruct the execution of the function in accordance with the plug-in being mutually implemented in order to receive the function execution request.
제21항에 있어서, 상기 실행 지시 단계는
상기 이식 계층부가 상기 운영 체제의 종류에 따라 상기 운영 체제에 상기 기능 실행 요청의 기능을 실행하도록 하거나, 상기 운영 체제에 맞게 형식만 변경하여 운영 체제에 전달하는 것을 특징으로 하는 어플리케이션 실행 방법.
22. The method according to claim 21,
Wherein the transplantation layer unit causes the operating system to execute the function of the function execution request according to the type of the operating system, or changes only the format according to the operating system and transfers the format to the operating system.
제21항에 있어서,
상기 전달 지시 단계 후, 상기 전달 단계 전,
상기 플러그 인이 상기 이식 계층부에 대한 접근 범위 및 접근 권한을 확인하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
22. The method of claim 21,
After the delivery instruction step, before the delivery step,
Further comprising the step of the plug-in confirming the access range and the access right to the transplantation layer unit.
제21항에 있어서,
상기 전달 지시 단계 후, 상기 전달 단계 전,
상기 플러그 인이 정당한 절차에 따라 설치되었는지 여부를 인증하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
22. The method of claim 21,
After the delivery instruction step, before the delivery step,
Further comprising authenticating whether the plug-in is installed according to a proper procedure.
제21항 내지 제25항 중 어느 한 항에 따른 방법이 기록된 컴퓨터로 판독 가능한 기록매체.A computer-readable recording medium on which the method according to any one of claims 21 to 25 is recorded.
KR1020100042399A2010-05-062010-05-06Apparatus for executing application, method thereof and computer recordable medium storing the methodActiveKR101460515B1 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
KR1020100042399AKR101460515B1 (en)2010-05-062010-05-06Apparatus for executing application, method thereof and computer recordable medium storing the method

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
KR1020100042399AKR101460515B1 (en)2010-05-062010-05-06Apparatus for executing application, method thereof and computer recordable medium storing the method

Publications (2)

Publication NumberPublication Date
KR20110122995A KR20110122995A (en)2011-11-14
KR101460515B1true KR101460515B1 (en)2014-11-12

Family

ID=45393292

Family Applications (1)

Application NumberTitlePriority DateFiling Date
KR1020100042399AActiveKR101460515B1 (en)2010-05-062010-05-06Apparatus for executing application, method thereof and computer recordable medium storing the method

Country Status (1)

CountryLink
KR (1)KR101460515B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN113065131A (en)*2019-12-312021-07-02中兴通讯股份有限公司 Plug-in security control method, device and storage medium
CN113867833B (en)*2021-09-152024-03-15素泰智能科技(上海)有限公司Plug-in operation method and system in heterogeneous environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
KR20080018802A (en)*2006-08-252008-02-28큐엔엑스 소프트웨어 시스템즈 게엠베하 운트 코. 카게 Multimedia file system that integrates content representation on various multimedia devices
KR20110122996A (en)*2010-05-062011-11-14에스케이플래닛 주식회사 Application execution device, method and computer-readable recording medium having recorded thereon

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
KR20080018802A (en)*2006-08-252008-02-28큐엔엑스 소프트웨어 시스템즈 게엠베하 운트 코. 카게 Multimedia file system that integrates content representation on various multimedia devices
KR20110122996A (en)*2010-05-062011-11-14에스케이플래닛 주식회사 Application execution device, method and computer-readable recording medium having recorded thereon

Also Published As

Publication numberPublication date
KR20110122995A (en)2011-11-14

Similar Documents

PublicationPublication DateTitle
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
CN1892639B (en)Theme change system, portable communication device, and server device
US7028306B2 (en)Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
KR101482150B1 (en)Web application executable device and web application management method therof
WO2011060735A1 (en)Method,device and system for invoking widget
KR101482151B1 (en)Device and method for executing web application
CN108124016A (en)A kind of method and apparatus for sending POST request
KR101482149B1 (en)Apparatus for executing application, method thereof and computer recordable medium storing the method
CN101277221A (en)Method for disposition and application of network management application program
KR101460515B1 (en)Apparatus for executing application, method thereof and computer recordable medium storing the method
KR101482152B1 (en)Web application executable device and method with page association function
CN104717249B (en)Method, proxy server and the system of remote operation application issue
KR20130034832A (en)Expansion function supporting method and electric device supporting the same
CN107491330A (en)A kind of method for improving the built-in browser speed of service
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
JP2009070373A (en) Communication apparatus and program
US7860987B2 (en)Apparatus for providing service in response to user request and method therefor
KR100853783B1 (en) Projector linkage system using mobile terminal
CN110399040A (en)Multi-modal exchange method, ustomer premises access equipment, server and system
KR100494827B1 (en)Distributed object model based radio server with hardware-independent communication interface and communication control method using the same
US20140189076A1 (en)Configuration of computer systems via simple object access protocol connections
Carmen Martín et al.Building Progressive Web Apps (PWA) with Angular: Enhancing Offline and Mobile Experiences
KR20110134593A (en) Method and system for providing advertisement using platform of terminal
CN117369946A (en)Container deployment method and device based on DPU, electronic equipment and medium

Legal Events

DateCodeTitleDescription
PA0109Patent application

St.27 status event code:A-0-1-A10-A12-nap-PA0109

PN2301Change of applicant

St.27 status event code:A-3-3-R10-R11-asn-PN2301

R19-X000Request for party data change rejected

St.27 status event code:A-3-3-R10-R19-oth-X000

N231Notification of change of applicant
PN2301Change of applicant

St.27 status event code:A-3-3-R10-R13-asn-PN2301

St.27 status event code:A-3-3-R10-R11-asn-PN2301

PG1501Laying open of application

St.27 status event code:A-1-1-Q10-Q12-nap-PG1501

A201Request for examination
PA0201Request for examination

St.27 status event code:A-1-2-D10-D11-exm-PA0201

PN2301Change of applicant

St.27 status event code:A-3-3-R10-R13-asn-PN2301

St.27 status event code:A-3-3-R10-R11-asn-PN2301

D13-X000Search requested

St.27 status event code:A-1-2-D10-D13-srh-X000

D14-X000Search report completed

St.27 status event code:A-1-2-D10-D14-srh-X000

P22-X000Classification modified

St.27 status event code:A-2-2-P10-P22-nap-X000

R18-X000Changes to party contact information recorded

St.27 status event code:A-3-3-R10-R18-oth-X000

E902Notification of reason for refusal
PE0902Notice of grounds for rejection

St.27 status event code:A-1-2-D10-D21-exm-PE0902

P11-X000Amendment of application requested

St.27 status event code:A-2-2-P10-P11-nap-X000

P13-X000Application amended

St.27 status event code:A-2-2-P10-P13-nap-X000

E701Decision to grant or registration of patent right
P22-X000Classification modified

St.27 status event code:A-2-2-P10-P22-nap-X000

PE0701Decision of registration

St.27 status event code:A-1-2-D10-D22-exm-PE0701

GRNTWritten decision to grant
PR0701Registration of establishment

St.27 status event code:A-2-4-F10-F11-exm-PR0701

PR1002Payment of registration fee

St.27 status event code:A-2-2-U10-U11-oth-PR1002

Fee payment year number:1

PG1601Publication of registration

St.27 status event code:A-4-4-Q10-Q13-nap-PG1601

R18-X000Changes to party contact information recorded

St.27 status event code:A-5-5-R10-R18-oth-X000

L13-X000Limitation or reissue of ip right requested

St.27 status event code:A-2-3-L10-L13-lim-X000

U15-X000Partial renewal or maintenance fee paid modifying the ip right scope

St.27 status event code:A-4-4-U10-U15-oth-X000

L13-X000Limitation or reissue of ip right requested

St.27 status event code:A-2-3-L10-L13-lim-X000

U15-X000Partial renewal or maintenance fee paid modifying the ip right scope

St.27 status event code:A-4-4-U10-U15-oth-X000

FPAYAnnual fee payment

Payment date:20171030

Year of fee payment:4

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:4

FPAYAnnual fee payment

Payment date:20181030

Year of fee payment:5

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:5

FPAYAnnual fee payment

Payment date:20191015

Year of fee payment:6

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:6

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:7

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:8

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:9

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:10

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:11

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:12


[8]ページ先頭

©2009-2025 Movatter.jp