At the 2002 JavaOne Conference in San Francisco last week, Sun Microsystems embraced the open-source community with its decision to release some Web services JSRs (Java Specification Requests) to the open-source community. And more importantly, the company decided to allow open-source developers to submit APIs to the JCP (Java Community Process) for possible inclusion in future releases of Java. But after looking more closely at the announcement, it appears that the embrace was as warm as those fake French kisses exchanged by uppity Hollywood stars.
Sun indeed hopes to take advantage of the massive amounts of creativity available through open-source development. But rather than jump completely in bed with the open-source community, it's keeping one foot firmly planted on the ground. Sun refuses to accept any API issued under what it considers to be "viral" licensing -- the GPL (General Public License) in particular -- and will continue to maintain complete control over the Java language specification.
While Sun's decision is aimed at maintaining its alleged market lead in the mobile application space, it is unlikely that we will see many open-source submissions make it through the JCP process. Opening up Web services JSR to the open-source community offers Sun the ability to tap the community for new ideas, but does not offer any real incentive to do so.
This announcement to recruit open-source developers follows hard on the heels of the unveiling of a streamlined, XML-aware version of Java designed to plug into J2ME (Java 2 Micro Edition), providing Web services support for mobile devices. This API, in conjunction with Sun's initiative to speed the performance of Java by a factor of 10, is aimed directly at its Web-service competitor, Microsoft .NET.
The Choice Is Yours
By now you're probably thinking to yourself, "I'm not about to jump into the middle of a cat-fight between Microsoft and Sun, and if you were smart, you wouldn't either!"
The fight for the mobile platform is an important one and, by extension, so is the fight for Web services domination. By their very nature, Web services are designed to be interoperable regardless of development and deployment platform, but the security mechanisms behind them are not.
Passport will not be compatible with the solution provided by the Liberty Alliance Project, and mobile devices -- unlike PCs -- will not be capable of dual-booting operating systems any time soon. The choices made for providing Web services on mobile devices will dictate which security mechanism will be used, and if it's used on the majority of mobile devices, it is likely to be the choice elsewhere.
Java already holds a slight lead in the mobile market space, and predictions are that it will continue to extend that lead in the coming years. Sun's tepid embrace of the open-source community is designed to encourage development of Java-based solutions for Web services under the guise of being part of the family. While the gesture is suspect, the results are likely to be myriad applications and APIs for Java-based services, offering you a larger knowledge base with which to build your applications or from which to find experienced developers.
So if you're planning on providing Web services for any platform -- mobile or not -- you'll need to choose wisely when you decide which side of this cat fight to take. It isn't just a platform choice anymore; it's a strategic decision that will determine the future direction of your application development.