Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008...
Transcript of Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008...
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 1
Crossing boundaries
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 2
Crossing BounderiesMaking KDE Technology Available to Embedded Devices
Eva Brucherseifer
basysKom GmbH
12.08.2008
aKademy 2008
l Just another Platform?
l Strategies for cross device development
l Example: Decibel
l Benefit for KDE
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 3
Embedded Applications
l Consumer Devices– Phone – Multimedia Devices– Children's PCs– Navigation System– Home Automation– Ticket Vending Machine
l Industry Applications– Medical Industry: Ultrasonic– Production: Quality Assurance System for
Manufacturing Process– Measurement: Network Analyser– Logistics: Storage Management– Automotive: Agricultural Tractors
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 4
Just another platform to compile on?
l Different hardware – ARM, x86, PowerPC, SH4, Mips– Flash, GPS, Touch, ...
l Different Tools– Crosscompiler, Remote Debugging, etc– Embedded Linux
l Less Ressources– little MB 32-64 MB– little MHz 150-800 MHz– different capabilites with/without FPU– small amount of space usually flash, 64 MB– smaller screens 480x240, 800x600
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 5
Differences Desktop – Embedded Device
l Embedded Devices are specialised to enable single use cases
l touch screen & small screen resolutionrequire optimized user interfaces
l Embedded devices are built by manufacturersCommunity devices usually not possible
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 6
KDE has a lot to offer
l Current Embedded Linux market:– Qt offers a maintained and supported toolkit, Qt is preferred in industry
l KDE has rich and powerful functionality extending Qt– with more powerful CPU functionality is becoming an option
l But: – KDE components mostly unknown– KDE components have too many dependencies, no easy plug & play
l Required: more building blocks
l some components are already on use: – Frameworks: Phonon– Widgets: Webkit
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 7
Strategies for Cross-Device Development
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 8
Design Goals for Modular Components
l separate functionality from view
l make integration optional
l stabilize & test component APIs using unit tests
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 9
Strategy 1: D-BUS Services
l API as D-BUS specification
l hide functionality in daemons
l Good for – data storage– system wide services
l Existing Examples: – HAL– Strigi– Akonadi– Decibel
Application
DBUS
Service Daemon
API
bindings
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 10
Strategy 2: Plugins
l Plugins are libraries loaded on demand
l one API with a variety of implementations
l useful for– optional functionality– optional integration
l Existing Examples:– Passwort Storage: Plain Text vs. KWallet
API headers
Plugin Plugin
Application / Service Daemon
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 11
Strategy 3: Model-View Concepts
l Application implemented as Qt's model-view architecture
l Model contains all data handling and core functionality
l View can be replaced as needed for use case
l Enables different views for Embedded /Desktopwithout much reimplementation / porting
l Existing Examples:– Plasma: DataEngines + Applets
View
Model
API
DesktopView
View
Model
API
EmbeddedView
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 12
Application
bindingsModel
API
Component Puzzle
l Putting it all together
DBUS
Service Daemon
API
API headers
Embedded Integration
Desktop Integration
bindings
EmbeddedView
DesktopView
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 13
Example: Decibel
l Communication Framework
l building block for IM and VoIP applications
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 14
Classic Applications History
Wengophone Qt4, SIPKPhone Qt4, SIPSkype Qt4, proprietary
PSI Qt4, Jabberqutim Qt4, AIM/ICQsim-im Qt3, multi-protocol
Kopete KDE4, multi-protocolKonversation KDE3, IRC
KCall KDE3, SIPKCall for KDE4 KDE4, Decibel
Qt-based Realtime Communication Technologies Eva Brucherseifer
Design Goals
l PortableWorks across platforms, desktops and devices
l IntegratedSeamlessly works with the environment of the user
l Flexible– Can handle different use-cases– Do not hard-code policy
l Minimal– each component should be minimal and focus on its purpose – Less to code, test, debug and port
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 16
Password Mgt
Decibel Architecture
TelepathyJabber AIM/ICQ SIP
Decibel
Buddy List Chat Window Dial Dialog UI: Use Case Specific
Accounts
Dispatching
Contacts
PresenceConfiguration
Addressbook
DBUS
DBUS
Addressing Use Cases
l Embedded Chat
Plain Text
Jabber AIM/ICQ
Decibel
Embedded GUI
Accounts
Dispatching
Contacts
Presence
Configuration
Plain Text
KWallet
Jabber AIM/ICQ SIP
DecibelAccounts
Dispatching
Contacts
Presence
Configuration
Akonadi
l KDE Desktop Chat+VoIP
Full Desktop GUIshared model
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 18
Benefit for KDE
l Faster way to address use cases and user requirements
l Easier quality assurance
l Enable industry to create more KDE devices :-)
Crossing Boundaries Eva Brucherseifer
12.08.2008Seite 19
Contact
l Eva [email protected]
l basysKom is hiring!– Qt Consulants– KDE Consultants– Squish Consultants