The Emerging Distributed Web, Part 2 of 4.
The Emerging Web Platform Landscape.: In this article,
Jeremy Allaire describes how the Web platform has become a
distributed, global application platform for running core
business systems in organizations worldwide, and the challenges
this presents in the sharing of structured data.
By Jeremy Allaire
Editor's Note: This is the second in a four-part article
series to be published weekly. Past articles in the series
are available in our Columns & Articles archive
section.
The Emerging Web Platform Landscape
In the first article in this series I outlined a view of
the emerging opportunities that the Web platform is created.
In particular, I tried to show that the opportunity of distributed
Web applications, where every Web browser and server on
the network leverages data and services of other servers,
becomes the foundation for the new Internet Economy.
From that analysis, it is clear that we are at a turning
point in how the Web is adopted as a platform for this class
of applications.
Organically evolving over the past five years, the Web
platform has moved from being a mere document sharing system
to being a distributed, global application platform for
running core business systems in organizations worldwide.
Any approach taken to address the emerging crisis of web
applications must embrace this emergent platform, accepting
its core components and capabilities, as well as its limitations.
While it is tempting to look for a replacement technology
built from scratch that does not have the Web’s weaknesses,
it is far more practical to look for an approach that evolves
and embraces, but does not attempt to discard, the established
Web platform.
The De Facto Web Platform
The Web is by nature heterogeneous. It consists of a myriad
of browsers and servers deployed on any number of operating
systems and vendor implementations. As an application platform,
it weaves together many types of content and programming
languages. No single vendor controls it, and applications
deployed on it are assumed to have few boundaries. (As an
achievement in social anarchy, it appears to have no peers.)
Yet, the Web as an application platform has at last started
to take a common and predictable shape. By surveying the
landscape of Web applications (i.e. any Web site that uses
client-side or server-side scripting and application logic),
a consistent model of applications has emerged. Most corporations
have embraced and are actively building applications using
this model.
Dubbed 'Page-based applications', these applications use
server-side data access and application logic to dynamically
build pages that contain HTML, JavaScript and Cascading
Style Sheets (CSS) to create dynamic user interfaces. On
the server, Web applications are predominantly created using
programming environments such as Perl, ColdFusion and Active
Server Pages. (At times you'll find server-side applications
written using Java or C++, though these are limited due
to the complexity of development and the poor integration
of the languages with the page and content centric nature
of Web applications.)
On the client, the vast majority of applications are implemented
using a combination of HTML 3.2 and JavaScript 1.1. Most
applications are deployed to that subset of functionality
which is supported both by Netscape and Microsoft browsers.
Increasingly, applications are using JavaScript 1.2 and
CSS, though there is still low adoption of these given browser
compatibility issues. A very small percentage of applications
use client-side Java because of its poor platform compatibility
and significant performance and stability problems. An even
smaller percentage of applications use client-side ActiveX,
given the single-platform focus of this technology and its
poor integration with HTML.
Pragmatism Wins the Web Platform
It might be noted that the ubiquitous Web application platform
is little more than the evolution of a range of Web scripting
and content languages that share some common properties:
- They are straightforward and easy to use and learn,
- They are mostly typeless, ASCII-based environments,
and
- They seamlessly integrate into the existing HTTP-based
infrastructure used by Web browsers and servers. In short,
the established Web application platform is a pragmatist’s
platform, not a single homogeneous technology and architecture.
Web applications are built with this architecture and
these technologies because they are immediately available
and they work within the severe constraints of the Internet:
high-latency networks, low-bandwidth speeds, a huge range
of client and server operating systems, and the ability
to be leveraged across broad, globally distributed networks.
Having emerged from a document publishing system (HTML/HTTP
1.0), the Web has had to cope with a huge variety of shifts,
all of which have continued to accommodate the underlying
vision of the Web as an application platform.
Attempts to impose "richer" architectures on
the Web that purported to solve major architectural limitations
have consistently failed. Whether Plug-Ins, ActiveX or Java
as client-side executable platforms, or Shockwave and VRML,
which imposed huge client-side overhead while offering questionable
concrete value, these systems have failed to achieve broad
adoption because of poor integration with the Web platform
as it currently works.
Indeed, pragmatism has won and will continue to win the
Web platform war.
The Next Evolution of the Web Platform
As noted earlier, the Web is today undergoing another major
shift and evolution. The shift is from viewing the installed
base of browsers and servers as stand alone nodes, to viewing
this broad network as a set of distributed services that
can be leveraged by each other. In particular, the dramatic
increase in the capabilities of Web browsers, through JavaScript
and Dynamic HTML (DHTML), combined with the surging importance
of Web application servers has finally woken the industry
and customers to the fact that a sea-change is occurring
in how much this platform can accomplish.
The two major shifts that are driving the next phase of
the Web platform evolution are the increasing role of DHTML
and Web clients for handling applications, and the changing
role of Web servers to being distributed application servers
that expose content and programmatic interfaces to other
servers on the network.
Web clients grow in role and capability
After a number of false-starts with Plug-Ins, ActiveX and
Java, the browser platform vendors have finally settled
into Dynamic HTML (the combination of HTML, CSS and JavaScript)
as the core model for client-side applications in the Web
environment. With this standardization, developers are now
realizing that substantial benefits can be had if data processing
and application behavior is off loaded from servers to these
more intelligent and interactive clients, moving browsers
into a role and capacity that is likely to surpass Windows
and like APIs for graphical user interfaces.
Traditional capabilities found in legacy client/server
platforms, such as databinding and rich, interactive forms
behavior, is now quite possible in browser clients. This
capability has excited software ISVs and corporate developers,
as finally they can fully embrace the Web platform as the
new model of software development and distribution.
With this shift, the overall end-user experience and the
role that desktop computers can play in the Web platform
and global network is increasing dramatically.
Web application servers: the other side of the web
platform coin
Even with this shift towards richer client capabilities,
the pragmatist web platform is also evolving to support
a set of services on the Web server that drive both the
client behavior and distributed, server-to-server capabilities.
Web application servers have emerged as the foundation
of how companies build valuable applications and sites on
the Web. As the host of application logic, user and personalization
data, and most importantly, data and back-end systems integration,
these application servers are the critical counterpart to
the growing role of web clients.
In fact, the capabilities of web clients and their ability
to participate as true 'citizens of the web community,'
will increasingly rely on the ability of Web application
servers to interact and provide structured data to those
clients.
And, as companies move to use the Web as a platform to
drive business-to-business commerce and collaboration, the
ability of application servers to communicate and share
data with each other across the Internet and Extranets is
becoming a core requirement.
Structured Web data: the missing link
As identified above, two major problems exist for this next
evolution of the Web:
- Rich web-clients and web application servers have no
structured way to exchange data, and
- web application servers lack any common means to exchange
data between servers over HTTP. The lack of a structured
data exchange format is the missing link in this emergent
platform.
Using our earlier FedEx example, we can see how this problem
manifests itself. In the end-user example, it would be extremely
costly for FedEx to have its server dynamically generate
a set of pricing options data for a given package and send
that data to the client, where the browser would allow the
user to choose between varying options, examining different
prices based on configuration options. Assuming that the
FedEx system was implemented using server-side Perl, ColdFusion
or C/C++, these server-based systems have no easy way to
move the data about pricing options to the JavaScript based
clients. In short, no standard mechanism exists to move
data objects between these disparate, yet ubiquitous, web
programming environments. Hence, increasing the value of
the Web end-user experience has been hampered by this missing
link.
On the server-side, the problem is magnified. Imagine
that FedEx wanted to expose a set of URLs on its server
to other corporations who are deploying e-commerce sites
and servers on the Web. These other corporations want to
be able to query the FedEx server for real-time pricing
and package shipment status information over HTTP. FedEx
can’t assume that these incoming queries are coming
from any given platform; different corporations are deploying
e-commerce servers built on Perl, Java, ColdFusion, ASP,
and JavaScript using Web application servers. Second, even
if FedEx knew what kind of application was requesting its
data, it would have no standard and predictable way to exchange
that data. Again, the ability of FedEx to construct a next-generation
business model that leverages the new Internet economy has
been hampered by this missing link in the Web platform.
It is clear that a new, pragmatic solution is required
to bridge the Web of today with the Web of tomorrow, and
that XML is emerging as the foundation for this bridge.
In the next article for this series, I will discuss the
opportunity of XML as an answer to the missing link that
exists in the Web platform today.
Continue to Part
3 of 4: The XML Solution
-Jeremy
Jeremy Allaire is co-founder and Vice President of Technology
Strategy at Allaire Corp. Please direct comments on this
column to talkback@allaire.com.