Web oriented architecture (WOA) is rapidly becoming mainstream, and it's changing
the landscape of Web application development. Along with the heightened expectations
on feature set and collaboration, however, comes a higher expectation of responsiveness
and seamless quality. Managers and marketers that fundamentally understand these
principles and manage their sites as living, breathing experiences will excel
in this new world order.
In the early days of the World Wide Web, there was static HTML. Pages had very
few assets or dependencies outside of perhaps, a background image. Not to mention
the flashing marquee.
As Internet users began to demand more from their online experiences, developers
were challenged with uncovering ways to meet user needs. CGI was one of the
first technologies commonly used to create dynamic pages, which evolved into
the wave of server-side page generation technologies that we have today. It
was completely a server-side, database driven game in those days. Data was retrieved
from the database and displayed in the desired format to the end user.
This all took a radical shift when people began to realize that this Web architecture,
this client/server -- request/response cycle could just as easily be connected
back onto itself to create amazing new things. A page is a Web service that
a person uses, and a Web service is a page that a system uses. SOA meets the
chaos of the World Wide Web.
For those on the cutting edge of interactive applications, building upon this
rapidly expanding web of services quickly became the only game in town. It would
be close to impossible to cost-effectively build a consumer Web site without
leveraging this mountain of prior work. Opening up the covers reveals services
intertwined everywhere -- scheduled, inside the server-side page generation
process, in-line during client side rendering, and firing asynchronously client
side in response to key user events.
Most sites are no longer a standalone island of functionality, but a conglomeration
of many disparate services, including analytics, geo-location, search, product
catalogs, shipping, currency exchange, translation, social network sharing,
and streaming. Previously, these functions were baked into each application
that needed them. These are now calls to functionality that a dedicated team
on the other side of the planet is spending their days and nights to provide.
One of the longtime leaders in the online space, Amazon.com, is an excellent
example of consuming (not to mention providing and hosting) a large number of
services. Werner Vogel, CTO of Amazon.com, has spoken about the 200 to 300 services
that go into pulling together the Amazon.com home page. These are mostly internal
services over which they have strict control, but also include external sources.
This volume of service integration/utilization is not typical for all consumer
Web applications, but involving one or two dozen services for a single page
is no longer difficult or unusual.
While the leverage of an interactive developer has been ratcheted up significantly
by the reuse of these pre-existing services, so has the overall system complexity.
A system consisting of a small set of database calls is easy to comprehend.
Understanding and managing a system that is orchestrating dozens of service
calls, from both the server and client, to services spanning across the country,
is a much larger challenge.
-1-