User:Kmcnamee/sandbox

One of the most familiar aspects of REST to all users of the Web is the web address or more formally the URL (Uniform Resource Locator). REST requires that all web addresses follow a standard structure and use standard operators for fetching, updating and deleting information on a website. This enables users to access all kinds of information (text, images, today's weather, etc.) without knowing anything about the implementation of website itself. For instance, the information requested by the user could be stored in a simple file or require requests to multiple databases to produce an answer to the user's query. Since the storage medium is unknown, REST defines the generic term resource to describe the information requested.

Miscellaneous
Motivation

To understand and evaluate the architectural design of network-based application software through principled use of architectural constraints.

Requirements

Internet-scale distributed hypermedia system

Interconnecting information networks across organisational (trust) boundaries

Exhibits anarchic scalability and independent deployment of software components

WWW domain requirements
 * Q: For authors, the primary requirement was that partial availability of the overall system must not prevent the authoring of content. The hypertext authoring language needed to be simple and capable of being created using existing editing tools.
 * Q: references needed to be easy to communicate, whether in the form of e-mail directions or written on the back of a napkin at a conference
 * Q: Simplicity was also a goal for the sake of application developers. Since all of the protocols were defined as text, communication could be viewed and interactively tested using existing network tools.
 * Q: A system intending to be as long-lived as the Web must be prepared for change.
 * Q: By its nature, user actions within a distributed hypermedia system require the transfer of large amounts of data from where the data is stored to where it is used. Thus, the Web architecture must be designed for large-grain data transfer.
 * Q: The usability of hypermedia interaction is highly sensitive to user-perceived latency ... the architecture needs to minimize network interactions
 * Q: The Web is intended to be an Internet-scale distributed hypermedia system
 * Q: Anarchic scalability refers to the need for architectural elements to continue operating when they are subjected to an unanticipated load, or when given malformed or maliciously constructed data, since they may be communicating with elements outside their organizational control. The architecture must be amenable to mechanisms that enhance visibility and scalability.
 * Q: This requires that the architecture be capable of communicating authentication data and authorization controls. However, since authentication degrades scalability, the architecture’s default operation should be limited to actions that do not need trusted data: a safe set of operations with well-defined semantics.
 * Q: Multiple organizational boundaries also means that the system must be prepared for gradual and fragmented change, where old and new implementations co-exist without preventing the new implementations from making use of their extended capabilities.

Quotes
 * Q: REST provides a set of architectural constraints that, when applied as a whole, emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems.
 * Q: REST has been used both as a means to define architectural improvements and to identify architectural mismatches. (Me: And so it becomes possible to identify them before they become standardised.)
 * Q: In order to evaluate an architectural design, we need to examine the design rationale behind the constraints it places on a system,
 * Q: One of the goals of this dissertation is to provide design guidance for the task of selecting or creating the most appropriate architecture for a given application domain,
 * Q: I use the insights garnered from the survey and classification of architectural styles for network-based hypermedia systems to hypothesize methods for developing an architectural style that would be used to guide the design of improvements for the modern Web architecture.
 * Q: The challenge was to build a system that would provide a universally consistent interface to this structured information, available on as many platforms as possible, and incrementally deployable as new people and organizations joined the project.
 * Q: An architectural style can be used to define the principles behind the Web architecture such that they are visible to future architects.
 * Q: Using the new architectural style as a guide, we can compare proposed extensions and modifications to the Web architecture against the constraints within the style. Conflicts indicate that the proposal would violate one or more of the design principles behind the Web.

History
 * Q: Over the past six years, the REST architectural style has been used to guide the design and development of the architecture for the modern Web,
 * Q: Working groups within the Internet Engineering Taskforce were formed to work on the Web’s three primary standards: URI, HTTP, and HTML
 * Q: That is, over the past six years I have been constructing models, adding constraints to the architectural style, and testing their affect on the Web’s protocol standards via experimental extensions to client and server software.
 * Q: The goal has always been to maintain a consistent and correct model of how I intend the Web architecture to behave, so that it could be used to guide the protocol standards that define appropriate behaviour, rather than to create an artificial model that would be limited to the constraints originally imagined when the work began.