Monday, August 12, 2019

OSGi Community Event 2019 -- Keynote and Talks Announced


We are pleased to announce that the details of the selected talks for this year's Community Event are now available.  You
can find a list of talks, titles, and abstracts online.

Congratulations to everyone selected and thanks to everyone who made a submission for the OSGi Community Event 2019. We recognize that it takes time and effort and appreciate all of the submissions.
Keynote Speaker
The OSGi keynote speaker for the 2019 Community Event is Matt Rutkowski, IBM CTO Serverless Technologies and he will be speaking on Java in the Age of Serverless: The Path Forward.  Read the full abstract here.
Registration and Hotel
If you are joining us in Ludwigsburg at the event October 22-24 then we encourage you to register early to secure the best price and also to make your hotel reservations as soon as you can as the conference hotel (Nestor Hotel) always sells out well before the event.

Monday, July 29, 2019

New OSGi Work - Features

As recently the OSGi R7 Core, Enterprise and Compendium specs were completed, work has started on the next specifications for OSGi R8. Over the coming few months we'll focus on some of the new work that is underway at OSGi, here on this blog. In this post, we'll look at OSGi Features.

OSGi Frameworks are being used in many different scenarios, from embedded devices and set-top boxes to UI desktop applications and enterprise back-end server applications.  As your OSGi-based application grows, so does the number of bundles that define the application. In many cases, OSGi applications can grow to hundreds of bundles or even more. When an application reaches such a number of bundles, it can become hard to fully understand the role of each and every bundle in the application.

For this reason, many open-source communities and commercial products have started to develop solutions to group features together into more chunky, reusable components. The existing solutions generally combine both a design mechanism for these larger components plus an accompanying runtime. For example, there are Apache Karaf Features, Eclipse Features, Apache Sling Features, OSGi Subsystems, and others.

OSGi Features focus on architecting groups of bundles, configuration, and metadata, defining a mechanism to describe these groups. The Features can at runtime be mapped to existing implementations that support such functionality and in this way provide portability across these.

For example, you might create a Feature that defines a web service to record and provide gaming high scores. Your Feature might use other existing Features that provides HTTP, Jax-RS and database access. As Feature definitions can be published into a repository, such as a Maven Repository, you can use other Features simply by referring to them using repository coordinates. Once your Feature is ready to be used, you can publish yours in a repository, so that others can use it as well.

OSGi Features are extensible so that you can store your own metadata, along with the declaration of your binaries and configuration. This keeps things that belong together, defined together. For example, let's say your application needs a specific database schema to run. You can then declare this inside your Feature, rather than in a side file which might get out of sync.
And, Features are a neat way to scope your entire application: if you want to create a Docker image with a slimmed down version of the Java runtime, your Feature definition is a great way to know what you need from Modular Java and what parts you don't need, and could even be used to generate a minimal runtime image.  As OSGi Features are defined using JSON, so they can be handled by tools and other runtimes, which can be useful when validating them or for processing custom extensions.

To summarize, OSGi Features are aimed at architecting reusable components for OSGi that are larger than bundles. OSGi Features are a design artifact, they don't mandate a specific runtime for it. Therefore OSGi Features can be mapped to existing technologies that already exist in this space, or be used as-is by tools and runtimes that natively handle them.

To learn more about OSGi Features. they are being discussed in RFP 188 and RFC RFC 241. Both can be found at the OSGi design github repo: https://github.com/osgi/design

Tuesday, July 9, 2019

OSGi Community Event 2019 Early Bird Pick & Registration Now Open

Congratulations to Raymond Augé from Liferay, Inc. for being selected as the Early Bird pick!  The title of his talk submission is OSGi CDI Integration Specification.

Abstract
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

About Raymond Augé 
Raymond Augé 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; lead of the Eclipse Project for Common Annotations specification; committer and company representative at the Eclipse Foundation and OSGi Alliance Board of Directors and Enterprise Expert Group co-chair; Raymond demonstrates a vigorous passion for open source and open standards.

Event Registration
If you are already planning on joining us you will be pleased to know that Registration for the event is now open and you can secure the best prices by booking early.

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.