- Object oriented architecture design (OOAD)
- Design according to class as blueprint and instance of class as objects
- objects interact with each-other
- Class Diagrams (Structural UML diagram) are used to show how objects of different class interact with each other
- Component based architecture
- An individual unit of encapsulated functionality
- Design is decomposed into a set of components
- should be re-usable, replaceable, independent, extensible, encapsulation, non-context specific (operates in different environments)
- Provides Higher level abstraction than objects
- egG: API, controller, Data Access Object
- Service Oriented Architecture
- A type of component
- Deployed independently, instead of tied to a specific system
- Talk to each other through a set of protocols
- Designed to be re-used in multiple systems
- Helps to build distributed systems
- Always have one running instance with whom the clients communicate (A running service)
- eg: AWS services
- Distributed systems:
- have multiple services located at different machines (or nodes).
- They share resources
- parrallel in nature
- scalable and fault-tolerant
- may be programmed in different languages, but does not create problem since they talk to each other through HTTP
- Client- Server
- Peer-to-peer
- Three-tier
- Microservices