Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008...

Post on 06-Oct-2020

2 views 0 download

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 Brucherseifereva.brucherseifer@basyskom.de

eva@kde.org

l basysKom is hiring!– Qt Consulants– KDE Consultants– Squish Consultants