At the heart of most successful open source projects is an emphasis on open architecture — at least one mechanism that allows the product to be utilized as a support network for unanticipated extensions and independently motivated functionality. Such extensibility mechanisms allow an open source project to decentralize its evolution and take advantage of Internet-scale collaboration. However, they can also be a source for unnecessary complexity and hidden barriers to entry. Representational State Transfer (REST) is an architectural style that I developed to describe and redefine the World Wide Web. The essential constraints of REST are designed to promote the development of open architectures within Web-based applications, such that the resulting resources are reusable across independently developed systems (today, we call these “MashUps”). The same principles can be used to design other open architectures, though not necessarily with the same constraints. This talk will focus on applying principled design techniques to the design of open architectures, as demonstrated by various examples from successful open source projects.
Roy T. Fielding is Chief Scientist for Day Software, cofounder of the Apache HTTP Server Project, and former chairman of the Apache Software Foundation. He defined the REST architectural style and wrote the standards for HTTP and URI.