OpenWebOSembedded.dankook.ac.kr/~baeksj/course/2016_WebOS/Chapter...SeungjaeBaek webOS기술소개...
Transcript of OpenWebOSembedded.dankook.ac.kr/~baeksj/course/2016_WebOS/Chapter...SeungjaeBaek webOS기술소개...
Seungjae Baek
1
OpenWebOS
May, 2016Seungjae Baek
Dept. of softwareDankook University
http://embedded.dankook.ac.kr/~baeksj
Seungjae Baek
LG webOS
1. webOS 소개
정의
역사
등장배경
특징 및 장점
Seungjae Baek
webOS 소개
등장배경 다양한 mobile devices 다양한 mobile operating systems 다양한 application runtime environments
Seungjae Baek
webOS 소개
정의 HTML, java, HTTP 등을 사용하여 네트워크 상에서 구동되는 가상
컴퓨터 시스템
web application 실행 환경을 중심으로 OS 를 재구성한 것
<기존 OS 와 webOS 와의 비교>
Seungjae Baek
webOS 소개
web OS 개발 역사
Seungjae Baek
webOS 소개
webOS 인수 역사 2009
모바일 단말 회사인 Palm 이 ‘webOS’ 를 개발, Best of CES 2009 수상하였으나business 실패.
2010 HP 에 의해 Palm 인수하여 ‘webOS 2.2’ 를 Pre2, Pre3 제품 탑재, ‘webOS 3.0’
을 HP Touch Pad 에 탑재하여 상용화 그러나 business 실패. 2013 ~
LG 전자가 HP 로부터 webOS 인수 및 smart TV 상용화
Seungjae Baek
webOS 소개
등장배경 Native SW Platform
C, C++, Java 기반 개발, 실행 속도가 상대적으로 빠름
응용 개발이 SW 및 HW platform 에 종속적
Web SW Platform
HTML, JavaScript 기반개발,web engine기반수행, 실행 속도가상대적으로느림
web 표준에 기반하여 SW / HW platform 종속성 완화
Seungjae Baek
webOS 소개
등장배경
Web SW platform 의 현재
브라우저기반 어디에서나 동일하게 실행, 다양한 기기 호환.
CPU 와 Network의 비약적 향상 -> 실행 속도 단점 극복
표준화 확대로, HW 접근성 확장
Seungjae Baek
webOS 소개
특징 및 장점 Linux kernel 기반
기존 Native App 이 제공하던 각종 서비스를 Web App 으로 대체
Web App 실행에 직접 관여하지 않고, Web App Framework 에서 다양한 단말기와 화면에 적용되어 다양한 환경에 유연하게 대응
HTML, CSS, JavaScript 기반 Web App framework 인 Enyo 제공
Seungjae Baek
webOS 소개
특징 및 장점 Browser 기반 WYSIWYG 개발 환경인 Ares 을 통한 개발의 편의성 제공
Seungjae Baek
webOS 소개
특징 및 장점 Node.js 채용으로 app 뿐 아니라 middleware component 또한 개발지원
Native app 의 수용 및, 컴포넌트 사용을 위한 PDK 제공
빠른 성능과 호환성을 제공하는 ISIS 브라우저
시스템 확장성을 위한 embedded 특화 bus system 인 Luna bus 지원
Seungjae Baek
LG webOS
2. webOS 기술소개
webOS 철학
webOS 구조
Seungjae Baek
webOS 기술 소개
webOS 의 철학
Web-Centric, Cross
Platform
Web-Centric, Cross
Platform
Simple, Beautiful UX.
Simple, Beautiful UX.
Extensible, Pluggable
Architecture
Extensible, Pluggable
Architecture
Leverage Open-Source Technologies
Leverage Open-Source Technologies
Seungjae Baek
webOS 기술 소개
webOS 의 철학 Simple, beautiful UX
단순하지만 직관적이고 우아한 UX 추구.
멀티 tasking을 통한 효율적인 user interface
Seungjae Baek
webOS 기술 소개
webOS 의 철학 Web-centric cross platform
Enyo를 통해, webOS 뿐 아니라 다른 플랫폼의 브라우저에서도 동일수행될수 있는 크로스
플랫폼 web app 개발 지원
<Enyo 에서 지원하는 플랫폼>
Seungjae Baek
webOS 기술 소개
webOS 의 철학 Extensible, pluggable architecture
webOS 는 내부 SW 컴포넌트의 쉬운 확장을 지원
버스 시스템을 통해, 기능을 API 화 하여 버스에 등록 후 다른 App 및 서비스들이 이를 이용
하여, 해당 서비스 기능을 쉽게 사용
3rd Party 개발자들 또한 JavaScript 기반으로 앱 개발과 동일한 API 를 사용하여, 쉽게 자신
의 서비스 개발 가능
Seungjae Baek
webOS 기술 소개
webOS 의 철학 Leverage open-source technologies
Linux, Node.js, Qt, Open GL/ES, WebKit, Connman 등 의 이미 성능이 검증된 오픈 소스들
을 기반으로 구성되며, 최신기술을 수용.
webOS 자체를 오픈 소스 화 하여 webOS 에 관심있는 외부 개발자들과 함께 플랫폼 발전
Application framework 인 Enyo 또한 오픈 소스 화 하여 web app 개발자들에게 멀티 플랫폼
으로의 이식성 제공, 단말기 제조업체들에게 다양한 기기에서 구동되는 단일한 web 중심의
플랫폼 공급
Seungjae Baek
webOS 기술 소개
webOS architecture overview
Enyo based applications
Enyo java application framework
An open source JavaScript framework
Qt-based system manager
QtWebKit-based browser “ISIS”
A layout engine for rendering web pages
Safari, Chrome, Opera, …
Luna bus based components
Node.js-based JavaScript services
No-sql DB “DB8”
Platform portability layer “Nyx”
Open Embedded-based Build System
Seungjae Baek
webOS 기술 소개
webOS Features
Browser Server
Node.js
V8
Rendering Sub-System
SysMgr
QT 5.0
WebAppMgr
Webkit / QT
Luna Bus
PowerdDB8Activity Manager
File Cache
contacts
calendar
im
Enyo
Apps
Standard Linux Kernel
Connman-adapter
DBus
ConnMan
Bus System Clients Services
Seungjae Baek
webOS 기술 소개
Enyo-based applications UI part 와 non-UI part 로 구성
UI part : foreground Non-UI part(service) : background
Service 는 UI 와 별개 수행되어 UI 작업의 load 를 줄임
하나의서비스를다수의application에서공유하여효율적processing가능
service 종류
Application service : application 과 함께 packaging 되어 배포
System service : platform 단에서 기본적으로 지원
HelloWorld.Service
UI part of HelloWorld Application
IPC/BUS
Non-UI part of HelloWorld Application
xxx.Service
yyy.Service
……
ApplicationServices
System Services
Seungjae Baek
webOS 기술 소개
Enyo-based applications webOS 에서의 service
기능 제공의 단위
한 process 가 여러 service 를 가질 수 있음
Luna-bus 를 이용해 다른 app 및 서비스와 연결
Luna-bus
Service 1Service 2
Service 3 Service 4
App 1 App 2 App 3
Seungjae Baek
webOS 기술 소개
Enyo-based applications HelloWorld.html
JavaScript 에 정의 된 객체의 rendering 함수를 호출
HelloWorld.js 호출될 함수의 정의 및 response 함수의 정의
<html><body><script type="text/javascript"> new enyo.HelloWorld().renderInto(document.body); </script></body>
</html>
HelloWorld.html
enyo.kind({name: "enyo.HelloWorld",…components:[
// Define services
{ kind: "PalmService", name: “HelloWorld", service: "palm://com.palm.helloworld", method: “hello“, onResponse: “printHelloWorld”}],create: function() {this.$.HelloWorld.call({}); // Hello world 함수 호출(service 함수 호출) },printHelloWorld: function(inSender, inResponse) {enyo.log(inResponse); // UI 의 response(결과 event 를 event 기반으로 획득하여 화면 표시)},})
HelloWorld.js
Seungjae Baek
webOS 기술 소개
Enyo java application framework Cross-platform
ios, android, window, … 등에서 동일하게 수행 가능
모바일 앱에 최적화
모바일 앱에 최적화된 UI 컴포넌트 제공
Lightweight and fast작은 사이즈로 최적의 성능
Enyo 의 core 의 크기는 25k gzipped 에 불과함
동적이고 다양한 어플리케이션 개발 가능
Free and open-source Apache License, Version 2.0
객체 지향적인 개발을 통해 코드 재사용 및 확장이 용이
개발에 기본적으로 필요한 component 들을 제공하여 재사용 증가
Seungjae Baek
webOS 기술 소개
Qt-based system manager Application 의 설치, 삭제, 실행 등을 담당
시스템 자원 관리
시스템 보안 관리
Web page, application rendering Rendering sub-system
최적화
Qt, QtWebKit, Open GL/ES
Seungjae Baek
webOS 기술 소개
QtWebKit-based browser “ISIS” Cross platform web browser QtWebKit 기반 rendering engine 사용
Enyo 를 통한 쉬운 UI 구성
빠른 성능과 호환성
Browser UI(Client) 와 rendering process(server)를 분리하여 client-server 기반
rendering 기술 사용한 반응성 향상
(loading 중에도 scroll 가능)
Seungjae Baek
webOS 기술 소개
Luna Bus based components Application 간의 통신을 위해 Luna bus 사용
Free desktop에서 주로 응용을 위해 개발된, 소켓 기반 IPC mechanism인 D-Bus 를 embedded에 특화하여 보완한 bus system
기존 D-Bus는 모든 통신이 D-Bus daemon을 거쳐야 함
Luna bus는 이를 보완하여, 초기 연결에만 Luna bus daemon이 관여하고, 이후 통신은client 와 service 간 직접 통신을 통해 통신 속도 향상
<D-Bus mechanism>
<Luna-Bus mechanism>
Seungjae Baek
webOS 기술 소개
Luna Bus based components Service에 대한 향상된 보안정책 적용
Private bus• 접근에 제약을 두어야 하는 system service, 해당 service를 이용하는 built in applications이 사용
Public bus• 3rd party application과 service가 사용
Public bus에 등록된 service의 private bus에 대한 접근 방지
System service 중 3rd party application을 위해 API 을 제공해야 하는 service 는 public bus 에도 등록하여 지원
각각의 service 마다 자신이 접근할 수 있는 service 와 자신에게 접근할 수 있는 service 설정 가능
OSKernel
SystemServiceSystemService
SystemApplications
SystemApplications
3rd PartyServices
3rd PartyApplications
Private Bus Public BusSDK
API 지원
Seungjae Baek
webOS 기술 소개
Luna Bus based components Luna bus-based non-UI middleware components
Audio Service Application Manager Service
2
1 3
Luna-bus
4
1. Key input 에 대한 sound 요청
2. Output 받음
3. Input 에 대한 app list 요청
4. App list 받음
Sound-related service(ex. key, ringtone)
Application-related service(ex. Installation, launch, search, update)
Seungjae Baek
webOS 기술 소개
No-sql DB “DB8” Application 및 다른 service 에서 쉽게 webOS에 접근이 가능하도록 하는 DB
Service Cloud 기반 Backup-Restore 기능 제공
한번에 정해진 수의 DB 를 획득할 수 있는 paging 기술 지원
Backend로 level DB 사용
Key-Value 기반의 storage library JavaScript 객체 단위 data 저장 용이 및 index 지정 가능
Indexed database 같은객체기반의비관계형DB 를통해mobile 및embedded 환경에특화
Seungjae Baek
webOS 기술 소개
Platform portability layer “Nyx” webOS 가 포함하는 SW 들이 물리적 HW 에 독립적으로 디자인되고 개발될 수 있
도록 지원
SW가 필요로 하는 물리적 자원을 위한 abstraction 제공
<물리적 자원에 대한 Abstraction>
Seungjae Baek
webOS 기술 소개
Open Embedded-based build system 개발자의 편의를 위한 2가지 build system 제공
Desktop
• PC 가 지원하는 다양한 개발 tool 을 기반으로 webOS Component의 개발 편의성 향상
Open Embedded
• Target device에 porting 하기 위한 webOS의 image build를 위한 system
• 다양한 HW architecture와 image, package format을 지원
• Build 설정의 쉬운 변경 및 확장 가능
• 쉽고 빠른 porting 및 새로운 HW에 빠른 대응 지원
<물리적 자원에 대한 Abstraction>
Seungjae Baek
LG webOS
3. LG webOS 구조
LG webOS TV App
LG webOS Signage
Seungjae Baek
LG web OS
LG Smart webOS ?
Seungjae Baek
LG web OS
LG Smart webOS TV 구조
Seungjae Baek
LG web OS
LG smart webOS TV web app HTML, CSS, JavaScript 등으로 개발되는 application App lifecycle
Not Launched : 실행되지않았거나종료된상태, webOSLaunchevent 를통해 launched 상태로전환될수있다. Launched : App 이 foreground 에서 running 중인 상태. Suspended : App 이background 에서존재, webOSRelaunch나visibilityChangeevent 를통해launch 될수있다.
webOSRelaunch 에 event 에 의해 relaunchRelaunch properties 에 의해 foreground 에서
launch 전 background 에서 일의 수행여부를 결정
가능
Seungjae Baek
LG web OS
LG smart webOS TV web app App metadata
appinfo.json 형식으로 저장 및 관리.
TV가 App을 identify 하도록 하는 file.
App의 root directory에 존재하며, single JSON 객체를 포함
App metadata의 localizing
• Application의 information을 specific locale 로 하기 위한 위치는 다음과 같다.
Seungjae Baek
LG web OS
LG Smart webOS Signage Web-centric platform
web apps 의 실행 환경
다양한 app deploying scenarios 제공
Local storage deploying scenario
USB storage deploying scenario
Remote server deploying scenario
구조
webOS Signage 는 display signage
에 특화된 webOS 에 기반
SCAP library 는 app 이 device 를
control 하거나 webOS Signage 자원
으로 부터 정보를 얻도록 함
Seungjae Baek
LG webOS
4. webOS 현재와 전망
가능성
숙제
전망
Seungjae Baek
webOS 현재와 전망
가능성
다양한 기기에 공통적으로 적용 가능한 S/W platform
기기 마다 매번 다시 개발하지 않고, 한번 개발한 App을 다양한 기기에서 활용
web service를 쉽게 단말로 가져올 수 있음
App 개발 용이
web 개발 인프라 활용 가능
Seungjae Baek
webOS 현재와 전망
숙제
성능
Native와의 성능 차이는 좁힐 수는 있지만 없앨 수는 없는 Gap
web engine 자체의 fragmentation 문제
최근 web-kit을 많이 활용하지만 web-kit도 version에 따라 차이를 가질 수 있음
web engine 호환성 검증 도구 필요
디바이스 마다 다른 functionality 다양한 기기 마다 다른 기능의 차이를 어떻게 인지하고 대처할 것인가?
기능 인지 방안, 지원되지 않는 기능에 대한 처리 방안, 디바이스 추가 기능에 대한 API 표
준화 필요
여전히 남아 있는 input device 문제
Touch screen, mouse, key board, remote controller 등 다양한 입력 기기 존재
입력 기기를 일반화 할 수 있는 방안 필요.
Seungjae Baek
webOS 현재와 전망
전망
WAC(Wholesale Application Community) 기반 단일 플랫폼 표준화
WAC 유통 채널을 통한 웹 어플리케이션 배포의 간편성
기존 패키지 방식의 제약 해결
여러 가지 플랫폼 제공
Smart phone, tablet 등 이 기종 플랫폼에 대해 독립적인 어플리케이션 개발 가
능
SP, FP 경계가 점차 사라질 것으로 기대됨
Seungjae Baek
webOS 현재와 전망
전망
HTML5 표준화
HTML5에서 지원하는 다양한 multi media 지원
Multimedia codec
• 아직까지 기능 정의만 있을 뿐 코덱 정의는 없음(H.264와 오그 테오라 경쟁 중)
• MPEG LA*는 아직 W3C 멤버 아님
Native app 수준의 웹 어플리케이션 제작 가능
Graphic API 제공
• 하드웨어(GPU) 가속
• 캔버스
DAP: Device APIs & Policy
• 스토리지, 하드웨어 센서 제어, LBS, ...
Seungjae Baek
Discussion
Q&A