go back Vanya's Website

Software Architecture Patterns by Mark Richards

modified 20/04/2024 22:46

What follows are my crude notes on the paper Software Architecture Patterns by Mark Richards

High-level overview

Analysis criteria and their meaning

ease of change :

ease of deployment :

testability :

performance :

scalability :

ease of developement :

Layered Architecture

Main Idea

Advantages

separation of concerns
each layer can be treated as a separate piece, and can thus be developed and tested independently of other layers (data specific to other layers can be mocked and so on) == easy to test and develop

Flaws

TODO find examples of software that uses this and see how it’s organized

write a bit about it. or write a separate post

Event-Driven Architecture

Mediator Topology

Broker Topology

Advantages

Flaws

TODO find examples of software that uses this and see how it’s organized

write a bit about it. or write a separate post

Microkernel Architecture

Examples

Advantages

easy to change
core is completely isolated from plugins == if core doens’t work, fix core, if plugin doesn’t work, fix plugin
easy to deploy
only deploy core, and add plug-ins dynamically
high performance
you add only what you need, so resources don’t gets wasted on stuff you won’t use

Flaws

hard to develop
needs a lot of thinking to create a good core contract, because if you change it after that, all plugins that depend on it will die

TODO this part should be completed after i learn more about what scaling means

hard to scale
not a lot of things you can do

TODO what OSGi is

Plug-in modules can be connected to the core system through a variety of ways, including OSGi (open service gateway initiative), messaging, web services, or even direct point-to-point binding (i.e., object instantiation).

TODO what is SOAP

It might also contain a WSDL (Web Services Definition Language) if the plug-in is accessed through SOAP.

TODO what is a WSDL, why it’s used

quote: It might also contain a WSDL (Web Services Definition Language) if the plug-in is accessed through SOAP.

TODO what is a contract and contract versioning

quote: When creating standard contracts (usually implemented through XML or a Java Map), it is important to remember to create a versioning strategy right from the start.

TODO what is scaling in software terms?

my guess is that it’s the ability to handle a growing user-base, and how to do it (buy more metal? deploy more clusters? this i guess is a bit more complex, and related more to ddi)

Microservices Architecture

REST API toplogy

Application REST topology

Centralized messaging topology

Questions and stuff to check out

TODO what is the difference between service and product in software?

author says: The microservices architecture pattern is quickly gaining ground in the industry as a viable alternative to monolithic applications and service-oriented architectures.

TODO what is continuous delivery

TODO what is a monolithic app

TODO search for examples of this pattern and provide examples

TODO find examples of software that uses this and see how it’s organized

Advantages

Flaws

Space-Based (Cloud) Architecture