One such company is SpikeSource, founded in April 2003 by Murugan Pal and former Oracle President and COO Ray Lane. Nick Halsey, the company's vice president of marketing and sales, says that Pal and Lane talked to dozens of potential customers to determine the needs of a business with an open source software infrastructure. The number one response was that as open source becomes mainstream, they needed a trusted third party to handle integration, interoperability testing, and change management and support.
"There's no question that big business and corporations, government entities, and universities are adopting open source pretty aggressively," Halsey says. "It's extensible. It's free. It eliminates vendor lock-in. But everyone's having to test, validate, and apply patches and then retest and revalidate, on their own. It's not essential to what corporations do."
A large part of the problem they discovered was that most testing had to be done manually, which is time-consuming and fraught with errors.
Co-founder and current CTO Pal hired a team of engineers who worked for 18 months developing a fully automated open source component test bed. The SpikeSource core stack beta went public in December 2004.
"Because the stacks are free, we've had several thousand downloads," Halsey says. "Several hundred people are using our stacks in production mode." With the first official release of the open source software on April 5, SpikeSource is offering seven free preconfigured stacks, and selling subscriptions to automated patches and updates, management tools, and four levels of support.
The stacks allow developers to test 63 different open source software components for interoperability in Java, PHP, Python, Perl, C, and C++, on all major operating systems including Linux, Windows, and Oracle. "We recognize that companies are still going to use Windows, even if they're running open source software on top of it," Halsey says.
The stacks come with a network installer, which Halsey says shaves days off the installation time. "You could download and install a preconfigured stack in 10 to 15 minutes," he says. "Or you could do a custom install -- we're not forcing any particular installation."
SpikeSource has also created what it calls an open source ecosystem -- a loose partnership with companies, such as ISVs, platform vendors, Linux support, risk reduction, and component providers, which provide a spectrum of services and goods related to the adoption and maintenance of open source software,. "We know we can't do everything," Halsey says. "Enterprises need a lot of services to make them successful." Affiliated companies include Novell, Red Hat, Black Duck, Zend, and the Open Source Development Lab.
"If you think about it, the open source software community has done something really well: They've figured out how to write great software," says Halsey. "That part we've got down. However, when you think about the process after that, we really need to work with all these vendors to help companies with issues like risk reduction, platform support, and developer relations."
The SpikeSource core stacks are available under the Open Software License, version 2.1. Some components of the stacks are based on commercial or proprietary licenses and may place restrictions on modification and redistribution.
In addition to the release of the SpikeSource core stacks, the company also released its Spike Asset Manager (SAM), as freely available open source software. SAM includes a driver file that probes for components commonly found in a LAMP/LAMJ stack (Apache, MySQL, PHP, Tomcat, etc). The software can find multiple versions that are installed in a local disk, query an RPM database or operating systems repository, and listen to standard ports and indicate which components are running. It operates as a standalone tool and does not send any information to SpikeSource.
SpikeSource has also released Spike PHPCoverage, a code coverage reporting tool for applications written in PHP, as open source. The utility shows developers how much of their PHP code is being executed by existing testing software, so that new tests can be developed to reach more of the code.