Wednesday, May 29, 2019

OSGi After 20 Years


Post written by Peter Kriens, OSGi Fellow and CEO of aQute SARL 


Looking at the current adoption of microservices it is hard to not think, "We told you so 20 years ago!” The reason why microservices work so well is it provides a well-defined API entry point into a module. The caller has a dependency to an API but can ignore the messy details of how that API is implemented; and even more important, what kind of dependencies that module has. Since software complexity grows exponentially with the number dependencies reduction in complexity can be humongous.

This is exactly the core idea of the OSGi service model we developed already 20 years ago, long before REST was a well-known term. Does that mean that OSGi can be retired since its architecture has become an overnight success? I don't think so because OSGi has one humongous advantage over REST services: choice.

OSGi applications are structured as nano-services. Nano services follow the architectural rules of the micro-services but have a much lighter weight. Calling a nano-service has no overhead, unlike calling a micro-service. The good news is that well-designed nano-services can easily be upgraded to micro-services with no impact on the implementations. This makes it possible to start simple in a simple container and then gradually promote nano-services to micro-services in other containers. No other environments but OSGi makes it so easy to do this kind of migration.

I point out this clear advantage of OSGi because it is so recognizable for every OSGi developer. However, when you use OSGi in anger you also learn that it provides more advantages. OSGi provides the plumbing that puts you in control of your development process in a way that I've not seen anywhere else. Few people outside the OSGi even remotely understand the requirements and capability model, and that is their loss. However, organizations that reach the maturity level to use it will never let it go.

Last week, we had the perfect example. One designer had made a change to the runtime setup and 10 minutes later the CI build failed because he had forgotten a crucial capability that was used in one of the hundreds of bundles. Something that might not have been found until the code had been deployed to hundreds of thousands of gateways. OSGi provides the type safety between modules that Java provides between classes.

Being the first in the Java market to do modularity we've taken a lot of bad rap for problems caused by the nature of modularity. JPMS has by now shown that modularity is not a secret sauce that can be sprinkled over a code base. And yes, there is a certain amount of vindication.

To reach modularity maturity requires hard work because our industry has a surprising number of unmodular practices. However, as I can see with my customers, OSGi does deliver when you apply it as it was intended. The road to maturity is a drag but once you're on cruise level, it is indeed very smooth flying.


Monday, May 20, 2019

OSGi Community Event 2019 -- CFP Now Open



The OSGi Community Event 2019 is returning to Ludwigsburg, Germany where we will be co-located with EclipseCon Europe again.  The event will be held October 21-24 inclusive and will feature an OSGi tutorial, talks, a BOF and other OSGi community-related activities.  Attendees will have access to the full program at the OSGi Community Event and EclipseCon Europe.


CALL FOR PAPERS IS OPEN


We are pleased to announce that the Call for Papers (CFP) for the OSGi Community Event 2019 is now open.

We are looking for one, 3-hour tutorial and many more 35-minute talks.  The CFP is open to anyone who has experience, expertise, or a story to share about OSGi technology or the OSGi ecosystem.  We are particularly interested in use cases and new initiatives around OSGi in enterprise, embedded, cloud, telco and IoT.

The Early Bird deadline is July 1 and the final submission date is July 15. 

We use the OSGi EclipseCon Europe submission system, so be sure to select “OSGi” as your talk category to ensure the OSGi Community Event Selection Committee receives your submission.  Review submission FAQs and submit your proposal here on the EclipseCon Europe website. You will need an eclipse.org account to submit and you can create an account here if you do not already have one.

If you have any questions about submissions or the conference in general, then please contact us. We are looking forward to reading your talk and tutorial submissions and also seeing you at the OSGi Community Event in Ludwigsburg in October.  

Thursday, May 2, 2019

OSGi Alliance Milestones & Achievements

Happy 20th anniversary to us!  Let's take a walk down memory lane and look at the many achievements and milestones that OSGi Alliance has accomplished over the last 20 years.

You can also view the two-decade timeline of OSGi Alliance Milestones & Achievements here. 


Chicago JUG OSGi Meetup -- Wed., May 22


On Wednesday, May 22, the Chicago JUG will be hosting an evening with the OSGi Alliance Expert Group.  The event will be held 6:00-8:00 pm and you may register here.

You won't want to miss this event and hear from two members of the OSGi Alliance Expert Group -- Raymond Augé, Sr. Software Architect at Liferay, Inc. and BJ Hargrave, Senior Technical Staff Member at IBM, who will present on three topics:

Presentations:
1)      OSGi CDI Integration Specification 
       (Speaker: Raymond Augé)
The OSGi Alliance has developed a specification describing integration between OSGi and CDI. The combination of these two powerful development technologies opens the door to new possibilities. This talk will walk through the most essential features of the specification and show some code and running examples.

2)      Building OSGi Projects with Bnd in Maven (Speaker: Raymond Augé)
The Bndtools.org team has spent a number of years focused on improving support for OSGi development in Maven. This talk will demonstrate the latest innovations demonstrating features such as quick setup, minimal configuration, use of bundle annotations, BOM support, testing and running.

3)      Promises in Java: Using Promises to recover from failures (Speaker: BJ Hargrave)
Communications is error prone. Connections time out, servers fail to respond, returned data can be incomplete or corrupted. Bnd, the OSGi tooling project, has an HttpClient class which is used for communications including with remote repositories like Maven/Nexus and P2 repositories. The Bnd CI builds started having significant failures due to communications problems with the Eclipse download servers, so with some light code restructuring, I was able to add retry support to HttpClient using the Promises package from OSGi.  This session will take a look at the Promises package and how it was easily used to recover from communications failures.

ABOUT THE SPEAKERS:

Raymond Augé (@rotty3000)
LifeRay, Inc.
Raymond is a Sr. Software Architect at Liferay, Inc. As an Apache Software Foundation member and PMC of Apache Aries, Apache Felix and Apache Geronimo projects, committer on the Bndtools.org project, committer and company representative at the Eclipse Foundation and OSGi Alliance Board member and Enterprise Expert Group co-chair, Ray demonstrates a strong passion for open source and open standards.

BJ Hargrave (@bjhargrave)
IBM
BJ is a Senior Technical Staff Member at IBM. He leads the development of OSGi technology since its inception and is currently CTO of the OSGi Alliance and chair of the OSGi Core Platform Expert Group. He is also a committer on the Eclipse Equinox project and the Bndtools project.