Showing posts with label Oracle. Show all posts
Showing posts with label Oracle. Show all posts

Sunday, 10 April 2011

JXTA/JXSE 2.7 is out, but what about the future?

The final release of JXTA/JXSE 2.7 finally came out in March 2011. Two releases in 9 months, this is epic considering JXTA's history.

The highlights of this release include:
  • Multiple peers in the same JVM - Yes, this long awaited feature is now available. It is possible to run multiple peers in the same JVM. Although most engineers won't use that possibility in their applications, it is key to implementing JUnit tests.
  • JUnit collocated tests - A set of JUnit collocated tests has been implemented, which is a huge improvement to guarantee Q&A. This has proven tremendously useful to make sure we did not introduce regressions when refactoring or implementing new code. Code coverage is not complete yet, but key features are.
  • Continuous  Integration - A continuous integration system has been implemented via http://mikeci.com. For more information, send an email to the development list.
  • HTTP2 - A new HTTP transport has been implemented. It is not compatible with the existing one, but it solves a key shutdown delay issue encountered with current HTTP implementation.
  • Routes & hints suggestions - Hints have been removed from the code, as they proved useless and misleading in most cases. Nevertheless, there is still a possibility of making suggestions in the endpoint service for those who want to.
  • JXTA Security Enhancements - An implementation of secured peergroups and communication between peers is now available, though it should be considered beta and experimental.
  • OSGi - The introduction of OSGi in 2.6 is a mitigated success. The 2.7 release makes it easier/possible to run JXTA within OSGi. However, a 'clean' implementation would require a redesign of the JXTA API, which itself requires major refactoring of the code.
On the up side, JXTA can be now considered as a stable P2P framework with a TURN implementation of NAT traversal. On the down side, the idea of loading services on peers is IMHO FUBAR and should probably be abandoned. A clean-up of the JXTA protocol specifications is also necessary, including deprecations. The framework is being used in production successfully by some companies, but has not been battle tested on a large scale.

Around October/November 2010, Oracle officially announced it was withdrawing from the project, via its representative on the JXTA board. This was no real surprise for the community, since Sun Microsystems had progressively withdrawn from the project since 2008. JXTA board elections should have been organized by its member in July 2010, but they did not perform their duties. No one, really complained too. Legally, the Oracle/Sun representative is still in charge and Oracle owns the JXTA brand.

Following this announcement, the community voted to move to the Apache Software Foundation (ASF). Since Oracle would not transfer the brand name, we voted for a new name too: Chaupal. ASF required us to move to the Apache License 2.0 to clear out potential intellectual property issues; we are under Apache License 1.1. We made a request to Oracle's representative who answered that Oracle needed time to review it's Intellectual Property. It has been nearly 6 months now. No follow-up or answers, even after reminders were sent. An email was sent to Mr. Edward Screven for clarification, no answer.

Yes, this confirms that Oracle's support for Open Source and Open Standard's is strictly limited to that serving their interest (dare I say void?). Indifference and isolation rules. Cannibalizing the brand value of Open Source products (Kenai, OpenOffice, MySQL, unbreakable Linux...) they have not developed themselves and ostracizing those who have developed it, is not an issue. I guess it becomes a need when developing healthy and nurturing relationships is not an option.

May be "Preferring to solve problems, rather than manage their consequences (...)" means substituting wealth and appearance for substance, while consequences of feeling dry inside are not felt. You can observe the world and yourself from a distance as much as you want, instead of really participating to the party, it won't ever give you what the open source community produces for free.

Oracle, stop biting the hand that is feeding you. It is not food and it does not make you lovable.

Back to JXTA, I have decided to put an end to the leadership of the JXTA project under current circumstances. With a couple of community members, I have started the Chaupal project on Google Code. The objective is to create a new P2P framework from scratch with a clean code base and a sound architecture based on experience acquired with JXTA, while guaranteeing a 'true' application of the Open Source spirit.

If anyone wants to take over the JXTA leadership, tell it to the user mailing list.

P.S.: I almost forgot. The Practical JXTA II book is now available online for reading at Scribd. Those looking for some information about NAT traversal will be delighted by the new chapter covering this topic.

Tuesday, 27 October 2009

Open Source Guarantees Free Market Competition, Or Does It?

This year, I have taken over the leadership of an IT Open Source project: JXTA. This technology has been initiated by Sun Microsystems at the beginning of the Millenium and has been evolving has an Open Source project with contribution from both employees of this company and individuals of the IT community.
The announcement that Oracle would acquire Sun Microsystems created anxiety in the JXTA community. Oracle is not really known to be supportive of Open Source in general, but it has not really taken action against it too. This tension was accentuated by the fact that Sun Microsystem owns MySQL, a dominant database system in the Open Source community. Oracle already owns Berkeley DB, another Open Source database system and it is a leader in the commercial database market. The natural question is: will this concentration prevent free market competition in the database market?
It is a fact that anyone can implement its own version of MySQL at will, because it is available under the GPL 2.0 license. This is also true of many Open Source projects. The code made available is often protected by licences granting users the right to do more or less what they want (to make it simple). This includes commercial usage of the code. There is nothing Sun Microsystems, Oracle or anyone can do to prevent this regarding MySQL. So, why the tension?
Many people believe that Open Source means they have the right to do what they want. This is not true. The Berkeley DB Open Source license is presented as "(...) OSI-certified and permits use of Berkeley DB in open source projects or in applications that are not distributed to third parties. [The] commercial license permits closed-source distribution of an application to third parties and provides business assurance." This is an example of an Open Source dual license system where commercial redistribution of the code does not come for free.
The U.S. authorities have cleared the Sun Microsystems acquisition by Oracle, but the European Commission has started an extended anti-trust investigation. Why would it do so?
Stallman argues that the GPL reduces incentives to commercialize the code. This comes as an apparent contradiction, until one reads the GPL preamble: "To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights." If you got this for free, you must give it for free too. But what is the problem with that? Well, if you modify this code, section 2.b of the GPL says: "b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License." Therefore, you cannot make any money out of your contribution or work on the code. But, it takes money, resources and time to maintain and improve any piece of software...
To summarize the de facto situation if the acquisition of Sun Microsystems by Oracle was cleared: Oracle would remain the leader in the commercial segment and own two of the major Open Source database system from which no one could make a profit. Hence, there would be no incentive to maintain and improve those databases, leaving customers with an obligation to revert to commercial databases.
Well, what is the problem with that? It makes sense that one should pay for a product or a service. Otherwise, there is no economy. Employees would not be paid, and product and services would not improve to the benefit of everyone, directly or indirectly.
It is a fact that before MySQL was acquired by Sun Microsystems, it was still buggy; I faced many installation issues and small, but annoying glitches. The acquisition by Sun Microsystem improved the overall quality of MySQL. It benefit from the contribution of a commercial company. The question is, is it in the interest of Oracle to carry on supporting the maintenance and development of MySQL? Wouldn't it cannibalize its market shares by doing so? Matt Asay argues that "Oracle can't afford to abandon MySQL. It's the key to unlocking its ability to effectively compete with Microsoft in tomorrow's big markets." This argument relies on a profitability need and on positioning products and brands. Every private company is under the gun when it comes to the bottom line: if it does not make it, it dies. Therefore, any actions required to remain alive will be taken. I am not prevailing on what Oracle would or would not do, but the drivers under its motivations are not identical to those of Open Source projects. The development and maintenance of MySQL would depend on a private company's interests.
What are the numbers? In 2008, MySQL generated an estimated $208 million in an estimated $19 billion market (1,09%).
Let's imagine that a new database system - let's call it NewDB - were to rise from the Open Source community with a license granting unlimited rights to make commercial use of this product. This would take a lot of time and it would probably end up in the same buggy situation as MySQL did before it was acquired by Sun Microsystem: a product that could not be used in a live/production environment.
Is there a solution to this puzzle? Michael 'Monty' Widenius argues that Oracle should sell MySQL to a third party. But would this solve the GPL/profitability issue? There is a well-know example of a company making profit from a GPL Open Source project: Red Hat with Linux. So, is the spinning off of MySQL really necessary? Such a company could be started now.
Today's economics are not those of the 90's. It was much easier to live from an Open Source project than now. Let's not forget that that decade was a far west where companies - such as Microsoft - were fighting hard for market dominance. Remember the Netscape browser battle? Did dominant companies produce commercially bug free products? Did they have an incentive to do so while they were dominating their market segments? There is no doubt that Open Source has forced them to rethink their strategies when it comes down to core products required by everyone. OpenOffice and Firefox are blatant examples. They have restored some market efficiency.
No one knows the intentions of Oracle regarding MySQL, people can only speculate right now, including me. Yet, uncertainty is not good for business, because it undermines trust, the necessary condition for prosperity.
An anti-trust case can hardly be made against Oracle when numbers are taken into account, but if it were to keep MySQL under control through the GPL licence, it could either not develop it further, eliminating some stimulating Open Source competition, or develop it while preventing the rise of profitable competition companies by forcing free redistribution of their work. There is a risk of market distortion.
Contrary to the Linux situation where companies have risen from a Open Source product, the database market is dominated by Oracle, Microsoft and IBM. One can hardly see how the type of Linux market competition could rise within the database market.
A short a simple solution would be to request Oracle to distribute MySQL under the Apache 2.0 license, which does not force companies to redistribute their work for free. In fact, why not make this a legal requirement for all Open Source projects and remove ambiguities?
The JXTA community is pretty safe from these issues, because its license, unlike the GPL, does not request free redistribution of any modifications made to the code. I would personally be more comfortable if we moved to the Apache 2.0 license, but there is nothing preventing anyone from making money with JXTA, provided that copyright disclaimers are included in derivative products.
Open Source does not necessarily guarantee free market competition, but it has proven efficient to restore it over time. Unfortunately, the intentions behind the GPL are firing back. I do not know what the European Commission will recommend, but it has not been shy when it came to deal with Microsoft and Intel on anti-trust issues. I am not betting on an Oracle/Sun Microsystems clearance without conditions or requirements.