Resource-oriented Architecture

In software engineering, a resource-oriented architecture (ROA) is a style of software architecture and programming paradigm for designing and developing software in the form of resources with "RESTful" interfaces. These resources are software components (discrete pieces of code and/or data structures) which can be reused for different purposes. ROA design principles and guidelines are used during the phases of software development and system integration.

REST, or Representational State Transfer (see Roy Thomas Fielding's Doctoral Thesis "Architectural Styles and the Design of Network-based Software Architectures" ), describes a series of architectural constraints that exemplify how the web's design emerged. Various concrete implementations of these ideas have been created throughout time, but it has been difficult to discuss the REST architectural style without blurring the lines between actual software and the architectural principles behind it.

In Chapter 5 of his thesis, Fielding documents how the World Wide Web is designed to be constrained by the REST series of limitations. These are still fairly abstract and have been interpreted in various ways in designing new frameworks, systems, and websites. In the past, heated exchanges have been made about whether RPC-style REST architectures are RESTful.

Read more about Resource-oriented ArchitectureGuidelines For Clarification, Common Guidelines, Existing Frameworks, Why The Web?, The World of Representations, See Also

Other related articles:

Resource-oriented Architecture - See Also
... CRUD) Object-oriented programming Ontology engineering Ontology language Resource-oriented computing Web resource Resource Description Framework (RDF) Software ...

Famous quotes containing the word architecture:

    No architecture is so haughty as that which is simple.
    John Ruskin (1819–1900)