Software architecture is an abstraction of the runtime elements of a software system during a phase of its operation. A system may be composed of many levels of abstraction and many phases of operation, each with its own software architecture.
Software architecture is defined by a configuration of architectural elements-components, connectors, and data-constrained in their relationships in order to achieve a desired set of architectural properties:
- Component: This is is an abstract unit of software instructions and the internal state that provides a transformation of data via its interface
- Connector : This is an abstract mechanism that mediates communication, coordination, or cooperation among components
- Data: This is an element of information that is transferred from a component, or received by a component, via its connector
The REST architectural style...