This 4-day workshop will provide delegates with an excellent grasp of OSGi technology, from the fundamentals through to advanced and enterprise topics. This course is delivered by either Neil Bartlett or Tim Ward, both of whom are well known and experienced OSGi developers, consultants and trainers.
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 we’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 we will look at one of the most important patterns used in constructing real applications using services, namely the “Whiteboard Pattern”.
Day Two: We 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. We conclude with a review of alternative component models including Blueprint and Apache Felix iPOJO.
Day Three: We explore 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. Next we will look at the Compendium of useful services offered by the OSGi specification, and also some useful third-party modules and tools.
Day Four: Today we focus on enterprise topics. We cover distributed programming with Remote Services (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). We finish by exploring OSGi interoperability with Java EE specifications including JNDI, JTA, JPA, JDBC and JMX.
- 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
- 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 including Blueprint and iPOJO.
- Bundle lifecycle. Bundle events. Concurrency and thread safety.
- Extender bundles.
- 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.
- 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.
- OSGi sub-systems.
- OSGi future directions.
- JDK 8 module system (Jigsaw) and how it will affect OSGi.
- Other JVM languages in OSGi: Scala, Groovy, Clojure, Xtend.
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 with at least Java 1.6 and Eclipse 3.7 installed and and the users must have admin rights to install plugins and software as required for the hands on elements of the course. The laptop must either be provided with USB access or able to download the lab exercises from Amazon S3 or GitHub. 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
- 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.
Whats 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 must have at least Java 1.6 and Eclipse 3.7 installed.
About the Trainers
The course tutor will be either Neil Bartlett or Tim Ward.
Neil Bartlett, a Principal Engineer, Consultant and Trainer with Paremus, is an experienced software developer, consultant and trainer specialising in Java, OSGi, Eclipse and Haskell. Neil 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 ran in partnership with Peter Kriens, the former OSGi Alliance™ Director of Technology.
Neil is a prolific tweeter on all things #OSGi and very willing to answers peoples questions and queries (@njbartlett). Neil’s willingness to help people get to grips with OSGi has also meant he can often be found responding to many of the OSGi Stack Overflow related questions.
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.
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.
Tim Ward, a Principal Engineer, Consultant and Trainer with Paremus, has been working with OSGi since 2008. Tim is recognised globally for his OSGi expertise, regularly speaking and giving tutorials at conferences around the world on topics such as OSGi, the Java Persistence API, Apache Aries, and WebSphere Application Server. Tim is also co-author of one of the more recent OSGi Books from Manning Publications called Enterprise OSGi in Action.
As a regular participant in the OSGi Core Platform (CPEG) and Enterprise (EEG) Expert Groups Tim has led specification development for a number technologies, co-authoring the JPA service specification in the EEG, and driven the design for bytecode weaving and classpath scanning support from the core framework in the CPEG.
Tim is also active within a number of Open Source projects being a committer in the Apache Aries project, involved with the Bndtools project and recently got involved with the Hibernate team’s adoption of OSGi. For his contributions to Hibernate’s adoption of OSGi Tim has been nominated for the JBoss Community Recognition Awards 2013 where they comment “Tim’s expertise, help, advice and support were instrumental in getting OSGi support into Hibernate. As an Apache Aries PMC member and Enterprise OSGi advocate, Tim has a wealth of knowledge; but his patience and knack for doing a great job at explaining the concepts were what made him truly amazing to work with. Without Tim’s help OSGi support in Hibernate would still be a talking point rather than an implemented reality.”
Formerly with IBM, where Tim was a design and development lead for IBM’s OSGi Application Feature Pack for WebSphere Application Server, now known in WebSphere as the OSGi Application programming model, a core part of both the standard and “Liberty.
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 Duration & Timings
The course is a 4 day course and runs from 9.00hrs to 17.00hrs each day.
40% Hands-on Labs and Exercises, 60% Presentation.
Private Training Courses
If you would rather arrange a private training course at your office or a more suitable location then please contact our training team. Private training course syllabuses can be tailored to your specific requirements.
Course Schedule & Fees
London, Sept 23-26, 2013
Early Bird Price (until 18 Aug, 2013)
Standard Price (from 19 Aug, 2013)
Maryland, Oct 7-10, 2013
Early Bird Price (until 31 Aug, 2013)
Standard Price (from 1 Sep, 2013)
New York, Nov 18-21, 2013
Early Bird Price (until 4 Oct, 2013)
Standard Price (from 5 Oct, 2013)
Frankfurt, Dec 9-12, 2013
Early Bird Price (until 25 Oct, 2013)
Standard Price (from 26 Oct, 2013)
How to Book
To secure your place on a course please either register online using the above Book Now buttons for the course you are interested in or send us an email indicating which course dates 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 & Conditions
The Public Training Course terms and conditions can be reviewed here.
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.