In-Depth
Application servers in 1999: Persistent objects are knocking at the door
Among the keystone technologies
associated with enterprise application integration today are application
servers. At first glance, they would seem to be nifty black boxes that
simplify that mysterious middle or 'n-tier' layer
of modern computing. Of course, at second glance, the application server
becomes something more of a cipher -- a secret collection of services
meant to be understood only by those who have the key.
That the application server's definition is indistinct should not be
too surprising -- it is evolving from at least two directions. On one
hand, the application server comes from the Web application space. In
this case, it is an increasingly sophisticated gateway -- a means of bringing
state to the stateless world of HTTP computing.
On the other hand, it is a new generation of client/server system that
provides a middle- or logic-level layer between front-end presentation
and back-end data source layers.
Although elements of the two styles are converging, the application server
that occurs in a big Internet commerce site -- where networking and load-balancing
issues become dominant -- will, for the time being, continue to look different
than the application server serving a modest corporate intranet.
And whether the direction of development comes from the Web or from traditional
client/server technology, the number and complexity of transactions also
influences the choice of application architecture.
Stanley steaming
If the software industry can come up with the right combination of elements
in an application server for distributed computing, the effect could be
like that of Henry Ford's machines on the infant auto industry. Definition
and simplification will drive great growth.
While such analogies can be stretched only so far, it may be fair to
say that the industry today is at a 'pre-Ford' stage. Variety still rules.
The moment is akin to the early automotive moment when unique designs
such as the Stanley Steamer vied to define what was an automobile. The
Stanley Steamer was a steam-powered vehicle with a number of beneficial
traits, not the least of which was its ability to run on a variety of
fuels; its one principal drawback was that it took a good 20 minutes to
warm up -- a far cry from gas-powered autos.
A few years ago, there was just such a chasm between the Web-spawned
application server of a Web start-up like Kiva Software, and the middle-tier
services generated by development tools like those from client/server
start-up Forté Software.
Observers expect this will change, and that elements of the different
breeds of application servers will blur; recent product enhancements from
the varied camps tend to confirm this view. Standards would help to ensure
that today's application servers are not -- like the Stanley Steamer --
apparent technology dead-ends; today, Enterprise JavaBeans (EJBs) and
CORBA are standards that seek to address this issue.
The first Web application servers were spawned from the requirement to
improve upon basic CGI connections between a database and a Web server.
They have come a long way, increasingly coming to resemble application
servers that were designed to run middle-tier components. Meanwhile, both
Web application servers and client/server
application servers are taking on more aspects of traditional transaction
servers.
Although they have yet to generate a great deal of revenue, application
servers have spawned a lot of interest within the last year. Netscape's
purchase of Kiva started something of a trend, with Sun Microsystems buying
NetDynamics (which started life as Spider Technologies), and transaction
and ORB house BEA purchasing WebLogic for its application server prowess.
Among the early application server makers that remain independent are
Bluestone, Haht, Novera, SilverStream and others. Several of these have
made a commitment to EJBs as a cross-industry standard component format.
Meanwhile, 4GL forces like Forté, Progress, Sybase, Inprise, Neuron
Data, Compuware and Unify (and others) have not been slow to endorse the
application server concept, or EJB. The application server and EJB have
also been central to database leader Oracle's Web computing strategy.
Heavyweights IBM and Microsoft have taken different tacks, but each remains
true to recent strategy. And both companies' moves re-enforce the trend
toward a blurring of categories. IBM, summarizes Joe Damassa, IBM vice
president, application development marketing, has incorporated a number
of its enterprise computing elements under its new WebSphere umbrella.
These include VisualAge tools, transaction services, object request broker
services and messaging services. Top this off with IBM's declared support
for Enterprise JavaBeans.
For its part, Microsoft, while eschewing Java and CORBA as platforms,
is offering up Windows NT as tomorrow's state-of-the-art application server.
Elements of the firm's tools, middleware (COM), Microsoft Transaction
Server (MTS) and MSMQ are in the process of becoming an app server that
could prove quite competitive.
Can COM be called an application server? When matched with a few other
services, yes, sort of. What is being called a server today, as in the
recent past, is really a bunch of services. [And it is not getting any
easier -- the term "Web application server" has begun to crop
up lately to describe a combination of Web-oriented Web-server-like functions
and application server tasks!] Some day, the public may come to call the
proper combination of various key services "an application server"
just as, in our automotive analogy, a certain group of functions came
to be described as a "car."
Thus, arguably, the traits of application servers today are Web page
generation, session management and threading, business logic process management,
auto-recovery, load balancing [both on the front (Web) end and back (data
source) end], object brokering, data caching, connection to data sources,
security and transaction management. If an object architecture is employed,
various elements might combine to represent another perhaps distinct functionality
-- persistent object services. In many cases, Java support has come to
be an essential application server ingredient.
What they're saying
Like only a few others (IBM and Forté, for example), the Uniface
4GL IDE from Compuware, Farmington Hills, Mich., can claim one of its
application servers runs on a mainframe. Dirk Gorter, director, product
marketing at Compuware, said Uniface's initial application servers were
"the thing you needed to run middle-tier components.
"Right now, we don't consider the 'Web application server' vendors
as primary competition," said Gorter. "A lot of them take more
of a middleware approach. We still position our server as part of an IDE.
We partner with BEA and IBM [with Transarc] for transaction services.
We are talking with Microsoft about MTS."
A gating factor on Java application server acceptance, at least in Gorter's
view, is the Java language's status as a 3GL environment. For large-scale
projects, at least, it has some of the same production drawbacks as C++,
indicated Gorter. "Java is still not completely settled on how that's
going to evolve. We provide productivity and maintainability. C++ is becoming
standard, but at the end of the day it's still a 3GL," he said.
Gorter was also asked about Enterprise JavaBeans. "EJB is on our
radar screen," he said. It solves problems similar to those solved
by the firm's Uniface server at the moment. "If it becomes accepted,
it could become the default component model," he said.
One of the sticking points leading up to the first EJB spec was the Entity
bean aspect of the standard, which is still under discussion. Handling
software objects throughout the system life cycle is an important task
for an enterprise-class application server. "We all have something
extremely similar to an Entity bean. We call them data objects. It allows
you to take care of your objects, and we try to make this separate from
the database system," said Gorter.
"Application servers are becoming required to interoperate with
a variety of applications," said David Butler, vice president of
marketing for Novera Software Inc., Burlington, Mass. "EJB has arisen
as the de facto application interface standard for doing end-to-end application
management."
One of the first application server makers, Bluestone Software, Mount
Laurel, N.J., which was also one of the first to support EJB on the server,
has been early to
endorse XML as a means of automating
information-integration-related data exchange. The firm has suggested
that EJB support will soon be a commodity. "XML has the capability
to bring the component model to the fore," said John Capobianco,
the firm's senior vice president, marketing.
And at one of the most visible app server newcomers, it has been business
as usual for Mountain View, Calif.-based NetDynamics since its purchase
by Sun Microsystems, said Zack Rinart, VP of Sun's NetDynamics unit. The
firm now positions its products as 'the power behind the portal,' referring
to the now fashionable intranet portal architecture. Its new product,
NetDynamics 5, is said to continue to provide COM interoperability. It
also supports Java 2, JDBC, SSL and HTML caching.
Persistent objects
Among services that distributed system developers now wrestle with is
what can be called application server caching, data object handling or
persistent object storage. This problem can be especially pressing in
volatile, high-transaction e-commerce sites where scalability is a challenge.
As in advanced client/server computing, one of the associated issues developers
must confront is mapping between object and relational data domains.
One of the main voices of what it calls 'container-managed persistent
objects' is Persistence Software, San Mateo, Calif. With Sun Microsystems,
the company last year released an application server benchmark showing
what it described as the value of an advanced caching server architecture
vs. a fully cached (in-memory) relational-data-based approach to transaction
electronic commerce. Solaris-based application server caching can deliver
490 complex-transactions per minute performance, according to the company.
Analyst John Rymer, president of Oakland, Calif.-based Upstream Consulting,
said there is a great market opportunity for Persistence-style app servers,
which he places in the category of second-generation application servers.
Others might add companies like GemStone Systems Inc., Beaverton, Ore.,
and Cleveland-based Secant Technologies to this second-generation application
server category. In December, Rogue Wave Software, Boulder, Colo., joined
the battle with RW-Metro, a mapping solution for unifying object and relational
models. Rogue Wave describes its method as a custom approach to application
servers in which component-based elements are the building blocks for
an enterprise solution.
A big separation between the Persistence and GemStone approaches is that
the former works as a mapping from the object to the relational domain,
while the latter is distinctly object-oriented, although it has some requisite
relational hooks.
In mid-April, Persistence Software introduced PowerTier 5 for EJB. It
is said to provide stateful load-balancing and fail-over, as well as EJB
interoperability via RMI/IIOP. With the product's PowerSynch cache replication
feature, multiple appli-cation servers can reportedly maintain a
consistent set of application information within a server's shared object
cache.
In late April, GemStone released GemStone/J 3.0, which integrates a Java
Servlet engine and Java Server Page (JSP) implementation. Also new are
Java Security Architecture (JSA) and Java Cryptography Architecture (JCA)
security standard support. With GemStone/J 3.0, customers can implement
configurations that include a load-balanced group of Web servers, each
of which can run multiple instances of the servlet engine running Java
Servlets, while accessing EJBs, CORBA objects and pooled relational database
connections running in load-balanced Java 2 Virtual Machines.
Anne Thomas, an analyst with Boston-based Patricia Seybold Group, said
there are three levels of persistence: straight mapping into an object
store, object persistence involving storing objects in an object database,
and object-relational mapping in which a persistent object layer is graphed
to a relational database. Most often, people are using relational mapping
because it may be simpler than writing connections for all of the front-end
applications to the back-end databases, she said. But, Thomas maintained:
"When you convert objects into relational structures you end up losing
a lot of information about the relationships between the objects."
Thomas added that the Object Management Group is finalizing work on persistence
services that will provide a standard mechanism to persist objects for
developers.
Enabling multitiers
David Norris, president and CEO of Dallas-based ObjectSpace, said interoperability
between implementations of persistent object services is important because
it will enable multitier applications to be built. These will communicate
with multiple middle-tier application servers that, in turn, can share
and access different kinds of back-end data.
"Today, this is difficult because there are so many ways to define
components. It is not a big deal yet because there are not many applications
servers out there," he said. The ObjectSpace product line currently
has an application server product, under the Voyager product umbrella,
that supports Java, DCOM and CORBA, said Norris. "It can be used
to create a persistence object layer to support access to relational databases
and a variety of app servers."
Scott Dietzen, CTO of BEA Web Express said that every Enterprise JavaBean
has persistence associated with it, which allows the developer to define
how it represents a back-end data source. "You can also have the
container or application server do the mapping for you," he noted.
Kevin Dick, an analyst with Kevin Dick Associates, said a distinguishing
feature about persistence implementation is the whole notion of caching.
"It is very inefficient to request the same data over and over again,"
he said. "Things like persistence remember what you asked for; and
when you ask again, give it to you straight up."