Course Outline
Basics of Software Architecture
• What is architecture
• Who is an architect and what role do they play
• Risk management
System Parameters: What are system parameters
• How to correctly define non-functional requirements
• Description of system parameters:
• User convenience, Security, Performance,
• Availability, Reliability, Flexibility,
• Feasibility, Testability, Serviceability, Manageability
• System dimensions
• Prioritization of system parameters
Architectural Patterns
• Introduction to patterns
• Stable Dependency Principle
• Responsibility division patterns: MVC vs SPA, N-Tier and Layers
• Infrastructure patterns:
• Horizontal and vertical scaling, Modularity
• Load balancing, Network redundancy, Clusters, Clouds
• EAI patterns: Message Broker, SOA, ESB, and similar
• Microservices
• Presentation of selected pattern templates
Microservices in Detail
• How they relate to SOA
• And how do they compare to Monoliths
• Advantages and disadvantages of Microservices
• Cloud services: IaaS, CaaS, Paas, FaaS, SaaS
• When to choose them, when not to, and how to start
• Data in Microservices and the BASE approach
• Supporting patterns: CQRS and Event Sourcing
Client and Presentation Layer Architecture
• Session management
• Client division
• Thick client technologies: graphical libraries vs RCP
• Thin client support: for MVC, SPA (Angular, Vue, React)
• Advanced browser communication: AJAX, WebSocket
Business Layer Architecture
• Distributed processing
• Remote vs local communication
• Communication protocols:
• COBRA, SOAP, REST, GraphQL, Sockets, RMI, gRPC...
Integration and Resource Layer Architecture: Data persistence technologies:
• RDBMS, hierarchical databases, NoSQL, BigData
• Asynchronous communication
UML Architecture Review
• Component diagram (component diagram)
• Deployment diagram (deployment diagram)
Testimonials (1)
The impression is very positive.
Piotr - Asseco Poland S.A
Course - Architektura systemowa dla analityków
Machine Translated