KR101482150B1 - Web application executable device and web application management method therof - Google Patents

Web application executable device and web application management method therof Download PDF

Info

Publication number
KR101482150B1
KR101482150B1 KR20100043321A KR20100043321A KR101482150B1 KR 101482150 B1 KR101482150 B1 KR 101482150B1 KR 20100043321 A KR20100043321 A KR 20100043321A KR 20100043321 A KR20100043321 A KR 20100043321A KR 101482150 B1 KR101482150 B1 KR 101482150B1
Authority
KR
South Korea
Prior art keywords
web application
execution
layer
web
module
Prior art date
Application number
KR20100043321A
Other languages
Korean (ko)
Other versions
KR20110123867A (en
Inventor
곽노현
이순호
Original Assignee
에스케이플래닛 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이플래닛 주식회사 filed Critical 에스케이플래닛 주식회사
Priority to KR20100043321A priority Critical patent/KR101482150B1/en
Publication of KR20110123867A publication Critical patent/KR20110123867A/en
Application granted granted Critical
Publication of KR101482150B1 publication Critical patent/KR101482150B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Abstract

본 발명은 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법에 관한 것으로서, 단말에 탑재된 운영체제의 종류에 무관하게 단말의 자원 및 기능을 이용하여 웹 어플리케이션을 실행할 수 있는 환경을 제공하면서, 다수의 페이지를 포함하는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행, 및 업데이트하기 위한 것이다. 본 발명에 따르면, URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받으면, 로컬 스토리지에 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하여, 웹 어플리케이션이 로컬 스토리지에 존재할 경우, 로컬 스토리지에 저장된 웹 어플리케이션을 실행한다.The present invention relates to a web application execution apparatus and a web application management method thereof, and it is an object of the present invention to provide an environment in which a web application can be executed using resources and functions of a terminal regardless of the type of an operating system installed in the terminal, To install, run, and update the included web application on a per-application basis rather than on a page-by-page basis. According to the present invention, upon receipt of an execution request for a web application including web application identification information in the form of a URL (Uniform Resource Location), it is checked whether a web application identified by URL-type web application identification information exists in the local storage , And if the web application exists in the local storage, executes the web application stored in the local storage.

Description

웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법{Web application executable device and web application management method therof}[0001] DESCRIPTION [0002] WEB APPLICATION EXECUTION DEVICE AND WEB APPLICATION MANAGEMENT METHOD [

본 발명은 단말에서 웹 어플리케이션을 실행하기 위한 웹 어플리케이션 관리 방법 및 장치에 관한 것으로서, 더욱 상세하게는 다수의 페이지를 포함하는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행, 및 업데이트하는 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a web application management method and apparatus for executing a web application in a terminal, and more particularly, to a web application management method and apparatus for managing a web application including a plurality of pages, And a method for managing the web application.

최근 이동 통신 단말에 대한 오픈 환경이 제공되면서, 서비스의 차별화를 위하여 개방형 어플리케이션 및 플랫폼 환경이 요구되고 있다.Recently, an open application and a platform environment have been required for differentiating services while providing an open environment for a mobile communication terminal.

더 구체적으로, 사용자가 자신이 원하는 모바일 어플리케이션을 자유롭게 선택하여 설치할 수 있는 스마트 폰이 급성장하면서, 이러한 모바일 어플리케이션을 자유롭게 거래할 수 있는 OMP(Open Market Place)까지 활성화되고 있다.More specifically, a smartphone capable of freely selecting and installing a desired mobile application is rapidly growing, and an OMP (Open Market Place) capable of freely trading such a mobile application is being activated.

그런데 현재 스마트 폰에는 다양한 종류의 운영체제가 사용되고 있기 때문에, 어플리케이션 개발자는 여러 종류의 운영체제 환경을 감안하여 모바일 어플리케이션을 개발하여야 한다.However, since various types of operating systems are currently used in smartphones, application developers must develop mobile applications in consideration of various types of operating system environments.

더 구체적으로 설명하면, 운영 체제(Operating System)는 그 자신이 이식(porting)된 단말의 자원 및 기능 등을 관리하며, 그 단말에 이식된 어플리케이션(Application)이 요청하는 경우, 단말의 자원 및 기능의 일부 또는 전부의 접근을 어플리케이션에 허여할 수 있다. 이는 운영 체제가 어플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)를 제공함으로써 이루어진다. 바꿔 말하면, 어플리케이션은 운영 체제가 제공하는 API를 참조하여 장치의 자원 및 기능에 접근한다. 따라서 개발자들은 특정 운영 체제가 이식된 장치의 어플리케이션을 개발하기 위해서는 운영 체제가 제공하는 API의 형식에 따라 개발하여야 하며, 다양한 운영 체제가 사용되고 있는 현 상황에서, 개발자는 동일한 어플리케이션을 각 운영 체제의 API에 맞추어 따로 제작하여야 했다.More specifically, an operating system manages resources and functions of a terminal that is itself ported, and when an application (application) implanted in the terminal requests the resources and functions of the terminal, May access some or all of 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. Therefore, in order to develop an application of a device to which a specific operating system is implanted, developers must develop it in accordance with the format of the API provided by the operating system. In a situation where various operating systems are used, .

한편, 정적이고 단순한 컨텐츠를 표현하기 위해 시작된 웹은 브라우저라는 클라이언트 어플리케이션을 사용할 수 있는 환경만 갖춰지면 어디서나 동등한 수준의 사용자 인터페이스를 제공할 수 있다는 장점 때문에, 사용자 저변과 서비스 영역을 빠르게 확장해왔다. 이와 함께, 웹 컨텐츠는 특정 내용을 서술하는 단순한 컨텐츠에서, 사용자의 입력에 반응하여 사용자가 원하는 서비스를 제공할 수 있는 웹 어플리케이션으로 진화하고 있다. On the other hand, the web launched to express static and simple contents has been rapidly expanding the user base and service area because it can provide an equal level of user interface wherever the client application of the browser is available. At the same time, web contents are evolving into simple web content that describes a specific content and can provide a desired service in response to user input.

따라서, 이동 통신 단말에 대하여, 표준 웹 기술을 지원하는 웹 어플리케이션 플랫폼을 구현할 경우, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 웹 어플리케이션을 개발할 수 있으며, 더하여, 풍부한 사용자 인터페이스를 쉽고 빠르게 개발하여 제공할 수 있게 된다.Accordingly, when a web application platform supporting a standard web technology is implemented in a mobile communication terminal, it is possible to develop a web application more easily by using the existing rich web developer base and a web development tool, and in addition, It can be developed and provided easily and quickly.

본 발명은 단말에 탑재된 운영체제의 종류에 무관하게 단말의 자원 및 기능을 이용하여 웹 어플리케이션을 실행할 수 있는 환경을 제공하면서, 다수의 페이지를 포함하는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행, 및 업데이트하기 위한 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법을 제공하고자 한다.The present invention provides an environment in which a web application can be executed using resources and functions of a terminal irrespective of the type of an operating system installed in the terminal, and a web application including a plurality of pages is installed, And a method for managing the web application.

본 발명은 과제를 해결하기 위한 수단으로서, 이식 계층부와, 브라우저 엔진 계층부와, 웹 어플리케이션 런타임 계층부를 포함하는 웹 어플리케이션 실행 장치를 제공한다. 이식 계층부는 운영체제의 종류에 무관하게 상기 운영체제가 관장하는 기능 실행의 요청을 처리할 수 있는 단일 형식의 이식 계층 API(Application Programming Interface)를 지원하고, 특정 이식 계층 API가 호출되면, 대응하는 운영체제의 API를 호출하여 응답을 반환한다. 브라우저 엔진 계층부는 이식 계층부와 연동하여, 웹 어플리케이션의 각 페이지를 해석하여 실행한다. 웹 어플리케이션 런타임 계층부는 URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션 실행 요청을 입력 받아, 웹 어플리케이션이 로컬 스토리지에 존재하는 지를 확인하고, 확인 결과, 로컬 스토리지에 웹 어플리케이션이 존재하면, 웹 어플리케이션의 실행 명령을 상기의 브라우저 엔진 계층부로 전달하며, 브라우저 엔진 계층부에서 페이지를 실행하는데 있어서 필요한 네트워크 및 UI를 제공한다.The present invention provides, as means for solving the problems, a web application execution apparatus including an implantation layer unit, a browser engine layer unit, and a web application runtime layer unit. The transplantation layer supports a single type of transfer layer API (Application Programming Interface) capable of handling a request for function execution supervised by the operating system regardless of the type of the operating system. When a specific transfer layer API is called, API is called to return the response. The browser engine layer part interprets and executes each page of the web application in conjunction with the port layer. The web application runtime layer receives a web application execution request including web application identification information in the form of a URL (Uniform Resource Location), confirms whether the web application exists in the local storage, and if a web application exists in the local storage , It transmits an execution command of the web application to the browser engine layer unit and provides the network and the UI necessary for executing the page in the browser engine layer unit.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, URL 형태의 웹 어플리케이션 식별 정보는, 로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와, 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션의 파일 명을 포함하여 이루어질 수 있다.In the web application execution apparatus according to the present invention, the URL-type web application identification information includes a protocol schema defined to fetch and execute the web application stored in the local storage, a domain name of the web application manufacturer providing the web application, , And the file name of the web application.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 상기 웹 어플리케이션은, 웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와, 웹 어플리케이션에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와, 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하여 이루어질 수 있다.In the web application executing apparatus according to the present invention, the web application may include web content composed of a source file constituting a plurality of pages included in the web application and a resource file including an image inserted into the page, A list of resources included in the web application, configuration information including information on the disclosure of each data, integrity information on the data such as a hash code, execution environment information of the web application, and a range of terminal resources that the web application can access And the like.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, 로컬 스토리지에 상기 웹 어플리케이션이 존재하지 않는 경우, 사용자로부터 다운로드 여부를 확인하여, 사용자가 다운로드를 선택하면, 네트워크를 통해 서버에 접속하여, 상기 웹 어플리케이션을 다운로드 받아 설치하는 것을 특징으로 한다.In the web application execution device according to the present invention, when the web application does not exist in the local storage, the web application runtime layer checks whether or not the web application is downloaded from the user, and when the user selects download, And downloading and installing the web application.

본 발명에 의한 웹 어플리케이션 실행 장치는, 브라우저 엔진 계층부와 이식 계층부 및 웹 어플리케이션 런타임 계층부를 로딩하고, 사용자의 요청에 따른 웹 어플리케이션의 실행 요청을 웹 어플리케이션 런타임 계층 또는 브라우저 엔진 계층부로 전달하는 실행 계층부를 더 포함할 수 있다.The web application execution apparatus according to the present invention includes a browser engine layer unit, an application layer unit, and a web application runtime layer unit. The web application execution unit executes a web application runtime layer or a browser engine layer And a layer unit.

본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션 및 상기 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 호출하는 플러그인의 설치 또는 실행 또는 로딩 전에, 인증서를 검증하고, 접근 제어 규칙에 따라서 웹 어플리케이션의 실행 중 상기 이식 계층에 대한 접근을 제어하는 보안 계층부를 더 포함할 수 있다.The web application execution apparatus according to the present invention verifies a certificate before installation, execution, or loading of a plug-in that invokes resources of the terminal and functions of the operating system other than the web standard in the web application and the browser engine layer, And a security layer for controlling access to the transplantation layer during execution of the web application.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 브라우저 엔진 계층부는, 웹 표준 언어로 작성된 웹 어플리케이션의 각 페이지를 해석하여 실행시키는 브라우저 엔진 모듈; 하나 이상의 플러그 인에 대한 다운로드, 설치, 설치된 플러그인의 목록 관리, 업데이트, 및 플러그인의 호출 요청에 대한 처리를 수행하는 플러그인 관리 모듈; 및 플러그인 관리 모듈에 의해 설치되고, 플러그인 관리 모듈을 통해 동작하여, 각각 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 이식 계층부를 통해 호출하여 그에 대한 응답을 반환하는 하나 이상의 플러그 인을 포함하여 이루어질 수 있다.In the web application execution apparatus according to the present invention, the browser engine layer unit may include a browser engine module for interpreting and executing each page of the web application written in the web standard language; A plug-in management module for downloading and installing at least one plug-in, managing a list of installed plug-ins, updating, and processing a call request of the plug-in; And one or more plug-ins installed by the plug-in management module and operating through the plug-in management module, each of the plug-ins calling the functions of the resources and the operating system of the terminal other than the web standard through the porting layer and returning a response thereto .

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 이식 계층부는, HTML과 관련된 기능 및 API를 제공하는 HTTP 모듈, XML 파싱 기능을 위한 API를 제공하는 XML 모듈, 쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈, UI(User Interface) 구현을 위해 필요한 네이티브 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈, 보안 저장 기능을 API 형태로 제공하는 보안 스토리지 모듈, 단말 자원에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈, 단말 자원 이외에 단말에서 제공하는 OS API를 API 형태로 제공하는 OS API 모듈, 단말에 설치된 어플리케이션 간의 연동 기능을 API 형태로 제공하는 협업(Collaboration) 모듈, 외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화(Sync) 모듈, 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈 중에서 하나 이상을 포함할 수 있다.In the web application execution apparatus according to the present invention, the porting layer unit may include an HTTP module providing an HTML related function and API, an XML module providing an API for an XML parsing function, a thread function provided in an API form, A Thread module that bi-passes the provided functions, a UI backend module that provides the native window system functions necessary for UI (UI) implementation in an API form, and a security storage function in the form of an API Security storage module, a resource module that provides an access interface to the terminal resource in the form of an API, an OS API module that provides an OS API provided by the terminal in addition to the terminal resource, and an API function in an API form Collaboration module, interworking interface with synchronization application existing in external device, API type Providing a synchronization (Sync) module, a local storage, which may include one or more of the local storage (Local Storage) module for providing the API form.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, 웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈; 웹 어플리케이션 및 플러그인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈; 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI(User Interface) 및 사용자 입력을 처리하는 UI 엔진; 웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리하는 네트워크 셀렉터; 및 웹 어플리케이션을 실행 중에, 네트워크 연결이 끊긴 동안의 데이터를 로컬 스토리지에 저장하고, 네트워크가 연결되면 로컬 스토리지에 저장한 데이터와 외부 데이터에 대한 동기화를 수행하는 다이내믹 동기화 모듈을 포함할 수 있다.In the web application execution device according to the present invention, the web application runtime layer may include a web application runtime module for performing context management and event handling of the web application instance and command processing from the execution layer; A registry module for managing installation information of the web application and the plug-in and structure information of the web application execution device; A UI engine for processing UI (User Interface) and user input for a screen area other than the area rendered in the browser engine layer; A network selector for setting and managing a network to be used in the web application execution device; And a dynamic synchronization module that stores data while the network connection is disconnected in the local storage while the web application is running and synchronizes data stored in the local storage and external data when the network is connected.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 실행 계층부는, 단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 요청에 따라서 더미 실행 모듈을 동작시키는 컨테이너 에이전트; 컨테이너 에이전트에 의해 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부를 로딩한 후, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 더미 실행 모듈; 및 네이티브 대기화면 관리자에 의해 로딩되어, 대기화면에서의 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 계층부로 전달하는 대기모드 에이전트를 포함할 수 있다.In the web application execution apparatus according to the present invention, the execution layer includes: a container agent that operates the dummy execution module according to a request for execution of a web application through a shortcut icon or a native menu of the terminal; A dummy execution module, which is operated by the container agent and forwards the web application execution command to the web application runtime execution layer after loading the web application runtime execution layer, the browser engine layer, and the porting layer; And a standby mode agent that is loaded by the native standby screen manager and forwards the web application execution command on the standby screen to the web application runtime layer.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 보안 계층부는, 웹 어플리케이션 및 플러그인의 설치 또는 실행 시, 상기 웹 어플리케이션 및 플러그인의 인증서를 검증하는 인증 모듈; 및 웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함할 수 있다.In the web application execution device according to the present invention, the security layer may include an authentication module for verifying the certificate of the web application and the plug-in when the web application and the plug-in are installed or executed; And a policy module that controls access to the port layer during execution of the web application according to an access control rule.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 하나 이상의 플러그 인은, 단말 자원과 관련된 기능 호출을 이식계층부로 전달하는 리소스 플러그인과, 웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부에 전달하고, 웹 어플리케이션 런타임 계층부의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인과, 웹 어플리케이션 사이의 연동을 위한 기능 호출을 이식 계층부로 전달하는 협업(Collaboration) 플러그인과, 웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부에 전달하는 동기화(Sync) 플러그인 중에서 하나 이상을 포함할 수 있다.In the web application execution apparatus according to the present invention, one or more plug-ins may include a resource plug-in for transferring a function call related to the terminal resource to the transplantation layer unit, a terminal OS API calling function of the web application to the transplantation layer, A system API plug-in for providing an access interface to the function of the application runtime layer, a collaboration plug-in for transferring a function call for interworking between the web application to the transplantation layer, And a Sync plug-in for transferring the synchronization message to the layer unit.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 모듈은, 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러; 커맨드 핸들러 또는 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 네이티브 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저; 컨텍스트 매니저에서 생성한 네이티브 윈도우 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 UI 이펙트를 줄 수 있도록 상기 UI 엔진에 전달하는 이벤트 핸들러; 및 다수의 페이지를 포함하는 웹 어플리케이션 및 그의 각 페이지에 대한 라이프사이클을 관리하는 라이프사이클 매니저를 포함하여 이루어질 수 있다.In the web application execution apparatus according to the present invention, the web application runtime module may include a command handler for receiving a command related to the execution of the web application from the execution layer and interpreting the command, and instructing the command to be executed; A context manager for controlling creation and destruction of a native window and a renderer for each web application according to an instruction of a command handler or a browser engine layer; An event handler for processing a system-related event of a native window and a web application execution device generated by the context manager, and transmitting the event to the UI engine so as to give a UI effect when an event related to a predefined situation occurs for the window; And a lifecycle manager for managing a web application including a plurality of pages and a life cycle for each page of the web application.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 레지스트리 모듈은, URL 형태의 웹 어플리케이션 식별 정보인 웹 어플리케이션 URL과, 상기 웹 어플리케이션 URL로 식별되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 위치를 나타내는 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 정책 정보를 포함하는 웹 어플리케이션 설치 정보 관리 테이블을 구성하고 관리할 수 있다.In the web application execution apparatus according to the present invention, the registry module includes a web application URL, which is web application identification information in the form of a URL, and a content URL, which indicates the location of the local storage in which the web application actually identified by the web application URL is stored And a web application installation information management table including a hash code for verifying the integrity of the web application and policy information for access control of the web application.

더하여, 본 발명은 과제를 해결하기 위한 다른 수단으로서, 상술한 웹 어플리케이션 실행 장치를 구비한 단말기를 제공한다.In addition, as another means for solving the problem, the present invention provides a terminal equipped with the web application execution apparatus described above.

또한, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, URL 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받는 단계; 로컬 스토리지에 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하는 단계; 및 웹 어플리케이션이 로컬 스토리지에 존재하면, 로컬 스토리지에 저장된 웹 어플리케이션을 실행하는 단계를 포함하는 웹 어플리케이션 관리 방법을 제공한다.According to another aspect of the present invention, there is provided a web application receiving method comprising: receiving an execution request of a web application including URL-type web application identification information; Confirming whether a web application identified by URL-type web application identification information exists in the local storage; And executing the web application stored in the local storage when the web application exists in the local storage.

본 발명에 의한 웹 어플리케이션 관리 방법은, 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 확인하는 단계; 사용자가 다운로드 받는다고 선택하면, 상기 URL 형태의 웹 어플리케이션 식별 정보를 네트워크를 통해 접속 가능한 URL로 변환하는 단계; 및 변환된 URL을 이용하여, 네트워크상의 웹 서버에 접속하여, 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계를 더 포함할 수 있다.According to another aspect of the present invention, there is provided a method of managing a web application, the method comprising: outputting an error message indicating that a web application requested to be executed does not exist to a user and confirming whether the web application is to be downloaded; If the user selects to download, converting the web application identification information in the form of URL into a URL accessible via the network; And a step of accessing a web server on the network using the converted URL, downloading the web application, and installing the web application on the local storage of the terminal.

본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, URL 형태의 웹 어플리케이션 식별 정보는, 로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와, 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션의 파일 명을 포함하여 이루어질 수 있다.In the web application management method according to the present invention, the URL-type web application identification information includes a protocol schema defined to fetch and execute the web application stored in the local storage, a domain name of the web application manufacturer providing the web application, , And the file name of the web application.

본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션은, 웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와, 웹 어플리케이션에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와, 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함할 수 있다.In the web application management method according to the present invention, the web application may include a source file constituting a plurality of pages included in the web application in accordance with a web standard, web content composed of a resource file including an image inserted into the page, A list of resources included in the web application, configuration information including information on the disclosure of each data, integrity information on the data such as a hash code, execution environment information of the web application, and a range of terminal resources that the web application can access And the like.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션을 실행하는 단계는, 브라우저 엔진 컨테이너 코어의 브라우저 엔진 계층부가 웹 어플리케이션 실행 요청에 따라서, 웹 어플리케이션을 위한 네이티브 윈도우 및 랜더러 인스턴스를 생성하는 단계; 웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 파싱, 레이아웃 지정, 및 랜더링하여 상기 생성한 네이티브 윈도우로 출력하는 단계; 출력된 페이지 이외에 상기 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계; 하나 이상의 다른 페이지에 대한 파싱 및 레이아웃 지정을 수행하는 단계; 레이아웃 지정까지 처리된 다른 페이지의 데이터를 시리얼라이즈화하여 바이너리 파일로 저장하는 단계; 다른 페이지에 대한 이벤트 발생을 확인하는 단계; 이벤트가 발생하면, 저장한 바이너리 파일을 랜더링하여 상기 네이티브 윈도우로 출력하는 단계를 포함한다.In the web application execution apparatus according to the present invention, the step of executing the web application may include: generating a native window and a renderer instance for the web application in accordance with a browser engine layer of the browser engine container core requesting execution of the web application; Parsing, laying out and rendering a designated page among the pages included in the web application and outputting the page to the generated native window; Extracting one or more other pages included in the web application other than the output page; Performing parsing and layout assignments for one or more other pages; Serializing data of other pages processed until the layout is specified and storing the serialized data as a binary file; Confirming occurrence of an event for another page; And when the event occurs, rendering the stored binary file and outputting the rendered binary file to the native window.

본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 전달받는 단계는, 단축아이콘을 이용한 사용자의 웹 어플리케이션의 실행 요청이 입력되면, 실행 계층부에서 상기 브라우저 엔진 컨테이너 코어의 실행 여부를 확인하는 단계; 확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면 브라우저 엔진 컨테이너 코어를 로딩하는 단계; 브라우저 엔진 컨테이너 코어가 실행 중이면, 브라우저 엔진 컨테이너 코어의 웹 어플리케이션 런타임 계층부로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함할 수 있다.In the web application management method according to the present invention, when receiving an execution request of the web application, the execution layer receives whether or not the browser engine container core is executed Checking; Loading the browser engine container core if the browser engine container core is not running; And if the browser engine container core is running, transmitting an execution command for the web application to the web application runtime layer of the browser engine container core.

본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 전달받는 단계는, 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저를 통해 실행 API가 호출되는 단계; 브라우저 엔진 컨테이너 코어가 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인을 로딩하는 단계; 및 로딩된 시스템 API 플러그 인이 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함할 수 있다.In the method of managing a web application according to the present invention, receiving an execution request of a web application may include: calling an execution API through a web application manager managing the web application; Loading a system API plug-in in which a browser engine container core provides an access interface to a core function; And loading the loaded system API plug-in with an execution command for the web application to the context manager of the web application runtime layer.

본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 전달받는 단계는, 네이티브 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 실행 계층부의 대기모드 에이전트를 로딩하는 단계; 및 대기모드 에이전트가 브라우저 엔진 컨테이너 코어를 로딩하고, 대기화면 모드 실행 API를 호출하여, 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함할 수 있다.In the web application management method according to the present invention, the step of receiving an execution request of the web application may include the steps of: receiving a web application execution request of the user from the native standby screen manager and loading a standby mode agent of the execution layer; And a standby mode agent loading the browser engine container core, calling the idle screen mode execution API, and delivering an execution command for the web application to the context manager of the web application runtime layer.

본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계는, 웹 서버에 접속하여 웹 어플리케이션을 다운로드 받는 단계; 브라우저 엔진 계층부로 레지스트리 메쏘드를 호출하는 단계; 브라우저 엔진 계층부에서 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하기 위하여, 시스템 API 플러그 인을 호출하는 단계; 호출에 의해 시스템 API 플러그 인이 동작하여, 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하는 단계; 및 호출된 레지스트리 모듈이, 다운로드 받은 파일에서 설치 정보를 추출하여 보안 스토리지에 저장하고, 웹 컨텐츠는 로컬 스토리지에 저장하는 단계를 포함하여 이루어질 수 있다.In the web application management method according to the present invention, the step of downloading the web application and installing the web application on the local storage of the terminal includes: downloading the web application by accessing the web server; Calling a registry method into the browser engine layer; Calling a system API plug-in to call the registry module of the web application runtime layer in the browser engine layer; Invoking a system API plug-in to invoke a registry module of the web application runtime layer; And the called registry module extracts installation information from the downloaded file and stores it in the secure storage, and storing the web contents in the local storage.

본 발명에 의한 웹 어플리케이션 관리 방법은, 웹 어플리케이션의 설치 또는 실행 전에, 상기 웹 어플리케이션의 인증서를 검증하여, 인증서 검증이 성공하면, 웹 어플리케이션의 설치 또는 실행을 계속하도록 하고, 인증서 검증이 성공하지 못하면, 사용자에게 설치 또는 실행 계속 여부를 확인하도록 하는 단계를 더 포함할 수 있다.The web application management method according to the present invention checks the certificate of the web application before installation or execution of the web application and allows the installation or execution of the web application to continue when the certificate verification succeeds. If the certificate verification is not successful , And allowing the user to confirm whether to continue installation or execution.

본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션을 실행하는 단계는, 이식 계층부에 대한 접근이 필요한 경우, 웹 어플리케이션 별로 설정된 접근 제어 규칙을 참조하여, 이식 계층부에 대한 접근을 허여하거나 거부하는 단계를 더 포함할 수 있다.In the web application management method according to the present invention, in the step of executing the web application, when access to the port layer is required, the access control rule set for each web application is referred to, The method comprising the steps of:

더하여, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, 상술한 웹 어플리케이션 관리 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체를 제공한다.In addition, as another means for solving the problem, the present invention provides a computer-readable recording medium on which a program for executing the above-described web application management method is recorded.

본 발명에 따르면, 운영 체제 별로 다른 형식을 가지는 기능 실행을 위한 인터페이스를 운영 체제의 종류에 무관하게 단일 형식으로 제공함으로써, 웹 어플리케이션이 동일한 방법으로 운영 체제가 관리하는 단말의 기능을 실행하도록 하며, 다수의 페이지로 구성되는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행 및 업데이트되도록 관리함으로써, 웹 어플리케이션을 스탠드 얼론 어플리케이션과 동일한 방식으로 이용할 수 있다.According to the present invention, an interface for executing a function having a different format according to an operating system is provided in a single format regardless of the type of an operating system, so that a web application executes a function of a terminal managed by the operating system in the same manner, The web application can be used in the same manner as the standalone application by managing the web application composed of a plurality of pages to be installed, executed and updated in increments of applications, not page units.

더하여, 이를 이동 통신 단말에 적용함으로써, 이동 통신 단말용 어플리케이션 개발자들이, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 이동 통신 단말의 어플리케이션을 개발할 수 있게 된다.In addition, by applying this to a mobile communication terminal, application developers for a mobile communication terminal can more easily develop an application of the mobile communication terminal by using the existing rich web developer base and the web development tool.

도 1은 본 발명에 따른 웹 어플리케이션 실행 장치의 전체 구조를 보인 블럭도이다.
도 2는 본 발명에 따른 웹 어플리케이션의 패키지 구조를 보인 블럭도이다.
도 3은 본 발명에 따른 웹 어플리케이션 실행 장치에서 관리되는 웹 어플리케이션의 메타 데이터 정보를 나타낸 도면이다.
도 4는 본 발명에 따른 웹 어플리케이션의 관리 방법을 나타낸 흐름도이다.
도 5는 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 다운로드 및 업데이트 과정을 나타내는 메시지 흐름도이다.
도 6은 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 보안을 적용한 웹 어플리케이션의 실행/설치/로딩 과정을 나타낸 흐름도이다.
도 7 내지 도 9는 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 과정을 다양한 실시 예를 보인 흐름도이다.
도 10은 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 속도 향상을 위한 처리 과정을 나타낸 흐름도이다.
1 is a block diagram showing the overall structure of a web application execution apparatus according to the present invention.
2 is a block diagram showing a package structure of a web application according to the present invention.
3 is a view showing metadata information of a web application managed by the web application execution apparatus according to the present invention.
4 is a flowchart illustrating a method of managing a web application according to the present invention.
5 is a message flow diagram illustrating a process of downloading and updating a web application in the web application management method according to the present invention.
FIG. 6 is a flowchart illustrating a process of executing / installing / loading a security-applied web application in the web application management method according to the present invention.
7 to 9 are flowcharts illustrating various embodiments of a web application execution process in a web application management method according to the present invention.
10 is a flowchart illustrating a process for improving the execution speed of the web application in the web application management method according to 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 should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

더하여, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.In addition, terms and words used in the present specification and claims should not be construed to be limited to ordinary or dictionary meanings, and the inventor should properly define the terms of a term in order to describe its own invention in the best way possible. It should be construed 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.

먼저, 본 발명에 따른 웹 어플리케이션 실행 장치에 대하여 설명한다. 본 발명에 따른 웹 어플리케이션 실행 장치는, 단말의 운영 체제 위에서 동작하여, 웹 어플리케이션의 다운로드, 설치, 실행을 처리한다. 이러한 웹 어플리케이션 실행 장치는 소프트웨어, 하드웨어, 소프트웨어와 하드웨어의 조합으로 구현될 수 있다.First, a web application execution apparatus according to the present invention will be described. The web application execution apparatus according to the present invention operates on the operating system of the terminal and processes downloading, installation, and execution of the web application. Such a web application execution device may be implemented by software, hardware, a combination of software and hardware.

도 1은 본 발명의 일 실시 예에 따른 웹 어플리케이션 실행 장치의 전체 구조를 나타낸 도면이다.1 is a diagram illustrating an overall structure of a web application execution apparatus according to an embodiment of the present invention.

도 1을 참조하면, 웹 어플리케이션의 실행 장치는, 이식 계층부(Porting layer)(200)와, 보안 계층부(Security layer)(300)와, 웹 어플리케이션 런타임 계층부(Web Application Runtime layer)(400)와, 브라우저 엔진 계층부(Browser Engine layer)(500)와, 실행 계층부(Executable layer)(600)와, 하나 이상의 시스템 웹 어플리케이션(700)을 포함한다.1, the web application execution apparatus includes a porting layer 200, a security layer 300, a web application runtime layer 400, A browser engine layer 500, an executable layer 600, and one or more system web applications 700. The browser engine layer 500 includes a plurality of application programs.

여기서, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)가 브라우저 엔진 컨테이너 커먼(Browser Engine Container Common) 모듈로 구현된다. 여기서 웹 어플리케이션 런타임 계층부(400)가 주도적으로 웹 어플리케이션의 관리 기능을 수행하며, 브라우저 엔진 계층부(500)는 웹 어플리케이션의 각 페이지를 해석하여 화면으로 출력한다. 상기 브라우저 엔진 컨테이너 커먼은 운영체제(100)에는 독립적이면서, 이식 계층부(200)에만 의존성을 갖는다.Here, the security layer unit 300, the web application runtime layer unit 400, and the browser engine layer unit 500 are implemented as a browser engine container common module. Here, the web application runtime layer 400 mainly manages the web application, and the browser engine layer 500 interprets each page of the web application and outputs it to the screen. The browser engine container common is independent of the operating system 100 and has dependency only on the portability layer 200.

그리고, 상기 브라우저 엔진 컨테이너 커먼과, 이식 계층부(200)를 포함하여, 브라우저 엔진 컨테이너 코어(Browser Engine Container Core)로 구현된다.The browser engine container common includes the browser engine container common and the porting layer 200, and is implemented as a browser engine container core.

상기 브라우저 엔진 컨테이너 코어는, 다수 웹 어플리케이션의 동시 실행과, 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원하는 멀티-태스킹 컨테이너로, 한 시스템 내에서 복수 개의 컨테이너를 실행할 수 있으며, 컨테이너 자체는 단일 인스턴스로 동작한다.The browser engine container core is a multi-tasking container that supports simultaneous execution of multiple web applications and multi-instance for a single web application. The browser engine container core can execute a plurality of containers in one system, .

즉, 브라우저 엔진 컨테이너 코어는, 웹 어플리케이션의 실행 시마다 윈도우를 생성하고, 랜더러 인스턴스를 생성하여, 웹 어플리케이션의 디폴트 페이지 또는 요청 페이지를 실행한다.That is, the browser engine container core creates a window each time a web application is executed, creates a renderer instance, and executes a default page or a request page of the web application.

이때, 실행 계층부(600)는, 브라우저 엔진 컨테이너 코어의 엔트리 포인트로 동작한다. 브라우저 엔진 컨테이너 코어는 실행 계층부(600)에 의하여 실행되어, 시스템 웹 어플리케이션(700) 및 다른 웹 어플리케이션을 실행시킨다.At this time, the execution layer 600 operates as an entry point of the browser engine container core. The browser engine container core is executed by the execution layer 600 to execute the system web application 700 and other web applications.

한편, 본 발명에 의해 실행되는 웹 어플리케이션은, 다수의 페이지가 패키지로 묶여 함께 운영되는 것으로서, 도 2를 참조하면, 웹 어플리케이션을 구성하는 각 페이지를 구성하는 html, xhtml, css, java script 파일 등과 같은 소스 파일과, 상기 페이지에 삽입되는 이미지 등과 같은 리소스 파일로 이루어지는 웹 컨텐츠(11)와, 웹 어플리케이션 패키지에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보(화면 크기, 타겟 CPU, 타겟 OS, 웹 어플리케이션 실행 장치의 버전 등)를 포함하는 구성 정보(Configuration 파일)(12)와, 상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보(13)를 포함하여 이루어진다. 상기 정책 정보(13)는 웹 어플리케이션 패키지 전체에 부여되는 기본 접근 권한 정보와, 웹 어플리케이션의 각 페이지 별로 부여되는 세부 접근 권한 정보를 포함할 수 있으며, 이를 통해 단말의 자원, 예를 들어, 사진, 주소록, 단말 기능, 통화 기록 들에 대한 접근 가능 여부를 정할 수 있다. 이러한 웹 컨텐츠(11)와, 구성 정보(12)와, 정책 정보(13)를 포함하는 웹 어플리케이션은, 압축 파일 형태로 제공되며, 웹 어플리케이션이 인증된 기관 또는 사업자를 통해 배포되는 것임을 증명하는 인증서를 더 포함할 수 있다.Referring to FIG. 2, a web application executed by the present invention includes a plurality of pages, which are bundled and operated together. The web application includes html, xhtml, css, and java script files constituting each page constituting the web application A web content 11 composed of a resource file such as an image to be inserted into the page, a list of data contained in the web application package, integrity information on each piece of data, (Configuration file) 12 including execution environment information of the application (screen size, target CPU, target OS, version of the web application execution device, and the like), and a range of terminal resources that the web application can access And policy information 13 for specifying the policy information. The policy information 13 may include basic access authority information given to the entire web application package and detail access authority information assigned to each page of the web application. The policy information 13 may include resources of the terminal, for example, Address book, terminal functions, and call records. The web application including the web content 11, the configuration information 12, and the policy information 13 is provided in the form of a compressed file, and a certificate proving that the web application is distributed through an authorized organization or a provider As shown in FIG.

본 발명에 의한 웹 어플리케이션 실행 장치는, 이러한 웹 어플리케이션을 URL(Uniform Resource Locators) 형태의 식별 정보를 통해 식별한다. The web application execution apparatus according to the present invention identifies such web application through identification information in the form of URL (Uniform Resource Locators).

일반적으로, 웹 브라우저에서는 file://, http://, https://와 같은 프로토콜 스키마를 통해 웹 자원에 접근한다. 여기서, file://은 해당 URL의 웹 자원을 파일 시스템에서 가져오는 것을 의미하고, http://와 https://는 해당 URL의 웹 자원을 네트워크에서 가져오는 것을 의미한다. 본 발명에 의한 웹 어플리케이션 실행 장치는, 여기에 더하여, 웹 어플리케이션의 처리를 위한 프로토콜 스키마 httpa://를 새로 설정한다. httpa://는 해당 URL로 식별되는 웹 어플리케이션을 로컬 스토리지에서 검색하여 실행해야 함을 의미한다. Typically, a web browser accesses web resources through a protocol scheme such as file: //, http: //, or https: //. Here, file: // means to fetch the web resource of the corresponding URL from the file system, and http: // and https: // to fetch the web resource of the corresponding URL from the network. The web application execution apparatus according to the present invention additionally sets a protocol schema httpa: // for processing the web application. httpa: // means that the web application identified by the URL should be retrieved from local storage and executed.

더하여, 본 발명에서는 웹 어플리케이션의 URL은 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 컨텐츠 제공자의 도메인 명을 더 포함하여 구성할 수 있다. 이렇게 포함된 도메인 명은, 추후 해당 웹 어플리케이션을 다운로드 받을 때 이용될 수 있다.In addition, in the present invention, the URL of the web application may further include a domain name of a manufacturer of the web application or a content provider providing the web application. The domain name thus included can be used to download the corresponding web application later.

즉, 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션의 URL은 웹 어플리케이션의 실행을 의미하는 프로토콜 스키마와, 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션 명으로 구성된다. 예를 들면, 웹 어플리케이션명이 application1.swa라고 하고, 컨텐츠 제공자의 도메인 명이 www.abc.com이라 할 때, 그 URL은 httpa://www.abc.com/application1.swa 로 표현될 수 있다. 여기서, swa라는 확장자는 웹 어플리케이션 패키지임을 나타내는 확장자로서, 임의로 지정된 이름이다.In other words, in the web application execution apparatus according to the present invention, the URL of the web application is composed of a protocol schema, which means execution of the web application, a domain name of the web application manufacturer or the content provider, and a web application name. For example, if the web application name is application1.swa and the domain name of the content provider is www.abc.com, the URL may be expressed as http: //www.abc.com/application1.swa. Here, the extension "swa" is an extension indicating that the web application package is an arbitrarily designated name.

이와 같이 새로운 형식으로 표현되는 웹 어플리케이션을 다른 웹 자원과 구분하여 관리하는 방법은 추후에 더 구체적으로 설명한다.This method of managing the web application differently from other web resources will be described later in more detail.

다시 도 1을 참조하여, 본 발명에 의한 웹 어플리케이션 실행 장치의 각 구성 요소의 상세 구성 및 기능에 대하여 설명한다.1, the detailed configuration and functions of each component of the web application execution apparatus according to the present invention will be described.

먼저, 이식 계층부(200)는, 단말에 탑재된 운영체제(100) 위에 구현되는 것으로서, 운영체제(100)와 직접 연결되어 상기 웹 어플리케이션 런타임 계층부(400) 및 브라우저 엔진 계층부(500)의 각 모듈이 상기 운영체제(100)에 독립적으로 구현되면서 단말 자원 및 OS 기능을 이용할 수 있도록 제공한다. First, the transplanting layer unit 200 is implemented on the operating system 100 installed in the terminal, and is directly connected to the operating system 100 and is connected to the web application runtime layer unit 400 and the browser engine layer unit 500 Module is independently implemented in the operating system 100, and provides a terminal resource and an OS function to be used.

더 구체적으로 설명하면, 시스템 웹 어플리케이션(700)을 포함하는 웹 어플리케이션은 브라우저 엔진 컨테이너 커먼 모듈 및 이식 계층(200)을 통해 운영체제(100)에 접근할 수 있다. 웹 어플리케이션이 단말의 기능을 실행시키고자 하는 경우, 브라우저 엔진 계층부(500)에서 이 요청을 이식 계층부(200)에 전달하고, 이식 계층부(200)는 운영체제(100)에 이 요청을 재 전달한다. 이때, 이식 계층부(200)는 운영체제(100)의 인터페이스에 따라 이 요청을 변환하여 운영체제(100)에 전달한다. 이에 따라, 운영체제(100)는 웹 어플리케이션이 요청한 기능을 실행하거나 단말의 자원을 웹 어플리케이션에 제공한다. More specifically, the web application including the system web application 700 may access the operating system 100 through the browser engine container common module and the porting layer 200. When the web application desires to execute the function of the terminal, the browser engine layer unit 500 transmits the request to the transplantation layer unit 200, and the transplantation layer unit 200 transmits the request to the operating system 100 . At this time, the transplantation layer unit 200 converts the request according to the interface of the operating system 100, and transfers the request to the operating system 100. Accordingly, the operating system 100 executes a function requested by the web application or provides resources of the terminal to the web application.

이식 계층부(600)의 운영체제(100)와 연결되는 인터페이스는 각 운영체제(100) 별로 따로 구현되며, 상위 브라우저 엔진 컨테이너 커먼 모듈에 제공하는 인터페이스(이하, 이식 계층 API라 함)는 단일 형식으로 구현된다. 이에 따라, 웹 어플리케이션은 운영체제(100)의 종류에 무관하게 동일한 형식의 인터페이스를 이용하여 단말 자원 또는 OS의 기능에 접근할 수 있다. The interface connected to the operating system 100 of the porting layer unit 600 is implemented separately for each operating system 100 and the interface provided to the parent browser engine container common module (hereinafter referred to as the porting layer API) do. Accordingly, the web application can access the functions of the terminal resources or the OS by using the same type of interface regardless of the type of the operating system 100.

이러한 이식 계층부(200)은 다수개의 인터페이스 모듈을 포함하며, 각 인터페이스 모듈은 라이브러리 형태로 구현되어, 자유롭게 추가할 수 있다. 이식 계층부(200)에 포함되는 인터페이스 모듈은, HTTP 및 HTTPS와 관련된 기능 및 API를 제공하는 HTTP 모듈, XML 파싱 기능을 위한 API를 제공하는 XML 모듈, 쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈, UI 구현을 위해 필요한 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈, 보안 저장 기능을 API 형태로 제공하는 보안 스토리지(Secure Storage) 모듈, 단말 자원(예를 들어, 전화부, 사진, 통화 기록, SMS 목록 등)에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈, 단말 자원 이외에 단말에서 제공하는 OS API(예를 들어, 통화 연결, SMS 전송, 단말 시스템의 Property 설정 등)을 API 형태로 제공하는 OS API 모듈, 웹 어플리케이션 간의 연동 기능을 API 형태로 제공하는 협업(Collaboration) 모듈, 외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화(Sync) 모듈, 운영체제에 존재하는 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈 중에서 하나 이상을 포함할 수 있다.The transplantation layer unit 200 includes a plurality of interface modules, and each interface module is implemented in a library form and can be freely added. The interface module included in the porting layer 200 includes an HTTP module for providing functions and APIs related to HTTP and HTTPS, an XML module for providing an API for an XML parsing function, and a thread function in an API form. A thread module that bi-passes the provided functions, a UI backend module that provides the window system functions necessary for the UI implementation in an API form, a secure storage ) Resource module (for example, a phone book, a photograph, a call record, an SMS list, and the like) in API form, an OS API provided by the terminal in addition to the terminal resource , SMS transmission, property setting of the terminal system, etc.) as an API type, a collaboration module for providing interworking functions between web applications in API form, (Sync) module for providing an interface for interworking with a synchronization application existing in a secondary device in an API form, and a local storage module for providing a local storage function existing in an operating system in an API form. have.

다음으로 보안 계층부(300)에 대해서 설명한다.Next, the security layer unit 300 will be described.

보안 계층부(300)는, 웹 어플리케이션 실행 장치 내부의 다른 모듈에 대한 이식 계층부(200)로의 접근을 제어하여, 보안 레벨을 높이기 위한 것으로서, 인증(Certification) 모듈(310)과, 정책(Policy) 모듈(320)을 포함하여 이루어진다. The security layer unit 300 is for increasing the security level by controlling access to the transplantation layer unit 200 for another module in the web application execution unit and includes an authentication module 310, ) ≪ / RTI >

인증 모듈(310)은 웹 어플리케이션 및 브라우저 엔진 계층부(500)에 구비되어 이식 계층부(200)에 대한 접근을 처리하는 플러그 인에 대한 설치 또는 실행 또는 로딩 시에, 상기 웹 어플리케이션 및 플러그 인이 정당하게 배포된 것인지를 인증하여, 정당하게 배포된 웹 어플리케이션 및 플러그 인이 단말에 설치되고, 실행될 수 있도록 한다.The authentication module 310 is installed in the web application and the browser engine layer unit 500 so that upon installation or execution or loading of the plug-in processing access to the transplantation layer 200, the web application and plug- Authenticates whether the web application and the plug-in are legitimately distributed, and enables the legitimately distributed web application and the plug-in to be installed and executed in the terminal.

정책 모듈(320)은 접근 제어 규칙에 따라서 각 웹 어플리케이션의 이식 계층부(200)로의 접근을 제어하여, 접근 권한을 갖는 웹 어플리케이션만이 단말 자원 및 OS 기능에 접근할 수 있도록 한다. 이를 위하여, 정책 모듈(320)은, 실행 계층부(600)의 업데이터(612)를 통해서 접근 제어 규칙을 전달받아 이를 설치한다. 그리고, 상기 브라우저 엔진 계층부(500)로부터의 접근 요청에 대해, 저장된 접근 제어 규칙을 검색하여, 해당하는 접근 제어 규칙에 따라서, 접근을 허여하거나 거부한다.The policy module 320 controls the access of each web application to the transplantation layer 200 according to the access control rules so that only the web application having the access authority can access the terminal resources and the OS functions. For this, the policy module 320 receives the access control rule through the updater 612 of the execution layer 600 and installs the access control rule. For the access request from the browser engine layer unit 500, the stored access control rule is searched for and granted or denied access according to the corresponding access control rule.

다음으로, 웹 어플리케이션 런타임 계층부(400)에 대해서 설명한다.Next, the web application runtime layer unit 400 will be described.

웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 실행 환경을 관리하여, 하기에서 설명할 브라우저 엔진 계층부(500)에서 웹 어플리케이션의 각 페이지를 실행하는데 필요한 네트워크 및 UI를 제공한다. 더 구체적으로 설명하면, 웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 인스턴스들을 관리하고, 웹 어플리케이션의 설치 및 구성 정보 관리 및 유저 인터페이스 관리를 수행한다. 이를 위하여, 웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션 런타임 모듈(410)와, 레지스트리(Registry) 모듈(420)와, UI(User Interface) 엔진(430)과, 네트워크 셀렉터(Network Selector)(440)와, 다이내믹 동기화 모듈(Dynamic Sync module)(450)를 포함한다.The web application runtime layer unit 400 manages the execution environment of the web application and provides the network and the UI necessary for executing the respective pages of the web application in the browser engine layer unit 500 to be described below. More specifically, the web application runtime layer 400 manages instances of the web application, manages installation of the web application, management of configuration information, and management of the user interface. To this end, the web application runtime layer 400 includes a web application runtime module 410, a registry module 420, a UI (User Interface) engine 430, a network selector 440), and a dynamic synchronization module (450).

웹 어플리케이션 런타임 모듈(410)은, 웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부(600)으로부터의 커맨드 처리를 수행한다. 이러한 웹 어플리케이션 런타임 모듈(410)은, 커맨드 핸들러(Command Handler)(411)와, 컨텍스트 매니저(Context manager)(412)와, 이벤트 핸들러(Event Handler)(413)와, 라이프사이클 매니저(Lifecycle manager)(414)를 포함하여 이루어진다. 커맨드 핸들러(411)는 실행 계층부(600)로부터 웹 어플리케이션의 실행과 관련된 명령을 IPC(Interprocess Communication)로 전달받아 해석한 뒤, 해당하는 모듈에 동작을 지시하는 것으로서, 일종의 IPC 명령 처리기이다. 커맨드 핸들러(411)에서 처리되는 명령어는, 웹 어플리케이션의 실행/종료, 웹 어플리케이션 실행 장치와 관련된 설정 정보의 업데이트, 웹 어플리케이션 실행 장치의 실행 및 종료, 플러그 인에 대한 인스톨/언인스톨/업데이트가 포함될 수 있다. 즉, 커맨드 핸들러(411)는 해석한 명령에 따라서, 컨텍스트 매니저(412)에 웹 어플리케이션의 실행 및 종료를 요청하고, 웹 어플리케이션 실행 장치의 구성 정보를 레지스트리 모듈(420)을 통해 업데이트한다. 또한, 커맨드 핸들러(411)는 브라우저 엔진 계층부(500)에 구비된 플러그 인 관리 모듈(520)에 플러그 인(530)의 설치, 삭제, 업데이트를 요청할 수 있다.The web application runtime module 410 performs context management, event handling, and command processing from the execution layer 600 of the web application instance. The web application runtime module 410 includes a command handler 411, a context manager 412, an event handler 413, a lifecycle manager 412, (414). The command handler 411 receives a command related to the execution of the web application from the execution layer 600 via the IPC (Interprocess Communication), analyzes the command, and instructs the corresponding module to perform the operation. The command handler 411 is an IPC command processor. The commands processed by the command handler 411 may include execution / termination of the web application, updating of the configuration information related to the web application execution device, execution and termination of the web application execution device, and installation / uninstall / update of the plug-in have. That is, the command handler 411 requests execution and termination of the web application to the context manager 412 according to the analyzed command, and updates the configuration information of the web application execution device through the registry module 420. The command handler 411 may request the plug-in management module 520 of the browser engine layer unit 500 to install, delete, or update the plug-in 530.

컨텍스트 매니저(412)는 웹 어플리케이션 인스턴스들의 컨텍스트를 관리하는 것으로서, 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어한다. 더 구체적으로 설명하면, 커맨드 핸들러(411)와 브라우저 엔진 모듈(510)로부터 전달되는 웹 어플리케이션의 실행 명령과, 브라우저 엔진 모듈(510)으로부터 전달되는 윈도우 생성 명령에 따라, 윈도우 및 랜더러(Render)의 인스턴스를 생성하고, 실행 요청된 페이지를 랜더링한 결과를 브라우저 엔진 모듈(510)로부터 전달받아 해당 윈도우에 출력한다. 또한, 커맨드 핸들러(411)로부터 전달되는 웹 어플리케이션 종료 명령과 이벤트 핸들러(413) 및 브라우저 엔진 모듈(510)으로부터 전달되는 윈도우 소멸 명령에 따라서, 랜더러와 윈도우의 자원을 정리하고, 윈도우를 소멸시키며, 웹 어플리케이션이 소유하고 있는 모든 윈도우가 소멸되면, 해당 웹 어플리케이션을 종료시킨다. The context manager 412 manages the contexts of web application instances, and controls creation and destruction of windows and renderers for each web application. More specifically, according to a command for executing a web application transmitted from the command handler 411 and the browser engine module 510, and a window generation command transmitted from the browser engine module 510, Generates the instance, and receives the rendering result of the page requested to be executed from the browser engine module 510 and outputs the result to the window. In addition, according to the web application end command transmitted from the command handler 411 and the window destruction command transmitted from the event handler 413 and the browser engine module 510, the resources of the renderer and the window are organized, the window is destroyed, When all the windows owned by the web application are destroyed, the corresponding web application is terminated.

이벤트 핸들러(413)는 컨텍스트 매니저(412)에서 생성한 윈도우와 관련한 이벤트와 웹 어플리케이션 실행 장치에서 확장한 시스템 관련 이벤트를 받아 처리한다. 더하여, 윈도우 내 페이지 전환이나, 윈도우 사이의 전환시에 UI 이펙트를 줄 수 있도록, 미리 정의된 상황과 관련된 이벤트가 발생하면, 이를 UI 엔진(430)으로 전달한다. 이때, 브라우저 엔진 모듈(510)에 관련된 이벤트는 브라우저 엔진 모듈(510)에서 직접 처리하므로, 이벤트 핸들러(413)는 브라우저 엔진 모듈(510)과 관련된 이벤트는 처리하지 않는다. The event handler 413 receives an event related to the window generated by the context manager 412 and a system related event extended by the web application execution device. In addition, when an event related to a predefined situation occurs so as to give a UI effect when switching between pages in a window or between windows, the event is transmitted to the UI engine 430. At this time, since the event related to the browser engine module 510 is handled directly by the browser engine module 510, the event handler 413 does not process the event related to the browser engine module 510.

라이프사이클 모듈(414)는, 웹 어플리케이션의 라이프 사이클을 관리한다. 앞서 설명한 바와 같이, 하나의 웹 어플리케이션은 다수의 페이지로 구성되는데, 웹 어플리케이션의 각각의 페이지들은 방문에 의해 시작되고, 다른 페이지로 전환될 때마다 종료된다. 웹 어플리케이션은 상기 실행 계층부(600)이나 다른 웹 어플리케이션 또는 네이티브 어플리케이션의 실행 요청에 의해 웹 어플리케이션 마다 하나의 윈도우를 생성하여 시작되고, 사용자가 해당 웹 어플리케이션과 관련된 모든 윈도우를 닫거나 자바 스크립트를 통해 창 닫기 요청이 발생하여 모든 윈도우가 닫히면 종료된다. 또한, 웹 어플리케이션의 인스턴스가 생성한 윈도우가 1개뿐인 상태에서 다른 웹 어플리케이션이나 외부 페이지를 로딩한 경우에도 종료하게 된다. 상기 라이프사이클 모듈(414)는 이러한 웹 어플리케이션의 각 페이지에 대한 라이프사이클을 관리한다.The lifecycle module 414 manages the life cycle of the web application. As described above, a web application is composed of a plurality of pages, in which each page of the web application is initiated by a visit and is terminated each time it is switched to another page. The web application is started by creating one window for each web application in response to the execution request of the execution layer 600 or another web application or native application. When the user closes all windows related to the web application, When a close request occurs and all windows are closed, it is terminated. In addition, even if another web application or an external page is loaded while only one window is created by the instance of the web application, the process is terminated. The lifecycle module 414 manages the life cycle for each page of the web application.

다음으로, 웹 어플리케이션 런타임 계층부(400)에서 레지스트리 모듈(420)은 웹 어플리케이션의 설치 정보 및 웹 어플리케이션 실행 장치의 구성 정보를 관리한다. 여기서, 설치 정보 및 구성 정보는 이식 계층부(200)를 통해 단말의 보안 스토리지 영역에 저장된다. 더하여, 웹 어플리케이션의 설치 정보는, 웹 어플리케이션의 설치 시에 등록되거나, 단말 바이너리 패키징 시에 등록될 수 있다.Next, in the web application runtime layer 400, the registry module 420 manages the installation information of the web application and the configuration information of the web application execution device. Here, the installation information and the configuration information are stored in the secure storage area of the terminal through the transport layer unit 200. In addition, the installation information of the web application can be registered at installation of the web application or registered at the terminal binary packaging.

도 3은 상기 레지스트리 모듈(420)에 의하여 관리되는 웹 어플리케이션의 설치 정보 관리 테이블의 구성을 예시한 도면이다. 도 3을 참조하면 상기 웹 어플리케이션의 설치 정보는, 웹 어플리케이션을 식별하는 고유 정보인 웹 어플리케이션 URL과, 상기 URL로 구분되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 경로인 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 접근 권한 정보를 포함하여 이루어진다. 이러한 정보는 웹 어플리케이션을 다운로드하여 설치시에 레지스트리 모듈(420)에 의해 추출되어 단말의 보안 스토리지 영역에 저장된다.3 is a diagram illustrating a configuration of an installation information management table of a web application managed by the registry module 420. As shown in FIG. Referring to FIG. 3, the installation information of the web application includes a web application URL, which is unique information for identifying a web application, a content URL, which is a path of a local storage where a web application actually divided by the URL is stored, A hash code for integrity verification of the web application, and access right information for access control of the web application. This information is extracted by the registry module 420 at the time of downloading the web application and stored in the secure storage area of the terminal.

더하여, 레지스트리 모듈(420)은, 웹 어플리케이션의 설치, 삭제 및 갱신 등과 같은 웹 어플리케이션 컨텐츠 관리, 웹 어플리케이션의 속성 설정, 웹 어플리케이션의 인증 정보 추출 및 제공, 웹 어플리케이션 실행 장치 전체 또는 모듈별 갱신, 모듈간 종속성 관리 등을 포함하는 모듈 관리, 웹 어플리케이션 실행 장치의 속성 설정 기능, 및 플러그 인의 설치 정보에 대한 관리기능을 수행한다. 이러한 레지스트리 모듈(420)은 웹 어플리케이션의 설치, 삭제 및 웹 어플리케이션 실행 장치 업데이트를 위한 API 등을 제공한다.In addition, the registry module 420 manages web application contents such as installation, deletion and update of a web application, setting of the attributes of the web application, extraction and provision of authentication information of the web application, Module management including inter-dependency management, attribute setting function of a web application execution device, and management function of installation information of a plug-in. The registry module 420 provides an API for installing, deleting, and updating web application execution devices.

다음으로, UI 엔진(430)은 브라우저 엔진 모듈(510)에 의해 랜더링되는 영역 이외의 영역에 대한 UI 및 사용자 입력을 처리한다. 구체적으로는, 단말의 전체 화면 중에서, 웹 어플리케이션의 페이지가 출력되는 영역 이외의 나머지 영역에 대한 처리를 담당하는데, 여기에는 실행 상태를 표시하는 상태 바와, 사용자 입력을 위한 소프트 버튼 영역이 포함될 수 있다. 이때, 이동 통신 단말기에서 안테나의 신호 수신 강도, 통화 가능 여부, 배터리 잔량 등을 표시하는 annuniciator 영역은 운영체제(100)의 종류에 따라서 커스터마이징을 허용하지 않는 경우가 있으므로, UI 엔진(430)의 처리 영역에서 제외할 수 있다. 더하여, UI 엔진(430)은 여러 개의 웹 어플리케이션을 동시에 실행되어, 각 웹 어플리케이션 마다 별개의 윈도우를 생성하여 할당할 때, 각 윈도우 사이의 전환을 단말의 윈도우 모듈을 통해 수행한다. 즉, UI 엔진(430)은 컨텍스트 매니저(412)와 이식 계층부(200)에서 제공하는 UI 백엔드 모듈간의 유기적인 동작을 통해 UX(User eXperience) 관련 기능을 처리한다. 더하여, UI 엔진(430)은 웹 어플리케이션의 실행 중에 화면과 화면 사이를 전환할 때 다이내믹한 이펙트를 제공한다. 이러한 화면 전환 효과는 웹 표준 기술(예를 들어, HTML, CSS, JavaScript)를 이용해서 구현할 수 있다. 더하여, 복잡하고 화려한 화면 전환 효과를 사용자에게 생동감 있게 제공하기 위해, UI 엔진(430)은 네이티브 코드 수준에서 실행되는 화면 전환 효과를 플러그 인 형태로 제공할 수 있다. Next, the UI engine 430 processes UI and user input to an area other than the area rendered by the browser engine module 510. [ Specifically, it handles processing for the remaining area other than the area where the page of the web application is outputted, from among the entire screen of the terminal, and may include a status bar for displaying the execution status and a soft button area for user input . At this time, since the annunicator area for indicating the signal reception strength, the availability of the communication, the battery remaining amount, etc. of the antenna in the mobile communication terminal may not allow customization according to the type of the operating system 100, . In addition, the UI engine 430 executes a plurality of web applications at the same time, and when a separate window is created and allocated for each web application, the switching between the windows is performed through the window module of the terminal. That is, the UI engine 430 processes functions related to the UX (user experience) through the organic operation between the context manager 412 and the UI backend module provided by the transplantation layer 200. In addition, the UI engine 430 provides a dynamic effect when switching between screens and screens during execution of a web application. These transition effects can be implemented using Web standards technologies (eg HTML, CSS, JavaScript). In addition, in order to vividly provide a complex and colorful screen transition effect to the user, the UI engine 430 can provide a screen transition effect executed in the native code level in a plug-in form.

다음으로, 네트워크 셀렉터(440)는, 웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리한다. 이를 위하여, 네트워크 셀렉터(440)는 해당 단말기에서 사용 가능한 네트워크(예를 들어, 모뎀, Wi-Fi, 블루투스 등)에 대한 선택 방법과 우선 순위를 사용자로부터 입력 받아 설정한다. 여기서, 선택 방법은, 자동, 수동, 반자동의 3가지 옵션을 제공할 수 있으며, 자동은 설정된 우선순위에 따라서 가능한 네트워크에 접속을 시도하는 것이며, 수동은 사용자가 선택한 네트워크에 대해서만 접속을 시도하는 것이고, 반 자동은 네트워크 전환이 요구될 때마다 팝업을 띄워 사용자가 선택하도록 하는 것이다.Next, the network selector 440 sets and manages a network to be used in the web application execution apparatus. For this purpose, the network selector 440 receives a selection method and priority for a network (e.g., modem, Wi-Fi, Bluetooth, etc.) Here, the selection method can provide three options of automatic, manual, and semi-automatic, and automatic attempts to connect to a possible network according to the set priority, and manual attempts to access only the network selected by the user , Semi-Automatic will pop up a pop-up every time a network switch is required and let the user select it.

다이내믹 동기화 모듈(450)는, 해당 단말기가 온라인 상태인지, 오프라인 상태 인지에 상관없이 끊김 없는 웹 어플리케이션의 실행을 보장하기 위한 수단이다. 더 구체적으로, 다이내믹 동기화 모듈(450)는 외부 데이터에 접근하는 웹 어플리케이션을 실행 중에, 네트워크 연결이 끊기는 경우, 캐싱 메카니즘(cache mechanism)을 통해 동작하도록 하며, 네트워크에 연결되었을 때, 로컬 스토리지에 저장되었던 데이터와 외부 데이터에 대한 동기화를 사용자가 인식하지 못하는 사이에 백그라운드로 자동 수행한다.The dynamic synchronization module 450 is a means for ensuring execution of a seamless web application regardless of whether the terminal is on-line or off-line. More specifically, the dynamic synchronization module 450 allows a web application that accesses external data to run through a cache mechanism when the network connection is disconnected, and when connected to the network, And automatically synchronizes the data with the external data in the background while the user does not recognize it.

다음으로, 브라우저 엔진 계층부(500)에 대해서 설명한다.Next, the browser engine layer unit 500 will be described.

브라우저 엔진 계층부(500)은, 웹 어플리케이션의 각 페이지에 대한 파싱/랜더링 및 자바스크립트 인터프리팅(JavaScript Interpreting)을 실행하는 계층으로서, 브라우저 엔진 모듈(510)과, 플러그 인 모듈(520)와, 하나 이상의 플러그 인(530)을 포함한다. 이 중에서, 브라우저 엔진 모듈(510)은, HTML, CSS, JavaScript와 같은 웹 표준 언어로 작성된 웹 어플리케이션을 해석하여 실행시킨다. 브라우저 엔진 모듈(510)은, 웹 표준 언어를 처리하는 웹코어(511)와, 스크립트 언어를 처리하기 위한 스크립트코어(ScriptCore)(512)로 이루어진다. 이와 같이 웹코어(511)와, 스크립트코어(512)를 각각 모듈로 구성함으로써, 모듈별 업데이트 및 교체가 용이해 진다. 상기 스크립트코어(512)는, 해킹 등을 방지하기 위하여, 웹 어플리케이션 간에 상호 참조를 금지하도록 구현되는 것이 바람직하다. 이러한 브라우저 엔진 모듈(510)은, 오픈 소스 기반의 브라우저 엔진인 Webkit로 구현될 수 있다. 이 경우, PC 환경과 달리 프로세서의 처리능력과 네트워크 대역폭에 제한이 있는 단말기의 환경에 맞도록 Webkit의 코드를 최적화하는 것이 바람직하다. The browser engine layer unit 500 is a layer for executing parsing / rendering and JavaScript interpreting for each page of the web application and includes a browser engine module 510, a plug-in module 520, , And one or more plug-ins (530). Among them, the browser engine module 510 interprets and executes a web application written in a web standard language such as HTML, CSS, and JavaScript. The browser engine module 510 includes a web core 511 for processing a web standard language and a script core (ScriptCore) 512 for processing a script language. As described above, by configuring the web core 511 and the script core 512 as modules, updating and replacement for each module becomes easy. The script core 512 is preferably configured to prohibit cross references between web applications in order to prevent hacking and the like. Such a browser engine module 510 can be implemented with Webkit, an open source-based browser engine. In this case, it is desirable to optimize the Webkit code according to the environment of the terminal, which is different from the PC environment and has a limitation on the processing capability of the processor and the network bandwidth.

더하여 브라우저 엔진 모듈(510)은, 웹 어플리케이션을 실행하는 중에, 단말 자원을 이용하는 경우, 이식 계층부(200)를 통해 운영체제(100) 및 단말 자원에 접근한다. 더 구체적으로, 브라우저 엔진 모듈(510)은, 프로토콜 처리기, XML 처리기, 윈도우(Window) 처리기, 폰트(Font) 처리기, 이미지 디코더(Image Decoder) 처리기, 국제화(Internationalization) 처리기 및 시스템(System) 처리기를 포함한다. 프로토콜 처리기는 HTTP, HTTPS 프로토콜 기능을 제공하며, HTTP 기능 동작을 위해 필요한 업로드(upload), 프록시들(proxies), 쿠키(cookie) 등에 대한 관리 기능을 제공한다. XML 처리기는 XML 파서 기능 및 XSLT XML 변환 기능을 제공한다. 윈도우 처리기는 브라우저 엔진 모듈(510)이 사용할 윈도우 시스템을 제공하며, 웹코어(511)가 사용할 버튼, 리스트 박스, 콤보 박스, 텍스트 에디터 등의 UI 위젯(Widget)을 제공한다. 폰트 처리기는 웹코어(511)가 사용할 폰트 시스템을 제공한다. 이미지 디코더 처리기는 웹코어(511)가 사용할 이미지 디코더 기능을 제공한다. 국제화 처리기는 다국어 처리를 위해 필요한 문자열 변환 기능을 제공한다. 시스템 처리기는 타이머 등의 시스템 기능을 제공한다. 그리고, 브라우저 엔진 모듈(510)은 프로토콜 처리기, XML 처리기, 윈도우 처리기, 폰트 처리기, 이미지 디코더 처리기, 국제화 처리기 및 시스템 처리기 등이 그 기능을 수행하기 위하여 필요한 기본적인 기능은 이식 계층부(200)를 통해 운영체제(100)에서 얻어온다.In addition, the browser engine module 510 accesses the operating system 100 and the terminal resources through the porting layer 200 when the terminal resource is used while executing the web application. More specifically, the browser engine module 510 may include 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 an XML parser function and an XSLT XML transformation function. The window processor provides a window system to be used by the browser engine module 510 and provides a UI widget such as a button, a list box, a combo box, and a text editor to be used by the web core 511. The font processor provides a font system for use by the web core 511. The image decoder processor provides an image decoder function to be used by the web core 511. The internationalization processor provides the string conversion function necessary for multilingual processing. The system handler provides system functions such as a timer. In addition, the browser engine module 510 performs basic functions necessary for the functions of the protocol processor, the XML processor, the window processor, the font processor, the image decoder processor, the internationalization processor, and the system processor, And is obtained from the operating system 100.

또한, 웹 어플리케이션은 웹 표준 기능 이외에 주소록이나 단말 어플리케이션과 같은 단말 자원을 이용할 수 있어야 한다. 이를 위하여, 상기 브라우저 엔진 계층부(500)는, 플러그 인 모듈(520) 및 하나 이상의 플러그 인(530)을 더 포함하며, 이를 통해 단말 의존적인 기능을 호출한다. 이에 따르면, 브라우저 엔진 모듈(510)을 구현할 경우, 단말 의존적 기능의 처리는 상기 플러그 인 모듈(520) 및 하나 이상의 플러그 인(530)을 통해 이루어지므로, 브라우저 엔진 모듈(510)의 구현 시, 최신의 브라우저 엔진을 큰 수정 없이 빠르게 웹 어플리케이션 실행 장치에 적용할 수 있다. 또한, 향후 제공 가능한 새로운 기능을 플러그 인 형태로 추가할 수 있으므로, 기능 확장이 더 쉬워진다.In addition, web applications should be able to use terminal resources such as address book or terminal applications in addition to web standard functions. To this end, the browser engine layer 500 further includes a plug-in module 520 and one or more plug-ins 530 to invoke terminal-dependent functions. Accordingly, when implementing the browser engine module 510, processing of the terminal dependent functions is performed through the plug-in module 520 and the one or more plug-ins 530, so that in the implementation of the browser engine module 510, Can be applied to a web application execution device without a large modification. In addition, future enhancements can be made easier by adding new functions that can be provided in the future as plug-ins.

플러그 인 모듈(520)는 복수의 플러그 인(530)의 다운로드, 및 설치, 설치된 플러그 인의 목록 관리, 업데이트, 웹 어플리케이션의 플러그 인 호출 요청에 대한 응답을 수행한다. 여기서, 신규 플러그 인의 다운로드 요청, 업데이트 요청은 실행 계층부(600)에 포함된 업데이터(612)에 의해 발생하고, 해당 요청이 웹 어플리케이션 런타임 계층부(400)를 통해 플러그 인 모듈(520)로 전달된다. 다운로드 요청을 전달받은 플러그 인 모듈(520)는 OMA 다운로드 표준에 따라서, 플러그 인 패키지를 다운받고, 플러그 인의 설치 정보는 레지스트리 모듈(420)을 통해 단말기의 보안 저장 영역에 저장한다. 이러한 플러그 인 모듈(520)는 브라우저가 플러그 인에 제공해야 하는 브라우저측 API와, 플러그 인이 브라우저에 제공해야 하는 플러그측 API를 포함하며, 복수의 플러그 인(530)은 브라우저측 API를 호출하여 작업을 수행하고, 브라우저 엔진 모듈(510)은 플러그 인측 API를 호출하여 작업을 수행한다.The plug-in module 520 downloads and installs a plurality of plug-ins 530, manages the list of installed plug-ins, updates, and responds to plug-in call requests of web applications. Here, the download request and the update request of the new plug-in are generated by the updater 612 included in the execution layer 600, and the request is transmitted to the plug-in module 520 through the web application runtime layer 400 do. The plug-in module 520 receiving the download request downloads the plug-in package according to the OMA download standard and stores the plug-in installation information in the secure storage area of the terminal through the registry module 420. The plug-in module 520 includes a browser-side API that the browser must provide to the plug-in and a plug-in API that the plug-in must provide to the browser, and the plurality of plug-ins 530 call the browser- And the browser engine module 510 calls the plug-in API to perform the operation.

하나 이상의 플러그 인(530)은, 웹 어플리케이션에서 요구하는 웹 표준 이외의 단말의 자원 및 운영체제 기능을 호출하여 그에 대한 응답을 브라우저 엔진 모듈(510)로 전달한다. 하나 이상의 플러그 인(530)은 웹 어플리케이션의 단말 자원과 관련된 기능 호출을 이식 계층부(200)의 리소스 모듈에 전달하는 리소스 플러그 인과, 웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부(200)의 OS API 모듈에 전달하고, 웹 어플리케이션 런타임 계층부(400)의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인과, 웹 어플리케이션과 단말에 설치된 네이티브 어플리케이션 사이의 연동을 위한 기능에 대한 호출과 응답을 처리하는 협업 플러그 인과, 웹 어플리케이션의 동기화와 관련된 기능의 호출 및 응답을 처리하는 동기화 플러그 인 중에서 하나 이상을 포함할 수 있으며, 이외에도 필요에 따라서 다른 여러 가지 기능에 대한 플러그 인을 추가할 수 있다.The one or more plug-ins 530 call resources and operating system functions of the terminals other than the web standard required by the web application and transmit a response thereto to the browser engine module 510. One or more plug-ins 530 may include a resource plug-in for transferring a function call related to the terminal resource of the web application to the resource module of the transplantable layer 200, and a terminal OS API calling function of the web application to the transplantation layer 200 OS API module and provides a system API plug-in that provides an access interface for functions of the web application runtime layer 400, and a call and response function for a function for interworking between a web application and a native application installed in the terminal And a synchronization plug-in for handling calls and responses of functions related to synchronization of the web application. In addition, plug-ins for various other functions can be added as needed.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 상기 플러그 인 모듈(520) 및 하나 이상의 플러그 인(530)을 통해서 접근할 수 있는 단말 자원은, 예를 들어, 사진, 주소록, 전화, SMS 기능, 통화 로그 조회 등에 관한 메소드와 프로퍼티를 포함할 수 있다.In the web application execution apparatus according to the present invention, the terminal resources that can be accessed through the plug-in module 520 and the one or more plug-ins 530 include, for example, a photograph, an address book, You can include methods and properties related to log retrieval.

다음으로, 실행 계층부(600)에 대하여 설명한다.Next, the execution layer 600 will be described.

실행 계층부(600)는, 브라우저 엔진 컨테이너 코어의 엔트리 포인트 역할을 하며, 단일 인스턴스 형태로 동작한다. 이러한 실행 계층부(600)는, 네이티브 OS의 실행 파일 형태로 구현되거나, DLL로 구현될 수 있다. 이때, 실행 계층부(600)은 이식성을 높이기 위하여, 네이티브 OS 어플리케이션이라도 최대한 이식 계층부(200)을 이용하여 운영체제(100)에 접근하도록 한다. 이에 따르면, 어떠한 운영체제에서도 소스 레벨의 이식성을 가질 수 있게 된다. The execution layer 600 serves as an entry point of the browser engine container core and operates in the form of a single instance. The execution layer 600 may be implemented as an executable file of a native OS or as a DLL. At this time, in order to increase the portability, the execution layer 600 accesses the operating system 100 using the porting layer 200 as much as possible even in a native OS application. According to this, it is possible to have source level portability in any operating system.

실행 계층부(600)는, 상기 이식 계층부(200)와 보안 계층부(300)와 웹 어플리케이션 런타임 계층부(400) 및 브라우저 엔진 계층부(500)를 포함하는 브라우저 엔진 컨테이너 코어를 로딩하여 실행시키고, 사용자의 요청에 따른 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 계층부(400) 또는 브라우저 엔진 계층부(500)로 전달하고, SMS 푸시 또는 셀프 체크에 의해 웹 어플리케이션 실행 장치의 모듈별 업데이트를 확인하여 관련 다운로드 요청을 해당 모듈로 전달한다. 특히, 상기 브라우저 엔진 계층부(500)에 구비되는 플러그 인(530)에 대한 업데이트를 체크하여, 다운로드 요청을 플러그 인 모듈(520)로 전달한다. 이러한 실행 계층부(600)는, 컨테이너 에이전트(610)과, 더미 실행(Dummy execution) 모듈(620)과, 대기모드 에이전트(Idle Agent)(630)를 포함한다.The execution layer unit 600 loads and executes a browser engine container core including the above-described porting layer unit 200, the security layer unit 300, the web application runtime layer unit 400 and the browser engine layer unit 500 Sends a web application execution command according to a user's request to the web application runtime layer 400 or the browser engine layer 500 and confirms module-specific update of the web application execution device by SMS push or self check Pass the relevant download request to the appropriate module. In particular, an update to the plug-in 530 included in the browser engine layer unit 500 is checked, and the download request is transmitted to the plug-in module 520. The execution layer 600 includes a container agent 610, a dummy execution module 620, and a idle agent 630.

컨테이너 에이전트(610)은, 단말의 네이티브 어플리케이션 형태로 구현되며, 단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 명령을 더미 실행 모듈(620)을 통해 웹 어플리케이션 런타임 계층부(400)로 전달한다. 더 구체적으로는, 웹 어플리케이션 실행 장치가 실행중인 상태에서, 웹 어플리케이션의 실행이 요청되면, 해당 웹 어플리케이션의 실행 명령을 바로 웹 어플리케이션 런타임 모듈(410)의 커맨드 핸들러(411)로 전달하고, 웹 어플리케이션 실행 장치가 실행 중이 아닌 경우에는, 브라우저 엔진 컨테이너 코어를 로딩하여 실행시킨 후, 상기 웹 어플리케이션의 실행 명령을 커맨드 핸들러(411)로 전달한다. 이를 위하여, 웹 어플리케이션 런처(Launcher)(611)를 포함한다. 또한, 컨테이너 에이전트(610)은, SMS 푸시 또는 셀프 체크(self check)를 통한 웹 어플리케이션 실행 장치의 모듈별 업데이트를 수행한다. 이를 위해 컨테이너 에이전트(610)은, 업데이터(612)를 포함한다. 업데이터(612)는, 웹 어플리케이션 실행 장치 상에 설치되어 있는 플러그 인(530)의 업데이트와 새로 확장된 플러그 인의 다운로드 및 설치/삭제를 관리하고, 보안 계층부(300)을 위한 접근 제어 규칙에 대한 업데이트 여부를 관련 서버(예를 들어, 정책 서버)에 확인하고, 필요 시 정책 모듈(320)로 다운로드를 요청한다. 이러한 컨테이너 에이전트(610)은, 데몬(Daemon) 형태가 아니라 해당 기능을 수행하고 즉시 종료하는 형태로 구현되는 것이 바람직한 것으로서, 긴 시간 구동되지 않고, 웹 어플리케이션의 구동 요청 시에 잠깐 실행되어, 더미 실행 모듈(620)을 구동시키고, 바로 종료한다.The container agent 610 is implemented as a native application of the terminal and transmits a command for executing the web application through the shortcut menu or the native menu of the terminal to the web application runtime layer 400 through the dummy execution module 620 . More specifically, when the execution of the web application is requested while the web application execution apparatus is running, the execution command of the web application is immediately transmitted to the command handler 411 of the web application runtime module 410, If the execution device is not running, the browser engine container core is loaded and executed, and then the execution command of the web application is transmitted to the command handler 411. For this, a web application Launcher 611 is included. In addition, the container agent 610 performs module-specific update of the web application execution device through SMS push or self check. To this end, the container agent 610 includes a updater 612. The updater 612 manages the update of the plug-in 530 installed on the web application execution device and the download and installation / deletion of the newly extended plug-in, and updates the access control rule for the access control rule for the security layer 300 (For example, a policy server), and requests download to the policy module 320 when necessary. It is preferable that the container agent 610 is implemented not in the form of a daemon but in a form in which the corresponding function is performed and terminated immediately. The container agent 610 is not driven for a long time, Module 620 and immediately terminates.

더미 실행 모듈(620)은 컨테이너 에이전트(610)에 의해 구동되어, 네이티브 OS에서 이식 계층부(200), 보안 계층부(300), 웹 어플리케이션 런타임 계층부(400), 및 브라우저 엔진 계층부(500)을 포함하는 브라우저 엔진 컨테이너 코어를 로딩하여 실행하는 수단으로서, 더 구체적으로는, 상기 브라우저 엔진 컨테이너 코어를 로딩하여 웹 어플리케이션의 실행 명령을 전달하는 기능만을 수행한다.The dummy execution module 620 is driven by the container agent 610 and is used by the portability layer unit 200, the security layer unit 300, the web application runtime layer unit 400, and the browser engine layer unit 500 ), And more specifically, it loads only the browser engine container core and transmits the execution command of the web application.

대기모드 에이전트(630)은, 웹 어플리케이션이 단말의 대기 화면에서 동작할 수 있도록 지원한다. 대기모드 에이전트(630)은, 네이티브 OS의 특성에 맞춰 해당 규약에 따라 구현되며, IDLE Manager와 같은 별도의 실행 파일이 플러그 인이나 위젯 같은 콤포넌트를 로딩하여 실행할 수 있다. 더 구체적으로, 대기모드 에이전트(630)은 네이티브 대기화면(native idle screen) 관리자에 의해 로딩되어, 대기화면에서 특정 웹 어플리케이션의 실행 요청이 있으면, 해당 요청을 웹 어플리케이션 런타임 계층부(400)로 전달한다.The standby mode agent 630 supports the web application to operate on the idle screen of the terminal. The standby mode agent 630 is implemented according to the specification of the native OS, and a separate executable file such as IDLE Manager can be loaded by executing a component such as a plug-in or a widget. More specifically, the standby mode agent 630 is loaded by a native idle screen manager, and when a request for executing a specific web application is received from the idle screen, the standby mode agent 630 transmits the request to the web application runtime layer 400 do.

다음으로, 하나 이상의 시스템 웹 어플리케이션(700)은, 웹 어플리케이션 실행 장치의 설치 시에 함께 제공되는 웹 어플리케이션으로서, 사용자가 설치하는 다른 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저(710)와, 사용자가 선택한 웹 어플리케이션의 다운로드를 관리하는 웹 어플리케이션 다운로더(720) 중 하나 이상을 포함할 수 있다.Next, the one or more system web applications 700 is a web application provided together with the installation of the web application execution apparatus, and includes a web application manager 710 for managing other web applications installed by the user, And a web application downloader 720 that manages downloading of applications.

웹 어플리케이션 매니저(710)는, 웹 어플리케이션 런타임 계층부(400) 위에서 동작하여, 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)에 접근하여 단말기에 설치된 웹 어플리케이션들에 대한 정보를 가져와 UI를 통해 사용자에게 제공하며, 사용자의 선택에 의해 특정 웹 어플리케이션의 구동이 요청되면, 이를 웹 어플리케이션 런타임 계층부(400)으로 전달한다.The web application manager 710 operates on the web application runtime layer 400 and accesses the registry module 420 of the web application runtime layer 400 to obtain information on web applications installed on the terminal, And transmits the request to the web application runtime layer 400 if the user wants to start a specific web application.

웹 어플리케이션 다운로더(720)는, 외부의 서버에 접속하여, 웹 어플리케이션을 다운로드하기 위한 웹 어플리케이션이다.The web application downloader 720 is a web application for connecting to an external server and downloading the web application.

이상과 같이 구현된 웹 어플리케이션 실행 장치는, 운영체제(100)를 탑재한 단말기에 설치되며, 상기 운영체제(100) 위에서 동작하여, 운영체제의 종류에 관계없이, 웹 어플리케이션에 대한 동일한 실행 환경을 제공한다.The web application execution apparatus thus constructed is installed in a terminal equipped with the operating system 100 and operates on the operating system 100 to provide the same execution environment for the web application regardless of the type of the operating system.

본 발명에 의한 웹 어플리케이션 실행 장치는, 다수 웹 어플리케이션의 동시 실행과 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원한다. 즉, 한 시스템 내에서 복수 개의 컨테이너를 실행할 수 있으며, 컨테이너 자체는 단일 인스턴스로 동작한다.The web application execution device according to the present invention supports simultaneous execution of multiple web applications and multi-instance for a single web application. That is, a plurality of containers can be executed in one system, and the container itself operates as a single instance.

본 발명에 의한 웹 어플리케이션 실행 장치는 기본적으로 다수의 웹 어플리케이션의 동시 실행을 지원하는 멀티-태스킹 컨테이너로서, 웹 어플리케이션의 성격이나 종류 등에 따라 또는 특정 원칙에 따라서 웹 어플리케이션을 그룹핑하고, 그룹별로 웹 어플리케이션 실행 장치를 구동시킬 수 있다. 예를 들어, 일반 웹 어플리케이션과, 대기 화면에서 위젯 서비스를 수행하는 웹 어플리케이션을 각각 그룹핑하여, 실행되도록 할 수 있다. 이때, 각 컨테이너 자체는 단일 인스턴스로 구동되며, 이 안에서 다수의 웹 어플리케이션들이 동시 구동된다. 이때, 웹 어플리케이션 실행 장치의 모든 모듈은 웹 어플리케이션들을 멀티-태스킹으로 구동하기 위하여, 쓰레드 세이프(Thread Safe)하도록 구현된다.The web application execution apparatus according to the present invention is basically a multi-tasking container that supports simultaneous execution of a plurality of web applications. The multi-tasking container is a multi-tasking container for grouping web applications according to the nature or kind of the web application, The execution apparatus can be driven. For example, the general web application and the web application that performs the widget service on the idle screen can be grouped and executed, respectively. At this time, each container itself is operated as a single instance, in which a plurality of web applications are simultaneously operated. At this time, all the modules of the web application execution apparatus are implemented to be thread safe in order to operate the web applications by multi-tasking.

이와 같이, 컨테이너별 단일-인스턴스로 구현함에 의하여, 멀티 인스턴스를 지원하지 않는 운영체제에서도 본 발명의 웹 어플리케이션 실행 장치는 네이티브 시스템의 특성에 구애 받지 않고 이식할 수 있다.By implementing the single-instance for each container in this manner, the web application execution apparatus of the present invention can be ported regardless of the characteristics of the native system even in an operating system that does not support multi-instance.

본 발명의 웹 어플리케이션 실행 장치는 웹 표준을 준수하여, 웹 어플리케이션이 실행될 때마다 네이티브 시스템의 윈도우를 생성하고, 랜더러 인스턴스를 생성하여 웹 어플리케이션의 디폴트 또는 요청 페이지를 실행할 수 있도록 한다. 또한, 하나의 웹 어플리케이션이 여러 윈도우를 생성하는 것이 가능하며, 이때 윈도우마다 랜더러 인스턴스가 생성되어 할당된다. 또한, 여러 웹 어플리케이션의 동시 실행이 가능하며, 하나의 웹 어플리케이션에 대해서도 멀티 인스턴스가 가능하다. 웹 어플리케이션의 모든 인스턴스들은 상기 컨텍스트 매니저(412)가 관리하며, 유저 인터액션 또는 시스템에 의해 발생하는 모든 이벤트는 이벤트 핸들러(413)에 의해 적정 웹 어플리케이션의 인스턴스로 전달된다. The web application execution apparatus of the present invention conforms to a web standard, and creates a window of a native system each time a web application is executed, and creates a renderer instance so that a default or request page of the web application can be executed. Also, it is possible for one web application to create several windows, where renderer instances are created and allocated per window. In addition, multiple web applications can be run simultaneously, and multiple instances of a single web application are possible. All instances of the web application are managed by the context manager 412 and all events generated by the user interaction or system are delivered to the appropriate web application instance by the event handler 413.

본 발명에 의한 웹 어플리케이션 실행 장치에서, 안전하게 웹 어플리케이션을 설치하여 실행하기 위해서는, 웹 어플리케이션과 단말 자원 사이의 보안과, 웹 어플리케이션 사이의 보안이 해결되어야 한다.In the web application execution device according to the present invention, in order to install and execute the web application securely, security between the web application and the terminal resource and security between the web application should be solved.

웹 어플리케이션 사이의 보안은, 웹 어플리케이션의 상호 참조를 금지시키도록 함에 의해 구현할 수 있다. 즉, 더미 실행 모듈(620)에 의해 로딩된 단일 프로세서상에서 다수의 웹 어플리케이션이 구동될 때, 각 웹 어플리케이션은 별도 쓰레드 상에 로딩된 브라우저 엔진 계층부(500) 상에서 구동된다. 이때, 각 웹 어플리케이션은 하나의 윈도우를 소유하게 되며, 웹 표준에 의하면, 해당 윈도우의 이름을 알 경우, 제한 없이 다른 웹 어플리케이션이 또 다른 웹 어플리케이션의 내용을 참조할 수 있게 되는데, 본 발명에서는, 서로 다른 웹 어플리케이션이 서로의 웹 문서 객체에 접근하는 것을 제한한다. 이는 상기 브라우전 엔진 모듈(510)의 자바스크립트 코어(512)를 수정함에 의해 구현될 수 있다. Security between web applications can be implemented by forbidding cross-references to web applications. That is, when a plurality of web applications are run on a single processor loaded by the dummy execution module 620, each web application is run on the browser engine layer portion 500 loaded on a separate thread. At this time, each web application owns one window. According to the web standard, when knowing the name of the corresponding window, another web application can refer to another web application without limitation. In the present invention, Restricts different web applications from accessing each other's web document objects. This can be implemented by modifying the JavaScript core 512 of the browser engine module 510.

그리고, 웹 어플리케이션과 단말 자원 사이의 보안은 상기 보안 계층부(300)를 통해 구현된다.The security between the web application and the terminal resources is implemented through the security layer unit 300.

이하 본 발명에 의한 웹 어플리케이션 관리 방법에 대하여 설명한다.Hereinafter, a web application management method according to the present invention will be described.

도 4는 본 발명의 웹 어플리케이션 실행 장치에 의한 웹 어플리케이션 관리 방법을 나타낸 흐름도이다.4 is a flowchart illustrating a web application management method by the web application execution apparatus of the present invention.

도 4를 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 특정 웹 어플리케이션의 실행 요청을 입력받는다(S401). 웹 어플리케이션의 실행 요청은, 웹 어플리케이션을 식별하기 위해 설정된 웹 어플리케이션용 URL을 입력받는 형태로 이루어진다. 여기서, 웹 어플리케이션용 URL은 앞서 설명한 바와 같이, 로컬 스토리지에 접근하여 웹 어플리케이션을 실행시키는 것으로 정의된 프로토콜 스키머(httpa://)와, 웹 어플리케이션 파일명을 포함하며, 더하여, 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 컨텐츠 제공자의 도메인명을 더 포함할 수 있다. 더하여, 상기 입력된 웹 어플리케이션 URL은 웹 어플리케이션에서 초기 실행하고자 하는 파일 명을 더 포함할 수 있다. 이는 사용자에 의해 지정될 수 있다.Referring to FIG. 4, the web application execution apparatus according to the present invention receives an execution request of a specific web application (S401). The execution request of the web application is configured to receive a URL for the web application set to identify the web application. Here, as described above, the URL for the web application includes a protocol skimmer (http: //) defined as accessing the local storage to execute the web application, a name of the web application file, Or a domain name of a content provider providing a web application. In addition, the input web application URL may further include a file name to be initially executed in the web application. This can be specified by the user.

상기와 같이, 특정 웹 어플리케이션의 URL이 입력되면, 웹 어플리케이션 실행 장치는, 단말의 로컬 스토리지에 상기 URL로 식별되는 웹 어플리케이션이 존재하는 지를 확인한다(S402). 이는 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)을 통해서, 도 3과 같이 관리되는 기설치된 웹 어플리케이션의 설치 정보를 검색함으로써 이루어질 수 있다. 즉, 레지스트리 모듈(420)을 통해 상기 도 3과 같은 웹 어플리케이션의 설치 정보 관리 테이블을 검색하여, 상기 입력된 URL로 식별되는 웹 어플리케이션이 설치되어 있는 지를 확인하는 것이다.As described above, when a URL of a specific web application is input, the web application execution apparatus confirms whether a web application identified by the URL exists in the local storage of the terminal (S402). This can be done by retrieving the installation information of the installed web application managed as shown in FIG. 3 through the registry module 420 of the web application runtime layer 400. That is, the install module 420 searches the install information management table of the web application shown in FIG. 3 through the registry module 420 to check whether the web application identified by the input URL is installed.

확인 결과, 입력된 URL로 식별되는 웹 어플리케이션이 로컬 스토리지에 존재하면, 웹 어플리케이션 실행 장치는, 해당 웹 어플리케이션을 실행한다(S408). 더 구체적으로 설명하면, 웹 어플리케이션 실행 장치는, 레지스트리 모듈(420)을 통해 웹 어플리케이션의 설치 정보 관리 테이블로부터, 해당 웹 어플리케이션이 실제 위치하는 로컬 스토리지내 파일 경로(컨텐츠 URL)를 확인하고, 상기 확인된 파일 경로를 통해 웹 어플리케이션의 컨텐츠를 가져와, 브라우저 엔진 계층부(500)를 통해 웹 어플리케이션의 요청 페이지를 실행한다. 여기서, 입력된 URL이 웹 어플리케이션의 패키지 파일 명만을 기재하고 있는 경우에는, 미리 설정되는 디폴트 페이지를 처음으로 실행하고, 입력된 URL이 웹 어플리케이션의 패키지 내에 특정 파일명을 포함하고 있는 경우에는, 상기 파일에 해당하는 요청 페이지를 처음으로 실행한다. 단계(S408)에서 이루어지는 웹 어플리케이션의 실행 방법에 대해서는 추후 더 구체적으로 설명한다.If it is determined that the web application identified by the input URL exists in the local storage, the web application execution apparatus executes the web application (S408). More specifically, the web application execution device checks the file path (content URL) in the local storage where the corresponding web application is actually located from the installation information management table of the web application through the registry module 420, The browser engine layer unit 500 executes the request page of the web application. Here, if the input URL describes only the package file name of the web application, the default page set in advance is executed for the first time. If the input URL contains a specific file name in the package of the web application, The request page corresponding to the first time is executed. The execution method of the web application executed in step S408 will be described in more detail later.

반대로, 확인 결과, 입력된 URL로 식별되는 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 웹 어플리케이션 실행 장치는, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 문의한다(S403).On the other hand, if it is determined that the web application identified by the input URL does not exist in the local storage, the web application execution apparatus outputs an error message indicating that the web application requested to be executed does not exist to the user, (S403).

웹 어플리케이션 실행 장치는, 사용자가 다운로드 받지 않는다고 선택하면(S404), 그대로 종료하고, 사용자가 다운로드 받는다고 선택하면(S404), 입력된 웹 어플리케이션 URL을 해당 웹 어플리케이션을 다운로드 받을 수 있는 네트워크 URL로 변환한다. 예를 들어, 웹 어플리케이션 URL은 제작사의 도메인 명과, 웹어플리케이션의 파일명이 포함되어 있으므로, 단지 프로토콜 스키마 httpa://를 http:// 또는 https://로 변환하면 된다.When the user selects not to download (S404), the web application execution device selects the download (S404), and the input web application URL is converted into a network URL for downloading the corresponding web application do. For example, the web application URL contains the name of the publisher's domain and the filename of the web application, so you only need to convert the protocol schema http: // to http: // or https: //.

그리고 웹 어플리케이션 실행 장치는, 변환된 네트워크 URL을 이용하여, 네트워크상의 해당 웹 서버에 접속한다(S406). 여기서, 웹 서버는, 상기 URL에 포함된 도메인 명으로 식별되는 웹 서버로서, 해당 웹 어플리케이션을 제작한 제작사의 웹 서버 또는 해당 웹 어플리케이션을 제공하는 컨텐츠 제공자의 웹 서버가 될 수 있다.Then, the web application execution apparatus accesses the corresponding web server on the network using the converted network URL (S406). Here, the web server may be a web server of a manufacturer that produced the web application, or a web server of a content provider that provides the web application, identified by a domain name included in the URL.

웹 어플리케이션 실행 장치는, 접속한 웹 서버로부터 실행 요청된 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치한다(S407). 여기서, 다운로드 과정은, OMA의 표준 규격에 따라 이루어질 수 있다. 단계(S407)에서, 웹 서버로부터 도 2와 같은 웹 어플리케이션 패키지(100)가 압축 파일 형태로 다운로드 되며, 설치 과정에서, 웹 컨텐츠(11)는 단말의 로컬 스토리지에 저장되고, 구조 정보(12) 중 일부 또는 전체와, 정책 정보(13)는 레지스트리 모듈(420)을 통해 단말의 보안 스토리지에 저장된다. 더하여, 상기 웹 어플리케이션의 설치 정보가 레지스트리 모듈(420)을 통해 보안 스토리지의 웹 어플리케이션 설치 정보 관리 테이블에 등록된다. 여기서 등록되는 설치 정보는, 앞서 도 3에 보인 바와 같이, 웹 어플리케이션의 URL과, 웹 컨텐츠(11)가 저장된 로컬 스토리지의 파일 경로를 나타내는 컨텐츠 URL과, 다운로드된 구조정보(12)에 포함되어 있는 해쉬코드와, 정책 정보(13)가 포함된다.The web application execution device downloads the requested web application from the connected web server and installs it in the local storage of the terminal (S407). Here, the downloading process can be performed according to the OMA standard. In step S407, the web application package 100 shown in FIG. 2 is downloaded as a compressed file from the web server. In the installation process, the web content 11 is stored in the local storage of the terminal, The policy information 13 is stored in the security storage of the terminal through the registry module 420. [ In addition, the installation information of the web application is registered in the web application installation information management table of the secure storage through the registry module 420. As shown in FIG. 3, the installation information registered here includes a URL of the web application, a content URL indicating the file path of the local storage in which the web content 11 is stored, and a URL included in the downloaded structure information 12 A hash code, and policy information 13 are included.

이와 같이, 웹 어플리케이션의 설치가 완료되면, 웹 어플리케이션 실행 장치는, 단계(S408)에서 해당 웹 어플리케이션의 웹 컨텐츠를 가져와, 디폴트 페이지 또는 요청 페이지를 실행한다.In this manner, when the installation of the web application is completed, the web application execution device fetches the web content of the web application in step S408, and executes the default page or the request page.

이어 도 5 내지 도 10을 참조하여, 상술한 웹 어플리케이션의 관리 방법에 있어서, 중요 단계에 대하여 더 구체적으로 설명한다.Next, with reference to FIG. 5 to FIG. 10, the important steps in the management method of the web application will be described in more detail.

도 5는 본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 다운로드 및 설치 과정을 상세하게 나타낸 흐름도이다.FIG. 5 is a flowchart illustrating a detailed process of downloading and installing a web application in the web application management method according to the present invention.

웹 어플리케이션의 업데이트 및 다운로드는, 업데이트 서버로부터의 SMS 푸시 또는 실행 계층부(600)에 구비된 업데이터(612)에 의한 셀프 체크에 의해 이루어질 수 있다. 이 경우, 업데이트 서버(51)로부터 SMS 푸시에 의한 업데이트 요청(S501)을 전달받거나, 셀프 체크에 의해 업데이터(612)가 웹 어플리케이션 다운로더(720)로 다운로드 요청을 전달한다. 또한, 사용자의 요청 또는 앞서 도 2에서 설명한 웹 어플리케이션 관리 방법에 있어서, 실행 요청된 웹 어플리케이션이 로컬 스토리지에 존재하지 않을 경우에, 웹 어플리케이션 실행 장치로부터 상기 웹 어플리케이션 다운로더(720)로 다운로드 요청이 전달될 수도 있다.The updating and downloading of the web application can be performed by pushing SMS from the update server or self-checking by the updater 612 included in the execution layer 600. In this case, an update request (S501) by SMS push is received from the update server 51, or the self-check causes the updater 612 to transmit the download request to the web application downloader 720. 2, if a web application requested to be executed does not exist in the local storage, a download request is transmitted from the web application execution device to the web application downloader 720 .

이와 같이, 웹 어플리케이션 다운로더(720)로 다운로드 요청이 전달되면, 상기 웹 어플리케이션 다운로더(720)는, 다운로드 서버(52)에 접속하여, 특정 웹 어플리케이션이 다운로드를 요청한다(S503). 도 2의 단계(S406)의 경우, 상기 다운로드 서버(52)는, 웹 어플리케이션 URL에 포함된 제작사 또는 컨텐츠 제공자의 도메인 명으로 식별되는 웹 서버가 된다.When the download request is transmitted to the web application downloader 720, the web application downloader 720 accesses the download server 52 and requests a specific web application to download (S503). In the case of step S406 of FIG. 2, the download server 52 becomes a web server identified by the domain name of the manufacturer or content provider included in the web application URL.

다운로드 요청에 의하여, 상기 다운로드 서버(52)는, OMA 규격에 따라서 웹 요청된 웹 어플리케이션의 다운로드를 실시한다(S504). 이때, 다운로드 서버(52)가 웹 어플리케이션 다운로더(720)로 DD(Download Descriptor) 및 도 2와 같은 구조의 웹 어플리케이션 패키지(SMF)를 전달한다(S505).In response to the download request, the download server 52 downloads the web application requested in accordance with the OMA standard (S504). At this time, the download server 52 delivers a download descriptor (DD) to the web application downloader 720 and a web application package (SMF) having the structure shown in FIG. 2 (S505).

상기와 같이, 웹 어플리케이션 패키지를 다운로드 받은 웹 어플리케이션 다운로더(720)는 이후 웹 어플리케이션의 설치 과정을 수행하는데, 이를 위해 먼저 브라우저 엔진 모듈(510)로 레지스트리 메쏘드를 호출한다(S506). 이에, 브라우저 엔진 모듈(510)이 레지스트리 모듈(420)를 호출하기 위하여, 시스템 API 플러그인(531)을 호출한다(S507). 상기 호출에 의해 시스템 API 플러그인(531)이 동작하여, 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)을 호출한다(S508).As described above, the web application downloader 720 that has downloaded the web application package performs the installation process of the web application. To do so, the web application downloader 720 calls the registry method to the browser engine module 510 (S506). Then, the browser engine module 510 calls the system API plug-in 531 to call the registry module 420 (S507). The system API plug-in 531 operates to call the registry module 420 of the web application runtime layer 400 (S508).

이와 같이 호출된 레지스트리 모듈(420)은, 상기 웹 어플리케이션 다운로더(720)가 다운로드 받은 파일에서 설치 정보를 추출하여 보안 스토리지(53)에 저장하고(S509), 웹 컨텐츠는 로컬 스토리지(54)에 저장한다(S510).The registry module 420 thus called extracts the installation information from the downloaded file by the web application downloader 720 and stores it in the secure storage 53 in step S509 and stores the web content in the local storage 54 (S510).

이상의 과정을 통해서 웹 어플리케이션의 설치가 이루어지는데, 이때 무결성 검증을 위한 해쉬코드와 정책 정보를 포함하는 설치 정보들은 보안 스토리지(53)에 분리하여 저장함으로써, 웹 어플리케이션의 관리를 위한 중요 정보에 대한 부적절한 접근을 차단할 수 있다.At this time, the installation information including the hash code and the policy information for the integrity verification is stored separately in the secure storage 53, so that inappropriate information about the important information for managing the web application Access can be blocked.

다음으로, 도 6은 본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 상기 웹 어플리케이션의 실행을 위한 보안 제공 과정을 나타낸 흐름도이다. 이는 도 2에 보인 웹 어플리케이션 관리 방법에 있어서, 단계(S407)에서 웹 어플리케이션의 설치 전이나, 단계(S408)에서 웹 어플리케이션의 실행 전에 적용되어, 설치 또는 실행되는 웹 어플리케이션의 무결성을 체크함으로써, 불건전한 의도를 갖거나 부적절한 웹 어플리케이션이 단말에 설치되거나, 실행되는 것을 방지할 수 있다.Next, FIG. 6 is a flowchart illustrating a security providing process for executing the web application in the web application managing method according to the present invention. In the web application management method shown in Fig. 2, the integrity of the web application to be installed or executed is applied before installation of the web application in step S407 or before execution of the web application in step S408, It is possible to prevent a web application having one intention or an inappropriate web application from being installed or executed in the terminal.

이를 위하여 본 발명에서 사용되는 웹 어플리케이션은 코드 사인을 거친 것으로서, 다운로드시에, 인증서 정보가 함께 다운로드되어, 보안 스토리지(52)에 저장된다.To this end, the web application used in the present invention is code-signed, and at the time of downloading, the certificate information is downloaded together and stored in the secure storage 52.

도 6을 참조하면, 웹 어플리케이션 실행 장치는, 웹 어플리케이션 또는 상기 브라우저 엔진 계층부(500)에 설치되어 이식 계층부(200)에 대한 호출 및 응답을 처리하는 플러그인(530)의 설치 요청이 발생하는 지를 확인한다(S601). 상기 확인 결과, 웹 어플리케이션 및 플러그의 설치 요청이 있으면, 해당 웹 어플리케이션 및 플러그인의 코드 사인을 검증한다(S602). 더 구체적으로 설명하면, 웹 어플리케이션 다운로더(720) 및 플러그인 관리 모듈(520)가 웹 어플리케이션 및 플러그인의 설치를 시작하기 전에, 인증 모듈(310)로 웹 어플리케이션 및 플러그인의 인증을 요청하므로, 이를 통해 인증 모듈(310)이 해당 웹 어플리케이션 및 플러그인의 인증서 및 암호화된 해쉬값을 레지스트리 모듈(420)로부터 제공받아, 해쉬연산을 통해 인증서 검증을 수행하게 된다. 인증서 검증은, 일반적으로 알려져 있는 인증 표준, 예를 들어, X509에 이루어질 수 있으며, 이러한 인증 방법 및 검증 방법은 잘 알려져 있으므로, 여기서 그 상세한 설명은 생략하기로 한다. Referring to FIG. 6, the web application execution apparatus includes a web application or a web application installed in the browser engine layer unit 500, and receives a request for installation of a plug-in 530 for processing a call and a response to the portable layer unit 200 (S601). If it is determined that the web application and the plug are installed, the code signature of the corresponding web application and plug-in is verified (S602). More specifically, before the web application downloader 720 and the plug-in management module 520 start installing the web application and the plug-in, authentication of the web application and plug-in is requested to the authentication module 310, The module 310 receives the certificate of the web application and the plug-in and the encrypted hash value from the registry module 420, and performs the certificate verification through the hash operation. The certificate verification may be performed in a generally known authentication standard, for example, X509, and such authentication method and verification method are well known, and a detailed description thereof will be omitted here.

웹 어플리케이션 실행 장치는, 인증 모듈(310)을 통해 해당 플러그인 및 웹 어플리케이션의 인증서 검증이 성공하면, 웹 어플리케이션 및 플러그인의 설치를 실행한다(S603, S604).If the verification of the plug-in and the web application is successfully performed through the authentication module 310, the web application execution device executes installation of the web application and the plug-in (S603 and S604).

반대로, 해당 플러그인 및 웹 어플리케이션의 인증서에 대한 검증이 성공하지 못한 경우, 상기 웹 어플리케이션 매니저(710) 및 플러그인 관리 모듈(520)는, 해당 웹 어플리케이션 및 플러그인가 검증된 인증서를 포함하고 있지 않다는 오류 메시지를 사용자에게 제공한다(S605).On the other hand, if the verification of the plug-in and the certificate of the web application is unsuccessful, the web application manager 710 and the plug-in management module 520 send an error message indicating that the corresponding web application and the plug- To the user (S605).

그리고, 상기 사용자에게 설치를 계속할 것인지를 확인하여, 사용자가 설치를 선택하면, 단계(S604)를 수행하여, 해당 플러그인 및 웹 어플리케이션을 설치하고, 사용자가 설치 중단을 선택하면, 그대로 종료한다(S606).Then, if the user selects to install, the step S604 is performed to install the corresponding plug-in and the web application, and if the user selects to stop the installation, the process is terminated (S606 ).

더하여, 본 발명에서는, 웹 어플리케이션 및 플러그인의 매 실행 및 로딩 시마다, 해당 웹 어플리케이션 및 플러그인의 코드 사인을 검증한다.In addition, the present invention verifies the code sign of the web application and the plug-in at every execution and loading of the web application and the plug-in.

즉, 웹 어플리케이션 실행 장치는, 웹 어플리케이션 및 플러그인에 대한 실행 요청 또는 로딩 요청을 확인한다(S607).That is, the web application execution device confirms an execution request or a loading request for the web application and the plug-in (S607).

확인 결과, 플러그인 및 웹 어플리케이션의 실행 요청이나 로딩 요청이 있는 경우, 웹 어플리케이션 실행 장치의 인증 모듈(310)이 해당 웹 어플리케이션 및 플러그인의 암호화된 해쉬값 및 인증서를 레지스트리 모듈(420)로부터 가져와 코드 사인을 검증한다(S608). If it is determined that there is an execution request or a loading request of the plug-in and the web application, the authentication module 310 of the web application execution device fetches the encrypted hash value and the certificate of the corresponding web application and the plug-in from the registry module 420, (S608).

코드 사인 검증이 성공하면, 웹 어플리케이션 실행 장치는, 요청된 웹 어플리케이션 및 플러그인의 실행 또는 로딩을 실행하고(S609, S610), 반대로, 검증이 성공하지 못한 경우, 요청된 웹 어플리케이션 및 플러그인이 검증된 인증서를 포함하고 있지 않다는 오류 메시지를 사용자에게 제공한다(S611).If the code signature verification is successful, the web application execution device executes execution or loading of the requested web application and plug-in (S609, S610), and conversely if the verification is not successful, the requested web application and plug- And provides an error message to the user that the certificate is not included (S611).

그리고, 사용자에게 실행 또는 로딩을 계속할 것인지를 확인하여, 사용자가 실행 또는 로딩을 선택하면, 단계(S610)를 수행하여, 해당 플러그인 및 웹 어플리케이션을 실행하거나 로딩하고, 중단을 선택하면, 그대로 종료한다(S612).Then, if the user selects execution or loading, the user performs step S610 to execute or load the corresponding plug-in and web application. If the user selects to interrupt the execution, (S612).

이와 같이, 웹 어플리케이션 및 플러그인에 대한 설치, 실행 또는 로딩 시마다, 코드 사인의 검증 과정을 수행하도록 함으로써, 제3 개발자나 악의적인 해커에 의한 웹 어플리케이션 및 플러그인이 오사용되거나, 검증되지 않은 플러그인 및 웹 어플리케이션이 구동되는 것을 걸러낼 수 있으며, 사용자에게 웹 어플리케이션 실행에 대한 신뢰성을 제공할 수 있다.In this manner, by performing the verification process of the code sign every time the web application and the plug-in are installed, executed or loaded, the web application and the plug-in by the third developer or the malicious hacker are misused, It can filter out the application is running, and can provide the user with reliability in executing the web application.

여기에 더하여, 본 발명에 의한 웹 어플리케이션 실행 장치는, 보안 계층부(300)의 정책 모듈(320)을 통해서, 웹 어플리케이션 실행중, 이식 계층부(200)에 대한 접근 요청시마다, 웹 어플리케이션의 접근 권한을 확인하여, 접근을 허여하거나 거부한다. 이에 따르면, 웹 어플리케이션이 단말의 자원이나 OS 기능을 부적절하게 해킹하거나 접근하는 것을 방지할 수 있다.In addition, the web application execution apparatus according to the present invention can access the web application through the policy module 320 of the security layer unit 300 at the time of requesting access to the transplantation layer unit 200 during execution of the web application. Check permissions, grant or deny access. Accordingly, it is possible to prevent a web application from improperly hacking or accessing resources or OS functions of the terminal.

다음으로, 도 7 내지 도 9는 본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 처리하는 단계의 다양한 실시 예를 나타낸 흐름도이다. 이는 도 4의 단계(S401, S402, S408)에 적용될 수 있다.Next, FIGS. 7 to 9 are flowcharts illustrating various embodiments of a process for processing an execution request of a web application in a web application management method according to the present invention. This can be applied to steps S401, S402, and S408 of FIG.

먼저, 도 7을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치에서, 웹 어플리케이션 실행 요청은, 단축아이콘을 통해 이루어질 수 있다. Referring to FIG. 7, in the web application execution apparatus according to the present invention, a web application execution request can be made through a shortcut icon.

이러한 단축아이콘을 이용한 웹 어플리케이션의 실행 요청이 발생하면(S701), 웹 어플리케이션 실행 장치는, 실행 계층부(600)의 컨테이너 에이전트(610)가 동작하여 웹 어플리케이션 런타임 계층부(400)와 브라우저 엔진 계층부(500)를 포함하는 브라우저 엔진 컨테이너 코어가 실행 중인지를 확인한다(S702).When the execution request of the web application using the shortening icon occurs (S701), the web application execution apparatus operates the container agent 610 of the execution layer 600 to execute the web application runtime layer 400 and the browser engine layer It is confirmed whether the browser engine container core including the unit 500 is running (S702).

확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면(S703), 상기 브라우저 엔진 컨테이너 코어, 즉, 이식 계층부(200)와, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)를 로딩한다(S704).If the browser engine container core is not running (S703), the browser engine container core, that is, the porting layer unit 200, the security layer unit 300, the web application runtime layer unit 400, The engine layer unit 500 is loaded (S704).

상기 단계(S704)에 의해 또는 이전에 브라우저 엔진 컨테이너 코어가 실행되어 있는 상태이면, 웹 어플리케이션 런타임 모듈(410)의 커맨드 핸들러(411)로 웹 어플리케이션 실행 명령을 전달한다(S705). 여기에는 앞서 설명한 바와 같이, 웹 어플리케이션의 식별을 위한 웹 어플리케이션 URL이 함께 전달된다.In step S704, if the browser engine container core is already running, the web application execution command is transmitted to the command handler 411 of the web application runtime module 410 in step S705. This is accompanied by a web application URL for identification of the web application, as described above.

그리고 커맨드 핸들러(411)는 컨텍스트 매니저(412)에게 상기 웹 어플리케이션의 실행 요청을 전달한다(S706).The command handler 411 transfers the execution request of the web application to the context manager 412 (S706).

이에 컨텍스트 매니저(412)가 해당 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스를 생성하여, 디폴트 페이지 또는 요청된 페이지를 실행한다(S707)The context manager 412 creates a window and a renderer instance for the web application, and executes a default page or a requested page (S707)

다음으로, 도 8을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치에서, 웹 어플리케이션 실행 요청은, 웹 어플리케이션 매니저(710)를 통해 이루어질 수 있다(S801). Next, referring to FIG. 8, in the web application execution apparatus according to the present invention, a web application execution request can be made through the web application manager 710 (S801).

웹 어플리케이션 매니저(710)는, 레지스트리 모듈(420)에 저장된 웹 어플리케이션의 설치 정보를 참조하여, 현재 설치된 웹 어플리케이션의 목록을 사용자에게 안내한다. 여기서, 사용자가 특정 웹 어플리케이션의 실행을 요청하면, 웹 어플리케이션 매니저(710)는, 본 발명에 의한 웹 어플리케이션 실행 장치에서 제공하는 실행 API를 호출한다(S802).The web application manager 710 refers to the installation information of the web application stored in the registry module 420 and directs the user to the list of currently installed web applications. Here, if the user requests execution of a specific web application, the web application manager 710 calls the execution API provided by the web application execution apparatus according to the present invention (S802).

이에 브라우저 엔진 모듈(510)이 하나 이상의 플러그 인(530) 중에서 시스템 API 플러그 인(532)을 로딩하여, 실행 API를 호출한다(S803).The browser engine module 510 loads the system API plug-in 532 among the one or more plug-ins 530 and calls the execution API (S803).

상기 시스템 API 플러그 인(532)은 웹 어플리케이션 실행 장치의 코어 기능, 특히, 웹 어플리케이션 런타임 계층부(400)의 기능에 대한 접근 인터페이스를 제공하는 것으로서, 로딩된 시스템 API 플러그 인(532)은 웹 어플리케이션 런타임 계층부(400)의 컨텍스트 매니저(412)로 웹 어플리케이션의 실행 요청을 전달한다(S804).The system API plug-in 532 provides an access interface for the core function of the web application execution device, in particular, the functions of the web application runtime layer 400, The execution request of the web application is transmitted to the context manager 412 of the runtime layer 400 (S804).

이후 상기 컨텍스트 매니저(412)에 의해 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스가 생성되고, 디폴트 페이지 또는 요청 페이지가 실행된다(S805).Then, the context manager 412 creates a window and a renderer instance for the web application, and executes a default page or a request page (S805).

마지막으로, 도 9를 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 단말의 대기화면에서 웹 어플리케이션의 실행을 요청받을 수 있다(S901). 이때, 웹 어플리케이션 실행 장치는 비활성화 상태이다.Finally, referring to FIG. 9, the web application execution apparatus according to the present invention can be requested to execute a web application on the idle screen of the terminal (S901). At this time, the web application execution apparatus is in a disabled state.

따라서, 단말에 설치된 네이티브 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 실행 계층부(600)의 대기모드 에이전트(630)을 로딩하여, 웹 어플리케이션 실행 명령을 전달한다(S902).Accordingly, the native idle screen manager installed in the terminal receives the user's web application execution request, loads the idle mode agent 630 of the execution layer 600, and delivers the web application execution command (S902).

상기 대기모드 에이전트(630)은, 이식 계층부(200)과, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)로 이루어지는 브라우저 엔진 컨테이너 코어를 로딩하여, 대기화면 모드 실행 API를 호출한다(S903).The standby mode agent 630 loads a browser engine container core composed of the portable unit layer 200, the security layer unit 300, the web application runtime layer unit 400 and the browser engine layer unit 500 , And then calls the idle screen mode execution API (S903).

상기 대기화면 모드 실행 API 호출을 통해 컨텍스트 매니저(412)가 웹 어플리케이션의 실행 명령을 전달받고, 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스를 생성하여, 디폴트 페이지 또는 요청 페이지를 실행한다(S904).In step S904, the context manager 412 receives the execution command of the web application through the idle screen mode execution API call, creates a window and a renderer instance for the web application, and executes a default page or a request page.

더하여, 본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션의 실행시에, 초기 실행 속도 및 페이지간 전환 속도를 향상시키기 위하여, 도 10과 같은 웹 어플리케이션 실행 방법을 더 수행할 수 있다. 이는 도 4에 보인 웹 어플리케이션이 관리 방법에 있어서, 단계(S408)에서 페이지 실행시에 적용될 수 있다.In addition, the web application execution apparatus according to the present invention may further execute the web application execution method as shown in Fig. 10 in order to improve the initial execution speed and the page-to-page switching speed when the web application is executed. This can be applied to the management method of the web application shown in FIG. 4 at the time of page execution at step S408.

도 10을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션을 실행할 때, 디폴트 페이지 또는 요청된 페이지를 파싱, 레이아웃, 랜더링 처리하여 생성한 윈도우를 통해 출력한 후(S1001), 웹 어플리케이션에 포함되는 하나 이상의 다른 페이지를 추출한다(S1002). 하나 이상의 다른 페이지는 현재 출력된 페이지에서 연결되는 페이지일 수도 있으며, 상기 웹 어플리케이션에 포함된 나머지 페이지일 수도 있다. 즉, 매 페이지의 실행 시마다 각각 관련된 다른 페이지를 추출할 수도 있으며, 초기 페이지 실행 시에, 나머지 모든 페이지를 추출할 수도 있다.Referring to FIG. 10, when executing a web application, the web application execution apparatus according to the present invention outputs a default page or a requested page through a window created by parsing, layout, and rendering processing (S1001) One or more other pages included in the page are extracted (S1002). The one or more other pages may be pages that are linked in the currently outputted page, or may be the remaining pages included in the web application. That is, it is possible to extract other related pages at the time of execution of each page, or extract all the remaining pages at the time of execution of the initial page.

그리고 웹 어플리케이션 실행 장치의 브라우저 엔진 모듈(510)은 추출한 하나 이상의 다른 페이지를 파싱하여, DOM 트리 및 스타일 트리를 생성하고, 상기 DOM 트리 및 스타일 트리의 관련 노드를 연결하여, 해당 다른 페이지의 레이아웃을 지정한다(S1003). 즉, 웹 컨텐츠(11)을 파싱하여, DOM(Document Object Model) 트리와 랜더러스타일 트리를 구성한 후, DOM 트리와 랜더러스타일 트리의 관련 노드를 연결하여, 랜더러 오브젝트를 생성하고, 생성한 랜더러 오브젝트를 통해 각 페이지의 레이아웃을 지정한다. 이렇게 레이아웃까지 처리된 데이터는 랜더링을 통해 화면으로 출력될 수 있다. The browser engine module 510 of the web application execution apparatus parses the extracted one or more other pages to generate a DOM tree and a style tree, connects the related nodes of the DOM tree and the style tree, (S1003). That is, the Web content 11 is parsed to construct a DOM (Document Object Model) tree and a renderer style tree. Then, the DOM tree and the related nodes of the renderer style tree are concatenated to create a renderer object. Specifies the layout of each page. The data processed up to the layout can be output to the screen through rendering.

이어서, 브라우저 엔진 모듈(510)은 상기 레이아웃 지정까지 처리된 상기 다른 페이지의 데이터를 바로 랜더링하여 출력하지 않고 시리얼라이즈화(Serialization)한 후 바이너리 파일로 저장한다(S1004). 상기 다른 페이지의 바이너리 파일은 해당 웹 어플리케이션이 실행되는 동안, 임시로 저장되는 것이며, 해당 웹 어플리케이션의 종료 시에 삭제될 수 있다.Then, the browser engine module 510 serializes the data of the other pages processed until the layout is designated, and outputs the serialized data as a binary file (S1004). The binary file of the other page is temporarily stored while the corresponding web application is executed, and may be deleted at the end of the corresponding web application.

그리고 나서, 브라우저 엔진 모듈(510)은, 다른 페이지에 대한 이벤트, 더 구체적으로는 다른 페이지로의 전환 요청이 발생하는 지를 확인한다(S1005). Then, the browser engine module 510 checks whether an event for another page, more specifically, a request to switch to another page occurs (S1005).

다른 페이지에 대한 이벤트가 발생하면, 앞서 단계(S1004)에서 저장한 다른 페이지의 바이너리 파일을 가져와 랜더링하여 해당하는 윈도우를 통해 출력한다(S1006).When an event for another page is generated, a binary file of another page stored in step S1004 is fetched and rendered and output through a corresponding window (S1006).

상기 단계(S1002~S1006)는 웹 어플리케이션이 종료될 때까지 반복 수행된다(S1007).The steps (S1002 to S1006) are repeated until the web application is terminated (S1007).

이에 의하면, 다수의 페이지로 구성되는 웹 어플리케이션의 실행 시, 단말기에 저장되어 있는 웹 어플리케이션의 각 페이지의 데이터를 가져와, 미리 파싱 및 레이아웃 지정까지 처리함으로써, 해당 페이지의 실행 시 미리 레이아웃 지정까지 처리된 데이터를 가져와 랜더링하면 된다. 따라서, 본 발명에 의한 웹 어플리케이션 실행 방법은, 웹 어플리케이션의 초기 실행 시간이나 페이지간 전환 시간을 단축시킴으로써, 웹 어플리케이션의 실행 속도를 향상시킬 수 있다.In this case, when a web application composed of a plurality of pages is executed, data of each page of the web application stored in the terminal is fetched, and the data of the page is pre-parsed and designated in advance, You can import and render the data. Therefore, the web application execution method according to the present invention can improve the execution speed of the web application by shortening the initial execution time of the web application or the page-to-page conversion time.

본 발명에 따른 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The web application execution device and its web application management method according to the present invention can be implemented in software form readable by various computer means and recorded in a computer readable recording medium. Here, 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.

더하여, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.In addition, while the present invention has been described in connection with what is presently considered to be preferred embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, It is self-evident to those who have knowledge. Furthermore, although specific terms are used in this specification and the drawings, they are used in a generic sense only to facilitate the description of the invention and to facilitate understanding of the invention, and are not intended to limit the scope of the invention.

본 발명에 따르면, 운영 체제 별로 다른 형식을 가지는 기능 실행을 위한 인터페이스를 운영 체제의 종류에 무관하게 단일 형식으로 제공함으로써, 웹 어플리케이션이 동일한 방법으로 운영 체제가 관리하는 단말의 기능을 실행하도록 하며, 다수의 페이지로 구성되는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행 및 업데이트되도록 관리함으로써, 웹 어플리케이션을 스탠드 얼론 어플리케이션과 동일한 방식으로 이용할 수 있다.According to the present invention, an interface for executing a function having a different format according to an operating system is provided in a single format regardless of the type of an operating system, so that a web application executes a function of a terminal managed by the operating system in the same manner, The web application can be used in the same manner as the standalone application by managing the web application composed of a plurality of pages to be installed, executed and updated in increments of applications, not page units.

더하여, 이를 이동 통신 단말에 적용함으로써, 이동 통신 단말용 어플리케이션 개발자들이, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 웹 어플리케이션을 개발할 수 있게 된다.In addition, by applying this to a mobile communication terminal, mobile communication terminal application developers can more easily develop a web application by using existing rich web developer base and web development tool.

100: 운영체제 (General Purpose OS)
200: 이식 계층부 (Porting layer)
300: 보안 계층부 (Security layer)
400: 웹 어플리케이션 런타임 계층부 (Web Application Runtime layer)
500: 브라우저 엔진 계층부 (Browser Engine layer)
600: 실행 계층부 (Executable layer)
700: 시스템 웹 어플리케이션 (System Web Application)
310: 인증 모듈
320: 정책 모듈
410: 웹 어플리케이션 런타임 모듈
420: 레지스트리 모듈
430: UI 엔진
440: 네트워크 셀렉터
450: 다이내믹 동기화 모듈
510: 브라우저 엔진 모듈
520: 플러그인 관리 모듈
530: 플러그인
610: 컨테이너 에이전트
620: 더미 실행 모듈
630: 대기모드 에이전트
100: Operating system (General Purpose OS)
200: Porting layer
300: Security layer
400: Web Application Runtime layer
500: Browser Engine layer
600: Executable layer
700: System Web Application
310: Authentication module
320: Policy module
410: Web Application Runtime Module
420: Registry Modules
430: UI engine
440: Network Selector
450: Dynamic Synchronization Module
510: Browser engine module
520: Plug-in management module
530: Plugin
610: Container agent
620: Dummy execution module
630: Standby mode agent

Claims (27)

운영체제의 종류에 무관하게 상기 운영체제가 관장하는 기능 실행의 요청을 처리하는 단일 형식의 이식 계층 API(Application Programming Interface)를 제공하고, 특정 이식 계층 API가 호출되면, 대응하는 운영체제의 API를 호출하여 응답을 반환하는 이식 계층부;
상기 이식 계층부와 연동하여, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부; 및
URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션 실행 요청을 입력받아, 상기 웹 어플리케이션이 로컬 스토리지에 존재하는 지를 확인하고, 확인 결과, 로컬 스토리지에 웹 어플리케이션이 존재하면, 상기 웹 어플리케이션의 실행 명령을 상기의 브라우저 엔진 계층부로 전달하며, 상기 브라우저 엔진 계층부에서 페이지를 실행하는데 있어서 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
A single-type portable layer API (Application Programming Interface) for handling requests for executing functions managed by the operating system regardless of the type of operating system is provided. When a specific portable layer API is called, APIs of corresponding operating systems are called An importing layer unit for returning the data;
A browser engine layer unit for interpreting and executing each page of the web application in cooperation with the transplantation layer unit; And
Receives a web application execution request including web application identification information in the form of a URL (Uniform Resource Location), confirms whether the web application exists in the local storage, and if a web application exists in the local storage, And a web application runtime layer unit for delivering an execution command of the application to the browser engine layer unit and providing a network and a UI required for executing the page in the browser engine layer unit.
제1항에 있어서, 상기 URL 형태의 웹 어플리케이션 식별 정보는
로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와,
상기 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과,
상기 웹 어플리케이션의 파일 명을 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The method of claim 1, wherein the web application identification information in the form of URL is
A protocol schema defined to import and execute web applications stored on local storage,
A domain name of a web application manufacturer or a content provider providing the web application,
And a file name of the web application.
제1항에 있어서, 상기 웹 어플리케이션은
웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 상기 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와,
상기 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와,
상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The method of claim 1, wherein the web application
A web content including a source file constituting a plurality of pages included in a web application according to a web standard, a resource file including an image inserted into the page,
A configuration information including a list of data included in the web application, information on whether the data is disclosed according to the data, integrity information on each data such as a hash code, execution environment information of the web application,
And policy information for specifying a range of terminal resources accessible to the web application.
제1항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
상기 로컬 스토리지에 상기 웹 어플리케이션이 존재하지 않는 경우, 사용자로부터 다운로드 여부를 확인하여, 사용자가 다운로드를 선택하면, 네트워크를 통해 서버에 접속하여, 상기 웹 어플리케이션을 다운로드받아 설치하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The method of claim 1, wherein the web application runtime layer
If the web application does not exist in the local storage, confirms whether or not the web application is downloaded, and when the user selects download, the web application is connected to the server through the network to download and install the web application. Execution device.
제1항에 있어서,
상기 브라우저 엔진 계층부와 이식 계층부 및 웹 어플리케이션 런타임 계층부를 로딩하고, 사용자의 요청에 따른 웹 어플리케이션의 실행 요청을 상기 웹 어플리케이션 런타임 계층 또는 브라우저 엔진 계층부로 전달하는 실행 계층부를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The method according to claim 1,
And an execution layer unit for loading the browser engine layer unit, the porting layer unit, and the web application runtime layer unit and transmitting a request for execution of the web application according to the request of the user to the web application runtime layer or the browser engine layer unit. A web application execution unit.
제1항에 있어서,
상기 웹 어플리케이션 및 상기 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제와 관련된 기능을 호출하는 플러그인의 설치 또는 실행 또는 로딩 전에, 인증서를 검증하고, 접근 제어 규칙에 따라서 상기 웹 어플리케이션의 실행 중 상기 이식 계층에 대한 접근을 제어하는 보안 계층부를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The method according to claim 1,
Wherein the web application and the browser engine layer verify the certificate before installation, execution, or loading of a plug-in that invokes resources related to the terminal and functions related to the operating system other than the web standard and executes the web application in accordance with the access control rule Further comprising a security layer for controlling access to the transport layer.
제1항에 있어서, 상기 브라우저 엔진 계층부는
웹 표준 언어로 작성된 웹 어플리케이션의 각 페이지를 해석하여 실행시키는 브라우저 엔진 모듈;
하나 이상의 플러그인에 대한 다운로드, 설치, 설치된 플러그인의 목록 관리, 업데이트, 및 플러그인의 호출 요청에 대한 처리를 수행하는 플러그인 관리 모듈; 및
상기 플러그인 관리 모듈에 의해 설치되고, 상기 플러그인 관리 모듈을 통해 동작하여, 각각 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 상기 이식 계층부를 통해 호출하여 그에 대한 응답을 반환하는 하나 이상의 플러그인을 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The browser engine of claim 1, wherein the browser engine layer
A browser engine module for interpreting and executing each page of the web application written in the web standard language;
A plug-in management module for downloading and installing one or more plug-ins, managing a list of installed plug-ins, updating, and processing a call request of plug-ins; And
One or more plug-ins installed by the plug-in management module and operating through the plug-in management module, each of the plug-ins calling a resource of the terminal other than the web standard and a function of the operating system through the porting layer and returning a response thereto The web application executing apparatus comprising:
제1항에 있어서, 이식 계층부는
HTML과 관련된 기능 및 API를 제공하는 HTTP 모듈,
XML 파싱 기능을 위한 API를 제공하는 XML 모듈,
쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈,
UI(User Interface) 구현을 위해 필요한 네이티브 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈,
보안 저장 기능을 API 형태로 제공하는 보안 스토리지 모듈,
단말 자원에 대한 접근 인터페이스를 API 형태로 제공하는 자원 모듈,
단말 자원 이외에 단말에서 제공하는 OS API를 API 형태로 제공하는 OS API 모듈,
웹 어플리케이션 간의 연동 기능을 API 형태로 제공하는 협업(Collaboration) 모듈,
외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화(Sync) 모듈,
로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈 중에서 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
2. The apparatus of claim 1, wherein the implantation layer
An HTTP module that provides functions and APIs related to HTML,
XML module that provides API for XML parsing function,
A thread module that provides the thread function as an API type and bypasses the functions provided by the operating system,
A UI backend module that provides API functions of the native window system necessary for UI (User Interface)
Secure storage module that provides secure storage function in API form,
A resource module that provides an access interface for terminal resources in an API form,
An OS API module that provides OS APIs provided by terminals in API form in addition to terminal resources,
Collaboration module that provides interoperability between web applications in API form,
A synchronization module for providing an API interface for interworking with a synchronization application existing in an external device,
And a local storage module for providing a local storage function in an API form.
제5항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈;
웹 어플리케이션 및 플러그인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈;
상기 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI(User Interface) 및 사용자 입력을 처리하는 UI 엔진;
웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리하는 네트워크 셀렉터; 및
웹 어플리케이션을 실행 중에, 네트워크 연결이 끊긴 동안의 데이터를 로컬 스토리지에 저장하고, 네트워크가 연결되면 로컬 스토리지에 저장한 데이터와 외부 데이터에 대한 동기화를 수행하는 다이내믹 동기화 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
6. The method of claim 5, wherein the web application runtime layer
A web application runtime module for performing context management and event handling of the web application instance, and command processing from the execution layer;
A registry module for managing installation information of the web application and the plug-in and structure information of the web application execution device;
A UI engine for processing UI (User Interface) and user input for a screen area other than the area rendered by the browser engine layer unit;
A network selector for setting and managing a network to be used in the web application execution device; And
And a dynamic synchronization module for storing data while the web application is disconnected in the local storage when the network connection is disconnected and for synchronizing data stored in the local storage and external data when the network is connected, Application execution device.
제5항에 있어서, 상기 실행 계층부는
단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 요청에 따라서 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부의 실행 여부를 확인하고, 실행 중이면, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 컨테이너 에이전트;
상기 컨테이너 에이전트에 의해 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부를 로딩한 후, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 더미 실행 모듈; 및
네이티브 대기화면 관리자에 의해 로딩되어, 대기화면에서의 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 계층부로 전달하는 대기모드 에이전트를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
6. The apparatus of claim 5, wherein the execution layer
The web application execution execution layer, the browser engine layer, and the porting layer in response to a request to execute the web application through the shortcut menu or the native menu of the terminal, A container agent for delivering to a web application runtime execution layer;
A dummy execution module which is operated by the container agent and loads the web application runtime execution layer, the browser engine layer and the porting layer, and then transmits a web application execution command to the web application runtime execution layer; And
And a standby mode agent which is loaded by the native standby screen manager and forwards the web application execution command in the standby screen to the web application runtime layer.
제6항에 있어서, 상기 보안 계층부는
웹 어플리케이션 및 상기 플러그인의 설치 또는 실행 시, 상기 웹 어플리케이션 및 플러그인의 인증서를 검증하는 인증 모듈; 및
웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 상기 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
7. The apparatus of claim 6, wherein the security layer
An authentication module for verifying a certificate of the web application and the plug-in when the web application and the plug-in are installed or executed; And
And a policy module that controls access to the port layer in accordance with an access control rule during execution of the web application.
제7항에 있어서, 상기 하나 이상의 플러그인은
단말 자원과 관련된 기능 호출을 이식계층으로 전달하는 리소스 플러그인과,
웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부에 전달하고, 웹 어플리케이션 런타임 계층부의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인과,
웹 어플리케이션과 네이티브 어플리케이션 사이의 연동을 위한 기능 호출을 이식 계층부로 전달하는 협업(Collaboration) 플러그인과,
웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부에 전달하는 동기화(Sync) 플러그인 중에서 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
8. The method of claim 7, wherein the one or more plug-
A resource plug-in for transferring a function call related to the terminal resource to the portable layer,
A system API plugin for delivering a terminal OS API calling function of the web application to the porting layer and providing an access interface for the function of the web application runtime layer,
A collaboration plug-in for transferring a function call for interworking between the web application and the native application to the porting layer,
And a synchronization plug for transmitting a function call related to the synchronization agent of the web application to the porting layer.
제9항에 있어서, 상기 웹 어플리케이션 런타임 모듈은
상기 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러;
상기 커맨드 핸들러 또는 상기 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 네이티브 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저;
상기 컨텍스트 매니저에서 생성한 네이티브 윈도우 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 UI 이펙트를 줄 수 있도록 상기 UI 엔진에 전달하는 이벤트 핸들러; 및
다수의 페이지를 포함하는 웹 어플리케이션 및 그의 각 페이지에 대한 라이프사이클을 관리하는 라이프사이클 매니저를 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
10. The method of claim 9, wherein the web application runtime module
A command handler for receiving a command related to the execution of the web application from the execution layer and interpreting the command and instructing the command;
A context manager for controlling generation and destruction of a native window and a renderer for each web application in accordance with instructions of the command handler or the browser engine layer;
An event handler for processing a system-related event of the native window and the web application execution device generated by the context manager, and transmitting the event to the UI engine so as to give a UI effect when an event related to a predefined situation occurs for the window; And
And a lifecycle manager for managing a web application including a plurality of pages and a life cycle of each page of the web application.
제9항에 있어서, 상기 레지스트리 모듈은
URL 형태의 웹 어플리케이션 식별 정보인 웹 어플리케이션 URL과, 상기 웹 어플리케이션 URL로 식별되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 위치를 나타내는 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 정책 정보를 포함하는 웹 어플리케이션 설치 정보 관리 테이블을 구성하고 관리하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
10. The system of claim 9, wherein the registry module
A web application URL that is web application identification information in the form of a URL, a content URL indicating a location of a local storage where a web application identified by the web application URL is actually stored, a hash code for verifying the integrity of the web application, And a web application installation information management table including policy information for access control of the web application is configured and managed.
제1항 내지 제14항 중 어느 한 항에 기재된 웹 어플리케이션 실행 장치를 구비한 단말기.A terminal equipped with the web application execution device according to any one of claims 1 to 14. 운영체제의 기능 단말의 자원에 대한 이식 계층 API를 지원하는 이식 계층부와, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부와, 브라우저 엔진 계층부에서 페이지를 실행하는데 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부를 포함하는 브라우저 엔진 컨테이너 코어와, 상기 브라우저 엔진 컨테이너 코어의 엔트리 포인트인 실행 계층부를 포함하는 웹 어플리케이션 실행 장치에 의한, 웹 어플리케이션 관리 방법에 있어서,
URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받는 단계;
로컬 스토리지에 상기 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하는 단계; 및
상기 웹 어플리케이션이 로컬 스토리지에 존재하면, 상기 로컬 스토리지에 저장된 웹 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
A browser engine layer for interpreting and executing each page of the web application; a browser engine layer for providing a network and a UI required to execute a page; A web application management method according to a web application execution device including a browser engine container core including a web application runtime layer and an execution layer as an entry point of the browser engine container core,
Receiving an execution request of a web application including web application identification information in the form of a URL (Uniform Resource Location);
Confirming whether a web application identified by the URL-type web application identification information exists in the local storage; And
And if the web application exists in the local storage, executing the web application stored in the local storage.
제16항에 있어서,
상기 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 확인하는 단계;
사용자가 다운로드 받는다고 선택하면, 상기 URL 형태의 웹 어플리케이션 식별 정보를 네트워크를 통해 접속가능한 URL로 변환하는 단계; 및
상기 변환된 URL을 이용하여, 네트워크상의 웹 서버에 접속하여, 상기 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16,
If the web application does not exist in the local storage, outputting an error message to the user that the web application requested to be executed does not exist and confirming whether to download the web application;
If the user selects to download, converting the web application identification information in the form of URL into a URL accessible via the network; And
Accessing a web server on the network using the converted URL, downloading the web application, and installing the web application on a local storage of the terminal.
제16항에 있어서, 상기 URL 형태의 웹 어플리케이션 식별 정보는
로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와,
상기 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과,
상기 웹 어플리케이션의 파일 명을 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16, wherein the web application identification information in URL form
A protocol schema defined to import and execute web applications stored on local storage,
A domain name of a web application manufacturer or a content provider providing the web application,
And a file name of the web application.
제16항에 있어서, 상기 웹 어플리케이션은
웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 상기 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와,
상기 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와,
상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The system of claim 16, wherein the web application
A web content including a source file constituting a plurality of pages included in a web application according to a web standard, a resource file including an image inserted into the page,
A configuration information including a list of data included in the web application, information on whether the data is disclosed according to the data, integrity information on each data such as a hash code, execution environment information of the web application,
And policy information for specifying a range of terminal resources accessible to the web application.
제16항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는,
상기 브라우저 엔진 컨테이너 코어의 브라우저 엔진 계층부가 웹 어플리케이션 실행 요청에 따라서, 상기 웹 어플리케이션을 위한 네이티브 윈도우 및 랜더러 인스턴스를 생성하는 단계;
웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 파싱, 레이아웃 지정, 및 랜더링하여 상기 생성한 네이티브 윈도우로 출력하는 단계;
상기 출력된 페이지 이외에 상기 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계;
상기 하나 이상의 다른 페이지에 대한 파싱 및 레이아웃 지정을 수행하는 단계;
상기 레이아웃 지정까지 처리된 다른 페이지의 데이터를 시리얼라이즈화하여 바이너리 파일로 저장하는 단계;
상기 다른 페이지에 대한 이벤트 발생을 확인하는 단계;
이벤트가 발생하면, 상기 저장한 바이너리 파일을 랜더링하여 상기 네이티브 윈도우로 출력하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16, wherein executing the web application further comprises:
Generating a native window and a renderer instance for the web application in response to a browser engine layer of the browser engine container core requesting execution of the web application;
Parsing, laying out and rendering a designated page among the pages included in the web application and outputting the page to the generated native window;
Extracting one or more other pages included in the web application other than the output page;
Performing parsing and layout assignments for the one or more other pages;
Serializing data of other pages processed until the layout is designated and storing the serialized data as a binary file;
Confirming occurrence of an event for the other page;
And when the event occurs, rendering the stored binary file and outputting the rendered binary file to the native window.
제16항에 있어서, 상기 웹 어플리케이션의 실행 요청을 전달받는 단계는
단축아이콘을 이용한 사용자의 웹 어플리케이션의 실행 요청이 입력되면, 상기 실행 계층부에서 상기 브라우저 엔진 컨테이너 코어의 실행 여부를 확인하는 단계;
확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면 상기 브라우저 엔진 컨테이너 코어를 로딩하는 단계;
브라우저 엔진 컨테이너 코어가 실행중이면, 상기 브라우저 엔진 컨테이너 코어의 웹 어플리케이션 런타임 계층부로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16, wherein the step of receiving an execution request of the web application
Checking whether execution of the browser engine container core is performed by the execution layer when a request for execution of the web application of the user using the shortcut icon is input;
Loading the browser engine container core if the browser engine container core is not running;
And delivering an execution command for the web application to the web application runtime layer of the browser engine container core if the browser engine container core is running.
제16항에 있어서, 상기 웹 어플리케이션의 실행 요청을 전달받는 단계는
웹 어플리케이션을 관리하는 웹 어플리케이션 매니저를 통해 실행 API가 호출되는 단계;
상기 브라우저 엔진 컨테이너 코어가 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인을 로딩하는 단계; 및
상기 로딩된 시스템 API 플러그인이 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16, wherein the step of receiving an execution request of the web application
A step in which an execution API is invoked through a web application manager managing a web application;
Loading the system API plug-in wherein the browser engine container core provides an access interface to the core functionality; And
Wherein the loaded system API plug-in transfers an execution command for the web application to a context manager of the web application runtime layer.
제16항에 있어서, 상기 웹 어플리케이션의 실행 요청을 전달받는 단계는
네이티브 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 상기 실행 계층부의 대기모드 에이전트를 로딩하는 단계; 및
상기 대기모드 에이전트가 상기 브라우저 엔진 컨테이너 코어를 로딩하고, 대기화면 모드 실행 API를 호출하여, 상기 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16, wherein the step of receiving an execution request of the web application
The native idle screen manager receiving a request for executing a web application of the user and loading the idle mode agent of the execution hierarchy; And
The waiting mode agent loading the browser engine container core and calling an idle screen mode execution API to deliver an execution command for the web application to the context manager of the web application runtime layer How to manage web applications.
제17항에 있어서, 상기 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계는,
상기 웹 서버에 접속하여 웹 어플리케이션을 다운로드 받는 단계;
상기 브라우저 엔진 계층부로 레지스트리 메쏘드를 호출하는 단계;
상기 브라우저 엔진 계층부에서 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하기 위하여, 시스템 API 플러그인을 호출하는 단계;
상기 호출에 의해 시스템 API 플러그인이 동작하여, 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하는 단계; 및
상기 호출된 레지스트리 모듈이, 다운로드 받은 파일에서 설치 정보를 추출하여 보안 스토리지에 저장하고, 웹 컨텐츠는 로컬 스토리지에 저장하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
The method as claimed in claim 17, wherein the step of downloading the web application and installing the web application in a local storage of the terminal comprises:
Accessing the web server to download a web application;
Invoking a registry method into the browser engine layer;
Calling the system API plug-in to call the registry module of the web application runtime layer in the browser engine layer;
Invoking the system API plug-in by the call to call the registry module of the web application runtime layer; And
Wherein the called registry module extracts installation information from the downloaded file and stores the retrieved installation information in the secure storage, and storing the web content in a local storage.
제16항에 있어서,
상기 웹 어플리케이션의 설치 또는 실행 전에, 상기 웹 어플리케이션의 인증서를 검증하여, 인증서 검증이 성공하면, 웹 어플리케이션의 설치 또는 실행을 계속하도록 하고, 인증서 검증이 성공하지 못하면, 사용자에게 설치 또는 실행 계속 여부를 확인하도록 하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16,
The web application can be installed or executed before the installation or execution of the web application. If the certificate verification is successful, the web application is allowed to continue to be installed or executed. If the certificate verification is unsuccessful, The web application management method comprising the steps of:
제16항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는
상기 이식 계층부에 대한 접근이 필요한 경우, 웹 어플리케이션 별로 설정된 접근 제어 규칙을 참조하여, 상기 이식 계층부에 대한 접근을 허여하거나 거부하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법.
17. The method of claim 16, wherein executing the web application further comprises:
Further comprising the step of granting or denying access to the transplantation layer by referring to access control rules set for each web application when access to the transplantation layer is required.
제16항 내지 제26항 중 어느 한 항에 기재된 웹 어플리케이션 관리 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.26. A computer-readable recording medium on which a program for executing the web application management method according to any one of claims 16 to 26 is recorded.
KR20100043321A 2010-05-10 2010-05-10 Web application executable device and web application management method therof KR101482150B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100043321A KR101482150B1 (en) 2010-05-10 2010-05-10 Web application executable device and web application management method therof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100043321A KR101482150B1 (en) 2010-05-10 2010-05-10 Web application executable device and web application management method therof

Publications (2)

Publication Number Publication Date
KR20110123867A KR20110123867A (en) 2011-11-16
KR101482150B1 true KR101482150B1 (en) 2015-01-14

Family

ID=45393872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100043321A KR101482150B1 (en) 2010-05-10 2010-05-10 Web application executable device and web application management method therof

Country Status (1)

Country Link
KR (1) KR101482150B1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355115B2 (en) 2011-11-21 2016-05-31 Microsoft Technology Licensing, Llc Client application file access
KR102020045B1 (en) * 2012-02-20 2019-09-10 한국전자통신연구원 Method for executing hybirid web application and apparatus therefor
KR101368966B1 (en) * 2012-05-29 2014-03-04 (주)모비루스 Portable Terminal and IVI for Interworking Application, Method thereof for Operating Application
KR102181906B1 (en) * 2013-10-02 2020-11-23 에스케이플래닛 주식회사 Terminal apparatus for implementing native application and thereof method
KR102261910B1 (en) * 2014-12-08 2021-06-08 에스케이플래닛 주식회사 Service error detection apparatus for cloud streaming service, end to end service monitoring system and method thereof
KR102087268B1 (en) * 2018-06-25 2020-04-23 주식회사 한글과컴퓨터 Apparatus for providing web control interface and operating method thereof
US11435992B2 (en) 2020-08-20 2022-09-06 T-Mobile Usa, Inc. Communications registry and governance for apps
EP4229527A4 (en) * 2020-10-14 2024-04-17 Vidaa USA Inc Page loading method and display apparatus

Citations (3)

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

Patent Citations (3)

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

Also Published As

Publication number Publication date
KR20110123867A (en) 2011-11-16

Similar Documents

Publication Publication Date Title
KR101482150B1 (en) Web application executable device and web application management method therof
US11467816B1 (en) Method and system of running an application
JP6192534B2 (en) Virtual application extension point
KR101453742B1 (en) Security providing method and device for executing of mobile Web application
EP2798494B1 (en) Virtual channel for embedded process communication
US10324713B2 (en) Server-side translation for custom application support in client-side scripts
US9075637B1 (en) Installer-free applications using native code modules and persistent local storage
US9317681B2 (en) Information processing apparatus, information processing method, and computer program product
US20100251084A1 (en) Input content to application via web browser
KR101482151B1 (en) Device and method for executing web application
US20120227032A1 (en) Method, apparatus, and system for invoking widget
US20210096883A1 (en) Inserting executions of owner-specified code into input/output path of object storage service
US9513762B1 (en) Static content updates
Puder et al. Exposing native device APIs to web apps
US11263297B2 (en) Dynamic insertion of variablized secrets in a pipeline integration system
KR101482152B1 (en) Web application executable device and method with page association function
KR101482149B1 (en) Apparatus for executing application, method thereof and computer recordable medium storing the method
US9785560B2 (en) Scene-isolated internet application
Hossain CORS in Action: Creating and consuming cross-origin apis
US20200356721A1 (en) Rendering Based on a Document Object Model
KR20080027293A (en) Managing multiple languages in a data language
KR101460515B1 (en) Apparatus for executing application, method thereof and computer recordable medium storing the method
KR101288845B1 (en) System for processing Multi mobile service and method therefor
Bradburne Rails 5 Revealed
Hartman et al. Deploying Applications Natively

Legal Events

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

Payment date: 20180105

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191220

Year of fee payment: 6