The E-Business Software Weekly is a series profiling trends and developments in software and applications that support e-business, the Internet, and other electronic communication channels. Look for a new story each week in this space.
"Software as a Service"
Phil Wainewright fears that information
technology may be stuck in a time warp. As the founder of ASPnews.com,
the leading Internet publication devoted exclusively to the
application service provider (ASP) market, Wainewright has been
a box-seat witness to the birth, meteoric rise, and subsequent
death spiral of the ASP model, and now watches with the strained
optimism of a sports columnist for a struggling home team as
he searches for signs that ASPs are mutating into a new, more
viable form.
He's not sure he likes what he sees.
"Back in 1995," he recalls, "an enormous buzz took hold in the
IT industry, as the popular emergence of the Web browser and
the creation of Java seemed to have laid the foundations for
a completely new form of computing. People started saying that
the PC would be consigned to history within a year or two, replaced
by Java-based browser applications delivered via cheap, networked
appliances."
But while Java soon became a handy tool for adding animation
and interaction to Web sites, its business value remained questionable.
"The knowledge that Java was good for developing lively Web
content was hardly reassuring for enterprises wanting to know
if they could run their businesses on it," says Wainewright.
"As doubts emerged about its reliability, scalability, and compatibility,
Java struggled to contradict the view that it was good only
for Web page gimmicks."
Fast forward to 2001. The advent of the Web services model-one
of the most provocative of the potential ASP evolutions-"is
starting to sound just like 1995 all over again." A wide range
of technology watchers, Wainewright included, are proclaiming
Web services to be the foundation of a completely new form of
computing, "destined to gradually supplant and ultimately obsolete
traditional standalone software applications." But, Wainewright
worries, "the only live, operational Web services we can point
to are just a handful of cool gimmicks for Web sites. Who,"
he insists, "is that going to persuade?"
Defining Web Services
At this point, persuasion may be the least of the tech
watcher's concerns. First is a simple matter of definition.
As with other new technologies, gauging the potential of Web
services begins with specifying exactly what we are talking
about-no small task given the expansive, often fuzzy nature
of much high-tech terminology. Like ASPs before it, the "Web
services" concept seems to mean different things to different
people, ranging from tiny Web site applets to full-blown Web-based
applications to pretty much anything in between that suits the
convenience of the commentator. Properly defined, however, Web
services are a distinct, straightforward class of technology.
To understand Web services, it's helpful to begin with the well-established
concept of a software application. As anyone who has used a
computer instinctively knows, software applications are computer
programs that enable individuals to create, command, and interact
with data for some specific purpose. The data itself may take
on a wide range of forms, including textual (as in word-processing
programs), graphical (as in photo-editing programs), audiovisual
(as in video-editing programs), numerical (as in spreadsheets),
or some combination thereof (as in most database-dependent applications).
Likewise, software applications may be used to carry out a variety
of tasks, from calculating budgets to designing a brochure to
managing hotel reservations.
Despite these differences, software applications are all conceptually
architected, at the highest levels, in the same way. Schematically,
software applications can be represented by three "layers":
(1) the "presentation layer," which is the interface through
which the application and data are displayed; (2) the "application
layer," which is the structured framework of rules that govern
how individuals may use the application to create or interact
with data; and (3) the "data layer," or the repository where
data are stored, from which they are imported into the application,
and to which they are exported when the application's work is
completed. In principle, applications are modular, such that
the application layer and the data layer can reside in different
physical locations, and can be viewed through a host of different
presentation layers.
This conceptual architecture is less mysterious than it sounds,
and is, in fact, part of most computer users' everyday experience.
For instance, on a standalone PC, in which software programs
and data are typically stored on the computer's hard drive,
both the application layer and data layer reside wholly on the
same computer, and all viewed through a single, dedicated presentation
layer (i.e., the computer's monitor). On many office PCs, however,
while software may reside on a "client" computer's local hard
drive, data is often stored on and drawn from a centralized,
network-based server. Hence, in this "client/server" environment,
while the application layer is a purely local phenomenon (and
is still tied to a single, dedicated presentation layer), the
data layer becomes network-based: that is, it draws on information
resident outside the computer's physical boundaries.
The Technical Architecture of Web Services
The use of networks to deliver data, of course, is hardly
revolutionary. In the early years of enterprise computing, not
just data, but entire software applications were stored on and
accessed from centralized mainframe computers-the antecedents
of modern-day servers. Employees interacted with both applications
and data over an in-house network, meaning that both the application
layer and the data layer were network-based phenomena. Employees'
workstations (i.e., the presentation layer) consisted of the
proverbial "dumb terminals"-they contained no intelligence,
no operating rules, no data. They merely acted as a display
mechanism through which users could view and interact with data.
Moreover, in contrast to the emerging PC-based and client/server
architecture, in which a "client" application would need to
be installed on each user's computer, any "dumb terminal" could
be used, without modification, to access the same central data
base.
Web browsers and Web sites employ a parallel architecture-except
that the mainframe computer has been replaced by a global network
of networks called the Internet. As with mainframe applications,
a given Web site can be accessed from any browser-enabled computer
without the need for further modification to the computer. But
there is a key difference between mainframe computing and the
vast majority of Web sites. As informational vehicles, most
Web sites send data to and occasionally receive data from the
user's browser, but they typically do not allow users to create,
modify, or otherwise manipulate the data, as a typical software
application does. Even the standard transactional Web site adds
little more than a sophisticated data input and capture mechanism
that then feeds into a back-end transaction-processing engine.
The upshot: as rich as they are, the majority of Web sites contain
only a presentation layer (the Web browser) and a data layer
(the site's components, as stored on the Web server); there
is typically no application layer.
With these concepts established, it now becomes a simple matter
to define Web services. We can approach the definition in two
ways:
As a "Webified" application. Functionally comparable
to traditional application software, "Web services" are merely
software-like applications designed to be delivered completely
over the Internet. That is, both the application layer and the
data layer are resident on a centralized server or network of
servers, and are accessed by the Web browser (the presentation
layer) as needed-in much the same way that so-called dumb terminals
of the mainframe age would access application functions and
data from the local mainframe. Other than that, the Web service's
applications are intended to function exactly as they would
if they were resident on a computer's local hard drive.
As an enhanced Web site. Web sites intrinsically
offer users a certain degree of interactivity, if nothing more
than the freedom to choose which links to click. To the extent
that a Web site's interactivity is enhanced in such a way that
users can actually create, manipulate, store, and recall data,
the Web site will acquire some of the essential characteristics
of a Web application, and so gradually evolve into a full-fledged
Web service. As with the data layer, the application rules for
such a Web site would be stored on the central server or network
of servers.
These two approaches to the "Web services" definition are useful
because, in fact, Web services can be created in either way.
In some cases, applications will be written from the start for
delivery over the Internet, and the Web site over which they
are ultimately displayed will be comprised of that application
and little else. In other cases, existing informational Web
sites will be gradually supplemented with application-like functions
until they take on a form that can appropriately be termed a
Web service.
In either situation, however, note that Web services are fundamentally
distinct from the conventional concept of application service
providers, or ASPs. Typically, ASPs are organizations that deliver
existing desktop- and client/server-based software applications
over a network. Unlike Web services, ASPs are desktop-based
software applications whose data and at most some small portion
of application rules have been moved onto the network. With
most traditional ASPs, full client versions of the software
must reside and be maintained on each individual user's computer.
The ASP model is thus not reflective of the Web site architecture
that underlies Web services, but is merely an extension of the
traditional client/server model-the key distinction being that
the central server is accessed, not over an internal LAN or
a WAN, but over the Internet.
The Benefits of Web Services
Because they basically extend the client/server architecture
to the Internet, ASPs afford their business users some administrative
and financing advantages over current in-house enterprise computing
environments, but little in the way of real computing benefits.
The problems and complexities that plague locally hosted client/server
software continue to burden the ASP implementations of the same.
Nor do the often enormous technical and financial burdens of
high-end client/server software disappear under the ASP regime;
they are merely shifted in time or space via financial amortization
or the outsourcing of IT functions. It is for this reason-the
ultimate meagerness of their value proposition-that ASPs have
not survived their initial flurries of promise.
But if ASPs have delivered less value to business than they
were supposed to, why should we expect anything different from
their progeny, the Web service. If, as indicated above, Web
services perform basically the same functions as desktop- or
client/server-based software applications, why the rush to trade
one for the other? And why the frequent declarations that the
move to Web services would transform the delivery of software,
even do away with software completely? For instance, a report
earlier this year in InfoWorld proclaimed that "Web services
may be the El Dorado of the software industry. Just as Sir Walter
Raleigh and countless prospectors looked for the city of gold,
vendors and corporations alike have sought out ways to enable
application accessibility across the InternetÖ"
But why? Just "because it's there" doesn't seem like a sufficient
answer, especially in view of the billions of dollars that would
need to be spent to make Web services a viable alternative to
packaged and client/server software.
As it turns out, Web services-software delivered as a service
over the Internet-do offer enterprises a number of advantages
over traditional forms of software, advantages that the conventional
ASP model promised but could never produce. These benefits include:
True anytime, anywhere access. Like Web sites themselves,
Web services are available from virtually any computer with
an Internet connection-at any time, day or night-and, in some
cases, from a multiplicity of devices, including Web-enabled
cell-phones, handheld computers, and kiosks. Unlike packaged
or client/server software, which require installation, upgrades,
and reconfiguration of preferences on each computer on which
it resides, Web services are instantly accessible, with all
preferences and configurations preserved, from any Web-connected
computer.
Continuous real-time data synchronization. With
traditional software, working from different computers often
means copying and physically transporting data files, so that
the same file winds up existing in multiple versions and at
multiple locations. Users cannot be sure that they are working
with the most recent data, or that any changes they make will
be preserved in the final version of a file. By contrast, because
each access point for a Web service draws on the same centralized
data base, data is always complete and current, eliminating
the need for multiple file copies, data-file version control,
and physical transport of data.
Enhanced interconnectivity. Because they were designed
primarily as standalone applications, most traditional software
programs do not interconnect very well. In fact, for some enterprise
applications, months or years of work and many millions of dollars
may be required to enable multiple applications to talk with
one another. Most sophisticated Web services, however, are built
with an XML (eXtended Markup Language) interface that affixes
a common set of tags to the data generated by the underlying
application, and so it becomes a much simpler task to integrate
disparate applications, a task that can often be accomplished
in a matter of weeks.
Simplified administration. ASPs promised a greatly
reduced IT administration burden, since the ASP's staff-and
not the client company's in-house staff-managed the software,
servers, and network. But because desktop versions of the software
were still required on all users' computers, the overall amount
of administration needed was largely unchanged; companies paid
outsourced IT staff rather than in-house staff, but they still
paid. Web services offer all of the administrative benefits
of ASPs because they, too, centralize applications and data,
but since Web services also eliminate the need for desktop software,
they actually-and sharply-reduce the total administrative effort
required. Not only that, but the centralized nature of Web service
applications means that all users are always working from the
current version of the application, eliminating the need for
software upgrades or version controls.
Lower total cost of ownership. ASPs were supposed
to reduce the total costs of software ownership, but instead
they simply amortized the costs over time, leasing the software
rather than requiring an outright purchase. The total cost of
ownership was little changed, however, because each client company
needed its own software and per-seat licenses, its own specialized
hardware, and its own networking. Web services require none
of this. They are not leasing arrangements, but subscription
relationships, much like cable television or telephone service,
that involve no huge upfront licenses and generally no specialized
equipment. Not only that, but only one instance of the application
"software" is required for the totality of a Web service's customers,
making it much less expensive for the Web service's users as
development and maintenance costs are amortized over the entire
user population.
A Web Services Revolution?
Personal computing and the Internet have profoundly-and permanently-revolutionized
the business world. Will Web services do the same?
Microsoft certainly thinks so. With its .NET initiative, announced
in June 2000, Microsoft made clear what it had long been hinting
at: that the future of software, in its view, lay in the rental
of applications over the Internet. Other industry leaders, including
IBM, Oracle, Sun Microsystems, and Hewlett-Packard, have placed
their persuasive stamp of approval on the Web services concept.
As a March 2001 InfoWorld report concluded, "With all of the
major software vendors now backing Web services, little doubt
remains about the general direction in which the industry is
heading in terms of the dominant environment for business applications."
Industry researchers agree. A January 2001 study by the Stamford,
Conn., based e-business consultancy Gartner Group predicted
that all leading e-business platforms would support at least
the basic Web services infrastructure by no later than 2003,
forecasting that, by that year, more than 75% of the Web services
in production would be supported by IBM, Microsoft, and two
or three other vendors. IBM, among others, sees the same vision
of the future. "Web services are a very profound advancement
for e-business," Scott Hebner, IBM's director of marketing for
its WebSphere product line told InfoWorld. "They can change
the Internet into a platform for integration."
And therein lies the revolutionary secret of Web services. Within
the next several years, if all goes as planned, vast numbers
of Web services will work together over the Internet, as seamlessly
as if they were part of the same application. The benefits to
business in terms of increased productivity and efficiency-not
to mention the competitive advantages arising from real-time
business intelligence-will be enormous.
But is all this just another Java-rules-the-world pipe dream?
ASPnews' Phil Wainewright, after some serious introspection,
doesn't believe it is. He admits that, "when it comes to mainstream
business use, all the same kinds of doubts that hung over Java
in 1995 hang over Web services today-doubts about security,
integrity, reliability, and interoperabilityÖ Nevertheless,
the lessons of the past six years suggest that Web services
will eventually succeed in earning [their] credibility." He
notes that, "back in 1995, while Java applets were making people
sit up and look at the browser, the real progress was being
made behind the scenes on the server," to the point that "Java
is now at the heart of the component architecture on which the
world's leading application server platforms are built. It has
won the trust and confidence of global enterprises."
Wainewright predicts a similar course of events for Web services.
"Today," he says, "Web services are starting to make their impact
with functionality delivered directly to a user through a Web
site. But again, the real action is going to happen back in
the network, as the industry works to build a robust commercial
architecture for server-to-server Web service transactions."
Will it happen? Wainewright has no doubts. Reflecting on the
once-derided Java, he points out that "the achievements of the
past six years have fulfilled many of 1995's wildest dreams."
As for Web services, he says, "Expect the next [six years] to
deliver a whole lot more."