Audience: Developers and Architects who are looking for a standardized component architecture in the embedded or enterprise space.
Prerequistes: Good knowledge of the Java programming language and some experience with the Eclipse IDE.
Duration: One or two days
OSGi Overview and principles
Within the OSGi workshop we first introduce the history and origin of OSGi and the OSGi Alliance. We look at the current status and give an overview over the OSGi Service platform, the OSGi Framework and its layered architecture.
Releases & Implementations
Within this section the OSGi Expert groups & Committees and their responsibilities are introduced. An overview over available OSGi implementations - open source and commercial - completes the introduction.
Fundamental OSGi Concepts
The following topics are covered:
- OSGi Execution Environment
- Module Layer
- LifeCycleManagement
- Classloading issues
- Service Layer
- Bundle and Bundle interaction
We look at OSGi Bundles (managed software components) and the Bundle's life cycle. We examine the Bundle Manifest, Bundle dependencies and the OSGi dependency resolution. Furthermore we introduce OSGi Services, the OSGi Service Registry and the Service Life Cycle. Then we show a summary of the available OSGi standard services (EventAdmin, ConfigurationAdmin, Log Service, Http Service, ..).
Eclipse/Equinox
During a demo of Eclipse and Equinox, we show OSGi related Eclipse views like the OSGi Console, special launch configurations and wizards. We will implement new Bundles, start and stop them and register Services within the OSGi Service Registry.
OSGi - Best practices
Based on the demo we will present best practices when implementing OSGi applications. We show how to manipulate OSGi Services, introduce the Whiteboard approach pattern and the using of Service Trackers. Furthermore we will discuss design considerations for Bundles.
Remote Update
We will show the Eclipse Update Manager, discuss considerations regarding Remote Update. In addition we can look at some real projects and discuss the lessons we've learned when implementing Remote Update functionality. Furthermore we can insert a presentation of the IBM product IBM Lotus Expeditor which supports these topics also.



