SlideShare a Scribd company logo
1 of 55
System Architecture
for Distributed Systems
KEVIN WILHELM, NOV 2017
2
What is
this?
3
4
Who is a
coder?
5
What is happening here?
6
What is happening here?
7
Method Name
Process(…)
… process what?
8
Method Parameters
• Name
• Firstname
• Address
• ccExpirationDate
• ccNumber
• carType
• carSize
• From
• To
• …
9
Action Blocks
Customer look up?
10
Action Blocks
Customer look up?
Credit Card Check?
11
Action Blocks
Customer look up?
Credit Card Check?
Car look up?
12
Action Blocks
Customer look up?
Credit Card Check?
Car look up?
Some kind of purchase order?
13
Resolution
What is it?
14
Resolution
Obviously a Car Rental System …
15
Resolution
Obviously a Car Rental System …
…with strong code smells!
16
Resolution
Obviously a Car Rental System …
…with strong code smells!
Antipattern: God Class
17
God Class
Antipattern: God Class
“A God Class is an object that controls way too many other objects in the
system and has grown beyond all logic to become The Class That Does
Everything.” - http://wiki.c2.com/?GodClass
18
Taking a step back
• How to understand what a complex software system does?
19
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
20
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
• How to avoid monolithic software engineering?
21
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
• How to avoid monolithic software engineering?
• How to enable development teams to participate in coding?
22
Taking a step back
• How to understand what a complex software system does?
• How to get to a common language with non-engineering
professionals?
• How to avoid monolithic software engineering?
• How to enable development teams to participate in coding?
• How to produce a new and solid piece of software?
23
Software
Architecture?
•Structure
•Attributes
•Relations
•Interactions
•Documentation
Re-Engineering the Car Rental System: Requirements
Re-Engineering the Car Rental
System: Requirements
Re-Engineering the Car Rental System: Requirements
Re-Engineering the Car Rental
System: Requirements
• Who is interested in the Car Rental System?
• Identify Stakeholders
Re-Engineering the Car Rental
System: Requirements
• Who is interested in the Car Rental System?
• Identify Stakeholders
• What should the Car Rental System do?
• Collect functional requirements
Re-Engineering the Car Rental System: Requirements
Re-Engineering the Car Rental
System: Requirements
• Who is interested in the Car Rental System?
• Identify Stakeholders
• What should the Car Rental System do?
• Collect functional requirements
• How should the Car Rental System do it?
• Collect non-functional requirements
28
Persistence Layer
Business Layer
Presentation Layer
High Level Software Architecture
Car Rental Portal
Application Database
Customer
Directory Service
Vehicle Management
Service
Credit Card
Verifier
Booking Service
29
Software Architecture vs. System Architecture
Software architecture
… design of software applications by breaking
software into its various software components
and defining the component interfaces and
methods of communication.
30
Software Architecture vs. System Architecture
Software architecture
… design of software applications by breaking
software into its various software components
and defining the component interfaces and
methods of communication.
System architecture
… describes more broadly how systems are
designed, which may have components that
include multiple software applications, network
devices, hardware, and even other machinery.
31
High Level System Architecture
Car Rental
Portal
32
High Level System Architecture
Car Rental
PortalCustomer
Queries
Customer
Relationship
Management
33
High Level System Architecture
Car Rental
Portal
Credit Card
Verification
System
CC
Information
Verification
Customer
Queries
Customer
Relationship
Management
34
High Level System Architecture
Car Rental
Portal
Vehicle Fleet
Management
Credit Card
Verification
System
CC
Information
Verification
Garage
Management
Customer
Queries
Customer
Relationship
Management
35
High Level System Architecture
Car Rental
Portal
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Customer
Queries
Vehicle Fleet
Management
Customer
Relationship
Management
36
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
37
Address Non-Functional Requirements
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
Helps to …
• Identify impacts of failure
38
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
39
Address Non-Functional Requirements
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
Helps to …
• Identify impacts of failure
• Identify potential bottlenecks on high load
40
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
!
!
41
Address Non-Functional Requirements
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
Helps to …
• Identify impacts of failure
• Identify potential bottlenecks on high load
• Identify availability hot spots
42
High Level System Architecture
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
43
C4 Model – Levels of Abstraction
(System) Context
Containers
Components
Classes
44
C4 Model – System Context Level
(System) Context
Containers
Components
Classes
45
C4 Model – System Context Level
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
46
C4 Model – Container Level
(System) Context
Containers
Components
Classes
47
C4 Model – System Context Level
Car Rental
Portal
Customer
Relationship
Management
Credit Card
Verification
System
Auditing
System
CC
Information
Verification
Transaction
Logging
Garage
Management
Marketing
Campaigns
System
Account Data
Queries
Customer
Queries
Vehicle Fleet
Management
System Context Level
48
C4 Model – Container Level
Car Rental Portal
„Bookings
Persistence“
[Oracle DB]
„Portal Service “
[Spring Boot Docker Container]
Database I/O
[jdbc]
File I/O
[Python scripts]
„Audit Log Service“
[C++ Docker Container]
„Audit Log Export
Service“
[CRON job script
execution container]
File I/O
[shell scripts]
Network communication
[TCP]
49
C4 Model – Component Level
(System) Context
Containers
Components
Classes
50
C4 Model – Container Level
Car Rental Portal
„Bookings
Persistence“
[Oracle DB]
„Portal Service “
[Spring Boot Docker Container]
Database I/O
[jdbc]
File I/O
[Python scripts]
„Audit Log Service“
[C++ Docker Container]
„Audit Log Export
Service“
[CRON job script
execution container]
File I/O
[shell scripts]
Network communication
[TCP]
51
C4 Model – Component Level
Portal Service
Vehicle Fleet
Management
Connector
Customer
Management
Connector
Booking
Management
Audit Logging
Component
Data Persistence
Connector
Queries existing
customers
Queries vehicle
availability
Stores/Reads
booking transactions
Stores Audit logs
Credit Card
Verification
Connector
Verifies credit card
information
Exports audit logs
52
C4 Model – Class Level
(System) Context
Containers
Components
Classes
53
C4 Model – Component Level
Portal Service
Vehicle Fleet
Management
Connector
Customer
Management
Connector
Booking
Management
Audit Logging
Component
Data Persistence
Connector
Queries existing
customers
Queries vehicle
availability
Stores/Reads
booking transactions
Stores Audit logs
Credit Card
Verification
Connector
Verifies credit card
information
Exports audit logs
54
C4 Model – Class Level
Booking Management
Class BookingReader
1
Class BookingWriter
Class BookingLogger
Class BookingService
1
1
1
Class BookingArchiver
1
Thank you!
www.logmein.com/careers

More Related Content

Similar to Sparks 3.0 - System Architecture for Distributed Systems

Project presentation.pptx
Project presentation.pptxProject presentation.pptx
Project presentation.pptx
MRABD3
 
Scope definition of ticketing automation bangladesh
Scope definition of ticketing automation bangladeshScope definition of ticketing automation bangladesh
Scope definition of ticketing automation bangladesh
Shakil Mahmood
 
Software Development Lifecycle
Software Development LifecycleSoftware Development Lifecycle
Software Development Lifecycle
Nicholas Davis
 

Similar to Sparks 3.0 - System Architecture for Distributed Systems (20)

A Modern Digital Experience Platform
A Modern Digital Experience PlatformA Modern Digital Experience Platform
A Modern Digital Experience Platform
 
Power Up Competitive Price Intelligence with Web Data
Power Up Competitive Price Intelligence with Web DataPower Up Competitive Price Intelligence with Web Data
Power Up Competitive Price Intelligence with Web Data
 
Project presentation.pptx
Project presentation.pptxProject presentation.pptx
Project presentation.pptx
 
Digital marketing tools online
Digital marketing tools onlineDigital marketing tools online
Digital marketing tools online
 
“No Human Necessary: Emerging Tech and Impactful Trends,” Cindy Allen Industr...
“No Human Necessary: Emerging Tech and Impactful Trends,” Cindy Allen Industr...“No Human Necessary: Emerging Tech and Impactful Trends,” Cindy Allen Industr...
“No Human Necessary: Emerging Tech and Impactful Trends,” Cindy Allen Industr...
 
PyParis2017 / Machine learning to moderate classifieds, by Vaibhav Singh
PyParis2017 / Machine learning to moderate classifieds, by Vaibhav SinghPyParis2017 / Machine learning to moderate classifieds, by Vaibhav Singh
PyParis2017 / Machine learning to moderate classifieds, by Vaibhav Singh
 
The Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
The Hive Think Tank: AI in The Enterprise by Venkat SrinivasanThe Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
The Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
 
Delivering cost-effective financial advice
Delivering cost-effective financial adviceDelivering cost-effective financial advice
Delivering cost-effective financial advice
 
What Source-to-Pay Leaders Need to Know About Robotic Process Automation
What Source-to-Pay Leaders Need to Know About Robotic Process Automation What Source-to-Pay Leaders Need to Know About Robotic Process Automation
What Source-to-Pay Leaders Need to Know About Robotic Process Automation
 
What am i buying understanding website cost and technology 17 ntc
What am i buying   understanding website cost and technology 17 ntcWhat am i buying   understanding website cost and technology 17 ntc
What am i buying understanding website cost and technology 17 ntc
 
Scope definition of ticketing automation bangladesh
Scope definition of ticketing automation bangladeshScope definition of ticketing automation bangladesh
Scope definition of ticketing automation bangladesh
 
Using Google Analytics to improve your digital marketing and website
Using Google Analytics to improve your digital marketing and websiteUsing Google Analytics to improve your digital marketing and website
Using Google Analytics to improve your digital marketing and website
 
Automotive Inventory Syndication - Take Control of Your Marketing and Your In...
Automotive Inventory Syndication - Take Control of Your Marketing and Your In...Automotive Inventory Syndication - Take Control of Your Marketing and Your In...
Automotive Inventory Syndication - Take Control of Your Marketing and Your In...
 
Scope Definition of Online Ticketing System
Scope Definition of Online Ticketing SystemScope Definition of Online Ticketing System
Scope Definition of Online Ticketing System
 
Create Compelling Dashboards for Finance Professionals
Create Compelling Dashboards for Finance ProfessionalsCreate Compelling Dashboards for Finance Professionals
Create Compelling Dashboards for Finance Professionals
 
SUG Bangalore - Marketing Automation by Aji Viswanadhan
SUG Bangalore - Marketing Automation by Aji ViswanadhanSUG Bangalore - Marketing Automation by Aji Viswanadhan
SUG Bangalore - Marketing Automation by Aji Viswanadhan
 
Software Development Lifecycle
Software Development LifecycleSoftware Development Lifecycle
Software Development Lifecycle
 
Adopting Data Science and Machine Learning in the financial enterprise
Adopting Data Science and Machine Learning in the financial enterpriseAdopting Data Science and Machine Learning in the financial enterprise
Adopting Data Science and Machine Learning in the financial enterprise
 
Enterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience CloudEnterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience Cloud
 
Webinar- API Strategy - Are we doing it right?
Webinar- API Strategy - Are we doing it right?Webinar- API Strategy - Are we doing it right?
Webinar- API Strategy - Are we doing it right?
 

Recently uploaded

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Recently uploaded (20)

WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 

Sparks 3.0 - System Architecture for Distributed Systems

  • 1. System Architecture for Distributed Systems KEVIN WILHELM, NOV 2017
  • 3. 3
  • 8. 8 Method Parameters • Name • Firstname • Address • ccExpirationDate • ccNumber • carType • carSize • From • To • …
  • 10. 10 Action Blocks Customer look up? Credit Card Check?
  • 11. 11 Action Blocks Customer look up? Credit Card Check? Car look up?
  • 12. 12 Action Blocks Customer look up? Credit Card Check? Car look up? Some kind of purchase order?
  • 14. 14 Resolution Obviously a Car Rental System …
  • 15. 15 Resolution Obviously a Car Rental System … …with strong code smells!
  • 16. 16 Resolution Obviously a Car Rental System … …with strong code smells! Antipattern: God Class
  • 17. 17 God Class Antipattern: God Class “A God Class is an object that controls way too many other objects in the system and has grown beyond all logic to become The Class That Does Everything.” - http://wiki.c2.com/?GodClass
  • 18. 18 Taking a step back • How to understand what a complex software system does?
  • 19. 19 Taking a step back • How to understand what a complex software system does? • How to get to a common language with non-engineering professionals?
  • 20. 20 Taking a step back • How to understand what a complex software system does? • How to get to a common language with non-engineering professionals? • How to avoid monolithic software engineering?
  • 21. 21 Taking a step back • How to understand what a complex software system does? • How to get to a common language with non-engineering professionals? • How to avoid monolithic software engineering? • How to enable development teams to participate in coding?
  • 22. 22 Taking a step back • How to understand what a complex software system does? • How to get to a common language with non-engineering professionals? • How to avoid monolithic software engineering? • How to enable development teams to participate in coding? • How to produce a new and solid piece of software?
  • 24. Re-Engineering the Car Rental System: Requirements Re-Engineering the Car Rental System: Requirements
  • 25. Re-Engineering the Car Rental System: Requirements Re-Engineering the Car Rental System: Requirements • Who is interested in the Car Rental System? • Identify Stakeholders
  • 26. Re-Engineering the Car Rental System: Requirements • Who is interested in the Car Rental System? • Identify Stakeholders • What should the Car Rental System do? • Collect functional requirements
  • 27. Re-Engineering the Car Rental System: Requirements Re-Engineering the Car Rental System: Requirements • Who is interested in the Car Rental System? • Identify Stakeholders • What should the Car Rental System do? • Collect functional requirements • How should the Car Rental System do it? • Collect non-functional requirements
  • 28. 28 Persistence Layer Business Layer Presentation Layer High Level Software Architecture Car Rental Portal Application Database Customer Directory Service Vehicle Management Service Credit Card Verifier Booking Service
  • 29. 29 Software Architecture vs. System Architecture Software architecture … design of software applications by breaking software into its various software components and defining the component interfaces and methods of communication.
  • 30. 30 Software Architecture vs. System Architecture Software architecture … design of software applications by breaking software into its various software components and defining the component interfaces and methods of communication. System architecture … describes more broadly how systems are designed, which may have components that include multiple software applications, network devices, hardware, and even other machinery.
  • 31. 31 High Level System Architecture Car Rental Portal
  • 32. 32 High Level System Architecture Car Rental PortalCustomer Queries Customer Relationship Management
  • 33. 33 High Level System Architecture Car Rental Portal Credit Card Verification System CC Information Verification Customer Queries Customer Relationship Management
  • 34. 34 High Level System Architecture Car Rental Portal Vehicle Fleet Management Credit Card Verification System CC Information Verification Garage Management Customer Queries Customer Relationship Management
  • 35. 35 High Level System Architecture Car Rental Portal Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Customer Queries Vehicle Fleet Management Customer Relationship Management
  • 36. 36 High Level System Architecture Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management
  • 37. 37 Address Non-Functional Requirements Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management Helps to … • Identify impacts of failure
  • 38. 38 High Level System Architecture Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management
  • 39. 39 Address Non-Functional Requirements Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management Helps to … • Identify impacts of failure • Identify potential bottlenecks on high load
  • 40. 40 High Level System Architecture Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management ! !
  • 41. 41 Address Non-Functional Requirements Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management Helps to … • Identify impacts of failure • Identify potential bottlenecks on high load • Identify availability hot spots
  • 42. 42 High Level System Architecture Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management
  • 43. 43 C4 Model – Levels of Abstraction (System) Context Containers Components Classes
  • 44. 44 C4 Model – System Context Level (System) Context Containers Components Classes
  • 45. 45 C4 Model – System Context Level Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management
  • 46. 46 C4 Model – Container Level (System) Context Containers Components Classes
  • 47. 47 C4 Model – System Context Level Car Rental Portal Customer Relationship Management Credit Card Verification System Auditing System CC Information Verification Transaction Logging Garage Management Marketing Campaigns System Account Data Queries Customer Queries Vehicle Fleet Management System Context Level
  • 48. 48 C4 Model – Container Level Car Rental Portal „Bookings Persistence“ [Oracle DB] „Portal Service “ [Spring Boot Docker Container] Database I/O [jdbc] File I/O [Python scripts] „Audit Log Service“ [C++ Docker Container] „Audit Log Export Service“ [CRON job script execution container] File I/O [shell scripts] Network communication [TCP]
  • 49. 49 C4 Model – Component Level (System) Context Containers Components Classes
  • 50. 50 C4 Model – Container Level Car Rental Portal „Bookings Persistence“ [Oracle DB] „Portal Service “ [Spring Boot Docker Container] Database I/O [jdbc] File I/O [Python scripts] „Audit Log Service“ [C++ Docker Container] „Audit Log Export Service“ [CRON job script execution container] File I/O [shell scripts] Network communication [TCP]
  • 51. 51 C4 Model – Component Level Portal Service Vehicle Fleet Management Connector Customer Management Connector Booking Management Audit Logging Component Data Persistence Connector Queries existing customers Queries vehicle availability Stores/Reads booking transactions Stores Audit logs Credit Card Verification Connector Verifies credit card information Exports audit logs
  • 52. 52 C4 Model – Class Level (System) Context Containers Components Classes
  • 53. 53 C4 Model – Component Level Portal Service Vehicle Fleet Management Connector Customer Management Connector Booking Management Audit Logging Component Data Persistence Connector Queries existing customers Queries vehicle availability Stores/Reads booking transactions Stores Audit logs Credit Card Verification Connector Verifies credit card information Exports audit logs
  • 54. 54 C4 Model – Class Level Booking Management Class BookingReader 1 Class BookingWriter Class BookingLogger Class BookingService 1 1 1 Class BookingArchiver 1