KR20110133950A - 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 - Google Patents

웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20110133950A
KR20110133950A KR1020100053649A KR20100053649A KR20110133950A KR 20110133950 A KR20110133950 A KR 20110133950A KR 1020100053649 A KR1020100053649 A KR 1020100053649A KR 20100053649 A KR20100053649 A KR 20100053649A KR 20110133950 A KR20110133950 A KR 20110133950A
Authority
KR
South Korea
Prior art keywords
web application
file
resource
page
tag
Prior art date
Application number
KR1020100053649A
Other languages
English (en)
Other versions
KR101504088B1 (ko
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 KR1020100053649A priority Critical patent/KR101504088B1/ko
Publication of KR20110133950A publication Critical patent/KR20110133950A/ko
Application granted granted Critical
Publication of KR101504088B1 publication Critical patent/KR101504088B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • 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
    • 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

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)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것으로, 웹 어플리케이션의 리소스 파일을 웹 어플리케이션의 실행 전에 미리 다운로드 받고, 사용자의 웹 어플리케이션 실행 요청이 있는 때에 그 다운로드 받은 리소스 파일을 이용하여 웹 어플리케이션을 실행시킴으로써, 웹 어플리케이션 실행 시, 리소스 파일을 다운로드 받는 시간을 절약할 수 있으므로, 그 웹 어플리케이션의 응답 속도를 향상시킬 수 있다.

Description

웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체{Apparatus for executing web application, method thereof and computer recordable medium storing the method}
본 발명은 웹 어플리케이션 실행 기술에 관한 것으로, 보다 상세하게는, 웹 어플리케이션 실행에 필요한 리소스를 미리 다운로드 받은 후, 웹 어플리케이션을 실행하여 응답 속도의 향상을 가져올 수 있는 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것이다.
최근 이동 통신 단말에 대한 오픈 환경이 제공되면서, 서비스의 차별화를 위하여 개방형 어플리케이션 및 플랫폼 환경이 요구되고 있다. 초기의 클라이언트-서버(client-server) 컴퓨팅 환경에서 각 어플리케이션들은 각 어플리케이션 별로 다른 저만의 사용자 인터페이스를 가지고 있었고, 각 사용자의 컴퓨터에 각각 따로 설치하여야 했다. 서버 환경이 바뀌면 클라이언트에 인스톨된 어플리케이션도 이에 맞춰 업그레이드해야 했다. 이에 따라 기술 지원 비용은 증가하고 생산성은 떨어지게 되었다.
반면, 단순한 콘텐츠를 표현하기 위해 시작된 웹 페이지는 브라우저라는 클라이언트 어플리케이션을 사용할 수 있는 환경만 갖춰지면 어디서나 동등한 수준의 사용자 인터페이스를 제공할 수 있다는 장점 때문에, 사용자 저변과 서비스 영역을 빠르게 확장해왔다. 이와 함께, 웹 페이지는 특정 내용을 개시하는 단순한 콘텐츠에서 사용자의 입력에 반응하여 사용자가 원하는 서비스를 제공할 수 있는 웹 어플리케이션으로 진화하고 있다. 하지만, 단말은 복수의 페이지로 이루어진 웹 어플리케이션을 실행할 때, 각 페이지에 삽입되는 리소스 파일을 다운로드 받은 후, 그 다운로드 받은 파일을 브라우저를 통해 표시해야 함으로, 웹 어플리케이션의 실행의 응답 속도가 느려지는 문제가 있다.
따라서 상술한 바와 같은 문제를 감안한 본 발명의 목적은 웹 어플리케이션의 페이지에 삽입되는 리소스 파일을 미리 다운로드 하여 웹 어플리케이션의 실행 시. 리소스 파일의 다운로드 시간을 절약함으로써 응답 속도를 향상시킬 수 있는 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 웹 어플리케이션 실행 장치는, 네트워크에 연결해 통신을 수행하기 위한 네트워크 연결부; 상기 웹 어플리케이션을 패키지 단위인 웹 어플리케이션 패키지로 저장하는 저장부; 및 상기 웹 어플리케이션의 실행 전, 상기 웹 어플리케이션의 소스 파일을 분석하여, 웹 어플리케이션 실행시 필요한 리소스 파일 중 미리 다운로드 받을 수 있는 리소스 파일의 목록인 다운로드 리소스 목록을 작성하여 상기 저장부에 저장하고, 대기 모드에서 상기 네트워크 연결부를 통해 상기 다운로드 리소스 목록의 리소스 파일을 다운로드 하여 상기 저장부에 저장하며, 사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션을 실행하는 제어부;를 포함한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 다운로드 리소스 목록은 상기 소스 파일에서 태그 및 상기 태그의 속성이 리소스 파일의 링크를 지시하는 주소인 경우, 상기 주소를 등록한 것임을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 대기 모드는 상기 네트워크 연결부의 네트워크 트래픽이 기 설정된 용량 미만인 경우임을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 제어부는 상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션의 각 페이지에 대해 바이너리 페이지 데이터를 미리 생성한 후, 사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 바이너리 페이지 데이터를 랜더링하여 웹 어플리케이션을 실행하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 저장부는 상기 웹 어플리케이션 패키지에 대한 정보, 상기 웹 어플리케이션을 다른 웹 어플리케이션과 구분하여 실행시키기 위한 실행 정보 및 상기 다운로드 리소스 목록을 저장하는 레지스트리를 포함한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 실행 정보는, 프로토콜 스킴(protocol scheme) 및 상기 프로토콜 스킴에 이어서 기술되는 주소로 이루어지는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 프로토콜 스킴은 "httpa://"의 형식을 가지는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 주소는 상기 웹 어플리케이션을 제작한 제작사 또는 상기 웹 어플리케이션을 제공하는 콘텐츠 제공자의 도메인 명칭, 상기 웹 어플리케이션을 이루는 패키지의 명칭인 웹 어플리케이션 패키지 명칭 및 상기 웹 어플리케이션을 실행할 때 가장 먼저 실행시키는 소스 파일의 명칭인 시작 페이지를 포함한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 제어부는 상기 웹 어플리케이션을 설치할 시, 상기 레지스트리에 상기 실행 정보를 등록하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 저장부는 상기 다운로드 리소스 목록을 만들 시 상기 웹 어플리케이션의 각 페이지가 선입선출 방식에 따라 순차로 입력되고 출력되는 큐를 포함하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 제어부는 상기 다운로드 리소스 목록을 작성할 시, 상기 큐에 상기 웹 어플리케이션을 구성하는 적어도 하나의 페이지를 순차로 입력하여, 상기 큐가 먼저 입력된 페이지를 먼저 출력함에 따라, 출력되는 페이지 순으로 상기 다운로드 리소스 목록을 작성하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 웹 어플리케이션 패키지는 상기 웹 어플리케이션의 콘텐츠를 기술하는 콘텐츠 파일과 상기 웹 어플리케이션 및 상기 웹 어플리케이션의 패키지에 대한 정보를 기술하는 정보 파일을 포함하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 콘텐츠 파일은, 상기 웹 어플리케이션의 각 페이지를 표현하는 소스 파일 및 상기 소스 파일에 링크로 연결되는 리소스 파일을 포함한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 소스 파일은 태그 및 상기 태그의 속성이 기술되는 마크업 언어, 상기 태그 및 상기 태그의 속성이 페이지에 표시되는 스타일을 기술하는 스타일시트 및 상기 웹 어플리케이션을 동적으로 제어하기 위한 스크립트 언어를 포함하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 리소스 파일은 상기 리소스 파일의 형식에 맞는 형태로 링크를 통해 상기 페이지에 삽입되는 개별 파일인 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 리소스 파일은 장면 기술, 비디오, 오디오, 이미지, 폰트, 텍스트, 메타데이터, 및 스크립트 파일 중 적어도 하나인 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 정보 파일은 상기 웹 어플리케이션의 패키지에 포함되는 파일의 목록, 파일 별 공개 여부와 공개 범위, 및 상기 웹 어플리케이션의 실행 환경을 설정하기 위한 설정 값을 포함하는 구성 정보가 기술되는 구성 정보 파일과, 상기 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 접근 권한의 범위를 지정하기 위한 정책 정보를 기술하는 정책 정보 파일을 포함한다.
본 발명의 웹 어플리케이션 실행 장치에 있어서, 상기 웹 어플리케이션 패키지는 상기 저장부에 데이터베이스 구조로 저장되는 것을 특징으로 한다. 상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 웹 어플리케이션 실행 방법은, 상기 웹 어플리케이션의 실행 전, 상기 웹 어플리케이션의 소스 파일을 분석하여, 상기 소스 파일에 포함된 리소스 파일 중 미리 다운로드 받을 수 있는 리소스 파일의 목록인 다운로드 리소스 목록을 작성하는 단계; 대기 모드이면, 상기 다운로드 리소스 목록의 리소스 파일을 다운로드 하는 단계; 및 사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션을 실행하는 단계;를 포함한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 작성하는 단계는, 상기 웹 어플리케이션의 시작 페이지의 태그 및 상기 태그의 속성을 분석하는 단계; 및 상기 분석 결과, 상기 태그의 속성이 리소스 파일의 링크를 나타내는 주소이면, 상기 주소를 상기 다운로드 리소스 목록에 등록하는 단계;를 포함한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 분석하는 단계 후, 상기 분석 결과, 상기 태그의 속성이 상기 웹 어플리케이션을 구성하는 다른 페이지의 링크인 경우, 상기 다른 페이지에 대해 상기 분석하는 단계 및 상기 등록하는 단계를 수행하는 단계를 더 포함한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 작성하는 단계는 다운로드 리소스 목록의 용량이 기 설정된 용량을 초과할 것으로 판단되는 경우 또는 상기 웹 어플리케이션을 구성하는 모든 페이지의 모든 태그를 분석한 경우 종료하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 다운로드 하는 단계는, 상기 대기 모드인지 판단하는 단계; 상기 판단 결과 대기 모드이면, 상기 다운로드 리소스 목록의 리소스 파일이 이미 다운로드 되었는지 확인하는 단계; 및 상기 확인 결과, 다운로드 되지 않은 리소스 파일을 다운로드 하는 단계;를 포함한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 대기 모드는, 네트워크 트래픽이 기 설정된 용량 미만인 경우임을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 다운로드 하는 단계는, 상기 다운로드 리소스 목록의 모든 리소스 파일을 다운로드 하였거나, 상기 대기 모드가 종료될 때까지 수행하는 것을 특징으로 한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 실행하는 단계는 상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션의 각 페이지에 대해 바이너리 페이지 데이터를 생성하는 단계; 및 사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 바이너리 페이지 데이터를 랜더링하여 웹 어플리케이션을 실행하는 단계;를 포함한다.
본 발명의 웹 어플리케이션 실행 방법에 있어서, 상기 바이너리 페이지 데이터를 생성하는 단계는, 상기 다운로드 리소스 목록을 참조하여 해당 페이지의 속성 중 리소스 파일의 속성을 상기 미리 다운로드 받은 리소스 파일이 저장된 경로로 변경하는 단계; 상기 웹 어플리케이션의 각 페이지의 소스 파일을 분석하여, DOM 트리 및 스타일 트리를 생성하는 단계; 상기 DOM 트리 및 스타일 트리를 결합하여 랜더러 트리를 생성하는 단계; 상기 랜더러 트리를 해석하여 페이지 데이터를 생성하는 단계; 및 상기 페이지 데이터를 바이너리 형태로 변환하여 바이너리 페이지 데이터를 생성하는 단계를 포함한다.
그리고, 상술한 웹 어플리케이션 실행 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체를 제공한다.
본 발명에 따르면, 웹 어플리케이션 실행 시 필요한 리소스 파일을 미리 다운로드 받아 저장함으로써, 웹 어플리케이션 실행 시, 필요한 리소스 파일을 다운로드 하는 시간을 절약할 수 있으므로, 사용자의 입력에 대한 웹 어플리케이션의 응답 속도를 향상시킬 수 있다. 이에 따라, 사용자의 입력에 대한 응답 속도를 향상시킬 수 있어, 웹 어플리케이션 실행 시, 브라우저 없이 동작하는 일반 어플리케이션에 비해 응답 속도에서 차이가 없는 사용자 경험을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 웹 어플리케이션의 페이지를 설명하기 위한 도면.
도 2a 및 도 2b는 본 발명의 실시예에 따른 웹 어플리케이션 패키지를 설명하기 위한 도면.
도 3은 본 발명의 실시예에 따른 웹 어플리케이션의 어느 일 페이지를 해석하고 실행하는 방법을 설명하기 위한 도면.
도 4는 본 발명의 실시예에 따른 소스 파일을 설명하기 위한 도면.
도 5는 도 4의 소스 파일로부터 구성된 DOM 트리를 설명하기 위한 도면.
도 6은 도 4의 소스 파일로부터 실행된 웹 어플리케이션의 페이지를 설명하기 위한 도면.
도 7은 본 발명의 실시예에 따른 웹 어플리케이션 실행 장치를 설명하기 위한 도면.
도 8은 본 발명의 실시예에 따른 웹 어플리케이션 실행 방법을 개략적으로 설명하기 위한 흐름도.
도 9는 본 발명의 실시예에 따른 다운로드 리소스 목록을 작성하는 방법을 설명하기 위한 흐름도.
도 10은 본 발명의 실시예에 따른 웹 어플리케이션 실행을 위한 리소스 파일을 미리 다운로드 받는 방법을 설명하기 위한 흐름도.
도 11은 본 발명의 실시예에 따른 웹 어플리케이션의 각 페이지 데이터를 생성하는 방법을 설명하기 위한 흐름도.
도 12는 본 발명의 실시예에 따른 웹 어플리케이션 실행 방법을 설명하기 위한 흐름도.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
더하여, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
먼저, 본 발명의 실시예에 따른 웹 어플리케이션에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 웹 어플리케이션의 페이지를 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 웹 어플리케이션은 적어도 하나의 페이지(10)로 이루어진다. 도 1에서는 복수의 페이지(10)로 이루어진 웹 어플리케이션을 도시하였다. 웹 어플리케이션은 페이지(10)를 기본 단위로 동작한다. 웹 어플리케이션이 복수의 페이지(10)로 이루어진 경우, 웹 어플리케이션을 실행시키면, 어느 하나의 페이지(10)가 시작 페이지로 실행된다. 그리고 복수의 페이지(10)는 개발자의 의도에 따라 링크로 연결되며, 웹 어플리케이션이 실행됨에 따라 어느 하나의 페이지(10)의 실행 중 다른 페이지(10)를 실행시키는 이벤트가 발생하면 그 다른 페이지(10)가 실행된다.
도 2a 및 도 2b는 본 발명의 실시예에 따른 웹 어플리케이션 패키지를 설명하기 위한 도면이다.
도 2a에 본 발명의 실시예에 따른 웹 어플리케이션 패키지를 도시하였다. 도 1 및 도 2a를 참조하면, 웹 어플리케이션 패키지는 적어도 하나의 페이지(10)로 이루어지며, 각 페이지(10)의 콘텐츠를 기술하는 콘텐츠 파일(100)과 웹 어플리케이션 및 웹 어플리케이션의 패키지에 대한 정보를 기술하는 정보 파일(200)을 포함한다. 여기서, 콘텐츠 파일(100)은 소스 파일(110) 및 리소스 파일(120)을 포함한다. 또한, 정보 파일(200)은 구성 정보 파일(210) 및 정책 정보 파일(220)을 포함한다.
도 2b에 본 발명의 실시예에 따른 소스 파일(110)의 일 예를 도시하였다. 도 1, 도 2a 및 도 2b를 참조하면, 소스 파일(110)은 마크업 언어(Markup Language, 111), 스타일시트(Style Sheets, 113), 및 스크립트 언어(scripting language, 115)로 작성된 파일이며, 이중 스타일시트(113) 및 스크립트 언어(115)는 선택적으로 생략 가능하다. 상술한 언어들로 작성된 소스 파일(110)에 의해 페이지(10)가 표현된다. 마크업 언어(111)는 HTML(Hypertext Markup Language), XHTML(extensible Hypertext Markup Language), XML(Extensible Markup Language) 등을 예시할 수 있으며, 이러한 마크업 언어(111)는 다수의 태그(tag)와 각 태그의 속성(attribute) 및 일반적인 텍스트로 이루어진다. 스타일시트(113)는 사용자가 정의한 디자인 속성, 즉, 스타일을 기술하기 위한 언어이다. 스타일시트(113)는 태그, 속성, 및 텍스트에 의해 보여지는 페이지(10)의 글꼴, 크기, 색상, 레이아웃 등의 스타일을 기술한다. 이러한 스타일시트(113)를 사용한 페이지(10)는 다른 화면 해상도를 가지는 표시 장치와 다른 종류의 브라우저에서도 스타일시트(113)에 기술한 바에 따라 동일하게 보여진다. 이 스타일시트(113)는 대표적으로 CSS(Cascading Style Sheets)를 예시할 수 있다. 스크립트 언어(115)는 프로그래밍 언어로서 웹 어플리케이션을 동적으로 제어하기 위한 언어이다. 대표적으로, 자바 스크립트(Java Script)를 예시할 수 있다.
리소스 파일(120)은 페이지(10)에 삽입되는 각종의 파일이다. 이 리소스 파일(120)은 소스 파일(110)을 기술하는 프로그래밍 언어를 통해 링크 태그를 이용하여 페이지(10)에 삽입될 수 있다. 리소스 파일(120)은 웹(Web) 상의 어느 일 디바이스에 저장될 수 있으며, 이 리소스 파일(120)에 접근하여 다운로드 받을 수 있는 주소(URL)는 마크업 언어(111)에서 태그의 속성으로 기술된다. 이러한 리소스 파일(120)은 장면 기술(scene description), 비디오(video), 오디오(audio), 이미지(image), 폰트(font), 텍스트(text), 메타데이터(meta-data) 및 스크립트(script) 파일 등을 예시할 수 있다. 이하로는, 보다 정확한 이해와 설명의 편의를 위해, 리소스 파일(120)을 이미지 파일의 관점에 맞춰 설명할 것이나 리소스 파일(120)을 이미지 파일로 한정하는 것은 아니다. 또한, 리소스 파일(120)은 앞서 나열한 것 이외에도 다양한 종류가 존재할 수 있으며, 다양한 형식(format)의 파일이 될 수 있다. 특히, 다른 웹 페이지 또는 다른 웹 어플리케이션의 어느 일 페이지(10)도 리소스 파일(120)이 될 수 있다. 즉, 리소스 파일(120)은 각 리소스 파일(120)의 형식에 맞는 형태로 링크를 통해 웹 어플리케이션의 페이지(10)에 삽입되는 개별 파일을 모두 포함하는 의미이다.
구성(Configuration) 정보는 구성 정보 파일(210)에 기술되는 내용으로, 해당 웹 어플리케이션의 패키지에 포함되는 파일의 목록, 그 파일 별 공개 여부와 공개 범위, 및 웹 어플리케이션의 실행 환경을 설정하기 위한 설정 값이 저장된다. 여기서, 실행 환경은 웹 어플리케이션이 실행되기 위해 요구되는 사양과 그 설정을 기술하는 것으로, 화면 크기, CPU, 그 CPU의 클럭 속도, 운영 체제, 입력 및 출력을 위한 버퍼(buffer)의 형태 및 크기 등이 될 수 있다.
정책 정보는 정책 정보 파일(220)에 기술되는 내용으로, 해당 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 접근 권한의 범위를 지정하기 위한 정보로, 해쉬 코드 등을 예로 들 수 있다. 해쉬 코드(Hash code)는 웹 어플리케이션의 무결성(integrity)을 검증하기 위한 것으로, 이 해쉬 코드를 이용하여 해당 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 권한이 있는지 여부를 확인할 수 있다.
그러면, 상술한 소스 파일(110) 및 리소스 파일(120)이 어떻게 해석되고 화면으로 표현되는지 살펴보기로 한다. 프로그래밍 언어는 명령형 기술 언어와 선언적 기술 언어로 분류할 수 있다. 명령형 기술 언어는 "어떤 방법"으로 해를 구할 것인지에 중점을 두어 기술되는 언어로, 실행될 알고리즘을 명시하고 목표는 명시하지 않는다. 대표적으로 전통적인 포트란, C, 자바 등이 명령형 기술 언어에 해당한다. 이와 반대로, 선언적 기술 언어는 "해"가 무엇인지를 설명하는 것에 중점을 두어 기술되는 언어로, 목표를 명시하고 알고리즘은 명시하지 않는다. 본 발명의 실시예에 따른 소스 파일(110)은 선언적 기술 언어로 작성된다. 예를 들어, 소스 파일(110)이 마크업 언어 중 HTML로 작성되었다고 했을 때, 그 HTML의 태그 및 태그의 속성은 HTML 뷰어(Viewer), 즉, 브라우저에서 무엇을 보여주어야 하는지를 선언하는 것이다. 이에 따라, 실제 브라우저를 동작하는 브라우저 엔진의 절차적 알고리즘이 태그 및 태그의 속성을 해석하여, 화면에 표시할 점들로 변환한다. 이를 위하여, 선언적 기술 언어로 작성된 소스 파일(110)의 구성 성분(태그 및 속성)을 의미 있는 토큰으로 분해(parsing)하여 그들 사이의 위계 관계를 분석한 후, 분석된 위계 관계에 따라 문장의 구조가 이미 결정된 파스 트리(parse tree)를 구성한다. 파스 트리의 각 노드(node)는 태그, 속성 및 일반 텍스트를 포함할 수 있으며, 이는 무엇을 보여주어야 하는지 선언한 것이다. 그러므로, 브라우저는 각 노드의 선언된 바를 트리 구조의 위계 관계에 따라 표현한다. 이에 대해서 좀 더 자세히 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 웹 어플리케이션의 어느 일 페이지를 해석하고 실행하는 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 앞서 설명한 바와 같이, 소스 파일(110)은 마크업 언어(111), 스타일시트(113) 및 스크립트 언어(115)로 이루어진다. 여기서, 스크립트 언어(115)를 해석하는 방법에 대한 설명은 발명의 요지를 명확히 하기 위해 생략하기로 한다.
S301 단계에서, 마크업 언어(111) 및 스타일시트(113)는 선언적 기술 언어의 해석 방법에 따라, 구성 성분을 의미 있는 토큰으로 분해하여 그들 사이의 위계 관계의 분석을 거쳐 문장의 구조가 이미 결정된 파스 트리를 구성한다. 여기서, 파스 트리는 DOM(Document Object Model) 트리(310) 및 스타일 트리(320)를 포함한다. 즉, 마크업 언어(111)는 태그, 그 태그의 속성 및 일반 텍스트로 이루어지며, 이 마크업 언어(111)는 분해된 후, 각각의 위계 관계에 따라 DOM 트리(310)를 구성한다. 스타일시트(113)는 마크업 언어(111)에 의해 표현되는 페이지(10)의 글자, 여백, 레이아웃 등을 지정하는 스타일을 가지며, 이 스타일시트(113)는 분해되어 복수의 스타일이 위계 관계에 따라 트리 구조로 정리된 스타일 트리(320)를 구성한다.
그런 다음, S303 단계에서 DOM 트리(310) 및 스타일 트리(320)가 결합되어 랜더러 트리(330)를 구성한다. 이어서, S305 단계에서 랜더러 트리(330)의 해석을 통해 스타일에 맞는 레이아웃을 설정하고, 각 속성의 값을 해당 레이아웃에 배치하여 페이지 데이터(340)를 생성한다. 이 페이지 데이터(340)는 랜더링되어 페이지(10)로 표시되기 전의 데이터이다.
다음으로, S307 단계에서 페이지 데이터(340)의 구조를 변경(serialization)하여 바이너리 형태로 저장한다. 이와 같이, 바이너리 형태로 저장된 페이지 데이터를 바이너리 페이지 데이터(350)라고 칭하기로 한다. 이와 같은 상태에서 사용자가 해당 페이지(10)를 실행시키는 요청이 있으면, S309 단계에서 바이너리 페이지 데이터(350)를 랜더링하여 출력한다. 필요에 따라, 데이터 구조를 변경시키는 S307 단계는 생략할 수 있다. 즉, 페이지 데이터(340)에서 직접 랜더링하여 페이지(10)로 출력할 수 있다.
리소스 파일(120)은 마크업 언어(111)의 속성으로 페이지(10)에 삽입된다. 이에 따라, 본 발명의 실시예에 따르면, 마크업 언어(111)의 속성을 분석하여 리소스 파일(120)을 미리 다운로드 받고, 저장한 후, 저장된 파일의 위치 값으로 그 속성을 변경한다. 이에 따라, 웹 어플리케이션 실행 시, 리소스 파일(120)을 다운로드 하는 시간을 절약할 수 있다. 이에 대해서 더 자세히 살펴보기로 한다.
도 4는 본 발명의 실시예에 따른 소스 파일을 설명하기 위한 도면이며, 도 5는 도 4의 소스 파일로부터 구성된 DOM 트리를 설명하기 위한 도면이고, 도 6은 도 4의 소스 파일로부터 실행된 웹 어플리케이션의 페이지를 설명하기 위한 도면이다.
도 4에 마크업 언어(111)로만 기술된 소스 파일(110)의 예를 개시하였다. 개시된 바와 같이, 웹 표준 언어인 HTML에 따른 태그 및 그 태그의 속성이 기술되었다.
도면 부호 41은 태그 <img>와 속성 "src"를 나타낸다. 여기서, 태그 <img>는 리소스 파일(120)인 이미지 파일을 표시하도록 선언한 것이며, 그 속성 "src"은 그 이미지 파일의 링크(주소)를 선언한 것이다. 이는 이미지 파일인 "resource01.jpg"를 그 속성인 주소 "http://img_server.com/resource/ resource01.jpg"에서 다운로드 하여 페이지(10)에 표시하도록 선언한 것이다.
도면 부호 43은 태그 <a>, 속성 "href" 및 텍스트 "페이지 링크"를 나타낸다. 여기서, 태그 <a>는 페이지의 링크를 나타내도록 선언한 것이며, 그 속성 "href"는 그 페이지의 링크(주소)를 선언한 것이다. 그리고 이 링크는 텍스트 "페이지 링크"에 연동된다. 이는 텍스트 "페이지 링크"를 선택하면, 링크된 페이지의 소스 파일(110)인 "page02.html"를 그 속성인 주소 "file://app-storage/page02.html"에서 불러온 후, 그 소스 파일(110)을 해석하여 새로운 페이지(10)를 표시하도록 선언한 것이다.
도면 부호 45의 태그 <h1>은 텍스트의 크기를 조절하기 위한 것이며, 이에 따라, 이 태그 <h1>은 단순히 텍스트 "리소스 파일 링크도 아니고 다른 페이지의 링크도 아닌 경우"를 페이지(10)에 표시하도록 선언한 것이다.
상술한 바와 같이 마크업 언어(111)에 기술된 태그 및 그 속성 및 단순 텍스트 등은 파싱되어 DOM 트리(310)로 변환된다. 도 5에 도 4의 소스 파일(110)의 마크업 언어(111)를 변환시킨 DOM 트리(310)를 도시하였다. 도시된 바와 같이, DOM 트리(310)는 의미 있는 구성 성분, 즉, 태그, 속성, 텍스트 등을 각각 하나의 노드(node)로 변환시킨다. 예컨대, 도 4의 도면 부호 41의 태그 <img>와 속성 "src"는 도면 부호 51과 같이 각각 하나의 노드로 변환된다. 또한, 도 4의 도면 부호 43의 태그 <a>와 속성 "href" 및 단순 텍스트인 "페이지 링크"는, 도면 부호 53과 같이 각각 하나의 노드로 변환된다. 그리고 도면 부호 45의 태그 <h1> 및 단순 텍스트 "리소스 링크도 아니고 다른 페이지의 링크도 아닌 경우"는 도면 부호 55와 같이 각각 하나의 노드로 변환된다. 한편, DOM 트리(310)에서는 태그가 변환된 노드를 요소(Element)라고 칭하기도 한다.
앞서 설명한 바와 같이, 변환된 DOM 트리(310)는 스타일시트(113)가 변환된 스타일 트리(320)와 결합되어 랜더러 트리(330)가 되며, 랜더러 트리(330)를 해석하여 페이지(10)를 구성하기 위한 페이지 데이터(340)를 형성한다. 또한, 페이지 데이터(340)는 이진화되어 바이너리 페이지 데이터(350)가 될 수 있다. 페이지 데이터(340) 또는 바이너리 페이지 데이터(350)는 랜더링되어 실제 페이지(10)로 표시될 수 있다. 도 6에 페이지(10)를 표시한 화면 예를 도시하였다. 이 페이지(10)와 DOM 트리(310)와의 상관 관계를 살펴본다.
도면 부호 51의 DOM 트리(310)는 도면 부호 61과 같은 이미지를 표시한다. 일반적으로 리소스 파일(120)은 웹 어플리케이션이 실행될 때, 그 속성인 주소 "http://img_server.com/resource/resource01.jpg"로부터 다운로드 되어 페이지(10)에 표시된다. 반면, 본 발명의 실시예에 따르면 리소스 파일(120)을 미리 다운로드 받아 저장한다. 그런 다음, 속성을 그 리소스 파일(120)이 저장된 경로로 변경하여, DOM 트리(310)를 구성한다. 이에 따라, 웹 어플리케이션 실행 시, 리소스 파일(120)을 다운로드 하는 과정을 생략하고 바로 리소스 파일(120)인 이미지를 화면에 표시할 수 있다. 따라서 리소스 파일(120)을 다운로드 하는 시간을 절약할 수 있으므로 사용자의 반응에 대한 응답 속도의 향상을 가져올 수 있다.
도면 부호 53의 DOM 트리(310)는 해석되어 도면 부호 63과 같은 링크로 표시된다. 이때, 사용자가 텍스트 "페이지 링크"를 선택하면, 그 속성에 따라 file://app-storage/page02.html"로 링크된 페이지의 소스 파일(110)인 "page02.html"을 실행시킨다.
도면 부호 55의 DOM 트리(310)는 해석되어 도면 부호 65와 같은 텍스트를 표시한다.
다음으로, 상술한 바와 같이 웹 어플리케이션을 실행시키는 장치에 대해서 설명하기로 한다. 도 7은 본 발명의 실시예에 따른 웹 어플리케이션 실행 장치를 설명하기 위한 도면이다.
도 7을 참조하면, 본 발명의 실시예에 따른 웹 어플리케이션 실행 장치는, 네트워크 연결부(710), 저장부(720), 표시부(730), 입력부(740) 및 제어부(750)를 포함한다.
네트워크 연결부(710)는 네트워크에 연결해 통신을 수행하기 위한 장치이다. 웹 어플리케이션 실행 장치는 네트워크를 통해 웹에 연결된다. 따라서 네트워크 연결부(710)는 네트워크에 연결해 본 발명의 실시예에 따른 리소스 파일(120)을 다운로드 하여 제어부(750)에 제공한다. 이러한 네트워크 연결부(710)는 무선 및 유선 연결 중 적어도 하나를 이용하여 네트워크에 연결될 수 있다.
저장부(720)는 데이터를 일시 또는 반영구적으로 저장하기 위한 장치로, 하드디스크(HDD, Hard Disk Drive)와 같은 스토리지 및 램(RAM, Read Access Memory)과 같은 메모리(Memory)를 통칭한다.
저장부(720)는 본 발명의 실시예에 따른 웹 어플리케이션 패키지를 저장한다. 이때, 웹 어플리케이션의 소스 파일(110) 및 리소스 파일(120)을 포함하는 콘텐츠 파일(100)은 일반 영역에 저장되며, 구성 정보 파일(210) 및 정책 정보 파일(220)을 포함하는 정보 파일(200)은 보안 영역에 저장될 수 있다. 여기서, 보안 영역은 접근에 제한을 두는 영역이며, 일반 영역은 보안 영역에 반해 접근에 제한을 두지 않는 영역이다.
특히, 본 발명의 실시예에 따른 소스 파일(110) 및 리소스 파일(120), 구성 정보 파일(210) 및 정책 정보 파일(220)은 데이터베이스(DB, Database) 구조로 저장될 수 있다. 이러한 경우, 데이터베이스의 구조는 도 2a에 도시된 바와 같이, 하나의 웹 어플리케이션 패키지 별로 접근할 수 있도록 구현됨이 바람직하다. 즉, 웹 어플리케이션 패키지는 콘텐츠 파일(100), 정보 파일(200)로 구성되며, 콘텐츠 파일(100)은 소스 파일(110) 및 리소스 파일(120)을 포함하고, 정보 파일(200)은 구성 정보 파일(210) 및 정책 정보 파일(220)을 포함한다. 이에 따라, 어느 하나의 리소스 파일(120)에 접근하기 위해서는 웹 어플리케이션 패키지, 콘텐츠 파일(100) 및 리소스 파일(120) 순으로 접근할 수 있도록 데이터베이스 구조를 구현함이 바람직하다. 저장부(720)는 저장되는 영역을 기능적으로 구분할 수 있다. 즉, 저장부(720)는 레지스트리(registry) 및 큐(Queue) 등으로 기능 분류될 수 있다.
레지스트리에는 웹 어플리케이션 패키지에 대한 정보 및 그 웹 어플리케이션이 실행 정보가 저장되며, 이에 따라, 웹 어플리케이션이 레지스트리에 등록된다. 앞서 설명한 바와 같이, 웹 어플리케이션 패키지는 소스 파일(110), 리소스 파일(120), 구성 정보 파일(210) 및 접근 정보 파일(220)로 이루어지며, 레지스트리에는 이 소스 파일(110), 리소스 파일(120), 구성 정보 파일(210) 및 접근 정보 파일(220) 등이 실제 저장된 위치 또는 접근 경로가 기술될 수 있다. 그리고 레지스트리에는 본 발명의 실시예에 따른 웹 어플리케이션의 실행 정보가 등록된다. 본 발명의 실시예에 따른 웹 어플리케이션은 설치될 때, 그 웹 어플리케이션의 실행 정보가 레지스트리에 등록된다. 실행 정보는 해당 웹 어플리케이션을 실행시키기 위한 정보이며, 프로토콜 스킴(protocol scheme) 및 그 프로토콜 스킴에 이어서 기술되는 주소로 이루어진다. 여기서, 주소는 도메인 명칭(domain name) 및 웹 어플리케이션 패키지 명칭 및 시작 페이지를 포함한다. 도메인 명칭은 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 콘텐츠 제공자의 도메인 명칭이며, 웹 어플리케이션 패키지 명칭은 해당 웹 어플리케이션을 이루는 패키지의 명칭이고, 시작 페이지는 해당 웹 어플리케이션을 실행할 때 가장 먼저 실행시키는 페이지(10)를 기술하는 소스 파일(110)의 명칭이다. 이때, 시작 페이지는 생략될 수 있으며, 시작 페이지가 생략되는 경우, 기 설정된 페이지가 디폴트 값(default value)으로 시작 페이지를 대신한다. 또한, 레지스트리에는 다운로드 리소스 목록이 저장된다. 이 다운로드 리소스 목록은 각 웹 어플리케이션 별로 다운로드 받기 위한 리소스 파일(120)의 목록이며, 그 리소스 파일을 다운로드 하여 저장한 위치(주소) 및 그 리소스 파일의 다운로드 여부 등이 추가로 기술된다. 다운로드 리소스 목록은 웹 어플리케이션의 모든 페이지로부터 추출한다. 여기서, 주소는 소스 파일(110)에서 리소스 파일(110)을 나타내는 태그의 속성을 추출한 것이다.
큐(Queue)는 본 발명의 실시예에 따른 다운로드 리소스 목록을 작성할 때, 각 페이지를 순차로 검색하기 위해 사용된다. 이러한 큐는 입력되는 순서로 출력하는 선입선출(FIFO, First In First Out) 방식에 따라 데이터를 입력받고 출력한다.
표시부(730)는 제어부(750)로부터 출력되는 신호를 화면으로 표시하는 역할을 수행한다. 특히, 표시부(730)는 본 발명의 실시예에 따른 페이지(10)를 화면으로 표시한다. 표시부(730)는 터치스크린(touch screen)이 될 수 있다. 이와 같이, 터치스크린으로 표시부(730)가 형성된 경우, 표시부(730)는 입력부(740)의 기능 중 일부 또는 전부를 수행할 수 있다.
입력부(740)는 숫자 또는 문자 정보를 입력 받고 다양한 기능을 설정하기 위한 다수의 입력키 및 기능키를 포함할 수 있다. 그리고 입력부(740)는 사용자의 키 입력을 감지하여, 감지된 키 입력에 따른 입력 신호를 제어부(750)로 전달한다.
제어부(750)는 본 발명의 실시예에 따른 웹 어플리케이션을 설치할 시, 레지스트리에 해당 웹 어플리케이션의 실행 정보를 등록한다. 실행 정보는 해당 웹 어플리케이션을 실행시키기 위한 정보이며, 프로토콜 스킴 및 그 프로토콜 스킴에 이어서 기술되는 주소로 이루어진다. 여기서, 주소는 도메인 명칭, 웹 어플리케이션 패키지 명칭 및 시작 페이지를 포함한다. 시작 페이지가 생략되는 경우, 기 설정된 페이지가 디폴트 값(default value)으로 시작 페이지로 실행된다. 본 발명의 실시예에 따른 프로토콜 스킴은 "httpa://"의 형식으로 정의한다. 제어부(750)는 이 프로토콜 스킴을 해석할 때, 이 프로토콜 스킴 이후에 기술되는 주소를 참조하여 웹 어플리케이션을 실행시킨다. 브라우저에서는 "file://", "http://", "https://"와 같은 프로토콜 스킴을 통해 자원에 접근할 수 있다. 프로토콜 스킴이 "file://"인 경우, 프로토콜 스킴에 이어서 기술되는 경로에 따라 파일 시스템에 접근하여 페이지를 실행시키며, 프로토콜 스킴이 "http://"와 "https://"인 경우, 프로토콜 스킴에 이어서 기술되는 주소를 통해 해당 페이지(10)를 다운로드 하여 실행시킬 수 있다. 이와 마찬가지로, 본 발명의 실시예에 따른 프로토콜 스킴 "httpa://"를 사용하는 경우, 제어부(750)는 프로토콜 스킴에 이어서 기술되는 주소 또는 경로를 통해 저장부(720)에서 해당 페이지(10)를 불러와서 실행시킨다.
예를 들면, 웹 어플리케이션 패키지 명칭이 "application1.swa"라고 하고, 콘텐츠 제공자의 도메인 명칭이 "www.abc.com"이라 할 때, 그 주소는 "www.abc.com/application1.swa"로 표현될 수 있다. 이 경우, 해당 웹 어플리케이션의 실행 정보는 "httpa://www.abc.com/application1.swa"가 된다. 이에 따라, 제어부(750)는 저장부(720)에서 웹 어플리케이션 패키지 명칭이 "application1.swa"인 웹 어플리케이션을 검색하여 이를 실행시킨다. 이때, 제어부(750)는 시작 페이지를 미리 설정된 디폴트 값(default value)으로 하여 웹 어플리케이션을 실행시킨다. 또한, 웹 어플리케이션 시작 페이지의 소스 파일의 명칭이 "page01.html"인 경우, 그 주소는 "www.abc.com/application1.swa/page01.html"로 표현될 수 있다. 이러한 경우, 해당 웹 어플리케이션의 실행 정보는 "httpa://www.abc.com/application1.swa/page01.html"가 된다. 이에 따라, 제어부(750)는 저장부(720)에서 웹 어플리케이션 패키지 명칭이 application1.swa인 웹 어플리케이션을 검색하여 이를 실행시킨다. 특히, 제어부(750)는 시작 페이지를 "page01.html"로 하여 웹 어플리케이션을 실행시킨다. 한편, 확장자 "swa"는 웹 어플리케이션 패키지임을 나타내는 확장자로서, 임의로 지정된 이름이다.
한편, 본 발명의 실시예에 따른 웹 어플리케이션 패키지가 데이터베이스 구조로 저장된 경우, 제어부(750)는 상술한 프로토콜 스킴 대신 쿼리(Query)를 이용하여 페이지(10)를 기술하는 소스 파일(110) 또는 리소스 파일(120)을 데이터베이스로부터 불러와서 실행시키거나, 다운로드 받은 리소스 파일(120)을 데이터베이스에 저장시킬 수 있다. 예컨대, 쿼리는 명령어(저장 또는 불러오기) 및 소스 파일(110) 또는 리소스 파일(120)의 저장 위치를 기술하는 주소의 쌍으로 이루어질 수 있다. 제어부(750)는 본 발명의 실시예에 따라 웹 어플리케이션이 레지스트리에 등록되면, 다운로드 리소스 목록을 작성한다. 그리고 제어부(750)는 대기 모드에서 다운로드 리소스 목록에 따라, 해당 웹 어플리케이션의 리소스 파일(120)을 네트워크 연결부(710)를 통해 미리 다운로드 받는다. 여기서, 대기 모드는 네트워크 연결부(710)의 네트워크와의 연결을 통한 데이터의 업로드 또는 다운로드 트래픽(traffic)이 기 설정된 크기 미만인 경우를 의미하며, 네트워크를 사용하고 있지 않은 경우를 의미한다. 즉, 어느 하나 웹 어플리케이션이 실행 중인 경우에도, 네트워크의 트래픽이 기 설정된 크기 미만인 경우에는 다른 웹 어플리케이션은 리소스 파일(120)을 다운로드 받을 수 있다.
그런 다음, 제어부(750)는 미리 다운로드 받은 리소스 파일(120)을 이용하여 웹 어플리케이션을 실행한다. 이에 따라, 실제 웹 어플리케이션 실행 시, 리소스 파일(120)을 다운로드 받는 시간을 절약할 수 있으므로, 웹 어플리케이션의 응답 속도를 향상시킬 수 있다.
다음으로, 상술한 웹 어플리케이션 실행 장치를 이용한 웹 어플리케이션 실행 방법에 대해서 살펴보기로 한다. 도 8은 본 발명의 실시예에 따른 웹 어플리케이션 실행 방법을 개략적으로 설명하기 위한 흐름도이다.
도 8을 참조하면, 제어부(750)는 S801 단계에서 웹 어플리케이션의 다운로드 리소스 목록을 작성한다. 이 다운로드 리소스 목록은 웹 어플리케이션의 소스 파일(110)에 링크로 포함된 리소스 파일(120)들의 목록이다.
그런 다음, 제어부(750)는 S803 단계에서 대기 모드인 경우, 다운로드 리소스 목록의 리소스 파일(120)을 순차로 다운로드 한다. 여기서, 대기 모드는 네트워크 연결부(710)의 네트워크와의 연결을 통한 데이터의 업로드 또는 다운로드 트래픽이 기 설정된 크기 미만인 경우를 의미하며, 사용자가 네트워크를 사용하고 있지 않은 경우를 의미한다.
상술한 바와 같이, 대기 모드에서 리소스 파일(120)을 다운로드 받은 후, 사용자의 웹 어플리케이션 실행 요청이 있으면, 제어부(750)는 S805 단계에서 앞서 미리 다운로드 받은 리소스 파일(120)을 이용하여 웹 어플리케이션을 실행시킨다. 이와 같이, 미리 다운로드 받은 리소스 파일(120)을 이용하여, 웹 어플리케이션을 실행시킴으로써, 리소스 파일(120)을 다운로드 받는 시간을 절약할 수 있다. 이에 따라, 웹 어플리케이션 실행의 응답 속도를 향상시킬 수 있다.
상술한 바와 같이, 웹 어플리케이션의 리소스 파일(120)을 미리 다운로드 받기 전, 각 웹 어플리케이션 별로 다운로드 받기 위한 리소스 파일(120)의 목록인 다운로드 리소스 목록을 작성한다. 이러한 다운로드 리소스 목록 작성 방법에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 다운로드 리소스 목록을 작성하는 방법을 설명하기 위한 흐름도이다. 여기서, 각 웹 어플리케이션에 대해 다음과 같이 기술되는 과정을 통해 다운로드 리소스 목록을 작성할 수 있다.
도 9를 참조하면, 제어부(750)는 S901 단계에서 웹 어플리케이션 실행시 시작 페이지를 큐(Queue)에 입력한다. 이때, 제어부(750)는 레지스트리의 실행 정보를 참조하여, 웹 어플리케이션의 시작 페이지 및 그 시작 페이지가 저장된 위치를 알 수 있다. 또한, 큐는 선입선출(FIFO) 방식에 의해 먼저 입력된 페이지(10)를 제일 처음 출력한다.
제어부(750)는 S903 단계에서 큐에서 선입선출 방식에 따라 순차로 페이지(10)를 출력하고, S921 단계에서 큐에 페이지(10)가 존재하지 않음을 확인할 때까지 S903 내지 S921 단계를 반복한다. 또한, 제어부(750)는 S905 내지 S919 단계를 통해 큐로부터 출력된 페이지(10)에 대해 다운로드 리소스 목록을 작성한다. 이 다운로드 리소스 목록 작성 과정은 제어부(750)가 S917 단계에서 다운로드 리소스 목록의 용량이 기 설정된 용량을 초과할 것으로 판단하는 경우 다른 페이지의 존재 여부에 상관 없이 종료 될 수 있다. 다운로드 리소스 목록의 용량은 저장부(720)의 용량에 따라 달리 설정한다. 또한, 이 S905 내지 S919 단계는 제어부(750)가 S919 단계에서 그 페이지(10)의 모든 태그를 읽었음을 확인할 때까지 반복된다.
하나의 페이지(10)에 대한 다운로드 리소스 목록 작성 방법을 살펴보면 다음과 같다. 먼저, 제어부(750)는 S905 단계에서 큐로부터 출력된 페이지(10) 내에서 순차로 한 줄씩 태그를 읽어 그 태그의 속성을 분석한 후, S907 단계에서 제어부(750)는 태그의 속성이 리소스 파일(120)의 링크인지 여부를 판단한다. 이때, 태그의 속성이 리소스 파일(120)인 경우, 제어부(750)는 S909 단계에서 해당 링크를 나타내는 주소(URL)를 다운로드 리소스 목록에 등록(추가)한다. 예컨대, 도 4를 참조하면, 도면 부호 41과 같은 태그가 존재하면, 해당 태그의 속성(주소)을 다운로드 리소스 목록에 등록한다.
해당 태그의 속성이 리소스 파일(120)의 링크가 아닌 경우, 제어부(750)는 S911 단계에서 태그의 속성이 웹 어플리케이션을 구성하는 다른 페이지(10)의 링크인지 여부를 판단한다. 다른 페이지(10)의 링크이면, 이 페이지(10)는 저장부(720)에 저장되어 있는 상태이다. 따라서 제어부(750)는 S913 단계에서 해당 페이지(10)를 큐에 입력한다. 예컨대, 도 4의 도면 부호 43과 같은 태그가 존재하면, 해당 태그의 속성이 나타내는 페이지(10)를 큐에 입력한다.
한편, S907 및 S911 단계의 판단 결과, 해당 태그의 속성이 리소스 파일(120)의 링크도 아니며, 다른 페이지(10)의 링크도 아닌 경우, 제어부(750)는 S915 단계에서 해당 태그에 대해 아무런 처리도 수행하지 않는다. 이 경우는 도 4의 도면 부호 45와 같은 태그를 예시할 수 있다.
그런 다음, 제어부(750)는 S917 단계에서 다운로드 리소스 목록이 기 설정된 용량을 초과하였는지 판단한다. S917 단계의 판단 결과 기 설정된 용량을 초과하면 분석할 태그 또는 다른 페이지(10)가 남아 있는 경우에도, 제어부(750)는 프로세스를 종료한다. 반면, S917 단계의 판단 결과 기 설정된 용량을 초과하지 않는 경우, 제어부(750)는 S919 단계로 진행한다. S919 단계에서 제어부(750)는 해당 페이지(10)의 모든 태그를 분석하였는지 판단한다. 이러한 S919 단계의 판단 결과 페이지(10)의 모든 태그를 분석한 경우, 제어부(750)는 S921 단계로 진행한다. 반면, S919 단계의 판단 결과 분석할 태그가 아직 남아 있는 경우, 제어부(750)는 S905 내지 S919 단계를 반복한다.
S921 단계에서 제어부(750)는 큐에 페이지(10)가 존재하는지 확인하여, 큐에 페이지(10)가 존재하면, S903 내지 S921 단계를 반복하며, 큐에 페이지(10)가 없는 경우, 프로세스를 종료한다.
그러면, 상술한 바와 같이 작성된 다운로드 리소스 목록을 이용하여 해당 리소스 파일(120)을 다운로드 받는 방법에 대해서 설명하기로 한다. 리소스 파일(120)의 다운로드는 해당 웹 어플리케이션의 실행 전에 수행된다. 도 10은 본 발명의 실시예에 따른 웹 어플리케이션 실행을 위한 리소스 파일을 미리 다운로드 받는 방법을 설명하기 위한 흐름도이다.
도 10을 참조하면, 제어부(750)는 S1001 단계에서 현재 대기 모드에 진입하였다고 가정한다. 대기 모드인 경우, 제어부(750)는 S1003 단계에서 다운로드 리소스 목록을 불러와서, S1005 단계에서 다운로드 리소스 목록의 각 리소스 파일(120)을 순차로 검사한다. 이때, 제어부(750)는 S1007 단계에서 해당 리소스 파일(120)이 이미 다운로드 되어 저장되어 있는지 확인한다. 확인 결과, 다운로드 되지 않았으면, 제어부(750)는 S1009 단계에서 해당 리소스 파일(120)이 저장된 주소에 접속하여 리소스 파일(120)을 다운로드 하고, S1011 단계에서 다운로드한 리소스 파일(120)을 저장부(720)에 저장한다. 반면, 확인 결과 이미 다운로드 되었으면, 제어부(750)는 S1013 단계로 진행한다.
S1013 단계에서 제어부(750)는 저장부(720)에 리소스 파일(120)을 저장할 용도로 할당된 저장 용량의 여분이 있는지 판단한다. S1013 단계의 판단 결과 리소스 파일(120)을 더 저장할 수 없으면, 제어부(750)는 프로세스를 종료한다. 반면, S1013 단계의 판단 결과 리소스 파일(120)을 더 저장할 수 있으면, 제어부(750)는 S1015 단계로 진행한다.
제어부(750)는 S1015 단계에서 대기 모드가 종료되었는지 판단한다. 대기 모드가 종료된 경우, 제어부(750)는 리소스 파일(120)의 다운로드 프로세스를 종료한다. 아직 대기 모드인 경우, 제어부(750)는 S1017 단계에서 다운로드 리소스 목록의 리소스 파일(120)을 모두 다운로드 하였는지 판단한다. 이 판단 결과, 리소스 파일(120)을 모두 다운로드 한 경우, 제어부(750)는 프로세스를 종료한다. 반면, 다운로드 하지 않은 리소스 파일(120)이 남아 있는 경우, 제어부(750)는 S1005 단계로 진행한 후, 상술한 S1005 내지 1015 단계를 반복한다.
상술한 바와 같이, 다운로드된 리소스 파일(120)은 미리 저장되므로, 웹 어플리케이션 실행 중에 상술한 리소스 파일(120)을 다운로드 할 필요 없이 해당 리소스 파일(120)을 그대로 사용할 수 있다. 이에 따라, 리소스 파일(120) 다운로드 시간이 절약되므로, 웹 어플리케이션 실행시 그 응답 속도가 향상된다. 그러면, 다운로드된 리소스 파일(120)을 이용한 웹 어플리케이션 실행 방법에 대해서 설명하기로 한다.
본 발명의 실시예에 따르면, 랜더링되어 화면에 표시되기 전, 페이지 데이터(340) 또는 바이너리 페이지 데이터(350)를 생성한다. 도 11은 본 발명의 실시예에 따른 웹 어플리케이션의 각 페이지 데이터(340)를 생성하는 방법을 설명하기 위한 흐름도이다.
도 11을 참조하면, 제어부(750)는 S1101 단계에서, 웹 어플리케이션의 시작 페이지를 기술하는 소스 파일(110)을 불러온다. 그런 다음, 제어부(750)는 S1103 단계에서 다운로드 리소스 목록을 참조하여, 미리 다운로드 받아 저장한 리소스 파일(120)이 존재하는 경우, 리소스 파일(120)을 나타내는 태그의 속성을 다운로드 받아 저장한 리소스 파일(120)이 저장된 위치로 변경한다. 예컨대, 도 4의 도면 부호 41에서 설명한 바와 같이, 주소 "http://img_server.com/resource/resource01.jpg"로부터 리소스 파일(120)인 이미지 파일(resource01.jpg)을 다운로드 받아 미리 저장한 경우, 그 저장 경로가 "file://down_resource_storage/img_resource/resource01.jpg"라고 가정하면, 해당 태그의 속성을 "file://down_resource_storage/img_resource/ resource01.jpg"로 변경한다.
이어서, 제어부(750)는 S1105 단계에서 선언적 기술 언어의 해석 방법에 따라, 마크업 언어(111) 및 스타일시트(113)의 구성 성분을 의미 있는 토큰으로 분해(parsing)하여 그들 사이의 위계 관계의 분석을 거쳐 문장의 구조가 이미 결정된 파스 트리(parse tree)를 구성한다. 즉, 제어부(750)는 마크업 언어(111)를 분해하여 DOM 트리(310)를 구성하고, 스타일시트(113)를 분해하여 스타일 트리(320)를 구성한다. 마크업 언어(111)의 구성 성분은 태그, 속성, 텍스트 등이며, 스타일시트(113)의 구성 성분은 스타일이다.
그런 다음, 제어부(750)는 S1107 단계에서 DOM 트리(310) 및 스타일 트리(320)를 결합하여 랜더러 트리(330)를 구성한다. 이어서, 제어부(750)는 S1109 단계에서 랜더러 트리(330)의 해석을 통해 스타일에 맞는 레이아웃을 설정하고 각 속성의 값을 해당 레이아웃에 배치하여 페이지 데이터(340)를 생성한다. 다음으로, 제어부(750)는 S1111 단계에서 페이지 데이터(340)의 데이터 구조를 변경하여 바이너리 페이지 데이터(350)를 생성한다.
이어서, 제어부(750)는 S1113 단계에서 웹 어플리케이션의 모든 페이지(10)에 대해 바이너리 페이지 데이터(350)를 생성하였는지 판단한다. S1113 단계의 판단 결과, 모든 페이지(10)의 바이너리 페이지 데이터(350)를 생성하였으면, 제어부(750)는 프로세스를 종료한다. 반면, S1113 단계의 판단 결과, 바이너리 페이지 데이터(350)를 생성하지 못한 페이지(10)가 존재하면, 제어부(750)는 S1115 단계에서 바이너리 페이지 데이터(350)를 생성하지 못한 페이지(10)의 소스 파일(110)을 불러와서, 상술한 S1103 내지 S1113 단계를 반복한다. 즉, 이러한 반복은 S1113 단계에서 모든 페이지(10)를 기술하는 소스 파일(110)을 이용하여 바이너리 페이지 데이터(350)를 생성할 때까지 계속된다.
다음으로, 본 발명의 실시예에 따른 웹 어플리케이션 실행 방법을 살펴본다. 도 12는 본 발명의 실시예에 따른 웹 어플리케이션 실행 방법을 설명하기 위한 흐름도이다.
도 12를 참조하면, 제어부(750)는 S1201 단계에서 입력부(740)를 통해 웹 어플리케이션의 실행 요청을 수신한다. 이에 따라, 제어부(750)는 S1203 단계에서 해당 웹 어플리케이션이 사용할 윈도우를 생성한다. 이어서, 제어부(750)는 S1205 단계에서 해당 웹 어플리케이션의 시작 페이지의 바이너리 페이지 데이터(350)를 불러온다.
S1207 단계에서 제어부(750)는 바이너리 페이지 데이터(350)를 랜더링하여 페이지를 생성하고, 생성된 페이지를 앞서(S1203 단계) 생성한 윈도우에 표시한다.
이러한 랜더링 중, 사용자는 해당 페이지에 표시된 다른 페이지의 링크 등을 선택할 수 있다. 이러한 선택에 따라 다른 페이지를 표시하는 이벤트가 발생할 수 있다. 따라서, 제어부(750)는 S1209 단계에서 다른 페이지를 표시하도록 하는 이벤트가 발생되는지 판단한다. S1209 단계에서 제어부(750)가 다른 페이지를 표시하도록 하는 이벤트 발생을 감지하면, S1211 단계로 진행하여 해당되는 다른 페이지를 불러온 후, 상술한 S1207 및 S1209 단계를 반복한다. 반면, S1209 단계에서 이벤트를 감지하지 못하면, 제어부(750)는 S1213 단계로 진행한다.
제어부(750)는 S1213 단계에서 웹 어플리케이션을 종료하는 이벤트가 있는지 판단한다. 이때, 웹 어플리케이션을 종료하는 이벤트가 발생하면, 제어부(750)는 프로세스를 종료한다. 그렇지 못한 경우, 제어부(750)는 S1207 단계로 진행하여 상술한 S1209 내지 S1213 단계를 반복한다.
상술한 바와 같이, 본 발명의 실시예에 따르면 소스 파일을 분석하여, 태그의 속성이 지시하는 주소에서 리소스 파일을 미리 다운로드 받아, 저장한 후, 그 저장된 경로로 속성을 변경한다. 그런 다음, 이를 이용하여 각 페이지에 대해 바이너리 페이지 데이터를 미리 생성한다. 사용자의 웹 어플리케이션의 실행 요청이 있는 경우, 미리 생성한 바이너리 페이지 데이터를 랜더링하여 웹 어플리케이션을 실행한다. 이러한 본 발명의 실시예에 따르면, 리소스 파일을 미리 다운로드 함으로써, 웹 어플리케이션 실행 시, 리소스 파일을 다운로드 하는 시간을 절약할 수 있다. 또한, 웹 어플리케이션 실행시, 바이너리 페이지 데이터를 생성하여 미리 저장함으로써, 페이지 데이터를 생성하는데 걸리는 시간을 절약할 수 있다. 이에 따라, 웹 어플리케이션 실행 시, 그 응답 속도를 향상시킬 수 있다.
본 발명에 따른 웹 어플리케이션 실행 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.
본 발명은 이동통신 단말기, PMP, PDA, 노트북, MP3 플레이어와 같은 다양한 종류의 사용자 장치에 적용되는 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체에 관한 것으로, 리소스 파일을 웹 어플리케이션의 실행 전에 미리 다운로드하여, 저장함으로써, 그 웹 어플리케이션 실행 중에 상술한 리소스 파일을 다운로드 할 필요 없이 해당 리소스 파일을 그대로 사용하면 되므로, 웹 어플리케이션 실행시 그 응답 속도가 향상된다. 이는 사용자에게 응답 속도가 향상된 사용자 경험을 제공할 수 있어, 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
10: 페이지
100: 콘텐츠 파일 110: 소스 파일
111: 마크업 언어 113: 스타일시트
115: 스크립트 언어 120: 리소스 파일
200: 정보 파일 210: 구성 정보 파일
220: 정책 정보 파일
310: DOM(Document Object Model) 트리 320: 스타일 트리
330: 랜더러 트리 340: 페이지 데이터
350: 바이너리 페이지 데이터
710: 네트워크 연결부 720: 저장부
730: 표시부 740: 입력부
750: 제어부

Claims (28)

  1. 웹 어플리케이션 실행 장치에 있어서,
    네트워크에 연결해 통신을 수행하기 위한 네트워크 연결부;
    상기 웹 어플리케이션을 패키지 단위인 웹 어플리케이션 패키지로 저장하는 저장부; 및
    상기 웹 어플리케이션의 실행 전, 상기 웹 어플리케이션의 소스 파일을 분석하여, 웹 어플리케이션 실행시 필요한 리소스 파일 중 미리 다운로드 받을 수 있는 리소스 파일의 목록인 다운로드 리소스 목록을 작성하여 상기 저장부에 저장하고, 대기 모드에서 상기 네트워크 연결부를 통해 상기 다운로드 리소스 목록의 리소스 파일을 다운로드 하여 상기 저장부에 저장하며, 사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션을 실행하는 제어부;를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  2. 제1항에 있어서, 상기 다운로드 리소스 목록은
    상기 소스 파일에서 태그 및 상기 태그의 속성이 리소스 파일의 링크를 지시하는 주소인 경우, 상기 주소를 등록한 것임을 특징으로 하는 웹 어플리케이션 실행 장치.
  3. 제1항에 있어서, 상기 대기 모드는
    상기 네트워크 연결부의 네트워크 트래픽이 기 설정된 용량 미만인 경우임을 특징으로 하는 웹 어플리케이션 실행 장치.
  4. 제1항에 있어서, 상기 제어부는
    상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션의 각 페이지에 대해 바이너리 페이지 데이터를 미리 생성한 후, 사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 바이너리 페이지 데이터를 랜더링하여 웹 어플리케이션을 실행하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  5. 제1항에 있어서, 상기 저장부는
    상기 웹 어플리케이션 패키지에 대한 정보, 상기 웹 어플리케이션을 다른 웹 어플리케이션과 구분하여 실행시키기 위한 실행 정보 및 상기 다운로드 리소스 목록을 저장하는 레지스트리를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  6. 제5항에 있어서, 상기 실행 정보는
    프로토콜 스킴(protocol scheme) 및 상기 프로토콜 스킴에 이어서 기술되는 주소로 이루어지는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  7. 제6항에 있어서, 상기 프로토콜 스킴은
    "httpa://"의 형식을 가지는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  8. 제6항에 있어서, 상기 주소는
    상기 웹 어플리케이션을 제작한 제작사 또는 상기 웹 어플리케이션을 제공하는 콘텐츠 제공자의 도메인 명칭,
    상기 웹 어플리케이션을 이루는 패키지의 명칭인 웹 어플리케이션 패키지 명칭 및
    상기 웹 어플리케이션을 실행할 때 가장 먼저 실행시키는 소스 파일의 명칭인 시작 페이지를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  9. 제6항에 있어서, 상기 제어부는
    상기 웹 어플리케이션을 설치할 시, 상기 레지스트리에 상기 실행 정보를 등록하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  10. 제1항에 있어서, 상기 저장부는
    상기 다운로드 리소스 목록을 만들 시 상기 웹 어플리케이션의 각 페이지가 선입선출 방식에 따라 순차로 입력되고 출력되는 큐를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  11. 제10항에 있어서, 상기 제어부는
    상기 다운로드 리소스 목록을 작성할 시, 상기 큐에 상기 웹 어플리케이션을 구성하는 적어도 하나의 페이지를 순차로 입력하여, 상기 큐가 먼저 입력된 페이지를 먼저 출력함에 따라, 출력되는 페이지 순으로 상기 다운로드 리소스 목록을 작성하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  12. 제1항에 있어서,
    상기 웹 어플리케이션 패키지는 상기 웹 어플리케이션의 콘텐츠를 기술하는 콘텐츠 파일과 상기 웹 어플리케이션 및 상기 웹 어플리케이션의 패키지에 대한 정보를 기술하는 정보 파일을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  13. 제12항에 있어서, 상기 콘텐츠 파일은,
    상기 웹 어플리케이션의 각 페이지를 표현하는 소스 파일 및 상기 소스 파일에 링크로 연결되는 리소스 파일을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  14. 제13항에 있어서, 상기 소스 파일은
    태그 및 상기 태그의 속성이 기술되는 마크업 언어, 상기 태그 및 상기 태그의 속성이 페이지에 표시되는 스타일을 기술하는 스타일시트 및 상기 웹 어플리케이션을 동적으로 제어하기 위한 스크립트 언어를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  15. 제13항에 있어서, 상기 리소스 파일은
    상기 리소스 파일의 형식에 맞는 형태로 링크를 통해 상기 페이지에 삽입되는 개별 파일인 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  16. 제13항에 있어서, 상기 리소스 파일은
    장면 기술, 비디오, 오디오, 이미지, 폰트, 텍스트, 메타데이터, 및 스크립트 파일 중 적어도 하나인 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  17. 제12항에 있어서, 상기 정보 파일은
    상기 웹 어플리케이션의 패키지에 포함되는 파일의 목록, 파일 별 공개 여부와 공개 범위 및 상기 웹 어플리케이션의 실행 환경을 설정하기 위한 설정 값을 포함하는 구성 정보가 기술되는 구성 정보 파일과,
    상기 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 접근 권한의 범위를 지정하기 위한 정책 정보를 기술하는 정책 정보 파일을 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  18. 제1항에 있어서, 상기 웹 어플리케이션 패키지는
    상기 저장부에 데이터베이스 구조로 저장되는 것을 특징으로 하는 웹 어플리케이션 실행 장치.
  19. 웹 어플리케이션 실행 방법에 있어서,
    상기 웹 어플리케이션의 실행 전, 상기 웹 어플리케이션의 소스 파일을 분석하여, 상기 소스 파일에 포함된 리소스 파일 중 미리 다운로드 받을 수 있는 리소스 파일의 목록인 다운로드 리소스 목록을 작성하는 단계;
    대기 모드이면, 상기 다운로드 리소스 목록의 리소스 파일을 다운로드 하는 단계; 및
    사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션을 실행하는 단계;를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  20. 제19항에 있어서, 상기 작성하는 단계는
    상기 웹 어플리케이션의 시작 페이지의 태그 및 상기 태그의 속성을 분석하는 단계; 및
    상기 분석 결과, 상기 태그의 속성이 리소스 파일의 링크를 나타내는 주소이면, 상기 주소를 상기 다운로드 리소스 목록에 등록하는 단계;를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  21. 제20항에 있어서, 상기 분석하는 단계 후,
    상기 분석 결과, 상기 태그의 속성이 상기 웹 어플리케이션을 구성하는 다른 페이지의 링크인 경우, 상기 다른 페이지에 대해 상기 분석하는 단계 및 상기 등록하는 단계를 수행하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  22. 제19항에 있어서, 상기 작성하는 단계는
    다운로드 리소스 목록의 용량이 기 설정된 용량을 초과할 것으로 판단되는 경우 또는 상기 웹 어플리케이션을 구성하는 모든 페이지의 모든 태그를 분석한 경우 종료하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  23. 제19항에 있어서, 상기 다운로드 하는 단계는
    상기 대기 모드인지 판단하는 단계;
    상기 판단 결과 대기 모드이면, 상기 다운로드 리소스 목록의 리소스 파일이 이미 다운로드 되었는지 확인하는 단계; 및
    상기 확인 결과, 다운로드 되지 않은 리소스 파일을 다운로드 하는 단계;를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  24. 제23항에 있어서, 상기 대기 모드는
    네트워크 트래픽이 기 설정된 용량 미만인 경우임을 특징으로 하는 웹 어플리케이션 실행 방법.
  25. 제19항에 있어서, 상기 다운로드 하는 단계는
    상기 다운로드 리소스 목록의 모든 리소스 파일을 다운로드 하였거나, 상기 대기 모드가 종료될 때까지 수행하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  26. 제19항에 있어서, 상기 실행하는 단계는
    상기 다운로드 받은 리소스 파일을 이용하여 상기 웹 어플리케이션의 각 페이지에 대해 바이너리 페이지 데이터를 생성하는 단계; 및
    사용자의 웹 어플리케이션 실행 요청이 있는 경우, 상기 바이너리 페이지 데이터를 랜더링하여 웹 어플리케이션을 실행하는 단계;를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  27. 제26항에 있어서, 상기 바이너리 페이지 데이터를 생성하는 단계는,
    상기 다운로드 리소스 목록을 참조하여 페이지의 속성 중 리소스 파일의 속성을 상기 미리 다운로드 받은 리소스 파일이 저장된 경로로 변경하는 단계;
    상기 웹 어플리케이션의 각 페이지의 소스 파일을 분석하여, DOM 트리 및 스타일 트리를 생성하는 단계;
    상기 DOM 트리 및 스타일 트리를 결합하여 랜더러 트리를 생성하는 단계;
    상기 랜더러 트리를 해석하여 페이지 데이터를 생성하는 단계; 및
    상기 페이지 데이터를 바이너리 형태로 변환하여 바이너리 페이지 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 실행 방법.
  28. 제19항 내지 제27항에 기재된 웹 어플리케이션 실행 방법을 실행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
KR1020100053649A 2010-06-08 2010-06-08 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체 KR101504088B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100053649A KR101504088B1 (ko) 2010-06-08 2010-06-08 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100053649A KR101504088B1 (ko) 2010-06-08 2010-06-08 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20110133950A true KR20110133950A (ko) 2011-12-14
KR101504088B1 KR101504088B1 (ko) 2015-03-19

Family

ID=45501430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100053649A KR101504088B1 (ko) 2010-06-08 2010-06-08 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR101504088B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328047B1 (ko) * 2012-01-02 2013-11-13 네이버 주식회사 복수의 이미지들을 포함하는 웹페이지의 이미지 로딩 속도 개선 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807570B1 (en) * 1997-01-21 2004-10-19 International Business Machines Corporation Pre-loading of web pages corresponding to designated links in HTML
AU2001233111A1 (en) 2000-02-04 2001-08-14 America Online Incorporated Optimized delivery of web application code
KR101079461B1 (ko) * 2008-09-04 2011-11-03 에스케이플래닛 주식회사 리소스 설치 및 관리 시스템 및 리소스 설치 및 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328047B1 (ko) * 2012-01-02 2013-11-13 네이버 주식회사 복수의 이미지들을 포함하는 웹페이지의 이미지 로딩 속도 개선 장치, 방법 및 컴퓨터 판독 가능한 기록 매체

Also Published As

Publication number Publication date
KR101504088B1 (ko) 2015-03-19

Similar Documents

Publication Publication Date Title
US10289649B2 (en) Webpage advertisement interception method, device and browser
US20190251143A1 (en) Web page rendering method and related device
JP4208081B2 (ja) 複数のウェブサイトにパーソナライズされた価値を追加するためのシステム、ウェブサーバ、方法およびプログラム
US10185704B2 (en) Webpage browsing method, webapp framework, method and device for executing javascript and mobile terminal
JP5551938B2 (ja) クライアントデバイスに表示する情報コンテンツを提供する方法及び装置
US20130227398A1 (en) Page based navigation and presentation of web content
US8074167B2 (en) Cross domain presence of web user interface and logic
US8522132B2 (en) Widget behavior customization via cascaded style sheets
US20130145252A1 (en) Page based navigation and presentation of web content
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
JP2012518836A (ja) ウェブ上の文書を閲覧するためのフォントの取扱い
KR101453743B1 (ko) 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치
TWI539302B (zh) 用於網路服務的延後資源當地語系化連結
JP2023541186A (ja) 可視化ページレンダリング方法、装置、機器及び記憶媒体
AU2020352890B2 (en) Dynamic typesetting
US20110035433A1 (en) Webpage display method, computer system, and program
JP5789323B2 (ja) 同期式スクリプト遅延ローディング・システム、同期式スクリプト遅延ローディング方法及びそれを実行するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体
CN115659087B (zh) 页面渲染方法、设备及存储介质
KR101504088B1 (ko) 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체
JP6142620B2 (ja) 表示変更プログラム、表示変更方法及び表示変更装置
US20130111433A1 (en) Method and apparatus for generating application programs
US20030028849A1 (en) Display of a document on a client computer
CN115062255B (zh) 网站适配的方法、装置、电子设备及计算机可读存储介质
KR20110139446A (ko) 끊김 없는 웹 어플리케이션 실행을 위한 단말의 상태 정보 송수신 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체
Northwood et al. Front End

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee