KR20110123867A - 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 - Google Patents
웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 Download PDFInfo
- Publication number
- KR20110123867A KR20110123867A KR1020100043321A KR20100043321A KR20110123867A KR 20110123867 A KR20110123867 A KR 20110123867A KR 1020100043321 A KR1020100043321 A KR 1020100043321A KR 20100043321 A KR20100043321 A KR 20100043321A KR 20110123867 A KR20110123867 A KR 20110123867A
- Authority
- KR
- South Korea
- Prior art keywords
- web application
- execution
- web
- layer unit
- module
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법에 관한 것으로서, 단말에 탑재된 운영체제의 종류에 무관하게 단말의 자원 및 기능을 이용하여 웹 어플리케이션을 실행할 수 있는 환경을 제공하면서, 다수의 페이지를 포함하는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행, 및 업데이트하기 위한 것이다. 본 발명에 따르면, URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받으면, 로컬 스토리지에 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하여, 웹 어플리케이션이 로컬 스토리지에 존재할 경우, 로컬 스토리지에 저장된 웹 어플리케이션을 실행한다.
Description
본 발명은 단말에서 웹 어플리케이션을 실행하기 위한 웹 어플리케이션 관리 방법 및 장치에 관한 것으로서, 더욱 상세하게는 다수의 페이지를 포함하는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행, 및 업데이트하는 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법에 관한 것이다.
최근 이동 통신 단말에 대한 오픈 환경이 제공되면서, 서비스의 차별화를 위하여 개방형 어플리케이션 및 플랫폼 환경이 요구되고 있다.
더 구체적으로, 사용자가 자신이 원하는 모바일 어플리케이션을 자유롭게 선택하여 설치할 수 있는 스마트 폰이 급성장하면서, 이러한 모바일 어플리케이션을 자유롭게 거래할 수 있는 OMP(Open Market Place)까지 활성화되고 있다.
그런데 현재 스마트 폰에는 다양한 종류의 운영체제가 사용되고 있기 때문에, 어플리케이션 개발자는 여러 종류의 운영체제 환경을 감안하여 모바일 어플리케이션을 개발하여야 한다.
더 구체적으로 설명하면, 운영 체제(Operating System)는 그 자신이 이식(porting)된 단말의 자원 및 기능 등을 관리하며, 그 단말에 이식된 어플리케이션(Application)이 요청하는 경우, 단말의 자원 및 기능의 일부 또는 전부의 접근을 어플리케이션에 허여할 수 있다. 이는 운영 체제가 어플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)를 제공함으로써 이루어진다. 바꿔 말하면, 어플리케이션은 운영 체제가 제공하는 API를 참조하여 장치의 자원 및 기능에 접근한다. 따라서 개발자들은 특정 운영 체제가 이식된 장치의 어플리케이션을 개발하기 위해서는 운영 체제가 제공하는 API의 형식에 따라 개발하여야 하며, 다양한 운영 체제가 사용되고 있는 현 상황에서, 개발자는 동일한 어플리케이션을 각 운영 체제의 API에 맞추어 따로 제작하여야 했다.
한편, 정적이고 단순한 컨텐츠를 표현하기 위해 시작된 웹은 브라우저라는 클라이언트 어플리케이션을 사용할 수 있는 환경만 갖춰지면 어디서나 동등한 수준의 사용자 인터페이스를 제공할 수 있다는 장점 때문에, 사용자 저변과 서비스 영역을 빠르게 확장해왔다. 이와 함께, 웹 컨텐츠는 특정 내용을 서술하는 단순한 컨텐츠에서, 사용자의 입력에 반응하여 사용자가 원하는 서비스를 제공할 수 있는 웹 어플리케이션으로 진화하고 있다.
따라서, 이동 통신 단말에 대하여, 표준 웹 기술을 지원하는 웹 어플리케이션 플랫폼을 구현할 경우, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 웹 어플리케이션을 개발할 수 있으며, 더하여, 풍부한 사용자 인터페이스를 쉽고 빠르게 개발하여 제공할 수 있게 된다.
본 발명은 단말에 탑재된 운영체제의 종류에 무관하게 단말의 자원 및 기능을 이용하여 웹 어플리케이션을 실행할 수 있는 환경을 제공하면서, 다수의 페이지를 포함하는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행, 및 업데이트하기 위한 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법을 제공하고자 한다.
본 발명은 과제를 해결하기 위한 수단으로서, 이식 계층부와, 브라우저 엔진 계층부와, 웹 어플리케이션 런타임 계층부를 포함하는 웹 어플리케이션 실행 장치를 제공한다. 이식 계층부는 운영체제의 종류에 무관하게 상기 운영체제가 관장하는 기능 실행의 요청을 처리할 수 있는 단일 형식의 이식 계층 API(Application Programming Interface)를 지원하고, 특정 이식 계층 API가 호출되면, 대응하는 운영체제의 API를 호출하여 응답을 반환한다. 브라우저 엔진 계층부는 이식 계층부와 연동하여, 웹 어플리케이션의 각 페이지를 해석하여 실행한다. 웹 어플리케이션 런타임 계층부는 URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션 실행 요청을 입력 받아, 웹 어플리케이션이 로컬 스토리지에 존재하는 지를 확인하고, 확인 결과, 로컬 스토리지에 웹 어플리케이션이 존재하면, 웹 어플리케이션의 실행 명령을 상기의 브라우저 엔진 계층부로 전달하며, 브라우저 엔진 계층부에서 페이지를 실행하는데 있어서 필요한 네트워크 및 UI를 제공한다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, URL 형태의 웹 어플리케이션 식별 정보는, 로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와, 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션의 파일 명을 포함하여 이루어질 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 상기 웹 어플리케이션은, 웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와, 웹 어플리케이션에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와, 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하여 이루어질 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, 로컬 스토리지에 상기 웹 어플리케이션이 존재하지 않는 경우, 사용자로부터 다운로드 여부를 확인하여, 사용자가 다운로드를 선택하면, 네트워크를 통해 서버에 접속하여, 상기 웹 어플리케이션을 다운로드 받아 설치하는 것을 특징으로 한다.
본 발명에 의한 웹 어플리케이션 실행 장치는, 브라우저 엔진 계층부와 이식 계층부 및 웹 어플리케이션 런타임 계층부를 로딩하고, 사용자의 요청에 따른 웹 어플리케이션의 실행 요청을 웹 어플리케이션 런타임 계층 또는 브라우저 엔진 계층부로 전달하는 실행 계층부를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션 및 상기 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 호출하는 플러그인의 설치 또는 실행 또는 로딩 전에, 인증서를 검증하고, 접근 제어 규칙에 따라서 웹 어플리케이션의 실행 중 상기 이식 계층에 대한 접근을 제어하는 보안 계층부를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 브라우저 엔진 계층부는, 웹 표준 언어로 작성된 웹 어플리케이션의 각 페이지를 해석하여 실행시키는 브라우저 엔진 모듈; 하나 이상의 플러그 인에 대한 다운로드, 설치, 설치된 플러그인의 목록 관리, 업데이트, 및 플러그인의 호출 요청에 대한 처리를 수행하는 플러그인 관리 모듈; 및 플러그인 관리 모듈에 의해 설치되고, 플러그인 관리 모듈을 통해 동작하여, 각각 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 이식 계층부를 통해 호출하여 그에 대한 응답을 반환하는 하나 이상의 플러그 인을 포함하여 이루어질 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 이식 계층부는, 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) 모듈 중에서 하나 이상을 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, 웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈; 웹 어플리케이션 및 플러그인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈; 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI(User Interface) 및 사용자 입력을 처리하는 UI 엔진; 웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리하는 네트워크 셀렉터; 및 웹 어플리케이션을 실행 중에, 네트워크 연결이 끊긴 동안의 데이터를 로컬 스토리지에 저장하고, 네트워크가 연결되면 로컬 스토리지에 저장한 데이터와 외부 데이터에 대한 동기화를 수행하는 다이내믹 동기화 모듈을 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 실행 계층부는, 단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 요청에 따라서 더미 실행 모듈을 동작시키는 컨테이너 에이전트; 컨테이너 에이전트에 의해 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부를 로딩한 후, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 더미 실행 모듈; 및 네이티브 대기화면 관리자에 의해 로딩되어, 대기화면에서의 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 계층부로 전달하는 대기모드 에이전트를 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 보안 계층부는, 웹 어플리케이션 및 플러그인의 설치 또는 실행 시, 상기 웹 어플리케이션 및 플러그인의 인증서를 검증하는 인증 모듈; 및 웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 하나 이상의 플러그 인은, 단말 자원과 관련된 기능 호출을 이식계층부로 전달하는 리소스 플러그인과, 웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부에 전달하고, 웹 어플리케이션 런타임 계층부의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인과, 웹 어플리케이션 사이의 연동을 위한 기능 호출을 이식 계층부로 전달하는 협업(Collaboration) 플러그인과, 웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부에 전달하는 동기화(Sync) 플러그인 중에서 하나 이상을 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 모듈은, 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러; 커맨드 핸들러 또는 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 네이티브 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저; 컨텍스트 매니저에서 생성한 네이티브 윈도우 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 UI 이펙트를 줄 수 있도록 상기 UI 엔진에 전달하는 이벤트 핸들러; 및 다수의 페이지를 포함하는 웹 어플리케이션 및 그의 각 페이지에 대한 라이프사이클을 관리하는 라이프사이클 매니저를 포함하여 이루어질 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 레지스트리 모듈은, URL 형태의 웹 어플리케이션 식별 정보인 웹 어플리케이션 URL과, 상기 웹 어플리케이션 URL로 식별되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 위치를 나타내는 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 정책 정보를 포함하는 웹 어플리케이션 설치 정보 관리 테이블을 구성하고 관리할 수 있다.
더하여, 본 발명은 과제를 해결하기 위한 다른 수단으로서, 상술한 웹 어플리케이션 실행 장치를 구비한 단말기를 제공한다.
또한, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, URL 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받는 단계; 로컬 스토리지에 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하는 단계; 및 웹 어플리케이션이 로컬 스토리지에 존재하면, 로컬 스토리지에 저장된 웹 어플리케이션을 실행하는 단계를 포함하는 웹 어플리케이션 관리 방법을 제공한다.
본 발명에 의한 웹 어플리케이션 관리 방법은, 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 확인하는 단계; 사용자가 다운로드 받는다고 선택하면, 상기 URL 형태의 웹 어플리케이션 식별 정보를 네트워크를 통해 접속 가능한 URL로 변환하는 단계; 및 변환된 URL을 이용하여, 네트워크상의 웹 서버에 접속하여, 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, URL 형태의 웹 어플리케이션 식별 정보는, 로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와, 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션의 파일 명을 포함하여 이루어질 수 있다.
본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션은, 웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와, 웹 어플리케이션에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와, 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션을 실행하는 단계는, 브라우저 엔진 컨테이너 코어의 브라우저 엔진 계층부가 웹 어플리케이션 실행 요청에 따라서, 웹 어플리케이션을 위한 네이티브 윈도우 및 랜더러 인스턴스를 생성하는 단계; 웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 파싱, 레이아웃 지정, 및 랜더링하여 상기 생성한 네이티브 윈도우로 출력하는 단계; 출력된 페이지 이외에 상기 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계; 하나 이상의 다른 페이지에 대한 파싱 및 레이아웃 지정을 수행하는 단계; 레이아웃 지정까지 처리된 다른 페이지의 데이터를 시리얼라이즈화하여 바이너리 파일로 저장하는 단계; 다른 페이지에 대한 이벤트 발생을 확인하는 단계; 이벤트가 발생하면, 저장한 바이너리 파일을 랜더링하여 상기 네이티브 윈도우로 출력하는 단계를 포함한다.
본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 전달받는 단계는, 단축아이콘을 이용한 사용자의 웹 어플리케이션의 실행 요청이 입력되면, 실행 계층부에서 상기 브라우저 엔진 컨테이너 코어의 실행 여부를 확인하는 단계; 확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면 브라우저 엔진 컨테이너 코어를 로딩하는 단계; 브라우저 엔진 컨테이너 코어가 실행 중이면, 브라우저 엔진 컨테이너 코어의 웹 어플리케이션 런타임 계층부로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 전달받는 단계는, 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저를 통해 실행 API가 호출되는 단계; 브라우저 엔진 컨테이너 코어가 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인을 로딩하는 단계; 및 로딩된 시스템 API 플러그 인이 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 전달받는 단계는, 네이티브 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 실행 계층부의 대기모드 에이전트를 로딩하는 단계; 및 대기모드 에이전트가 브라우저 엔진 컨테이너 코어를 로딩하고, 대기화면 모드 실행 API를 호출하여, 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계는, 웹 서버에 접속하여 웹 어플리케이션을 다운로드 받는 단계; 브라우저 엔진 계층부로 레지스트리 메쏘드를 호출하는 단계; 브라우저 엔진 계층부에서 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하기 위하여, 시스템 API 플러그 인을 호출하는 단계; 호출에 의해 시스템 API 플러그 인이 동작하여, 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하는 단계; 및 호출된 레지스트리 모듈이, 다운로드 받은 파일에서 설치 정보를 추출하여 보안 스토리지에 저장하고, 웹 컨텐츠는 로컬 스토리지에 저장하는 단계를 포함하여 이루어질 수 있다.
본 발명에 의한 웹 어플리케이션 관리 방법은, 웹 어플리케이션의 설치 또는 실행 전에, 상기 웹 어플리케이션의 인증서를 검증하여, 인증서 검증이 성공하면, 웹 어플리케이션의 설치 또는 실행을 계속하도록 하고, 인증서 검증이 성공하지 못하면, 사용자에게 설치 또는 실행 계속 여부를 확인하도록 하는 단계를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션을 실행하는 단계는, 이식 계층부에 대한 접근이 필요한 경우, 웹 어플리케이션 별로 설정된 접근 제어 규칙을 참조하여, 이식 계층부에 대한 접근을 허여하거나 거부하는 단계를 더 포함할 수 있다.
더하여, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, 상술한 웹 어플리케이션 관리 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체를 제공한다.
본 발명에 따르면, 운영 체제 별로 다른 형식을 가지는 기능 실행을 위한 인터페이스를 운영 체제의 종류에 무관하게 단일 형식으로 제공함으로써, 웹 어플리케이션이 동일한 방법으로 운영 체제가 관리하는 단말의 기능을 실행하도록 하며, 다수의 페이지로 구성되는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행 및 업데이트되도록 관리함으로써, 웹 어플리케이션을 스탠드 얼론 어플리케이션과 동일한 방식으로 이용할 수 있다.
더하여, 이를 이동 통신 단말에 적용함으로써, 이동 통신 단말용 어플리케이션 개발자들이, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 이동 통신 단말의 어플리케이션을 개발할 수 있게 된다.
도 1은 본 발명에 따른 웹 어플리케이션 실행 장치의 전체 구조를 보인 블럭도이다.
도 2는 본 발명에 따른 웹 어플리케이션의 패키지 구조를 보인 블럭도이다.
도 3은 본 발명에 따른 웹 어플리케이션 실행 장치에서 관리되는 웹 어플리케이션의 메타 데이터 정보를 나타낸 도면이다.
도 4는 본 발명에 따른 웹 어플리케이션의 관리 방법을 나타낸 흐름도이다.
도 5는 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 다운로드 및 업데이트 과정을 나타내는 메시지 흐름도이다.
도 6은 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 보안을 적용한 웹 어플리케이션의 실행/설치/로딩 과정을 나타낸 흐름도이다.
도 7 내지 도 9는 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 과정을 다양한 실시 예를 보인 흐름도이다.
도 10은 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 속도 향상을 위한 처리 과정을 나타낸 흐름도이다.
도 2는 본 발명에 따른 웹 어플리케이션의 패키지 구조를 보인 블럭도이다.
도 3은 본 발명에 따른 웹 어플리케이션 실행 장치에서 관리되는 웹 어플리케이션의 메타 데이터 정보를 나타낸 도면이다.
도 4는 본 발명에 따른 웹 어플리케이션의 관리 방법을 나타낸 흐름도이다.
도 5는 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 다운로드 및 업데이트 과정을 나타내는 메시지 흐름도이다.
도 6은 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 보안을 적용한 웹 어플리케이션의 실행/설치/로딩 과정을 나타낸 흐름도이다.
도 7 내지 도 9는 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 과정을 다양한 실시 예를 보인 흐름도이다.
도 10은 본 발명에 따른 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 속도 향상을 위한 처리 과정을 나타낸 흐름도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
더하여, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
먼저, 본 발명에 따른 웹 어플리케이션 실행 장치에 대하여 설명한다. 본 발명에 따른 웹 어플리케이션 실행 장치는, 단말의 운영 체제 위에서 동작하여, 웹 어플리케이션의 다운로드, 설치, 실행을 처리한다. 이러한 웹 어플리케이션 실행 장치는 소프트웨어, 하드웨어, 소프트웨어와 하드웨어의 조합으로 구현될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 웹 어플리케이션 실행 장치의 전체 구조를 나타낸 도면이다.
도 1을 참조하면, 웹 어플리케이션의 실행 장치는, 이식 계층부(Porting layer)(200)와, 보안 계층부(Security layer)(300)와, 웹 어플리케이션 런타임 계층부(Web Application Runtime layer)(400)와, 브라우저 엔진 계층부(Browser Engine layer)(500)와, 실행 계층부(Executable layer)(600)와, 하나 이상의 시스템 웹 어플리케이션(700)을 포함한다.
여기서, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)가 브라우저 엔진 컨테이너 커먼(Browser Engine Container Common) 모듈로 구현된다. 여기서 웹 어플리케이션 런타임 계층부(400)가 주도적으로 웹 어플리케이션의 관리 기능을 수행하며, 브라우저 엔진 계층부(500)는 웹 어플리케이션의 각 페이지를 해석하여 화면으로 출력한다. 상기 브라우저 엔진 컨테이너 커먼은 운영체제(100)에는 독립적이면서, 이식 계층부(200)에만 의존성을 갖는다.
그리고, 상기 브라우저 엔진 컨테이너 커먼과, 이식 계층부(200)를 포함하여, 브라우저 엔진 컨테이너 코어(Browser Engine Container Core)로 구현된다.
상기 브라우저 엔진 컨테이너 코어는, 다수 웹 어플리케이션의 동시 실행과, 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원하는 멀티-태스킹 컨테이너로, 한 시스템 내에서 복수 개의 컨테이너를 실행할 수 있으며, 컨테이너 자체는 단일 인스턴스로 동작한다.
즉, 브라우저 엔진 컨테이너 코어는, 웹 어플리케이션의 실행 시마다 윈도우를 생성하고, 랜더러 인스턴스를 생성하여, 웹 어플리케이션의 디폴트 페이지 또는 요청 페이지를 실행한다.
이때, 실행 계층부(600)는, 브라우저 엔진 컨테이너 코어의 엔트리 포인트로 동작한다. 브라우저 엔진 컨테이너 코어는 실행 계층부(600)에 의하여 실행되어, 시스템 웹 어플리케이션(700) 및 다른 웹 어플리케이션을 실행시킨다.
한편, 본 발명에 의해 실행되는 웹 어플리케이션은, 다수의 페이지가 패키지로 묶여 함께 운영되는 것으로서, 도 2를 참조하면, 웹 어플리케이션을 구성하는 각 페이지를 구성하는 html, xhtml, css, java script 파일 등과 같은 소스 파일과, 상기 페이지에 삽입되는 이미지 등과 같은 리소스 파일로 이루어지는 웹 컨텐츠(11)와, 웹 어플리케이션 패키지에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보(화면 크기, 타겟 CPU, 타겟 OS, 웹 어플리케이션 실행 장치의 버전 등)를 포함하는 구성 정보(Configuration 파일)(12)와, 상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보(13)를 포함하여 이루어진다. 상기 정책 정보(13)는 웹 어플리케이션 패키지 전체에 부여되는 기본 접근 권한 정보와, 웹 어플리케이션의 각 페이지 별로 부여되는 세부 접근 권한 정보를 포함할 수 있으며, 이를 통해 단말의 자원, 예를 들어, 사진, 주소록, 단말 기능, 통화 기록 들에 대한 접근 가능 여부를 정할 수 있다. 이러한 웹 컨텐츠(11)와, 구성 정보(12)와, 정책 정보(13)를 포함하는 웹 어플리케이션은, 압축 파일 형태로 제공되며, 웹 어플리케이션이 인증된 기관 또는 사업자를 통해 배포되는 것임을 증명하는 인증서를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치는, 이러한 웹 어플리케이션을 URL(Uniform Resource Locators) 형태의 식별 정보를 통해 식별한다.
일반적으로, 웹 브라우저에서는 file://, http://, https://와 같은 프로토콜 스키마를 통해 웹 자원에 접근한다. 여기서, file://은 해당 URL의 웹 자원을 파일 시스템에서 가져오는 것을 의미하고, http://와 https://는 해당 URL의 웹 자원을 네트워크에서 가져오는 것을 의미한다. 본 발명에 의한 웹 어플리케이션 실행 장치는, 여기에 더하여, 웹 어플리케이션의 처리를 위한 프로토콜 스키마 httpa://를 새로 설정한다. httpa://는 해당 URL로 식별되는 웹 어플리케이션을 로컬 스토리지에서 검색하여 실행해야 함을 의미한다.
더하여, 본 발명에서는 웹 어플리케이션의 URL은 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 컨텐츠 제공자의 도메인 명을 더 포함하여 구성할 수 있다. 이렇게 포함된 도메인 명은, 추후 해당 웹 어플리케이션을 다운로드 받을 때 이용될 수 있다.
즉, 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션의 URL은 웹 어플리케이션의 실행을 의미하는 프로토콜 스키마와, 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션 명으로 구성된다. 예를 들면, 웹 어플리케이션명이 application1.swa라고 하고, 컨텐츠 제공자의 도메인 명이 www.abc.com이라 할 때, 그 URL은 httpa://www.abc.com/application1.swa 로 표현될 수 있다. 여기서, swa라는 확장자는 웹 어플리케이션 패키지임을 나타내는 확장자로서, 임의로 지정된 이름이다.
이와 같이 새로운 형식으로 표현되는 웹 어플리케이션을 다른 웹 자원과 구분하여 관리하는 방법은 추후에 더 구체적으로 설명한다.
다시 도 1을 참조하여, 본 발명에 의한 웹 어플리케이션 실행 장치의 각 구성 요소의 상세 구성 및 기능에 대하여 설명한다.
먼저, 이식 계층부(200)는, 단말에 탑재된 운영체제(100) 위에 구현되는 것으로서, 운영체제(100)와 직접 연결되어 상기 웹 어플리케이션 런타임 계층부(400) 및 브라우저 엔진 계층부(500)의 각 모듈이 상기 운영체제(100)에 독립적으로 구현되면서 단말 자원 및 OS 기능을 이용할 수 있도록 제공한다.
더 구체적으로 설명하면, 시스템 웹 어플리케이션(700)을 포함하는 웹 어플리케이션은 브라우저 엔진 컨테이너 커먼 모듈 및 이식 계층(200)을 통해 운영체제(100)에 접근할 수 있다. 웹 어플리케이션이 단말의 기능을 실행시키고자 하는 경우, 브라우저 엔진 계층부(500)에서 이 요청을 이식 계층부(200)에 전달하고, 이식 계층부(200)는 운영체제(100)에 이 요청을 재 전달한다. 이때, 이식 계층부(200)는 운영체제(100)의 인터페이스에 따라 이 요청을 변환하여 운영체제(100)에 전달한다. 이에 따라, 운영체제(100)는 웹 어플리케이션이 요청한 기능을 실행하거나 단말의 자원을 웹 어플리케이션에 제공한다.
이식 계층부(600)의 운영체제(100)와 연결되는 인터페이스는 각 운영체제(100) 별로 따로 구현되며, 상위 브라우저 엔진 컨테이너 커먼 모듈에 제공하는 인터페이스(이하, 이식 계층 API라 함)는 단일 형식으로 구현된다. 이에 따라, 웹 어플리케이션은 운영체제(100)의 종류에 무관하게 동일한 형식의 인터페이스를 이용하여 단말 자원 또는 OS의 기능에 접근할 수 있다.
이러한 이식 계층부(200)은 다수개의 인터페이스 모듈을 포함하며, 각 인터페이스 모듈은 라이브러리 형태로 구현되어, 자유롭게 추가할 수 있다. 이식 계층부(200)에 포함되는 인터페이스 모듈은, HTTP 및 HTTPS와 관련된 기능 및 API를 제공하는 HTTP 모듈, XML 파싱 기능을 위한 API를 제공하는 XML 모듈, 쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈, UI 구현을 위해 필요한 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈, 보안 저장 기능을 API 형태로 제공하는 보안 스토리지(Secure Storage) 모듈, 단말 자원(예를 들어, 전화부, 사진, 통화 기록, SMS 목록 등)에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈, 단말 자원 이외에 단말에서 제공하는 OS API(예를 들어, 통화 연결, SMS 전송, 단말 시스템의 Property 설정 등)을 API 형태로 제공하는 OS API 모듈, 웹 어플리케이션 간의 연동 기능을 API 형태로 제공하는 협업(Collaboration) 모듈, 외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화(Sync) 모듈, 운영체제에 존재하는 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈 중에서 하나 이상을 포함할 수 있다.
다음으로 보안 계층부(300)에 대해서 설명한다.
보안 계층부(300)는, 웹 어플리케이션 실행 장치 내부의 다른 모듈에 대한 이식 계층부(200)로의 접근을 제어하여, 보안 레벨을 높이기 위한 것으로서, 인증(Certification) 모듈(310)과, 정책(Policy) 모듈(320)을 포함하여 이루어진다.
인증 모듈(310)은 웹 어플리케이션 및 브라우저 엔진 계층부(500)에 구비되어 이식 계층부(200)에 대한 접근을 처리하는 플러그 인에 대한 설치 또는 실행 또는 로딩 시에, 상기 웹 어플리케이션 및 플러그 인이 정당하게 배포된 것인지를 인증하여, 정당하게 배포된 웹 어플리케이션 및 플러그 인이 단말에 설치되고, 실행될 수 있도록 한다.
정책 모듈(320)은 접근 제어 규칙에 따라서 각 웹 어플리케이션의 이식 계층부(200)로의 접근을 제어하여, 접근 권한을 갖는 웹 어플리케이션만이 단말 자원 및 OS 기능에 접근할 수 있도록 한다. 이를 위하여, 정책 모듈(320)은, 실행 계층부(600)의 업데이터(612)를 통해서 접근 제어 규칙을 전달받아 이를 설치한다. 그리고, 상기 브라우저 엔진 계층부(500)로부터의 접근 요청에 대해, 저장된 접근 제어 규칙을 검색하여, 해당하는 접근 제어 규칙에 따라서, 접근을 허여하거나 거부한다.
다음으로, 웹 어플리케이션 런타임 계층부(400)에 대해서 설명한다.
웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 실행 환경을 관리하여, 하기에서 설명할 브라우저 엔진 계층부(500)에서 웹 어플리케이션의 각 페이지를 실행하는데 필요한 네트워크 및 UI를 제공한다. 더 구체적으로 설명하면, 웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 인스턴스들을 관리하고, 웹 어플리케이션의 설치 및 구성 정보 관리 및 유저 인터페이스 관리를 수행한다. 이를 위하여, 웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션 런타임 모듈(410)와, 레지스트리(Registry) 모듈(420)와, UI(User Interface) 엔진(430)과, 네트워크 셀렉터(Network Selector)(440)와, 다이내믹 동기화 모듈(Dynamic Sync module)(450)를 포함한다.
웹 어플리케이션 런타임 모듈(410)은, 웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부(600)으로부터의 커맨드 처리를 수행한다. 이러한 웹 어플리케이션 런타임 모듈(410)은, 커맨드 핸들러(Command Handler)(411)와, 컨텍스트 매니저(Context manager)(412)와, 이벤트 핸들러(Event Handler)(413)와, 라이프사이클 매니저(Lifecycle manager)(414)를 포함하여 이루어진다. 커맨드 핸들러(411)는 실행 계층부(600)로부터 웹 어플리케이션의 실행과 관련된 명령을 IPC(Interprocess Communication)로 전달받아 해석한 뒤, 해당하는 모듈에 동작을 지시하는 것으로서, 일종의 IPC 명령 처리기이다. 커맨드 핸들러(411)에서 처리되는 명령어는, 웹 어플리케이션의 실행/종료, 웹 어플리케이션 실행 장치와 관련된 설정 정보의 업데이트, 웹 어플리케이션 실행 장치의 실행 및 종료, 플러그 인에 대한 인스톨/언인스톨/업데이트가 포함될 수 있다. 즉, 커맨드 핸들러(411)는 해석한 명령에 따라서, 컨텍스트 매니저(412)에 웹 어플리케이션의 실행 및 종료를 요청하고, 웹 어플리케이션 실행 장치의 구성 정보를 레지스트리 모듈(420)을 통해 업데이트한다. 또한, 커맨드 핸들러(411)는 브라우저 엔진 계층부(500)에 구비된 플러그 인 관리 모듈(520)에 플러그 인(530)의 설치, 삭제, 업데이트를 요청할 수 있다.
컨텍스트 매니저(412)는 웹 어플리케이션 인스턴스들의 컨텍스트를 관리하는 것으로서, 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어한다. 더 구체적으로 설명하면, 커맨드 핸들러(411)와 브라우저 엔진 모듈(510)로부터 전달되는 웹 어플리케이션의 실행 명령과, 브라우저 엔진 모듈(510)으로부터 전달되는 윈도우 생성 명령에 따라, 윈도우 및 랜더러(Render)의 인스턴스를 생성하고, 실행 요청된 페이지를 랜더링한 결과를 브라우저 엔진 모듈(510)로부터 전달받아 해당 윈도우에 출력한다. 또한, 커맨드 핸들러(411)로부터 전달되는 웹 어플리케이션 종료 명령과 이벤트 핸들러(413) 및 브라우저 엔진 모듈(510)으로부터 전달되는 윈도우 소멸 명령에 따라서, 랜더러와 윈도우의 자원을 정리하고, 윈도우를 소멸시키며, 웹 어플리케이션이 소유하고 있는 모든 윈도우가 소멸되면, 해당 웹 어플리케이션을 종료시킨다.
이벤트 핸들러(413)는 컨텍스트 매니저(412)에서 생성한 윈도우와 관련한 이벤트와 웹 어플리케이션 실행 장치에서 확장한 시스템 관련 이벤트를 받아 처리한다. 더하여, 윈도우 내 페이지 전환이나, 윈도우 사이의 전환시에 UI 이펙트를 줄 수 있도록, 미리 정의된 상황과 관련된 이벤트가 발생하면, 이를 UI 엔진(430)으로 전달한다. 이때, 브라우저 엔진 모듈(510)에 관련된 이벤트는 브라우저 엔진 모듈(510)에서 직접 처리하므로, 이벤트 핸들러(413)는 브라우저 엔진 모듈(510)과 관련된 이벤트는 처리하지 않는다.
라이프사이클 모듈(414)는, 웹 어플리케이션의 라이프 사이클을 관리한다. 앞서 설명한 바와 같이, 하나의 웹 어플리케이션은 다수의 페이지로 구성되는데, 웹 어플리케이션의 각각의 페이지들은 방문에 의해 시작되고, 다른 페이지로 전환될 때마다 종료된다. 웹 어플리케이션은 상기 실행 계층부(600)이나 다른 웹 어플리케이션 또는 네이티브 어플리케이션의 실행 요청에 의해 웹 어플리케이션 마다 하나의 윈도우를 생성하여 시작되고, 사용자가 해당 웹 어플리케이션과 관련된 모든 윈도우를 닫거나 자바 스크립트를 통해 창 닫기 요청이 발생하여 모든 윈도우가 닫히면 종료된다. 또한, 웹 어플리케이션의 인스턴스가 생성한 윈도우가 1개뿐인 상태에서 다른 웹 어플리케이션이나 외부 페이지를 로딩한 경우에도 종료하게 된다. 상기 라이프사이클 모듈(414)는 이러한 웹 어플리케이션의 각 페이지에 대한 라이프사이클을 관리한다.
다음으로, 웹 어플리케이션 런타임 계층부(400)에서 레지스트리 모듈(420)은 웹 어플리케이션의 설치 정보 및 웹 어플리케이션 실행 장치의 구성 정보를 관리한다. 여기서, 설치 정보 및 구성 정보는 이식 계층부(200)를 통해 단말의 보안 스토리지 영역에 저장된다. 더하여, 웹 어플리케이션의 설치 정보는, 웹 어플리케이션의 설치 시에 등록되거나, 단말 바이너리 패키징 시에 등록될 수 있다.
도 3은 상기 레지스트리 모듈(420)에 의하여 관리되는 웹 어플리케이션의 설치 정보 관리 테이블의 구성을 예시한 도면이다. 도 3을 참조하면 상기 웹 어플리케이션의 설치 정보는, 웹 어플리케이션을 식별하는 고유 정보인 웹 어플리케이션 URL과, 상기 URL로 구분되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 경로인 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 접근 권한 정보를 포함하여 이루어진다. 이러한 정보는 웹 어플리케이션을 다운로드하여 설치시에 레지스트리 모듈(420)에 의해 추출되어 단말의 보안 스토리지 영역에 저장된다.
더하여, 레지스트리 모듈(420)은, 웹 어플리케이션의 설치, 삭제 및 갱신 등과 같은 웹 어플리케이션 컨텐츠 관리, 웹 어플리케이션의 속성 설정, 웹 어플리케이션의 인증 정보 추출 및 제공, 웹 어플리케이션 실행 장치 전체 또는 모듈별 갱신, 모듈간 종속성 관리 등을 포함하는 모듈 관리, 웹 어플리케이션 실행 장치의 속성 설정 기능, 및 플러그 인의 설치 정보에 대한 관리기능을 수행한다. 이러한 레지스트리 모듈(420)은 웹 어플리케이션의 설치, 삭제 및 웹 어플리케이션 실행 장치 업데이트를 위한 API 등을 제공한다.
다음으로, 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)은 네이티브 코드 수준에서 실행되는 화면 전환 효과를 플러그 인 형태로 제공할 수 있다.
다음으로, 네트워크 셀렉터(440)는, 웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리한다. 이를 위하여, 네트워크 셀렉터(440)는 해당 단말기에서 사용 가능한 네트워크(예를 들어, 모뎀, Wi-Fi, 블루투스 등)에 대한 선택 방법과 우선 순위를 사용자로부터 입력 받아 설정한다. 여기서, 선택 방법은, 자동, 수동, 반자동의 3가지 옵션을 제공할 수 있으며, 자동은 설정된 우선순위에 따라서 가능한 네트워크에 접속을 시도하는 것이며, 수동은 사용자가 선택한 네트워크에 대해서만 접속을 시도하는 것이고, 반 자동은 네트워크 전환이 요구될 때마다 팝업을 띄워 사용자가 선택하도록 하는 것이다.
다이내믹 동기화 모듈(450)는, 해당 단말기가 온라인 상태인지, 오프라인 상태 인지에 상관없이 끊김 없는 웹 어플리케이션의 실행을 보장하기 위한 수단이다. 더 구체적으로, 다이내믹 동기화 모듈(450)는 외부 데이터에 접근하는 웹 어플리케이션을 실행 중에, 네트워크 연결이 끊기는 경우, 캐싱 메카니즘(cache mechanism)을 통해 동작하도록 하며, 네트워크에 연결되었을 때, 로컬 스토리지에 저장되었던 데이터와 외부 데이터에 대한 동기화를 사용자가 인식하지 못하는 사이에 백그라운드로 자동 수행한다.
다음으로, 브라우저 엔진 계층부(500)에 대해서 설명한다.
브라우저 엔진 계층부(500)은, 웹 어플리케이션의 각 페이지에 대한 파싱/랜더링 및 자바스크립트 인터프리팅(JavaScript Interpreting)을 실행하는 계층으로서, 브라우저 엔진 모듈(510)과, 플러그 인 모듈(520)와, 하나 이상의 플러그 인(530)을 포함한다. 이 중에서, 브라우저 엔진 모듈(510)은, HTML, CSS, JavaScript와 같은 웹 표준 언어로 작성된 웹 어플리케이션을 해석하여 실행시킨다. 브라우저 엔진 모듈(510)은, 웹 표준 언어를 처리하는 웹코어(511)와, 스크립트 언어를 처리하기 위한 스크립트코어(ScriptCore)(512)로 이루어진다. 이와 같이 웹코어(511)와, 스크립트코어(512)를 각각 모듈로 구성함으로써, 모듈별 업데이트 및 교체가 용이해 진다. 상기 스크립트코어(512)는, 해킹 등을 방지하기 위하여, 웹 어플리케이션 간에 상호 참조를 금지하도록 구현되는 것이 바람직하다. 이러한 브라우저 엔진 모듈(510)은, 오픈 소스 기반의 브라우저 엔진인 Webkit로 구현될 수 있다. 이 경우, PC 환경과 달리 프로세서의 처리능력과 네트워크 대역폭에 제한이 있는 단말기의 환경에 맞도록 Webkit의 코드를 최적화하는 것이 바람직하다.
더하여 브라우저 엔진 모듈(510)은, 웹 어플리케이션을 실행하는 중에, 단말 자원을 이용하는 경우, 이식 계층부(200)를 통해 운영체제(100) 및 단말 자원에 접근한다. 더 구체적으로, 브라우저 엔진 모듈(510)은, 프로토콜 처리기, XML 처리기, 윈도우(Window) 처리기, 폰트(Font) 처리기, 이미지 디코더(Image Decoder) 처리기, 국제화(Internationalization) 처리기 및 시스템(System) 처리기를 포함한다. 프로토콜 처리기는 HTTP, HTTPS 프로토콜 기능을 제공하며, HTTP 기능 동작을 위해 필요한 업로드(upload), 프록시들(proxies), 쿠키(cookie) 등에 대한 관리 기능을 제공한다. XML 처리기는 XML 파서 기능 및 XSLT XML 변환 기능을 제공한다. 윈도우 처리기는 브라우저 엔진 모듈(510)이 사용할 윈도우 시스템을 제공하며, 웹코어(511)가 사용할 버튼, 리스트 박스, 콤보 박스, 텍스트 에디터 등의 UI 위젯(Widget)을 제공한다. 폰트 처리기는 웹코어(511)가 사용할 폰트 시스템을 제공한다. 이미지 디코더 처리기는 웹코어(511)가 사용할 이미지 디코더 기능을 제공한다. 국제화 처리기는 다국어 처리를 위해 필요한 문자열 변환 기능을 제공한다. 시스템 처리기는 타이머 등의 시스템 기능을 제공한다. 그리고, 브라우저 엔진 모듈(510)은 프로토콜 처리기, XML 처리기, 윈도우 처리기, 폰트 처리기, 이미지 디코더 처리기, 국제화 처리기 및 시스템 처리기 등이 그 기능을 수행하기 위하여 필요한 기본적인 기능은 이식 계층부(200)를 통해 운영체제(100)에서 얻어온다.
또한, 웹 어플리케이션은 웹 표준 기능 이외에 주소록이나 단말 어플리케이션과 같은 단말 자원을 이용할 수 있어야 한다. 이를 위하여, 상기 브라우저 엔진 계층부(500)는, 플러그 인 모듈(520) 및 하나 이상의 플러그 인(530)을 더 포함하며, 이를 통해 단말 의존적인 기능을 호출한다. 이에 따르면, 브라우저 엔진 모듈(510)을 구현할 경우, 단말 의존적 기능의 처리는 상기 플러그 인 모듈(520) 및 하나 이상의 플러그 인(530)을 통해 이루어지므로, 브라우저 엔진 모듈(510)의 구현 시, 최신의 브라우저 엔진을 큰 수정 없이 빠르게 웹 어플리케이션 실행 장치에 적용할 수 있다. 또한, 향후 제공 가능한 새로운 기능을 플러그 인 형태로 추가할 수 있으므로, 기능 확장이 더 쉬워진다.
플러그 인 모듈(520)는 복수의 플러그 인(530)의 다운로드, 및 설치, 설치된 플러그 인의 목록 관리, 업데이트, 웹 어플리케이션의 플러그 인 호출 요청에 대한 응답을 수행한다. 여기서, 신규 플러그 인의 다운로드 요청, 업데이트 요청은 실행 계층부(600)에 포함된 업데이터(612)에 의해 발생하고, 해당 요청이 웹 어플리케이션 런타임 계층부(400)를 통해 플러그 인 모듈(520)로 전달된다. 다운로드 요청을 전달받은 플러그 인 모듈(520)는 OMA 다운로드 표준에 따라서, 플러그 인 패키지를 다운받고, 플러그 인의 설치 정보는 레지스트리 모듈(420)을 통해 단말기의 보안 저장 영역에 저장한다. 이러한 플러그 인 모듈(520)는 브라우저가 플러그 인에 제공해야 하는 브라우저측 API와, 플러그 인이 브라우저에 제공해야 하는 플러그측 API를 포함하며, 복수의 플러그 인(530)은 브라우저측 API를 호출하여 작업을 수행하고, 브라우저 엔진 모듈(510)은 플러그 인측 API를 호출하여 작업을 수행한다.
하나 이상의 플러그 인(530)은, 웹 어플리케이션에서 요구하는 웹 표준 이외의 단말의 자원 및 운영체제 기능을 호출하여 그에 대한 응답을 브라우저 엔진 모듈(510)로 전달한다. 하나 이상의 플러그 인(530)은 웹 어플리케이션의 단말 자원과 관련된 기능 호출을 이식 계층부(200)의 리소스 모듈에 전달하는 리소스 플러그 인과, 웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부(200)의 OS API 모듈에 전달하고, 웹 어플리케이션 런타임 계층부(400)의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인과, 웹 어플리케이션과 단말에 설치된 네이티브 어플리케이션 사이의 연동을 위한 기능에 대한 호출과 응답을 처리하는 협업 플러그 인과, 웹 어플리케이션의 동기화와 관련된 기능의 호출 및 응답을 처리하는 동기화 플러그 인 중에서 하나 이상을 포함할 수 있으며, 이외에도 필요에 따라서 다른 여러 가지 기능에 대한 플러그 인을 추가할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 상기 플러그 인 모듈(520) 및 하나 이상의 플러그 인(530)을 통해서 접근할 수 있는 단말 자원은, 예를 들어, 사진, 주소록, 전화, SMS 기능, 통화 로그 조회 등에 관한 메소드와 프로퍼티를 포함할 수 있다.
다음으로, 실행 계층부(600)에 대하여 설명한다.
실행 계층부(600)는, 브라우저 엔진 컨테이너 코어의 엔트리 포인트 역할을 하며, 단일 인스턴스 형태로 동작한다. 이러한 실행 계층부(600)는, 네이티브 OS의 실행 파일 형태로 구현되거나, DLL로 구현될 수 있다. 이때, 실행 계층부(600)은 이식성을 높이기 위하여, 네이티브 OS 어플리케이션이라도 최대한 이식 계층부(200)을 이용하여 운영체제(100)에 접근하도록 한다. 이에 따르면, 어떠한 운영체제에서도 소스 레벨의 이식성을 가질 수 있게 된다.
실행 계층부(600)는, 상기 이식 계층부(200)와 보안 계층부(300)와 웹 어플리케이션 런타임 계층부(400) 및 브라우저 엔진 계층부(500)를 포함하는 브라우저 엔진 컨테이너 코어를 로딩하여 실행시키고, 사용자의 요청에 따른 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 계층부(400) 또는 브라우저 엔진 계층부(500)로 전달하고, SMS 푸시 또는 셀프 체크에 의해 웹 어플리케이션 실행 장치의 모듈별 업데이트를 확인하여 관련 다운로드 요청을 해당 모듈로 전달한다. 특히, 상기 브라우저 엔진 계층부(500)에 구비되는 플러그 인(530)에 대한 업데이트를 체크하여, 다운로드 요청을 플러그 인 모듈(520)로 전달한다. 이러한 실행 계층부(600)는, 컨테이너 에이전트(610)과, 더미 실행(Dummy execution) 모듈(620)과, 대기모드 에이전트(Idle Agent)(630)를 포함한다.
컨테이너 에이전트(610)은, 단말의 네이티브 어플리케이션 형태로 구현되며, 단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 명령을 더미 실행 모듈(620)을 통해 웹 어플리케이션 런타임 계층부(400)로 전달한다. 더 구체적으로는, 웹 어플리케이션 실행 장치가 실행중인 상태에서, 웹 어플리케이션의 실행이 요청되면, 해당 웹 어플리케이션의 실행 명령을 바로 웹 어플리케이션 런타임 모듈(410)의 커맨드 핸들러(411)로 전달하고, 웹 어플리케이션 실행 장치가 실행 중이 아닌 경우에는, 브라우저 엔진 컨테이너 코어를 로딩하여 실행시킨 후, 상기 웹 어플리케이션의 실행 명령을 커맨드 핸들러(411)로 전달한다. 이를 위하여, 웹 어플리케이션 런처(Launcher)(611)를 포함한다. 또한, 컨테이너 에이전트(610)은, SMS 푸시 또는 셀프 체크(self check)를 통한 웹 어플리케이션 실행 장치의 모듈별 업데이트를 수행한다. 이를 위해 컨테이너 에이전트(610)은, 업데이터(612)를 포함한다. 업데이터(612)는, 웹 어플리케이션 실행 장치 상에 설치되어 있는 플러그 인(530)의 업데이트와 새로 확장된 플러그 인의 다운로드 및 설치/삭제를 관리하고, 보안 계층부(300)을 위한 접근 제어 규칙에 대한 업데이트 여부를 관련 서버(예를 들어, 정책 서버)에 확인하고, 필요 시 정책 모듈(320)로 다운로드를 요청한다. 이러한 컨테이너 에이전트(610)은, 데몬(Daemon) 형태가 아니라 해당 기능을 수행하고 즉시 종료하는 형태로 구현되는 것이 바람직한 것으로서, 긴 시간 구동되지 않고, 웹 어플리케이션의 구동 요청 시에 잠깐 실행되어, 더미 실행 모듈(620)을 구동시키고, 바로 종료한다.
더미 실행 모듈(620)은 컨테이너 에이전트(610)에 의해 구동되어, 네이티브 OS에서 이식 계층부(200), 보안 계층부(300), 웹 어플리케이션 런타임 계층부(400), 및 브라우저 엔진 계층부(500)을 포함하는 브라우저 엔진 컨테이너 코어를 로딩하여 실행하는 수단으로서, 더 구체적으로는, 상기 브라우저 엔진 컨테이너 코어를 로딩하여 웹 어플리케이션의 실행 명령을 전달하는 기능만을 수행한다.
대기모드 에이전트(630)은, 웹 어플리케이션이 단말의 대기 화면에서 동작할 수 있도록 지원한다. 대기모드 에이전트(630)은, 네이티브 OS의 특성에 맞춰 해당 규약에 따라 구현되며, IDLE Manager와 같은 별도의 실행 파일이 플러그 인이나 위젯 같은 콤포넌트를 로딩하여 실행할 수 있다. 더 구체적으로, 대기모드 에이전트(630)은 네이티브 대기화면(native idle screen) 관리자에 의해 로딩되어, 대기화면에서 특정 웹 어플리케이션의 실행 요청이 있으면, 해당 요청을 웹 어플리케이션 런타임 계층부(400)로 전달한다.
다음으로, 하나 이상의 시스템 웹 어플리케이션(700)은, 웹 어플리케이션 실행 장치의 설치 시에 함께 제공되는 웹 어플리케이션으로서, 사용자가 설치하는 다른 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저(710)와, 사용자가 선택한 웹 어플리케이션의 다운로드를 관리하는 웹 어플리케이션 다운로더(720) 중 하나 이상을 포함할 수 있다.
웹 어플리케이션 매니저(710)는, 웹 어플리케이션 런타임 계층부(400) 위에서 동작하여, 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)에 접근하여 단말기에 설치된 웹 어플리케이션들에 대한 정보를 가져와 UI를 통해 사용자에게 제공하며, 사용자의 선택에 의해 특정 웹 어플리케이션의 구동이 요청되면, 이를 웹 어플리케이션 런타임 계층부(400)으로 전달한다.
웹 어플리케이션 다운로더(720)는, 외부의 서버에 접속하여, 웹 어플리케이션을 다운로드하기 위한 웹 어플리케이션이다.
이상과 같이 구현된 웹 어플리케이션 실행 장치는, 운영체제(100)를 탑재한 단말기에 설치되며, 상기 운영체제(100) 위에서 동작하여, 운영체제의 종류에 관계없이, 웹 어플리케이션에 대한 동일한 실행 환경을 제공한다.
본 발명에 의한 웹 어플리케이션 실행 장치는, 다수 웹 어플리케이션의 동시 실행과 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원한다. 즉, 한 시스템 내에서 복수 개의 컨테이너를 실행할 수 있으며, 컨테이너 자체는 단일 인스턴스로 동작한다.
본 발명에 의한 웹 어플리케이션 실행 장치는 기본적으로 다수의 웹 어플리케이션의 동시 실행을 지원하는 멀티-태스킹 컨테이너로서, 웹 어플리케이션의 성격이나 종류 등에 따라 또는 특정 원칙에 따라서 웹 어플리케이션을 그룹핑하고, 그룹별로 웹 어플리케이션 실행 장치를 구동시킬 수 있다. 예를 들어, 일반 웹 어플리케이션과, 대기 화면에서 위젯 서비스를 수행하는 웹 어플리케이션을 각각 그룹핑하여, 실행되도록 할 수 있다. 이때, 각 컨테이너 자체는 단일 인스턴스로 구동되며, 이 안에서 다수의 웹 어플리케이션들이 동시 구동된다. 이때, 웹 어플리케이션 실행 장치의 모든 모듈은 웹 어플리케이션들을 멀티-태스킹으로 구동하기 위하여, 쓰레드 세이프(Thread Safe)하도록 구현된다.
이와 같이, 컨테이너별 단일-인스턴스로 구현함에 의하여, 멀티 인스턴스를 지원하지 않는 운영체제에서도 본 발명의 웹 어플리케이션 실행 장치는 네이티브 시스템의 특성에 구애 받지 않고 이식할 수 있다.
본 발명의 웹 어플리케이션 실행 장치는 웹 표준을 준수하여, 웹 어플리케이션이 실행될 때마다 네이티브 시스템의 윈도우를 생성하고, 랜더러 인스턴스를 생성하여 웹 어플리케이션의 디폴트 또는 요청 페이지를 실행할 수 있도록 한다. 또한, 하나의 웹 어플리케이션이 여러 윈도우를 생성하는 것이 가능하며, 이때 윈도우마다 랜더러 인스턴스가 생성되어 할당된다. 또한, 여러 웹 어플리케이션의 동시 실행이 가능하며, 하나의 웹 어플리케이션에 대해서도 멀티 인스턴스가 가능하다. 웹 어플리케이션의 모든 인스턴스들은 상기 컨텍스트 매니저(412)가 관리하며, 유저 인터액션 또는 시스템에 의해 발생하는 모든 이벤트는 이벤트 핸들러(413)에 의해 적정 웹 어플리케이션의 인스턴스로 전달된다.
본 발명에 의한 웹 어플리케이션 실행 장치에서, 안전하게 웹 어플리케이션을 설치하여 실행하기 위해서는, 웹 어플리케이션과 단말 자원 사이의 보안과, 웹 어플리케이션 사이의 보안이 해결되어야 한다.
웹 어플리케이션 사이의 보안은, 웹 어플리케이션의 상호 참조를 금지시키도록 함에 의해 구현할 수 있다. 즉, 더미 실행 모듈(620)에 의해 로딩된 단일 프로세서상에서 다수의 웹 어플리케이션이 구동될 때, 각 웹 어플리케이션은 별도 쓰레드 상에 로딩된 브라우저 엔진 계층부(500) 상에서 구동된다. 이때, 각 웹 어플리케이션은 하나의 윈도우를 소유하게 되며, 웹 표준에 의하면, 해당 윈도우의 이름을 알 경우, 제한 없이 다른 웹 어플리케이션이 또 다른 웹 어플리케이션의 내용을 참조할 수 있게 되는데, 본 발명에서는, 서로 다른 웹 어플리케이션이 서로의 웹 문서 객체에 접근하는 것을 제한한다. 이는 상기 브라우전 엔진 모듈(510)의 자바스크립트 코어(512)를 수정함에 의해 구현될 수 있다.
그리고, 웹 어플리케이션과 단말 자원 사이의 보안은 상기 보안 계층부(300)를 통해 구현된다.
이하 본 발명에 의한 웹 어플리케이션 관리 방법에 대하여 설명한다.
도 4는 본 발명의 웹 어플리케이션 실행 장치에 의한 웹 어플리케이션 관리 방법을 나타낸 흐름도이다.
도 4를 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 특정 웹 어플리케이션의 실행 요청을 입력받는다(S401). 웹 어플리케이션의 실행 요청은, 웹 어플리케이션을 식별하기 위해 설정된 웹 어플리케이션용 URL을 입력받는 형태로 이루어진다. 여기서, 웹 어플리케이션용 URL은 앞서 설명한 바와 같이, 로컬 스토리지에 접근하여 웹 어플리케이션을 실행시키는 것으로 정의된 프로토콜 스키머(httpa://)와, 웹 어플리케이션 파일명을 포함하며, 더하여, 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 컨텐츠 제공자의 도메인명을 더 포함할 수 있다. 더하여, 상기 입력된 웹 어플리케이션 URL은 웹 어플리케이션에서 초기 실행하고자 하는 파일 명을 더 포함할 수 있다. 이는 사용자에 의해 지정될 수 있다.
상기와 같이, 특정 웹 어플리케이션의 URL이 입력되면, 웹 어플리케이션 실행 장치는, 단말의 로컬 스토리지에 상기 URL로 식별되는 웹 어플리케이션이 존재하는 지를 확인한다(S402). 이는 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)을 통해서, 도 3과 같이 관리되는 기설치된 웹 어플리케이션의 설치 정보를 검색함으로써 이루어질 수 있다. 즉, 레지스트리 모듈(420)을 통해 상기 도 3과 같은 웹 어플리케이션의 설치 정보 관리 테이블을 검색하여, 상기 입력된 URL로 식별되는 웹 어플리케이션이 설치되어 있는 지를 확인하는 것이다.
확인 결과, 입력된 URL로 식별되는 웹 어플리케이션이 로컬 스토리지에 존재하면, 웹 어플리케이션 실행 장치는, 해당 웹 어플리케이션을 실행한다(S408). 더 구체적으로 설명하면, 웹 어플리케이션 실행 장치는, 레지스트리 모듈(420)을 통해 웹 어플리케이션의 설치 정보 관리 테이블로부터, 해당 웹 어플리케이션이 실제 위치하는 로컬 스토리지내 파일 경로(컨텐츠 URL)를 확인하고, 상기 확인된 파일 경로를 통해 웹 어플리케이션의 컨텐츠를 가져와, 브라우저 엔진 계층부(500)를 통해 웹 어플리케이션의 요청 페이지를 실행한다. 여기서, 입력된 URL이 웹 어플리케이션의 패키지 파일 명만을 기재하고 있는 경우에는, 미리 설정되는 디폴트 페이지를 처음으로 실행하고, 입력된 URL이 웹 어플리케이션의 패키지 내에 특정 파일명을 포함하고 있는 경우에는, 상기 파일에 해당하는 요청 페이지를 처음으로 실행한다. 단계(S408)에서 이루어지는 웹 어플리케이션의 실행 방법에 대해서는 추후 더 구체적으로 설명한다.
반대로, 확인 결과, 입력된 URL로 식별되는 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 웹 어플리케이션 실행 장치는, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 문의한다(S403).
웹 어플리케이션 실행 장치는, 사용자가 다운로드 받지 않는다고 선택하면(S404), 그대로 종료하고, 사용자가 다운로드 받는다고 선택하면(S404), 입력된 웹 어플리케이션 URL을 해당 웹 어플리케이션을 다운로드 받을 수 있는 네트워크 URL로 변환한다. 예를 들어, 웹 어플리케이션 URL은 제작사의 도메인 명과, 웹어플리케이션의 파일명이 포함되어 있으므로, 단지 프로토콜 스키마 httpa://를 http:// 또는 https://로 변환하면 된다.
그리고 웹 어플리케이션 실행 장치는, 변환된 네트워크 URL을 이용하여, 네트워크상의 해당 웹 서버에 접속한다(S406). 여기서, 웹 서버는, 상기 URL에 포함된 도메인 명으로 식별되는 웹 서버로서, 해당 웹 어플리케이션을 제작한 제작사의 웹 서버 또는 해당 웹 어플리케이션을 제공하는 컨텐츠 제공자의 웹 서버가 될 수 있다.
웹 어플리케이션 실행 장치는, 접속한 웹 서버로부터 실행 요청된 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치한다(S407). 여기서, 다운로드 과정은, OMA의 표준 규격에 따라 이루어질 수 있다. 단계(S407)에서, 웹 서버로부터 도 2와 같은 웹 어플리케이션 패키지(100)가 압축 파일 형태로 다운로드 되며, 설치 과정에서, 웹 컨텐츠(11)는 단말의 로컬 스토리지에 저장되고, 구조 정보(12) 중 일부 또는 전체와, 정책 정보(13)는 레지스트리 모듈(420)을 통해 단말의 보안 스토리지에 저장된다. 더하여, 상기 웹 어플리케이션의 설치 정보가 레지스트리 모듈(420)을 통해 보안 스토리지의 웹 어플리케이션 설치 정보 관리 테이블에 등록된다. 여기서 등록되는 설치 정보는, 앞서 도 3에 보인 바와 같이, 웹 어플리케이션의 URL과, 웹 컨텐츠(11)가 저장된 로컬 스토리지의 파일 경로를 나타내는 컨텐츠 URL과, 다운로드된 구조정보(12)에 포함되어 있는 해쉬코드와, 정책 정보(13)가 포함된다.
이와 같이, 웹 어플리케이션의 설치가 완료되면, 웹 어플리케이션 실행 장치는, 단계(S408)에서 해당 웹 어플리케이션의 웹 컨텐츠를 가져와, 디폴트 페이지 또는 요청 페이지를 실행한다.
이어 도 5 내지 도 10을 참조하여, 상술한 웹 어플리케이션의 관리 방법에 있어서, 중요 단계에 대하여 더 구체적으로 설명한다.
도 5는 본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 다운로드 및 설치 과정을 상세하게 나타낸 흐름도이다.
웹 어플리케이션의 업데이트 및 다운로드는, 업데이트 서버로부터의 SMS 푸시 또는 실행 계층부(600)에 구비된 업데이터(612)에 의한 셀프 체크에 의해 이루어질 수 있다. 이 경우, 업데이트 서버(51)로부터 SMS 푸시에 의한 업데이트 요청(S501)을 전달받거나, 셀프 체크에 의해 업데이터(612)가 웹 어플리케이션 다운로더(720)로 다운로드 요청을 전달한다. 또한, 사용자의 요청 또는 앞서 도 2에서 설명한 웹 어플리케이션 관리 방법에 있어서, 실행 요청된 웹 어플리케이션이 로컬 스토리지에 존재하지 않을 경우에, 웹 어플리케이션 실행 장치로부터 상기 웹 어플리케이션 다운로더(720)로 다운로드 요청이 전달될 수도 있다.
이와 같이, 웹 어플리케이션 다운로더(720)로 다운로드 요청이 전달되면, 상기 웹 어플리케이션 다운로더(720)는, 다운로드 서버(52)에 접속하여, 특정 웹 어플리케이션이 다운로드를 요청한다(S503). 도 2의 단계(S406)의 경우, 상기 다운로드 서버(52)는, 웹 어플리케이션 URL에 포함된 제작사 또는 컨텐츠 제공자의 도메인 명으로 식별되는 웹 서버가 된다.
다운로드 요청에 의하여, 상기 다운로드 서버(52)는, OMA 규격에 따라서 웹 요청된 웹 어플리케이션의 다운로드를 실시한다(S504). 이때, 다운로드 서버(52)가 웹 어플리케이션 다운로더(720)로 DD(Download Descriptor) 및 도 2와 같은 구조의 웹 어플리케이션 패키지(SMF)를 전달한다(S505).
상기와 같이, 웹 어플리케이션 패키지를 다운로드 받은 웹 어플리케이션 다운로더(720)는 이후 웹 어플리케이션의 설치 과정을 수행하는데, 이를 위해 먼저 브라우저 엔진 모듈(510)로 레지스트리 메쏘드를 호출한다(S506). 이에, 브라우저 엔진 모듈(510)이 레지스트리 모듈(420)를 호출하기 위하여, 시스템 API 플러그인(531)을 호출한다(S507). 상기 호출에 의해 시스템 API 플러그인(531)이 동작하여, 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)을 호출한다(S508).
이와 같이 호출된 레지스트리 모듈(420)은, 상기 웹 어플리케이션 다운로더(720)가 다운로드 받은 파일에서 설치 정보를 추출하여 보안 스토리지(53)에 저장하고(S509), 웹 컨텐츠는 로컬 스토리지(54)에 저장한다(S510).
이상의 과정을 통해서 웹 어플리케이션의 설치가 이루어지는데, 이때 무결성 검증을 위한 해쉬코드와 정책 정보를 포함하는 설치 정보들은 보안 스토리지(53)에 분리하여 저장함으로써, 웹 어플리케이션의 관리를 위한 중요 정보에 대한 부적절한 접근을 차단할 수 있다.
다음으로, 도 6은 본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 상기 웹 어플리케이션의 실행을 위한 보안 제공 과정을 나타낸 흐름도이다. 이는 도 2에 보인 웹 어플리케이션 관리 방법에 있어서, 단계(S407)에서 웹 어플리케이션의 설치 전이나, 단계(S408)에서 웹 어플리케이션의 실행 전에 적용되어, 설치 또는 실행되는 웹 어플리케이션의 무결성을 체크함으로써, 불건전한 의도를 갖거나 부적절한 웹 어플리케이션이 단말에 설치되거나, 실행되는 것을 방지할 수 있다.
이를 위하여 본 발명에서 사용되는 웹 어플리케이션은 코드 사인을 거친 것으로서, 다운로드시에, 인증서 정보가 함께 다운로드되어, 보안 스토리지(52)에 저장된다.
도 6을 참조하면, 웹 어플리케이션 실행 장치는, 웹 어플리케이션 또는 상기 브라우저 엔진 계층부(500)에 설치되어 이식 계층부(200)에 대한 호출 및 응답을 처리하는 플러그인(530)의 설치 요청이 발생하는 지를 확인한다(S601). 상기 확인 결과, 웹 어플리케이션 및 플러그의 설치 요청이 있으면, 해당 웹 어플리케이션 및 플러그인의 코드 사인을 검증한다(S602). 더 구체적으로 설명하면, 웹 어플리케이션 다운로더(720) 및 플러그인 관리 모듈(520)가 웹 어플리케이션 및 플러그인의 설치를 시작하기 전에, 인증 모듈(310)로 웹 어플리케이션 및 플러그인의 인증을 요청하므로, 이를 통해 인증 모듈(310)이 해당 웹 어플리케이션 및 플러그인의 인증서 및 암호화된 해쉬값을 레지스트리 모듈(420)로부터 제공받아, 해쉬연산을 통해 인증서 검증을 수행하게 된다. 인증서 검증은, 일반적으로 알려져 있는 인증 표준, 예를 들어, X509에 이루어질 수 있으며, 이러한 인증 방법 및 검증 방법은 잘 알려져 있으므로, 여기서 그 상세한 설명은 생략하기로 한다.
웹 어플리케이션 실행 장치는, 인증 모듈(310)을 통해 해당 플러그인 및 웹 어플리케이션의 인증서 검증이 성공하면, 웹 어플리케이션 및 플러그인의 설치를 실행한다(S603, S604).
반대로, 해당 플러그인 및 웹 어플리케이션의 인증서에 대한 검증이 성공하지 못한 경우, 상기 웹 어플리케이션 매니저(710) 및 플러그인 관리 모듈(520)는, 해당 웹 어플리케이션 및 플러그인가 검증된 인증서를 포함하고 있지 않다는 오류 메시지를 사용자에게 제공한다(S605).
그리고, 상기 사용자에게 설치를 계속할 것인지를 확인하여, 사용자가 설치를 선택하면, 단계(S604)를 수행하여, 해당 플러그인 및 웹 어플리케이션을 설치하고, 사용자가 설치 중단을 선택하면, 그대로 종료한다(S606).
더하여, 본 발명에서는, 웹 어플리케이션 및 플러그인의 매 실행 및 로딩 시마다, 해당 웹 어플리케이션 및 플러그인의 코드 사인을 검증한다.
즉, 웹 어플리케이션 실행 장치는, 웹 어플리케이션 및 플러그인에 대한 실행 요청 또는 로딩 요청을 확인한다(S607).
확인 결과, 플러그인 및 웹 어플리케이션의 실행 요청이나 로딩 요청이 있는 경우, 웹 어플리케이션 실행 장치의 인증 모듈(310)이 해당 웹 어플리케이션 및 플러그인의 암호화된 해쉬값 및 인증서를 레지스트리 모듈(420)로부터 가져와 코드 사인을 검증한다(S608).
코드 사인 검증이 성공하면, 웹 어플리케이션 실행 장치는, 요청된 웹 어플리케이션 및 플러그인의 실행 또는 로딩을 실행하고(S609, S610), 반대로, 검증이 성공하지 못한 경우, 요청된 웹 어플리케이션 및 플러그인이 검증된 인증서를 포함하고 있지 않다는 오류 메시지를 사용자에게 제공한다(S611).
그리고, 사용자에게 실행 또는 로딩을 계속할 것인지를 확인하여, 사용자가 실행 또는 로딩을 선택하면, 단계(S610)를 수행하여, 해당 플러그인 및 웹 어플리케이션을 실행하거나 로딩하고, 중단을 선택하면, 그대로 종료한다(S612).
이와 같이, 웹 어플리케이션 및 플러그인에 대한 설치, 실행 또는 로딩 시마다, 코드 사인의 검증 과정을 수행하도록 함으로써, 제3 개발자나 악의적인 해커에 의한 웹 어플리케이션 및 플러그인이 오사용되거나, 검증되지 않은 플러그인 및 웹 어플리케이션이 구동되는 것을 걸러낼 수 있으며, 사용자에게 웹 어플리케이션 실행에 대한 신뢰성을 제공할 수 있다.
여기에 더하여, 본 발명에 의한 웹 어플리케이션 실행 장치는, 보안 계층부(300)의 정책 모듈(320)을 통해서, 웹 어플리케이션 실행중, 이식 계층부(200)에 대한 접근 요청시마다, 웹 어플리케이션의 접근 권한을 확인하여, 접근을 허여하거나 거부한다. 이에 따르면, 웹 어플리케이션이 단말의 자원이나 OS 기능을 부적절하게 해킹하거나 접근하는 것을 방지할 수 있다.
다음으로, 도 7 내지 도 9는 본 발명에 의한 웹 어플리케이션 관리 방법에 있어서, 웹 어플리케이션의 실행 요청을 처리하는 단계의 다양한 실시 예를 나타낸 흐름도이다. 이는 도 4의 단계(S401, S402, S408)에 적용될 수 있다.
먼저, 도 7을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치에서, 웹 어플리케이션 실행 요청은, 단축아이콘을 통해 이루어질 수 있다.
이러한 단축아이콘을 이용한 웹 어플리케이션의 실행 요청이 발생하면(S701), 웹 어플리케이션 실행 장치는, 실행 계층부(600)의 컨테이너 에이전트(610)가 동작하여 웹 어플리케이션 런타임 계층부(400)와 브라우저 엔진 계층부(500)를 포함하는 브라우저 엔진 컨테이너 코어가 실행 중인지를 확인한다(S702).
확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면(S703), 상기 브라우저 엔진 컨테이너 코어, 즉, 이식 계층부(200)와, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)를 로딩한다(S704).
상기 단계(S704)에 의해 또는 이전에 브라우저 엔진 컨테이너 코어가 실행되어 있는 상태이면, 웹 어플리케이션 런타임 모듈(410)의 커맨드 핸들러(411)로 웹 어플리케이션 실행 명령을 전달한다(S705). 여기에는 앞서 설명한 바와 같이, 웹 어플리케이션의 식별을 위한 웹 어플리케이션 URL이 함께 전달된다.
그리고 커맨드 핸들러(411)는 컨텍스트 매니저(412)에게 상기 웹 어플리케이션의 실행 요청을 전달한다(S706).
이에 컨텍스트 매니저(412)가 해당 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스를 생성하여, 디폴트 페이지 또는 요청된 페이지를 실행한다(S707)
다음으로, 도 8을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치에서, 웹 어플리케이션 실행 요청은, 웹 어플리케이션 매니저(710)를 통해 이루어질 수 있다(S801).
웹 어플리케이션 매니저(710)는, 레지스트리 모듈(420)에 저장된 웹 어플리케이션의 설치 정보를 참조하여, 현재 설치된 웹 어플리케이션의 목록을 사용자에게 안내한다. 여기서, 사용자가 특정 웹 어플리케이션의 실행을 요청하면, 웹 어플리케이션 매니저(710)는, 본 발명에 의한 웹 어플리케이션 실행 장치에서 제공하는 실행 API를 호출한다(S802).
이에 브라우저 엔진 모듈(510)이 하나 이상의 플러그 인(530) 중에서 시스템 API 플러그 인(532)을 로딩하여, 실행 API를 호출한다(S803).
상기 시스템 API 플러그 인(532)은 웹 어플리케이션 실행 장치의 코어 기능, 특히, 웹 어플리케이션 런타임 계층부(400)의 기능에 대한 접근 인터페이스를 제공하는 것으로서, 로딩된 시스템 API 플러그 인(532)은 웹 어플리케이션 런타임 계층부(400)의 컨텍스트 매니저(412)로 웹 어플리케이션의 실행 요청을 전달한다(S804).
이후 상기 컨텍스트 매니저(412)에 의해 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스가 생성되고, 디폴트 페이지 또는 요청 페이지가 실행된다(S805).
마지막으로, 도 9를 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 단말의 대기화면에서 웹 어플리케이션의 실행을 요청받을 수 있다(S901). 이때, 웹 어플리케이션 실행 장치는 비활성화 상태이다.
따라서, 단말에 설치된 네이티브 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 실행 계층부(600)의 대기모드 에이전트(630)을 로딩하여, 웹 어플리케이션 실행 명령을 전달한다(S902).
상기 대기모드 에이전트(630)은, 이식 계층부(200)과, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)로 이루어지는 브라우저 엔진 컨테이너 코어를 로딩하여, 대기화면 모드 실행 API를 호출한다(S903).
상기 대기화면 모드 실행 API 호출을 통해 컨텍스트 매니저(412)가 웹 어플리케이션의 실행 명령을 전달받고, 웹 어플리케이션을 위한 윈도우와 랜더러 인스턴스를 생성하여, 디폴트 페이지 또는 요청 페이지를 실행한다(S904).
더하여, 본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션의 실행시에, 초기 실행 속도 및 페이지간 전환 속도를 향상시키기 위하여, 도 10과 같은 웹 어플리케이션 실행 방법을 더 수행할 수 있다. 이는 도 4에 보인 웹 어플리케이션이 관리 방법에 있어서, 단계(S408)에서 페이지 실행시에 적용될 수 있다.
도 10을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션을 실행할 때, 디폴트 페이지 또는 요청된 페이지를 파싱, 레이아웃, 랜더링 처리하여 생성한 윈도우를 통해 출력한 후(S1001), 웹 어플리케이션에 포함되는 하나 이상의 다른 페이지를 추출한다(S1002). 하나 이상의 다른 페이지는 현재 출력된 페이지에서 연결되는 페이지일 수도 있으며, 상기 웹 어플리케이션에 포함된 나머지 페이지일 수도 있다. 즉, 매 페이지의 실행 시마다 각각 관련된 다른 페이지를 추출할 수도 있으며, 초기 페이지 실행 시에, 나머지 모든 페이지를 추출할 수도 있다.
그리고 웹 어플리케이션 실행 장치의 브라우저 엔진 모듈(510)은 추출한 하나 이상의 다른 페이지를 파싱하여, DOM 트리 및 스타일 트리를 생성하고, 상기 DOM 트리 및 스타일 트리의 관련 노드를 연결하여, 해당 다른 페이지의 레이아웃을 지정한다(S1003). 즉, 웹 컨텐츠(11)을 파싱하여, DOM(Document Object Model) 트리와 랜더러스타일 트리를 구성한 후, DOM 트리와 랜더러스타일 트리의 관련 노드를 연결하여, 랜더러 오브젝트를 생성하고, 생성한 랜더러 오브젝트를 통해 각 페이지의 레이아웃을 지정한다. 이렇게 레이아웃까지 처리된 데이터는 랜더링을 통해 화면으로 출력될 수 있다.
이어서, 브라우저 엔진 모듈(510)은 상기 레이아웃 지정까지 처리된 상기 다른 페이지의 데이터를 바로 랜더링하여 출력하지 않고 시리얼라이즈화(Serialization)한 후 바이너리 파일로 저장한다(S1004). 상기 다른 페이지의 바이너리 파일은 해당 웹 어플리케이션이 실행되는 동안, 임시로 저장되는 것이며, 해당 웹 어플리케이션의 종료 시에 삭제될 수 있다.
그리고 나서, 브라우저 엔진 모듈(510)은, 다른 페이지에 대한 이벤트, 더 구체적으로는 다른 페이지로의 전환 요청이 발생하는 지를 확인한다(S1005).
다른 페이지에 대한 이벤트가 발생하면, 앞서 단계(S1004)에서 저장한 다른 페이지의 바이너리 파일을 가져와 랜더링하여 해당하는 윈도우를 통해 출력한다(S1006).
상기 단계(S1002~S1006)는 웹 어플리케이션이 종료될 때까지 반복 수행된다(S1007).
이에 의하면, 다수의 페이지로 구성되는 웹 어플리케이션의 실행 시, 단말기에 저장되어 있는 웹 어플리케이션의 각 페이지의 데이터를 가져와, 미리 파싱 및 레이아웃 지정까지 처리함으로써, 해당 페이지의 실행 시 미리 레이아웃 지정까지 처리된 데이터를 가져와 랜더링하면 된다. 따라서, 본 발명에 의한 웹 어플리케이션 실행 방법은, 웹 어플리케이션의 초기 실행 시간이나 페이지간 전환 시간을 단축시킴으로써, 웹 어플리케이션의 실행 속도를 향상시킬 수 있다.
본 발명에 따른 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
더하여, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.
본 발명에 따르면, 운영 체제 별로 다른 형식을 가지는 기능 실행을 위한 인터페이스를 운영 체제의 종류에 무관하게 단일 형식으로 제공함으로써, 웹 어플리케이션이 동일한 방법으로 운영 체제가 관리하는 단말의 기능을 실행하도록 하며, 다수의 페이지로 구성되는 웹 어플리케이션을 페이지 단위가 아닌 어플리케이션 단위로 설치, 실행 및 업데이트되도록 관리함으로써, 웹 어플리케이션을 스탠드 얼론 어플리케이션과 동일한 방식으로 이용할 수 있다.
더하여, 이를 이동 통신 단말에 적용함으로써, 이동 통신 단말용 어플리케이션 개발자들이, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 웹 어플리케이션을 개발할 수 있게 된다.
100: 운영체제 (General Purpose OS)
200: 이식 계층부 (Porting layer)
300: 보안 계층부 (Security layer)
400: 웹 어플리케이션 런타임 계층부 (Web Application Runtime layer)
500: 브라우저 엔진 계층부 (Browser Engine layer)
600: 실행 계층부 (Executable layer)
700: 시스템 웹 어플리케이션 (System Web Application)
310: 인증 모듈
320: 정책 모듈
410: 웹 어플리케이션 런타임 모듈
420: 레지스트리 모듈
430: UI 엔진
440: 네트워크 셀렉터
450: 다이내믹 동기화 모듈
510: 브라우저 엔진 모듈
520: 플러그인 관리 모듈
530: 플러그인
610: 컨테이너 에이전트
620: 더미 실행 모듈
630: 대기모드 에이전트
200: 이식 계층부 (Porting layer)
300: 보안 계층부 (Security layer)
400: 웹 어플리케이션 런타임 계층부 (Web Application Runtime layer)
500: 브라우저 엔진 계층부 (Browser Engine layer)
600: 실행 계층부 (Executable layer)
700: 시스템 웹 어플리케이션 (System Web Application)
310: 인증 모듈
320: 정책 모듈
410: 웹 어플리케이션 런타임 모듈
420: 레지스트리 모듈
430: UI 엔진
440: 네트워크 셀렉터
450: 다이내믹 동기화 모듈
510: 브라우저 엔진 모듈
520: 플러그인 관리 모듈
530: 플러그인
610: 컨테이너 에이전트
620: 더미 실행 모듈
630: 대기모드 에이전트
Claims (27)
- 운영체제의 종류에 무관하게 상기 운영체제가 관장하는 기능 실행의 요청을 처리할 수 있는 단일 형식의 이식 계층 API(Application Programming Interface)를 지원하고, 상기 특정 이식 계층 API가 호출되면, 대응하는 운영체제의 API를 호출하여 응답을 반환하는 이식 계층부;
상기 이식 계층부와 연동하여, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부; 및
URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션 실행 요청을 입력받아, 상기 웹 어플리케이션이 로컬 스토리지에 존재하는 지를 확인하고, 확인 결과, 로컬 스토리지에 웹 어플리케이션이 존재하면, 상기 웹 어플리케이션의 실행 명령을 상기의 브라우저 엔진 계층부로 전달하며, 상기 브라우저 엔진 계층부에서 페이지를 실행하는데 있어서 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제1항에 있어서, 상기 URL 형태의 웹 어플리케이션 식별 정보는
로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와,
상기 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과,
상기 웹 어플리케이션의 파일 명을 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제1항에 있어서, 상기 웹 어플리케이션은
웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 상기 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와,
상기 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와,
상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제1항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
상기 로컬 스토리지에 상기 웹 어플리케이션이 존재하지 않는 경우, 사용자로부터 다운로드 여부를 확인하여, 사용자가 다운로드를 선택하면, 네트워크를 통해 서버에 접속하여, 상기 웹 어플리케이션을 다운로드받아 설치하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제1항에 있어서,
상기 브라우저 엔진 계층부와 이식 계층부 및 웹 어플리케이션 런타임 계층부를 로딩하고, 사용자의 요청에 따른 웹 어플리케이션의 실행 요청을 상기 웹 어플리케이션 런타임 계층 또는 브라우저 엔진 계층부로 전달하는 실행 계층부를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제1항에 있어서,
상기 웹 어플리케이션 및 상기 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제와 관련된 기능을 호출하는 플러그인의 설치 또는 실행 또는 로딩 전에, 인증서를 검증하고, 접근 제어 규칙에 따라서 상기 웹 어플리케이션의 실행 중 상기 이식 계층에 대한 접근을 제어하는 보안 계층부를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제1항에 있어서, 상기 브라우저 엔진 계층부는
웹 표준 언어로 작성된 웹 어플리케이션의 각 페이지를 해석하여 실행시키는 브라우저 엔진 모듈;
하나 이상의 플러그인에 대한 다운로드, 설치, 설치된 플러그인의 목록 관리, 업데이트, 및 플러그인의 호출 요청에 대한 처리를 수행하는 플러그인 관리 모듈; 및
상기 플러그인 관리 모듈에 의해 설치되고, 상기 플러그인 관리 모듈을 통해 동작하여, 각각 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 상기 이식 계층부를 통해 호출하여 그에 대한 응답을 반환하는 하나 이상의 플러그인을 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제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) 모듈 중에서 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제5항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈;
웹 어플리케이션 및 플러그인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈;
상기 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI(User Interface) 및 사용자 입력을 처리하는 UI 엔진;
웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리하는 네트워크 셀렉터; 및
웹 어플리케이션을 실행 중에, 네트워크 연결이 끊긴 동안의 데이터를 로컬 스토리지에 저장하고, 네트워크가 연결되면 로컬 스토리지에 저장한 데이터와 외부 데이터에 대한 동기화를 수행하는 다이내믹 동기화 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제5항에 있어서, 상기 실행 계층부는
단축아이콘 또는 단말의 네이티브 메뉴를 통한 웹 어플리케이션의 실행 요청에 따라서 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부의 실행 여부를 확인하고, 실행 중이면, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 컨테이너 에이전트;
상기 컨테이너 에이전트에 의해 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부를 로딩한 후, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 더미 실행 모듈; 및
네이티브 대기화면 관리자에 의해 로딩되어, 대기화면에서의 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 계층부로 전달하는 대기모드 에이전트를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제6항에 있어서, 상기 보안 계층부는
웹 어플리케이션 및 상기 플러그인의 설치 또는 실행 시, 상기 웹 어플리케이션 및 플러그인의 인증서를 검증하는 인증 모듈; 및
웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 상기 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제7항에 있어서, 상기 하나 이상의 플러그인은
단말 자원과 관련된 기능 호출을 이식계층으로 전달하는 리소스 플러그인과,
웹 어플리케이션의 단말 OS API 호출 기능을 이식 계층부에 전달하고, 웹 어플리케이션 런타임 계층부의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인과,
웹 어플리케이션과 네이티브 어플리케이션 사이의 연동을 위한 기능 호출을 이식 계층부로 전달하는 협업(Collaboration) 플러그인과,
웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부에 전달하는 동기화(Sync) 플러그인 중에서 하나 이상을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제9항에 있어서, 상기 웹 어플리케이션 런타임 모듈은
상기 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러;
상기 커맨드 핸들러 또는 상기 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 네이티브 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저;
상기 컨텍스트 매니저에서 생성한 네이티브 윈도우 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 UI 이펙트를 줄 수 있도록 상기 UI 엔진에 전달하는 이벤트 핸들러; 및
다수의 페이지를 포함하는 웹 어플리케이션 및 그의 각 페이지에 대한 라이프사이클을 관리하는 라이프사이클 매니저를 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제9항에 있어서, 상기 레지스트리 모듈은
URL 형태의 웹 어플리케이션 식별 정보인 웹 어플리케이션 URL과, 상기 웹 어플리케이션 URL로 식별되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 위치를 나타내는 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 정책 정보를 포함하는 웹 어플리케이션 설치 정보 관리 테이블을 구성하고 관리하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제1항 내지 제14항 중 어느 한 항에 기재된 웹 어플리케이션 실행 장치를 구비한 단말기.
- 운영체제의 기능 단말의 자원에 대한 이식 계층 API를 지원하는 이식 계층부와, 웹 어플리케이션의 각 페이지를 해석하여 실행하는 브라우저 엔진 계층부와, 브라우저 엔진 계층부에서 페이지를 실행하는데 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부를 포함하는 브라우저 엔진 컨테이너 코어와, 상기 브라우저 엔진 컨테이너 코어의 엔트리 포인트인 실행 계층부를 포함하는 웹 어플리케이션 실행 장치에 의한, 웹 어플리케이션 관리 방법에 있어서,
URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받는 단계;
로컬 스토리지에 상기 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하는 단계; 및
상기 웹 어플리케이션이 로컬 스토리지에 존재하면, 상기 로컬 스토리지에 저장된 웹 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항에 있어서,
상기 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 확인하는 단계;
사용자가 다운로드 받는다고 선택하면, 상기 URL 형태의 웹 어플리케이션 식별 정보를 네트워크를 통해 접속가능한 URL로 변환하는 단계; 및
상기 변환된 URL을 이용하여, 네트워크상의 웹 서버에 접속하여, 상기 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항에 있어서, 상기 URL 형태의 웹 어플리케이션 식별 정보는
로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와,
상기 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과,
상기 웹 어플리케이션의 파일 명을 포함하여 이루어지는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항에 있어서, 상기 웹 어플리케이션은
웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 상기 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와,
상기 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와,
상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치. - 제16항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는,
상기 브라우저 엔진 컨테이너 코어의 브라우저 엔진 계층부가 웹 어플리케이션 실행 요청에 따라서, 상기 웹 어플리케이션을 위한 네이티브 윈도우 및 랜더러 인스턴스를 생성하는 단계;
웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 파싱, 레이아웃 지정, 및 랜더링하여 상기 생성한 네이티브 윈도우로 출력하는 단계;
상기 출력된 페이지 이외에 상기 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계;
상기 하나 이상의 다른 페이지에 대한 파싱 및 레이아웃 지정을 수행하는 단계;
상기 레이아웃 지정까지 처리된 다른 페이지의 데이터를 시리얼라이즈화하여 바이너리 파일로 저장하는 단계;
상기 다른 페이지에 대한 이벤트 발생을 확인하는 단계;
이벤트가 발생하면, 상기 저장한 바이너리 파일을 랜더링하여 상기 네이티브 윈도우로 출력하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항에 있어서, 상기 웹 어플리케이션의 실행 요청을 전달받는 단계는
단축아이콘을 이용한 사용자의 웹 어플리케이션의 실행 요청이 입력되면, 상기 실행 계층부에서 상기 브라우저 엔진 컨테이너 코어의 실행 여부를 확인하는 단계;
확인 결과, 브라우저 엔진 컨테이너 코어가 실행 중이 아니면 상기 브라우저 엔진 컨테이너 코어를 로딩하는 단계;
브라우저 엔진 컨테이너 코어가 실행중이면, 상기 브라우저 엔진 컨테이너 코어의 웹 어플리케이션 런타임 계층부로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항에 있어서, 상기 웹 어플리케이션의 실행 요청을 전달받는 단계는
웹 어플리케이션을 관리하는 웹 어플리케이션 매니저를 통해 실행 API가 호출되는 단계;
상기 브라우저 엔진 컨테이너 코어가 코어 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그인을 로딩하는 단계; 및
상기 로딩된 시스템 API 플러그인이 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항에 있어서, 상기 웹 어플리케이션의 실행 요청을 전달받는 단계는
네이티브 대기화면 관리자가 사용자의 웹 어플리케이션 실행 요청을 입력 받아, 상기 실행 계층부의 대기모드 에이전트를 로딩하는 단계; 및
상기 대기모드 에이전트가 상기 브라우저 엔진 컨테이너 코어를 로딩하고, 대기화면 모드 실행 API를 호출하여, 상기 웹 어플리케이션 런타임 계층부의 컨텍스트 매니저로 상기 웹 어플리케이션에 대한 실행 명령을 전달하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제17항에 있어서, 상기 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치하는 단계는,
상기 웹 서버에 접속하여 웹 어플리케이션을 다운로드 받는 단계;
상기 브라우저 엔진 계층부로 레지스트리 메쏘드를 호출하는 단계;
상기 브라우저 엔진 계층부에서 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하기 위하여, 시스템 API 플러그인을 호출하는 단계;
상기 호출에 의해 시스템 API 플러그인이 동작하여, 웹 어플리케이션 런타임 계층부의 레지스트리 모듈을 호출하는 단계; 및
상기 호출된 레지스트리 모듈이, 다운로드 받은 파일에서 설치 정보를 추출하여 보안 스토리지에 저장하고, 웹 컨텐츠는 로컬 스토리지에 저장하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항 또는 제17항에 있어서,
상기 웹 어플리케이션의 설치 또는 실행 전에, 상기 웹 어플리케이션의 인증서를 검증하여, 인증서 검증이 성공하면, 웹 어플리케이션의 설치 또는 실행을 계속하도록 하고, 인증서 검증이 성공하지 못하면, 사용자에게 설치 또는 실행 계속 여부를 확인하도록 하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는
상기 이식 계층부에 대한 접근이 필요한 경우, 웹 어플리케이션 별로 설정된 접근 제어 규칙을 참조하여, 상기 이식 계층부에 대한 접근을 허여하거나 거부하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 관리 방법. - 제16항 내지 제26항에 기재된 웹 어플리케이션 관리 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20100043321A KR101482150B1 (ko) | 2010-05-10 | 2010-05-10 | 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20100043321A KR101482150B1 (ko) | 2010-05-10 | 2010-05-10 | 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110123867A true KR20110123867A (ko) | 2011-11-16 |
KR101482150B1 KR101482150B1 (ko) | 2015-01-14 |
Family
ID=45393872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20100043321A KR101482150B1 (ko) | 2010-05-10 | 2010-05-10 | 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101482150B1 (ko) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013078082A1 (en) * | 2011-11-21 | 2013-05-30 | Microsoft Corporation | Client application file access |
KR20130095668A (ko) * | 2012-02-20 | 2013-08-28 | 한국전자통신연구원 | 하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치 |
KR101368966B1 (ko) * | 2012-05-29 | 2014-03-04 | (주)모비루스 | 어플리케이션을 연동하기 위한 휴대 단말기 및 차량용 인포테인먼트 장치 그리고, 이들 간의 어플리케이션 연동방법 |
KR20150039344A (ko) * | 2013-10-02 | 2015-04-10 | 에스케이플래닛 주식회사 | 네이티브 앱 실행을 위한 단말장치 및 그 방법 |
KR20160069445A (ko) * | 2014-12-08 | 2016-06-16 | 에스케이플래닛 주식회사 | 웹 어플리케이션 관리를 위한 사용자 장치 및 그 방법 |
KR20200000645A (ko) * | 2018-06-25 | 2020-01-03 | 주식회사 한글과컴퓨터 | 웹 컨트롤 인터페이스를 제공하는 장치 및 이의 동작 방법 |
WO2022040127A1 (en) * | 2020-08-20 | 2022-02-24 | T-Mobile Usa, Inc. | Communications registry and governance for apps |
WO2022081859A1 (en) * | 2020-10-14 | 2022-04-21 | VIDAA USA, Inc. | Page loading method and display apparatus |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7424601B2 (en) | 2004-07-07 | 2008-09-09 | Yongyong Xu | Methods and systems for running multiple operating systems in a single mobile device |
KR100837298B1 (ko) * | 2006-10-31 | 2008-06-11 | 에스케이 텔레콤주식회사 | 멀티태스킹 단말기 및 애플리케이션 전환 방법 |
KR100918658B1 (ko) | 2009-01-30 | 2009-09-22 | (주)티비스톰 | 다중 어플리케이션을 실행하기 위한 미들웨어 장치 |
-
2010
- 2010-05-10 KR KR20100043321A patent/KR101482150B1/ko active IP Right Grant
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013078082A1 (en) * | 2011-11-21 | 2013-05-30 | Microsoft Corporation | Client application file access |
US9355115B2 (en) | 2011-11-21 | 2016-05-31 | Microsoft Technology Licensing, Llc | Client application file access |
RU2620721C2 (ru) * | 2011-11-21 | 2017-05-29 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Доступ к файлу клиентского приложения |
KR20130095668A (ko) * | 2012-02-20 | 2013-08-28 | 한국전자통신연구원 | 하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치 |
KR101368966B1 (ko) * | 2012-05-29 | 2014-03-04 | (주)모비루스 | 어플리케이션을 연동하기 위한 휴대 단말기 및 차량용 인포테인먼트 장치 그리고, 이들 간의 어플리케이션 연동방법 |
KR20150039344A (ko) * | 2013-10-02 | 2015-04-10 | 에스케이플래닛 주식회사 | 네이티브 앱 실행을 위한 단말장치 및 그 방법 |
KR20160069445A (ko) * | 2014-12-08 | 2016-06-16 | 에스케이플래닛 주식회사 | 웹 어플리케이션 관리를 위한 사용자 장치 및 그 방법 |
KR20200000645A (ko) * | 2018-06-25 | 2020-01-03 | 주식회사 한글과컴퓨터 | 웹 컨트롤 인터페이스를 제공하는 장치 및 이의 동작 방법 |
WO2022040127A1 (en) * | 2020-08-20 | 2022-02-24 | T-Mobile Usa, Inc. | Communications registry and governance for apps |
US11435992B2 (en) | 2020-08-20 | 2022-09-06 | T-Mobile Usa, Inc. | Communications registry and governance for apps |
WO2022081859A1 (en) * | 2020-10-14 | 2022-04-21 | VIDAA USA, Inc. | Page loading method and display apparatus |
US12045631B2 (en) | 2020-10-14 | 2024-07-23 | VIDAA USA, Inc. | Page loading method and display apparatus |
Also Published As
Publication number | Publication date |
---|---|
KR101482150B1 (ko) | 2015-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240281233A1 (en) | System and Methods for Integration of an Application Runtime Environment Into a User Computing Environment | |
KR101482150B1 (ko) | 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법 | |
JP6192534B2 (ja) | 仮想アプリケーション拡張ポイント | |
KR101453742B1 (ko) | 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법 | |
US8856805B2 (en) | Virtual channel for embedded process communication | |
KR101661784B1 (ko) | 웹 브라우저를 통한 애플리케이션으로의 컨텐츠 입력 메소드 | |
US8701104B2 (en) | System and method for user agent code patch management | |
US9075637B1 (en) | Installer-free applications using native code modules and persistent local storage | |
US9317681B2 (en) | Information processing apparatus, information processing method, and computer program product | |
CN106406961A (zh) | 一种基于浏览器加载、提供应用程序的方法、装置 | |
WO2010095226A1 (ja) | アプリケーション開発支援装置、プログラム及び記録媒体 | |
KR101482151B1 (ko) | 웹 어플리케이션 실행 장치 및 방법 | |
US20160080523A1 (en) | Enhanced feature vector | |
US9513762B1 (en) | Static content updates | |
WO2013091556A1 (zh) | 一种基于浏览器的应用程序的扩展方法及装置 | |
Puder et al. | Exposing native device APIs to web apps | |
US10303343B1 (en) | Data driven user interfaces for device management | |
KR101482152B1 (ko) | 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 | |
KR101482149B1 (ko) | 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 | |
WO2016086766A1 (zh) | 浏览器防注入的方法、浏览器客户端和装置 | |
Hossain | CORS in Action: Creating and consuming cross-origin apis | |
KR101460515B1 (ko) | 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 | |
US11811994B2 (en) | Information processing system and apparatus to manage combined application | |
Frisbie | The Extension Manifest | |
KR101288845B1 (ko) | 멀티 모바일 서비스 시스템 및 그 방법 |
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 |