When I first heard about OSGi I had no clue what it was. To be honest I initially confused it with OGSA, the Open Grid Services Architecture, which seems like another over-ambitious (and ultimately unsuccessful) initiative to enable pooled computing resources through traditional vendor standards efforts.
But I swiftly realised the error of my ways. OSGi has massive potential. It is an industry changer. Any time an initiative from the cell phone and device world is enthusiastically adopted by major middleware vendors you think it has to be worth examining. So what is the Open Services Gateway Initiative (OSGi) and what does it have to do with Stackless Stacks? Component-based development is a common idea, but component-based production is a whole different ballgame.
OSGi in the Wild
OSGi allows modules of Java classes to be loaded on demand. There is no need to load the entire Java stack to run an application – just the runtime services it actually requires. OSGi therefore enables a more dynamic, less constricted Java, which partially explains its enthusiastic backing from major vendors such as IBM, BEA and Oracle. Sun is not such a big fan because it fears a loss of control of Java stack standards efforts. (How many times will I have to write that?)
IBM and BEA are currently more aggressive in consuming OSGi than exposing it in their production environments. Nobody is talking about a Websphere OSGi Edition for example. But OSGi is underpinning some of IBM and BEA’s most interesting technologies.
BEA’s “micro-services” architecture, allowing it to be far more flexible in absorbing acquired technologies, and repackage existing technologies in different bundles, is OSGi-based.
Meanwhile IBM Lotus Expeditor, a client side integration framework, is extremely flexible. Customers can, for example, choose to deploy only those services which they require for collaboration applications. That is, the enterprise can define and deploy its own service bundle, based on a subset of the “stack” IBM provides. Another powerful effect of using OSGi in its Lotus products is the slick and seamless integration it enables- for example with Cisco IP Communicator.
The Death Of The Stack: SOA for production
When I planned to write this quick post I had a title in mind – the Death of the Stack. While I realised the inflammatory and possibly misleading aspects of the title, I felt it captured something of the move to more flexible production environments. The “stack”, after all, as seen on PowerPoint decks slide everywhere is a monolithic but comfortable place to run apps with confidence (and to sell middleware). It was on an OSGi call with Ian Skerrett, marketing director of the Eclipse Foundation (client), which is a strong supporter of OGSi in the shape of its Equinox runtime project, that my colleague Cote casually came up with a far better construction: “oh sure… you mean a Stackless Stack”.
As Cote himself might say- blammo!
In case you didn’t take that in – Eclipse, which used to be a developer tools framework is now evolving into a fully fledged component/service oriented runtime. SOA is one of the most hyped terms of the recent few years in IT, but the story has largely focused on design time, rather than runtime flexibility. What would a SOA for middleware deployment look like? Like OSGi.
Another technology carrying us towards the stackless stack is Spring, which simplifies interfaces for enterprise Java programming. Spring has exploded onto the Java middleware scene-already adopted by BEA, IBM (client) and Oracle in response to strong customer demand for the open source software.
Starting Up With Distributed OSGi Runtimes
An interesting example of the stackless stack approach comes from RedMonk client Paremus, which recently announced support for Spring Dynamic Modules in its Infiniflow Service Fabric product. Paremus uses the Service Component Architecture (SCA) descriptions to manage the component model, so a Spring application can be dynamically loaded and reloaded from a single machine to a massive cluster. Build in Eclipse then choose a target deployment architecture. Sweet.
As Paremus puts it: “the production runtime is built in the same way as the application”. Its early days for the company but the kind of standards-based open source approach it is taking is finding favour, notably in financial services companies in London and New York. Spring is increasingly an ecosystem, but also an open source project with significant services revenues.
Springtime for Covalent
SpringSource, the commercial arm of Spring, recently announced it is acquiring Covalent (also a RedMonk client). This transaction will bring together two of the most successful examples of the new commercial software reality: paying vendors for services rather than code. Covalent is a major supporter of Apache, and offers support for the web and application servers. While traditional software companies encouraged customers to deploy applications on expensive JEE application servers, Covalent helps companies such as Bear Sterns, which are building enterprise-class scale out applications comprising hundreds of open source servers, but want enterprise support from a firm where the coders who built the runtimes work. SpringSource may just have lost some of its purity, but the transaction points towards the future economics of the industry. The Register developer zone calls the combo an “open source supergroup“. Well Rod Johnson, head of SpringSource, is definitely a rockstar. You’re going to hear a lot more from him. Frankly Rod is far more deserving of the tag Top Leader in Open Source business than anyone at RedMonk, but there you go. At this point I consider it a racing certainty that SpringSource is eventually acquired. Possibly sooner rather than later- the combination of Spring and Apache has got to worry traditional app server vendors. The game is changing.
Stackless, Microsoft and Green APIs
It is not just the Java world that is componentising. Microsoft is also delivering just-in time functionality to allow for targeted bundles, rather than needing to run the entire Windows stack. In discussion with Rob Bernard, Microsoft’s chief environmental strategist the other day, he suggested the approach had ecological implications. If you only run what you need you use less power. I mention Microsoft here primarily for context though, to show stackless isn’t just an OSGi story. It would be great to get your thoughts about where more flexible stacks are heading.
For more background we have some great RedMonkTV shows about OSGi, Equinox and so on.
update: super bonus OSGi buzz link roundup.