SlideShare a Scribd company logo
1 of 49
Download to read offline
De leukste Bug 
Marcel Offermans 
luminis
luminis 
Introduction 
• Marcel Offermans 
• marcel.offermans@luminis.nl 
• . 
• IT solutions from idea to 
Arnhem Apeldoorn 
implementation 
• experts in Java, OSGi, .NET, 
Agile/Scrum 
Enschede 
image © 2008 Google Earth
luminis 
Agenda 
• The BUG hardware 
• The software stack, from kernel to application 
• OSGi overview 
• Concierge, R3 and the SDK 
• Live demos 
• Hello world on the BUG 
• Developing and deploying a camera application 
• Wrapping up
luminis 
Agenda 
• The BUG hardware 
• The software stack, from kernel to application 
• OSGi overview 
• Concierge, R3 and the SDK 
• Live demos 
• Hello world on the BUG 
• Developing and deploying a camera application 
• Wrapping up
luminis 
BUG 
• Electronic building blocks to build personalized 
devices 
• Open platform for custom hardware and software 
development 
• Based on proven technologies: 
• Linux 
• Java 
• OSGi 
• 100% open source ((L)GPL, BSD and EPL)
luminis 
BUG elements 
• BUGbase 
• mobile linux computer 
• BUGmodules 
• video, audio, GPS, sensors, general I/O, ... 
• SDK 
• based on Eclipse 
• BUGnet 
• community application repository
luminis 
BUGbase 
• Mobile Linux computer 
• Freescale ARM SoC at 532 MHz 
• 128 MB RAM, 32 MB flash, 2 GB SD storage, USB 2.0 
• LCD menu system with navigation buttons and LEDs 
• battery powered 
• BUG Module Interface with 4 slots 
• I2C, I2S, UART, ... 
• hot pluggable 
• kernel subsystem
luminis 
BUG camera 
• 2 megapixel camera 
• flash LED 
• 3 buttons
luminis 
BUG LCD 
• QVGA (320x240) resolution 
• touchscreen 
• (simple) accelerometer
luminis 
BUG GPS 
• GPS device 
• internal or external antenna
luminis 
BUG motion and 
accelerometer 
• IR motion detector 
• 3 axis accelerometer
luminis 
BUG von Hippel 
• named after MIT professor 
Eric von Hippel 
Democratizing Innovation 
In this book I explain in detail how the emerging process of 
user-centric, democratized innovation works. I also explain 
how innovation by users provides a very necessary 
complement to and feedstock for manufacturer innovation. 
• exposes most hardware 
interfaces 
• suited for rapid prototyping of modules, and as 
general I/O device
luminis 
BUG audio 
• audio in and out 
• mic, headphone, line-in, 
line-out 
• 2 hardware buttons
luminis 
Third party and planned 
• Zigbee 
• Wifi 
• 3G
luminis 
Agenda 
• The BUG hardware 
• The software stack, from kernel to application 
• OSGi overview 
• Concierge, R3 and the SDK 
• Live demos 
• Hello world on the BUG 
• Developing and deploying a camera application 
• Wrapping up
App App App 
OSGi 
luminis 
BUG software stack 
• Linux 2.6 kernel 
• CDC JVM (phoneME advanced) 
• OSGi R3 framework (Concierge) 
Java VM 
• BUG applications are collections 
of OSGi bundles Linux Kernel
OSGi history 
• Started as an embedded platform for the “home 
gateway” 
• Originally under the JCP as JSR-8 (1999) 
• OSGi alliance, large consortium, with a mission: 
• maintaining and publicizing the OSGi specification 
• certifying implementations 
• organising events 
• OSGi R3: march 2003 
• Current version: OSGi Release 4.1 (JSR-291) 
luminis
luminis 
OSGi today 
OSGi technology is the dynamic module system 
for Java™ 
OSGi technology is Universal Middleware. 
OSGi technology provides a service-oriented, component-based 
environment for developers and offers standardized 
ways to manage the software lifecycle. These capabilities 
greatly increase the value of a wide range of computers 
and devices that use the Java™ platform.
luminis 
OSGi Alliance 
• Expert Groups: 
• core platform (CPEG) 
• mobile (MEG) 
• vehicle (VEG) 
• enterprise (EEG) 
• residential (REG) 
• Working Groups: 
• marketing 
• requirements
luminis 
OSGi specification 
OSGi Service Platform 
Service Compendium 
The OSGi Alliance 
Release 4, Version 4.1 
April 2007 
OSGi 
Alliance 
Digitally 
signed by 
OSGi Alliance 
DN: cn=OSGi 
Alliance, c=US 
Date: 
2007.02.22 
14:44:10 + 
01'00' 
Signatu 
re Not 
Verified 
OSGi Service Platform 
Core Specification 
The OSGi Alliance 
Release 4, Version 4.1 
April 2007 
OSGi 
Alliance 
Digitally 
signed by 
OSGi Alliance 
DN: cn=OSGi 
Alliance, 
c=US 
Date: 
2007.02.22 
14:45:47 + 
01'00' 
Signatur 
e Not 
Verified
OSGi Framework Layering 
L3 - Provides a publish/find/bind service 
model to decouple bundles 
L2 - Manages the life cycle of a bundle in 
a framework without requiring the vm to be 
restarted 
L1 - Creates the concept of a module 
(aka. bundles) that use classes from each 
other in a controlled way according to 
system and bundle constraints 
L0 - well defined profiles that define the 
environment in which bundles can work, ie: 
* CDC/Foundation 
* JavaSE-6 
luminis 
SERVICE MODEL 
LIFE-CYCLE 
MODULE 
Execution 
Environment
Bundle 
luminis 
Module Layer 
exports 
• Unit of deployment 
is the bundle i.e., a JAR 
• Separate class loader 
per bundle 
• Class sharing at the Java package level 
• Supports multiple versions of packages 
Module 
Module 
Bundle Bundle Bundle 
org.apache.utils 1.0 
org.apache.db 1.4 
org.apache.log 2.3 org.apache.utils 1.1 
exports 
imports 
exports 
imports 
exports
luminis 
Manifest 
Bundle-Name: Example Bundle 
Bundle-SymbolicName: net.luminis.example.bundle 
Bundle-Version: 1.0.0 
DynamicImport-Package: 
net.luminis.jdbc.* 
Import-Package: 
org.osgi.framework;version=“1.3“, 
org.osgi.service.event;version=“[1.0,2.0)“, 
net.luminis.foo;resolution:=“optional“ 
Export-Package: 
org.osgi.service.event;version=“1.1“ 
Bundle-ManifestVersion: 2
Life-cycle 
resolved active 
luminis 
Life-cycle Layer 
• Managed life cycle 
• States for each bundle; 
• Allows updates of existing bundles 
• Dynamically install, start, update, and uninstall 
Life-cycle 
start 
end 
installed 
install 
start starting 
stopping stop 
uninstall 
uninstalled 
Module
luminis 
Life-cycle Example 
Bundle 
OSGi Framework
luminis 
Life-cycle Example 
Bundle 
OSGi Framework 
Provided 
Package
luminis 
Life-cycle Example 
Bundle 
OSGi Framework 
Bundle 
Install 
Bundle
luminis 
Life-cycle Example 
Bundle 
OSGi Framework 
Bundle 
Resolve 
Bundle
luminis 
Service Layer 
• OSGi framework 
promotes service 
oriented interaction 
pattern among 
bundles 
Service 
Service 
Log Database 
publish use 
use 
publish 
Bundle Bundle Bundle 
Bundle 
Prefs 
publish 
use 
publish find 
Service 
Provider 
Service 
Requester 
Service 
Registry 
interact 
Life-cycle 
Module
luminis 
Service Example 
Bundle 
OSGi Framework
luminis 
Service Example 
Bundle 
OSGi Framework 
Provided 
Service 
Provided 
Package
luminis 
Service Example 
Bundle 
OSGi Framework 
Bundle 
Install 
Bundle
luminis 
Service Example 
Bundle 
OSGi Framework 
Bundle 
Resolve 
Bundle
luminis 
Service Example 
Bundle 
OSGi Framework 
Bundle 
Resolve 
Service
Security Concepts Overview 
• Codebased security of the Java Security Model 
• Makes use of Protection Domain 
• The stack walk based Permission Check 
• Signed bundles 
• User based security is supported by 
Security 
the UserAdmin service but not 
integrated in the standard permission 
Service 
check as with JAAS 
• PermissionAdmin and 
ConditionalPermissionAdmin services 
provide management infrastructure 
Life-cycle 
Module 
luminis
Leveraging standard services 
• Specification: 
• OSGi compendium – catalog of standard service 
luminis 
descriptions 
• Implementations: 
• OBR repository at bundles.osgi.org – over 1400 
bundles, implement compendium and other services 
• Maven repository and third party OBR’s 
• Springsource has a repository 
• More and more projects are made OSGi compatible, for 
example: Apache Commons OSGi, Jetty, ...
User Admin Wire Admin 
luminis 
OSGi compendium 
Log 
XML Parser 
Position 
Measurement and State 
Event Admin Service Tracker 
HTTP 
Device Access 
Configuration Admin 
Preferences 
Metatype 
IO Connector 
Initial Provisioning 
UPnP™ Device 
Execution Environment Spec 
Declarative Services 
OSGi Service Platform 
Service Compendium 
The OSGi Alliance 
Release 4, Version 4.1 
April 2007 
OSGi 
Alliance 
Digitally 
signed by 
OSGi Alliance 
DN: cn=OSGi 
Alliance, c=US 
Date: 
2007.02.22 
14:44:10 + 
01'00' 
Signatu 
re Not 
Verified
luminis 
Concierge 
• implements OSGi R3 specification 
• small footprint: 80 kB 
• optimized for embedded environments 
• low resource consumption 
• tuned for VM’s that interpret bytecode 
• tested on many platforms 
• iPAQ, Zaurus, Nokia 9300, LinkSys NSLU, iMote2, ... 
• Homepage: http://concierge.sourceforge.net/
luminis 
OSGi R3 
• no bundle symbolic names 
• no require-bundle 
• only one version of a package 
• a somewhat smaller compendium 
OSGi Service Platform 
Release 3 
March 2003
luminis 
Dragonfly BUG SDK 
• software development kit to build applications 
• Eclipse plug-ins, open source 
• includes a virtual BUG, an emulator to test 
applications without hardware
SDK interfaces with hardware 
luminis
luminis 
Agenda 
• The BUG hardware 
• The software stack, from kernel to application 
• OSGi overview 
• Concierge, R3 and the SDK 
• Live demos 
• Hello world on the BUG 
• Developing and deploying a camera application 
• Wrapping up
luminis 
Hello World on the BUG 
• Register ourselves as a listener for button events 
• When an event comes in, blink all LEDs for half a 
second 
• Deploy the code to the BUG
luminis 
Adding modules 
• at the OSGi level, adding a module means new 
services appearing 
• applications can track these services and 
become active once all required services are 
present 
• BUG SDK has a convenient project wizard to help 
you with that 
• internally, Service Trackers are used to track OSGi 
services
Developing and deploying a 
camera application 
• Use the camera, LCD and accelerometer to: 
• wait until you hold the device still for a little while 
• take a picture 
• display the picture on the LCD 
• Use the project wizard to depend on the right 
services 
• Deploy to the BUG 
• Test the application 
luminis
luminis 
Agenda 
• The BUG hardware 
• The software stack, from kernel to application 
• OSGi overview 
• Concierge, R3 and the SDK 
• Live demos 
• Hello world on the BUG 
• Developing and deploying a camera application 
• Wrapping up
luminis 
Wrapping up 
• We’ve looked at the open software and hardware 
stack of the BUG 
• After a brief look at OSGi, we developed and 
deployed a couple of applications to the BUG 
• Before you ask, a new version of the BUG, which 
supports WiFi is scheduled for June and will ship 
to europe (you need a US address now) 
• The BUG community is very supportive, check it 
out on their site and go to #buglabs on Freenode 
IRC
luminis 
Links 
• Slides, docs and code: 
http://opensource.luminis.net/ 
• Buglabs: 
http://buglabs.net/ 
• OSGi: 
http://www.osgi.org/ 
• Marcel Offermans: 
marcel.offermans@luminis.nl
luminis 
Questions?! 
? & !

More Related Content

What's hot

A Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android DevelopmentA Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android DevelopmentDavid Wu
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)yalini97
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDr Ganesh Iyer
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015Mark Voelker
 
App catalog (Vancouver)
App catalog (Vancouver)App catalog (Vancouver)
App catalog (Vancouver)Mirantis
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on KubernetesNeven Cvetković
 
Develop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
Develop and Deploy Cloud-Native Apps as Resilient Microservice ArchitecturesDevelop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
Develop and Deploy Cloud-Native Apps as Resilient Microservice ArchitecturesAll Things Open
 
LASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker ToolsLASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker ToolsVasiliy Fomichev
 
OpenStack Benelux Conference 2014 | Plenair | RedHat
OpenStack Benelux Conference 2014 | Plenair | RedHatOpenStack Benelux Conference 2014 | Plenair | RedHat
OpenStack Benelux Conference 2014 | Plenair | RedHatGuston Remie
 
Google jib: Building Java containers without Docker
Google jib: Building Java containers without DockerGoogle jib: Building Java containers without Docker
Google jib: Building Java containers without DockerMaarten Smeets
 
SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore Vasiliy Fomichev
 
Tizen introduction & architecture
Tizen introduction & architectureTizen introduction & architecture
Tizen introduction & architectureYoonsoo Kim
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifeidotCloud
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me ToolsJussi Pohjolainen
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of JavaJamie Coleman
 
NCARB Checkout Git
NCARB Checkout GitNCARB Checkout Git
NCARB Checkout Gitdavedavious
 

What's hot (20)

A Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android DevelopmentA Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android Development
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
 
OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015OpenStack 101 - All Things Open 2015
OpenStack 101 - All Things Open 2015
 
App catalog (Vancouver)
App catalog (Vancouver)App catalog (Vancouver)
App catalog (Vancouver)
 
War of Openstack Private Cloud Distribution
War of Openstack Private Cloud DistributionWar of Openstack Private Cloud Distribution
War of Openstack Private Cloud Distribution
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on Kubernetes
 
Develop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
Develop and Deploy Cloud-Native Apps as Resilient Microservice ArchitecturesDevelop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
Develop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
 
LASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker ToolsLASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker Tools
 
OpenStack Benelux Conference 2014 | Plenair | RedHat
OpenStack Benelux Conference 2014 | Plenair | RedHatOpenStack Benelux Conference 2014 | Plenair | RedHat
OpenStack Benelux Conference 2014 | Plenair | RedHat
 
Google jib: Building Java containers without Docker
Google jib: Building Java containers without DockerGoogle jib: Building Java containers without Docker
Google jib: Building Java containers without Docker
 
SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Tizen introduction & architecture
Tizen introduction & architectureTizen introduction & architecture
Tizen introduction & architecture
 
Docker in pratice -chenyifei
Docker in pratice -chenyifeiDocker in pratice -chenyifei
Docker in pratice -chenyifei
 
Using the Splunk Java SDK
Using the Splunk Java SDKUsing the Splunk Java SDK
Using the Splunk Java SDK
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me Tools
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
 
NCARB Checkout Git
NCARB Checkout GitNCARB Checkout Git
NCARB Checkout Git
 

Similar to De leukste Bug

OSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home ServicesOSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home Servicesmfrancis
 
AGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE IoT
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OpenBlend society
 
OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...
OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...
OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...mfrancis
 
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, NokiaHistory and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokiamfrancis
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA NITIN GUPTA
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC MetropjhInovex
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1pjhInovex
 
Kubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemKubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemTomoya Fujita
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 
Bug Labs Gov Web
Bug Labs Gov WebBug Labs Gov Web
Bug Labs Gov Webbuglabs
 
Net Devops Overview
Net Devops OverviewNet Devops Overview
Net Devops OverviewJoel W. King
 

Similar to De leukste Bug (20)

OSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home ServicesOSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home Services
 
AGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystem
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
 
OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...
OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...
OSGi Alliance Community Event 2007 - Business Session#2 - Abdallah Bushnaq, A...
 
Android OS
Android OSAndroid OS
Android OS
 
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, NokiaHistory and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA
 
OSGi User Forum US DC Metro
OSGi User Forum US DC MetroOSGi User Forum US DC Metro
OSGi User Forum US DC Metro
 
OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1
 
Kubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster SystemKubernetes Robotics Edge Cluster System
Kubernetes Robotics Edge Cluster System
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Pro syst about us
Pro syst   about usPro syst   about us
Pro syst about us
 
Os gi l
Os gi lOs gi l
Os gi l
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Distributing OSGi
Distributing OSGiDistributing OSGi
Distributing OSGi
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Bug Labs Gov Web
Bug Labs Gov WebBug Labs Gov Web
Bug Labs Gov Web
 
Net Devops Overview
Net Devops OverviewNet Devops Overview
Net Devops Overview
 
My androidpresentation
My androidpresentationMy androidpresentation
My androidpresentation
 
Firefox os
Firefox osFirefox os
Firefox os
 

More from Marcel Offermans

Building Secure OSGi Applications
Building Secure OSGi ApplicationsBuilding Secure OSGi Applications
Building Secure OSGi ApplicationsMarcel Offermans
 
Component-based ontwikkelen met OSGi: van embedded tot enterprise
Component-based ontwikkelen met OSGi: van embedded tot enterpriseComponent-based ontwikkelen met OSGi: van embedded tot enterprise
Component-based ontwikkelen met OSGi: van embedded tot enterpriseMarcel Offermans
 
Dependencies, dependencies, dependencies
Dependencies, dependencies, dependenciesDependencies, dependencies, dependencies
Dependencies, dependencies, dependenciesMarcel Offermans
 
Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro ServicesMarcel Offermans
 
Felix HTTP - Paving the road to the future
Felix HTTP - Paving the road to the futureFelix HTTP - Paving the road to the future
Felix HTTP - Paving the road to the futureMarcel Offermans
 
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixDynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixMarcel Offermans
 

More from Marcel Offermans (6)

Building Secure OSGi Applications
Building Secure OSGi ApplicationsBuilding Secure OSGi Applications
Building Secure OSGi Applications
 
Component-based ontwikkelen met OSGi: van embedded tot enterprise
Component-based ontwikkelen met OSGi: van embedded tot enterpriseComponent-based ontwikkelen met OSGi: van embedded tot enterprise
Component-based ontwikkelen met OSGi: van embedded tot enterprise
 
Dependencies, dependencies, dependencies
Dependencies, dependencies, dependenciesDependencies, dependencies, dependencies
Dependencies, dependencies, dependencies
 
Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro Services
 
Felix HTTP - Paving the road to the future
Felix HTTP - Paving the road to the futureFelix HTTP - Paving the road to the future
Felix HTTP - Paving the road to the future
 
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixDynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
 

Recently uploaded

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Recently uploaded (20)

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

De leukste Bug

  • 1. De leukste Bug Marcel Offermans luminis
  • 2. luminis Introduction • Marcel Offermans • marcel.offermans@luminis.nl • . • IT solutions from idea to Arnhem Apeldoorn implementation • experts in Java, OSGi, .NET, Agile/Scrum Enschede image © 2008 Google Earth
  • 3. luminis Agenda • The BUG hardware • The software stack, from kernel to application • OSGi overview • Concierge, R3 and the SDK • Live demos • Hello world on the BUG • Developing and deploying a camera application • Wrapping up
  • 4. luminis Agenda • The BUG hardware • The software stack, from kernel to application • OSGi overview • Concierge, R3 and the SDK • Live demos • Hello world on the BUG • Developing and deploying a camera application • Wrapping up
  • 5. luminis BUG • Electronic building blocks to build personalized devices • Open platform for custom hardware and software development • Based on proven technologies: • Linux • Java • OSGi • 100% open source ((L)GPL, BSD and EPL)
  • 6. luminis BUG elements • BUGbase • mobile linux computer • BUGmodules • video, audio, GPS, sensors, general I/O, ... • SDK • based on Eclipse • BUGnet • community application repository
  • 7. luminis BUGbase • Mobile Linux computer • Freescale ARM SoC at 532 MHz • 128 MB RAM, 32 MB flash, 2 GB SD storage, USB 2.0 • LCD menu system with navigation buttons and LEDs • battery powered • BUG Module Interface with 4 slots • I2C, I2S, UART, ... • hot pluggable • kernel subsystem
  • 8. luminis BUG camera • 2 megapixel camera • flash LED • 3 buttons
  • 9. luminis BUG LCD • QVGA (320x240) resolution • touchscreen • (simple) accelerometer
  • 10. luminis BUG GPS • GPS device • internal or external antenna
  • 11. luminis BUG motion and accelerometer • IR motion detector • 3 axis accelerometer
  • 12. luminis BUG von Hippel • named after MIT professor Eric von Hippel Democratizing Innovation In this book I explain in detail how the emerging process of user-centric, democratized innovation works. I also explain how innovation by users provides a very necessary complement to and feedstock for manufacturer innovation. • exposes most hardware interfaces • suited for rapid prototyping of modules, and as general I/O device
  • 13. luminis BUG audio • audio in and out • mic, headphone, line-in, line-out • 2 hardware buttons
  • 14. luminis Third party and planned • Zigbee • Wifi • 3G
  • 15. luminis Agenda • The BUG hardware • The software stack, from kernel to application • OSGi overview • Concierge, R3 and the SDK • Live demos • Hello world on the BUG • Developing and deploying a camera application • Wrapping up
  • 16. App App App OSGi luminis BUG software stack • Linux 2.6 kernel • CDC JVM (phoneME advanced) • OSGi R3 framework (Concierge) Java VM • BUG applications are collections of OSGi bundles Linux Kernel
  • 17. OSGi history • Started as an embedded platform for the “home gateway” • Originally under the JCP as JSR-8 (1999) • OSGi alliance, large consortium, with a mission: • maintaining and publicizing the OSGi specification • certifying implementations • organising events • OSGi R3: march 2003 • Current version: OSGi Release 4.1 (JSR-291) luminis
  • 18. luminis OSGi today OSGi technology is the dynamic module system for Java™ OSGi technology is Universal Middleware. OSGi technology provides a service-oriented, component-based environment for developers and offers standardized ways to manage the software lifecycle. These capabilities greatly increase the value of a wide range of computers and devices that use the Java™ platform.
  • 19. luminis OSGi Alliance • Expert Groups: • core platform (CPEG) • mobile (MEG) • vehicle (VEG) • enterprise (EEG) • residential (REG) • Working Groups: • marketing • requirements
  • 20. luminis OSGi specification OSGi Service Platform Service Compendium The OSGi Alliance Release 4, Version 4.1 April 2007 OSGi Alliance Digitally signed by OSGi Alliance DN: cn=OSGi Alliance, c=US Date: 2007.02.22 14:44:10 + 01'00' Signatu re Not Verified OSGi Service Platform Core Specification The OSGi Alliance Release 4, Version 4.1 April 2007 OSGi Alliance Digitally signed by OSGi Alliance DN: cn=OSGi Alliance, c=US Date: 2007.02.22 14:45:47 + 01'00' Signatur e Not Verified
  • 21. OSGi Framework Layering L3 - Provides a publish/find/bind service model to decouple bundles L2 - Manages the life cycle of a bundle in a framework without requiring the vm to be restarted L1 - Creates the concept of a module (aka. bundles) that use classes from each other in a controlled way according to system and bundle constraints L0 - well defined profiles that define the environment in which bundles can work, ie: * CDC/Foundation * JavaSE-6 luminis SERVICE MODEL LIFE-CYCLE MODULE Execution Environment
  • 22. Bundle luminis Module Layer exports • Unit of deployment is the bundle i.e., a JAR • Separate class loader per bundle • Class sharing at the Java package level • Supports multiple versions of packages Module Module Bundle Bundle Bundle org.apache.utils 1.0 org.apache.db 1.4 org.apache.log 2.3 org.apache.utils 1.1 exports imports exports imports exports
  • 23. luminis Manifest Bundle-Name: Example Bundle Bundle-SymbolicName: net.luminis.example.bundle Bundle-Version: 1.0.0 DynamicImport-Package: net.luminis.jdbc.* Import-Package: org.osgi.framework;version=“1.3“, org.osgi.service.event;version=“[1.0,2.0)“, net.luminis.foo;resolution:=“optional“ Export-Package: org.osgi.service.event;version=“1.1“ Bundle-ManifestVersion: 2
  • 24. Life-cycle resolved active luminis Life-cycle Layer • Managed life cycle • States for each bundle; • Allows updates of existing bundles • Dynamically install, start, update, and uninstall Life-cycle start end installed install start starting stopping stop uninstall uninstalled Module
  • 25. luminis Life-cycle Example Bundle OSGi Framework
  • 26. luminis Life-cycle Example Bundle OSGi Framework Provided Package
  • 27. luminis Life-cycle Example Bundle OSGi Framework Bundle Install Bundle
  • 28. luminis Life-cycle Example Bundle OSGi Framework Bundle Resolve Bundle
  • 29. luminis Service Layer • OSGi framework promotes service oriented interaction pattern among bundles Service Service Log Database publish use use publish Bundle Bundle Bundle Bundle Prefs publish use publish find Service Provider Service Requester Service Registry interact Life-cycle Module
  • 30. luminis Service Example Bundle OSGi Framework
  • 31. luminis Service Example Bundle OSGi Framework Provided Service Provided Package
  • 32. luminis Service Example Bundle OSGi Framework Bundle Install Bundle
  • 33. luminis Service Example Bundle OSGi Framework Bundle Resolve Bundle
  • 34. luminis Service Example Bundle OSGi Framework Bundle Resolve Service
  • 35. Security Concepts Overview • Codebased security of the Java Security Model • Makes use of Protection Domain • The stack walk based Permission Check • Signed bundles • User based security is supported by Security the UserAdmin service but not integrated in the standard permission Service check as with JAAS • PermissionAdmin and ConditionalPermissionAdmin services provide management infrastructure Life-cycle Module luminis
  • 36. Leveraging standard services • Specification: • OSGi compendium – catalog of standard service luminis descriptions • Implementations: • OBR repository at bundles.osgi.org – over 1400 bundles, implement compendium and other services • Maven repository and third party OBR’s • Springsource has a repository • More and more projects are made OSGi compatible, for example: Apache Commons OSGi, Jetty, ...
  • 37. User Admin Wire Admin luminis OSGi compendium Log XML Parser Position Measurement and State Event Admin Service Tracker HTTP Device Access Configuration Admin Preferences Metatype IO Connector Initial Provisioning UPnP™ Device Execution Environment Spec Declarative Services OSGi Service Platform Service Compendium The OSGi Alliance Release 4, Version 4.1 April 2007 OSGi Alliance Digitally signed by OSGi Alliance DN: cn=OSGi Alliance, c=US Date: 2007.02.22 14:44:10 + 01'00' Signatu re Not Verified
  • 38. luminis Concierge • implements OSGi R3 specification • small footprint: 80 kB • optimized for embedded environments • low resource consumption • tuned for VM’s that interpret bytecode • tested on many platforms • iPAQ, Zaurus, Nokia 9300, LinkSys NSLU, iMote2, ... • Homepage: http://concierge.sourceforge.net/
  • 39. luminis OSGi R3 • no bundle symbolic names • no require-bundle • only one version of a package • a somewhat smaller compendium OSGi Service Platform Release 3 March 2003
  • 40. luminis Dragonfly BUG SDK • software development kit to build applications • Eclipse plug-ins, open source • includes a virtual BUG, an emulator to test applications without hardware
  • 41. SDK interfaces with hardware luminis
  • 42. luminis Agenda • The BUG hardware • The software stack, from kernel to application • OSGi overview • Concierge, R3 and the SDK • Live demos • Hello world on the BUG • Developing and deploying a camera application • Wrapping up
  • 43. luminis Hello World on the BUG • Register ourselves as a listener for button events • When an event comes in, blink all LEDs for half a second • Deploy the code to the BUG
  • 44. luminis Adding modules • at the OSGi level, adding a module means new services appearing • applications can track these services and become active once all required services are present • BUG SDK has a convenient project wizard to help you with that • internally, Service Trackers are used to track OSGi services
  • 45. Developing and deploying a camera application • Use the camera, LCD and accelerometer to: • wait until you hold the device still for a little while • take a picture • display the picture on the LCD • Use the project wizard to depend on the right services • Deploy to the BUG • Test the application luminis
  • 46. luminis Agenda • The BUG hardware • The software stack, from kernel to application • OSGi overview • Concierge, R3 and the SDK • Live demos • Hello world on the BUG • Developing and deploying a camera application • Wrapping up
  • 47. luminis Wrapping up • We’ve looked at the open software and hardware stack of the BUG • After a brief look at OSGi, we developed and deployed a couple of applications to the BUG • Before you ask, a new version of the BUG, which supports WiFi is scheduled for June and will ship to europe (you need a US address now) • The BUG community is very supportive, check it out on their site and go to #buglabs on Freenode IRC
  • 48. luminis Links • Slides, docs and code: http://opensource.luminis.net/ • Buglabs: http://buglabs.net/ • OSGi: http://www.osgi.org/ • Marcel Offermans: marcel.offermans@luminis.nl