Tuesday, January 5, 2010

REST Notes.

This blog entry are some personal notes from the original Roy Fielding's dissertation. 

REST Notes.

a) "Form Follows Function" comes from hundred of years of design.
b) The hyperbole of The Architects Sketch may seem ridiculous, but consider how often we see

    software projects begin with adoption of the latest fad in architectural design, and only later discover whether or

    not the system requirements call for such an architecture.
c) Dissertation focuses on the junction between software and networking.
d) A set of architectural constraints become an architectural style.
e) 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. I describe the

    software engineering principles guiding REST and the interaction constraints chosen to retain those principles,

    contrasting them to the constraints of other architectural styles.

Points about Software Architecture.

a) Abstraction. ( A complex system will contain many levels of abstraction, each with it's own architecture,

    this is a recursive feature until it goes to the most basic level where it cannot be decomposed any further.).

b) A system has multiple operational phases. (Startup, initialization , normal processing, re-initialization and shutdown).

    And each operational phase has its own architecture.

c) Architectural design and source code structure design are two separate activities.
d) A component is defined by it's interface and the services it provide rather than the implementation behind it's interface.
e) Data
f) Configurations
g) Properties
h) Architecture encompasses both functional and non functional.
i) Choosing the right architectural style for a  network-based application requires an understanding of the problem domain  and thereby the communication needs of the application, an awareness of the variety of architectural styles and the particular concerns they address.