A New Open-Source Model For SaaS

The tension between configuration and programming is an enduring problem that is familiar to anyone who has had to attempt to run their business using a software application. Drupal Gardens is combining principles of open source to the Software as a Service model to find a way to get the best of both worlds.

When businesses first started using computers in the 1960s, almost all software was built from scratch, almost all of it by IBM, which didn’t charge separately for applications. But 1969, under anti-trust pressure from the United States Department of Justice, IBM “unbundled” its services and created the market for business software. It then became possible for a third-party company to use IBM software and hardware to write a business application. At that time that many of the same sort of code sharing that later emerged in the era of open source also emerged. Much of the software infrastructure for IBM mainframes was developed in a collaborative model.

Since then the promise of most business applications has been the same: “Use our software,” say the vendors. “The designers have thought of everything you might need. Instead of having to write a program from scratch you can use settings that control the behavior of the program and tailor it to your needs.”

Software configuration has gone through many cycles. Complicated configurations files gave way to standardized XML, which then was replaced by point-and-click configuration. My favorite flavor of configuration is the declarative model. You tell the software what to do by stating the end results you want to achieve or by describing the end result. Then some computer program takes this description and does all the fancy computer science needed to create the software that does what you want.

The state of the art in this model of programming is Pegasystems, which is often called a BPM system but is really a declarative application development environment.

The challenge in the declarative model is to think of everything. The problem comes when you want to do something that cannot be described by the declarative language. At this point the declarative model must have an escape hatch to allow programming to take place. But at this point it gets tricky. What are the programs that extend the system allowed to do? If they can do anything, then they may not work when the system is regenerated from the declaration. If the are restricted in their power then, you may not be able to get the job done.

Most business software isn’t as strictly declarative as Pegasystems. SAP and Oracle and all the other large applications, for example, have lots different kinds of configuration for different layers of the systems. Each type of configuration is intended for a different audience and may work differently. In addition most large applications have an API that allows programs to be written that communication with the application. The problem is that getting all these layers of configuration right often takes a long time. Only expensive experts really understand it all. Once you have it working, you do not want to make changes. This is not what you want out of business software. The big vendors like SAP and Oracle are attacking this problem in many ways, but it will be with us for a long time.

What is so interesting about Drupal Gardens is that it offers a way out of this dilemma that may show the way to better software. Drupal is one of several open source-based frameworks for creating web sites. WordPress is the other popular choice, but there are many, many others. Both Drupal and WordPress have massive ecosystems. Thousands of modules that do specialized and common tasks have been created and donated to the open source projects. It is easy to find hosting services, designers, templaters, and programmers to help you for a reasonable fee.

Dries Buytaert, the Belgian wunderkind who created Drupal, started Drupal Gardens because he saw that Software as a Service could be combined with a declarative configuration model to make the process of creating web sites so much easier. In Drupal Gardens all web sites are hosted in a multi-tenant fashion that shares as much of the software infrastructure as possible: the same model used by the SaaS giants like Salesforce.com. The web sites are created by point and click configuration and entering data in forms. This is a form of the declarative model. So far, so good.

Drupal Gardens is focusing on bringing only the portion of the thousands of modules over that help create general purpose web sites. Many of the modules serve special needs and do not make sense to the market Drupal is after. The challenge is that Drupal Gardens must change some of these modules at times to make them work in a multi-tenant fashion so that as much as possible can be shared. Buytaert and the Drupal Gardens are adding more and more modules every month. By sticking with the declarative model, Drupal Gardens can upgrade layers of software in the background with minimal disruption to the users, who do not have to worry about upgrades. Again, this is one of the biggest benefits of he SaaS model.

The next step, though, is something that no SaaS vendors offers and it shows the power of adding open source to the SaaS model. As more and more modules are added to Drupal Gardens, more and more will be possible through declarative configuration. But eventually, for good reasons, many web sites will want to do more than Drupal Gardens can allow. If Drupal Gardens starts creating APIs then the site will go down the same path as the large software vendors and eventually get trapped in a maze of complexity.

Open source provides the escape hatch. In Drupal Gardens, users will be able to press a button and get a source code version of the Drupal code that runs their site along with the data from the database. Then, you can take that code, put it up at one of the hosting companies, and you can do anything that you would like to do. You have left the declarative model at that point, and the site is yours to maintain, but you can do anything that coding allows.

This model should be attractive to anyone who has gone through the cycle of vendors and goes along way to explaining why as time goes one, almost everyone hates their vendors. First you use a software application as intended, then you understand what it can do that you are not using, then you want to do things the software cannot do, but you don’t really have complete freedom.

It is at this last stage that the Drupal Gardens Open Source SaaS model really saves the day. When you outstrip the capabilities of the standard software, you just press a button and keep going with the open source version. WordPress and MoveableType offer the same sort of escape hatch in their open-source based products.

To pull this off you really have to understand the framework and there has to be good engineering underneath, something that is not always present in open source projects. It is no accident that the founder of Drupal is the one taking this project on.

It also shows another aspect of the power of open source. Salesforce.com will never use this model, and it is not clear that they could. Pegasystems would always choose to enhance their declarative model rather than start handing over source code. Drupal Gardens can employ this ingenious escape hatch because it has open source DNA.

Dan Woods is chief technology officer and editor of CITO Research, a firm focused on the needs of CTOs and CIOs. He consults for many of the companies he writes about. For longer takes on the topics covered in JargonSpy please visit CITOResearch.com.