KR20130095668A - 하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치 - Google Patents

하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치 Download PDF

Info

Publication number
KR20130095668A
KR20130095668A KR1020130011044A KR20130011044A KR20130095668A KR 20130095668 A KR20130095668 A KR 20130095668A KR 1020130011044 A KR1020130011044 A KR 1020130011044A KR 20130011044 A KR20130011044 A KR 20130011044A KR 20130095668 A KR20130095668 A KR 20130095668A
Authority
KR
South Korea
Prior art keywords
interface layer
request
web application
hybrid
web
Prior art date
Application number
KR1020130011044A
Other languages
English (en)
Other versions
KR102020045B1 (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 US13/770,549 priority Critical patent/US8966508B2/en
Publication of KR20130095668A publication Critical patent/KR20130095668A/ko
Application granted granted Critical
Publication of KR102020045B1 publication Critical patent/KR102020045B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

하이브리드 웹 어플리케이션 실행 장치 및 방법이 개시된다. 하이브리드 웹 어플리케이션은 시스템 API 호출과 표준 웹 언어로 작성된다. 하이브리드 웹 어플리케이션 실행 장치는, 시스템 API 호출에 대응되는 처리를 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하고, 표준 웹 언어에 대응되는 처리를 수행하는 웹 사용자 인터페이스 계층, 웹 사용자 인터페이스 계층의 요청에 따라 시스템 API 호출에 대응되는 처리를 크로스 플랫폼 시스템 서비스 인터페이스 계층에 요청하고, 시스템 API 호출에 대응되는 처리의 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층로부터 동기 또는 비동기적으로 수신하여 웹 사용자 인터페이스 계층으로 전달하는 하이브리드 웹 어플리케이션 인터페이스 계층 및 하이브리드 웹 어플리케이션 인터페이스 계층의 요청에 기초해 상기 시스템 API에 대응된 플랫폼 의존적 동작을 수행하는 크로스 플랫폼 시스템 서비스 인터페이스 계층을 포함하여 구성될 수 있다.

Description

하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치{Method for executing hybirid web application and apparatus therefor}
본 발명은 하이브리드 웹 어플리케이션에 관한 것으로, 더욱 상세하게는 다종의 플랫폼에 비의존적으로 동작할 수 있는 하이브리드 웹 어플리케이션의 구조와, 이에 기초한 하이브리드 웹 어플리케이션의 실행 방법 및 하이브리드 웹 어플리케이션의 동작 장치에 관한 것이다.
스마트 기기의 확산과 함께 다양한 어플리케이션들을 빠르게 개발하여 제공할 필요성이 높아지고 있다.
모바일 어플리케이션 개발의 전통적인 방식은 네이티브(native) 어플리케이션 개발 방식이다. 특정 플랫폼에서 제공하는 라이브러리(library)에 기반하여 어플리케이션을 개발하는 이 방식은 단말 자원에 대한 접근성이 뛰어나 화려한 효과나 빠른 화면 전환 등 좋은 성능을 발휘하는 데에 적합하다.
그러나 다양한 모바일 플랫폼들(예컨대, Apple의 iOS, Google의 Andriod 등)의 등장으로 인해 어플리케이션의 플랫폼 종속성이라는 문제가 대두되었고, 이에 대한 대안으로서 모바일 브라우저(browser)에 기반한 웹 어플리케이션(web application) 개발 방식이 주목 받게 된다.
웹 어플리케이션은 사용을 위한 별도의 설치가 필요 없고 주기적인 업데이트 없이도 항상 업그레이드된 기능을 사용할 수 있는 등 다양한 장점을 갖고 있으나, 웹에 기반해 있는 특성 탓에 단말 기능을 직접 제어하거나 활용하는 것이 불가능하고, 브라우저의 특성에 어플리케이션의 성능이 종속적이란 단점도 동시에 지니고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 네이티브 어플리케이션의 장점과 웹 어플리케이션의 장점을 복합적으로 가지는 하이브리드 웹 어플리케이션(hybrid web application)의 개념을 제공하고, 하이브리드 웹 어플리케이션을 실행시키기 위한 소프트웨어 아키텍쳐 및 이를 구비한 하이브리드 웹 어플리케이션 실행 장치를 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 하이브리드 웹 어플리케이션을 실행시키기 위한 소프트웨어 아키텍쳐 및 이에 기초한 하이브리드 웹 어플리케이션 실행 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명은, 시스템 API 호출(system API call)과 표준 웹 언어로 작성된 하이브리드 웹 어플리케이션을 실행하는 장치로서, 상기 시스템 API 호출에 대응되는 처리를 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하고, 상기 표준 웹 언어에 대응되는 처리를 수행하는 웹 사용자 인터페이스 계층; 상기 웹 사용자 인터페이스 계층의 요청에 따라 상기 시스템 API 호출에 대응되는 처리를 크로스 플랫폼 시스템 서비스 인터페이스 계층에 요청하고, 상기 시스템 API 호출에 대응되는 처리의 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층로부터 동기 또는 비동기적으로 수신하여 상기 웹 사용자 인터페이스 계층으로 전달하는 하이브리드 웹 어플리케이션 인터페이스 계층; 및 상기 하이브리드 웹 어플리케이션 인터페이스 계층의 요청에 기초해 상기 시스템 API에 대응된 플랫폼 의존적 동작을 수행하는 크로스 플랫폼 시스템 서비스 인터페이스 계층을 포함하는 하이브리드 웹 어플리케이션의 실행 장치를 제공한다.
여기에서, 상기 시스템 API는 하드웨어를 제어하는 API 또는 운영체제가 관리하는 정보에 접근하는 API일 수 있다.
여기에서, 상기 표준 웹 언어는 자바 스크립트(Java Script), HTML(HyperText Markup Language) 및 CSS(Cascading Style Sheet) 중 적어도 하나를 포함할 수 있다.
여기에서, 상기 웹 사용자 인터페이스 계층은, 상기 웹 표준 언어에 따른 처리를 수행하기 위한 적어도 하나의 웹 엔진(web engine) 및 상기 하이브리드 웹 어플리케이션에 포함된 상기 시스템 API 호출를 분리하여 상기 시스템 API 호출에 따른 처리를 상기 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하는 스크립트 엔진을 포함할 수 있다.
여기에서, 상기 하이브리드 웹 어플리케이션 인터페이스 계층은, 상기 웹 사용자 인터페이스 계층의 요청에 따라 상기 시스템 API를 처리하는 시스템 API 처리부, 상기 시스템 API 처리부의 요청에 따라 상기 시스템 API 수행 요청을 생성하여 인터페이스 서비스 요청 중개부로 전달하는 인터페이스 서비스 요청 생성부, 상기 인터페이스 서비스 요청 생성부로부터 수신된 상기 시스템 API 수행 요청을 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로 중개하는 인터페이스 서비스 요청 중개부 및 상기 인터페이스 서비스 요청 중개부를 통하여 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로 전달된 상기 시스템 API 수행 요청의 처리 결과 수신을 관리하는 인터페이스 서비스 동기화 관리부를 포함할 수 있다.
이때, 상기 인터페이스 서비스 요청 중개부의 상기 시스템 API 수행 요청은 동기식 또는 비동기식 중 하나이며, 상기 인터페이스 서비스 동기화 관리부는 상기 시스템 API 수행 요청에 대한 처리 결과를 동기식 또는 비동기식 중 하나의 방식으로 상기 인터페이스 서비스 요청 중개부가 수신할 수 있도록 상기 상기 인터페이스 서비스 요청 중개부를 관리하도록 구성될 수 있다.
여기에서, 상기 크로스 플랫폼 서비스 인터페이스 계층은, 상기 하이브리드 웹 어플리케이션 인터페이스 계층과 HTTP(HyperText Transfer Protocol) 프로토콜을 이용하여 상기 시스템 API의 처리 요청과 처리 결과를 송수신하는 웹 서버(web server)를 포함할 수 있다.
이때, 상기 웹 서버는 다른 단말에 설치된 하이브리드 웹 어플리케이션 인터페이스 계층과 HTTP 포로토콜을 이용하여 시스템 API의 처리 요청과 처리 결과를 송수신하도록 구성될 수 있다.
이때, 상기 크로스 플랫폼 서비스 인터페이스 계층은, 상기 웹 서버를 통하여 전달된 상기 시스템 API 처리 요청을 처리하는 시스템 인터페이스부를 추가로 포함할 수 있다. 상기 상기 시스템 인터페이스부는 상기 웹 서버를 통해 전달되는 시스템 API 처리 요청을 수신하는 시스템 인터페이스 요청 처리부 및 상기 시스템 인터페이스 요청 처리부로부터 전달된 시스템 API 처리 요청을 플랫폼 의존적 API로 매핑하고, 매핑된 플랫폼 의존적 API로 호출하여 시스템 API 처리 요청을 처리하는 시스템 인터페이스 연동부를 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명은, 웹 사용자 인터페이스 계층, 하이브리드 웹 어플리케이션 인터페이스 계층 및 크로스 플랫폼 시스템 서비스 인터페이스 계층을 포함한 플랫폼의 하이브리드 웹 어플리케이션 실행 방법으로서, 상기 웹 사용자 인터페이스 계층에서, 시스템 API 호출(system API call)과 표준 웹 언어로 작성된 상기 하이브리드 웹 어플리케이션을 해석하여, 상기 시스템 API 호출에 대응되는 처리를 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하고, 상기 표준 웹 언어에 대응되는 처리를 수행하는 웹 사용자 인터페이싱 단계; 상기 하이브리드 웹 어플리케이션 인터페이스 계층에서, 상기 웹 사용자 인터페이스 계층의 요청에 기초한 상기 시스템 API 호출에 대한 처리를 크로스 플랫폼 시스템 서비스 인터페이스 계층에 요청하고, 상기 시스템 API 호출에 대한 처리 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층로부터 동기 또는 비동기적으로 수신하여 상기 웹 사용자 인터페이스 계층으로 전달하는 하이브리드 웹 어플리케이션 인터페이싱 단계; 및 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층에서, 상기 하이브리드 웹 어플리케이션 인터페이스 계층의 요청에 기초해 상기 시스템 API에 대응된 플랫폼 의존적 동작을 수행하는 크로스 플랫폼 시스템 서비스 인터페이싱 단계를 포함한 하이브리드 웹 어플리케이션의 실행 방법을 제공한다.
여기에서, 상기 시스템 API는 하드웨어를 제어하는 API 또는 운영체제가 관리하는 정보에 접근하는 API일 수 있다.
여기에서, 상기 표준 웹 언어는 자바 스크립트(Java Script), HTML(HyperText Markup Language) 및 CSS(Cascading Style Sheet) 중 적어도 하나를 포함할 수 있다.
여기에서, 상기 웹 사용자 인터페이싱 단계는 적어도 하나의 웹 엔진(web engine)을 이용하여 상기 웹 표준 언어에 대응되는 처리를 수행하고, 상기 시스템 API 호출에 대응되는 처리를 상기 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하도록 구성될 수 있다.
여기에서, 상기 하이브리드 웹 어플리케이션 인터페이싱 단계는, 상기 웹 사용자 인터페이스 계층로부터의 상기 시스템 API 호출에 대응되는 처리 요청에 기초하여 시스템 API 수행 요청을 생성하는 단계; 생성된 상기 시스템 API 수행 요청을 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로 전달하는 단계; 및 전달된 상기 시스템 API 수행 요청의 처리 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로부터 수신하는 단계를 포함할 수 있다.
이때, 상기 시스템 API 수행 요청에 대한 상기 시스템 API 수행 요청의 처리 결과의 수신은 동기식 또는 비동기식 인터페이스 방식을 이용하도록 구성될 수 있다.
여기에서, 상기 크로스 플랫폼 서비스 인터페이스 계층과 상기 하이브리드 웹 어플리케이션 인터페이스 계층은 HTTP 포로토콜을 이용하여 상기 시스템 API의 처리 요청과 처리 결과를 송수신하도록 구성될 수 있다.
여기에서, 상기 하이브리드 웹 어플리케이션 인터페이스 계층은 다른 단말의 크로스 플랫폼 서비스 인터페이스 계층과 HTTP 포로토콜을 이용하여 시스템 API의 처리 요청과 처리 결과를 송수신하도록 구성될 수 있다.
이때, 상기 크로스 플랫폼 서비스 인터페이싱 단계는 상기 하이브리드 웹 어플리케이션 인터페이스 계층으로부터 전달되는 시스템 API 처리 요청을 플랫폼 의존적 API로 매핑하는 단계; 및 매핑된 플랫폼 의존적 API로 호출하여 시스템 API 처리 요청을 처리하는 단계를 포함하여 구성될 수 있다.
본 발명에 따른 하이브리드 웹 어플리케이션 실행 방법 및 장치를 이용하여 종래 네이티브 어플리케이션 및 웹 어플리케이션 대신에 하이브리드 웹 어플리케이션을 활용할 수 있다.
하이브리드 웹 어플리케이션은 다음과 같은 장점을 가질 수 있다.
첫째, 개발자는 웹 표준 언어를 기반으로 플랫폼 독립적인 하이브리드 웹 어플리케이션을 손쉽게 개발하여 다양한 단말과 플랫폼 환경에 제공할 수 있으며, 사용자는 인터넷상의 다양한 데이터와 개방형 API, 클라우드 등을 활용한 복합적인 서비스들을 하이브리드 어플리케이션의 형태로 제공받을 수 있다.
둘째, 하이브리드 웹 어플리케이션 방식을 이용하면 웹 기술에 기반하면서도 네이티브 어플리케이션과 동일한 성능과 기능을 가진 어플리케이션이 개발될 수 있다. 또한, 다양한 인터넷 개방형 API를 연계하는 매쉬업 응용들을 손쉽게 개발하고 사용할 수 있도록 제공할 수 있다.
셋째, 하이브리드 웹 어플리케이션은 네이티브 어플리케이션과 마찬가지로 패키징되어 앱스토어 등을 통해 판매되고 설치될 수 있다는 장점을 가진다.
넷째, 개발자는 플랫폼에 종속된 언어와 기능을 학습하지 않고, 웹 표준 언어와 기술을 이용하면서 표준 하이브리드 웹 어플리케이션을 위해 정의된 시스템 API들만을 학습하여 다양한 단말 자원과 시스템 자원을 활용하는 어플리케이션들을 손쉽게 개발할 수 있다.
다섯째, 하이브리드 웹 어플리케이션이 보편화될 경우, 폭발적으로 늘어나는 단말 하드웨어 특성과 플랫폼의 차이로 인한 복잡성의 문제를 해결할 수 있으며, 다양한 단말 제어 기능을 추상화(abstraction)하여 제공함으로써 개발 효율성과 편의성을 확장시킬 수 있다.
여섯째, 하이브리드 웹 어플리케이션은 내장 웹 서버를 이용함으로써 서로 다른 단말 간에도 제어 정보의 교환 및 원격 제어가 가능하므로, M2M(Machine to Machine), D2D(Device to Device) 등의 응용에도 활용이 가능하다.
도 1은 본 발명에 따른 하이브리드 웹 어플리케이션과 종래 네이티브/웹 어플리케이션의 장단점을 비교하기 위한 표이다.
도 2는 본 발명에 따른 하이브리드 웹 어플리케이션을 실행하는 플랫폼들의 연동을 설명하기 위한 개념도이다.
도 3은 본 발명에 따른 하이브리드 웹 어플리케이션 실행 장치의 소프트웨어 계층 구조를 설명하기 위한 블록도이다.
도 4는 본 발명에 따른 하이브리드 웹 어플리케이션 실행을 위한 웹 사용자 인터페이스 계층의 세부 구성을 설명하기 위한 블록도이다.
도 5는 본 발명에 따른 하이브리드 웹 어플리케이션 실행을 위한 하이브리드 웹 어플리케이션 인터페이스 계층의 세부 구성을 설명하기 위한 블록도이다.
도 6은 본 발명에 따른 하이브리드 웹 어플리케이션 인터페이스 계층과 크로스 플랫폼 시스템 서비스 인터페이스 계층간의 처리 요청 전송과 처리 결과 회신 과정을 설명하기 위한 개념도이다.
도 7은 본 발명에 따른 하이브리드 웹 어플리케이션 실행을 위한 크로스 플랫폼 시스템 서비스 인터페이스 계층의 세부 구성을 설명하기 위한 블록도이다.
도 8은 본 발명에 따라 서로 다른 단말에 위치한 하이브리드 웹 어플리케이션 인터페이스 계층과 크로스 플랫폼 시스템 인터페이스 계층간의 연동을 설명하기 위한 개념도이다.
도 9는 본 발명에 따른 하이브리드 웹 어플리케이션의 실행 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
이하의 설명은 스마트 폰, 모바일 기기를 비롯한 데스크탑, 소형 기기까지 많은 다양한 단말 환경에서 플랫폼 독립적인 하이브리드 웹 어플리케이션을 제공하기 위한 방법과 그 장치에 관한 것이다.
이하의 설명에서 '플랫폼'은 시스템의 기본이 되는 프로세서 및 하드웨어 장치들과 해당 시스템을 구동하는 운영체제를 포괄하는 개념이며, 단말 장치는 특정 플랫폼에 기반하여 실제 구현된 장치를 의미한다. 이하의 설명에서 플랫폼과 단말은 혼용되어 사용될 수도 있으나, 단말은 플랫폼이 기초하는 하드웨어적 특성을 강조하는 의미로서 이용되며, 플랫폼은 보다 포괄적인 용어로서 사용된다.
본 발명에 따른 하이브리드 어플리케이션의 개념 및 동작 개념
본 발명은 다종의 플랫폼과 단말 장치의 특성에 독립적인 하이브리드 웹 어플리케이션을 제공하기 위한 방법과 그 장치에 관한 것이다.
하이브리드 웹 어플리케이션 방식을 이용하면 플랫폼 독립적인 어플리케이션 개발이 가능하며, 웹 기술을 기반으로 네이티브 어플리케이션과 동일한 기능을 갖는 어플리케이션 개발을 할 수 있으며, 다양한 인터넷 개방형 API(open API)를 연계하는 매쉬업 응용들을 손쉽게 개발하고 사용할 수 있도록 제공할 수 있다.
본 발명에서 제시되는 하이브리드 웹 어플리케이션은 시스템 API(Application Programming Interface) 호출을 포함하는 웹 표준 언어로 작성될 수 있다. 따라서, 하이브리드 웹 어플리케이션은 종래의 웹 어플리케이션과 동일하게 플랫폼 비의존적(platform-independent)인 부분은 웹 표준 언어로서 작성될 수 있고, 플랫폼 의존적인(platform-dependent) 부분은 시스템 API를 호출하도록 작성될 수 있다. 예컨대, 웹 표준 언어는 HTML(HyperText Markup Language), CSS(Cascading Style Sheet), 자바 스크립트(Javascript) 등을 포함할 수 있다. 시스템 API는 하이브리드 웹 어플리케이션이 실행되는 플랫폼 또는 다른 플랫폼의 자원(resource)들에 대한 제어(control) 및 접근(access)을 가능하게 위해서 정의되는 API들이다. 여기에서, 플랫폼의 자원은 예컨대 하드웨어(예컨대, 카메라, 가속도 센서, GPS 센서 등) 제어 및 플랫폼의 운영체제가 관리하는 정보들(예컨대, 단말이 스마트폰인 경우, 연락처(contacts) 정보, 일정표(calendar) 정보 등)등을 포함할 수 있다.
도 1은 본 발명에 따른 하이브리드 웹 어플리케이션과 종래 네이티브/웹 어플리케이션의 장단점을 비교하기 위한 표이다.
도 1을 참조하면, 네이티브(native) 어플리케이션은 특정 플랫폼에서 제공하는 라이브러리에 기반하여 개발되므로 플랫폼 자원에 대한 접근이 뛰어나 화려한 효과나 빠른 화면 전환 등 좋은 성능을 발휘하는 데에 적합하다. 또한, 네이티브 어플리케이션은 바이너리(binary) 파일의 형태로 배포가 가능하므로 앱 스토어(app store)를 통한 온라인 판매 또는 오프라인 판매가 용이한 장점을 가진다. 반면, 플랫폼 의존적인 개발 방식을 취함으로써 소프트웨어의 업그레이드가 용이하지 않으며, 코드의 재사용성(reusability)이 낮다는 단점이 존재한다.
반면, 웹 어플리케이션은 상술된 네이티브 어플리케이션의 장점 및 단점과 상반되는 장점 및 단점을 가질 수 있다. 대표적으로, 웹 어플리케이션은 사용을 위한 별도의 설치가 필요 없고 주기적인 업데이트 없이도 항상 업그레이드된 기능을 사용할 수 있는 등 다양한 장점을 갖고 있으나, 웹에 기반해 있는 특성 탓에 단말 기능을 직접 제어하거나 활용하는 것이 불가능하고, 웹 브라우저(web browser)의 특성에 어플리케이션의 성능이 종속적이란 단점도 동시에 지니고 있다.
하이브리드 웹 어플리케이션은 두 어플리케이션 방식의 장점을 채용하고자 하였다. 네이티브 앱과 웹 어플리케이션을 합성한 형태의 하이브리드 웹 어플리케이션 방식에서는 웹 표준 기술(HTML, CSS, Javascript)을 사용하여 프로그래밍을 하면서, 네이티브 어플리케이션과 같이 패키징되어 앱스토어 등을 통해 판매도 가능하므로 수익성도 보장이 된다.
또한, 본 발명에 따른 하이브리드 웹 어플리케이션은 웹 표준 언어를 통해 프로그래밍될 수 있으므로, 개발에 소요되는 시간과 비용을 경감할 수 있다. 또한, 본 발명에 따른 하이브리드 웹 어플리케이션은 플랫폼 의존적인 하드웨어 제어 또는 운영체제 관리 정보에 대한 접근 등을 위해서 시스템 API 호출을 이용하게 되므로, 네이티브 앱과 유사한 수준의 성능을 가질 수 있다.
특히, 본 발명에 따른 하이브리드 웹 어플리케이션은 하이브리드 웹 어플리케이션이 현재 실행되고 있는 플랫폼이 아닌 다른 플랫폼의 하드웨어 및 운영체제를 제어할 수 있는 구조를 취할 수 있다.
도 2는 본 발명에 따른 하이브리드 웹 어플리케이션을 실행하는 플랫폼들의 연동을 설명하기 위한 개념도이다.
도 2를 참조하면, 본 발명에 따른 하이브리드 웹 어플리케이션은 하이브리드 웹 어플리케이션이 실행되는 플랫폼들간에 서로 다른 플랫폼의 하드웨어 자원 및 운영체제 자원을 액세스하도록 구성될 수 있다.
예컨대, 본 발명에 따른 하이브리드 웹 어플리케이션은 다양한 단말(200)에 적용되어 구동되며, 유무선 네트워크를 통해 연결되는 다양한 단말(201,202)에서 제공되는 후술되는 크로스 플랫폼 서비스 인터페이스 계층을 HTTP(HyperText Transfer Protocol) 프로토콜을 이용하여 상호 호출할 수 있다.
따라서, 본 발명에 따른 하이브리드 웹 어플리케이션 실행 장치인 단말들은 서로의 자원을 공유하여 가상의 하이브리드 응용 클라우드(270)를 구성하고 각각 단말의 고유 자원과 서비스들을 상호 제어하고 활용할 수 있게 된다.
하이브리드 어플리케이션 실행 장치
도 3은 본 발명에 따른 하이브리드 웹 어플리케이션 실행 장치가 탑재한 소프트웨어 계층들을 설명하기 위한 블록도이다.
도 3을 참조하면, 하이브리드 웹 어플리케이션(10)은 웹 사용자 인터페이스 계층(100), 하이브리드 웹 어플리케이션 인터페이스 계층(200) 및 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)을 이용하여 실행된다.
하이브리드 웹 어플리케이션(10)은 웹 표준 언어(11)로 작성되며, 적어도 하나의 시스템 API 호출(sytem API call)들(12)을 포함하여 작성될 수 있다. 이때 하이브리드 웹 어플리케이션을 작성하기 위한 웹 표준 언어는 자바 스크립트(JavaScript), HTML(HyperText Markup Language) 및 CSS(Cascading Style Sheet)를 포함하며, 이들에 상응하는 기타 다른 웹 표준 언어 및 향후 새롭게 개발될 웹 표준 언어들도 포함한다. 이미 상술된 바와 같이, 시스템 API는 하이브리드 웹 어플리케이션이 실행되는 플랫폼 또는 다른 플랫폼의 자원에 대한 제어 및 접근(하드웨어(예컨대, 카메라, 가속도 센서, GPS 센서 등) 제어 및 플랫폼이 관리하는 정보들(예컨대, 플랫폼이 스마트폰인 경우, 연락처(contacts) 정보, 일정표(calendar) 정보 등)에 대한 접근(access))이 가능하도록 본 발명에 따른 하이브리드 웹 어플리케이션을 위해 정의된다.
또한, 상술된 웹 사용자 인터페이스 계층(100), 하이브리드 웹 어플리케이션 인터페이스 계층(200) 및 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)은 각각의 계층이 가지는 대표적 기능들에 의해서 명칭이 부여된 것으로, 명칭에 의해서 각각의 계층들이 한정되는 것은 아니다. 하이브리드 웹 어플리케이션(10) 및 상기 계층들(100,200,300)은 단말의 메모리부에 저장되어 프로세서(processor)에 의해서 실행될 수 있다. 이때, 각각의 계층들이 엄밀하게 분리되어 각각의 모듈로서 존재할 수도 있으며, 일부 계층들이 각각의 기능을 유지한채 하나의 모듈로서 병합되어 존재할 수도 있을 것이다.
어플리케이션의 배포(distribution)의 측면에서, 상술된 하이브리드 웹 어플리케이션(10)은 바이너리 파일의 형태을 취할 수 있다. 또한, 상기 하이브리드 웹 어플리케이션(10)은 웹 사용자 인터페이스 계층(100), 하이브리드 웹 어플리케이션 인터페이스 계층(200) 및 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)들 전부 또는 일부와 함께 하나의 어플리케이션 패키지(application package) 형태로 앱 스토어를 통한 온라인 배포 또는 오프라인 배포가 가능하다. 또 하나의 배포 방식으로, 상술된 계층들(100,200,300)과 하이브리드 웹 어플리케이션(10)은 분리되어 배포가 가능하다. 즉, 상술된 계층들(100,200,300)이 먼저 플랫폼에 설치된 경우에는 하이브리드 웹 어플리케이션만을 온라인 배포 또는 오프라인 배포 하는 것도 가능하다. 물론, 상술된 계층들(100,200,300)도 하이브리드 어플리케이션과 별개로서 온라인 배포 또는 오프라인 배포가 가능하다.
이하에서는, 상술된 각각의 계층들의 역할과 세부 구성에 대해서 설명한다.
1)웹 사용자 인터페이스 계층
웹 사용자 인터페이스 계층(100)은 하이브리드 웹 어플리케이션(10)을 해석하여, 하이브리드 웹 어플리케이션이 포함하는 시스템 API 호출(12)에 대응되는 처리는 후술되는 하이브리드 웹 어플리케이션 인터페이스 계층(200)으로 요청하고, 시스템 API 호출을 제외한 일반적 표준 웹 언어 부분에 대응되는 처리는 직접 수행하기 위한 계층이다.
도 4는 본 발명에 따른 하이브리드 웹 어플리케이션 실행을 위한 웹 사용자 인터페이스 계층의 세부 구성을 설명하기 위한 블록도이다.
도 4를 참조하면, 웹 사용자 인터페이스 계층은 일반적인 표준 웹 언어 부분을 실행하기 위한 적어도 하나의 웹 엔진(web engine; 120)과 하이브리드 웹 어플리케이션에서 일반적인 표준 웹 언어 부분과 시스템 API 호출 부분을 분리하기 위한 스크립트 엔진(110)을 포함하여 구성될 수 있다.
웹 엔진이라 함은 HTML 렌더링(rendering) 엔진 또는 CSS 렌더링 엔진 등을 포함하여, 스크립트 엔진에 의하여 분리되어 제공되는 일반적인 표준 웹 언어들을 실행하여 통상적인 웹 어플리케이션과 유사한 방식으로 브라우징 화면을 제공한다.
스크립트 엔진(110)은 하이브리드 웹 어플리케이션을 해석하여 일반적인 표준 웹 언어 부분(11)은 웹 엔진으로 제공하며, 시스템 API 호출들(12)에 대해서는 하이브리드 웹 어플리케이션 인터페이스 계층(200)으로 시스템 API 호출들에 대응되는 처리를 요청하게 된다.
이때, 웹 엔진과 스크립트 엔진은 명확하게 구분되어 존재하지 않는 실시예도 가능하다. 즉, 통상적으로 웹 엔진은 스크립트 엔진(예컨대, JavaScript Interpreter)을 포함하여 구성될 수도 있으며, 이 경우 웹 엔진에 포함된 스크립트 엔진에 하이브리드 웹 어플리케이션에서 일반적인 표준 웹 언어 부분과 시스템 API 호출 부분을 분리하는 기능이 구현되어야 할 것이다.
2)하이브리드 웹 어플리케이션 인터페이스 계층
하이브리드 웹 어플리케이션 인터페이스 계층(200)은 상기 웹 사용자 인터페이스 계층(100)의 요청에 따라 시스템 API 호출에 대응되는 처리를 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)에 요청하고, 상기 시스템 API 호출에 대응되는 처리 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)로부터 동기 또는 비동기적으로 회신하여 상기 웹 사용자 인터페이스 계층으로 전달하는 계층이다.
도 5는 본 발명에 따른 하이브리드 웹 어플리케이션 실행을 위한 하이브리드 웹 어플리케이션 인터페이스 계층의 세부 구성을 설명하기 위한 블록도이다.
도 5를 참조하면, 본 발명에 따른 하이브리드 웹 어플리케이션 인터페이스 계층(200)은 웹 인터페이스 제공부(210), 인터페이스 서비스 요청 생성부(220), 인터페이스 서비스 요청 중개부(230) 및 인터페이스 서비스 동기화 관리부(240)를 포함하여 구성될 수 있다.
먼저, 웹 인터페이스 제공부(210)는 상술된 웹 사용자 인터페이스 계층(100)로부터 시스템 API 호출에 대응되는 처리를 요청받고, 처리 결과를 웹 사용자 인터페이스 계층(100)에 제공하는 구성요소이다.
다음으로, 인터페이스 서비스 요청 생성부(220)는 웹 인터페이스 제공부(210)를 통해 요청된 장치 제어 및 시스템 기능 제어 API 요청을 미리 정의된 요청 규격에 맞게 생성하는 구성요소이다.
다음으로, 인터페이스 서비스 요청 중개부(230)는 인터페이스 서비스 요청 생성부를 통해 생성된 요청을 동기적/비동기적(synchronous/asynchronous) 인터페이스 처리 방식에 맞게 크로스 플랫폼 시스템 서비스 인터페이스 계층 (300)으로 전달처리하는 구성요소이다.
마지막으로, 인터페이스 서비스 동기화 관리부(240)는 동기적/비동기적 인터페이스 처리 과정을 관리하는 구성요소이다.
인터페이스 서비스 요청 중개부(230)는 인터페이스 서비스 요청 생성부(220)를 통해 생성된 요청을 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)으로 전달하고, 결과를 동기적 또는 비동기적으로 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)으로부터 수신하게 되는데, 인터페이스 서비스 동기화 관리부(240)는 이러한 결과의 수신을 동기적/비동기적으로 수신하는 것과 관련된 처리를 수행한다. 한편, 시스템 API의 특성에 따라서 해당 시스템 API의 인터페이스 처리 방식이 결정된다.
도 6은 본 발명에 따른 하이브리드 웹 어플리케이션 인터페이스 계층과 크로스 플랫폼 시스템 서비스 인터페이스 계층간의 처리 요청 전송과 처리 결과 회신 과정을 설명하기 위한 개념도이다.
도 6을 참조하면, 하이브리드 웹 어플리케이션 인터페이스 계층(200)은 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)에 대해서 소정의 시스템 API에 대응된 처리 요청에 대해서는 동기적 처리를 요청할 수 있다(511). 이 경우, 인터페이스 서비스 요청 중개부(230)는 인터페이스 서비스 동기화 관리부(240)의 도움을 받아 요청에 대한 결과가 회신되는 시점까지 어플리케이션의 수행을 정지한 다음 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)으로부터 결과를 회신받게 된다(512).
한편, 하이브리드 웹 어플리케이션 인터페이스 계층(200)은 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)에 대해서 소정의 시스템 API에 대응된 처리 요청에 대해서는 비동기적 처리를 요청할 수 있다(531). 이 경우, 인터페이스 서비스 요청 중개부(230)는 처리 요청을 크로스 플롯폼 시스템 서비스 인터페이스 계층(300)으로 전송한 다음, 인터페이스 서비스 동기화 관리부(240)의 도움을 받아 요청에 대한 결과가 회신되는 시점이 되면 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)으로부터 결과를 회신받게 된다(532).
또한, 또 하나의 인터페이스 방식으로 통보(notification) 형태의 비동기적 처리가 있을 수 있다. 통보란 미리 등록된 트리거링 조건(triggering condition)이 충족되었거나 트리거링 이벤트(event)가 발생되었을 때 상대방에게 알려주는 것을 의미한다. 통보는 1회성의 처리 결과 회신이 아니라 상대방이 등록한 트리거링 조건이 충족되거나 이벤트가 발생될 때마다 지속적으로 조건 충족 또는 이벤트 발생 사실을 알려준다는 점에서 앞서 언급된 통상적인 비동기적 처리와 차이가 있다. 하이브리드 웹 어플리케이션 인터페이스 계층(200)은 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)에 대해서 소정의 시스템 API에 대응된 처리 요청에 대해서는 통보에 대한 등록을 요청할 수 있다(521). 이 경우, 인터페이스 서비스 요청 중개부(230)는 처리 요청을 크로스 플롯폼 시스템 서비스 인터페이스 계층(300)으로 전송한 다음, 결과의 회신을 기다리지 않고 다른 작업들을 수행한다. 이후에, 등록된 통보에 대해서 해당 통보를 해야할 이벤트가 발생되면 인터페이스 서비스 요청 중개부(230)는 인터페이스 서비스 동기화 관리부(240)의 도움을 받아 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)으로부터 통보를 수신하게 된다(522).
3)크로스 플랫폼 시스템 서비스 인터페이스 계층
크로스 플랫폼 시스템 서비스 인터페이스 계층(300)은 하이브리드 웹 어플리케이션 인터페이스 계층의 요청에 따라 상기 시스템 API에 대응된 플랫폼 의존적 동작을 수행하는 계층이다.
도 7은 본 발명에 따른 하이브리드 웹 어플리케이션 실행을 위한 크로스 플랫폼 시스템 서비스 인터페이스 계층의 세부 구성을 설명하기 위한 블록도이다.
도 7을 참조하면, 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)은 웹 서버(310) 및 시스템 인터페이스부(320)를 포함하여 구성될 수 있다. 더 구체적으로, 시스템 인터페이스부(320)는 시스템 요청 처리부(321)와 시스템 인터페이스 연동부(322)를 포함하여 구성될 수 있다.
먼저, 웹 서버(310)는 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)내에 내장된 웹 서버(embedded web server)로서, 하이브리드 웹 어플리케이션 인터페이스 계층과 HTTP(HyperText Transfer Protocol) 프로토콜을 이용하여 시스템 API의 처리 요청과 처리 결과를 교환하는 구성요소이다.
크로스 플랫폼 시스템 서비스 인터페이스 계층(300)과 하이브리드 웹 어플리케이션 인터페이스 계층(200)이 HTTP 프로토콜로 시스템 API의 처리 요청과 처리 결과를 교환하도록 구성되는 것에 의해서 크로스 플랫폼 시스템 인터페이스 계층(300)과 하이브리드 웹 어플리케이션 인터페이스 계층(200)은 서로 다른 단말에 위치할 수도 있다. 즉, 서로 다른 단말에 존재하는 크로스 플랫폼 시스템 인터페이스 계층(300)과 하이브리드 웹 어플리케이션 계층(200)이 HTTP 프로토콜을 이용하여 시스템 API의 처리 요청과 처리 결과를 교환하도록 구성될 수 있다. 이를 통하여, 하이브리드 웹 어플리케이션은 유무선 네트워크를 통해 연결되는 다양한 단말에서 제공되는 크로스 플랫폼 서비스 인터페이스 계층을 HTTP 프로토콜을 이용하여 호출할 수 있다.
도 8은 본 발명에 따라 서로 다른 단말에 위치한 하이브리드 웹 어플리케이션 인터페이스 계층과 크로스 플랫폼 시스템 인터페이스 계층간의 연동을 설명하기 위한 개념도이다.
도 8을 참조하면, 예컨대, 자신의 스마트폰(제 1 단말; 810)에 탑재된 하이브리드 웹 어플리케이션(811)이 다른 사람의 스마트폰(제 2 단말; 820)에 탑재된 카메라(825)를 제어하고자 할 경우, 제 1 단말에 설치된 하이브리드 웹 어플리케이션 인터페이스 계층(813)이 제 2 단말에 설치된 크로스 플랫폼 시스템 인터페이스 계층(824)으로 카메라 제어 시스템 API의 처리 요청을 HTTP 프로토콜을 이용하여 전달할 수 있다. 이는, 앞서 도 2를 통하여 설명된 개념에 해당된다.
다음으로, 시스템 인터페이스부(820)는 상기 웹 서버를 통하여 전달된 상기 시스템 API 처리 요청을 처리하는 구성요소이다.
세부적인 구성으로서, 시스템 인터페이스부(820)는 상기 웹 서버를 통해 전달되는 시스템 API 처리 요청을 수신하는 시스템 인터페이스 요청 처리부(821)와 시스템 인터페이스 요청 처리부로부터 전달된 시스템 API 처리 요청을 플랫폼 의존적 API로 매핑하고, 매핑된 플랫폼 의존적 API를 호출하여 시스템 API 처리 요청을 처리하는 시스템 인터페이스 연동부(822)를 포함하여 구성될 수 있다.
추가적인 구성요소로서, 시스템 인터페이스부(820)는 시스템 인터페이스에 대한 관리와 내장 웹 서버에 대한 관리를 위한 시스템 인터페이스 관리부(823)을 추가로 포함할 수 있다.
하이브리드 어플리케이션 실행 방법
도 9는 본 발명에 따른 하이브리드 웹 어플리케이션의 실행 방법을 설명하기 위한 순서도이다.
도 9는 앞서 설명된 도 3의 소프트웨어 계층 구조와 병행 참조된다. 본 발명에 따른 하이브리드 웹 어플리케이션의 실행 방법은 웹 사용자 인터페이스 계층(100), 하이브리드 웹 어플리케이션 인터페이스 계층(200) 및 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)을 포함한 장치에서 하이브리드 웹 어플리케이션을 실행하는 방법이다.
도 9를 참조하면, 본 발명에 따른 하이브리드 웹 어플리케이션의 실행 방법은 웹 사용자 인터페이싱 단계(S910), 하이브리드 웹 어플리케이션 인터페이싱 단계(S920) 및 크로스 플랫폼 시스템 서비스 인터페이싱 단계(S930)를 포함하여 구성될 수 있다. 상기 단계들(S910, S920, S930)은 하이브리드 웹 어플리케이션의 실행 명령을 수신하는 단계(S901) 이후에 실행되며, 하이브리드 웹 어플리케이션을 구성하는 표준 웹 언어에 대한 처리와 시스템 API 호출에 대한 처리를 프로그래밍된 순서에 따라 진행되므로, 지속적으로 반복된다.
먼저, 웹 사용자 인터페이싱 단계(S910)는, 상기 웹 사용자 인터페이스 계층(100)에서 수행되는 동작으로서, 시스템 API 호출(system API call)을 포함한 표준 웹 언어로 작성된 하이브리드 웹 어플리케이션을 해석하여, 상기 시스템 API 호출에 대응되는 처리는 상기 하이브리드 웹 어플리케이션 인터페이스 계층(200)으로 요청하고, 상기 표준 웹 언어에서 상기 시스템 API 호출을 제외한 부분에 대응되는 처리를 수행한다.
웹 사용자 인터페이싱 단계(S910)를 수행하기 위해서, 앞서 언급된 바와 같이 웹 사용자 인터페이스 계층(100)은 일반적인 표준 웹 언어 부분을 실행하기 위한 적어도 하나의 웹 엔진(web engine; 120)과 하이브리드 웹 어플리케이션에서 일반적인 표준 웹 언어 부분과 시스템 API 호출 부분을 분리하기 위한 스크립트 엔진(100)을 포함하여 구성될 수 있다.
다음으로, 하이브리드 웹 어플리케이션 인터페이싱 단계(S920)는, 상기 하이브리드 웹 어플리케이션 인터페이스 계층(200)에서 수행되는 동작으로서, 상기 웹 사용자 인터페이스 계층(100)의 요청에 기초한 상기 시스템 API 호출에 대한 처리를 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)에 요청하고, 상기 시스템 API 호출에 대한 처리 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)으로부터 동기 또는 비동기적으로 수신하여 상기 웹 사용자 인터페이스 계층(100)으로 전달하는 단계이다.
즉, 하이브리드 웹 어플리케이션 인터페이싱 단계(S920)에서는 웹 사용자 인터페이스 계층(100)로부터 시스템 API 호출에 대응되는 처리를 요청받고, 요청된 장치 제어 및 시스템 기능 제어 API 요청을 미리 정의된 요청 규격에 맞게 생성한다. 이후에, 생성된 요청은 동기적/비동기적(synchronous/asynchronous) 인터페이스 처리 방식에 맞게 크로스 플랫폼 서비스 인터페이스 계층(300)으로 전달된다.
요청이 채택한 인터페이스 처리 방식에 따라서, 하이브리드 웹 어플리케이션 인터페이스 계층(200)은 크로스 플랫폼 서비스 인터페이스 계층(300)으로부터 상기 요청의 처리 결과를 동기적 또는 비동기적으로 수신하게 된다.
하이브리드 웹 어플리케이션 인터페이스 계층(200)과 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)간의 처리 요청 전송과 처리 결과 회신 과정은 도6을 통하여 설명된 바 있으므로 설명을 생략한다.
마지막으로, 크로스 플랫폼 시스템 서비스 인터페이싱 단계(S930)는, 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)에서 수행되는 동작으로서, 상기 하이브리드 웹 어플리케이션 인터페이스 계층(200)의 요청에 기초해 상기 시스템 API에 대응된 플랫폼 의존적 동작을 수행하는 단계이다.
이때, 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)과 하이브리드 웹 어플리케이션 인터페이스 계층(200)은 HTTP 프로토콜로 시스템 API의 처리 요청과 처리 결과를 교환하도록 구성될 수 있다. 이를 통하여, 서로 다른 플랫폼에 존재하는 크로스 플랫폼 시스템 인터페이스 계층(300)과 하이브리드 웹 어플리케이션 계층(200)이 HTTP 프로토콜을 이용하여 시스템 API의 처리 요청과 처리 결과를 교환하도록 구성될 수 있다. 즉, 하이브리드 웹 어플리케이션은 유무선 네트워크를 통해 연결되는 다양한 단말에서 제공되는 크로스 플랫폼 서비스 인터페이스 계층(300)을 HTTP 프로토콜을 이용하여 호출할 수 있다. 서로 다른 단말에 위치한 하이브리드 웹 어플리케이션 인터페이스 계층(200)과 크로스 플랫폼 시스템 인터페이스 계층(300)간의 연동 개념은 도 8을 통해 설명되었다.
크로스 플랫폼 시스템 서비스 인터페이싱 단계(S930)에서 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층(300)은 하이브리드 웹 어플리케이션 인터페이스 계층(200)으로부터 전달된 시스템 API 처리 요청을 수신하고, 수신된 시스템 API 처리 요청을 플랫폼 의존적 API로 매핑하고, 매핑된 플랫폼 의존적 API를 호출하여 시스템 API 처리 요청을 처리하게 된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 하이브리드 웹 어플리케이션
11: 표준 웹 언어 부분 12: 시스템 API 호출
100: 웹 사용자 인터페이스 계층
110: 스크립트 엔진 120: 웹 엔진
200: 하이브리드 웹 어플리케이션 인터페이스 계층
210: 웹 인터페이스 제공부 220: 인터페이스 서비스 요청 생성부
230: 인터페이스 서비스 요청 중개부
240: 인터페이스 서비스 동기화 관리부
300: 크로스 플랫폼 시스템 서비스 인터페이스 계층
310: 내장 웹 서버 320: 시스템 인터페이스부
321: 시스템 인터페이스 요청 처리부
322: 시스템 인터페이스 연동부
323: 시스템 인터페이스 관리부

Claims (19)

  1. 시스템 API 호출(system API call)과 표준 웹 언어로 작성된 하이브리드 웹 어플리케이션을 실행하는 장치로서,
    상기 시스템 API 호출에 대응되는 처리를 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하고, 상기 표준 웹 언어에 대응되는 처리를 수행하는 웹 사용자 인터페이스 계층;
    상기 웹 사용자 인터페이스 계층의 요청에 따라 상기 시스템 API 호출에 대응되는 처리를 크로스 플랫폼 시스템 서비스 인터페이스 계층에 요청하고, 상기 시스템 API 호출에 대응되는 처리의 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층로부터 동기 또는 비동기적으로 수신하여 상기 웹 사용자 인터페이스 계층으로 전달하는 하이브리드 웹 어플리케이션 인터페이스 계층; 및
    상기 하이브리드 웹 어플리케이션 인터페이스 계층의 요청에 기초해 상기 시스템 API에 대응된 플랫폼 의존적 동작을 수행하는 크로스 플랫폼 시스템 서비스 인터페이스 계층을 포함하는 하이브리드 웹 어플리케이션의 실행 장치.
  2. 청구항 1에 있어서,
    상기 시스템 API는 하드웨어를 제어하는 API 또는 운영체제가 관리하는 정보에 접근하는 API인 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  3. 청구항 1에 있어서,
    상기 표준 웹 언어는 자바 스크립트(Java Script), HTML(HyperText Markup Language) 및 CSS(Cascading Style Sheet) 중 적어도 하나를 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  4. 청구항 1에 있어서,
    상기 웹 사용자 인터페이스 계층은,
    상기 웹 표준 언어에 따른 처리를 수행하기 위한 적어도 하나의 웹 엔진(web engine); 및
    상기 하이브리드 웹 어플리케이션에 포함된 상기 시스템 API 호출를 분리하여 상기 시스템 API 호출에 따른 처리를 상기 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하는 스크립트 엔진을 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  5. 청구항 1에 있어서,
    상기 하이브리드 웹 어플리케이션 인터페이스 계층은,
    상기 웹 사용자 인터페이스 계층의 요청에 따라 상기 시스템 API를 처리하는 시스템 API 처리부;
    상기 시스템 API 처리부의 요청에 따라 상기 시스템 API 수행 요청을 생성하여 인터페이스 서비스 요청 중개부로 전달하는 인터페이스 서비스 요청 생성부;
    상기 인터페이스 서비스 요청 생성부로부터 수신된 상기 시스템 API 수행 요청을 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로 중개하는 인터페이스 서비스 요청 중개부; 및
    상기 인터페이스 서비스 요청 중개부를 통하여 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로 전달된 상기 시스템 API 수행 요청의 처리 결과 수신을 관리하는 인터페이스 서비스 동기화 관리부를 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  6. 청구항 5에 있어서,
    상기 인터페이스 서비스 요청 중개부의 상기 시스템 API 수행 요청은 동기식 또는 비동기식 중 하나이며,
    상기 인터페이스 서비스 동기화 관리부는 상기 시스템 API 수행 요청에 대한 처리 결과를 동기식 또는 비동기식 중 하나의 방식으로 상기 인터페이스 서비스 요청 중개부가 수신할 수 있도록 상기 상기 인터페이스 서비스 요청 중개부를 관리하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  7. 청구항 1에 있어서,
    상기 크로스 플랫폼 서비스 인터페이스 계층은,
    상기 하이브리드 웹 어플리케이션 인터페이스 계층과 HTTP(HyperText Transfer Protocol) 프로토콜을 이용하여 상기 시스템 API의 처리 요청과 처리 결과를 송수신하는 웹 서버(web server)를 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  8. 청구항 7에 있어서,
    상기 웹 서버는 다른 단말에 설치된 하이브리드 웹 어플리케이션 인터페이스 계층과 HTTP 포로토콜을 이용하여 시스템 API의 처리 요청과 처리 결과를 송수신하는 것을 특징으로 하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  9. 청구항 8에 있어서,
    상기 크로스 플랫폼 서비스 인터페이스 계층은,
    상기 웹 서버를 통하여 전달된 상기 시스템 API 처리 요청을 처리하는 시스템 인터페이스부를 추가로 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  10. 청구항 9에 있어서,
    상기 시스템 인터페이스부는
    상기 웹 서버를 통해 전달되는 시스템 API 처리 요청을 수신하는 시스템 인터페이스 요청 처리부; 및
    상기 시스템 인터페이스 요청 처리부로부터 전달된 시스템 API 처리 요청을 플랫폼 의존적 API로 매핑하고, 매핑된 플랫폼 의존적 API로 호출하여 시스템 API 처리 요청을 처리하는 시스템 인터페이스 연동부를 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 장치.
  11. 웹 사용자 인터페이스 계층, 하이브리드 웹 어플리케이션 인터페이스 계층 및 크로스 플랫폼 시스템 서비스 인터페이스 계층을 포함한 플랫폼의 하이브리드 웹 어플리케이션 실행 방법으로서,
    상기 웹 사용자 인터페이스 계층에서, 시스템 API 호출(system API call)과 표준 웹 언어로 작성된 상기 하이브리드 웹 어플리케이션을 해석하여, 상기 시스템 API 호출에 대응되는 처리를 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하고, 상기 표준 웹 언어에 대응되는 처리를 수행하는 웹 사용자 인터페이싱 단계;
    상기 하이브리드 웹 어플리케이션 인터페이스 계층에서, 상기 웹 사용자 인터페이스 계층의 요청에 기초한 상기 시스템 API 호출에 대한 처리를 크로스 플랫폼 시스템 서비스 인터페이스 계층에 요청하고, 상기 시스템 API 호출에 대한 처리 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층로부터 동기 또는 비동기적으로 수신하여 상기 웹 사용자 인터페이스 계층으로 전달하는 하이브리드 웹 어플리케이션 인터페이싱 단계; 및
    상기 크로스 플랫폼 시스템 서비스 인터페이스 계층에서, 상기 하이브리드 웹 어플리케이션 인터페이스 계층의 요청에 기초해 상기 시스템 API에 대응된 플랫폼 의존적 동작을 수행하는 크로스 플랫폼 시스템 서비스 인터페이싱 단계를 포함한 하이브리드 웹 어플리케이션의 실행 방법.
  12. 청구항 11에 있어서,
    상기 시스템 API는 하드웨어를 제어하는 API 또는 운영체제가 관리하는 정보에 접근하는 API인 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
  13. 청구항 11에 있어서,
    상기 표준 웹 언어는 자바 스크립트(Java Script), HTML(HyperText Markup Language) 및 CSS(Cascading Style Sheet) 중 적어도 하나를 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
  14. 청구항 11에 있어서,
    상기 웹 사용자 인터페이싱 단계는 적어도 하나의 웹 엔진(web engine)을 이용하여 상기 웹 표준 언어에 대응되는 처리를 수행하고, 상기 시스템 API 호출에 대응되는 처리를 상기 하이브리드 웹 어플리케이션 인터페이스 계층으로 요청하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
  15. 청구항 11에 있어서,
    상기 하이브리드 웹 어플리케이션 인터페이싱 단계는,
    상기 웹 사용자 인터페이스 계층로부터의 상기 시스템 API 호출에 대응되는 처리 요청에 기초하여 시스템 API 수행 요청을 생성하는 단계;
    생성된 상기 시스템 API 수행 요청을 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로 전달하는 단계; 및
    전달된 상기 시스템 API 수행 요청의 처리 결과를 상기 크로스 플랫폼 시스템 서비스 인터페이스 계층으로부터 수신하는 단계를 포함한 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
  16. 청구항 15에 있어서,
    상기 시스템 API 수행 요청에 대한 상기 시스템 API 수행 요청의 처리 결과의 수신은 동기식 또는 비동기식 인터페이스 방식을 이용하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
  17. 청구항 11에 있어서,
    상기 크로스 플랫폼 서비스 인터페이스 계층과 상기 하이브리드 웹 어플리케이션 인터페이스 계층은 HTTP 포로토콜을 이용하여 상기 시스템 API의 처리 요청과 처리 결과를 송수신하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
  18. 청구항 11에 있어서,
    상기 하이브리드 웹 어플리케이션 인터페이스 계층은 다른 단말의 크로스 플랫폼 서비스 인터페이스 계층과 HTTP 포로토콜을 이용하여 시스템 API의 처리 요청과 처리 결과를 송수신하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
  19. 청구항 18에 있어서,
    상기 크로스 플랫폼 서비스 인터페이싱 단계는
    상기 하이브리드 웹 어플리케이션 인터페이스 계층으로부터 전달되는 시스템 API 처리 요청을 플랫폼 의존적 API로 매핑하는 단계; 및
    매핑된 플랫폼 의존적 API로 호출하여 시스템 API 처리 요청을 처리하는 단계를 포함한 것을 특징으로 하는 하이브리드 웹 어플리케이션의 실행 방법.
KR1020130011044A 2012-02-20 2013-01-31 하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치 KR102020045B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/770,549 US8966508B2 (en) 2012-02-20 2013-02-19 Method for executing hybrid web application and apparatus therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120016738 2012-02-20
KR20120016738 2012-02-20

Publications (2)

Publication Number Publication Date
KR20130095668A true KR20130095668A (ko) 2013-08-28
KR102020045B1 KR102020045B1 (ko) 2019-09-10

Family

ID=49218925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130011044A KR102020045B1 (ko) 2012-02-20 2013-01-31 하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치

Country Status (1)

Country Link
KR (1) KR102020045B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085421A1 (en) * 2004-09-28 2006-04-20 International Business Machines Corporation Extensible URI-pattern-based servlet request processing framework
KR20100073526A (ko) * 2008-12-23 2010-07-01 연세대학교 산학협력단 모바일 디바이스들 간의 협력을 위한 프레임워크 시스템 및모바일 디바이스들 간의 협력 방법
US20100305722A1 (en) * 2007-11-27 2010-12-02 Samsung Electronics Co., Ltd. Method for controlling home network device using universal web application and apparatus thereof
KR20110123867A (ko) * 2010-05-10 2011-11-16 에스케이플래닛 주식회사 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085421A1 (en) * 2004-09-28 2006-04-20 International Business Machines Corporation Extensible URI-pattern-based servlet request processing framework
US20100305722A1 (en) * 2007-11-27 2010-12-02 Samsung Electronics Co., Ltd. Method for controlling home network device using universal web application and apparatus thereof
KR20100073526A (ko) * 2008-12-23 2010-07-01 연세대학교 산학협력단 모바일 디바이스들 간의 협력을 위한 프레임워크 시스템 및모바일 디바이스들 간의 협력 방법
KR20110123867A (ko) * 2010-05-10 2011-11-16 에스케이플래닛 주식회사 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법

Also Published As

Publication number Publication date
KR102020045B1 (ko) 2019-09-10

Similar Documents

Publication Publication Date Title
US8966508B2 (en) Method for executing hybrid web application and apparatus therefor
EP2916243B1 (en) Method, apparatus, server and system for implementing web application
US8332520B2 (en) Web server for managing session and method thereof
EP2603865B1 (en) Exposing resource capabilities to web applications
CN103309660B (zh) 移动应用跨平台开发方法
US8527862B2 (en) Methods for making ajax web applications bookmarkable and crawlable and devices thereof
TW200844856A (en) Dynamically loading scripts
CN109240697B (zh) 调用处理方法及装置、存储介质
CN110365724B (zh) 任务处理方法、装置及电子设备
JP2023541033A (ja) マイクロフロントエンドシステム、サブアプリケーションロード方法、電子機器、及びコンピュータープログラム製品
CN111857658A (zh) 一种渲染动态组件的方法、装置、介质和电子设备
CN103019712A (zh) 集成应用
US10198279B2 (en) Thread synchronization for platform neutrality
WO2017019284A1 (en) Computer-implemented method and system for executing android apps natively on any environment
CN105786476B (zh) 移动客户端与服务器之间的数据处理方法及系统
KR101907660B1 (ko) 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법
JP2015176308A (ja) 情報処理装置、機器、情報処理システム、情報処理方法、プログラム、及びインストール方法
US20230412694A1 (en) Communication system for micro-frontends of a web application
WO2023124657A1 (zh) 微应用的运行方法、装置、设备、存储介质及程序产品
US20130262555A1 (en) Route a Service
CA2852982A1 (en) Data interchange system
KR102020045B1 (ko) 하이브리드 웹 어플리케이션 실행 방법 및 하이브리드 웹 어플리케이션 실행 장치
US9680967B2 (en) Method of using application, gateway using the method, terminal using the method, and terminal system using the method
EP3872630B1 (en) Request processing method and apparatus, electronic device, and computer storage medium
KR102173840B1 (ko) 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant