The Web Points the Way (For Now)

From WikiContent

(Difference between revisions)
Jump to: navigation, search
Line 30: Line 30:
****Moore’s Law – This law describes a long-term trend in computer hardware in which the number of transistors that can be placed, inexpensively, on an integrated circuit has increased exponentially.
****Moore’s Law – This law describes a long-term trend in computer hardware in which the number of transistors that can be placed, inexpensively, on an integrated circuit has increased exponentially.
 +
 +
[RMH: No changes made, but I don't think this axiom is appropriate for project management. It argues for a specific distributed architecture and doesn't make any observation or provide advice specific to project management]

Revision as of 12:42, 11 May 2009

The Web Points The Way, For Now

David Wood

We know of exactly one software architecture that scales to billions of users and does so while being robust* to failures of individual components: The World Wide Web. The Web is the largest, most used, and most robust information retrieval system ever built by humankind. It even transcends our planet.

Why does the Web work so well? Roy Fielding, a founder of the vaunted Apache** project, researched this very question and came up with an answer in his Ph.D. thesis. I don't generally recommend Ph.D. theses for casual reading, but you should read this one. Really.

Fielding evaluated the architecture of an idealized version of the early Web and extracted architectural style elements from it. The result was a new software architectural style that he called Representational State Transfer, colloquially known as REST***.

RESTful systems have the properties that we have come to love about the Web. They are robust to both change and failure of specific components. They separate concerns so we stop caring about implementation details such as programming languages. They use a common lingua franca to exchange language-neutral requests for information. They scale mightily. They are stateless.

Not every Web site uses REST as a guiding principle. But many do and the Web as a whole uses it. Banks particularly break REST's design constraints because they map transaction-oriented legacy systems onto the Web, which causes sessions to risk timing out. They are stateful.

The Web Services standards don't address resources in a RESTful manner, but instead address functionality like classic remote procedure calls. Yet, banks and those using Web Services are on the Web even if they are not fully of the Web. The Web is robust to nasty design of individual components, too.

We can learn important things from the Web's success. Perhaps the most important is that Moore's Law**** now allows us to accept a great deal of abstraction in our system design. Instead of being overly efficient with our hardware and software, we can now think about being overly stable, overly robust, overly scalable and overly flexible. We can accept the inefficiencies inherent in the RESTful architectural style.

Distributed systems, like the Web, are harder to design. Perhaps this is because each of us is an individual. We treat our software systems like something that an individual creates; centralized as we each see the world. The Web has shown us the way, though. Distributed systems are harder to conceptualize, and thus harder to create, but creating them is worth the effort.

Naturally, technology changes. Ideas and techniques change, too. The simple Web of Fielding's description is not the modern Web. The Web may not always point the way. The key to adapting to new systems will be to design for flexibility now, using ideas like REST. Only then can we begin to create living, breathing, adapting software systems instead of periodically re-inventing our next legacy nightmare.

Editor’s Note:

  • robust – capable of coping well with variations, sometimes unpredictable ones, with minimal damage, alteration or loss of functionality.
    • Apache project – an open source project to develop and maintain free web server software for modern operating systems.
      • REST – a collection of network architecture principles which outline how resources are defined and addressed.
        • Moore’s Law – This law describes a long-term trend in computer hardware in which the number of transistors that can be placed, inexpensively, on an integrated circuit has increased exponentially.

[RMH: No changes made, but I don't think this axiom is appropriate for project management. It argues for a specific distributed architecture and doesn't make any observation or provide advice specific to project management]

Personal tools