CAMERON
LAIRD and KATHRYN SORAIZ
Principia: A Different Breed of
Application Server
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.
The Risks
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.
Open Source Delivers
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.
Did I Hear You Right?
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.
A Flexible Toolkit
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.
This architectural principle has powerful consequences both
for site development and page delivery. Principia's templates not
only make it easy to use cookies, programming structures and
Hypertext Transport Protocol (HTTP) header variables, but all
template-based editing sessions are private (off-line) and
reversible. This makes it easy for developers to experiment with
different designs without endangering production file systems.
Beyond Functionality to Manageability
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.
Conclusion
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.
Copyright (c) 1998 Computer
Publishing Group, Inc.
webmaster@cpg.com