A look at Principia, a Python-based Web development platform that is now available as open source.
This month, we're going to talk about an application server called Principia from Digital Creations, Fredericksburg, VA. We have been privately skeptical and publicly reserved about the current crop of application servers, or Web content managers, such as Netscape Communications Corp.'s Kiva, Sun Microsystems Inc.'s NetDynamics and Allaire Corp.'s ColdFusion. This column details our reservations and why the product offering from Digital Creations is different.
Application servers certainly do important work. Even the most basic Web sites need to manage content revision, arrange backups, establish a style of presentation and abstract content development. At the high end, application servers offer features such as advanced transaction processing, fault tolerance, end-to-end performance enhancements, load balancing, session management and maintainable programming models. Several products in this category have won praise from industry observers for their varied capabilities, so why do they leave us so cold?
As important as content management is its models of operation are still poorly standardized. This is reminiscent of the computer-assisted software engineering (CASE) wars that have lasted almost a decade. Everyone agrees there's important CASE work for products to do, but CASE users are finding that they spend too much of their time fussing with the shapes of the bubbles they draw. Something's not right. The bottom line for Web-building products is similar: The price tags on leading application servers remain higher than the overall benefits they offer.
Poor standardization in application service means not only that these products require a large investment in initial training before they become useful, but the fuzzy definitions of functionality in this domain can lead to notoriously buggy products as well. Even more than the steep licensing fees--invariably, many thousands of dollars--the highest cost of these products is the business risk of adopting a model that might be a dead end. It's still not clear which players in this market will survive. It's equally difficult to predict which products released in the coming year will work as advertised. Many of the site managers we've interviewed are so fearful of single-sourcing a critical resource that they have simply given up on conventional commercial products and "roll their own" Web applications with home-grown tools based on such low-level, but trusted, means as CGI.
Commercial application servers also impose clumsy programming models that hobble work at busy sites. Minor updates of URL references or Hypertext Markup Language (HTML) content require detours through proprietary editors, annoyingly tedious recompilation or both. Automation of the sort application servers advertise should enhance creativity and responsiveness, but the current crop of application servers seem to have lost track of the virtues of rapid development methods. As we've mentioned in previous columns, Philip Greenspun's upcoming book Philip and Alex's Guide to Web Publishing (Morgan Kaufmann Publishers Inc.) includes a chapter entitled "Sites That Are Really Programs," which explains what good site development is and how far short of this application servers fall.
Digital Creations' Principia changes all that. The company started as a software branch of InfiNet, a joint venture between Gannet Company Inc., Knight-Ridder Inc. and Landmark Communications Inc., which was formed to bring newspapers online. Digital Creations was spun off in 1997 and began delivering a high-powered architecture based on its newspaper publishing experience, says Paul Everitt, chief executive officer of Digital Creations. Since then, Principia has been the high-end, for-fee version of the platform, based on the open-source toolkit Bobo. Just last month, however, Digital Creations tweaked its product and now offers Bobo and Principia as a single product, available at no charge. It's likely that the brand name under which the product appears will change again by the time you read this; nevertheless, we'll refer to the full product as Principia throughout the rest of this column. A few proprietary plug-ins will likely still be sold as conventional products and will not be included in the official open-source release.
Yes, Digital Creations was chartered to make money selling software, and the company now gives away the main item in its product catalog. Why is it doing this, and why does this decision make it safer for Web administrators to choose Principia?
Digital Creations is giving away its "crown jewels," as Everitt calls Principia's source code, so that it can make more money. The company has one large, outside investor, Verticality Investment Group LLC, a Jersey City, NJ-based venture capital firm that is the vehicle of software industry veteran Hadar Pedhazur. Before, Digital Creations aimed to capture all the revenue from a product that was destined to remain a minor player in the application server market. Now, both Pedhazur and Digital Creations executives expect to push Principia to an industry standard position. The company will have a brighter future in service and customization of a market leader than it would have had as sole proprietor of a niche product. Digital Creations hopes the open-source release will help Principia become among application servers what Linux is among server operating systems and sendmail is among mail transfer agents--a widely used, widely understood standard of quality and functionality.
The theory that open-source software achieves the highest quality, as well as market dominance, is the same one that led Netscape to release its browser code back in February (see Cameron's notes on open-source software). Netscape credited independent consultant Eric Raymond for inspiring its decision, which he generalizes in "The Business Case for Open Source." It's no coincidence that Everitt announced Digital Creations' new business plan at the Seventh International Python Conference, held November 10 to 13 in Houston, TX, where Raymond was keynote speaker. In fact, Principia's new license is taken directly from the model license Raymond and his collaborators have composed on the Open Source Web site.
Digital Creations' Principia has established itself as a Web application platform that will likely be supported five years from now. But is it worth supporting? Does it have the functionality Web development teams need? Yes. In fact, not only is Principia's business plan unique in this market, but its feature set also clearly differentiates it from competing products.
The technical heart of Principia is an object database, BoboPOS (for Bobo Persistent Object Store), which is accessible through the Python object-oriented scripting language (see Cameron's notes on Python). This gives it complete extensibility and a wealth of existing functionality available via the standard Python libraries. In particular, Principia connects through a highly uniform interface to a variety of external databases, including eXtensible Markup Language (XML), legacy applications and standard Web protocols such as HTTP and FTP.
The other principal pieces of the Bobo toolkit are the Bobo Object Request Broker (ORB), DocumentTemplate HTML generation package and Persistent CGI (PCGI) Web publisher. There is loose coupling between these three components in the desirable sense that each can be configured, applied and deployed independently of the others. This enables the many specialists who typically work on developing a Web site--data structure analysts, systems administrators, graphical designers and so on--to focus their attention on the specifics for which they're responsible. While Principia works conveniently straight out of the box, this modularization permits extensive customization for an organization's specific requirements. Persistent processes, for example, can be maintained not only with PCGI, but also through the free software FastCGI, Nightmare Software Inc.'s high-performance Python-aware Medusa network server or the free Python-savvy PyApache Apache extension.
Decision-makers responsible for timely delivery recognize these benefits. "Most other technologies tend to promote one-size-fits-all solutions. They are often easy to install, but burdensome to maintain. Nor do they scale well, as many Web developers have painfully discovered," says Jeff Bauer, lead developer for Rubicon Inc., a manufacturer of software applications for the health care industry based in Nashville, TN. "Bobo encourages a 'best fit' approach to applying tested, open-sourced components."
And the conglomeration of Bobo and Principia has increased the product's flexibility and user-friendliness, says Amos Latteier, software engineer at Digital Creations. "Bobo is best suited to technically savvy users. Principia enhances the toolkit so that site developers of all experience levels can immediately be productive." With the latest announcement, all customers have full and free access to Principia's Web-based integrated development environment (IDE), advanced datastore connectivity and Web page editing tools. According to the company's Web site, "Every URL in a Principia Web is a smart object with data and behavior." This means that object-oriented analysis maps directly to a Principia implementation.
All application servers advertise database connectivity and related functions. What sets Principia apart is the way Digital Creations structures the technical capabilities to match the way Web site development teams work. While software engineers can freely use the full power of Python anywhere, Principia comes out of the box with templates and wrappers that make it easy for nontechnical developers to use. Most application servers provide some means to embed Structured Query Language (SQL) data access in Web pages. However, the usual approach is to put "raw" SQL in the HTML source. This forces designers to work in SQL terms. This is not necessarily a good idea because SQL is not a natural language for design work, and uncontrolled access presents a security risk to the underlying database. Principia wraps SQL in a lightweight layer that presents graphical designers with a more familiar syntax. At the same time, it segregates access control at a separate level for the convenience of database administrators.
The accommodation of site development teamwork pervades Principia. A good example is the built-in, so-called "customers have customers have customers" idiom Principia supports. Principia's first application was to manage online classified advertisements for newspapers, that is, it was used to manage systems of classified ads. The server was used to build a template for Web sites, which was then sold to individual newspapers. Web designers at local newspapers were able to customize the template to produce working URLs for their classified ads.
This sensitivity to the different roles involved in site maintenance enchants us. We consistently find these distinctions among the most difficult aspects of requirement analysis for Web applications. Principia uniquely supports the collaboration typical of the real world through its built-in services, the full programmability of its Python interface and its ability to manage all its constructs through a Web interface.
Object-oriented Web implementation is too new for all the benefits to be apparent. Among the examples Digital Creations mentions on its Web site are the ability to define a page footer to be used uniformly throughout an organization's site and its subsidiaries, security privileges for maintaining the footer can be assigned separately from other chores and programmers can be responsible for "a centralized telephone number property" usable throughout an organization. "To me, the key points of the object-based architecture are modularity, which gives flexibility, scalability and manageability, [and] dynamic context--objects are smart and behave appropriately in context. For example, define a mail host object and, suddenly, all your other objects within the context of the mail host know how to send mail," says Digital Creations' Latteier.
Principia isn't perfect, of course. Products like NetDynamics focus more attention on large-scale electronic commerce, while ColdFusion has a formidable installed base of experienced users, and MIS folk "Webifying" relational databases might be more comfortable using Kiva. Principia's a lot more fun than these products, however, and it's probably better for innovative Web sites because its Python base offers developers powerful programmatic control. In addition, it includes templates to partition work sensibly among nontechnical Web site designers, administrators and programming staff. BoboPOS gives it unique, yet inviting, abilities to structure pages in sophisticated ways. Principia is portable across a wide range of operating systems, including Solaris, IRIX, HP-UX, Digital UNIX, BSDI, Linux and Windows NT 4.0, and data store technologies, such as Microsoft Corp.'s Internet Information Server (IIS) and SQL, and Netscape and Apache Web servers.
To try Principia for yourself, just download and unpack the archive, launch the installation and start the Web server; it's that easy. Anyone looking for a better way to manage Web sites and applications can afford to invest this small amount of time. And, of course, the license fee is unbeatable.
|CAMERON LAIRD and KATHRYN SORAIZ manage their own software consultancy, Network Engineered Solutions, from just outside Houston, TX.|