I want to be careful here, but also very clear - I advocate OSGi and modularity, though am concerned about its future. In some circles, OSGi is hailed as a disruptive technology; in others, it lives in relative obscurity. There are some indications that adoption is growing, and possibly at some point, it’ll catch like wildfire. But right now, OSGi is the most widely acclaimed technology that nobody is using.
Maybe I’m too harsh. Or too impatient. Maybe I need to give it more time. I know some will argue that people are using OSGi, and they’re right. Some are. But of the more than 6 million Java developers worldwide, those using OSGi and designing modular applications is only a very small fraction.
So what’s the problem? What’s needed to drive adoption? How will OSGi and modularity succeed?
One of the greatest inhibitors to adoption has been platform support. Until recently, few platforms exposed the virtues of OSGi to the enterprise developer. That’s beginning to change, and should help drive adoption. Another obstacle is tooling, which I discussed a while back when lamenting that one of the biggest barriers to adoption is no migration path. With better tools, we’re beginning to overcome that challenge.
But will it be enough? Will platform support and great tools help drive adoption? Sadly, possibly not. And part of the problem, I believe, has very little to do with the technology, and much more to do with its image.
So, what’s in a name?
OSGi is the dynamic module system for Java!
Recently, I commented on a recent conversation I had with a conference organizer and his reluctance to accept my speaking proposal on modularity. The general sentiment was that it’s an old, boring concept that can be traced back 40 years! He was interested in my talk on agility, but I explained that given the choice, I’d prefer to speak on modularity.
Currently, I’m participating in a similar conversation with the organizers of the Agile 2010 conference on a few sessions I’ve proposed on modularity. And now, Peter writes about a similar experience. This sends an important message to the OSGi community, and highlights an important challenge surrounding modularity. The message: Modularity is boring! The problem: The importance of modularity, and its support as a first class citizen on the Java platform, is not well communicated nor understood.
This is a serious problem that requires attention. In his post, Peter suggested that micro-services may be a more apt term for OSGi services, so as not to confuse the term with web services. He even hints at proposing a new JSR that would introduce the idea of micro-services as a new primitive on the Java platform. This is a good start, and micro-services isn’t a bad idea, but more needs to be done. The problem is not that OSGi isn’t a great technology with real benefits, the problem is that nobody cares about modularity.
Possibly it isn’t that they don’t care, but instead that modularity won’t sell. Nobody wants to buy a 40 year old technology, they want to buy the next great thing. And without question, developing modular software is not a new idea. But in general, the ideas surrounding SOA were not new either. Yet, without question, SOA has garnered significantly more attention than OSGi over the past decade. SOA has had its day in the sun; OSGi and modularity have not.
This is not a technology problem. The real problem is that OSGi doesn’t have a clearly articulated identity that explains why an organization must be using it, and organizations will adopt OSGi only if its adoption can be tied to real business benefits. Just like object-orientation in the 1990’s and SOA in the 2000’s, each were sold with a wonderful accompaniment of benefits that would reduce cost, speed delivery, model the real world, blah, blah, and blah. Whether they did or did not help organizations realize these benefits is arguable. Whether each were widely adopted is not!
OSGi has the potential to be this decade’s most disruptive technology. Unfortunately, the virtues of OSGi run the very real risk of never coming to fruition if it’s unable to cross the chasm. And sadly, it can never cross the chasm unless we find an effective way to sell, or reinvent, modularity.
Foremost, OSGi, modularity, and micro-services do not represent the paradigm shift that’s necessary. Too often, we talk about OSGi in terms of its technical merits alone. Unfortunately, that’s not enough. If OSGi is to cross the chasm, it is going to require something different. Something that people can really latch onto. Something that gets them excited. Modularity isn’t enough. Nor is plug-in architecture. Nor any other technically superior thing that OSGi is.
Naturally, this is only my perspective. My opinion. But OSGi has been a widely acclaimed technology for several years, and it has achieved very little enterprise adoption. While the move by SpringSource to donate dm Server to the Eclipse Foundation was hailed as a great contribution to open source, it’s also a clear indication that adoption of dm Server was gaining little traction.
Now, it is possible that an 800 pound gorilla could throw their weight behind OSGi and modularity that will help drive enterprise adoption. Maybe IBM’s move to expose the virtues of OSGi to the enterprise will be enough. With other vendors following suit, and up and coming vendors such as Paremus on the rise, that just might be enough. But if it is enough, I still believe the enterprise isn’t going to buy OSGi and modularity for the reasons we believe they should, they’ll buy something else very trendy in which OSGi and modularity plays a central role. Something new. Something fashionable. Because as I recall Ivar Jacobson alluding to at a keynote a couple of years ago,
The software industry is more driven by fashion than the fashion industry.
Sad. But true! And hopefully when it happens it won’t dilute the value of OSGi and modularity.
OSGi is a great technology solution. But we also recognize that technologically superior solutions often fail to win. One of the most popular stories is of the video tape format wars. So my little pontification here should in no way be interpreted as questioning whether OSGi is capable, but instead whether OSGi will.
You can choose to ignore me if you’d like, scoff at me, or call this a rant. Maybe I’m just impatient. Either way, I’ll still continue to proclaim the virtues of OSGi and modularity. I believe in it…firmly! But the nagging feeling I have surrounding its ability to cement its place in the world of enterprise software development will continue to tug at me. And I wonder…will it ever succeed? And if so, how? And…when?
What do you think?
7 Responses to “OSGi - Feast or Famine?”
Leave a Reply
We (Paremus) are seeing rapidly build traction / interest.
Perhaps we have a special viewpoint?
Perhaps it takes the fuses of two paradigm shifts the set the world alight? OSGi & Cloud concepts. Modularity and Resource abstraction?
The Paremus Service Fabric usually receives interest - not necessarily because it supports OSGi, not because it is built from OSGi - but because of the speed organisations can deploy and roll back complex composite systems across an arbitrary set of compute resource.
OSGi is a major enabler in our story - but like all good magic - the more it is invisible (courtesy on Nimble) - the better/ the more compelling / OSGi becomes ??
[...] cross the chasm and be adopted by the mainstream. Two recent blog post by Tony Baer of Ovum and Kirk Knoernschild of Burton Group which aren’t too flattering towards OSGi made me think that maybe OSGi is in [...]
[...] answering this question, but as the technology matures, the question will be easier to answer. As I’ve alluded to, other factors that have little to do with OSGi’s technical benefits will likely determine if [...]
Having just authored a book on OSGi recently, I can assure you that I (and my co-authors also) share your opinion. I am a pragmatist. OSGi solves a problem for me. But it is certainly no magic wand to achieve modularity. Modularity is indeed boring. But it’s critical. For years now, Jeff and I have been trying to speak (and write) about how modularity is the real goal. OSGi is just one feasible tool to use toward that end. At EclipseCon last month, I was encouraged to hear the boring old modularity message loud and clear. So while I share your opinion, maybe I share only a fraction of your pessimism.
As developers, I certainly understand why we can get excited about OSGi and modularity. Especially for those that have experienced the benefits of modular architecture. But I can’t help but think that modularity is going to be a tough sell, OSGi of itself even more difficult, and that it’s popularity will only truly skyrocket when attached to the next technology trend or fad. However sad or wrong it may be!
I believe Richard makes a valid point in his comment. It’s not the technology that garners the attention. It’s what the technology enables. While OSGi enables and enforces modular architecture, modularity isn’t trendy enough to sell. We must sell that which modularity enables. And that which modularity enables must be trendy enough to garner such interest.
[...] seems my recent post on OSGi has ruffled a few feathers. I’ve also received a few personal e-mails suggesting that I have [...]
[...] I questioned whether OSGi and modularity would succeed in penetrating the enterprise. But what I really meant to question is whether OSGi will have the disruptive impact of which [...]