Upload
mfrancis
View
2.153
Download
1
Tags:
Embed Size (px)
DESCRIPTION
OSGi requires additional expertise from Java developers. During the first OSGi Code Camp (OCC) [1] organized by OSGi Users’ Forum Germany [2], we tried to bring OSGi beginners and experts together, to learn the core concepts and ideas behind OSGi. There will be a 2nd OSGi Code Camp held on 1st of October in Berlin extending the idea of a software craftsmanship training for OSGi beginners and experts. The first part of the talk describes the agile method we used to teach OSGi core concepts by developing an OSGi demo application in pair-programming mode. In the second part of the talk we will explain how we intend to advance the code camp approach by providing a running example - a Robot running on OSGi [3]. The core OSGi concepts will be demonstrated and teached through extensions to the prepared sample application, developed by the Code Camp participants. The extensions are developed in pairs with one OSGi expert and a beginner. The final part of the talk shows the running interactive 3D robot demo application, and explains which OSGi concepts we think should be added during the next code camp. [1] http://germany.osgiusers.org/Main/SummerOCC2010 |2] http://germany.osgiusers.org [3] http://code.google.com/a/eclipselabs.org/p/occ2010/
Citation preview
COPYRIGHT © 2008-2011 OSGi Alliance. All Rights Reserved
Getting started with OSGi
using a 3D OSGi Robot sample application
Christian Baranowski, SEITENBAU GmbH Jochen Hiller, Deutsche Telekom AG, Products & Innovation September 20th 2011
Page 1
What is an OSGi Code Camp?
Experience from the first Camp
OSGi Alliance Marketing © 2008-2011 . All Rights Reserved Page 4
#1 Agile Design
• Components
• Interaction
• “Post-it”-Design
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 6
#2 Pair Programming
• Pair programming
• OSGi beginners/
experts
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 7
#3 Communication
• Ad-hoc design of
component interaction
• Interfaces agreed
between pairs
• All developers in 1 room!
• Loud!
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 8
#4 Test Driven Development
• Focus on OSGi concepts
• Too much time for
infrastructure setup
• No time for testing!
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 9
#5 Continuous Delivery
• Build server
available
• No one did care
• Late integration
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 10
Summary and Lessons Learned
from the first Camp
We need…
• Development VM
• Cool application
• List of OSGi
concepts to be
implemented
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 11
Live Demo Mars Robot
How to teach OSGi by Example
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 12
Bundle Context API
and Lifecycle
• Simple provisioning
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 13
Separate Interface (Service API)
and Implementation Bundle
• Mars robot API and world implementation bundle
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 14
Whiteboard Pattern
• Simulator desktop bundle adding internal frames
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 15
Extender Pattern
and Bundle Tracker
• Adding static objects to mars world
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 16
Configuration Admin and
Metatype Service
• Creating wall and robot instances
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 17
Event Admin Service
• Integration sensor data view and world (event bus)
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 18
Extending the OSGi Console
(OSGi RFC 147 Draft)
• Robot commands to move and rotate the robot
• Shows how to use OSGi service properties
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 19
OSGi Concepts
Should be added during the next camp
• Simulator by using the Event Admin Service
• Robot web control console with the HTTP Service
• WAR bundles (RFC66) to build a web console
• Remote robot console using OSGi Remote Services
• Service handling e.g. adding other object types to the world (balls) • with Service Tracker
• using Blueprint components
• Offer sensor and robot data by using Monitor Admin Service
• Add logging with the Log Service
• Preferences Service to persist some user settings (e.g. world size)
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 20
Conclusion
• Mars Robot is a cool application
• OSGi concepts can be demonstrated very easily
• Robot domain nice for running OSGi example
• Extensible in various areas
Mars robot as a “PetStore” for OSGi applications?
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 21
OSGi Code Camp Berlin
• about
20 participants
• VirtualBox VM
• Felix, bndtools
• Hosted at Telekom
Laboratories
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 22
Discusssion and Q&A
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 23
References
• Simbad 3D Robot Simulator http://simbad.sourceforge.net/
• Richard S. Hall et. al. OSGi in Action - Creating Modular Applications in Java
• Apache Felix: RFC 147 Overview http://felix.apache.org/site/apache-felix-gogo.html
• OSGi Code Camp 2010 – Konstanz http://germany.osgiusers.org/Main/SummerOCC2011
• OSGi Code Camp 2011 – Berlin
• http://germany.osgiusers.org/Main/SummerOCC2010
• bndtools http://bndtools.org
• Apache Felix Application Demonstration http://felix.apache.org/site/apache-felix-application-demonstration.html
OSGi Alliance Community Event 2011© 2008-2011. All Rights Reserved Page 24