Software Design and Development Conference 2015 Mark Richards Hands-on Software Architect Author of Enterprise Messaging Video Series (O’Reilly) Author of Java Message Service 2nd Edition (O’Reilly) Co-author of Software Architecture Fundamentals Video Series (O'Reilly) Software Architecture Patterns
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Software Design and Development Conference 2015
Mark RichardsHands-on Software ArchitectAuthor of Enterprise Messaging Video Series (O’Reilly)Author of Java Message Service 2nd Edition (O’Reilly)Co-author of Software Architecture Fundamentals Video Series (O'Reilly)
Software Architecture Patterns
Software Architecture Fundamentals Video Series Enterprise Messaging Video Series
componentan encapsulated unit of software consisting of one or more modules that has a specific role and responsibility in the system
componentcomponent
component
component
component
component
component
component
component
?
how do components interact?does the architecture scale?how responsive is the architecture?is there a logical flow to the components?what are the deployment characteristics?how does the architecture respond to change?is the architecture extensible and if so how?how maintainable is the architecture?
how are components classified?
architecture patterns help define the basic characteristics and behavior of the
application
layered architecture
presentation layer
business layer
persistence layer
database layer
component component component
component component component
component component component
presentation layer
business layer
persistence layer
database layer
component component
component component
component component
component
component
component
layered architecture
request
layered architecture
presentation layer
business layer
persistence layer
database layer
component component component
component component component
component component component
separation of concerns
layered architecture
presentation layer component component component
business layer component component component
persistence layer component component component
database layer
layers of isolation
database layer
presentation layer component component component
persistence layer component component component
business layer component component component
persistence layer component component component
database layer
layered architecture
presentation layer
business layer
component component component
component component component
hybrids and variants
services layer component component component
persistence layer component component component
database layer
layered architecture
presentation layer
business layer
component component component
component component component
hybrids and variants
services layer component component component
persistence layer component component component
database layer
layered architecture
presentation layer component component component
business layer component component component
hybrids and variants
persistence layer component component component
presentation layer component component component
business layer component component component
com
pone
nt
com
pone
nt
layer
database layer
layered architecturehybrids and variants
persistence layer component component component
presentation layer component component component
business layer component component component
com
pone
nt
com
pone
nt
layer
com
pone
nt
com
pone
nt
layer
persistence layer component component component
presentation layer component component component
business layer component component component
layered architecture
considerations
tends to lend itself towards monolithic applications
watch out for the architecture sinkhole anti-pattern
good general purpose architecture and a good starting point for most systems