Once the mainframe and non-mainframe transactions can be
treated as XML components, it becomes surprisingly simple to provide a number of useful
services. Just the browser interface alone reduces user errors and new user learning time.
The composite application approach is very powerful, and can provide significantly
improved workflow for the users. Perhaps most interestingly, composite applications are
not limited to a single application, nor to a single host.
At the start of the article, we asked what are Web Services good for today, before all
this future, pie in the sky prognostication proves itself true (or false)? How will it
help get the work done that has to get done, every day? The answer is Enterprise
Application Integration (EAI), one of the most rapidly growing areas of work within the
enterprise today. We believe that Web Services will dramatically reduce the cost of
application integration in the enterprise, and will replace expensive, proprietary EAI
solutions with inexpensive commoditized solutions based on open standards.
The earliest attempts at application integration involved allowing query access to
enterprise data for anyone who could justify it. This solution was really just a stopgap,
and it created new problems as it solved old ones. Allowing direct access to enterprise
data required all users, many of whom might be unsophisticated computer users, to learn
and correctly replicate existing business rules in order to issue a correct query. And,
allowing update access was simply too dangerous in almost all circumstances.
Web Services are defined as transactions, so that proven business rules mediate all
access to and update of data stores. Once the transactions are defined as Web Services,
then anyone with appropriate access within the enterprise can discover and consume any
needed service without fear of compromising system integrity, including the updates
hitherto prohibited.
This is a great deal more than simply providing universal browser access to enterprise
applications, although that is certainly one use. It is also more than re-engineering the
user interface to reduce the number of steps required to accomplish a task, as we touched
on briefly in the discussion of super-functions above.
Web Services immediately open up the possibility of easily assembling composite
applications from multiple applications on different hosts, in which we combine existing
functions in novel ways, or we create new functionality freely intermixed with old. This
is the most important aspect of Web Services today. All existing transactions
become Web components that can be used as building blocks for new applications.
There is only one snake in this Garden of Eden: success. Offer people new and useful
functionality, and they will take advantage of it. Result: increased load on servers and
mainframes. In at least one case we've seen, an application built at great expense
generated so many downstream transactions that it rolled over and died after the 10
user signed on, out of a specification to support 4500
users. After reviewing all the options, the decision was made to pull the plug, pouring
over $50 million down the drain in the process, because the hardware upgrade would have
been many times that. We strongly recommend building and testing performance models before
committing to a design for a significant composite application. The design has to offer a
positive return on investment for the business as a whole, including the cost of usage
figured into the cost estimates for the project.
We often promote the idea of re-using existing applications in modern deployments, as
an antidote to new technology enthusiasts who view all new development through rose
colored glasses. Re-use allows an evolutionary, step-by-step, and thereby low risk
approach to achieving the technical goals. Full replacement of existing applications by
new implementations constitutes a revolutionary approach that increases both cost and
risk, but, arguably, does increase the benefits at the same time. There are no technical
reasons to replace an application with new development in order to achieve the benefits of
Web Services. There may be valid business reasons to do so, however. We recommend that
re-use versus replacement decisions be made in the full context of relative cost, risk,
delivery time, technical benefit, and business benefit, and that neither evolution nor
revolution be considered a priori as constituting the best business solution.