Crossing boundaries Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 1
Crossing Bounderies Making KDE Technology Available to Embedded Devices Eva Brucherseifer l Just another Platform? basysKom GmbH l Strategies for cross device development 12.08.2008 aKademy 2008 l Example: Decibel l Benefit for KDE Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 2
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 12.08.2008 Eva Brucherseifer Seite 3
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 12.08.2008 Eva Brucherseifer Seite 4
Differences Desktop – Embedded Device l Embedded Devices are specialised to enable single use cases l touch screen & small screen resolution require optimized user interfaces l Embedded devices are built by manufacturers Community devices usually not possible Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 5
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 12.08.2008 Eva Brucherseifer Seite 6
Strategies for Cross-Device Development Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 7
Design Goals for Modular Components l separate functionality from view l make integration optional l stabilize & test component APIs using unit tests Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 8
Strategy 1: D-BUS Services l API as D-BUS specification Application l hide functionality in daemons bindings l Good for DBUS – data storage API – system wide services Service Daemon l Existing Examples: – HAL – Strigi – Akonadi – Decibel Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 9
Strategy 2: Plugins l Plugins are libraries loaded on demand Application / l one API with a variety of implementations Service Daemon API headers l useful for – optional functionality Plugin Plugin – optional integration l Existing Examples: – Passwort Storage: Plain Text vs. KWallet Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 10
Strategy 3: Model-View Concepts l Application implemented as Qt's model-view architecture Desktop View l Model contains all data handling and core functionality View l View can be replaced as needed for use case API Model l Enables different views for Embedded /Desktop without much reimplementation / porting Embedded l Existing Examples: View View – Plasma: DataEngines + Applets API Model Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 11
Component Puzzle l Putting it all together Embedded Desktop View View API Application Model bindings bindings DBUS API Service Daemon API headers Embedded Desktop Integration Integration Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 12
Example: Decibel l Communication Framework l building block for IM and VoIP applications Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 13
Classic Applications History Wengophone Qt4, SIP KPhone Qt4, SIP Skype Qt4, proprietary PSI Qt4, Jabber qutim Qt4, AIM/ICQ sim-im Qt3, multi-protocol Kopete KDE4, multi-protocol Konversation KDE3, IRC KCall KDE3, SIP KCall for KDE4 KDE4, Decibel Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 14
Design Goals l Portable Works across platforms, desktops and devices l Integrated Seamlessly 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 Qt-based Realtime Communication Technologies Eva Brucherseifer
Decibel Architecture UI: Use Case Specific Buddy List Chat Window Dial Dialog DBUS Accounts Contacts Decibel Password Mgt Presence Addressbook Configuration Dispatching DBUS Telepathy AIM/ICQ Jabber SIP Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 16
Addressing Use Cases l Embedded l KDE Desktop Chat Chat+VoIP shared model Full Desktop GUI Embedded GUI Dispatching Dispatching Accounts Accounts Plain Text KWallet Decibel Contacts Decibel Contacts Akonadi Plain Text Presence Presence Configuration Configuration AIM/ICQ AIM/ICQ Jabber SIP Jabber
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 12.08.2008 Eva Brucherseifer Seite 18
Contact l Eva Brucherseifer eva.brucherseifer@basyskom.de eva@kde.org l basysKom is hiring! – Qt Consulants – KDE Consultants – Squish Consultants Crossing Boundaries 12.08.2008 Eva Brucherseifer Seite 19
Recommend
More recommend