Sun Takes Java App Server Open Source
by Timothy Prickett Morgan
Unix workstation and server vendor Sun Microsystems was founded two decades ago on a mix of open source technologies (such as the BSD variant of Unix) and of proprietary technologies (such as its own Sparc RISC processors), and it seems clear that Sun believes that its current business will be based more heavily on open source technologies than it has been in its past decade (the dot-com era when open systems was a sufficient definition of "open"). To that end, at the JavaOne conference in San Francisco yesterday, Sun announced it would release the code behind its Java System Application Server to the open source community.
While the Java programming language, is 10 years old this week, and its related virtual machine runtime environment are in a quasi-open source state, controlled by the Java Community Process that is in turn largely controlled by Sun, the open sourcing of the code that makes up the Application Server Platform Edition 9.0 within Sun's Java Enterprise System is really and truly open source, meaning anyone can grab the code and make modifications to it for their internal use and make mods as part of the Java community to help Sun steer the future development of the Web application server that is at the heart of Sun's Java Enterprise System middleware stack.
According to Joe Keller, vice president of marketing for application and developer platforms at Sun, the company is not taking the whole Java Enterprise System stack open source, and it isn't even taking all variants of the Java Application Server open source, for that matter. What Sun is taking open source is the Platform Edition of the application server program, which is the one targeted at Java developers, and which was created under a project called "GlassFish," notable because it is a translucent fish that you can see bones and guts through. While the Platform Edition of the application server has the same kernel as the Standard Edition (which adds security, clustering, and multi-instance and multi-machine management features) and the Enterprise Edition (which adds load balancing and high-availability clustering features), Keller said Sun has no plans to open source the Standard Edition or Enterprise Edition of the application server. And while Sun has hinted that it might take the whole Java Enterprise System open source, Keller didn't give a strong impression that this was going to happen. "This is something we are looking at," he said, and that was about all Sun wants him to say about the subject.
The version of the Java Application Server that is being taken open source is Platform Edition 9.0, which is not yet a commercial product on Sun's site. Sun is currently shipping Java Application Server 8.1 Platform Edition 8.1 on Solaris 8, 9, and 10 on Sparc servers, Solaris 9 and 10 on X86 servers, Red Hat Linux 2.1 on X86 servers, and Microsoft Windows XP SP1 and Windows 2000 Advanced Server SP4. That Linux support is woefully out of date, and so is Windows on the server side. Sun has said Windows and HP-UX support was added to the Java Enterprise System suite, but its own Web site said neither are currently available for the Java Application Server Standard and Enterprise editions. The Platform Edition of the application server is, by the way, distributed free with Solaris 10, and Sun is working to get Platform Edition 9.0 into a future update of Solaris 10 as well.
The Java Application Server is, of course, itself written in Java and it is this Java code that Sun is taking open source under its Community Development and Distribution License (CDDL) license. This is the same license that the OpenSolaris variant of the new Solaris 10 Unix operating system was released under a few weeks ago. The CDDL is based on the Mozilla Public License (MPL), but it includes some things that other open source licenses do not. For instance, the CDDL allows the blending of open- and closed-source programs within the same solution; in open source lingo, CDDL is not viral, as is the GNU General Public License, which maintains that if you modify code or mix any code with a GPL program, the associated code, by default, is under the GPL license. Obviously, many people like this viral nature, and many people do not. The CDDL also has provisions that allow the full weight of the Solaris patent portfolio to stand behind the OpenSolaris community, a kind of provision that is lacking in Linux because it has not been patented and cross-licensed to death like Unix was for two decades. And being a CDDL program, Java Application Server Platform Edition 9.0 is really open--that means you can grab the source code, tweak it, and distribute it as your own product if you want. The only thing you can't do is brand it "Java," since that Java brand implies that you have licensed the Sun brand and tested your variant of the app server as compliant and compatible with the Java spec. "If you don't claim to be Java, you don't have to license or brand," explained Keller.
And lest there be any confusion, Keller was quite clear that the underlying Java language and the Java Virtual Machine that runs Java code such as the application server is definitely not being taken open source. Java and its JVMs will remain under the control of the Java Community Process and under its existing licensing terms, which are nowhere near as open or flexible as the CDDL. Keller said Sun has no plans to even think of moving Java to the CDDL. Sun now has 912 members participating in the Java Community Process, and is content that there are 2.5 billion Java-enabled devices in the world and 4.5 million Java programmers. Sun does not, it appears, need something like the CDDL and the full open sourcing of Java to make it popular.
Then again, if Sun had created the CDDL for Java ten years ago when Java was first introduced, there might have been a much larger usage of Java--and much more quickly, too. Hindsight is, of course, easy. Mapping out the future and keeping Java compatible in a world where many companies wanted to derail it was not easy. Sun reckons that there is a $100 billion Java ecosystem, that there are about 700 million Java-enabled handsets, another 700 million Java-enabled PCs, and nearly 1 billion Java-enabled smart cards. This is not exactly small potatoes, either.
You can download the open source app server and participate in the GlassFish project at https://glassfish.dev.java.net.