Paremus logo
 
 
   
   
 
 
   
     
 
 
 
 
 
 
 
 
 
 
 
 
 
OSGi Training Synopsis
 
Overview  
   

This 4-day workshop will provide delegates with an excellent baseline grasp of OSGi technology, from the fundamentals through to advanced and enterprise topics and is delivered by renowned OSGi developer, consultant and trainer Neil Bartlett.

On day one, you will be introduced to OSGi and learn how it meets the challenge of building modular, scalable application architectures for the Java Platform. We will review the three principal open source implementations and then dive into the construction of modules, learning how to define dependencies between them and manage versions of APIs.

Next you'll move onto OSGi Services, the lynchpin of OSGi's programming model and the key to creating flexible, reusable components. You will use the Declarative Services (DS) specification to build components that react to their environment, configure themselves dynamically and interact with other components. Then you will look at one of the most important patterns used in constructing real applications using services, namely the "Whiteboard Pattern".

On day two, we will return to practical topics such as how to build and test modules using industry-standard tools such as ANT, Maven, JUnit and Hudson/Jenkins. Also we will cover how to define and manage a runtime application using combinations of modules and configurations, and how to correctly evolve APIs and implementations over time.

Day two concludes with a review of alternative component models including Blueprint, Spring Dynamic Modules, Guice/Peaberry and Apache Felix iPOJO.

On day three you will learn about the full module lifecycle, how to safely update modules at runtime, and how the lifecycle affects services. We will discuss another common and useful OSGi pattern known as the "Extender Pattern", examine examples of existing extenders such as the Eclipse extension registry, and build our own extender.

The second half of day three comprises a review of the Compendium of useful services offered by the OSGi specification, and also some useful third-party modules and tools. These will include:

  • Event Admin for asynchronous event delivery;
  • Configuration Admin for configuring components and managing configuration data;
  • Metatype Service for defining tool-accessible metadata about services;
  • HTTP Service for building lightweight web servers;
  • Coordinator Service for coordinating tasks across decoupled components.

Day four focuses on enterprise topics. We cover distributed programming with Remote Services (sometimes known as Distributed OSGi or D-OSGi), including how to manage discovery and topology in a network containing a large number of nodes. Next we will build a RESTful web service based on standard JAX-RS technology with an OSGi twist, and look at all the options for deploying web applications in OSGi, including embedding an OSGi framework inside a Java EE application server or web container (e.g. Tomcat).

Day four finishes with the topic of OSGi interoperability with Java EE specifications including JNDI, JTA, JPA, JDBC and JMX.

 
   
Course Duration  
   

4 Day Course.

 
   
Who is This Course For?  
   

If you are a Java developer interested in gaining a thorough understanding of OSGi and how to use it to build highly modular, extensible applications, then this course is for you.

 
   
Course Prerequisites  
   

You should be a competent Java developer or hands-on architect and will need to have a good understanding of core Java. Some experience with using a build tool such as ANT and an IDE such as Eclipse will be useful but not essential.

Each delegate should bring their own laptop and this must be capable of running Eclipse. Ideally the laptop should have at least Java 1.6 and Eclipse 3.7 installed. If delegates do not have access to their own laptop a machine can be provided at additional cost, with at least 2 weeks advance notice to Paremus.

 
   
Course Format  
   

40% Labs and Exercises, 60% Presentation

 
 
Course Topics  
   

Introduction

  • What is modularity? State of the art in plain Java. "JAR Hell".
  • OSGi bundles. Package-level dependencies, bundle-level dependencies, versioning basics.
  • Tooling approaches. Using bnd and Bndtools.
  • Open source OSGi implementations: Equinox, Felix and Knopflerfish.

Services

  • Introduction to Services.
  • Declarative Services. Component lifecycle. References to services. Laziness.
  • Configuring components.
  • Whiteboard Pattern.

OSGi in Practice

  • Building bundles with bnd and ANT.
  • Other tools: Eclipse PDE, Maven with Bundle Plugin, Maven Tycho.
  • Unit testing, integration testing.
  • Configuring runtimes. Repositories, OBR.
  • Evolving APIs. Semantic versioning.
  • Other component models. Blueprint, Spring-DM, Guice, iPOJO.

Lifecycle

  • Bundle lifecycle. Bundle events. Concurrency and thread safety.
  • Extender bundles.
  • OSGi Compendium review. Event Admin, Config Admin, Metatype, HTTP Service, Coordinator.

Enterprise

  • Remote Services. Distribution, discovery and topology. Available implementations.
  • REST and OSGi. Jersey, JAX-RS, Restlet.
  • Web Application Bundles (WABs). Web deployment options.
  • Embedding OSGi. Writing a launcher. Integration between OSGi and the outer application.
  • Java EE interop.
  • Bridging OSGi to EJB with JNDI.
  • Transactions with JTA.
  • Persisting domain models with JTA. JDBC drivers in OSGi.
  • Managing OSGi runtimes with JMX.
 

About the Trainer

Neil Bartlett

Neil Bartlett is an experienced software developer, consultant and trainer specialising in Java, OSGi, Eclipse and Haskell. Neil has been working with Paremus since 2009, joining full time in 2011 and has been working with OSGi technology since 2004.

His OSGi expertise is well recognized across the world and he has provided consulting and training for numerous organizations and individuals in many different countries.  Neil is also a co-author and trainer of the OSGi Masterclass advanced OSGi training that he runs in partnership with Peter Kriens, the OSGi Alliance™ Director of Technology.

Neil is a prolific tweeter on all things #OSGi and only too willing to answers peoples questions and queries (@njbartlett). Neil’s willingness to help people get to grips with OSGi has also meant he has responded to many of the OSGi Stack Overflow related questions and resulted in him being the only person to hold the ‘OSGi’ badge on Stack Overflow.

His current passion is to make sure that development with OSGi is easier than developing with Java.  To this end Neil is the creator of Bndtools which offers a plugin to Eclipse, leveraging Bnd, that makes it easy and productive to develop with OSGi.

As a budding author, Neil has published OSGi in Practice, a free Creative Commons-licensed book on OSGi. Unfortunately due to other commitments it is in perpetual draft, but it is still a highly recommended and well thought-of read for anyone starting out. And if you are into OSGi books you should also take a look at OSGi in Action, published by Manning, which is co-authored by David Savage from Paremus.

With Paremus, in addition to his duties working on development for the Service Fabric and helping support customers, Neil is an actively engaged in the OSGi Alliance Enterprise Expert Group, which is tasked with defining the specifications for Enterprise OSGi. Neil also contributes to the Paremus Blogs.

Recommendations for Neil and his work (via LinkedIn) include:

“I was impressed by Neil’s excellent technical skills and structured approach to problem solving. These combined with his creative thinking and innovative solutions mean I have no hesitation in recommending Neil to anyone looking for top quality IT Consultant.”

“Neil was part of a highly professional team of consultants on site at a Bank in the City of London. He immediately fitted in and took responsibility for some important components of the application being developed. These components involved unusual mixture of server and client code, i18n and business functionality. Neil was fast to pick up the requirements and delivered on time and on budget great implementations. I do recommend him for his work and his team spirit. He is highly technical architect and thrives on innovation and lateral thinking.”

“Neil has a first class technical background and constantly improves his skills with new challenges. You can count on Neil to deliver quality. Neil is highly literate and able to easily articulate technical issues in a way all people can understand. I have no hesitation in recommending Neil as a consultant and financial services specialist.”

“Neil is a meticulous developer with a great understanding of development languages, their syntax and building development environments for them. Neil is a good team player and is very responsive to the needs of other developers. I only worked with Neil for a short time, but I would have no hesitation in recommending Neil for other development roles.”
 

Optional topics if time permits:

  • OSGi sub-systems (upcoming specification preview).
  • OSGi future directions.
  • JDK 8 module system (Jigsaw) and how it will affect OSGi.
  • Other JVM languages in OSGi: Scala, Groovy, Clojure, Xtend.
 
What's Included?
 
  • All course notes which will be provided electronically and in paper format for each delegate.
  • A certificate for each delegate that completes the course.
  • A subscription to a private email list for training course alumni.
  • Tea/Coffee/Soft Drink Refreshments throughout the day.
  • Lunch
 
What's Not Included?
 
  • Travel, subsistence or accommodation for delegates.
  • A laptop for the delegate to participate in the lab sections of the Training Course. This machine should ideally have at least Java 1.6 and Eclipse 3.7 installed.
 
Training Course Copyright
 

Please note that the contents of the training course are copyright Paremus and Neil Bartlett. The training course hand outs may not be reproduced by any means without express permission from Paremus.  All rights reserved.

 
Trademarks
 

All trademarks are acknowledged as belonging to their respective companies.

 
Course Schedule & Course Fees
 

The OSGi Training Course is being offered as a public course in a number of locations during 2012 and 2013. Private training courses can also be provided at a location of your choice, subject to minimum number of delegates. For requests for private training courses please contact us at training@paremus.com.

Confirmed locations, dates and course fees (excluding applicable local taxes) for the OSGi Training Course are currently as follows:

 
Location Dates Course Fee (per delegate) Book

London (UK)

Dec 10 to 13, 2012

Early Bird (until Nov 16, 2012)
From Nov 17, 2012 onwards

£1,195
£1,495
Sydney, Australia Feb 25 to 28, 2013

Early Bird (until Jan 22, 2013)
Jan 23, 2013 onwards

AUD$2,295
AUD$2,695

New York (USA)

May 13 to 16, 2013

Early Bird (until Mar 31, 2013)
Apr 1, 2013 onwards

US$2,195
US$2,595
 
 
Terms & Conditions
 

The Public Training Course terms and conditions can be reviewed here.

 
How to Book
 

To secure your place on the Training Course please either register online using the above links for each course or send us an email to training@paremus.com indicating which location you are interested in and the number of delegates along with your name, email address, contact telephone number and company name (if applicable).

Online registrations can either be paid for by credit card or you can request an invoice.

 
 
 
     
 
 
Terms of Use and Privacy Policy
Paremus, Paremus Nimble and Making Modularity Manageable are trademarks of Paremus Ltd. All rights reserved.
Copyright © Paremus Ltd 2001-2011