2 - Architectures Flashcards
Architectural Style: Definition
Components with well defined interfaces.
Relationships between components
Connector: Definition
Components
Mechanism that mediates comms between components
Architectural Styles: List of styles
Layered
Object based
Data centred
Event based
What is an example of a layered style?
The Internet Protocol stack
Object Based: Definition
Components are objects
Objects encapsulate data and offer methods
Objects may be on different machines
Object based: Communication method
RPC (Remote Procedure Call)
Object based: Examples
Common Object Request Broker Architecture
Java Remote Method Invocation
Object based: CORBA
Common Object Request Broker Architecture
Middleware that supports RPCs
Support of different platforms and languages
OOP approach but other programs possible
Object Based: RMI
Java Remote Method Invocation
Allows method calls between JVMs.
Locally or multiple computers
Platform independent
Data centred: Definition
Shared data approach
Communicate via a repository
Common in web apps
Data centred: Examples
RESTful Architecture
Amazon Simple Storage Service
Data centred: RESTful Architecture
Collection of resources managed by components.
Resources added, removed, retrieved and modified by remote apps
Data centred: Amazon S3
Simple Storage Service
Objects stored in buckets
Operations sent as HTTP requests
Event based: Definition
(pub/sub)
Publish/Subscriber systems (queues)
Components publish messages on an event bus
Components subscribe to event bus while specifying desired type
Event based: Do components/processes have explicit references?
No
Event based: Example
OpenStack Cloud Software
Data centred (Database)
Event Based (Message Broker)
Middleware: Definition
Software layer on top of the OS
Adds additional services LIKE comms and I/O routines
Can handle replication-related tasks
Makes using different (heterogeneous) hardware easier
Middleware: Transparency
OS and hardware hidden by middleware
Middleware: Design Patterns
(two different design types)
Wrapper - Offers client app interface
Interceptor - Breaks flow of comms to allow other code to exec