KR101482151B1 - Device and method for executing web application - Google Patents

Device and method for executing web application Download PDF

Info

Publication number
KR101482151B1
KR101482151B1 KR20100043745A KR20100043745A KR101482151B1 KR 101482151 B1 KR101482151 B1 KR 101482151B1 KR 20100043745 A KR20100043745 A KR 20100043745A KR 20100043745 A KR20100043745 A KR 20100043745A KR 101482151 B1 KR101482151 B1 KR 101482151B1
Authority
KR
South Korea
Prior art keywords
web application
layer
execution
browser engine
module
Prior art date
Application number
KR20100043745A
Other languages
Korean (ko)
Other versions
KR20110124406A (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 KR20100043745A priority Critical patent/KR101482151B1/en
Publication of KR20110124406A publication Critical patent/KR20110124406A/en
Application granted granted Critical
Publication of KR101482151B1 publication Critical patent/KR101482151B1/en

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Landscapes

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

Abstract

본 발명은 단말에 탑재된 운영체제에 의존적이지 않으면서, 단말 자원에 접근할 수 있는 웹 어플리케이션의 실행 환경을 제공하면서, 다수의 페이지로 이루어지는 웹 어플리케이션의 실행 속도를 향상시킬 수 있는 웹 어플리케이션의 실행 장치 및 방법, 그리고 이를 적용한 단말기에 관한 것이다. 본 발명에 따르면, 이식 계층부를 통해 다수의 운영체제 및 단말의 기능에 대한 이식 계층 API를 제공하고, 웹 어플리케이션 런타임 계층부를 브라우저 엔진 계층부에서 페이지를 실행하는데 필요한 네트워크 및 UI를 제공하고, 브라우저 엔진 계층부를 통해 웹 어플리케이션의 각 페이지를 해석하여 화면으로 출력하는데 있어서, 브라우저 엔진 계층부에서 웹 어플리케이션에 속하는 하나 이상의 다른 페이지를 미리 분석 및 구조화한 후, 상기 다른 페이지에 대한 이벤트 발생시 상기 구조화된 페이지를 바로 랜더링하여 화면으로 출력함으로써, 페이지 전환 시간을 단축시킨다.The present invention provides a web application execution system capable of improving execution speed of a web application composed of a plurality of pages while providing an execution environment of a web application capable of accessing terminal resources without depending on an operating system installed in the terminal, And a terminal using the same. According to the present invention, a portable layer API is provided for functions of a plurality of operating systems and terminals through a porting layer. The web application runtime layer provides a network and a UI required to execute a page in a browser engine layer, And analyzing each page of the web application and outputting the same to the screen. In the browser engine layer, one or more other pages belonging to the web application are analyzed and structured in advance, and the structured page is immediately Rendering and outputting to the screen, thereby shortening the page switching time.

Description

웹 어플리케이션 실행 장치 및 방법{Device and method for executing web application}[0001] The present invention relates to a device and method for executing a web application,

본 발명은 웹 어플리케이션 실행 방법 및 장치, 그리고 이를 적용한 단말기에 관한 것으로서, 더욱 상세하게는 웹 표준을 지원하여 단말기에 탑재된 운영체제에 의존적이지 않으면서, 단말 자원에 접근할 수 있는 실행 환경을 제공하면서, 웹 어플리케이션의 실행 속도를 향상시킬 수 있는 웹 어플리케이션 실행 장치 및 방법에 관한 것이다.The present invention relates to a web application execution method and apparatus, and a terminal to which the web application is applied. More specifically, the present invention provides an execution environment capable of accessing terminal resources without depending on an operating system installed in the terminal, And a web application execution device and method capable of improving the execution speed of the web application.

최근 스마트폰의 성장에 따라 오픈 환경이 도래하면서, 서비스의 차별화를 위하여 개방형 어플리케이션 및 플랫폼 환경이 요구되고 있다.Recently, with the advent of the open environment as a result of the growth of smartphones, an open application and platform environment is required to differentiate services.

더 구체적으로, 사용자가 자신이 원하는 모바일 어플리케이션을 자유롭게 선택하여 설치할 수 있는 스마트폰이 급성장하면서, 이러한 모바일 어플리케이션을 자유롭게 거래할 수 있는 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.

한편, 정적이고 단순한 컨텐츠를 표현하기 위해 시작된 웹은 브라우저라는 클라이언트 어플리케이션을 사용할 수 있는 환경만 갖춰지면 어디서나 동등한 수준의 사용자 인터페이스를 제공할 수 있다는 장점 때문에, 사용자 저변과 서비스 영역을 빠르게 확장해왔다. 이와 함께, 웹 컨텐츠는 특정 내용을 서술하는 단순한 컨텐츠에서, 사용자의 입력에 반응하여 사용자가 원하는 서비스를 제공할 수 있는 웹 어플리케이션으로 진화하고 있다. 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.

따라서, 이동 통신 단말에 대하여, 표준 웹 기술을 지원하는 웹 어플리케이션 플랫폼을 구현할 경우, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 모바일 어플리케이션을 개발할 수 있으며, 더하여, 풍부한 사용자 인터페이스를 쉽고 빠르게 개발하여 제공할 수 있게 된다.Therefore, when a web application platform supporting a standard web technology is implemented for a mobile communication terminal, it is possible to develop a mobile application more easily by using a 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 execution environment of a web application capable of accessing terminal resources without depending on an operating system mounted on the terminal by supporting a web standard and improving the execution speed of a web application composed of a plurality of pages And an apparatus and method for executing the web application.

본 발명은 과제를 해결하기 위한 수단으로서, 브라우저 엔진 계층부와, 이식 계층부와, 웹 어플리케이션 런타임 계층부를 포함하는 웹 어플리케이션 실행 장치를 제공한다. 브라우저 엔진 계층부는 웹 어플리케이션의 각 페이지를 해석하여 화면으로 출력하되, 웹 어플리케이션에 속하는 하나 이상의 다른 페이지를 분석 및 구조화한 후, 저장하여 두고, 다른 페이지에 대한 이벤트 발생시 상기 저장한 다른 페이지의 구조화 데이터를 랜더링하여 화면으로 출력한다. 이식 계층부는, 다수의 운영체제 및 단말의 기능에 대한 이식 계층 API(Application Programming Interface)를 지원하고, 브라우저 엔진 계층부가 특정 이식 계층 API를 호출하면, 대응하는 운영체제 및 단말의 API를 호출하고 그 응답을 수신하여 브라우저 엔진 계층부로 전달한다. 웹 어플리케이션 런타임 계층부는 웹 어플리케이션의 실행 명령을 브라우저 엔진 계층부로 전달하며, 브라우저 엔진 계층부에서 페이지를 실행하는데 있어서 필요한 네트워크 및 UI를 제공한다.According to an aspect of the present invention, there is provided a web application execution apparatus including a browser engine layer, an implantation layer, and a web application runtime layer. The browser engine layer part interprets each page of the web application and outputs it to the screen. One or more other pages belonging to the web application are analyzed and structured and stored, and when the event for another page is generated, And outputs it to the screen. The portability layer supports an application layer API (Application Programming Interface) for the functions of a plurality of operating systems and terminals. When the browser engine layer calls a specific port layer API, the port layer calls an API of the corresponding operating system and terminal, And delivers it to the browser engine layer. The web application runtime layer passes the execution command of the web application to the browser engine layer and provides the network and UI necessary for executing the page in the browser engine layer.

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

본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션 및 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 호출하는 플러그인의 인증서를 검증하고, 접근 제어 규칙에 따라서 웹 어플리케이션의 실행 중 이식 계층부에 대한 접근을 제어하는 보안 계층부를 더 포함할 수 있다.The web application execution device according to the present invention verifies the plug-in certificate that calls the 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 layer portion.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 브라우저 엔진 계층부는, 웹 어플리케이션의 각 페이지를 해석하여 실행시키는 브라우저 엔진 모듈; 하나 이상의 플러그인에 대한 다운로드, 설치, 설치된 플러그인의 목록 관리, 업데이트, 및 플러그인의 호출 요청에 대한 처리를 수행하는 플러그인 관리 모듈; 및 상기 플러그인 관리 모듈에 의해 설치되고, 동작하여, 각각 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 이식계층부를 통해 호출하여 그에 대한 응답을 반환하는 하나 이상의 플러그인을 포함하여 이루어진다.In the web application execution apparatus according to the present invention, the browser engine layer unit may include: a browser engine module that interprets and executes each page of the web application; 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 and operated by the plug-in management module to respectively call resources of the terminal and functions of the operating system other than the web standard through the porting layer and return 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 for providing HTML related functions and APIs, an XML module for providing an API for an XML parsing function, a thread function in an API form, (UI) backend module that provides the functions of the window system required for UI (UI) implementation in API form, security storage that provides security storage function in API form, A resource module that provides an access interface for modules and terminal resources in the form of an API, an OS API module that provides an OS API provided by the terminal in addition to terminal resources, an API module, and an API function for a page not included in the web application , A collaboration module provided to the external device, and an interface with the synchronization application existing in the external device A Sync module provided in an API format, and a Local Storage module providing an API function of a local storage function existing in an operating system.

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, 웹 어플리케이션 인스턴스의 상태 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈; 웹 어플리케이션 및 플러그인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈; 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI 및 사용자 입력을 처리하는 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 state 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 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 for storing data while the network connection is disconnected in the local storage while the web application is running and synchronizing 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 operates according to a request to execute a web application through a shortcut icon or a menu of the terminal, and determines whether the web application runtime execution layer, the browser engine layer, And if so, a container agent for delivering a web application execution command to the web application runtime execution layer; A dummy execution module that operates by the container agent and transmits 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 port layer; And a standby mode agent which is loaded by the standby screen manager of the terminal and forwards the web application execution command in 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 a certificate of the web application and the plug-in when installing or executing the web application and the plug-in; And a policy module for controlling access to the port layer in accordance with access control rules during execution of the web application.

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

본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 모듈은, 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러; 커맨드 핸들러 또는 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저; 컨텍스트 매니저에서 생성한 윈도우의 이벤트 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 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 windows and renderers for each web application according to instructions of a command handler or a browser engine layer; An event handler for processing a window event generated by the context manager and a system related event of the web application execution device, and transmitting the event to the UI engine when an event related to a predefined situation occurs in 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.

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

더하여, 본 발명은 과제를 해결하기 위한 다른 수단으로서, 브라우저 엔진 컨테이너 코어의 브라우저 엔진 계층부가 웹 어플리케이션 실행 요청이 있으면, 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스를 생성하는 단계; 웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 분석 및 구조화한 후, 및 랜더링하여 윈도우로 출력하는 단계; 출력된 페이지 이외에 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계; 하나 이상의 다른 페이지를 분석 및 구조화하는 단계; 다른 페이지의 구조화 데이터를 저장하는 단계; 다른 페이지에 대한 이벤트 발생을 확인하는 단계; 이벤트가 발생하면, 저장된 구조화 데이터를 랜더링하여 윈도우로 출력하는 단계를 포함하는 웹 어플리케이션 실행 방법을 제공한다.In addition, according to another aspect of the present invention, there is provided a Web application execution method comprising the steps of: creating a window and a renderer instance for a web application when a browser engine layer of the browser engine container core requests a web application execution; Analyzing and structuring a designated page among the pages included in the web application, and rendering the rendered page and outputting the rendered page to a window; Extracting one or more other pages included in the web application other than the output page; Analyzing and structuring one or more other pages; Storing structured data of another page; Confirming occurrence of an event for another page; And rendering the stored structured data when the event occurs, and outputting the rendered structured data to a window.

본 발명에 의한 웹 어플리케이션 실행 방법은, 윈도우 및 랜더러 인스턴스를 생성하는 단계 이전에, 웹 어플리케이션의 단축 아이콘을 이용한 실행 요청을 입력되면, 실행 계층부에서 브라우저 엔진 컨테이너 코어의 실행 여부를 확인하는 단계; 확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면 브라우저 엔진 컨테이너 코어를 로딩하는 단계; 확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이면, 브라우저 엔진 컨테이너 코어의 웹 어플리케이션 런타임 계층부로 웹 어플리케이션 실행 명령을 전달하는 단계를 더 포함할 수 있다.A method of executing a web application according to the present invention includes the steps of: confirming whether a browser engine container core is executed in an execution layer when an execution request using a shortcut icon of a web application is input before a step of creating a window and a renderer instance; Loading the browser engine container core if the browser engine container core is not running; As a result of checking, if the browser engine container core is running, it may further include transmitting a web application execution command to the web application runtime layer of the browser engine container core.

본 발명에 의한 웹 어플리케이션 실행 방법은, 윈도우 및 랜더러 인스턴스를 생성하는 단계 이전에, 설치된 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저에서, 사용자의 웹 어플리케이션의 실행 요청에 따라서 실행 API를 호출하는 단계; 브라우저 엔진 컨테이너 코어가 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인을 로딩하여, 실행 API를 호출하는 단계; 로딩된 시스템 API 플러그인이 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 웹 어플리케이션의 실행 명령을 전달하는 단계를 더 포함할 수 있다.A method for executing a web application according to the present invention includes the steps of: calling an execution API in response to a request for execution of a web application of a user in a web application manager managing an installed web application, prior to a step of creating a window and a renderer instance; Loading a system API plug-in, wherein the browser engine container core provides an access interface to the core function, and calling an execution API; The loaded system API plug-in may further include transmitting an execution command of the web application to the context manager of the web application runtime layer.

본 발명에 의한 웹 어플리케이션 실행 방법은, 윈도우 및 랜더러 인스턴스를 생성하는 단계 이전에, 네이티브 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 실행 계층부의 대기모드 에이전트를 로딩하는 단계; 대기모드 에이전트가 상기 브라우저 엔진 컨테이너 코어를 로딩하고, 대기화면 모드 실행 API를 호출하여 웹 어플리케이션의 실행 요청을 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 전달하는 단계를 더 포함할 수 있다.A method of executing a web application according to the present invention includes the steps of: a step of loading a standby mode agent of an execution layer unit by a native idle screen manager receiving a request for executing a web application of a user, prior to a step of creating a window and a renderer instance; The standby mode agent may load the browser engine container core, call the idle screen mode execution API, and forward the execution request of the web application to the context manager of the web application runtime layer.

더하여, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, 상술한 웹 어플리케이션 실행 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.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 web application execution method described above is recorded.

본 발명에 따르면, 단말기를 포함하는 단말에서 운영체제의 종류에 무관하게 웹 표준에 따르며 단말기의 자원을 이용하는 웹 어플리케이션을 실행 가능하도록 지원하면서, 웹 어플리케이션의 초기 실행 시에 웹 어플리케이션에 관련된 다른 페이지를 미리 분석 및 구조화한 후, 저장하여 두고, 페이지 전환이 요청되면상기 저장된 데이터를 가져와 바로 랜더링함으로써, 페이지간 전환 시간을 단축시켜 웹 어플리케이션의 실행 속도를 향상시킬 수 있는 우수한 효과가 있다.According to the present invention, a terminal including a terminal supports execution of a web application that conforms to a web standard and uses resources of the terminal irrespective of the type of an operating system, and at the time of initial execution of the web application, Analyzing and structuring the data and storing the data, and if the page conversion is requested, the stored data is fetched and immediately rendered, thereby shortening the switching time between pages, thereby improving the execution speed of the web application.

도 1은 본 발명에 따른 웹 어플리케이션 실행 장치의 전체 구조를 나타낸 블럭도이다.
도 2는 본 발명에 따른 웹 어플리케이션 실행 방법을 나타낸 흐름도이다.
도 3 내지 도 5는 본 발명에 따른 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션의 실행 요청을 처리하는 다양한 실시 예를 보인 흐름도이다.
도 6은 본 발명에 따른 웹 어플리케이션 실행 방법에 있어서, 페이지의 처리 과정을 모식화하여 나타낸 도면이다.
도 7은 본 발명에 따른 웹 어플리케이션의 패키지 구조를 나타낸 블록도이다.
1 is a block diagram showing the overall structure of a web application execution apparatus according to the present invention.
2 is a flowchart illustrating a method of executing a web application according to the present invention.
3 to 5 are flowcharts illustrating various embodiments of a web application execution method according to an exemplary embodiment of the present invention.
FIG. 6 is a diagram illustrating a process of a page in a web application execution method according to the present invention.
7 is a block diagram illustrating a package structure of a web application 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.

도 1은 본 발명에 따른 웹 어플리케이션 실행 장치의 전체 구조를 나타낸 도면이다.1 is a diagram illustrating an overall structure of a web application execution apparatus according to 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 a system web application 700. The browser engine layer 500 includes a plurality of application programs.

여기서, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)가 브라우저 엔진 컨테이너 커먼(Browser Engine Container Common)으로 구현된다. 여기서 웹 어플리케이션 런타임 계층부(400)가 주도적으로 웹 어플리케이션의 관리 기능을 수행하며, 브라우저 엔진 계층부(500)는 각 웹 어플리케이션의 각 페이지를 해석하여 실행한다. 이러한 브라우저 엔진 컨테이너 커먼은 이식 계층부(200)를 통해 운영체제(100)에 접근함으로써, 운영체제(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. Here, the web application runtime layer 400 mainly manages the web application, and the browser engine layer 500 interprets and executes each page of each web application. The browser engine container common is independent of the operating system 100 and has dependency only on the porting layer 200 by accessing the operating system 100 through the porting 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.

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

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

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

한편, 본 발명에 의해 실행되는 웹 어플리케이션은, 다수의 페이지가 패키지로 구성되는 것으로서, 도 7을 참조하면, 웹 어플리케이션(800)은, 웹 어플리케이션의 각 페이지를 구성하는 html, xhtml, css, java script 파일 등과 같은 소스 파일과, 각 페이지에 삽입되는 이미지 등과 같은 리소스 파일로 이루어지는 웹 컨텐츠(810)와, 웹 어플리케이션 패키지에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보(화면 크기, 타겟 CPU, 타겟 운영체제, 웹 어플리케이션 실행 장치의 버전 등)를 포함하는 구성 정보(Configuration 파일)(820)와, 해당 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보(830)를 포함한다. Referring to FIG. 7, the web application 800 includes a plurality of pages, such as html, xhtml, css, and java, which constitute each page of the web application. a script file and the like, and a resource file such as an image to be inserted into each page, a list of data included in the web application package, whether the data is disclosed by data, integrity of data such as a hash code (Configuration file) 820 including information about the execution environment of the web application (screen size, target CPU, target operating system, version of the web application execution device, and the like), and terminal information And policy information 830 for specifying a range of the policy information 830.

여기서, 정책 정보(830)는 웹 어플리케이션 패키지 전체에 부여되는 기본 접근 권한 정보와, 웹 어플리케이션의 각 페이지 별로 부여되는 세부 접근 권한 정보를 포함할 수 있으며, 이는 보안 계층부(300)에서 단말의 자원, 예를 들어, 사진, 주소록, 단말 기능, 통화 기록 들에 대한 접근 제어 시 참조된다. 이러한 웹 어플리케이션은, 압축 파일 형태로 제공되며, 더하여, 웹 어플리케이션이 인증된 기관 또는 사업자를 통해 배포되는 것임을 증명하는 인증서를 더 포함할 수 있다.Herein, the policy information 830 may include basic access authority information given to the whole web application package and detail access authority information assigned to each page of the web application, , For example, access control for photos, address book, terminal functions, call records. Such a web application may be provided in the form of a compressed file and may further include a certificate attesting that the web application is to be distributed through an authorized institution or provider.

이하 각 구성 요소의 기능 및 상세 구성에 대하여 설명한다.Hereinafter, functions and detailed configurations of the respective components will be described.

먼저, 이식 계층부(200)는, 단말기에 탑재된 운영체제(100)의 위에 구현되는 것으로서, 상기 웹 어플리케이션 런타임 계층부(400) 및 브라우저 엔진 계층부(500)의 각 모듈이 상기 운영체제(100)에 독립적으로 구현되고 동작할 수 있도록, 운영체제(100)의 다양한 OS 기능 및 단말의 자원들에 대한 통합된 API(이하, 이식 계층 API라 함)을 제공한다. 즉, 이식 계층부(200)에서는 상위의 웹 어플리케이션 런타임 계층부(400) 및 브라우저 엔진 계층부(500)에 대하여, 단말기의 자원 및 운영체제의 기능들에 대한 이식 계층 API를 제공하며, 상기 이식 계층 API의 호출 시 실제 해당하는 단말 자원 및 운영체제의 API를 호출한다. 이러한 이식 계층부(200)에서 제공 가능한 이식 계층 API는, HTTP 및 HTTPS와 관련된 기능 및 API를 제공하는 HTTP 모듈, XML 파싱 기능을 위한 API를 제공하는 XML 모듈, 쓰레드 기능을 API형태로 제공하고 운영체제(100)에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈, UI 구현을 위해 필요한 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈, 보안 저장 기능을 API 형태로 제공하는 보안 스토리지(Secure Storage) 모듈, 단말 자원(예를 들어, 전화부, 사진, 통화 기록, SMS 목록 등)에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈, 단말 자원 이외에 단말에서 제공하는 OS API(예를 들어, 통화 연결, SMS 전송, 단말 시스템의 Property 설정 등)을 API 형태로 제공하는 OS API 모듈, 웹 어플리케이션에 포함되지 않은 페이지와의 연동 기능을 API 형태로 제공하는 협업(Collaboration) 모듈, 외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화 모듈, 운영체제에 존재하는 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈 중에서 하나 이상을 포함할 수 있으며, 이외에 필요에 따라서 다른 이식 계층 API를 더 추가할 수 있다. 이식 계층부(200)의 각 모듈은 모두 향후 업데이트가 용이하도록 DLL 형태로 구현된다. Each of modules of the web application runtime layer unit 400 and the browser engine layer unit 500 is installed on the operating system 100 installed in the terminal, (Hereinafter referred to as an " application layer API ") for various OS functions of the operating system 100 and resources of the terminal in order to be independently implemented and operated. That is, the transplantation layer 200 provides the transplantation layer APIs for the functions of the terminal resources and the operating system to the upper web application runtime layer 400 and the browser engine layer 500, When API calls are made, the APIs of the corresponding terminal resources and operating system are called. The portable layer API that can be provided in the portable layer 200 includes an HTTP module that provides functions and APIs related to HTTP and HTTPS, an XML module that provides an API for an XML parsing function, A thread module that bi-passes a function provided by the UI module 100, a UI backend module that provides a window system function necessary for UI implementation in an API form, and a security storage function in an API form A resource module that provides an access interface for a Secure Storage module and terminal resources (for example, a telephone directory, a photograph, a call log, an SMS list, and the like) in the form of an API, an OS API OS API module that provides APIs in the form of call connection, SMS transmission, property setting of the terminal system, etc.), API function to interoperate with pages not included in web application, API type 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 existing in the operating system as an API type It may contain more than one, and other transport layer APIs may be added as needed. Each module of the transplantation layer 200 is implemented as a DLL in order to facilitate future updating.

이러한 이식 계층부(200)은 운영체제에 의존적이므로, 단말기에 탑재된 여러 종류의 운영체제(100)에 모두 적용할 수 있도록 구현되는 것이 바람직하다.Since the transfer layer unit 200 is dependent on the operating system, it is preferable that the transfer layer unit 200 is implemented so as to be applicable to various types of operating systems 100 mounted on the terminal.

다음으로 보안 계층부(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)에 대한 접근을 중계하는 플러그인(530)에 대한 설치 및 실행 시에, 웹 어플리케이션 및 플러그인을 인증한다. 즉, 본 발명에 의한 웹 어플리케이션 실행 장치는, 인증 모듈(310)의 인증 여부에 따라서 웹 어플리케이션 및 플러그인을 설치하거나 실행시킨다.The authentication module 310 is provided in the web application and the browser engine layer unit 500 and authenticates the web application and the plug-in upon installation and execution of the plug-in 530 that relays access to the portable layer unit 200 . That is, the web application execution apparatus according to the present invention installs or executes the web application and the plug-in according to whether or not the authentication module 310 is authenticated.

정책 모듈(320)은 접근 제어 규칙에 따라서 각 웹 어플리케이션의 이식 계층부(200)로의 접근을 제어한다. 더 구체적으로는, 각 웹 어플리케이션 별로 설정된 접근 제어 규칙을 다운 받아 저장하고, 이식 계층부(200)의 접근 요청시, 해당 웹 어플리케이션의 접근 제어 규칙을 참고하여, 접근을 허용하거나 거부한다.The policy module 320 controls access to the porting layer 200 of each web application according to an access control rule. More specifically, the access control rule set for each web application is downloaded and stored, and when the access request of the porting layer 200 is requested, access is permitted or denied by referring to the access control rule of the web application.

다음으로, 웹 어플리케이션 런타임 계층부(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 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 later. More specifically, the web application runtime layer unit 400 manages instances of the web application, performs registry management and user interface management for installing the web application and setting information. 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)를 포함하여 이루어진다. 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).

커맨드 핸들러(411)는 실행 계층부(600)으로부터 웹 어플리케이션의 실행과 관련된 명령을 IPC(Interprocess Communication)로 전달받아 해석한 뒤, 해당하는 모듈에 동작을 지시하는 것으로서, 일종의 IPC 명령 처리기이다. 커맨드 핸들러(411)에서 처리 가능한 명령어로는, 웹 어플리케이션의 실행/종료, 웹 어플리케이션 실행 장치와 관련된 설정 정보의 업데이트, 웹 어플리케이션 실행 장치의 실행 및 종료, 플러그인에 대한 인스톨/언인스톨/업데이트가 포함될 수 있다. 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), interprets the command, and instructs the corresponding module to perform the operation. The command handler 411 is an IPC command processor. Commands that can be processed by the command handler 411 include execution / termination of the web application, updating of the setting information related to the web application execution device, execution and termination of the web application execution device, and installation / uninstall / have.

컨텍스트 매니저(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. In other words, a window is generated in accordance with a command for executing a web application delivered from the command handler 411 and the browser engine module 510, and a window generation command transmitted from the browser engine module 510, and an instance of a renderer And outputs the rendered result of the page requested by the browser engine module 510 to the corresponding 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)으로 전달한다. 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.

라이프사이클 매니저(414)는, 웹 어플리케이션의 라이프 사이클을 관리한다. 하나의 웹 어플리케이션은 다수의 페이지로 구성되는데, 웹 어플리케이션의 각각의 페이지들은 방문에 의해 시작되고, 다른 페이지로 전환될 때마다 종료된다. 웹 어플리케이션은 상기 실행 계층부(600)나 다른 웹 어플리케이션 또는 네이티브 어플리케이션의 실행 요청에 의해 웹 어플리케이션 마다 하나의 윈도우를 생성하여 시작되고, 사용자가 해당 웹 어플리케이션과 관련된 모든 윈도우를 닫거나 자바 스크립트를 통한 창 닫기 요청이 발생하여 모든 윈도우가 닫히면 종료된다. 또한, 웹 어플리케이션의 인스턴스가 생성한 윈도우가 1개뿐인 상태에서 다른 웹 어플리케이션이나 외부 페이지를 로딩한 경우에도 종료하게 된다. 상기 라이프사이클 매니저(414)는 이러한 웹 어플리케이션의 시작과 종료를 관리한다.The lifecycle manager 414 manages the life cycle of the web application. One web application consists of a number of pages, each page of the web application initiated by a visit and terminated each time it switches to another page. The web application is started by creating one window for each web application by execution request of the execution layer 600 or another web application or a 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 manager 414 manages the start and end of the web application.

웹 어플리케이션 런타임 계층부(400)에서 레지스트리 모듈(420)는 웹 어플리케이션의 설치 정보 및 웹 어플리케이션 실행 장치의 구조(Configuration) 정보를 관리한다. 여기서, 실제 설치 정보 및 구조 정보는 이식 계층부(200)를 통해 단말기의 보안 스토리지에 저장한다. 더하여, 웹 어플리케이션의 설치 정보는, 웹 어플리케이션의 설치 시에 등록되거나, 단말 바이너리 패키징 시에 등록될 수 있다. 더 구체적으로, 레지스트리 모듈(420)은, 웹 어플리케이션의 설치, 삭제 및 갱신 등과 같은 웹 어플리케이션 컨텐츠 관리, 웹 어플리케이션의 속성 설정, 웹 어플리케이션의 인증 정보 추출 및 제공, 웹 어플리케이션 실행 장치 전체 또는 모듈별 갱신, 모듈간 종속성 관리 등을 포함하는 모듈 관리, 웹 어플리케이션 실행 장치의 속성 설정 기능, 및 플러그인의 설치 정보에 대한 관리기능을 수행한다. 이러한 레지스트리 모듈(420)은 웹 어플리케이션의 설치, 삭제 및 웹 어플리케이션 실행 장치 업데이트를 위한 API 등을 제공한다.In the web application runtime layer 400, the registry module 420 manages installation information of the web application and configuration information of the web application execution device. Here, the actual installation information and the structure information are stored in the secure storage of the terminal through the transplanting 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. More specifically, the registry module 420 manages web application content such as installation, deletion, and update of a web application, setting the attributes of the web application, extracting and providing authentication information of the web application, , Module management including dependency management between modules, attribute setting function of web application execution device, and management function of installation information of 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. [ More specifically, it handles processing for remaining areas other than the area where the page of the web application is output, from among the entire screen of the terminal, including a status bar for displaying the execution status and a button for user input. At this time, the annuniciator area for displaying the signal reception intensity of the antenna, the availability of the call, and the battery remaining amount may not be customized depending on the type of the operating system 100, have. 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 manager of the terminal. That is, the UI engine 430 processes UX (User experience) related functions 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 at 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)는, 해당 단말기가 온라인 상태인지, 오프라인 상태 인지에 상관없이 끊김 없는 웹 어플리케이션의 실행을 보장한다. 더 구체적으로, 외부 데이터에 접근하는 웹 어플리케이션을 실행 중에, 네트워크 연결이 끊기는 경우, 캐싱 메카니즘(cache mechanism)을 통해 로컬 스토리지에 데이터를 저장하고, 네트워크에 연결되었을 때, 로컬 스토리지에 저장되었던 데이터와 외부 데이터에 대한 동기화를 사용자가 인식하지 못하는 사이에 백그라운드로 자동 수행한다.The dynamic synchronization module 450 assures the execution of a seamless web application regardless of whether the terminal is on-line or off-line. More specifically, when a web application accessing external data is being executed, if the network connection is lost, data is stored in the local storage through a cache mechanism, and data stored in the local storage when connected to the network The synchronization of external data is automatically performed in the background while the user does not recognize it.

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

브라우저 엔진 계층부(500)은, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 계층으로서, 브라우저 엔진 모듈(510)과, 플러그인 관리 모듈(520)와, 하나 이상의 플러그인(530)을 포함한다. 이 중에서, 브라우저 엔진 모듈(510)은, HTML, CSS, JavaScript와 같은 웹 표준 언어로 작성된 웹 어플리케이션의 각 페이지를 해석하여 실행시킨다. 이러한 브라우저 엔진 모듈(510)은, 오픈 소스 기반의 브라우저 엔진인 Webkit로 구현될 수 있다. 이 경우, PC 환경과 달리 프로세서의 처리능력과 네트워크 대역폭에 제한이 있는 단말기의 환경에 맞도록 Webkit의 코드를 최적화하는 것이 바람직하다. 브라우저 엔진 모듈(510)은, 웹 표준 언어를 분석 및 랜더링하는 웹코어(WebCore)(511)와, 자바스크립트의 인터프리팅을 수행하는 스크립트코어(ScriptCore)(512)로 이루어진다. 브라우저 엔진 모듈(510)을 구현하는데 있어서, 웹코어(511)와, 스크립트코어(512)를 각각 모듈로 구성함으로써, 이를 통해 모듈별 업데이트 및 교체가 가능해 진다. 특히 브라우저 엔진 모듈(510)은, 해킹 등을 방지하기 위하여, 웹 어플리케이션 간에 상호 참조를 금지하도록 구현되는 것이 바람직하다. 이러한 브라우저 엔진 모듈(510)은, 웹 어플리케이션을 실행시키기 위하여 이식 계층부(200)을 통해 운영체제(100)의 기능을 이용한다. 더 구체적으로, 브라우저 엔진 모듈(510)은, HTTP, HTTPS와 같은 프로토콜 처리 기능과, XML 파서, XML 변환 등의 XML 처리 기능과, 윈도우 처리 기능, 폰트 처리 기능, 이미지 디코더 처리 기능, 다국어 처리를 위한 문자열 변환 기능, 타이머 등의 시스템 기능을 제공하며, 이러한 기능을 제공하기 위하여, 필요한 기본적인 기능은 이식 계층부(200)를 통해 가져온다. 즉, 이식 계층부(200)의 HTTP(s) 모듈, XLM 모듈, UI 백엔드 모듈, OS API 모듈 등을 통해 운영체제(100) 및 단말 자원에 접근하여 필요한 기능을 사용하여 각 페이지를 실행시킨다.The browser engine layer unit 500 includes a browser engine module 510, a plug-in management module 520, and one or more plug-ins 530, which interprets and executes each page of the web application. Among them, the browser engine module 510 interprets and executes each page of a web application written in a web standard language such as HTML, CSS, and JavaScript. 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. The browser engine module 510 comprises a Web core 511 for analyzing and rendering a web standard language and a script core 512 for performing JavaScript interpreting. In implementing the browser engine module 510, the web core 511 and the script core 512 are configured as modules, respectively, whereby update and replacement can be performed for each module. In particular, the browser engine module 510 is preferably configured to prohibit cross-references between web applications in order to prevent hacking and the like. The browser engine module 510 uses the functions of the operating system 100 through the porting layer 200 to execute the web application. More specifically, the browser engine module 510 includes a protocol processing function such as HTTP and HTTPS, an XML processing function such as an XML parser and XML conversion, a window processing function, a font processing function, an image decoder processing function, And a timer. In order to provide such functions, necessary basic functions are provided through the transplantation layer unit 200. That is, the HTTP (s) module, the XLM module, the UI backend module, and the OS API module of the transplanting layer unit 200 access the operating system 100 and the terminal resources to execute the respective pages using necessary functions.

더하여, 상기 브라우저 엔진 모듈(510)은, 웹 어플리케이션의 각 페이지를 실행하는 중에, 현재 윈도우로 출력되는 페이지를 제외한 다른 페이지를 추출하고, 분석 및 구조화한 후에, 구조화된 데이터를 저장하여 둔다. 그리고, 상기 다른 페이지에 대한 이벤트가 발생하면, 상기 구조화된 데이터를 가져와 바로 랜더링하여 해당 윈도우로 출력한다. 이에 의하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션의 실행 시에, 초기 실행 시간 및 페이지간 전환 시간을 단축함으로써, 실행 속도를 현저히 개선할 수 있다.In addition, while executing each page of the web application, the browser engine module 510 extracts structured data after extracting, analyzing and structuring other pages except the page output to the current window. When the event for the other page is generated, the structured data is fetched and directly rendered and output to the corresponding window. According to this, the web application execution device according to the present invention can remarkably improve the execution speed by shortening the initial execution time and the page-to-page switching time when executing the web application.

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

플러그인 관리 모듈(520)는 복수의 플러그인의 다운로드 및 설치, 설치된 플러그인의 목록 관리, 업데이트, 웹 어플리케이션의 플러그인 호출 요청에 대한 응답을 수행한다. 여기서, 신규 플러그인의 다운로드 요청, 업데이트 요청은 실행 계층부(600)에 포함된 업데이터(612)에 의해 발생하고, 해당 요청이 웹 어플리케이션 런타임 계층부(400)을 통해 플러그인 관리 모듈(520)로 전달된다. 다운로드 요청을 전달받은 플러그인 관리 모듈(520)는 OMA 다운로드 표준에 따라서, 플러그인 패키지를 다운받고, 플러그인의 설치 정보는 레지스트리 모듈(420)를 통해 단말기의 보안 저장 영역에 저장한다. 이러한 플러그인 관리 모듈(520)는 브라우저가 플러그인에 제공해야 하는 브라우저측 API와, 플러그인이 브라우저에 제공해야 하는 플러그측 API로 이루어지며, 플러그인은 브라우저측 API를 호출하여 작업을 수행하고, 브라우저는 플러그인측 API를 호출하여 플러그인의 생성/동작/소멸에 관한 플러그을 관리할 수 있다..The plug-in management module 520 performs a response to a request for downloading and installing a plurality of plug-ins, managing a list of installed plug-ins, updating, and requesting a plug-in of a web application. Here, the download request and 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 management module 520 through the web application runtime layer 400 do. In response to the download request, the plug-in management module 520 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 management module 520 includes a browser-side API that the browser must provide to the plug-in, and a plug-side API that the plug-in must provide to the browser. The plug-in calls the browser-side API to perform an operation, Side API to manage plug-ins related to the creation / operation / destruction of plug-ins.

상기 하나 이상의 플러그인(530)은, 웹 어플리케이션에서 요구하는 웹 표준 이외의 단말기의 운영체제 및 자원과 관련된 기능을 호출하여 그에 대한 응답을 브라우저 엔진 모듈(510)로 전달하는 것으로서, 웹 어플리케이션의 단말 자원과 관련된 기능 호출을 이식 계층부(200)의 리소스 모듈에 전달하는 리소스(Resource) 플러그인과, 웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부(200)의 OS API 모듈에 전달하고, 웹 어플리케이션 런타임 계층부(400)의 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인과, 웹 어플리케이션에 포함되지 않은 페이지와의 연동을 위한 기능 호출을 이식 계층부(200)의 협업(Collaboration) 모듈로 전달하는 협업 플러그인과, 웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부(200)의 동기화 모듈(Sync module)에 전달하는 동기화(Sync) 플러그인 중에서 하나 이상을 포함할 수 있으며, 이외에도 필요에 따라서 다른 여러 가지 기능에 대한 플러그인을 추가할 수 있다.The one or more plug-ins 530 call a function related to an operating system and resources of a terminal other than the web standard required by the web application and transmit a response to the browser system to the browser engine module 510, A resource plugin for transferring a related function call to the resource module of the transplantation layer 200 and a terminal OS API calling function of the web application to the OS API module of the transplantation layer 200, The system API plug-in providing the access interface for the core function of the mobile terminal 400 and the function call for linking with the page not included in the web application to the collaboration module of the transplantation layer 200 A plug-in, and a function call related to the synchronization agent of the web application, May include one or more of the synchronization (Sync) plug-in for delivering the (Sync module), and in addition you can add a plug-in for various other functions as required.

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

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

실행 계층부(600)은, 브라우저 엔진 컨테이너 코어의 엔트리 포인트 역할을 하며, 단일 인스턴스 형태로 동작한다. 이러한 실행 계층부(600)은, 네이티브 OS의 실행 파일 형태로 구현되거나, DLL로 구현될 수 있다. 이때, 실행 계층부(600)는 이식성을 높이기 위하여, 최대한 이식 계층부(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, the execution layer 600 accesses the operating system 100 using the transplantation layer 200 as much as possible in order to improve the portability. 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 And transmits a web application execution command according to the user's request to the web application runtime layer 400 or the browser engine layer unit 500. In addition, an SMS-push or self-check checks the update of each module of the web application execution device and transfers the related download request to the corresponding module. In particular, an update to the plug-in 530 included in the browser engine layer unit 500 is checked and a download request is transmitted to the plug-in management module 520. The execution layer 600 includes a container agent 610, a dummy execution module 620, and a idle agent 630.

컨테이너 에이전트(610)은, 단말의 네이티브 어플리케이션 형태로 구현되며, 더미 실행 모듈(620)을 로디아여, 단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 명령을 전달한다. 더 구체적으로는, 웹 어플리케이션 실행 장치가 실행중인 상태에서, 웹 어플리케이션의 실행이 요청되면, 해당 웹 어플리케이션의 실행 명령을 더미 실행 모듈(620)을 통해 바로 웹 어플리케이션 런타임 모듈(410)의 커맨드 핸들러(411)로 전달하고, 웹 어플리케이션 실행 장치가 실행 중이 아닌 경우에는, 더미 실행 모듈(620)을 통해 브라우저 엔진 컨테이너 코어를 로딩하여 실행시킨 후, 상기 웹 어플리케이션의 실행 명령을 커맨드 핸들러(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 form of the terminal, and transmits the execution command of the web application through the shortcut menu or the native menu of the terminal by loading 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 directly transmitted to the command handler (not shown) of the web application runtime module 410 through the dummy execution module 620 411). When the web application execution apparatus is not running, the browser engine container core is loaded and executed through the dummy execution module 620, and the execution command of the web application is transmitted to the command handler 411 do. 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 an 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 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의 특성에 맞춰 해당 규약에 따라 구현되며, 단말의 대기화면(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 protocol according to the characteristics of the native OS. The standby mode agent 630 is loaded by a native idle screen manager of the terminal. If there is a request for executing a specific web application on the idle screen, To the web application runtime layer (400).

다음으로, 하나 이상의 시스템 웹 어플리케이션(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 unit 400 when 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) 위에서 동작하여, 운영체제의 종류에 관계없이, 웹 어플리케이션에 대한 동일한 실행 환경을 제공한다.The web application execution device thus constructed is installed in a terminal equipped with various types of operating systems 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 the web standard, and generates a window of a native system each time a web application is executed, and generates a renderer thread to execute a default or request page of the web application. Also, it is possible for a single web application to create multiple windows, in which renderer threads 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)를 수정함에 의해 구현될 수 있다. Here, the security between the web applications can be implemented by forbidding the cross reference of the web application. 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 script 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 300.

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

도 2는 본 발명에 의한 웹 어플리케이션 실행 방법의 기본 절차를 나타낸 흐름도이다.2 is a flowchart illustrating a basic procedure of a web application execution method according to the present invention.

도 2를 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 특정 웹 어플리케이션의 실행 요청이 발생하면, 먼저, 상기 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스를 생성한다(S201, S202). 즉, 웹 어플리케이션의 실행 명령이 상기 웹 어플리케이션 런타임 모듈(410)의 컨텍스트 매니저(412)로 전달되면, 상기 컨텍스트 매니저(412)의 제어에 의하여, 해당 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스를 생성한다. 여기서, 웹 어플리케이션의 실행 명령은, 단축아이콘, 네이티브 메뉴, 웹 어플리케이션 매니저(710), 대기화면 등 다양한 경로를 통해서 전달될 수 있는데 이에 대해서는 추후 더 구체적으로 설명하기로 한다.Referring to FIG. 2, when an execution request of a specific web application occurs, the web application execution apparatus according to the present invention creates a window and a renderer instance for the web application (S201, S202). That is, when an execution command of the web application is transferred to the context manager 412 of the web application runtime module 410, the context manager 412 generates a window and a renderer instance for the corresponding web application. Here, the execution command of the web application can be transmitted through various paths such as a shortcut icon, a native menu, a web application manager 710, and a idle screen, which will be described in more detail later.

상기와 같이, 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스가 생성되면, 해당 브라우저 엔진 모듈(510)이 웹 어플리케이션에 포함된 페이지분석 및 구조화하고 랜더링하여 상기 생성한 윈도우로 출력한다(S203). 여기서, 초기에 실행되는 페이지는 웹 어플리케이션의 설치 정보에 디폴트로 설정된 초기 페이지일 수 있으며, 사용자가 임의로 지정한 페이지일 수도 있다. 이 경우, 사용자는 웹 어플리케이션의 실행 요청 시, 초기 실행할 페이지의 주소를 함께 지정할 수 있다.As described above, when a window and a renderer instance for a web application are generated, the corresponding browser engine module 510 analyzes, structures, and rasterizes a page included in the web application and outputs the generated window to the generated window (S203). Here, the page to be initially executed may be an initial page set as a default in the installation information of the web application, or may be a page arbitrarily designated by the user. In this case, when a web application is requested to be executed, the user can specify the address of the page to be initially executed.

더하여, 상기 브라우저 엔진 모듈(510)은, 상기 실행된 지정 페이지 이외에 상기 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출한다(S204). 상기 하나 이상의 다른 페이지는 현재 출력된 페이지에서 연결되는 페이지일 수도 있으며, 상기 웹 어플리케이션을 구성하는 모든 페이지일 수도 있다. 즉, 매 페이지의 실행 시마다 각각 관련된 다른 페이지를 추출할 수도 있으며, 초기 페이지 실행 시에, 나머지 모든 페이지를 추출할 수도 있다.In addition, the browser engine module 510 extracts one or more other pages included in the web application in addition to the executed designated page (S204). The one or more other pages may be pages connected to the currently output page, or may be all pages constituting 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 트리 및 스타일 트리의 관련 노드를 연결하여, 해당 페이지를 구조화한다(S205). 도 6을 참조하여 더 구체적으로 설명하면, 웹 어플리케이션의 각 페이지는, 도 6에 도시된 바와 같이, HTML, xHTML과 같은 웹 표준 언어로 작성된 웹 컨텐츠(61)와, css와 같은 포맷 정보(62)를 포함한다. 이러한 웹 페이지의 실행은, 해당 페이지의 웹 컨텐츠(61)와 포맷 정보(62)를 분석하여, DOM(Document Object Model) 트리(63)와 랜더러스타일 트리(64)를 구성한 후, 상기 DOM 트리(63)와 랜더러스타일 트리(64)의 관련 노드를 연결하여, 랜더러 오브젝트(65)를 생성한다. 그리고, 상기 생성한 랜더러 오브젝트를 통해 페이지를 구조화하여 레이아웃(66)을 지정한다. 이렇게 구조화된 데이터는 랜더링을 통해 화면으로 출력될 수 있다. The browser engine module 510 analyzes the extracted one or more other pages, creates a DOM tree and a style tree, and connects the related nodes of the DOM tree and the style tree to structure the corresponding page (S 205). 6, each page of the web application includes web content 61 written in a web standard language such as HTML and xHTML, format information 62 such as css, ). This execution of the web page is performed by analyzing the web content 61 and the format information 62 of the page and constructing a DOM (Document Object Model) tree 63 and a renderer style tree 64, 63 and an associated node of the renderer style tree 64 to create a renderer object 65. [ A layout 66 is specified by structuring the page through the generated renderer object. The structured data can be output to the screen through rendering.

상기 단계(S205)에서는, 각 페이지에 대하여 분석 및 구조화까지만을 수행한다.In step S205, only the analysis and structuring of each page is performed.

이어서, 상기 브라우저 엔진 모듈(510)은 상기 구조화된 상기 다른 페이지의 데이터를 바로 랜더링하여 출력하지 않고 시리얼라이즈화(Serialization)한 후 바이너리 파일로 저장한다(S206). 상기 다른 페이지의 바이너리 파일은 해당 웹 어플리케이션이 실행되는 동안, 임시로 저장되는 것이며, 해당 웹 어플리케이션의 종료 시에 삭제될 수 있다.Then, the browser engine module 510 serializes the structured data of the other pages without directly rendering the data, and stores the serialized data in a binary file (S206). 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)은, 상기 다른 페이지에 대한 이벤트, 더 구체적으로는 상기 다른 페이지로의 전환 요청이 발생하는 지를 확인한다(S207). Then, the browser engine module 510 checks whether an event for the other page, more specifically, a request to switch to another page occurs (S207).

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

상기 단계(S204~S208)는 해당하는 웹 어플리케이션이 종료될 때까지 반복 수행된다(S209).The above steps S204 to S208 are repeated until the corresponding web application is terminated (S209).

이에 의하면, 다수의 페이지로 구성되는 웹 어플리케이션의 실행 시, 단말기에 저장되어 있는 웹 어플리케이션의 각 페이지 별 데이터를 가져와, 미리 파싱 및 레이아웃 지정까지 처리함으로써, 해당 페이지의 실행 시 미리 레이아웃 지정까지 처리된 데이터를 가져와 랜더링하면 된다. 따라서, 본 발명에 의한 웹 어플리케이션 실행 방법은, 웹 어플리케이션의 초기 실행 시간이나 페이지간 전환 시간을 단축시킴으로써, 웹 어플리케이션의 실행 속도를 향상시킬 수 있다.In this case, when a web application composed of a plurality of pages is executed, data for each page of the web application stored in the terminal is fetched, and pre-parsing and layout designation are also processed. Thus, 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.

본 발명에 의한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션 실행 요청 처리는 도 3 내지 도 5와 같이 이루어질 수 있다.In the web application execution method according to the present invention, the web application execution request processing may be performed as shown in FIG. 3 to FIG.

도 3은 본 발명에 의한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션의 실행 명령을 전달하는 방법의 제1 실시 예를 나타낸 흐름도이다. 도 3를 참조하면, 사용자의 웹 어플리케이션 실행 요청은, 단축 아이콘을 이용하여 이루어질 수 있다. 단축아이콘을 이용한 웹 어플리케이션의 실행 요청이 입력되면(S301), 실행 계층부(600)의 컨테이너 에이전트(610)가 동작하여 웹 어플리케이션 런타임 계층부(400)와 브라우저 엔진 계층부(500)를 포함하는 브라우저 엔진 컨테이너 코어가 실행 중인지를 확인한다(S302).3 is a flowchart illustrating a first embodiment of a method for transmitting an execution command of a web application in a web application execution method according to the present invention. Referring to FIG. 3, a user's web application execution request can be made using a shortcut icon. When the execution request of the web application using the shortcut icon is input in step S301, the container agent 610 of the execution layer 600 operates and the web application runtime layer 400 and the browser engine layer 500 It is confirmed whether the browser engine container core is running (S302).

확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면(S303), 더미 실행 모듈(620)을 통해 상기 브라우저 엔진 컨테이너 코어, 즉, 이식 계층부(200)와, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)를 로딩한다(S304).If the browser engine container core is not running (S303), the browser engine container core, i.e., the portability layer unit 200, the security layer unit 300, the web application runtime The layer unit 400 and the browser engine layer unit 500 are loaded (S304).

상기 단계(S304)에 의해 또는 이전에 브라우저 엔진 컨테이너 코어가 실행되어 있는 상태이면, 웹 어플리케이션 런타임 모듈(410)의 커맨드 핸들러(411)로 웹 어플리케이션 실행 명령을 전달한다(S305).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 S305.

상기 커맨드 핸들러(511)는 실행 계층부(600)로부터 전달된 명령을 해석하여, 웹 어플리케이션 실행 명령이면 컨텍스트 매니저(412)에게 상기 웹 어플리케이션의 실행 요청을 전달한다(S306).The command handler 511 analyzes the command transmitted from the execution layer 600, and transmits the execution request of the web application to the context manager 412 if the command is a web application execution command (S306).

이에 컨텍스트 매니저(412)가 상기 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스를 생성한다(S307, S308).The context manager 412 creates a window and a renderer instance for the web application (S307, S308).

이후의 동작은, 도 2에 보인 단계(S202~S209)와 동일하다.The subsequent operations are the same as the steps S202 to S209 shown in Fig.

도 4는 본 발명에 의한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션의 실행 명령을 전달하는 방법의 제2 실시 예를 나타낸 흐름도이다. 도 4를 참조하면, 사용자의 웹 어플리케이션 실행 요청은, 웹 어플리케이션 매니저(710)에 의해 이루어질 수 있다. 4 is a flowchart illustrating a second embodiment of a method for transmitting an execution command of a web application in a web application execution method according to the present invention. Referring to FIG. 4, the web application execution request of the user may be made by the web application manager 710.

이 경우, 웹 어플리케이션 매니저(710)는, 레지스트리 모듈(420)에 저장된 웹 어플리케이션의 설치 정보를 참조하여, 현재 설치된 웹 어플리케이션의 목록을 사용자에게 안내한다. 여기서, 사용자가 특정 웹 어플리케이션의 실행을 요청하면, 웹 어플리케이션 매니저(710)는, 본 발명에 의한 웹 어플리케이션 실행 장치에서 제공하는 실행 API를 호출한다(S402).In this case, the web application manager 710 refers to the installation information of the web application stored in the registry module 420, and guides 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 an execution API provided by the web application executing apparatus according to the present invention (S402).

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

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

이후 상기 컨텍스트 매니저(412)에 의해 상기 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스가 생성된다(S405, S406).Then, the context manager 412 creates a window and a renderer instance for the web application (S405, S406).

이후의 과정은 도 2에 보인 단계(S202~S209)와 동일하다.The subsequent steps are the same as the steps S202 to S209 shown in Fig.

마지막으로, 도 5은 본 발명에 의한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션의 실행 명령을 전달하는 방법에 대한 제3 실시 예를 나타낸 흐름도이다.Lastly, FIG. 5 is a flowchart illustrating a method for transmitting an execution command of a web application in a web application execution method according to a third embodiment of the present invention.

도 5를 참조하면, 사용자는 단말기의 대기화면에서 특정 웹 어플리케이션의 실행을 요청할 수 있다(S501). 이 경우, 단말기는 대기화면이 활성화된 상태로서, 이때, 웹 어플리케이션 실행 장치는 비활성화 상태이다.Referring to FIG. 5, the user can request execution of a specific web application on the idle screen of the terminal (S501). In this case, the terminal is in the activated state of the idle screen, and the web application execution apparatus is in the inactive state at this time.

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

상기 대기모드 에이전트(630)은, 이식 계층부(200)과, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)로 이루어지는 브라우저 엔진 컨테이너 코어를 로딩하여, 대기화면 모드 실행 API를 호출한다(S503).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 calls the idle screen mode execution API (S503).

상기 대기화면 모드 실행 API 호출을 통해 컨텍스트 매니저(412)가 웹 어플리케이션의 실행 명령을 전달받고, 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스를 생성한다(S504, S505).The context manager 412 receives the execution command of the web application through the idle screen mode execution API call and creates a window and a renderer instance for the web application at steps S504 and S505.

이후의 과정은, 도 2의 단계(S202~S209)와 동일하다.The subsequent steps are the same as the steps S202 to S209 in Fig.

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

본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications, and variations will be apparent to those skilled in the art. It is self-evident to those who have. 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.

본 발명은, 운영체제를 탑재한 단말에 적용되어, 웹 표준에 따르면서 단말 자원을 이용할 수 있는 웹 어플리케이션의 실행 환경을 제공하면서, 웹 어플리케이션 및 플러그인의 실행 및 설치와, 단말 자원에 대한 접근을 제어하여, 정당한 웹 어플리케이션 및 플러그인이 설치되거나 실행되고, 실행된 웹 어플리케이션이 부여된 권한 내에서 단말 자원에 접근하도록 할 수 있으며, 그 결과, 본 발명은 해킹 등의 불순한 목적으로 인해 변조된 웹 어플리케이션이 설치되거나 실행되지 못하도록 하고, 불순한 의도를 갖는 웹 어플리케이션에 의해서 단말 자원이 해킹되는 것을 방지하고, 웹 어플리케이션의 설치 및 이용에 대한 안전성을 사용자에게 제공할 수 있다.The present invention is applied to a terminal equipped with an operating system, and provides an execution environment of a web application that can use terminal resources according to a web standard, while controlling execution and installation of a web application and a plug-in and access to terminal resources The legitimate web application and the plug-in are installed or executed, and the executed web application can access the terminal resource within the granted authority. As a result, the present invention can prevent the web application, which is modulated due to an impure purpose such as hacking, Thereby preventing the terminal resources from being hacked by the web application having the impure intention and providing the user with the security for the installation and use of the web application.

100: 운영체제(OS, Operating Systsem)
200: 이식 계층부 (Porting layer)
300: 보안 계층부 (Security layer)
400: 웹 어플리케이션 런타임 계층부 (Web Application Runtime layer)
500: 브라우저 엔진 계층부 (Browser Engine layer)
600: 실행 계층부 (Executable layer)
700: 시스템 웹 어플리케이션 (System Web Application)
100: Operating system (OS, Operating System)
200: Porting layer
300: Security layer
400: Web Application Runtime layer
500: Browser Engine layer
600: Executable layer
700: System Web Application

Claims (17)

웹 어플리케이션의 각 페이지를 해석하여 화면으로 출력하되, 상기 웹 어플리케이션에 속하는 하나 이상의 다른 페이지를 분석 및 구조화한 후, 구조화된 데이터를 저장하여 두고, 상기 다른 페이지에 대한 이벤트 발생시 상기 구조화된 데이터를 랜더링하여 화면으로 출력하는 브라우저 엔진 계층부;
다수의 운영체제의 기능 및 단말 자원에 대하여 통합된 이식 계층 API(Application Programming Interface)를 제공하고, 상기 브라우저 엔진 계층부가 특정 이식 계층 API를 호출하면, 대응하는 운영체제의 API를 호출하고 그 응답을 수신하여 상기 브라우저 엔진 계층부로 전달하는 이식 계층부; 및
웹 어플리케이션의 실행 명령을 상기 브라우저 엔진 계층부로 전달하며, 상기 브라우저 엔진 계층부에서 페이지를 실행하는데 있어서 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
Analyzing and structuring one or more other pages belonging to the web application, storing structured data, and rendering the structured data when rendering an event for the other page, A browser engine layer unit for outputting the image data to a screen;
And provides an integrated transport layer API (Application Programming Interface) for functions and terminal resources of a plurality of operating systems. When the browser engine layer calls the specific transport layer API, the API of the corresponding operating system is called and the response is received An importing layer unit for delivering the URL to the browser engine layer unit; And
And a web application runtime layer for delivering an execution command of the web application to the browser engine layer and providing the network and UI necessary for executing the page in the browser engine layer.
제1항에 있어서,
상기 브라우저 엔진 계층부와 이식 계층부 및 웹 어플리케이션 런타임 계층부를 로딩하고, 사용자의 요청에 따른 웹 어플리케이션의 실행 명령을 상기 웹 어플리케이션 런타임 계층부로 전달하는 실행 계층부를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The method according to claim 1,
Further comprising an execution layer unit for loading the browser engine layer unit, the porting layer unit, and the web application runtime layer unit and transmitting an execution command of the web application according to a user's request to the web application runtime layer unit. Device.
제1항에 있어서,
상기 웹 어플리케이션 및 상기 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제 기능을 호출하는 플러그인의 인증서를 검증하고, 접근 제어 규칙에 따라서 웹 어플리케이션의 실행 중 상기 이식 계층에 대한 접근을 제어하는 보안 계층부를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
The method according to claim 1,
The web application and the browser engine layer verifies the certificate of the plug-in that calls the resources and operating system functions of the terminal other than the web standard and controls access to the transplantation layer during execution of the web application according to the access control rule Wherein the web application execution unit further comprises a layer unit.
제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
And one or more plug-ins installed by the plug-in management module and operating through the plug-in management module to invoke resources and operating system functions of terminals other than the web standard, respectively, and return a response thereto to the browser engine module 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,
An UI backend module that provides functions of the window system necessary for UI (User Interface) implementation in an API form,
Secure storage module that provides secure storage function in API form,
A resource module for providing 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,
A Collaboration module for providing an API function for interworking with a native application installed in the terminal,
A synchronization module for providing an API interface for interworking with a synchronization application existing in an external device,
And a local storage module providing an operating system's local storage function in an API form.
제2항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈;
웹 어플리케이션 및 플러그인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈;
상기 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI(User Interface) 및 사용자 입력을 처리하는 UI 엔진;
웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리하는 네트워크 셀렉터; 및
웹 어플리케이션을 실행 중에, 네트워크 연결이 끊긴 동안의 데이터를 로컬 스토리지에 저장하고, 네트워크가 연결되면 로컬 스토리지에 저장한 데이터와 외부 데이터에 대한 동기화를 수행하는 다이내믹 동기화 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
3. The method of claim 2, 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.
제2항에 있어서, 상기 실행 계층부는
웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부를 로딩한 후, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 더미 실행 모듈;
단축 아이콘 또는 단말의 메뉴를 통한 웹 어플리케이션의 실행 요청에 따라서 동작하여, 더미 실행 모듈을 실행시켜 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 컨테이너 에이전트; 및
단말의 대기화면 관리자에 의해 로딩되어, 대기화면에서의 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 계층부로 전달하는 대기모드 에이전트를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
3. The apparatus of claim 2, wherein the execution layer
A dummy execution module that loads a web application runtime execution layer, a browser engine layer, and an application layer, and then transmits a web application execution command to the web application runtime execution layer;
A container agent that operates according to a shortening icon or a request for executing a web application through a menu of the terminal, and executes the dummy execution module to deliver a web application execution command to the web application runtime execution layer; And
And a standby mode agent that is loaded by the standby screen manager of the terminal and forwards the web application execution command in the standby screen to the web application runtime layer.
제3항에 있어서, 상기 보안 계층부는
웹 어플리케이션 및 상기 플러그인의 설치 또는 실행 전에, 상기 웹 어플리케이션 및 플러그인의 인증서를 검증하는 인증 모듈; 및
웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 상기 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
4. The apparatus of claim 3, wherein the security layer
An authentication module for verifying a certificate of the web application and the plug-in before installing or executing the web application and the plug-in; 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.
제4항에 있어서, 상기 하나 이상의 플러그인은
단말 자원과 관련된 기능 호출을 상기 이식계층부로 전달하는 리소스 플러그인과,
웹 어플리케이션의 단말 및 OS API에 대한 기능 호출을 상기 이식 계층부에 전달하고, 웹 어플리케이션 런타임 계층부의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인과,
웹 어플리케이션에 포함되지 않은 페이지와의 연동을 위한 기능 호출을 이식 계층부로 전달하는 협업(Collaboration) 플러그인과,
웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부에 전달하는 동기화(Sync) 플러그인 중에서 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
5. The method of claim 4, wherein the one or more plug-
A resource plugin for transmitting a function call related to the terminal resource to the transplantation layer,
A system API plug-in for delivering a function call to the terminal of the web application and the OS API to the transplantation 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 with a page not included in the web 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.
제6항에 있어서, 상기 웹 어플리케이션 런타임 모듈은
상기 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러;
상기 커맨드 핸들러 또는 상기 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저;
상기 컨텍스트 매니저에서 생성한 윈도우와 관련된 이벤트 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 상기 UI 엔진에 전달하는 이벤트 핸들러; 및
다수의 페이지를 포함하는 웹 어플리케이션 및 그의 각 페이지에 대한 라이프사이클을 관리하는 라이프사이클 매니저를 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
7. The method of claim 6, 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 windows and renderers for each web application according to the command handler or the browser engine layer unit;
An event handler for processing an event related to the window generated by the context manager and a system related event of the web application execution device, and transmitting the event to the UI engine 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.
제10항에 있어서, 상기 커맨드 핸들러에서 처리되는 명령어는,
웹 어플리케이션의 실행 및 종료, 웹 어플리케이션 실행 장치와 관련된 설정 정보의 업데이트, 웹 어플리케이션 실행 장치의 실행 및 종료, 상기 브라우저 엔진 계층부에 설치되는 플러그 인에 대한 인스톨, 언인스톨, 및 업데이트 중에서 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
11. The method of claim 10, wherein the command processed by the command handler comprises:
Execution and termination of the web application, updating of setting information related to the web application execution device, execution and termination of the web application execution device, installation, uninstallation, and update of the plug-in installed in the browser engine layer portion The web application executing apparatus comprising:
제1항 내지 제11항 중 어느 한 항에 기재된 웹 어플리케이션 실행 장치를 구비한 단말기.A terminal equipped with the web application execution apparatus according to any one of claims 1 to 11. 다수의 운영체제의 기능 및 단말의 자원에 대한 이식 계층 API를 지원하는 이식 계층부와, 브라우저 엔진 계층부에서 페이지를 실행하는데 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부와, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부를 포함하는 브라우저 엔진 컨테이너 코어와, 상기 브라우저 엔진 컨테이너 코어의 엔트리 포인트인 실행 계층부를 포함하는 웹 어플리케이션 실행 장치에 의한, 웹 어플리케이션 실행 방법에 있어서,
상기 웹 어플리케이션 런타임 계층부가 웹 어플리케이션 실행 요청이 있으면, 상기 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스를 생성하는 단계;
상기 브라우저 엔진 계층부가 상기 웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 분석, 구조화 및 랜더링하여 상기 생성한 윈도우로 출력하는 단계;
상기 출력된 페이지 이외에 상기 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계;
상기 하나 이상의 다른 페이지를 분석 및 구조화하는 단계;
상기 구조화된 다른 페이지의 데이터를 저장하는 단계;
상기 다른 페이지에 대한 이벤트 발생을 확인하는 단계;
이벤트가 발생하면, 상기 구조화된 다른 페이지의 데이터를 랜더링하여 상기 윈도우로 출력하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
A web application runtime layer for providing a network and a UI required to execute a page in the browser engine layer unit, a web application runtime layer for providing a web page for each page of the web application, A web application execution method according to a web application execution device including a browser engine container core including a browser engine layer that interprets and executes a browser engine container core and an execution layer that is an entry point of the browser engine container core,
Creating a window and a renderer instance for the web application if the web application runtime layer requests a web application execution;
Analyzing, structuring, and rendering a designated page from the pages included in the web application and outputting the rendered page to the browser engine layer;
Extracting one or more other pages included in the web application other than the output page;
Analyzing and structuring the one or more other pages;
Storing data of the structured other page;
Confirming occurrence of an event for the other page;
And rendering the data of the structured other page when the event occurs, and outputting the rendered data to the window.
제13항에 있어서, 상기 윈도우 및 랜더러 인스턴스를 생성하는 단계이전에,
사용자의 웹 어플리케이션의 단축 아이콘을 이용한 실행 요청을 입력되면, 상기 실행 계층부에서 상기 브라우저 엔진 컨테이너 코어의 실행 여부를 확인하는 단계;
확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면 상기 브라우저 엔진 컨테이너 코어를 로딩하는 단계; 및
상기 브라우저 엔진 컨테이너 코어가 실행되면, 상기 브라우저 엔진 컨테이너 코어의 웹 어플리케이션 런타임 계층부로 웹 어플리케이션 실행 명령을 전달하는 단계;
를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
14. The method of claim 13, wherein prior to creating the window and renderer instance,
Checking whether execution of the browser engine container core is performed by the execution layer when the execution request using the shortcut icon of the user's web application is input;
Loading the browser engine container core if the browser engine container core is not running; And
When the browser engine container core is executed, transmitting a web application execution command to a web application runtime layer of the browser engine container core;
The method of claim 1, further comprising:
제13항에 있어서, 상기 윈도우 및 랜더러 인스턴스를 생성하는 단계이전에,
설치된 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저에서, 사용자의 웹 어플리케이션의 실행 요청에 따라서 실행 API를 호출하는 단계;
상기 브라우저 엔진 컨테이너 코어가 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인을 로딩하는 단계; 및
상기 로딩된 시스템 API 플러그인이 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 웹 어플리케이션의 실행 명령을 전달하는 단계;
를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
14. The method of claim 13, wherein prior to creating the window and renderer instance,
Calling an execution API in response to a request for execution of a web application by a web application manager managing an installed web application;
Loading the system API plug-in wherein the browser engine container core provides an access interface to the core functionality; And
Transmitting the execution command of the web application to the context manager of the web application runtime layer unit;
The method of claim 1, further comprising:
제13항에 있어서, 상기 윈도우 및 랜더러 인스턴스를 생성하는 단계이전에,
단말의 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 상기 실행 계층부의 대기모드 에이전트를 로딩하는 단계; 및
상기 대기모드 에이전트가 상기 브라우저 엔진 컨테이너 코어를 로딩하고, 대기화면 모드 실행 API를 호출하여 웹 어플리케이션의 실행 요청을 상기 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 전달하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
14. The method of claim 13, wherein prior to creating the window and renderer instance,
The idle screen manager of the terminal receives the user's web application execution request and loads the idle mode agent of the execution layer; And
The standby mode agent loading the browser engine container core and invoking the idle screen mode execution API to deliver an execution request of the web application to the context manager of the web application runtime layer. How to do it.
제13항 내지 제16항 중 어느 한 항에 기재된 웹 어플리케이션 실행 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium on which a program for executing the web application execution method according to any one of claims 13 to 16 is recorded.
KR20100043745A 2010-05-11 2010-05-11 Device and method for executing web application KR101482151B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100043745A KR101482151B1 (en) 2010-05-11 2010-05-11 Device and method for executing web application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100043745A KR101482151B1 (en) 2010-05-11 2010-05-11 Device and method for executing web application

Publications (2)

Publication Number Publication Date
KR20110124406A KR20110124406A (en) 2011-11-17
KR101482151B1 true KR101482151B1 (en) 2015-01-14

Family

ID=45394155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100043745A KR101482151B1 (en) 2010-05-11 2010-05-11 Device and method for executing web application

Country Status (1)

Country Link
KR (1) KR101482151B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966508B2 (en) 2012-02-20 2015-02-24 Electronics And Telecommunications Research Institute Method for executing hybrid web application and apparatus therefor
KR101383056B1 (en) * 2012-03-05 2014-04-08 주식회사 인프라웨어 Method for providing web application linkaging whith netive menu using script and the smart terminal thereof
KR101919949B1 (en) * 2012-10-08 2018-11-19 에스케이플래닛 주식회사 Message service system for web application and method of the same
CN103246533B (en) * 2013-04-11 2017-03-29 小米科技有限责任公司 A kind of method for adding plug-in unit in address list, device and equipment
KR101649403B1 (en) * 2014-04-25 2016-08-18 한양대학교 산학협력단 Apparatus and method for loading application
KR102249197B1 (en) 2014-05-31 2021-05-10 삼성전자주식회사 User terminal apparatus, communication system and control method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040013097A (en) * 2001-07-04 2004-02-11 코기줌 인터메디아 아게 Category based, extensible and interactive system for document retrieval
US20100023953A1 (en) 2008-07-25 2010-01-28 Samsung Electronic Co., Ltd. Method and apparatus for executing application
KR20110122996A (en) * 2010-05-06 2011-11-14 에스케이플래닛 주식회사 Apparatus for executing application, method thereof and computer recordable medium storing the method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040013097A (en) * 2001-07-04 2004-02-11 코기줌 인터메디아 아게 Category based, extensible and interactive system for document retrieval
US20100023953A1 (en) 2008-07-25 2010-01-28 Samsung Electronic Co., Ltd. Method and apparatus for executing application
KR20110122996A (en) * 2010-05-06 2011-11-14 에스케이플래닛 주식회사 Apparatus for executing application, method thereof and computer recordable medium storing the method

Also Published As

Publication number Publication date
KR20110124406A (en) 2011-11-17

Similar Documents

Publication Publication Date Title
KR101482150B1 (en) Web application executable device and web application management method therof
KR101453742B1 (en) Security providing method and device for executing of mobile Web application
US8856805B2 (en) Virtual channel for embedded process communication
US8407584B1 (en) Stable and secure use of content scripts in browser extensions
JP6192534B2 (en) Virtual application extension point
JP5658283B2 (en) Application operating method, apparatus and system
US9798555B2 (en) Application implementation method and apparatus
EP3734449B1 (en) Systems and methods for integration of an application runtime environment into a user computing environment
US8843820B1 (en) Content script blacklisting for use with browser extensions
US8887152B1 (en) Android application virtual environment
US7640542B2 (en) Managing midlet suites in OSGI environment
KR101482151B1 (en) Device and method for executing web application
CN110874236B (en) Cross-platform application device, terminal and storage medium
US20120227032A1 (en) Method, apparatus, and system for invoking widget
CN109525584B (en) Method for constructing mobile end cross-platform multi-type application container
CN105302563A (en) Plug-in method and system for mobile application service
CN111596916A (en) Application program management method, device and equipment and computer storage medium
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
CN101751258A (en) Intelligent card and developing method, system and deployment method for intelligent card application
US20200356721A1 (en) Rendering Based on a Document Object Model
KR101460515B1 (en) Apparatus for executing application, method thereof and computer recordable medium storing the method
CN115168007A (en) Method, apparatus and program carrier for cross-platform application migration
CN116032864A (en) Android-based instant messaging system and communication method thereof
CN117369946A (en) Container deployment method and device based on DPU, electronic equipment and medium

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