May 9, 2012 - Input ⦠Web application. Native application. Web API. Runtime. Core. Tizen Web. API. Plug-in. Installer.
Introduction to Tizen and Tizen Mobile Architecture Seokjae Jeong, Samsung Electronics
Agenda Tizen Introduction Tizen Architecture Overview Tizen Core Services
2
Tizen Introduction
3
What is Tizen*? (Pronounced Tie Zen) Tizen* combines the communities and the best technologies under one unified environment
Strong developer community Broad service provider support
4
Tizen* is a trademark of the Linux Foundation
NEW
Key Tizen™ Highlights • Tizen is a cross-architecture, open source software platform • Comprehensive standards-based HTML5 implementation • Linux Foundation project based on Linux & other open source components • Device segments: Smartphones, Tablets, Netbooks, Invehicle infotainment devices, Smart TVs, and more.
• Tizen Association: an industry consortium consisting – Key service providers – Device manufacturers and Intel Tizen Association Members
5
Operators
OEMs
Tizen Release • Open Source Release – Tizen Alpha, Beta: ‘12.1.9, ‘12.2.27 – Tizen 1.0 Larkspur: ’12.4.30 ※
Tizen Larkspur scope – Platform Source Code: Web API, Core Services (Frameworks), Linux Kernel – SDK: Web App. Dev. Env. (Host OS: MS-Windows, Ubuntu Linux) Tizen SW Platform
6
Tizen SDK
Tizen Developer Conference • https://www.tizen.org/conference • The first annual Tizen conference – Hyatt in SF, CA, May 7-9th, 2012 • Four keynotes • Forty seven technical presentations – About Tizen Platform and SDK – On-line slides along with video or audio streaming • Tizen Developer Contest (~Aug. 7, 2012) – https://www.tizen.org/blogs/jabancroft/2012/announcing-tizendeveloper-contest-intel • Remembrances – Tizen reference device distribution by LF. – Offsite party at The California Academy of Science. 7
Tizen Roadmap • Tizen 1.0 Larkspur (Apr. 30, 2012) • Tizen 2.0 Magnolia (End of 2012) – Native APIs, more Web APIs, Security Enhancements, etc.
8
Tizen Open Source Information • Visit – http://www.tizen.org – http://developer.tizen.org/sdk – http://source.tizen.org/ – https://developer.tizen.org/documentation • Community – Mailing lists: http://www.tizen.org/community/mailing-lists – IRC Channel: #tizen – Wiki: https://www.tizen.org/community/wiki – JIRA: http://bugs.tizen.org
9
Tizen Architecture Overview
10
Tizen SW Architecture (for Mobile)
11
Kernel and Hardware Adaption Features: Linux Kernel Device Drivers Hardware Adaptation Layer Plug-ins OpenGL ES/EGL Graphics Driver DRM based graphics stack
Kernel / HW Adaptation Layer HAL (HW Adaptation Layer) Telephony Plug-ins
GStreamer Plug-ins
Kernel2.6.xx
12
Sensor Plug-ins
SMACK
System Plug-ins
OpenGL ES/EGL Graphics Driver
Device Drivers
Tizen Core Services (Mobile) Core Services App FW
System
Messaging
AppLife Cycle Mgmt (app-core)
System (system-server)
SMS (msg-service)
App Launch (AUL, app-service)
Sensor (sensor-fw, plugin)
MMS (msg-service)
Package Mgmt (slp-pkgmgr)
Power Mgmt (libslp-pm)
Base IPC (D-Bus) Database (SQLite) Essentials (glibc, …)
Graphics & Input 2D (EFL, cairo) 3D (OpenGL ES/EGL) Window Mgmt (e17)
Web
13
Layout & Rendering (WebKit)
Window System (X11)
JS Engine (JavaScriptCore)
Font (Fontconfig, freetype2)
Runtime (WRT)
ISF, Voice FW (isf, ise, STT, TTS, plugin)
Email (email-service)
Telephony Cellular (telephony-daemon)
PIM
Security
Contacts (contacts-serrvice)
Access Control (Smack)
Calendar (slp-calendar)
Certification (cert-svc)
Account (accounts-svc)
Secure Storage (secure-storage)
Synchronization (sync-fw, plugin)
Crypto (OpenSSL)
Location
Connectivity
Multimedia
Geolocation (Geoclue, plugin)
Connection (ConnMan)
Video (Gstreamer, plugin)
Geocoding (Geoclue, plugin)
Bluetooth (Bluez)
Audio (GStreamer, PulseAudio)
MAP (Geoclue, plugin)
HTTP (libsoup,libcurl)
Camera (GStreamer)
Route (Geoclue, plugin)
NFC (nfc-manager, plugin)
POI (Geoclue, plugin)
Wi-Fi (wpa_supplicant)
Audio Policy (audio-session-manager) 3D Audio (OpenAL)
Tizen Applications Web Application Web is the primary application development environment for Tizen SDK is available for Web App development Commercial grade Sample Apps will be available soon Native Application Available for device implementers through components in Core Service Web application Native application
Web API
Core Services Web Runtime Core
Tizen Web API Plug-in
Java Script Core
14
WebKit
Installer Core
App Security Core
App FW
MM
Conn
Location
PIM
Telephony
System
Graphics & Input
…
Tizen Web Application Web Application Fundamental W3C/HTML5 Base Device integrated API support jQuery Mobile based UI Widgets Device API Access to the platform capabilities Support Features: BT/NFC/System Info./App Management etc. Additional APIs will be added in the future e.g. Accounts, Automotive
15
Tizen Web APIs and WebApp Development Sakari Poussa, Intel & Taehee Lee, Samsung
Tizen Web API Standard HTML5 + Tizen Device API https://developer.tizen.org/documentation
Web API Device API
W3C
Miscellaneous
Application
HTML 5
Web GL
Network & Comm
WebRTC
Storage
Typed Array
NFC
CSS3
Bluetooth
Geolocation
Web Worker
Full Screen API
Media Contents
Touch Event
WebAudio
Metatag
PIM
Battery Status
WebSocket
JSON
File
Web Notification
URI Scheme
System Info File System
…
App Cache
…
Widget
Index DB
…
※ Tizen WebAPIs are not forking W3C APIs! 16
Tizen Core Services
17
An Overview of the Tizen Application Framework Youngjoo Park, Samsung
Application Framework Provides Launching Application (aul, app-svc) •
Explicit or implicit information (Combination of Action, URI, and MIME) can be used to determine an app to launch Allowed to launch different type of app (i.e. Web to Native and Native to Web)
• Application life cycle management and handling system events (app-core) • Getting app state change notification or system events through main loop • Then, calling registered callbacks for the events Installing/Uninstalling application (package manager) • AUL : Application Utility Library Managing application launched history (librua) • RUA : Recently Used Application Setting an alarm to launch at specific time (alarm-manager) Application Framework App-core AUL
Application DB
18
Launch PAD (AUL Daemon)
VCONF
RUA
packagemanager
alarmmanager
Appservice
AIL
Overview of Graphics and Input in Tizen Seokjae Jeong, Samsung
Graphics & Input Consists of: Enlightenment Foundation Libraries
• Rich Widgets multiple theme supports by Elementary • Retained mode canvas by Evas (Scene-graph, OpenGL ES back-end) • Compositing Window Manager Tizen Graphics Core – Window System based on X11 The Scenegraph (Evas) Carsten Haitzler, 3D (OpenGL ES), Font (freetype2, fontconfig) Samsung Input Service (SCIM), Voice FW (STT, TTS), Graphics & Input elementary ecore edje
Input Svc
evas eet
eina
freetype2
fontconfig
cairo
X Window System
19
OpenGL ES/EGL
Voice FW
Tizen Web Runtime Ming Jin, Samsung
Web
WebKit & WebKit2 /EFL Ming Jin, Samsung
Provides: Best Web experience with Browser and packaged Web Apps •
• •
Focusing on functionality(HTML5), performance (UI Responsiveness, 2D/3D Acceleration, JS Engine), Standard Compliance(W3C) More device feature accessibility through Tizen Device API jQuery Mobile based Tizen Web UI FW enables easy Web App development
Consists of: WebVeiw (WebKit /EFL): JavaScriptCore, WebCore(HTML5/W3C API implementation), WebKit API Web Runtime: Execution environment for packaged Web Apps
Web Web Runtime Installer Core
JavaScriptCore
20
Tizen Web API Plug-in
Runtime Core
WebCore
WebView (WebKit)
Platform Port (Graphics, Network)
Security Core
WebKit API
Multimedia (1/2) Provides: Playback of audio and video contents (local and streaming) Capturing images and recording audio and video 3D Audio Sound (OpenAL) specially for games Scanning & Playback of radio Determining audio policy Extracting and displaying media content information Features: High Quality Video Playback • Full HD(1080P) Playback (with HW codec & Render Optimization) • Support for various kind of Multimedia Streaming (HTTP, RTP/RTSP) • Support for HTML5 Video and embedded playback in Web Browser High Quality & High Speed Camera/Recorder • High Quality Image Capture & Video Recording • Support for various kind of shooting mode (single,continuous,paronama,etc)
21
Multimedia (2/2) Key Components: GStreamer: Audio, Video, Recording, Streaming, Editing, Etc Audio Session Manager: Sound Policy Management PulseAudio: Software mixing multiple audio streams Multiple-Format Codec: Various support of codec Media Content Service: Content management for media files Audio I/O: Accessing raw audio buffer to manipulate Multimedia Player
Recorder
Camera
Sound Manager
GStreamer
Audio IO
Radio
Audio Session Manager
Metadata Retriever
Image Utility
FFmpeg
Image Codec
Plug-in
Codec/Demux
File System
22
PulseAudio
Connectivity
ALSA
Graphics
Media Content Service
DRM
… Plug-in Drivers
Overview of Tizen Location Young-Ae Kang, Jongman Park, Samsung
Location
Provides: Hybrid position information (GPS, SPS, WPS) Map Service (Geocode, POI, Route) Key Components: GeoClue: Deliver location info from various positioning sources • • •
GeoClue library: An open source geo-information library GeoClue Providers: Implement the GeoClue library API Currently GPS Manager in GeoClue Providers is provided
Location Hybrid Positioning GPS
SPS
WPS
Plug-in
Plug-in
Plug-in
GeoClue Library
Map Service Geocode
POI Plug-in
Route
Map View (Elementary)
GeoClue Providers GPSManager Plug-in
23
System Provides: System monitoring and event handling functionalities Key components: System Manager • •
Runs as a daemon process Monitors device and system status and handles events from devices (battery, USB, MMC, charger, earjack, etc)
Sensor Manager: Handling sensor events from various sensors Device Manager: Setting/getting device values such as brightness Power Manager: Controls LCD display backlight and application sleep
System System Manager
Sensor Manager Plug-in
Kernel
24
Power Manager
Device Manager
Connectivity Cellular and Wi-Fi Connection “Always-on” internet connections based on cellular(e.g.3G) and Wi-Fi . connman manages internet connections • Allowing automatic connection for available Wi-Fi access point Managing statistics of data network
Bluetooth Based on Bluez and profiles (OPP, A2DP, RFCOMM, HFP, HDP, etc) Discovering / bonding / exchanging data with remote devices Tethering Providing three type of tethering : USB, Bluetooth and Wi-Fi NFC Including NFC Manager to handling NFC plug-ins Supporting P2P, Controlling NDEF tag, car emulator Wi-Fi Scanning and connecting Access Points Connecting hidden Access Points 25
Overview of Tizen Telephony Jongman Park, Samsung
Telephony
Consists of cellular functionalities for communicating with modem: Managing call/non-call info, packet-related services, network status information, SMS-related services for UMTS and CDMA Managing SIM Application Toolkit services for UMTS. Managing SIM files, phone book, and security
Key Components: TAPI is available as a library for client Defining a plug-in architecture for Telephony Server Telephony Event Delivery IPC
TAPI
Security
Telephony Server Plug-in Telephony Adaptation Layer
3GPP (Modem)
26
CDMA (Modem)
PIM Provides: Contact, Calendar, Account, and Sync Services Key Components: Account: Manage accounts to share account information on the device Contact/Calendar: • Account based, Multiple address/calendar books for an account. • Enough features to satisfy mobile contact/calendar app requirements. • Supporting vCard 3.0 and vCalendar 1.0 respectively Synchronization (Sync-FW)
PIM
27
Contact
Calendar
Account
Contact Manager
Event Manager
Account Manager
Address Book Manager
To-do Manager
Token Manager
vCard Converter
Calendar Book Manager
Notification Manager
vCal Converter
Call Log Manager
Notification Manager
Synchronization Sync-FW Plug-in
Messaging Provides: SMS, MMS, Email SMS, WAP and cell broadcast messages MMS protocols: OMA MMS 1.2. Email protocols: SMTP, IMAP, POP3 Key Components Message Client API Message Server • • • •
Transaction Manager: Manage IPC between message server and library Main Handlers: Handle message sending/receiving/filtering/setting. Storage Handlers: Save on DB Plug-in Manager: Manage SMS and MMS Plug-ins
Messaging Transaction Manager Message API Library
Main Handlers Plug-in Manager SMS Plug-in
28
MMS Plug-in
Storage Handler
Tizen Security Framework Overview Bumjin Im, Samsung & Ryan Ware, Intel
Security Provides: Certificate management and
verification Secure storage for confidential data User space access control management Cryptography and SSL support Mandatory access control support
Security model: No root applications/No privilege
escalation Sandboxed by SMACK Service daemons will make use of SMACK and enforce access control in server side Manifest based permission policy for Apps 29
Application Process
Security Service Daemon Secure Storage
OpenSSL Security Server
Kernel SMACK
Hands-On Lab : Getting Started with the Tizen SDK
SDK
30
Development Tool: SDK IDE Competitive editor for HTML, CSS, JavaScript Wizard and various templates: basic, jQuery mobile based, Tizen Web UI FW based, and HTML5 boiler plate Debugging support: JavaScript console, log view, inspectors
31
Development Tool: SDK
Design and Implementation of Tizen Emulator Yeongkyoon Lee, S-Core
Emulator Various Device Emulation based on open source QEMU H/W Acceleration on Host PC (OpenGL ES, EvasGL, WebGL, Etc) Event Injector for Sensors, Call/SMS, LBS, Etc Emulator IDE Emulator Manager
Event Injector
32
Development Tool: SDK Web Debugging Remote Inspector (Webkit Inspector) Local Inspector (Firebug)
33
Development Tool: SDK Where to find Documents in SDK Tizen IDE Help Help Contents
Find Web Device API & Tutorials and We UI FW Guides on the site
34
Q&A