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 properly define non-functional requirements
• Description of system parameters:
• User comfort, Security, Performance,
• Availability, Reliability, Scalability,
• Realizability, Testability, Maintainability, 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, Path Redundancy, Clusters, Clouds
• EAI Patterns: Message Broker, SOA, ESB and similar
• Microservices
• Presentation of selected pattern templates
Microservices in detail
• How it relates to SOA
• And how to a Monolith
• Advantages and disadvantages of Microservices
• Cloud services: IaaS, CaaS, PaaS, FaaS, SaaS
• When to choose, when not to, and how to start
• Data in Microservices and the BASE approach
• Auxiliary patterns: CQRS and Event Sourcing
Client Layer and Presentation Architecture
• Session storage
• Client segmentation
• 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:
• CORBA, SOAP, REST, GraphQL, Sockets, RMI, gRPC...
Integration Layer and Resources Architecture - Data Persistence Technologies:
• RDBMS, hierarchical databases, NoSQL, BigData
• Asynchronous communication
Architecture Overview in UML
• Component diagram (component diagram)
• Deployment diagram (deployment diagram)
Testimonials (1)
Odczucie bardzo pozytywne.