KR101482152B1 - 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 - Google Patents

페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 Download PDF

Info

Publication number
KR101482152B1
KR101482152B1 KR20100043033A KR20100043033A KR101482152B1 KR 101482152 B1 KR101482152 B1 KR 101482152B1 KR 20100043033 A KR20100043033 A KR 20100043033A KR 20100043033 A KR20100043033 A KR 20100043033A KR 101482152 B1 KR101482152 B1 KR 101482152B1
Authority
KR
South Korea
Prior art keywords
web application
page
execution
layer
web
Prior art date
Application number
KR20100043033A
Other languages
English (en)
Other versions
KR20110123513A (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 KR20100043033A priority Critical patent/KR101482152B1/ko
Publication of KR20110123513A publication Critical patent/KR20110123513A/ko
Application granted granted Critical
Publication of KR101482152B1 publication Critical patent/KR101482152B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9562Bookmark management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

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

Abstract

본 발명은 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법에 관한 것으로서, 단말에 탑재된 운영체제의 종류에 무관하게 단말의 자원 및 기능을 이용하여 웹 어플리케이션을 실행할 수 있는 환경을 제공하면서, 웹 어플리케이션의 패키지에 포함되어 있지 않은 다른 페이지를 가져와 연동하여 웹 어플리케이션을 실행할 수 있도록 함으로써, 웹 어플리케이션의 제작시 동일 페이지에 대한 중복 구현을 방지하고, 이를 통해 웹 어플리케이션 제작에 대한 생산성을 향상시킬 수 있는 것이다..

Description

페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법{Web application executable device and method with page association function}
본 발명은 단말에서 웹 어플리케이션을 실행하기 위한 웹 어플리케이션 실행장치 및 방법에 관한 것으로서, 더욱 상세하게는 다수의 페이지를 포함하는 웹 어플리케이션을 실행하는데 있어서, 다른 웹 어플리케이션의 페이지 또는 공용으로 제공되는 페이지를 사용하여 동작할 수 있도록 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법에 관한 것이다.
최근 이동 통신 단말기에 오픈 환경이 적용되기 시작하면서, 서비스의 차별화를 위하여 개방형 어플리케이션 및 플랫폼 환경이 요구되고 있다.
더 구체적으로, 사용자가 자신이 원하는 모바일 어플리케이션을 자유롭게 선택하여 설치할 수 있는 스마트 폰이 급성장하면서, 이러한 모바일 어플리케이션을 자유롭게 거래할 수 있는 OMP(Open Market Place)까지 활성화되고 있다.
그런데 현재 스마트 폰에는 다양한 종류의 운영체제(OS, Operating System)가 사용되고 있기 때문에, 어플리케이션 개발자는 여러 종류의 운영체제 환경을 감안하여 모바일 어플리케이션을 개발하여야 한다.
더 구체적으로 설명하면, 운영체제는 그 자신이 이식(porting)된 단말의 자원 및 기능 등을 관리하며, 그 단말에 이식된 어플리케이션(Application)이 요청하는 경우, 단말의 자원 및 기능의 일부 또는 전부의 접근을 어플리케이션에 허여할 수 있다. 이는 운영 체제가 어플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)를 제공함으로써 이루어진다. 따라서 개발자들은 특정 운영 체제가 이식된 장치의 어플리케이션을 개발하기 위해서는 운영 체제가 제공하는 API의 형식에 따라 개발하여야 하며, 다양한 운영 체제가 사용되고 있는 현 상황에서, 개발자는 동일한 어플리케이션을 각 운영 체제의 API에 맞추어 따로 제작하여야 했다.
한편, 정적이고 단순한 컨텐츠를 표현하기 위해 시작된 웹은 브라우저라는 클라이언트 어플리케이션을 사용할 수 있는 환경만 갖춰지면 어디서나 동등한 수준의 사용자 인터페이스를 제공할 수 있다는 장점 때문에, 사용자 저변과 서비스 영역을 빠르게 확장해왔다. 이와 함께, 웹 컨텐츠는 특정 내용을 서술하는 단순한 컨텐츠에서, 사용자의 입력에 반응하여 사용자가 원하는 서비스를 제공할 수 있는 웹 어플리케이션으로 진화하고 있다.
따라서, 이동 통신 단말기에 표준 웹 기술을 지원하는 웹 어플리케이션 플랫폼을 구현할 경우, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 모바일 어플리케이션을 개발할 수 있으며, 풍부한 사용자 인터페이스를 쉽고 빠르게 개발하여 제공할 수 있게 된다.
본 발명은 단말에 탑재된 운영체제의 종류에 무관하게 단말의 자원 및 운영체제의 기능을 이용하여 웹 어플리케이션을 실행할 수 있는 환경을 제공하면서, 다수의 페이지를 포함하는 웹 어플리케이션을 실행하는데 있어서, 다른 웹 어플리케이션에 포함된 페이지 또는 공용으로 제공되는 페이지를 참조하여 동작할 수 있는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법을 제공하고자 한다.
본 발명은 과제를 해결하기 위한 수단으로서, 이식 계층부와, 브라우저 엔진 계층부와, 웹 어플리케이션 런타임 계층부를 포함하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치를 제공한다. 이식 계층부는 웹 어플리케이션에 포함되어 있지 않은 페이지의 연동을 위한 연동 API(Application Program Interface)를 제공하고, 연동 API를 통해 연동할 페이지의 URL(Uniform Resource Location) 및 인자를 전달받아, 연동할 페이지를 화면에 표시하고, 표시된 페이지를 통해 이루어진 작업 결과 데이터를 반환한다. 브라우저 엔진 계층부는 실행 요청된 웹 어플리케이션의 각 페이지를 해석하여 실행하는 중에, 웹 어플리케이션의 요구에 따라서 연동 API를 호출하여, 연동할 페이지의 URL 및 인자를 전달한 후, 이식 계층부로부터 연동할 페이지의 작업 결과 데이터를 반환 받아, 웹 어플리케이션에 적용한다. 웹 어플리케이션 런타임 계층부는 브라우저 엔진 계층부로 웹 어플리케이션의 실행 요청을 전달하고, 상기 웹 어플리케이션을 실행하는데 필요한 네트워크 및 UI를 제공한다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, URL 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션 실행 요청을 입력받아, 상기 웹 어플리케이션이 로컬 스토리지에 존재하는 지를 확인하고, 확인 결과, 로컬 스토리지에 웹 어플리케이션이 존재하면, 웹 어플리케이션의 실행 명령을 상기의 브라우저 엔진 계층부로 전달하는 기능을 더 수행한다. 여기서 URL 형태의 웹 어플리케이션 식별 정보는, 로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와, 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션의 파일 명을 포함하여 이루어질 수 있다.
더하여, 웹 어플리케이션은, 웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와, 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 및 웹 어플리케이션의 실행 환경 정보 중에서 하나 이상을 포함하는 구성 정보와, 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하여 이루어진다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, 로컬 스토리지에 웹 어플리케이션이 존재하지 않는 경우, 사용자로부터 다운로드 여부를 확인하여, 사용자가 다운로드를 선택하면, URL 형태의 웹 어플리케이션이 식별 정보를 네트워크 URL로 변환한 후, 이를 통해 서버에 접속하여, 웹 어플리케이션을 다운로드 받아 설치하는 기능을 더 수행할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치는, 웹 어플리케이션의 실행 요청 시, 브라우저 엔진 계층부와 이식 계층부 및 웹 어플리케이션 런타임 계층부를 로딩한 후, 웹 어플리케이션의 실행 요청을 웹 어플리케이션 런타임 계층 또는 브라우저 엔진 계층부로 전달하는 실행 계층부를 더 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치는, 웹 어플리케이션 및 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 호출하는 플러그 인의 설치 또는 실행 또는 로딩 전에, 인증서를 검증하고, 상기 웹 어플리케이션의 실행 중 상기 이식 계층부에 대한 접근을 접근 제어 규칙에 따라서 제어하는 보안 계층부를 더 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 브라우저 엔진 계층부는, 웹 표준 언어로 작성된 웹 어플리케이션의 각 페이지를 해석하여 실행시키는 브라우저 엔진 모듈; 하나 이상의 플러그 인에 대한 다운로드, 설치, 설치된 플러그 인의 목록 관리, 업데이트, 및 플러그 인의 호출 요청에 대한 처리를 수행하는 플러그 인 관리 모듈; 및, 플러그 인 관리 모듈에 의해 설치되고, 동작하여, 각각 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 이식 계층부를 통해 호출하여 그에 대한 응답을 반환하는 하나 이상의 플러그 인을 포함하여 이루어질 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 이식 계층부는, HTML과 관련된 기능 및 API를 제공하는 HTTP 모듈, XML 파싱 기능을 위한 API를 제공하는 XML 모듈, 쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈, UI(User Interface) 구현을 위해 필요한 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈, 보안 스토리지 기능을 API 형태로 제공하는 보안 스토리지 모듈, 단말 자원에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈, 단말 자원 이외에 단말에서 제공하는 OS를 API 형태로 제공하는 OS API 모듈, 외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화(Sync) 모듈, 운영체제에 존재하는 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈 중에서 하나 이상을 더 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부는, 웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈; 웹 어플리케이션 및 플러그 인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈; 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI 및 사용자 입력을 처리하는 UI 엔진; 웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리하는 네트워크 셀렉터; 및 웹 어플리케이션을 실행 중에, 네트워크 연결이 끊긴 동안의 데이터를 로컬 스토리지에 저장하고, 네트워크가 연결되면 로컬 스토리지에 저장한 데이터와 외부 데이터에 대한 동기화를 수행하는 다이내믹 동기화 모듈을 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 실행 계층부는, 단축아이콘 또는 단말의 메뉴를 통한 웹 어플리케이션의 실행 요청에 따라서 동작하여, 더미 실행 모듈을 통해, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 컨테이너 에이전트; 컨테이너 에이전트에 의해 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부를 로딩하고, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부가 로딩 중이면, 상기 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 실행 계층부로 전달하는 더미 실행 모듈; 및 단말의 대기화면 관리자에 의해 로딩되어, 대기화면에서의 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 계층부로 전달하는 대기모드 에이전트 모듈을 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 보안 계층부는, 웹 어플리케이션 및 상기 플러그 인의 설치 또는 실행 시, 상기 웹 어플리케이션 및 플러그 인의 인증서를 검증하는 인증 모듈; 및 웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 하나 이상의 플러그 인은, 단말 자원과 관련된 기능 호출을 이식계층으로 전달하는 리소스 플러그 인과, 웹 어플리케이션의 단말 OS 호출 기능을 이식 계층부에 전달하고, 웹 어플리케이션 런타임 계층부의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인과, 웹 어플리케이션에 포함되지 않은 페이지에 대한 연동 기능과 관련된 호출을 이식 계층부로 전달하는 협업 플러그 인과, 웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부에 전달하는 동기화 플러그 인 중에서 하나 이상을 포함하는 것을 특징으로 한다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 모듈은, 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러; 커맨드 핸들러 또는 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저; 컨텍스트 매니저에서 생성한 윈도우 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 UI 엔진에 전달하는 이벤트 핸들러; 및 다수의 페이지를 포함하는 웹 어플리케이션 및 그의 각 페이지에 대한 라이프사이클을 관리하는 라이프사이클 매니저를 포함하여 이루어질 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치에 있어서, 레지스트리 모듈은, URL 형태의 웹 어플리케이션 식별 정보인 웹 어플리케이션 URL과, 웹 어플리케이션 URL로 식별되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 위치를 나타내는 컨텐츠 URL과, 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 웹 어플리케이션의 접근 제어를 위한 정책 정보를 포함하는 웹 어플리케이션 설치 정보 관리 테이블을 구성하고 관리하는 것을 특징으로 한다.
더하여, 본 발명은 과제를 해결하기 위한 다른 수단으로서, 상술한 웹 어플리케이션 실행 장치를 구비한 단말기를 제공한다.
더하여, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, 웹 어플리케이션을 실행하는 단계; 웹 어플리케이션을 실행하는 중에, 웹 어플리케이션에 포함되지 않은 다른 페이지와의 연동을 위한 연동 API를 호출하여, 연동할 페이지의 URL 및 인자를 전달하는 단계; 연동할 페이지가 단말 내에 존재하는 지를 확인하는 단계; 연동할 페이지가 존재하면, 연동할 페이지를 실행하여 화면으로 표시하는 단계; 및 표시한 페이지를 통해 사용자 작업이 완료되면, 작업 결과 데이터를 웹 어플리케이션으로 반환하는 단계를 포함하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법을 제공한다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션을 실행하는 단계는, URL 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받는 단계; 단말에 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하는 단계; 및 웹 어플리케이션이 단말에 존재하면, 단말에 저장된 웹 어플리케이션을 실행하는 단계를 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션을 실행하는 단계는, 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 확인하는 단계; 사용자가 다운로드 받는다고 선택하면, URL 형태의 웹 어플리케이션 식별 정보를 네트워크를 통해 접속 가능한 네트워크 URL로 변환하는 단계; 및 변환된 네트워크 URL을 이용하여, 네트워크상의 서버에 접속하여, 웹 어플리케이션을 다운로드 받고, 단말에 설치하는 단계를 더 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, URL 형태의 웹 어플리케이션 식별 정보는, 로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와, 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션의 파일 명을 포함하여 이루어질 수 있고, 웹 어플리케이션은, 웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와, 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와, 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하여 이루어질 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션을 실행하는 단계는, 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스를 생성하는 단계; 웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 분석 및 구조화한 후, 랜더링하여 상기 생성한 윈도우로 출력하는 단계; 출력한 페이지 이외에 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계; 하나 이상의 다른 페이지를 분석 및 구조화하는 단계; 구조화된 다른 페이지를 저장하는 단계; 다른 페이지에 대한 이벤트 발생을 확인하는 단계; 이벤트가 발생하면, 구조화된 데이터를 랜더링하여 상기 윈도우로 출력하는 단계를 더 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션을 실행하는 단계는, 웹 어플리케이션의 설치 또는 실행 전에, 상기 웹 어플리케이션의 인증서를 검증하여, 인증서 검증이 성공하면, 웹 어플리케이션의 설치 또는 실행을 계속하도록 하고, 인증서 검증이 성공하지 못하면, 사용자에게 설치 또는 실행 계속 여부를 확인하도록 하는 단계를 더 포함할 수 있다.
본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션을 실행하는 단계는, 웹 어플리케이션을 실행하는 중에, 단말의 자원 또는 운영체제의 기능이 호출되면, 웹 어플리케이션 별로 설정된 접근 제어 규칙에 따라서, 상기 단말의 자원 또는 운영체제의 기능에 대한 접근을 허여하거나 거부하는 단계를 더 포함할 수 있다.
더하여, 본 발명은 과제를 해결하기 위한 또 다른 수단으로서, 상술한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체를 제공한다.
본 발명에 따르면, 운영 체제 별로 다른 형식을 가지는 기능 실행을 위한 인터페이스를 운영 체제의 종류에 무관하게 단일 형식으로 제공함으로써, 웹 어플리케이션이 동일한 방법으로 운영 체제가 관리하는 단말의 기능을 이용하여 실행될 수 있도록 하며, 다수의 페이지로 구성되는 웹 어플리케이션을 실행하는데 있어서, 다른 웹 어플리케이션에 포함된 페이지 또는 공용으로 제공되는 페이지를 이용하여 동작할 수 있도록 지원하여, 어플리케이션 개발자가 이미 작성되어진 페이지를 이용하여 웹 어플리케이션을 제작할 수 있도록 함으로써, 웹 어플리케이션의 제작 시간을 단축시키고 생산성을 향상시킬 수 있다.
도 1은 본 발명에 따른 웹 어플리케이션 실행 장치의 전체 구조를 보인 블럭도이다.
도 2는 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 이식 계층부의 상세 구성을 나타낸 블럭도이다.
도 3은 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 보안 계층부의 상세 구성을 나타낸 블럭도이다.
도 4는 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부의 상세 구성을 나타낸 블럭도이다.
도 5는 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 브라우저 엔진 계층부의 상세 구성을 나타낸 블럭도이다.
도 6은 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 브라우저 엔진 켄테이너 실행부의 상세 구성을 나타낸 블럭도이다.
도 7은 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 시스템 어플리케이션의 상세 구성을 나타낸 블럭도이다.
도 8은 본 발명에 따른 웹 어플리케이션 실행 장치에서 동작하는 웹 어플리케이션의 패키지 구조를 보인 블럭도이다.
도 9는 본 발명에 따른 웹 어플리케이션 실행 장치에서 관리되는 웹 어플리케이션 설치 정보 관리 테이블을 나타낸 도면이다.
도 10은 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 페이지 연동 기능의 개념을 설명하는 모식도이다.
도 11은 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 페이지 연동 처리 과정을 나타낸 메시지 흐름도이다.
도 12는 본 발명에 따른 웹 어플리케이션 실행 방법을 나타낸 흐름도이다.
도 13은 본 발명에 따른 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션 실행 과정을 상세하게 나타낸 흐름도이다.
도 14는 본 발명에 따른 웹 어플리케이션 실행 방법에 있어서, 실행 속도 향상을 위한 처리 과정을 나타낸 흐름도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
더하여, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
먼저, 본 발명에 따른 웹 어플리케이션 실행 장치에 대하여 설명한다. 본 발명에 따른 웹 어플리케이션 실행 장치는, 단말의 운영 체제 위에서 동작하여, 웹 어플리케이션의 다운로드, 설치, 실행을 처리한다. 이러한 웹 어플리케이션 실행 장치는 소프트웨어, 하드웨어, 소프트웨어와 하드웨어의 조합으로 구현될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 웹 어플리케이션 실행 장치의 전체 구조를 나타낸 도면이다.
도 1을 참조하면, 웹 어플리케이션의 실행 장치는, 이식 계층부(Porting layer)(200)와, 보안 계층부(Security layer)(300)와, 웹 어플리케이션 런타임 계층부(Web Application Runtime layer)(400)와, 브라우저 엔진 계층부(Browser Engine layer)(500)와, 실행 계층부(Executable layer)(600)와, 하나 이상의 시스템 웹 어플리케이션(700)와, 하나 이상의 웹 어플리케이션(800)을 포함한다.
여기서, 보안 계층부(300)와, 웹 어플리케이션 런타임 계층부(400)와, 브라우저 엔진 계층부(500)가 브라우저 엔진 컨테이너 커먼(Browser Engine Container Common) 모듈(10)로 구현되는데, 웹 어플리케이션 런타임 계층부(400)가 주도적으로 웹 어플리케이션의 관리 기능을 수행하며, 브라우저 엔진 계층부(500)는 웹 어플리케이션의 각 페이지를 해석하여 화면으로 출력하는 기능을 수행하고, 보안 계층부(300)는 웹 어플리케이션의 단말 자원 및 운영체제 기능에 대한 접근을 제어한다. 이러한 브라우저 엔진 컨테이너 커먼 모듈(10)은 운영체제(100)에는 독립적이고, 이식 계층부(200)에만 의존성을 갖는다.
그리고, 상기 브라우저 엔진 컨테이너 커먼(10)과, 이식 계층부(200)을 포함하여, 브라우저 엔진 컨테이너 코어(Browser Engine Container Core)(20)로 구현한다.
상기 브라우저 엔진 컨테이너 코어(20)는, 다수 웹 어플리케이션의 동시 실행과, 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원하는 멀티-태스킹 컨테이너로, 한 시스템 내에서 복수 개의 컨테이너를 실행할 수 있으며, 컨테이너 자체는 단일 인스턴스로 동작한다. 즉, 브라우저 엔진 컨테이너 코어(20)는, 웹 어플리케이션 마다 윈도우를 생성하고, 랜더러 인스턴스를 생성하여, 웹 어플리케이션의 디폴트 페이지 또는 요청 페이지를 실행한다.
이때, 실행 계층부(600)는, 브라우저 엔진 컨테이너 코어(20)의 엔트리 포인트로 동작한다. 즉, 브라우저 엔진 컨테이너 코어(20)는 실행 계층부(600)에 의하여 로딩되어, 시스템 웹 어플리케이션(700) 및 다른 웹 어플리케이션(800)을 실행시킨다.
웹 어플리케이션(800)은, 어플리케이션 제작자 또는 서비스 제공자에 의하여 제공되는 임의의 웹 어플리케이션으로, 단말의 로컬 스토리지에 저장된 후, 사용자의 요청에 따라서, 본 발명에 의한 웹 어플리케이션 실행 장치에 의해서, 로딩되어 실행된다.
이하, 본 발명에 의한 웹 어플리케이션 실행 장치의 각 구성 요소의 상세 구성 및 기능에 대하여 설명한다.
먼저, 이식 계층부(200)는, 단말에 탑재된 운영체제(100) 위에 구현되는 것으로서, 운영체제(100)와 직접 연결되어 상기 웹 어플리케이션 런타임 계층부(400) 및 브라우저 엔진 계층부(500)가 운영체제(100)에 독립적으로 구현되면서 단말 자원 및 운영체제 기능을 이용할 수 있도록 한다.
더 구체적으로 설명하면, 시스템 웹 어플리케이션(700) 및 웹 어플리케이션(800)은 브라우저 엔진 컨테이너 코어(20)의 이식 계층부(200)를 통해 운영체제(100)에 접근할 수 있다. 시스템 웹 어플리케이션(700) 및 웹 어플리케이션(800)이 단말의 자원 또는 기능을 이용하고자 하는 경우, 이 요청을 브라우저 엔진 계층부(500)에서 이식 계층부(200)에 전달하고, 이식 계층부(200)는 운영체제(100)에 이 요청을 재 전달한다. 이때, 이식 계층부(200)는 운영체제(100)의 인터페이스에 따라 이 요청을 변환하여 운영체제(100)에 전달한다. 이에 의해, 운영체제(100)는 웹 어플리케이션이 요청한 기능을 실행하거나 단말의 자원을 웹 어플리케이션에 제공한다.
이식 계층부(600)와 운영체제(100)가 연결되는 인터페이스는 각 운영체제(100) 별로 따로 구현되며, 상위의 브라우저 엔진 컨테이너 커먼 모듈(10)에 제공하는 인터페이스(이하, 이식 계층 API라 함)는 단일 형식으로 구현된다. 그 결과, 시스템 웹 어플리케이션(700) 및 웹 어플리케이션(800)은 운영체제(100)의 종류에 무관하게 동일한 형식의 인터페이스를 이용하여 단말 자원 또는 운영체제의 기능에 접근할 수 있다.
이러한 이식 계층부(200)은 다수 개의 인터페이스 모듈(210)을 포함하며, 각 인터페이스 모듈(210)은 라이브러리 형태로 구현되어, 자유롭게 추가될 수 있다.
도 2는 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 이식 계층부의 상세 구성을 나타낸 블럭도로서, 이를 참조하면, 이식 계층부(200)에 포함되는 인터페이스 모듈(210)은, HTTP 및 HTTPS와 관련된 기능 및 API를 제공하는 HTTP 모듈(211), XML 파싱 기능을 위한 API를 제공하는 XML 모듈(213), 쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈(215), UI 구현을 위해 필요한 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈(217), 보안 저장 기능을 API 형태로 제공하는 보안 스토리지(Secure Storage) 모듈(219), 단말 자원(예를 들어, 전화부, 사진, 통화 기록, SMS 목록 등)에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈(221), 단말 자원 이외에 단말에서 제공하는 OS(예를 들어, 통화 연결, SMS 전송, 단말 시스템의 Property 설정 등)을 API 형태로 제공하는 OS API 모듈(223), 다른 웹 어플리케이션 또는 공동으로 제공되는 페이지와의 연동 기능을 API 형태로 제공하는 협업(Collaboration) 모듈(225), 외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화 모듈(227), 운영체제에 존재하는 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈(229) 중에서 하나 이상을 포함할 수 있다.
다음으로 보안 계층부(300)에 대해서 설명한다.
도 3은 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 보안 계층부의 상세 구성을 나타낸 블럭도이다. 이를 참조하면, 보안 계층부(300)는, 웹 어플리케이션 실행 장치 내부의 다른 모듈에 대한 이식 계층부(200)로의 접근을 제어하여, 보안 레벨을 높이기 위한 것으로서, 인증(Certification) 모듈(310)과, 정책(Policy) 모듈(320)을 포함하여 이루어진다.
인증 모듈(310)은 웹 어플리케이션 및 브라우저 엔진 계층부(500)에 구비되어 이식 계층부(200)에 대한 접근을 처리하는 플러그 인을 단말에 설치 또는 실행 또는 로딩 시에, 상기 웹 어플리케이션 및 플러그 인이 정당하게 배포된 것인지를 인증하여, 정당하게 배포된 웹 어플리케이션 및 플러그 인이 단말에 설치되고, 실행될 수 있도록 한다.
정책 모듈(320)은 접근 제어 규칙에 따라서 각 웹 어플리케이션의 이식 계층부(200)로의 접근을 제어하여, 접근 권한을 갖는 웹 어플리케이션만이 단말 자원 및 운영체제 기능에 접근할 수 있도록 한다. 이를 위하여, 정책 모듈(320)은, 실행 계층부(600)를 통해서 접근 제어 규칙을 전달받아 설치한다. 그리고, 브라우저 엔진 계층부(500)의 이식 계층부(200)에 대한 접근 요청에 대해, 저장된 접근 제어 규칙을 검색하여, 해당하는 접근 제어 규칙에 따라서, 접근을 허여하거나 거부한다. 여기서, 접근 제어 규칙은, 단말 자원 및 운영체제의 기능에 대한 웹 어플리케이션의 접근 범위를 지정하는 것으로서, 웹 어플리케이션 별로 설정될 수 있으며, 웹 어플리케이션의 다운로드시에 함께 다운로드될 수 있다.
다음으로, 웹 어플리케이션 런타임 계층부(400)에 대해서 설명한다.
웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 실행 환경을 관리하여, 브라우저 엔진 계층부(500)에서 웹 어플리케이션의 각 페이지를 실행하는데 필요한 네트워크 및 UI를 제공한다. 더 구체적으로 설명하면, 웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션의 인스턴스들을 관리하고, 웹 어플리케이션의 설치 및 구성 정보 관리 및 유저 인터페이스 관리를 수행한다.
도 4는 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 웹 어플리케이션 런타임 계층부(400)의 상세 구성을 보인 블럭도로서, 이를 참조하면, 웹 어플리케이션 런타임 계층부(400)는, 웹 어플리케이션 런타임 모듈(410)과, 레지스트리(Registry) 모듈(420)과, UI(User Interface) 엔진(430)과, 네트워크 셀렉터(Network Selector)(440)와, 다이내믹 동기화 모듈(Dynamic Sync module)(450)을 포함한다.
이 중에서, 웹 어플리케이션 런타임 모듈(410)은, 웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부(600)으로부터의 커맨드 처리를 수행한다. 이러한 웹 어플리케이션 런타임 모듈(410)은, 커맨드 핸들러(Command Handler)(411)와, 컨텍스트 매니저(Context manager)(413)와, 이벤트 핸들러(Event Handler)(415)와, 라이프사이클 매니저(Lifecycle manager)(417)를 포함하여 이루어진다.
커맨드 핸들러(411)는 실행 계층부(600)로부터 웹 어플리케이션의 실행과 관련된 명령을 IPC(Interprocess Communication)로 전달받아 해석한 뒤, 해당하는 모듈에 동작을 지시하는 것으로서, 일종의 IPC 명령 처리기이다. 커맨드 핸들러(411)에서 처리되는 명령어는, 예를 들어, 웹 어플리케이션의 실행/종료, 웹 어플리케이션 실행 장치와 관련된 설정 정보의 업데이트, 웹 어플리케이션 실행 장치의 실행 및 종료, 플러그 인에 대한 인스톨/언인스톨/업데이트가 포함될 수 있다. 더 구체적으로 설명하면, 커맨드 핸들러(411)는 컨텍스트 매니저(413)에 웹 어플리케이션의 실행 및 종료를 요청하고, 웹 어플리케이션 실행 장치의 구성 정보를 레지스트리 모듈(420)을 통해 업데이트한다. 또한, 커맨드 핸들러(411)는 브라우저 엔진 계층부(500)에 구비된 플러그 인 관리 모듈(520)에 플러그 인(530)의 설치, 삭제, 업데이트를 요청할 수 있다.
컨텍스트 매니저(413)는 웹 어플리케이션 인스턴스들의 컨텍스트를 관리하는 것으로서, 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어한다. 더 구체적으로 설명하면, 커맨드 핸들러(411)와 브라우저 엔진 계층부(500)로부터 전달되는 웹 어플리케이션의 실행 명령과, 브라우저 엔진 계층부(500)로부터 전달되는 윈도우 생성 명령에 따라, 각 웹 어플리케이션을 위한 윈도우 및 랜더러(Render)의 인스턴스를 생성한다. 이렇게 생성한 윈도우에는 웹 어플리케이션의 각 페이지가 랜더링되어 출력된다. 또한, 커맨드 핸들러(411)로부터 전달되는 웹 어플리케이션 종료 명령과 이벤트 핸들러(415) 및 브라우저 엔진 계층부(500)로부터 전달되는 윈도우 소멸 명령에 따라서, 랜더러와 윈도우의 자원을 정리하고, 윈도우를 소멸시키며, 웹 어플리케이션이 소유하고 있는 모든 윈도우가 소멸되면, 해당 웹 어플리케이션을 종료시킨다.
이벤트 핸들러(415)는 컨텍스트 매니저(413)에서 생성한 윈도우 관련 이벤트와 웹 어플리케이션 실행 장치에서 확장한 시스템 관련 이벤트를 받아 처리한다. 특히, 윈도우 내 페이지 전환이나, 윈도우 사이의 전환시에 UI 이펙트를 줄 수 있도록, 미리 정의된 상황과 관련된 이벤트가 발생하면, 이를 UI 엔진(430)으로 전달한다. 이때, 도 5에서 설명할 브라우저 엔진 모듈(510)에 관련된 이벤트는 브라우저 엔진 모듈(510)에서 직접 처리하므로, 이벤트 핸들러(415)는 브라우저 엔진 모듈(510)과 관련된 이벤트는 처리하지 않는다.
라이프사이클 매니저(417)는, 웹 어플리케이션의 라이프 사이클을 관리한다. 본 발명에서 실행되는 웹 어플리케이션은 다수의 페이지로 구성되는데, 웹 어플리케이션의 각각의 페이지들은 방문에 의해 시작되고, 다른 페이지로 전환될 때마다 종료된다. 웹 어플리케이션은 상기 실행 계층부(600)이나 다른 웹 어플리케이션 또는 네이티브 어플리케이션의 실행 요청에 의해 웹 어플리케이션 마다 하나의 윈도우를 생성하여 시작되고, 사용자가 해당 웹 어플리케이션과 관련된 모든 윈도우를 닫거나 자바 스크립트를 통해 창 닫기 요청이 발생하여 모든 윈도우가 닫히면 종료된다. 또한, 웹 어플리케이션의 인스턴스가 생성한 윈도우가 1개뿐인 상태에서 다른 웹 어플리케이션이나 외부 페이지를 로딩한 경우에도 종료하게 된다. 상기 라이프사이클 매니저(417)는 이러한 웹 어플리케이션의 각 페이지에 대한 라이프사이클을 관리한다.
다음으로, 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)은 웹 어플리케이션의 설치 정보 및 웹 어플리케이션 실행 장치의 구성 정보를 관리한다. 여기서, 설치 정보 및 구성 정보는 이식 계층부(200)를 통해 단말의 보안 스토리지 영역에 저장된다. 더하여, 웹 어플리케이션의 설치 정보는, 웹 어플리케이션의 설치 시에 등록되거나, 단말 바이너리 패키징 시에 등록될 수 있다. 더 구체적으로, 레지스트리 모듈(420)은, 웹 어플리케이션의 설치, 삭제 및 갱신 등과 같은 웹 어플리케이션 컨텐츠 관리, 웹 어플리케이션의 속성 설정, 웹 어플리케이션의 인증 정보 추출 및 제공, 웹 어플리케이션 실행 장치 전체 또는 모듈 별 갱신, 모듈간 종속성 관리 등을 포함하는 모듈 관리, 웹 어플리케이션 실행 장치의 속성 설정 기능, 및 플러그 인의 설치 정보에 대한 관리기능을 수행한다. 이러한 레지스트리 모듈(420)은 웹 어플리케이션의 설치, 삭제 및 웹 어플리케이션 실행 장치 업데이트를 위한 API 등을 제공한다.
다음으로, UI 엔진(430)은 브라우저 엔진 계층부(500)에서 랜더링하는 영역 이외의 영역에 대한 UI 및 사용자 입력을 처리한다. 구체적으로는, 단말기의 전체 화면 중에서, 웹 어플리케이션의 페이지가 출력되는 영역 이외의 나머지 영역에 대한 처리를 담당하는데, 여기에는 웹 어플리케이션의 로딩 상태를 표시하는 상태 바와, 사용자 입력을 위한 버튼이 표시될 수 있다. 이때, 이동 통신 단말기에서 안테나의 신호 수신 강도, 통화 가능 여부, 배터리 잔량 등을 표시하는 annuniciator 영역은 운영체제(100)의 종류에 따라서 커스터마이징을 허용하지 않는 경우가 있으므로, UI 엔진(430)의 처리 영역에서 제외할 수 있다. 더하여, UI 엔진(430)은 여러 개의 웹 어플리케이션이 동시에 실행되어, 각 웹 어플리케이션 마다 별개의 윈도우를 생성하여 할당할 때, 각 윈도우 사이의 전환을 단말의 윈도우 매니저를 통해 수행한다. 즉, UI 엔진(430)은 컨텍스트 매니저(413)와 이식 계층부(200)에서 제공하는 UI 백엔드 모듈(217)과의 유기적인 동작을 통해 UX(User eXperience) 관련 기능을 처리한다. 더하여, UI 엔진(430)은 웹 어플리케이션의 실행 중에 화면과 화면 사이를 전환할 때 다이내믹한 이펙트를 제공한다. 이러한 화면 전환 효과는 웹 표준 기술(예를 들어, HTML, CSS, JavaScript)를 이용해서 구현할 수 있다. 더하여, 복잡하고 화려한 화면 전환 효과를 사용자에게 생동감 있게 제공하기 위해, UI 엔진(430)은 네이티브 코드 수준에서 실행되는 화면 전환 효과를 플러그 인 형태로 제공할 수 있다.
다음으로, 네트워크 셀렉터(440)는, 웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리한다. 이를 위하여, 네트워크 셀렉터(440)는 해당 이동 통신 단말기에서 사용 가능한 네트워크(예를 들어, 모뎀, Wi-Fi, 블루투스 등)에 대한 선택 방법과 우선 순위를 사용자로부터 입력 받아 설정한다. 여기서, 선택 방법은, 자동, 수동, 반자동의 3가지 옵션을 제공할 수 있으며, 자동은 설정된 우선순위에 따라서 가능한 네트워크에 접속을 시도하는 것이며, 수동은 사용자가 선택한 네트워크에 대해서만 접속을 시도하는 것이고, 반 자동은 네트워크 전환이 요구될 때마다 팝업을 띄워 사용자가 선택하도록 하는 것이다.
다이내믹 동기화 모듈(450)은, 해당 단말기가 온라인 상태인지, 오프라인 상태 인지에 상관없이 끊김 없는 웹 어플리케이션의 실행을 보장하기 위한 수단이다. 더 구체적으로, 다이내믹 동기화 모듈(450)은 외부 데이터에 접근하는 웹 어플리케이션의 실행 중에, 네트워크 연결이 끊기는 경우, 캐싱 메카니즘(cache mechanism)을 통해 작업 결과를 저장하고, 네트워크에 연결되었을 때, 저장되었던 데이터와 외부 데이터에 대한 동기화를 사용자가 인식하지 못하는 사이에 백그라운드로 자동 수행한다.
다음으로, 브라우저 엔진 계층부(500)에 대해서 설명한다.
도 5는 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 브라우저 엔진계층부의 상세 구성을 나타낸 블럭도로서, 이를 참조하면, 브라우저 엔진 계층부(500)는, 웹 어플리케이션의 각 페이지에 대한 분석, 구조화 및 랜더링을 수행하는 것으로서, 브라우저 엔진 모듈(510)과, 플러그 인 관리 모듈(520)과, 하나 이상의 플러그 인(530)을 포함한다.
이 중에서, 브라우저 엔진 모듈(510)은, HTML, CSS, JavaScript와 같은 웹 표준 언어로 작성된 웹 어플리케이션을 해석하여 실행시킨다. 브라우저 엔진 모듈(510)은, 웹 표준 언어를 처리하는 웹코어(511)와, 스크립트 언어를 처리하기 위한 스크립트코어(ScriptCore)(513)로 이루어진다. 이와 같이 브라우저 엔진 모듈(510)에서 웹코어(511)와 스크립트코어(513)를 분리하여 구성함으로써, 모듈 별 업데이트 및 교체가 용이해 진다. 브라우저 엔진 모듈(510)은, 해킹 등을 방지하기 위하여, 웹 어플리케이션 간에 상호 참조를 금지하도록 구현되는 것이 바람직하다. 이러한 브라우저 엔진 모듈(510)은, 오픈 소스 기반의 브라우저 엔진인 Webkit로 구현될 수 있다. 이 경우, PC 환경과 달리 프로세서의 처리능력과 네트워크 대역폭에 제한이 있는 이동 통신 단말기의 환경에 맞도록 Webkit의 코드를 최적화하는 것이 바람직하다.
더하여, 브라우저 엔진 모듈(510)은, 웹 어플리케이션을 실행하는 중에, 단말 자원을 이용하는 경우, 이식 계층부(200)를 통해 운영체제(100) 및 단말 자원에 접근한다. 더 구체적으로, 브라우저 엔진 모듈(510)은, 각 페이지의 실행을 위하여, 프로토콜 처리기, XML 처리기, 윈도우(Window) 처리기, 폰트(Font) 처리기, 이미지 디코더(Image Decoder) 처리기, 국제화(Internationalization) 처리기 및 시스템(System) 처리기와 연동할 수 있다. 프로토콜 처리기는 HTTP, HTTPS 프로토콜 기능을 제공하며, HTTP 기능 동작을 위해 필요한 업로드(upload), 프록시(proxy), 쿠키(cookie) 등에 대한 관리 기능을 제공한다. XML 처리기는 XML 파서 기능 및 XSLT XML 변환 기능을 제공한다. 윈도우 처리기는 브라우저 엔진 모듈(510)이 사용할 윈도우 시스템을 제공하며, 버튼, 리스트 박스, 콤보 박스, 텍스트 에디터 등의 UI 위젯(Widget)을 제공한다. 폰트 처리기는 웹코어(511)가 사용할 폰트 시스템을 제공한다. 이미지 디코더 처리기는 웹코어(511)가 사용할 이미지 디코더 기능을 제공한다. 국제화 처리기는 다국어 처리를 위해 필요한 문자열 변환 기능을 제공한다. 시스템 처리기는 타이머 등의 시스템 기능을 제공한다. 그리고, 브라우저 엔진 모듈(510)은 프로토콜 처리기, XML 처리기, 윈도우 처리기, 폰트 처리기, 이미지 디코더 처리기, 국제화 처리기 및 시스템 처리기 등의 기본적인 기능을 이식 계층부(200)를 통해 운영체제(100)에서 가져온다. 또한, 웹 어플리케이션은 웹 표준 기능 이외에 주소록이나 단말 어플리케이션과 같은 단말 자원을 이용할 수 있어야 한다.
이를 위하여, 상기 브라우저 엔진 계층부(500)는, 플러그 인 관리 모듈(520) 및 하나 이상의 플러그 인(530)을 더 포함하며, 이를 통해 단말 의존적인 기능을 호출한다. 플러그 인 관리 모듈(520) 및 플러그 인(530)을 통해서 단말 의존적 기능의 호출을 수행할 경우, 브라우저 엔진 모듈(510)에 최신의 브라우저 엔진 기술을 큰 수정 없이 빠르게 적용할 수 있다. 또한, 향후 제공 가능한 새로운 기능을 플러그 인 형태로 추가할 수 있으므로, 기능 확장이 더 쉬워진다.
플러그 인 관리 모듈(520)은 복수의 플러그 인(530)의 다운로드 및 설치, 설치된 플러그 인의 목록 관리, 업데이트, 웹 어플리케이션의 플러그 인 호출 요청에 대한 응답을 수행한다. 여기서, 신규 플러그 인의 다운로드 요청, 업데이트 요청은 도 6에서 설명할 실행 계층부(600)에 포함된 업데이터(612)에 의해 발생하고, 해당 요청이 웹 어플리케이션 런타임 계층부(400)을 통해 플러그 인 관리 모듈(520)로 전달된다. 다운로드 요청을 전달받은 플러그 인 관리 모듈(520)은 OMA 다운로드 표준에 따라서, 플러그 인 패키지를 다운받아 설치하면서, 플러그 인의 설치 정보는 레지스트리 모듈(420)을 통해 단말의 보안 스토리지에 저장한다. 이러한 플러그 인 관리 모듈(520)은 브라우저가 플러그 인에 제공해야 하는 브라우저측 API와, 플러그 인이 브라우저에 제공해야 하는 플러그측 API를 포함하여, 복수의 플러그 인(530)은 브라우저측 API를 호출하여 작업을 수행하고, 브라우저 엔진 모듈(510)은 플러그 인측 API를 호출하여 작업을 수행한다.
하나 이상의 플러그 인(530)은, 웹 어플리케이션에서 요구하는 웹 표준 이외의 단말의 자원 및 운영체제 기능을 호출하여 그에 대한 응답을 브라우저 엔진 모듈(510)로 전달한다. 하나 이상의 플러그 인(530)은 웹 어플리케이션의 단말 자원과 관련된 기능 호출을 이식 계층부(200)의 리소스 모듈(221)에 전달하는 리소스 플러그 인(531)과, 웹 어플리케이션의 운영 체제의 기능과 관련된 호출을 이식 계층부(200)의 OS API 모듈(223)에게 전달하고, 웹 어플리케이션 런타임 계층부(400)의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인(533)과, 협업 모듈(225)을 호출하여 페이지 연동 기능을 호출과 응답을 처리하는 협업 플러그 인(535)과, 이식 계층부(200)의 동기화 모듈(227)과 연동하여 웹 어플리케이션의 동기화와 관련된 기능의 호출 및 응답을 처리하는 동기화 플러그 인(537) 중에서 하나 이상을 포함할 수 있으며, 이외에도 필요에 따라서 다른 여러 가지 기능에 대한 플러그 인을 추가할 수 있다.
본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 상기 플러그 인 관리 모듈(520) 및 하나 이상의 플러그 인(530)을 통해서 접근할 수 있는 단말 자원은, 예를 들어, 사진, 주소록, 전화, SMS 기능, 통화 로그 조회 등에 관한 메소드와 프로퍼티를 포함할 수 있다.
다음으로, 실행 계층부(600)에 대하여 설명한다.
실행 계층부(600)는, 브라우저 엔진 컨테이너 코어(20)의 엔트리 포인트 역할을 하며, 단일 인스턴스 형태로 동작한다. 이러한 실행 계층부(600)는, 운영체제의 실행 파일 형태로 구현되거나, DLL로 구현될 수 있다. 이때, 실행 계층부(600)도 이식성을 높이기 위하여, 최대한 이식 계층부(200)을 이용하여 운영체제(100)에 접근하도록 한다. 이에 따르면, 어떠한 운영체제에서도 소스 레벨의 이식성을 가질 수 있게 된다.
더 구체적으로 설명하면, 실행 계층부(600)는, 브라우저 엔진 컨테이너 코어(20)를 로딩하여, 사용자의 요청에 따른 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 계층부(400) 또는 브라우저 엔진 계층부(500)로 전달한다. 또한, SMS 푸시 또는 셀프 체크에 의해 웹 어플리케이션 실행 장치의 모듈 별 업데이트를 확인하여 관련 다운로드 요청을 해당 모듈로 전달한다. 특히, 상기 브라우저 엔진 계층부(500)에 구비되는 플러그 인(530)에 대한 업데이트를 체크하여, 다운로드 요청을 플러그 인 관리 모듈(520)로 전달한다.
도 6은 본 발명에 따른 웹 어플리케이션 실행 장치에 있어서, 실행 계층부의 상세 구성을 나타낸 블럭도로서, 이를 참조하면, 실행 계층부(600)는, 컨테이너 에이전트(Container Agent)(610)과, 더미 실행(Dummy execution) 모듈(620)과, 대기모드 에이전트(Idle Agent)(630)을 포함한다.
컨테이너 에이전트(610)은, 단말의 네이티브 어플리케이션 형태로 구현되며, 단축아이콘 또는 단말의 메뉴를 통한 웹 어플리케이션의 실행 명령을 더미 실행 모듈(620)을 통해 웹 어플리케이션 런타임 계층부(400)로 전달한다. 더 구체적으로는, 웹 어플리케이션 실행 장치가 실행중인 상태에서, 웹 어플리케이션의 실행이 요청되면, 해당 웹 어플리케이션의 실행 명령을 바로 웹 어플리케이션 런타임 모듈(410)의 커맨드 핸들러(411)로 전달하고, 웹 어플리케이션 실행 장치가 실행 중이 아닌 경우에는, 더미 실행 모듈(620)을 통해 브라우저 엔진 컨테이너 코어(20)를 로딩한 후, 웹 어플리케이션의 실행 명령을 커맨드 핸들러(411)로 전달한다. 이를 위하여, 웹 어플리케이션 런처(Launcher)(611)를 포함한다. 또한, 컨테이너 에이전트(610)은, 서버로부터의 요청 또는 셀프 체크를 통한 웹 어플리케이션 실행 장치의 모듈별 업데이트를 요청한다. 이를 위해 컨테이너 에이전트(610)는, 업데이터(612)를 포함한다. 업데이터(612)는, 웹 어플리케이션 실행 장치 상에 설치되어 있는 플러그 인(530)의 업데이트와 새로 확장된 플러그 인의 다운로드 및 설치/삭제를 관리하고, 보안 계층부(300)를 위한 접근 제어 규칙에 대한 업데이트 여부를 관련 서버(예를 들어, 정책 서버)에 확인하고, 필요 시 정책 모듈(320)로 다운로드를 요청한다. 이러한 컨테이너 에이전트(610)는, 데몬(Daemon) 형태가 아니라 해당 기능을 수행하고 즉시 종료하는 형태로 구현되는 것이 바람직하며, 긴 시간 구동되지 않고, 웹 어플리케이션의 구동 요청 시에 잠깐 실행되어, 해당 기능을 수행한 후 바로 종료한다.
더미 실행 모듈(620)은 컨테이너 에이전트(610)에 의해 구동되어, 운영체제에서 이식 계층부(200), 보안 계층부(300), 웹 어플리케이션 런타임 계층부(400), 및 브라우저 엔진 계층부(500)을 포함하는 브라우저 엔진 컨테이너 코어(20)를 로딩한 후, 웹 어플리케이션의 실행 명령을 전달한다. 즉, 더미 실행 모듈(620)은 컨테이너 에이전트(610)에 의해 구동되어, 브라우저 엔진 컨테이너 코어(20)의 실행 여부를 확인하여, 실행 중이 아니면 브라우저 엔진 컨테이너 코어(20)를 로딩한 후 웹 어플리케이션 실행 명령을 전달하고, 실행 중이면 그대로 웹 어플리케이션 실행 명령을 전달한다.
대기모드 에이전트(630)는, 웹 어플리케이션이 단말의 대기 화면에서 동작할 수 있도록 지원한다. 대기모드 에이전트 모듈(630)은, 운영체제의 특성에 맞춰 해당 규약에 따라 구현되며, 단말의 대기화면(native idle screen) 관리자에 의해 로딩되어, 대기화면에서 특정 웹 어플리케이션의 실행 요청이 있으면, 해당 요청을 웹 어플리케이션 런타임 계층부(400)로 전달한다.
다음으로, 도 7은 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 시스템 웹 어플리케이션의 구성 예를 보인 블럭도이다.
도 7을 참조하며, 시스템 웹 어플리케이션(700)은, 웹 어플리케이션의 관리 및 설치를 위해 제공되는 웹 어플리케이션으로서, 사용자가 설치하는 다른 웹 어플리케이션을 관리하는 웹 어플리케이션 매니저(710)와, 사용자가 선택한 웹 어플리케이션의 다운로드를 수행하는 웹 어플리케이션 다운로더(720) 중 하나 이상을 포함할 수 있다.
웹 어플리케이션 매니저(710)는, 웹 어플리케이션 런타임 계층부(400) 위에서 동작하여, 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)에 접근하여 이동 통신 단말기에 설치된 웹 어플리케이션들에 대한 정보를 가져와 UI를 통해 사용자에게 제공하며, 사용자의 선택에 의해 특정 웹 어플리케이션의 구동이 요청되면, 이를 웹 어플리케이션 런타임 계층부(400)로 전달한다.
웹 어플리케이션 다운로더(720)는, 외부의 서버에 접속하여, 웹 어플리케이션의 다운로드를 수행한다.
이상과 같이 구현된 웹 어플리케이션 실행 장치는, 운영체제(100)를 탑재한 단말기에 설치되며, 상기 운영체제(100) 위에서 동작하여, 운영체제의 종류에 관계없이, 웹 어플리케이션에 대한 동일한 실행 환경을 제공한다.
본 발명에 의한 웹 어플리케이션 실행 장치는, 다수 웹 어플리케이션의 동시 실행과 단일 웹 어플리케이션에 대한 멀티 인스턴스를 함께 지원한다.
본 발명에 의한 웹 어플리케이션 실행 장치는 기본적으로 다수의 웹 어플리케이션의 동시 실행을 지원하는 멀티-태스킹 컨테이너로서, 웹 어플리케이션의 성격이나 종류 등에 따라 또는 특정 원칙에 따라서 웹 어플리케이션을 그룹핑하고, 그룹별로 웹 어플리케이션 실행 장치를 구동시킬 수 있다. 예를 들어, 일반 웹 어플리케이션과, 대기 화면에서 위젯 서비스를 수행하는 웹 어플리케이션을 각각 그룹핑하여, 실행되도록 할 수 있다. 이때, 각 컨테이너 자체는 단일 인스턴스로 구동되며, 이 안에서 다수의 웹 어플리케이션들이 동시 구동된다. 이때, 웹 어플리케이션 실행 장치의 모든 모듈은 웹 어플리케이션들을 멀티-태스킹으로 구동하기 위하여, 쓰레드 세이프(Thread Safe)하도록 구현된다.
이와 같이, 컨테이너별 단일-인스턴스로 구현함에 의하여, 멀티 인스턴스를 지원하지 않는 운영체제에서도 본 발명의 웹 어플리케이션 실행 장치는 네이티브 시스템의 특성에 구애 받지 않고 이식할 수 있다.
본 발명의 웹 어플리케이션 실행 장치는 웹 표준을 준수하여, 웹 어플리케이션이 실행될 때마다 윈도우를 생성하고, 랜더러 인스턴스를 생성하여 웹 어플리케이션의 디폴트 페이지 또는 요청 페이지를 실행한다. 또한, 하나의 웹 어플리케이션이 여러 윈도우를 생성하는 것도 가능한데, 이때 윈도우마다 랜더러 인스턴스가 생성되어 할당된다. 또한, 여러 웹 어플리케이션의 동시 실행이 가능하며, 하나의 웹 어플리케이션에 대해서도 멀티 인스턴스가 가능하다. 웹 어플리케이션의 모든 인스턴스들은 상기 컨텍스트 매니저(413)가 관리하며, 유저 인터액션 또는 시스템에 의해 발생하는 모든 이벤트는 이벤트 핸들러(415)에 의해 적정 웹 어플리케이션의 인스턴스로 전달된다.
본 발명에 의한 웹 어플리케이션 실행 장치에서, 안전하게 웹 어플리케이션을 설치하고 실행하기 위해서는, 웹 어플리케이션과 단말 자원 사이의 보안과, 웹 어플리케이션 사이의 보안이 해결되어야 한다.
웹 어플리케이션 사이의 보안은, 브라우저 엔진 모듈(510)에서 웹 어플리케이션 간의 상호 참조를 금지시킴에 의해 구현할 수 있다. 즉, 더미 실행 모듈(620)에 의해 로딩된 단일 프로세서상에서 다수의 웹 어플리케이션이 구동될 때, 각 웹 어플리케이션은 별도 쓰레드 상에 로딩된 브라우저 엔진 계층부(500) 상에서 구동된다. 이때, 각 웹 어플리케이션은 하나의 윈도우를 소유하게 되며, 웹 표준에 의하면, 해당 윈도우의 이름을 알 경우, 제한 없이 다른 웹 어플리케이션이 또 다른 웹 어플리케이션의 내용을 참조할 수 있게 되는데, 이때, 서로 다른 웹 어플리케이션이 서로의 웹 문서 객체에 접근하는 것을 제한하는 것이 바람직하다. 이는 상기 브라우전 엔진 모듈(510)의 스크립트 코어(513)를 수정함에 의해 구현될 수 있다.
그리고, 웹 어플리케이션과 단말 자원 사이의 보안은 상기 보안 계층부(300)를 통해 구현된다. 즉, 웹 어플리케이션의 실행 중 단말 자원 및 운영체제 기능에 대한 모든 접근 요청이 보안 계층부(300)를 통해 이루어지도록 하고, 상기 보안 계층부(300)가 상기 모든 접근 요청에 대해 접근 제어 규칙을 적용하여 접근을 허여 또는 거부하도록 함으로써, 불법적이거나 부적절한 접근 요청을 차단할 수 있다.
이상과 같이 구현된 웹 어플리케이션 실행 장치에 의해 실행되는 웹 어플리케이션(800)은, 다수의 페이지가 패키지로 묶여 함께 운영된다.
도 8은 본 발명에 적용되는 웹 어플리케이션의 구조를 나타낸 것으로서, 이를 참조하면, 웹 어플리케이션(800)은, 웹 어플리케이션을 구성하는 각 페이지를 구성하는 html, xhtml, css, java script 파일 등과 같은 소스 파일과, 상기 페이지에 삽입되는 이미지 등과 같은 리소스 파일로 이루어지는 웹 컨텐츠(810)와, 웹 어플리케이션 패키지에 포함되는 자료의 목록과, 자료 별 공개 여부, 해쉬 코드와 같은 자료 별 무결성 정보, 웹 어플리케이션의 실행 환경 정보(화면 크기, 타겟 CPU, 타겟 운영체제, 웹 어플리케이션 실행 장치의 버전 등)를 포함하는 구성 정보(Configuration 파일)(820)와, 해당 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보(830)를 포함한다. 여기서, 정책 정보(830)는 웹 어플리케이션 패키지 전체에 부여되는 기본 접근 권한 정보와, 웹 어플리케이션의 각 페이지 별로 부여되는 세부 접근 권한 정보를 포함할 수 있으며, 이는 보안 계층부(300)에서 단말의 자원, 예를 들어, 사진, 주소록, 단말 기능, 통화 기록 들에 대한 접근 제어 시 참조된다. 이러한 웹 어플리케이션은, 압축 파일 형태로 제공되며, 더하여, 웹 어플리케이션이 인증된 기관 또는 사업자를 통해 배포되는 것임을 증명하는 인증서를 더 포함할 수 있다.
더하여, 본 발명에 의한 웹 어플리케이션 실행 장치는, 웹 어플리케이션을 URL(Uniform Resource Locators) 형태의 웹 어플리케이션 식별 정보를 통해 식별하고 실행한다.
일반적으로, 웹 브라우저에서 사용되는 URL은 file://, http://, https://와 같은 프로토콜 스키마를 통해 웹 자원에 접근한다. 여기서, file://은 해당 URL의 웹 자원을 파일 시스템에서 가져오는 것을 의미하고, http://와 https://는 해당 URL의 웹 자원을 네트워크에서 가져오는 것을 의미한다. 본 발명에 의한 웹 어플리케이션 실행 장치는, 여기에 더하여, 웹 어플리케이션의 처리를 위한 프로토콜 스키마 httpa://를 새로 정의한다. 이 웹 어플리케이션용 프로토콜 스키마 httpa://는 다수의 페이지가 패키징된 웹 어플리케이션을 단말의 로컬 스토리지에서 검색하여 실행해야 함을 의미한다.
더하여, 본 발명에 있어서, URL형태의 웹 어플리케이션 식별정보는 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 컨텐츠 제공자의 도메인 명을 더 포함하여 구성할 수 있다. 이렇게 포함된 도메인 명은, 해당 웹 어플리케이션의 출처를 알 수 있도록 하면서, 추후 해당 웹 어플리케이션을 다운로드 받을 때 이용될 수 있다.
즉, 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, URL 형태의 웹 어플리케이션의 식별정보는 웹 어플리케이션의 실행을 의미하는 프로토콜 스키마와, 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과, 웹 어플리케이션 명으로 구성된다. 예를 들면, 웹 어플리케이션명이 application1.swa라고 하고, 컨텐츠 제공자의 도메인명이 www.abc.com 이라고 할 때, 그 URL은 httpa://www.abc.com/application1.swa로 표현될 수 있다. 여기서, 확장자 swa는 웹 어플리케이션의 패키지를 지칭하기 위해 임의로 지정된 것으로서, 변경가능하다. 이러한 웹 어플리케이션의 설치 정보는, 런타임 계층부(400)의 레지스트리 모듈(420)에 의하여 관리되는데, 도 3은 상기 레지스트리 모듈(420)에 의하여 관리되는 웹 어플리케이션의 설치 정보 관리 테이블을 예시한 도면이다.
도 9를 참조하면, 레지스트리 모듈(420)에 의해 관리되는 웹 어플리케이션의 설치 정보 관리 테이블은, 웹 어플리케이션을 식별하기 위한 URL 형태의 웹 어플리케이션 식별정보인 웹 어플리케이션 URL과, 해당 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 위치를 나타내는 컨텐츠 URL과, 해당 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 접근 권한 정보를 포함하여 이루어진다. 이러한 정보는 웹 어플리케이션을 설치할 때 레지스트리 모듈(420)에 의해 추출되어 저장된다.
더하여, 본 발명에 의한 웹 어플리케이션 실행 장치는, 다수의 페이지로 구성되는 웹 어플리케이션이 자신의 패키지에 포함되지 않은 다른 페이지, 예를 들어, 다른 웹 어플리케이션에 포함된 페이지 또는 공용으로 제공되는 페이지를 이용할 수 있는 페이지 연동 기능을 제공한다.
도 10은 본 발명에 의한 웹 어플리케이션 실행 장치에서 제공하는 페이지 연동 기능을 설명하는 모식도로서, 제1 웹 어플리케이션(810)이 제2 웹 어플리케이션(820)에 포함된 특정 페이지(821)를 가져와 그 기능을 사용할 수 있으며, 제2 웹 어플리케이션(820)이 제1 웹 어플리케이션(810)에 포함된 특정 페이지(811)를 가져와 그 기능을 사용할 수 있도록 제공하는 것이다. 이는 웹 어플리케이션의 페이지 상호 참조와는 다른 형태이다. 즉, 제1,2 웹 어플리케이션(810,820)이 서로 페이지를 상호 참조하는 것이 아니라, 서로의 페이지를 이용하는 것으로서, 예를 들어, 제1 웹 어플리케이션(810)이 제2 웹 어플리케이션(820)에 포함된 특정 페이지(821)를 가져와 표시할 때, 그 작업 결과는 제1 웹 어플리케이션(810)에만 적용된다.
이러한 페이지 연동 기능은 이식 계층부(200)의 협업 모듈(625)을 통해 제공되며, 제1,2 웹 어플리케이션(810,820)은 브라우저 엔진 계층부(500)의 협업 플러그 인(535)을 통해 협업 모듈(225)을 호출하여, 페이지 연동 기능을 이용한다.
도 11은 본 발명에 의한 웹 어플리케이션 실행 장치에서의, 제1 웹 어플리케이션(810)과 제2 웹 어플리케이션(820) 간의 페이지 연동을 처리하는 과정을 나타낸 메시지 흐름도이다.
도 11을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치에 있어서, 제1 웹 어플리케이션(810)이 실행되는 도중에, 제2 웹 어플리케이션(820)에 포함된 특정 페이지의 기능이 필요한 경우, 협업 모듈(225)의 페이지 연동 API를 호출하여, 호출할 페이지 URL 및 관련 인자를 전달한다(S1001).
이에 협업 모듈(225)은, 상기 호출된 페이지가 로컬 스토리지 내에 존재하는 지를 먼저 확인한 후, 존재하면, 해당 URL의 페이지를 가져와 단말의 화면에 표시한다(S1002).
단말의 화면에 표시된 페이지에서 사용자가 소정의 작업을 수행하면(S1003), 호출된 페이지에서의 작업 결과 데이터를 협업 모듈(225)로 반환된다(S1004).
협업 모듈(225)은, 반환된 호출된 페이지의 작업 결과 데이터를 제1 웹 어플리케이션(810)으로 전달한다.
이에 의하면, 제1 웹 어플리케이션(810)은 제2 웹 어플리케이션(820)에 포함된 특정 페이지를 불러와 그 페이지를 사용할 수 있게 된다.
따라서, 여러 웹 어플리케이션에서 공통으로 포함되어야 하는 기능을 공용 페이지로 미리 제작하여 두면, 웹 어플리케이션 개발자들이, 페이지 연동 기능을 통해 상기 공용 페이지를 호출하여 사용하도록 웹 어플리케이션을 구현하면 되므로, 동일 기능의 페이지에 대한 중복 제작을 방지하여, 웹 어플리케이션의 개발 시간 및 비용을 감소시킬 수 있다.
도 12는 본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법을 보인 흐름도이다.
도 12를 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치가 제1 웹 어플리케이션을 실행한다(S1201). 여기서, 제1 웹 어플리케이션의 실행 요청은, 단축아이콘 또는 대기화면 또는 웹 어플리케이션 매니저(710)을 통해 이루어질 수 있으며, 단축아이콘에 의한 실행 요청은, 실행 계층부(600)의 컨테이너 에이전트(610) 및 더미 실행 모듈(620)을 통해 웹 어플리케이션 런타임 계층부(400)로 전달된다. 이에 웹 어플리케이션 런타임 계층부(400)가 제1 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스를 생성한 후, 제1 웹 어플리케이션의 각 페이지를 랜더링하여 출력한다.
상기와 같이, 제1 웹 어플리케이션의 특정 페이지를 출력하는 중에, 제1 웹 어플리케이션에 포함되지 않은 다른 페이지의 연동이 필요한 경우(S1202), 연동 API가 호출된다(S1203). 상기 연동 API는 페이지 연동 기능을 호출하는 API로서, 호출할 페이지의 URL과, 인자들을 함께 전달할 수 있다. 여기서, 페이지 연동을 위해 호출되는 페이지는, 다른 웹 어플리케이션 패키지에 포함된 페이지일 수 도 있으며, 웹 어플리케이션 실행 장치에서 여러 웹 어플리케이션에 공통으로 요구되는 페이지를 하나의 콤포넌트로 미리 구성하여 제공하는 공용 페이지일 수 있다.
상기 연동 API의 호출은, 브라우저 엔진 계층부(500)의 플러그 인 관리 모듈(520) 및 협업 플러그 인(535)을 통해 이식 계층부(200)의 협업 모듈(225)로 전달된다.
이에 협업 모듈(225)은, 연동 API를 통해 전달된 호출할 페이지의 URL을 통해 호출할 페이지가 단말 내에 존재하는 지를 확인한다(S1204).
확인 결과, 호출할 페이지가 존재하면(S1205), 협업 모듈(225)은, 해당 페이지의 데이터를 가져와 화면에 표시한다(S1206).
사용자는 상기 표시된 페이지에서 임의의 작업을 수행할 수 있다(S1207).
상기 표시된 페이지에서 사용자의 작업이 완료되면(S1208), 협업 모듈(225)은 상기 작업 결과 데이터를 반환 받아, 앞서 연동 API를 호출한 제1 웹 어플리케이션으로 작업 결과 데이터를 전달한다(S1209).
제1 웹 어플리케이션은 다른 웹 어플리케이션의 특정 페이지에서 이루어진 작업 결과를 전달받아, 다음 동작을 실행하게 된다.
상기 단계(S1205)에서, 호출할 페이지가 존재하지 않으면, 오류 메시지를 표시하고 종료한다(S1210).
도 13은 본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, 웹 어플리케이션 실행 과정을 상세하게 나타낸 흐름도이다. 이는 도 12에 보인 단계(S1201)에 적용될 수 있다.
도 13을 참조하면, 본 발명에 의한 웹 어플리케이션 실행 장치는, 사용자의특정 웹 어플리케이션에 대한 실행 요청을 입력 받는다(S1301). 웹 어플리케이션의 실행 요청은, 웹 어플리케이션을 식별하기 위해 설정된 URL 형태의 웹 어플리케이션 식별 정보를 입력 받는 형태로 이루어진다. 여기서, URL 형태의 웹 어플리케이션 식별 정보는 앞서 설명한 바와 같이, 로컬 스토리지에 접근하여 웹 어플리케이션을 실행시키도록 정의된 프로토콜 스키머(httpa://)와, 웹 어플리케이션 파일명을 포함하며, 더하여, 웹 어플리케이션을 제작한 제작사 또는 웹 어플리케이션을 제공하는 컨텐츠 제공자의 도메인 명을 더 포함할 수 있다. 더하여, 상기 입력된 URL 형태의 웹 어플리케이션 식별 정보는 다수의 페이지로 이루어진 웹 어플리케이션에서 초기 실행하고자 하는 페이지의 파일 명을 더 포함할 수 있다.
상기와 같이, URL 형태의 웹 어플리케이션 식별 정보가 입력되면, 웹 어플리케이션 실행 장치는, 단말의 로컬 스토리지에 해당 URL로 식별되는 웹 어플리케이션이 존재하는 지를 확인한다(S1302). 이는 웹 어플리케이션 런타임 계층부(400)의 레지스트리 모듈(420)을 통해서, 도 3과 같은 웹 어플리케이션 설치 정보 관리 테이블을 검색함으로써 이루어질 수 있다. 즉, 레지스트리 모듈(420)을 통해 상기 도 3과 같은 웹 어플리케이션의 설치 정보 관리 테이블을 검색하여, 상기 입력된 URL로 식별되는 웹 어플리케이션이 설치되어 있는 지를 확인한다.
확인 결과, 입력된 URL 형태의 웹 어플리케이션 식별 정보에 해당하는 웹 어플리케이션이 존재하면, 웹 어플리케이션 실행 장치는, 해당 웹 어플리케이션을 실행한다(S1308). 더 구체적으로 설명하면, 웹 어플리케이션 실행 장치는, 레지스트리 모듈(420)을 통해 웹 어플리케이션의 설치 정보 관리 테이블로부터, 해당 웹 어플리케이션이 실제 위치하는 로컬 스토리지 위치(컨텐츠 URL)를 확인하고, 상기 확인된 위치에서 웹 어플리케이션의 컨텐츠를 가져와, 브라우저 엔진 계층부(500)를 통해 웹 어플리케이션의 각 페이지를 실행한다. 여기서, 입력된 URL이 웹 어플리케이션 명만을 기재하고 있는 경우에는, 미리 설정되어 있는 디폴트 페이지를 처음으로 실행하고, 입력된 URL에 웹 어플리케이션의 패키지 내에 특정 페이지의 파일 명을 포함하고 있는 경우에는, 해당 페이지를 처음으로 실행한다.
반대로, 입력된 URL 형태의 웹 어플리케이션 식별 정보에 대응하는 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 웹 어플리케이션 실행 장치는, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 문의한다(S1303).
웹 어플리케이션 실행 장치는, 사용자가 다운로드 받지 않는다고 선택하면, 그대로 종료하고, 사용자가 다운로드 받는다고 선택하면(S1304), 입력된 URL 형태의 웹 어플리케이션 식별 정보를 해당 웹 어플리케이션을 다운로드 받을 수 있는 네트워크 URL로 변환한다(S1305). 예를 들어, URL 형태의 웹 어플리케이션 식별 정보가 제작사의 도메인 명과, 웹 어플리케이션의 파일명을 포함하는 경우, 단지 프로토콜 스키마 httpa://를 http:// 또는 https://로 변환한다.
그리고 웹 어플리케이션 실행 장치는, 변환된 네트워크 URL을 이용하여, 네트워크상의 웹 서버에 접속한다(S1306). 여기서, 웹 서버는, 상기 URL에 포함된 도메인 명으로 식별되는 웹 서버로서, 해당 웹 어플리케이션을 제작한 제작사의 웹 서버 또는 해당 웹 어플리케이션을 제공하는 컨텐츠 제공자의 웹 서버가 될 수 있다.
웹 어플리케이션 실행 장치는, 접속한 웹 서버로부터 실행 요청된 웹 어플리케이션을 다운로드 받아, 단말의 로컬 스토리지에 설치한다(S1307). 여기서, 다운로드 과정은, OMA의 표준 규격에 따라 이루어질 수 있다. 그리고, 다운로드되는 웹 어플리케이션은, 도 8에 도시된 바와 같이, 압축 파일 형태의 웹 어플리케이션 패키지로, 설치 과정에서, 웹 컨텐츠(11)는 단말의 로컬 스토리지에 저장되고, 구조 정보(12) 중 일부 또는 전체와, 정책 정보(13)는 레지스트리 모듈(420)을 통해 단말의 보안 스토리지에 저장된다. 더하여, 상기 웹 어플리케이션의 설치 정보가 레지스트리 모듈(420)을 통해 도 3과 같은 웹 어플리케이션 설치 정보 관리 테이블에 등록된다.
이와 같이, 웹 어플리케이션의 설치가 완료되면, 웹 어플리케이션 실행 장치는, 설치된 웹 어플리케이션을 실행한다(S1308).
도 14은 본 발명에 의한 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법에 있어서, 실행 속도의 향상을 위한 처리 과정을 나타낸 흐름도이다. 즉, 본 발명에 의한 웹 어플리케이션 실행 방법은, 웹 어플리케이션의 실행 속도 향상을 위해서, 도 13의 단계(1308)에 하기의 과정을 더 추가할 수 있다.
도 14를 참조하면, 앞서 도 13에 보인 단계(S1308)을 통해 웹 어플리케이션을 실행하는 경우, 웹 어플리케이션 실행 장치는, 디폴트 페이지 또는 요청된 페이지를 분석, 구조화한 후, 랜더링하여 생성한 윈도우를 통해 출력한다(S1401).
상기 페이지를 출력하는 동안, 웹 어플리케이션 실행 장치는, 웹 어플리케이션에 포함되는 하나 이상의 다른 페이지를 추출한다(S1402). 하나 이상의 다른 페이지는 현재 출력된 페이지에서 연결되는 페이지일 수도 있으며, 상기 웹 어플리케이션에 포함된 나머지 페이지일 수도 있다. 즉, 매 페이지의 실행 시마다 각각 관련된 다른 페이지를 추출할 수도 있으며, 초기 페이지 실행 시에, 나머지 모든 페이지를 추출할 수도 있다.
그리고 웹 어플리케이션 실행 장치의 브라우저 엔진 모듈(510)은 추출한 하나 이상의 다른 페이지를 분석하여, DOM 트리 및 스타일 트리를 생성하고, 상기 DOM 트리 및 스타일 트리의 관련 노드를 연결하여, 해당 다른 페이지를 구조화한다(S1403). 즉, 웹 컨텐츠(11)을 분석하여, DOM(Document Object Model) 트리와 랜더러스타일 트리를 구성한 후, DOM 트리와 랜더러스타일 트리의 관련 노드를 연결하여, 랜더러 오브젝트를 생성하고, 생성한 랜더러 오브젝트를 통해 각 페이지를 구조화한다. 이렇게 구조화된 데이터는 바로 랜더링을 거쳐 화면으로 출력될 수 있다.
브라우저 엔진 모듈(510)은 상기 구조화된 상기 다른 페이지의 데이터를 바로 랜더링하여 출력하지 않고 저장한다(S1404). 이때, 상기 다른 페이지의 구조화 데이터를 시리얼라이즈화(Serialization)한 후 바이너리 파일로 저장한다.
그리고 나서, 브라우저 엔진 모듈(510)은, 다른 페이지에 대한 이벤트, 더 구체적으로는 다른 페이지로의 전환 요청이 발생하는 지를 확인한다(S1405).
다른 페이지에 대한 이벤트가 발생하면, 앞서 단계(S1404)에서 저장한 다른 페이지의 구조화 데이터를 가져와 랜더링하여 해당하는 윈도우를 통해 출력한다(S1406). 단계(S1406)에서는 페이지 전환 요청후, 분석 및 구조화 과정없이 바로 랜더링함으로써, 페이지 전환 시간이 단축될 수 있다.
상기 단계(S1402~S1406)는 웹 어플리케이션이 종료될 때까지 반복 수행될 수있다(S1407).
이에 의하면, 다수의 페이지로 구성되는 웹 어플리케이션의 실행 시, 단말기에 저장되어 있는 웹 어플리케이션의 각 페이지를 미리 분석 및 구조화함으로써, 웹 어플리케이션의 초기 실행 시간이나 페이지간 전환 시간을 단축시킴으로써, 웹 어플리케이션의 실행 속도를 향상시킬 수 있다.
본 발명에 따른 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
더하여, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.
본 발명에 따른 웹 어플리케이션 실행 장치 및 방법은, 이동 통신 단말 등에 적용되어, 운영 체제 별로 다른 형식을 가지는 인터페이스를 운영 체제의 종류에 무관하게 단일 형식으로 제공함으로써, 웹 어플리케이션이 동일한 방법으로 운영 체제가 관리하는 단말의 기능을 실행할 수 있도록 하며, 다수의 페이지로 구성되는 웹 어플리케이션을 실행하는데 있어서, 해당 웹 어플리케이션이 다른 웹 어플리케이션에 포함된 페이지를 호출하여, 해당 페이지의 작업 결과를 반환 받을 수 있도록 한다. 이에 의하면, 어플리케이션 제작자는 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 웹 어플리케이션을 개발할 수 있게 되며, 다른 여러 웹 어플리케이션에도 포함되는 페이지를 반복하여 구현할 필요 없이, 미리 작성되어 있는 다른 웹 어플리케이션의 페이지를 이용하여 웹 어플리케이션을 구현할 수 있게 되므로, 웹 어플리케이션의 제작 비용 및 시간을 감소시킬 수 있다.
100: 운영체제
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: 대기모드 에이전트 모듈
710: 웹 어플리케이션 매니저
720: 웹 어플리케이션 다운로더

Claims (25)

  1. 웹 어플리케이션에 포함되어 있지 않은 페이지의 연동을 위한 연동 API(Application Program Interface)를 제공하고, 상기 연동 API를 통해 연동할 페이지의 URL(Uniform Resource Location) 및 인자를 전달받아, 연동할 페이지를 화면에 표시하고, 표시된 페이지를 통해 이루어진 작업 결과 데이터를 반환하는 이식 계층부;
    실행 요청된 웹 어플리케이션의 각 페이지를 해석하여 실행하는 중에, 상기 웹 어플리케이션의 요구에 따라서 상기 연동 API를 호출하여, 상기 연동할 페이지의 URL 및 인자를 전달한 후, 상기 이식 계층부로부터 상기 연동할 페이지의 작업 결과 데이터를 반환 받아, 상기 웹 어플리케이션에 적용하는 브라우저 엔진 계층부; 및
    상기 브라우저 엔진 계층부로 상기 웹 어플리케이션의 실행 요청을 전달하고, 상기 웹 어플리케이션을 실행하는데 필요한 네트워크 및 UI를 제공하는 웹 어플리케이션 런타임 계층부를 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  2. 제1항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
    URL 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션 실행 요청을 입력받아, 상기 웹 어플리케이션이 로컬 스토리지에 존재하는 지를 확인하고, 확인 결과, 로컬 스토리지에 웹 어플리케이션이 존재하면, 웹 어플리케이션의 실행 명령을 상기의 브라우저 엔진 계층부로 전달하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  3. 제2항에 있어서, 상기 URL 형태의 웹 어플리케이션 식별 정보는
    로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와,
    상기 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과,
    상기 웹 어플리케이션의 파일 명을 포함하여 이루어지는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  4. 제1항에 있어서, 상기 웹 어플리케이션은
    웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 상기 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와,
    상기 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 및 웹 어플리케이션의 실행 환경 정보 중에서 하나 이상을 포함하는 구성 정보와,
    상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  5. 제2항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
    상기 로컬 스토리지에 상기 웹 어플리케이션이 존재하지 않는 경우, 사용자로부터 다운로드 여부를 확인하여, 사용자가 다운로드를 선택하면, 상기 URL 형태의 웹 어플리케이션이 식별 정보를 네트워크 URL로 변환한 후, 이를 통해 서버에 접속하여, 상기 웹 어플리케이션을 다운로드받아 설치하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  6. 제1항에 있어서,
    웹 어플리케이션의 실행 요청시, 상기 브라우저 엔진 계층부와 이식 계층부 및 웹 어플리케이션 런타임 계층부를 로딩한 후, 웹 어플리케이션의 실행 요청을 상기 웹 어플리케이션 런타임 계층 또는 브라우저 엔진 계층부로 전달하는 실행 계층부를 더 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  7. 제1항에 있어서,
    상기 웹 어플리케이션 및 상기 브라우저 엔진 계층부에서 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 호출하는 플러그 인의 설치 또는 실행 또는 로딩 전에, 인증서를 검증하고, 상기 웹 어플리케이션의 실행 중 상기 이식 계층부에 대한 접근을 접근 제어 규칙에 따라서 제어하는 보안 계층부를 더 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  8. 제1항에 있어서, 상기 브라우저 엔진 계층부는
    웹 표준 언어로 작성된 웹 어플리케이션의 각 페이지를 해석하여 실행시키는 브라우저 엔진 모듈;
    하나 이상의 플러그 인에 대한 다운로드, 설치, 설치된 플러그 인의 목록 관리, 업데이트, 및 플러그 인의 호출 요청에 대한 처리를 수행하는 플러그 인 관리 모듈; 및
    상기 플러그 인 관리 모듈에 의해 설치되고, 상기 플러그 인 관리 모듈을 통해 동작하여, 각각 웹 표준 이외의 단말의 자원 및 운영체제의 기능을 상기 이식 계층부를 통해 호출하여 그에 대한 응답을 반환하는 하나 이상의 플러그 인을 포함하여 이루어지는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  9. 제1항에 있어서, 이식 계층부는
    HTML과 관련된 기능 및 API를 제공하는 HTTP 모듈,
    XML 파싱 기능을 위한 API를 제공하는 XML 모듈,
    쓰레드 기능을 API형태로 제공하고 운영체제에 의해 제공되는 기능을 바이-패스하는 쓰레드(Thread) 모듈,
    UI(User Interface) 구현을 위해 필요한 윈도우 시스템의 기능을 API 형태로 제공하는 UI 백엔드(Backend) 모듈,
    보안 스토리지 기능을 API 형태로 제공하는 보안 스토리지 모듈,
    단말 자원에 대한 접근 인터페이스를 API 형태로 제공하는 리소스 모듈,
    단말 자원 이외에 단말에서 제공하는 OS를 API 형태로 제공하는 OS API 모듈,
    외부 장치에 존재하는 동기화 어플리케이션과의 연동 인터페이스를 API 형태로 제공하는 동기화(Sync) 모듈,
    운영체제에 존재하는 로컬 스토리지 기능을 API 형태로 제공하는 로컬 스토리지(Local Storage) 모듈 중에서 하나 이상을 더 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  10. 제6항에 있어서, 상기 웹 어플리케이션 런타임 계층부는
    웹 어플리케이션 인스턴스의 컨텍스트 관리 및 이벤트 핸들링, 실행 계층부로부터의 커맨드 처리를 수행하는 웹 어플리케이션 런타임 모듈;
    웹 어플리케이션 및 플러그 인의 설치 정보 및 웹 어플리케이션 실행 장치의 구조 정보를 관리하는 레지스트리 모듈;
    상기 브라우저 엔진 계층부에서 랜더링하는 영역 이외의 화면 영역에 대한 UI(User Interface) 및 사용자 입력을 처리하는 UI 엔진;
    웹 어플리케이션 실행 장치에서 사용할 네트워크를 설정하고 관리하는 네트워크 셀렉터; 및
    웹 어플리케이션을 실행 중에, 네트워크 연결이 끊긴 동안의 데이터를 로컬 스토리지에 저장하고, 네트워크가 연결되면 로컬 스토리지에 저장한 데이터와 외부 데이터에 대한 동기화를 수행하는 다이내믹 동기화 모듈을 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  11. 제6항에 있어서, 상기 실행 계층부는
    단축아이콘 또는 단말의 메뉴를 통한 웹 어플리케이션의 실행 요청에 따라서 동작하여, 더미 실행 모듈을 통해, 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 실행 계층부로 전달하는 컨테이너 에이전트;
    상기 컨테이너 에이전트에 의해 동작하여, 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부를 로딩하고, 상기 웹 어플리케이션 런타임 실행 계층부와 브라우저 엔진 계층부 및 이식 계층부가 로딩중이면, 상기 웹 어플리케이션 실행 명령을 웹 어플리케이션 런타임 실행 계층부로 전달하는 더미 실행 모듈; 및
    단말의 대기화면 관리자에 의해 로딩되어, 대기화면에서의 웹 어플리케이션 실행 명령을 상기 웹 어플리케이션 런타임 계층부로 전달하는 대기모드 에이전트 모듈을 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  12. 제7항에 있어서, 상기 보안 계층부는
    웹 어플리케이션 및 상기 플러그 인의 설치 또는 실행 시, 상기 웹 어플리케이션 및 플러그 인의 인증서를 검증하는 인증 모듈; 및
    웹 어플리케이션의 실행 중에, 접근 제어 규칙에 따라서, 상기 이식 계층부에 대한 접근을 제어하는 정책 모듈을 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  13. 제8항에 있어서, 상기 하나 이상의 플러그 인은
    단말 자원과 관련된 기능 호출을 이식계층으로 전달하는 리소스(Resource) 플러그 인과,
    웹 어플리케이션의 단말 OS 호출 기능을 이식 계층부에 전달하고, 웹 어플리케이션 런타임 계층부의 기능에 대한 접근 인터페이스를 제공하는 시스템 API 플러그 인과,
    웹 어플리케이션에 포함되지 않은 페이지에 대한 연동 기능과 관련된 호출을 이식 계층부로 전달하는 협업 플러그 인과,
    웹 어플리케이션의 동기화 에이전트와 관련된 기능 호출을 이식 계층부에 전달하는 동기화(Sync) 플러그 인 중에서 하나 이상을 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  14. 제10항에 있어서, 상기 웹 어플리케이션 런타임 모듈은
    상기 실행 계층부로부터 웹 어플리케이션의 실행과 관련된 명령을 전달받아 해석하여, 명령된 동작을 지시하는 커맨드 핸들러;
    상기 커맨드 핸들러 또는 상기 브라우저 엔진 계층부의 지시에 따라서 웹 어플리케이션 별로 윈도우 및 랜더러의 생성 및 소멸을 제어하는 컨텍스트 매니저;
    상기 컨텍스트 매니저에서 생성한 윈도우 및 웹 어플리케이션 실행 장치의 시스템 관련 이벤트를 처리하며, 윈도우에 대해 미리 정의된 상황과 관련된 이벤트가 발생하면 상기 UI 엔진에 전달하는 이벤트 핸들러; 및
    다수의 페이지를 포함하는 웹 어플리케이션 및 그의 각 페이지에 대한 라이프사이클을 관리하는 라이프사이클 매니저를 포함하여 이루어지는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  15. 제10항에 있어서, 상기 레지스트리 모듈은
    URL 형태의 웹 어플리케이션 식별 정보인 웹 어플리케이션 URL과, 상기 웹 어플리케이션 URL로 식별되는 웹 어플리케이션이 실제 저장되어 있는 로컬 스토리지의 위치를 나타내는 컨텐츠 URL과, 상기 웹 어플리케이션의 무결성 검증을 위한 해쉬 코드와, 상기 웹 어플리케이션의 접근 제어를 위한 정책 정보를 포함하는 웹 어플리케이션 설치 정보 관리 테이블을 구성하고 관리하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치.
  16. 제1항 내지 제15항 중 어느 한 항에 기재된 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치를 구비한 단말기.
  17. 웹 어플리케이션을 실행하는 단계;
    상기 웹 어플리케이션을 실행하는 중에, 상기 웹 어플리케이션에 포함되지 않은 다른 페이지와의 연동을 위한 연동 API를 호출하여, 연동할 페이지의 URL 및 인자를 전달하는 단계;
    상기 연동할 페이지가 단말 내에 존재하는 지를 확인하는 단계;
    상기 연동할 페이지가 존재하면, 상기 연동할 페이지를 실행하여 화면으로 표시하는 단계; 및
    상기 표시한 페이지를 통해 사용자 작업이 완료되면, 작업 결과 데이터를 상기 웹 어플리케이션으로 반환하는 단계를 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  18. 제17항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는
    URL(Uniform Resource Location) 형태의 웹 어플리케이션 식별 정보를 포함하는 웹 어플리케이션의 실행 요청을 전달받는 단계;
    단말에 상기 URL 형태의 웹 어플리케이션 식별 정보로 식별되는 웹 어플리케이션이 존재하는 지를 확인하는 단계; 및
    상기 웹 어플리케이션이 단말에 존재하면, 상기 단말에 저장된 웹 어플리케이션을 실행하는 단계를 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  19. 제18항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는,
    상기 웹 어플리케이션이 로컬 스토리지에 존재하지 않으면, 사용자에게 실행 요청된 웹 어플리케이션이 존재하지 않는다는 오류 메시지를 출력하고, 해당 웹 어플리케이션을 다운로드 받을 것인지를 확인하는 단계;
    사용자가 다운로드 받는다고 선택하면, 상기 URL 형태의 웹 어플리케이션 식별 정보를 네트워크를 통해 접속 가능한 네트워크 URL로 변환하는 단계; 및
    상기 변환된 네트워크 URL을 이용하여, 네트워크상의 서버에 접속하여, 상기 웹 어플리케이션을 다운로드 받고, 단말에 설치하는 단계를 더 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  20. 제18항에 있어서, 상기 URL 형태의 웹 어플리케이션 식별 정보는
    로컬 스토리지에 저장된 웹 어플리케이션을 가져와 실행하도록 정의된 프로토콜 스키마와,
    상기 웹 어플리케이션을 제공하는 웹 어플리케이션 제작사 또는 컨텐츠 제공자의 도메인 명과,
    상기 웹 어플리케이션의 파일 명을 포함하여 이루어지는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  21. 제18항에 있어서, 상기 웹 어플리케이션은
    웹 표준에 따라 웹 어플리케이션에 포함된 다수의 페이지를 구성하는 소스 파일과, 상기 페이지에 삽입되는 이미지를 포함하는 리소스 파일로 이루어지는 웹 컨텐츠와,
    상기 웹 어플리케이션에 포함되는 자료의 목록과, 자료별 공개 여부, 해쉬 코드와 같은 자료별 무결성 정보, 웹 어플리케이션의 실행 환경 정보를 포함하는 구성 정보와,
    상기 웹 어플리케이션이 접근할 수 있는 단말 자원의 범위를 지정하는 정책 정보를 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  22. 제18항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는,
    상기 웹 어플리케이션을 위한 윈도우 및 랜더러 인스턴스를 생성하는 단계;
    상기 웹 어플리케이션에 포함된 페이지 중에서, 지정된 페이지를 분석 및 구조화한 후, 랜더링하여 상기 생성한 윈도우로 출력하는 단계;
    상기 출력한 페이지 이외에 상기 웹 어플리케이션에 포함된 하나 이상의 다른 페이지를 추출하는 단계;
    상기 하나 이상의 다른 페이지를 분석 및 구조화하는 단계;
    상기 구조화된 다른 페이지를 저장하는 단계;
    상기 다른 페이지에 대한 이벤트 발생을 확인하는 단계;
    이벤트가 발생하면, 상기 구조화된 다른 페이지를 랜더링하여 상기 윈도우로 출력하는 단계를 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  23. 제18항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는,
    상기 웹 어플리케이션의 설치 또는 실행 전에, 상기 웹 어플리케이션의 인증서를 검증하여, 인증서 검증이 성공하면, 웹 어플리케이션의 설치 또는 실행을 계속하도록 하고, 인증서 검증이 성공하지 못하면, 사용자에게 설치 또는 실행 계속 여부를 확인하도록 하는 단계를 더 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  24. 제18항에 있어서, 상기 웹 어플리케이션을 실행하는 단계는,
    상기 웹 어플리케이션을 실행하는 중에, 단말의 자원 또는 운영체제의 기능이 호출되면, 웹 어플리케이션 별로 설정된 접근 제어 규칙에 따라서, 상기 단말의 자원 또는 운영체제의 기능에 대한 접근을 허여하거나 거부하는 단계를 더 포함하는 것을 특징으로 하는 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법.
  25. 제17항 내지 제24항 중 어느 한 항에 기재된 페이지 연동 기능을 구비한 웹 어플리케이션 실행 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
KR20100043033A 2010-05-07 2010-05-07 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 KR101482152B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20100043033A KR101482152B1 (ko) 2010-05-07 2010-05-07 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20100043033A KR101482152B1 (ko) 2010-05-07 2010-05-07 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110123513A KR20110123513A (ko) 2011-11-15
KR101482152B1 true KR101482152B1 (ko) 2015-01-14

Family

ID=45393664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100043033A KR101482152B1 (ko) 2010-05-07 2010-05-07 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101482152B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001612A (ko) * 2019-06-28 2021-01-06 한국전자통신연구원 보안도구와 클라우드 플랫폼 연동을 위한 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10192199B2 (en) 2011-11-16 2019-01-29 Microsoft Technology Licensing, Llc Enabling service features within productivity applications
CN111580817B (zh) * 2020-05-11 2023-08-15 山东汇贸电子口岸有限公司 一种可视化监控资源的前端实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020086808A (ko) * 2001-05-12 2002-11-20 누리네 주식회사 인터넷을 이용한 분산원격교육시스템 및 그 운영방법
US20100023953A1 (en) 2008-07-25 2010-01-28 Samsung Electronic Co., Ltd. Method and apparatus for executing application
KR20110122996A (ko) * 2010-05-06 2011-11-14 에스케이플래닛 주식회사 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020086808A (ko) * 2001-05-12 2002-11-20 누리네 주식회사 인터넷을 이용한 분산원격교육시스템 및 그 운영방법
US20100023953A1 (en) 2008-07-25 2010-01-28 Samsung Electronic Co., Ltd. Method and apparatus for executing application
KR20110122996A (ko) * 2010-05-06 2011-11-14 에스케이플래닛 주식회사 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001612A (ko) * 2019-06-28 2021-01-06 한국전자통신연구원 보안도구와 클라우드 플랫폼 연동을 위한 방법 및 장치
KR102209993B1 (ko) 2019-06-28 2021-02-01 한국전자통신연구원 보안도구와 클라우드 플랫폼 연동을 위한 방법 및 장치
US11159577B2 (en) 2019-06-28 2021-10-26 Electronics And Telecommunications Research Institute Method and apparatus for interworking of cloud platform and security tools

Also Published As

Publication number Publication date
KR20110123513A (ko) 2011-11-15

Similar Documents

Publication Publication Date Title
KR101482150B1 (ko) 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법
KR101453742B1 (ko) 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
KR101482151B1 (ko) 웹 어플리케이션 실행 장치 및 방법
KR101482152B1 (ko) 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법
KR101482149B1 (ko) 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체
US9785560B2 (en) Scene-isolated internet application
Jaygarl et al. Professional Tizen Application Development
US20200356721A1 (en) Rendering Based on a Document Object Model
AFREEN Mobile Applications Development
KR101460515B1 (ko) 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체
Hartman et al. Deploying Applications Natively
CN116932126A (zh) 一种应用嵌入方法、装置、终端、介质及程序产品
KR20150097181A (ko) 애플리케이션 개발 환경 제공 시스템
CN115168007A (zh) 用于跨平台的应用程序迁移的方法、设备和程序载体
KR20150097190A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150097201A (ko) 애플리케이션 개발 환경 제공 시스템
Ciliberti Mobile, Social, and Cloud Technologies
KR20150097179A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150099051A (ko) 애플리케이션 개발 환경 제공 장치
KR20150097178A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150099011A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150099021A (ko) 애플리케이션 개발 환경 제공 시스템
KR20150099285A (ko) 애플리케이션 개발 환경 제공 장치
KR20150099185A (ko) 애플리케이션 개발 환경 제공 장치
KR20150099048A (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