First, hats off to Rod, Adrian and the others. It's very nice and very much in line with where most people see this all going in the next few years.
It looks like what others and I have been planning/hoping to do over the next few years. Most of us are looking for an OGSi based distributed platform with a commercial friendly license (EPL, BSD or Apache). I don't think there is an appetite to develop a proprietary OSGi runtime in any camp right now and IBM, through eclipse, has been placing a very good OSGi implementation into real open source as Equinox, i.e. a commercial friend license, no dual licensing fooling around. WebSphere already has an OSGi enabled distributed runtime. I don’t see much of an appetite to develop another one that does almost the same thing as before, I think we’ll use something rather than build it.
The platform should allow middleware or profiles to run on top of it like JavaEE, WebSphere eXtreme Scale, ESBs, Event processing, process engines and so on. The platform should be distributed, i.e. allow me to install a bundle set or profile on a set of machines matching a filter (this is a cluster) and then start/stop machines, do distributed monitoring on it also. Stuff like Wily or JXInsight is pretty cool for monitoring given they don't require code changes as they use aspects to monitor existing code. I'd like to run Oracle and IBM profiles on the same platform at the same time.
I see this as the new JVM, a module or bundle oriented runtime that’s also distributed. I don't want to see this runtime controlled by one vendor and licensed, I'd like to see it available for free as a community project with a commercial friendly license (Apache, EPL, BSD). Most vendors have absolutely no interest in a GPL type license. IBM has already contributed a lot of work towards this end in Eclipse.
I know SpringSource are doing valuable work making OSGi consumable by the mass market. OSGi is too hard for most people. Spring-DM is a great step in the right direction and I think Adrian is standardizing some, if not all of this, in OSGi anyway.
I think the commercial vendors see the value as not in the platform but in the profiles running on top. I expect to see a commoditized runtime for hosting profiles or middleware/applications. Springsource for now seems to be treating the platform as the valuable thing and I just don't see that. Of course, this is what they have so it's valuable to them. IBM and other vendors have a library of profiles like messaging, process flow etc that is why there is a different perspective. I understand why they are doing it but I don't see it being widely adopted by the large commercial vendors. IBM has already contributed a lot of code in Equinox etc under commercial friendly licenses and this will likely continue (I don't speak for IBM in this blog).
I’d like to see monitoring of this also pluggable and I don’t see a need for APIs here. What I’ve seen of Wily and William Louths JXInsight has convinced me that we do not need APIs to do monitoring. Aspects are hands down for Java, the way to go and SpringSource has tackled getting AOP to work in an OSGi environment and hopefully that gets standardized also.
I think monitoring will be a valuable profile on top of the common runtime and I fully expect vendors to be selling this to monitor what-ever people deploy on this infrastructure.
So, to summarize, I don’t see the platform as the valuable thing. I see it as a commodity. I see profiles and monitoring profiles as the valuable thing and I’d like to see a commercial friendly licensed OSGi distributed runtime as the new JVM that vendors build middleware/profiles for. Given, Spring DM is Apache licensed, I can see the extra work in the Spring server being clean roomed and made available with EPL or Apache pretty soon and this will limit the value from selling the SpringSource server. Duplicating higher value profiles like process flow etc is clearly not so easy and this is why these are the valuable things that vendors will continue to charge for. I don't want to trivialize what SpringSource has done, it's very cool and it's needed but given most of its components are Apache 2.0 or EPL then the last gap is a lot simpler than building a Java EE or BPEL flow engine, thats all.
I agree with your comments Billy, IBM has already made some attempts in this space with the packaging of Lotus Expeditor and OSGi platform that contains various JEE packages for WebContainer, Messaging, Data etc, we have been using this as a great mini server platform for desktop and device solutions, we also have a package call LWI which is going to form the runtime for Lotus Mashups Server which is profile of Expeditor package. We have lots of traction with customers in retail solutions where they dont want large server license very close to the tills or EPOS systems, and it integrates very nicely to the bigger IBM middleware stacks. I hope this Spring work become a disruptive technology that forces the market to react, similar to what Ruby has done.
Posted by: Matthew Perrins | May 06, 2008 at 10:16 AM
I don't see it as disruptive. Disruptive means it caught us all by surprise. As you know, we were already heading down this path anyway, arguably LWI was first. WebSphere eXtreme Scale is being converted to use OSGi as an option as we speak and I've been looking around for a distributed platform that I don't want to build to host it and applications using it. I don't want to build a proprietary one or use someone elses proprietary one (SpringSource).
Posted by: Billy | May 06, 2008 at 10:28 AM
I guess other valuable profiles would be clustering, availability, state management/caching etc. There are clearly quite a few
Posted by: Billy Newport | May 06, 2008 at 01:15 PM
Bob Lozanos take.
http://www.appistry.com/blogs/bob/biz/the-spring-application-platform
Posted by: Billy Newport | May 06, 2008 at 01:21 PM
Billy
Interesting article although I disagree with your argument on the platform not being valuable. If this is the case why doesn’t IBM just open source the distributed WebSphere runtime that you mention?
Personally I completely understand why SpringSource adopted the GPL license for their runtime, they have bills to pay and are in business to make money - just like IBM, except that they don’t have the revenue streams from other proprietary products to subsidize their open source activities. What IBM does in open source is great and Eclipse and Equinox are all the better for it, however the commitment and donations have to be paid for somehow.
For the very same reasons, we adopted a dual license GPL/Commercial for our distributed OSGi runtime (a model-driven, resilient and highly scalable Service Fabric) that we open sourced in June 2006 - Newton (www.codecauldron.org) and Infiniflow (www.paremus.com).
We too see the value in profiles running across this platform and so offer a number of higher order Runtime Services that provide "out-of-the-box" solutions e.g. CEP, ESB, Grid, etc.
We agree that middleware should be interchangeable depending upon each application/systems specific needs, and as such deployable as OSGi bundles themselves.
With regards to other vendors being interested in using their platform, I suspect that this is not their target market - I suspect that they, like us, are more interested in providing a cost effective alternative to the existing App Server offerings to end users and not providing the large commercial vendors with a free OSGi platform that they can make money off.
It is great that Spring have made this move, OSGi is definitely the future and them taking it beyond internal use in the App Server up to the actual applications with this and Spring DM is great. I guess the only cause for concern are the points raised by Peter Kriens, OSGi Director of Technology, in his blog yesterday http://www.osgi.org/blog/ regarding the proprietary extensions they have made to the standard.
Regards
Mike (Paremus)
Posted by: Mike Francis | May 07, 2008 at 09:47 AM
I agree with most of what you said. I understand why SpringSource have done what they have done and it may work for a lot of people but I don't see an appetite to license the underlying platform again like we did before. Personally, I would like something Apache or EPL. While it looks like "Heres IBM looking to use stuff for free", I'd point out we gave Eclipse away with Equinox so it's not like we are not contributing and contributing using the most open licenses around, no dual licensing stuff for the most part. Any body can use it, we also contribute to OpenJPA for the same reasons. I think we have a good record on contributing to open source and I don't see that stopping anytime soon.
The proprietary extensions seems to be making their way into OSGi and thats to be commended. It's clear that making OSGi for the mass market needs to become a priority and Spring is bringing that to the fore to their credit.
Posted by: Billy Newport | May 07, 2008 at 10:47 AM