HTML only gives instructions to a Web browser regarding how to display the infor-
mation. This is a very important function, but it means that you cant interpret the
HTML semantically. This is where XML comes in.
Its easy to say that the Web could have been designed better, but hindsight is
always 20/20. In truth, the Web is great because its so easy to extend. Though it was
originally intended for static documents, it was easy to add support for images and
dynamic data. A Web server doesnt care what kind of information it sends or where it
came from. HTTP merely describes the mechanics of transferring the information in a
fineits up to the browser to understand how to use that information.
Likewise, creating database-driven Web pages is just a burden on the server. Web
browsers dont know the first thing about interacting with a database. Strictly speak-
ing, an HTTP server process doesnt, either. It just knows to hand off certain URLs to
servlets and other server-side modules that interact with the database and produce
This evolution continues today with Web services. HTTP is so simple that you can
easily embed simple Web clients in your code. Then, you can grab data from remote
machines and use their data in your programs. Because HTTP doesnt care what is
sent, you can use XML to structure the data. HTTP is also very loose in what it receives,
so you can send data back to the server. Thus, a protocol originally intended to make it
easy for physicists to share documents can be used as the backbone for powerful dis-
The process of developing Web applications is maturing. While early Web applica-
tion developers had to concoct solutions as they encountered a wide variety of prob-
lems, a lot of the pioneering is done. The best solutions are being recognized as such
and adopted widely. Java and Java Database Connectivity (JDBC) are good examples
of this, as are XML and XSLT.
The XSQL framework is yet another evolution in Web development. With XSQL,
producing dynamic Web pages that interact with the database is nearly as simple as
writing an HTML page itself. In the not-so-distant past, you had to write a module in a
language like Java, Perl, or C++ that managed the database connection, executed SQL
against the database, and then processed the results. That just got you started. From
there, you had to figure out what to do with the results. Because the number and type
of results could vary widely for the same module, you had to deal with issues like how
many results to put on a page and how to format different types. This model, often
called the three-layered model, is illustrated in Figure 1.1.
The three-layered model.
271209 Ch01.F 12/9/02 2:00 PM Page 4