Q&A with John Duimovich
Recently the OSGi Community Event organizers held a Q&A session with keynote speaker John Duimovich (We Can Do Better: IBM's Vision of the Next Generation Java Runtimes).
What OSGi-related work have you been most closely engaged in over the last 12 months (products, projects, standardization work)?
I work on the IBM J9 Java runtimes, which serve as a base for a number of our product offerings. Our focus has been working out how the proposed addition of modularity into the Java platform itself can best support and enhance OSGi runtimes. Some of this work is being done in the Penrose project in OpenJDK. A critical part of this is performance, ensuring OSGi runtimes that underpin a huge number of IBM products are fast, lightweight, reliable, and can exploit unique features of IBM’s runtimes, such as shared classes.
What are the greatest OSGi benefits for your work?
As a virtual machines implementer, I see great value in understanding the dependencies that OSGi exposes between components, including those in the JDK itself, which can then be leveraged for smaller, faster runtimes.
What is the most challenging task the OSGi Community will face over the next two years?
OSGi has some great technology. Most people agree that modularity is a “good thing” but then don’t invest in using it because it can be too difficult to use. The challenge will be to continue to simplify its use. Tools like Eclipse with its built-in OSGi support and bndtools will help, but some more thinking on how to drive radical simplification is needed.
What new opportunities/applications do you see arising for OSGi in the next few years?
What can we expect from your company in this field?
IBM is heavily involved in the OSGi Alliance and its technology now, and has been for many years. We will continue to evolve the standard as well as deliver robust modular enterprise runtimes like our WebSphere Application Server Liberty Profile.
Please provide us with a glimpse on what you will focus on in your keynote.
I plan to talk about a future for Java which includes modularity as the core and what that would mean for the platform and runtimes.
In your experience, how have business needs intersected with OSGi technology? Can you provide an example?
Our enterprise customers need to simplify software development, they needed faster development time, easier configuration in a runtime that is lightweight, fast, and efficient. The WebSphere Liberty Profile, a dynamic profile of the WebSphere Application Server uses OSGi to deliver that functionality. As a developer, it’s pretty nice – very fast startup, small fit-to-purpose footprint and a fully dynamic runtime so changes are automatically loaded as I make them in my IDE. Nice.
This year’s OSGi Community Event theme is “Reducing Complexity with OSGi.” How does modularity, and OSGi in particular, work to reduce software complexity?
Modularity is a way to survive complexity. I don’t think all the complexity goes away, but with tools like modular applications and runtimes, you can better reason about software components and probably reduce your headaches in building that complex software.
Reducing complexity of building and maintaining large enterprise applications was a major motivation for adding OSGi to the programming model for WebSphere customers, and we’ve seen that this direction resonates really well with customers struggling to evolve large enterprise systems. Many studies have shown that enterprises spend the bulk of their budgets on maintenance today. The beauty of maintaining these modular OSGi applications is that developers can confidently apply their maintenance to just the modules that need it. Enforced modularity minimizes the chance that the changes will have far-reaching unexpected side effects that are often very time-consuming to debug. Reducing the time developers need to spend on maintenance frees them to create enhancements and new applications to meet the challenges facing their enterprises.
How does speaking to the OSGi community affect or influence your own OSGi work? What’s the effect of collaboration between OSGi developers like those who will attend this event and development conferences?
I’m a VM developer, so I have different perspective on OSGi runtimes. I’m hoping to influence OSGi developers and community to enable collaboration with runtime implementers to create the next generation of highly efficient, small, fast modular runtimes.