1 OpenWebOS May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj
LG webos 1. webos 소개 정의역사등장배경특징및장점
등장배경 webos 소개 다양한 mobile devices 다양한 mobile operating systems 다양한 application runtime environments
정의 webos 소개 HTML, java, HTTP 등을사용하여네트워크상에서구동되는가상컴퓨터시스템 web application 실행환경을중심으로 OS 를재구성한것 < 기존 OS 와 webos 와의비교 >
webos 소개 web OS 개발역사
webos 인수역사 2009 2010 webos 소개 모바일단말회사인 Palm 이 webos 를개발, Best of CES 2009 수상하였으나 business 실패. HP 에의해 Palm 인수하여 webos 2.2 를 Pre2, Pre3 제품탑재, webos 3.0 을 HP Touch Pad 에탑재하여상용화그러나 business 실패. 2013 ~ LG 전자가 HP 로부터 webos 인수및 smart TV 상용화
webos 소개 등장배경 Native SW Platform C, C++, Java 기반개발, 실행속도가상대적으로빠름 응용개발이 SW 및 HW platform 에종속적 Web SW Platform HTML, JavaScript 기반개발,web engine 기반수행, 실행속도가상대적으로느림 web 표준에기반하여 SW / HW platform 종속성완화
등장배경 Web SW platform 의현재 webos 소개 브라우저기반어디에서나동일하게실행, 다양한기기호환. CPU 와 Network의비약적향상 -> 실행속도단점극복 표준화확대로, HW 접근성확장
특징및장점 Linux kernel 기반 webos 소개 기존 Native App 이제공하던각종서비스를 Web App 으로대체 Web App 실행에직접관여하지않고, Web App Framework 에서다양한단말기와화면에적용되어다양한환경에유연하게대응 HTML, CSS, JavaScript 기반 Web App framework 인 Enyo 제공
특징및장점 webos 소개 Browser 기반 WYSIWYG 개발환경인 Ares 을통한개발의편의성제공
특징및장점 webos 소개 Node.js 채용으로 app 뿐아니라 middleware component 또한개발지원 Native app 의수용및, 컴포넌트사용을위한 PDK 제공빠른성능과호환성을제공하는 ISIS 브라우저시스템확장성을위한 embedded 특화 bus system 인 Luna bus 지원
LG webos 2. webos 기술소개 webos 철학 webos 구조
webos 기술소개 webos 의철학 Simple, Beautiful UX. Web-Centric, Cross Platform Extensible, Pluggable Architecture Leverage Open-Source Technologies
webos 의철학 Simple, beautiful UX webos 기술소개 단순하지만직관적이고우아한 UX 추구. 멀티 tasking을통한효율적인 user interface
webos 의철학 Web-centric cross platform webos 기술소개 Enyo를통해, webos 뿐아니라다른플랫폼의브라우저에서도동일수행될수있는크로스플랫폼 web app 개발지원 <Enyo 에서지원하는플랫폼 >
webos 의철학 webos 기술소개 Extensible, pluggable architecture webos 는내부SW 컴포넌트의쉬운확장을지원 버스시스템을통해, 기능을 API 화하여버스에등록후다른App 및서비스들이이를이용하여, 해당서비스기능을쉽게사용 3 rd Party 개발자들또한 JavaScript 기반으로앱개발과동일한 API 를사용하여, 쉽게자신의서비스개발가능
webos 의철학 Leverage open-source technologies webos 기술소개 Linux, Node.js, Qt, Open GL/ES, WebKit, Connman 등의이미성능이검증된오픈소스들을기반으로구성되며, 최신기술을수용. webos 자체를오픈소스화하여 webos 에관심있는외부개발자들과함께플랫폼발전 Application framework 인 Enyo 또한오픈소스화하여 web app 개발자들에게멀티플랫폼으로의이식성제공, 단말기제조업체들에게다양한기기에서구동되는단일한 web 중심의플랫폼공급
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
webos Features webos 기술소개 Bus System Clients Services Apps Enyo Luna Bus Rendering Sub-System Node.js email contacts calendar im Connman -adapter DBus File Cache Activity Manager DB8 Powerd Browser Server SysMgr WebAppMgr V8 ConnMan QT 5.0 Webkit / QT Standard Linux Kernel
Enyo-based applications UI part 와 non-ui part 로구성 UI part : foreground Non-UI part(service) : background webos 기술소개 Service 는 UI 와별개수행되어 UI 작업의 load 를줄임하나의서비스를다수의 application에서공유하여효율적 processing 가능 service 종류 Application service : application 과함께packaging 되어배포 System service : platform 단에서기본적으로지원 IPC/BUS HelloWorld.Service Application Services xxx.service yyy.service System Services UI part of HelloWorld Application Non-UI part of HelloWorld Application
Enyo-based applications webos 에서의 service webos 기술소개 기능제공의단위 한 process 가여러service 를가질수있음 Luna-bus 를이용해다른 app 및서비스와연결 App 1 App 2 App 3 Luna-bus Service 1 Service 2 Service 3 Service 4
Enyo-based applications webos 기술소개 HelloWorld.html JavaScript 에정의된객체의 rendering 함수를호출 HelloWorld.js 호출될함수의정의및 response 함수의정의 <html> HelloWorld.html <body> <script type="text/javascript"> new enyo.helloworld().renderinto(document.body); </script> </body> </html> enyo.kind({ HelloWorld.js 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 기반으로획득하여화면표시 ) }, })
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 들을제공하여재사용증가
Qt-based system manager webos 기술소개 Application 의설치, 삭제, 실행등을담당 시스템자원관리 시스템보안관리 Web page, application rendering Rendering sub-system 최적화 Qt, QtWebKit, Open GL/ES
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 가능 )
webos 기술소개 Luna Bus based components Application 간의통신을위해 Luna bus 사용 Free desktop 에서주로응용을위해개발된, 소켓기반 IPC mechanism 인 D-Bus 를 embedded 에특화하여보완한 bus system <D-Bus mechanism> 기존 D-Bus 는모든통신이 D-Bus daemon 을거쳐야함 <Luna-Bus mechanism> Luna bus 는이를보완하여, 초기연결에만 Luna bus daemon 이관여하고, 이후통신은 client 와 service 간직접통신을통해통신속도향상
webos 기술소개 Luna Bus based components Service 에대한향상된보안정책적용 Private bus 접근에제약을두어야하는 system service, 해당 service 를이용하는 built in applications 이사용 Public bus 3rd party application 과 service 가사용 OS Kernel System Service System Applications 3 rd Party Services 3 rd Party Applications API 지원 Private Bus SDK Public Bus Public bus 에등록된 service 의 private bus 에대한접근방지 System service 중 3 rd party application 을위해 API 을제공해야하는 service 는 public bus 에도등록하여지원 각각의 service 마다자신이접근할수있는 service 와자신에게접근할수있는 service 설정가능
webos 기술소개 Luna Bus based components Luna bus-based non-ui middleware components 1 3 2 Audio Service Luna-bus 4 Application Manager Service 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)
No-sql DB DB8 webos 기술소개 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 환경에특화
webos 기술소개 Platform portability layer Nyx webos 가포함하는 SW 들이물리적 HW 에독립적으로디자인되고개발될수있도록지원 SW가필요로하는물리적자원을위한 abstraction 제공 < 물리적자원에대한 Abstraction>
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>
LG webos 3. LG webos 구조 LG webos TV App LG webos Signage
LG web OS LG Smart webos?
LG Smart webos TV 구조 LG web OS
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 에의해relaunch Relaunch properties 에의해foreground 에서 launch 전 background 에서일의수행여부를결정가능
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 로하기위한위치는다음과같다.
LG Smart webos Signage Web-centric platform LG web OS 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 자원으로부터정보를얻도록함
LG webos 4. webos 현재와전망 가능성 숙제 전망
webos 현재와전망 가능성 다양한기기에공통적으로적용가능한 S/W platform 기기마다매번다시개발하지않고, 한번개발한 App을다양한기기에서활용 web service를쉽게단말로가져올수있음 App 개발용이 web 개발인프라활용가능
webos 현재와전망 숙제 성능 Native 와의성능차이는좁힐수는있지만없앨수는없는 Gap web engine 자체의 fragmentation 문제 최근 web-kit 을많이활용하지만 web-kit 도 version 에따라차이를가질수있음 web engine 호환성검증도구필요 디바이스마다다른 functionality 다양한기기마다다른기능의차이를어떻게인지하고대처할것인가? 기능인지방안, 지원되지않는기능에대한처리방안, 디바이스추가기능에대한 API 표 준화필요 여전히남아있는 input device 문제 Touch screen, mouse, key board, remote controller 등다양한입력기기존재 입력기기를일반화할수있는방안필요.
전망 webos 현재와전망 WAC(Wholesale Application Community) 기반단일플랫폼표준화 WAC 유통채널을통한웹어플리케이션배포의간편성 기존패키지방식의제약해결 여러가지플랫폼제공 Smart phone, tablet 등이기종플랫폼에대해독립적인어플리케이션개발가 능 SP, FP 경계가점차사라질것으로기대됨
webos 현재와전망 전망 HTML5 표준화 HTML5 에서지원하는다양한 multi media 지원 Multimedia codec 아직까지기능정의만있을뿐코덱정의는없음 (H.264 와오그테오라경쟁중 ) MPEG LA* 는아직 W3C 멤버아님 Native app 수준의웹어플리케이션제작가능 Graphic API 제공 하드웨어 (GPU) 가속 캔버스 DAP: Device APIs & Policy 스토리지, 하드웨어센서제어, LBS,...
Discussion Q&A