SlideShare a Scribd company logo
uri@wibbitz.com
Software Architecture
X
• What is software architecture & why we need it
• Characteristics of a software system
• Review 4 common software architecture patterns

and understand their characteristics
Content
X
The description of a software system structure,
components and their relations.
A phase in software development:

Requirements —> Architecture —> Implementation
What is software architecture?
X
• Understand how the system will behave - each structure
has different qualities. (Agility, Scalability etc.)
• Serves as a blue print for developing the software and for
the project itself
• Enables reuse of software structure
Why architecture?
X
• No clear definition of roles, responsibilities and relationships for code
components
• Hard to decide where to add required functionality
• Usually tightly coupled and hard to change code
• Hard to characterize the code
No architecture means
X
Architecture characteristics
X
Overall agility
• The ability to respond quickly to a constantly changing environment
Architecture characteristics
X
Ease of deployment
• How easy it is to deploy the application - small change requires
deploy of the whole application
Architecture characteristics
X
Testability
• How easy it is to test the system
Architecture characteristics
X
Performance
• Efficiency of the system, usually in term of performance speed
Architecture characteristics
X
Scalability
• The ability of the system to handle growth
Architecture characteristics
X
Ease of development
• How easy it is to develop the system, considering complexity and
level of coupling.
Architecture characteristics
X
Architecture patterns
X
• Code components are organized in layers each with specific role
• Number of layers is not defined

A common use is a 3 layered structure with
• Presentation - User interface and browser comm. logic
• Business logic - some times divided to additional persistence
layer
• Database
Pattern: Layered Architecture (n-tier)
X
X
• Customer data request
• Customer data includes orders
data
• Delegate in the presentation
layer knows which module in
the business layer to use for
each request (and it’s contract)
Layered arch. example
X
Pattern Analysis - Layered arch.
Overall agility low
Ease of deployment low
Testability high
Performance low
Scalability low
Ease of development high
X
• Distributed asynchronous pattern - highly scalable
• Made out of decoupled, single purpose event processing components
that asynchronously receive, process and publish events.
Pattern: Event-Driven Architecture
X
X
• Example: Insurance system
• Event: an insured person moves
• Event processing stream:
• Customer event-processor: Change customer address and publish event
(customer address changed)
• Quote event-processor: Recalculate insurance rates and publish event
(recalc quote event)
• Claims event-processor: Updates an outstanding insurance claim and
publish event
Continues until no more events are published for that particular initiating event.
Event-Driven arch. example
X
Pattern Analysis - Event-Driven arch.
Overall agility high
Ease of deployment high
Testability low
Performance high
Scalability high
Ease of development low
X
• AKA plug-in architecture
• Natural pattern for implementing product-based applications
(downloaded in versions)
• Pattern allows to add additional application features as plug-ins to
the core application.
Microkernel Architecture
X
X
Pattern Analysis - Microkernel arch.
Overall agility high
Ease of deployment high
Testability high
Performance high
Scalability low
Ease of development low
X
• This is a distributed architecture pattern consists of (small) services
• Microservices main characteristics:
• Small and focused - doing one business function
• Loosely coupled - operates independently of one another
• Language Neutral
Pattern: Microservices Architecture
X
• This is a distributed architecture - all components are fully decoupled
and accessed by some sort of remote protocol like HTTP(REST)
• Consists of service components
• Independently deployable
• Usually handles specific business use case
• Granularity issue - Service component can consist of one module
or a portion of the application
Pattern: Microservices Architecture
X
X
X
X
• Setting service component granularity level is a challenge
• Need to orchestrate calls - too fine
• Making inner calls - too fine
• Too coarse means missing pattern advantages
Microservices - granularity level
X
Pattern Analysis - Microservices arch.
Overall agility high
Ease of deployment high
Testability high
Performance low
Scalability high
Ease of development high
X
Pattern Analysis
Layered Event-D Microkernel Microservices
Overall agility low high high high
Ease of deployment low high high high
Testability high low high high
Performance low high high low
Scalability low high low high
Ease of development high low low high
Thank You!

More Related Content

What's hot

Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
Assaf Gannon
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and conceptsSlideshare
 
Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and Evaluation
Dhivyaa C.R
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
Jay Thakkar
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
Kourosh Sajjadi
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture style
Begench Suhanov
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Dharmalingam Ganesan
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
Arun Shukla
 
Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
Dhruvin Nakrani
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
Bisrat Girma
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Prabhat gangwar
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
Tawhidur Rahman Bhuiyan
 
Software engineering 17 architectural design
Software engineering 17 architectural designSoftware engineering 17 architectural design
Software engineering 17 architectural design
Vaibhav Khanna
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
Purvik Rana
 
Sda 7
Sda   7Sda   7
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
Danyal Ahmad
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architectureHimanshu
 

What's hot (20)

Software Architecture Patterns
Software Architecture PatternsSoftware Architecture Patterns
Software Architecture Patterns
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and concepts
 
Unit v -Construction and Evaluation
Unit v -Construction and EvaluationUnit v -Construction and Evaluation
Unit v -Construction and Evaluation
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
 
Layered architecture style
Layered architecture styleLayered architecture style
Layered architecture style
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Design concepts and design principles
Design concepts and design principlesDesign concepts and design principles
Design concepts and design principles
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Architectural design of software
Architectural  design of softwareArchitectural  design of software
Architectural design of software
 
Software engineering 17 architectural design
Software engineering 17 architectural designSoftware engineering 17 architectural design
Software engineering 17 architectural design
 
Architectural Design
Architectural DesignArchitectural Design
Architectural Design
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Software design
Software designSoftware design
Software design
 
Sda 7
Sda   7Sda   7
Sda 7
 
Software Design and Modularity
Software Design and ModularitySoftware Design and Modularity
Software Design and Modularity
 
Documenting software architecture
Documenting software architectureDocumenting software architecture
Documenting software architecture
 

Similar to Software architecture

Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
AFAS Software
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Ahmed Misbah
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentation
dikshagupta111
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Richard Langlois P. Eng.
 
Patterns
PatternsPatterns
Patterns
Amith Tiwari
 
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
DineshKumar746335
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Srinivasan Nanduri
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
Amin Arab
 
J2EE Patterns
J2EE PatternsJ2EE Patterns
J2EE Patterns
Emprovise
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
malathijanapati1
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
prakashk453625
 
Soa 1 7.ppsx
Soa 1 7.ppsxSoa 1 7.ppsx
Soa 1 7.ppsx
ssuser3a47cb
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
Lalit Kale
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
Katherine Golovinova
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
prakashk453625
 
How to achieve Continous Delivery
How to achieve Continous DeliveryHow to achieve Continous Delivery
How to achieve Continous Delivery
Geoffrey Vandiest
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
Ferdin Joe John Joseph PhD
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computingAhmed M. Abed
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
Architecture patterns overview
Architecture patterns overviewArchitecture patterns overview
Architecture patterns overview
Nickleus Jimenez
 

Similar to Software architecture (20)

Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentation
 
Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.Microservice Architecture Patterns, by Richard Langlois P. Eng.
Microservice Architecture Patterns, by Richard Langlois P. Eng.
 
Patterns
PatternsPatterns
Patterns
 
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
Fallsem2021 22 ita2012-eth_vl2021220101938_reference_material_i_06-aug-2021_m...
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
J2EE Patterns
J2EE PatternsJ2EE Patterns
J2EE Patterns
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
Middle ware Technologies
Middle ware TechnologiesMiddle ware Technologies
Middle ware Technologies
 
Soa 1 7.ppsx
Soa 1 7.ppsxSoa 1 7.ppsx
Soa 1 7.ppsx
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
Middleware Technologies
Middleware Technologies Middleware Technologies
Middleware Technologies
 
How to achieve Continous Delivery
How to achieve Continous DeliveryHow to achieve Continous Delivery
How to achieve Continous Delivery
 
Cloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba CloudCloud Computing Essentials in Alibaba Cloud
Cloud Computing Essentials in Alibaba Cloud
 
Agile methodology in cloud computing
Agile methodology in cloud computingAgile methodology in cloud computing
Agile methodology in cloud computing
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Architecture patterns overview
Architecture patterns overviewArchitecture patterns overview
Architecture patterns overview
 

Recently uploaded

Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 

Recently uploaded (20)

Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 

Software architecture

  • 2. X • What is software architecture & why we need it • Characteristics of a software system • Review 4 common software architecture patterns
 and understand their characteristics Content
  • 3. X The description of a software system structure, components and their relations. A phase in software development:
 Requirements —> Architecture —> Implementation What is software architecture?
  • 4. X • Understand how the system will behave - each structure has different qualities. (Agility, Scalability etc.) • Serves as a blue print for developing the software and for the project itself • Enables reuse of software structure Why architecture?
  • 5. X • No clear definition of roles, responsibilities and relationships for code components • Hard to decide where to add required functionality • Usually tightly coupled and hard to change code • Hard to characterize the code No architecture means
  • 7. X Overall agility • The ability to respond quickly to a constantly changing environment Architecture characteristics
  • 8. X Ease of deployment • How easy it is to deploy the application - small change requires deploy of the whole application Architecture characteristics
  • 9. X Testability • How easy it is to test the system Architecture characteristics
  • 10. X Performance • Efficiency of the system, usually in term of performance speed Architecture characteristics
  • 11. X Scalability • The ability of the system to handle growth Architecture characteristics
  • 12. X Ease of development • How easy it is to develop the system, considering complexity and level of coupling. Architecture characteristics
  • 14. X • Code components are organized in layers each with specific role • Number of layers is not defined
 A common use is a 3 layered structure with • Presentation - User interface and browser comm. logic • Business logic - some times divided to additional persistence layer • Database Pattern: Layered Architecture (n-tier)
  • 15. X
  • 16. X • Customer data request • Customer data includes orders data • Delegate in the presentation layer knows which module in the business layer to use for each request (and it’s contract) Layered arch. example
  • 17. X Pattern Analysis - Layered arch. Overall agility low Ease of deployment low Testability high Performance low Scalability low Ease of development high
  • 18. X • Distributed asynchronous pattern - highly scalable • Made out of decoupled, single purpose event processing components that asynchronously receive, process and publish events. Pattern: Event-Driven Architecture
  • 19. X
  • 20. X • Example: Insurance system • Event: an insured person moves • Event processing stream: • Customer event-processor: Change customer address and publish event (customer address changed) • Quote event-processor: Recalculate insurance rates and publish event (recalc quote event) • Claims event-processor: Updates an outstanding insurance claim and publish event Continues until no more events are published for that particular initiating event. Event-Driven arch. example
  • 21. X Pattern Analysis - Event-Driven arch. Overall agility high Ease of deployment high Testability low Performance high Scalability high Ease of development low
  • 22. X • AKA plug-in architecture • Natural pattern for implementing product-based applications (downloaded in versions) • Pattern allows to add additional application features as plug-ins to the core application. Microkernel Architecture
  • 23. X
  • 24. X Pattern Analysis - Microkernel arch. Overall agility high Ease of deployment high Testability high Performance high Scalability low Ease of development low
  • 25. X • This is a distributed architecture pattern consists of (small) services • Microservices main characteristics: • Small and focused - doing one business function • Loosely coupled - operates independently of one another • Language Neutral Pattern: Microservices Architecture
  • 26. X • This is a distributed architecture - all components are fully decoupled and accessed by some sort of remote protocol like HTTP(REST) • Consists of service components • Independently deployable • Usually handles specific business use case • Granularity issue - Service component can consist of one module or a portion of the application Pattern: Microservices Architecture
  • 27. X
  • 28. X
  • 29. X
  • 30. X • Setting service component granularity level is a challenge • Need to orchestrate calls - too fine • Making inner calls - too fine • Too coarse means missing pattern advantages Microservices - granularity level
  • 31. X Pattern Analysis - Microservices arch. Overall agility high Ease of deployment high Testability high Performance low Scalability high Ease of development high
  • 32. X Pattern Analysis Layered Event-D Microkernel Microservices Overall agility low high high high Ease of deployment low high high high Testability high low high high Performance low high high low Scalability low high low high Ease of development high low low high