As frequent readers know, I was on the west coast this week. I was in Cupertino, California (in Silicon Valley) to attend a MySQL Customer Advisory Board meeting. MySQL is an open source and very fast database, used mostly on the web. Perhaps because we happened to have our representative pay a call a few weeks earlier I was invited to attend this meeting. As the only customer representing the federal government at the meeting, I was one of the dozen or so customers invited to throw in my two cents about the features that MySQL AB (the parent company) should put into the product.
Alas, I cannot give any hints on where the company will be taking the product in the years ahead. My participation was predicated on abiding by their nondisclosure agreement. I can say that if I were Larry Ellison (CEO of the mammoth Oracle Company) I would be worried. MySQL is a small but very agile company that has the lion’s share of the open source database market. It was cool to be in the same room with mega internet companies like Google and CNet and learn how they are creatively using the product.
A year ago last April I attended their MySQL User Conference in Orlando, Florida. It was there that I got the open source religion. Nothing since then has changed my mind. I think proprietary software is going diminish. I am sure Oracle will still be around in a decade. However, it might well be a shadow of its current self. Every software company these days should at least be pondering an open source strategy. At least one other database vendor has the religion. Ingres recently went open source.
MySQL won its market share the hard way: by creating a great and (in many cases) dirt free product. Corporate MySQL licenses do cost money but they cost a tiny fraction of what you will spend for products like Oracle. Most of their money is made in technical support contracts, consulting and training. However, their product is reliable enough that many corporations can do without these extras. I was interested to learn one tidbit at the meeting that demonstrates the difference between MySQL and Oracle. At MySQL, its founder Monty Widenius is one of three people allowed to put new code into their software baseline. Somehow, I cannot see Larry Ellison doing this. Heck, I am not even sure he could write a line of code. He is too busy flying places in his corporate jet or hanging out with his foxy wife. Having met Monty, he is certainly no billionaire. He is a geek with no pretensions of grandeur.
MySQL is one of the best of many, many open source products out there. Open source MovableType software used to run this blog. It is licensed a lot like MySQL: it requires modest costs for those who want more than a personal blog. However, much open source software is wholly free. Apache, the web server used to serve this web page is one example. The Linux operating system is also free, although most people prefer to purchase packaged distributions like RedHat. A number of programming languages for the web like Perl, PHP and Python are also robust and completely free.
Linux, Apache, MySQL and Perl/Python/PHP form a set of core open source products that offer amazing quality and features for little or no cost. They also work and play very well together. This synergistic combination of products is sometimes referred to under its acronym: LAMP. Mastering any of these products is not rocket science. This makes them affordable and accessible to the masses. Any reasonably smart person who has fiddled with a programming language can write LAMP applications by reading a couple books. (Writing professional LAMP applications is another matter.)
In addition to open source software, a new standard for data communication has emerged. Specifically, in 1998 Extensible Markup Language (XML) became a recommendation by the World Wide Web Consortium. XML may be a standard but in some ways, it feels like open source software. Vendors are busy writing software (much of it open source) that reads and writes XML. In addition to describing data in a standard way, XML specifications exist that allow data to be validated (XML Schema), rendered as output to various kinds of devices (XML Stylesheets), describe workflows (BPEL) and capture input (XForms). With XML as an industry standard, the cost of doing business electronically over the internet is going much lower.
It was probably only a matter of time before someone looked at the largely free LAMP stack, looked at the uses of XML and said, “Wouldn’t it be great if there were an open source LAMP software solution that could help you develop web applications quickly and also worked transparently with XML.” That day has arrived and ActiveGrid is the emerging product.
The system I manage is a perfect example of the hassles of using open source technologies the old way. Our system is a pure LAMP application but it is a pain to maintain. It was developed in the late 90s when this stack was just coming together. The result is a wonderful system that is amazingly flexible but a pain to modify. Perl, our primary programming language, was not designed to be object oriented. Object oriented languages are important for modern systems that need to be designed to morph over time. As the system manager, I am looking to the future and imagining how the open source system of the future should be engineered. ActiveGrid, if it proves viable, looks to do for applications what MySQL has done for databases.
All the software ActiveGrid generates is open source. You may have to write some of it by hand. If you do then you pick Perl, PHP or Python, whichever rocks your boat. (PHP support is coming.) MySQL can be your database, but you can also use other open source or commercial databases including SQL Server and Oracle. ActiveGrid assumes that your web application will be built on top of Linux and Apache. All these open source LAMP technologies run on cheap commodity hardware. Therefore, it is not difficult to stand up enterprise class web, application and database servers, each on separate machines, for $20,000 or less out of pocket. The economics of this LAMP model are compelling.
ActiveGrid allows you to build LAMP applications quicker. It provides an abstraction interface for many of the things you would have otherwise code. For example, you can design screens using its drag and drop tool. This is a lot faster than creating the code in an editor! You can design your workflow logic graphically using a tool that renders open source BPEL. What is particularly cool is that bundled in the ActiveGrid toolset are a number of XML engines. Therefore, your users might see web pages rendered as HTML, yet under the ActiveGrid hood, it has used XML stylesheets to render data described in XML as HTML. Slap other XML stylesheet templates on these data and they can become PDF documents, rendered for a cell phone or sent in a format designed to be heard (VoiceXML). On the input side, the user might see a HTML form, but it is translated into XML using XForms technology. Supposedly, the tool is sophisticated enough to render AJAX compliant code in the browser. This potentially gives it a very robust web interface such as you can see in Google Maps. In addition, much of the business logic is handled by an engine built into ActiveGrid that reads BPEL. In the past, you had to writing a lot of Perl, PHP or Python code to implement business logic.
As I have mentioned before, systems basically take input, apply business rules to it, and render it as output. ActiveGrid does this with XForms, BPEL and XSL. The result is one tool that leverages the low costs of the LAMP stack, commodity hardware and open source XML toolkits. ActiveGrid has the potential to create impressive web based systems that are quick to create and deploy yet are entirely open source. Technologies like Java 2 Enterprise Edition (J2EE) will continue to have their place. However, with ActiveGrid these open source technologies can be orchestrated to render complex applications that are likely to be just as reliable and efficient for a fraction of their cost.
How will ActiveGrid make money? Already an open source version is available, though it is still being tweaked. ActiveGrid will introduce in December a commercial version with fancier features. It is clear that the standard product is ample for most needs. However, if you want features like integration with Enterprise Java Beans (EJB) or Lightweight Directory Access Protocol (LDAP) then you need to pay for a commercial license. The proposed price ($3K per server per year) does not sound very burdensome. They also will offer paid support for both their standard and commercial products.
As I am a manager, I do not have the time to do much programming. However, I am hoping that in my spare time I have more time to play with this product. I want to put it through its paces. Moreover, I want to find out whether it can also easily create genuine W3C complaint web services. If so, this might well be a great product to use to create the next version of our system.
If you have experimented or deployed systems with ActiveGrid, please leave a comment and let me know your experiences with the product.