Middleware Architectures 2
| Code | Completion | Credits | Range | Language |
|---|---|---|---|---|
| ANI-AM2 | Z,ZK | 5 | 2P+1C | Czech |
- Course guarantor:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
Students will become familiar with modern web application architectures such as SPA and MPA. They will gain an overview of the asynchronous I/O model in JavaScript, network communication in the browser, and technologies such as XHR, Fetch API, SSE, WebSockets, and gRPC-Web. The course also covers web security, including Same-Origin Policy, CSRF, CORS, TLS, JWT, and OAuth2, as well as protection against attacks. Students will also learn the differences between REST and GraphQL and the principles of scaling distributed applications. The course further includes deployment and monitoring of web applications in Kubernetes using Prometheus and OpenTelemetry.
- Requirements:
-
Pro získání zápočtu je potřeba dostatek bodů z vypracování úloh na cvičení a samostatných domácích úloh. Zkouška se skládá z povinné písemné části.
- Syllabus of lectures:
-
1. Web application architectures, SPA vs MPA, server-side rendering (SSR) vs client-side rendering (CSR).
2. Asynchronous I/O model in JavaScript in the browser and in Node.js
3. Architecture of network communication in the browser, XHR and FetchAPI.
4. Web Security Principles, Same-Origin Policy, Cookies and CSRF Protection
5. Web attacks and protection against them, CORS, XSS, SQL Injection, Clickjacking, Content Security Policy.
6. Authentication, authorization and security of communication on the Web, TLS, HSTS, RBAC.
7. (2) JWT and modern authentication protocols, JWT structure, OAuth2, OpenID Connect.
8. Streaming and realtime communication on the Web, protocols SSE, WebSockets, gRPC-Web.
9. GraphQL and the difference with REST, API Gateway.
10. Distributed systems and scaling on the Web, Load balancing, CDN, caching, API rate limiting.
11. Web application architecture in Kubernetes.
12. Monitoring, observability and debugging of Web applications.
- Syllabus of tutorials:
- Study Objective:
- Study materials:
-
1. Newman, S.: Building Microservices (2nd Edition). OReilly, 2019. ISBN 978-1492034025.
2. Pollard, B.: HTTP/2 in Action. Manning Publications, 2019. ISBN 978-1617295164.
3. Grigorik, I.: High Performance Browser Networking. O'Reilly Media, 2013. ISBN 9781449344757.
- Note:
- Further information:
- https://courses.fit.cvut.cz/NI-AM2/
- No time-table has been prepared for this course
- The course is a part of the following study plans:
-
- Quantum Informatics (elective course)
- Mgr. programe Applied informatics (code ANIE) for the phase of study without specialization (VO)
- Master specialization Embedded systems (VO)
- Master specialization Business Informatics, 2026 (VO)
- Master specialization Software Engineering (VO)
- Master specialization Web Engineering (PS)
- Master specialization Visual computing and Game design (VO)
- Master specialization Computer Security, in Czech, 2026 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 2026 (elective course)
- Master specialization Computer Science, in Czech, 2026 (elective course)
- Master specialization Programming Languages, in Czech, 2026 (elective course)
- Master specialization Artificial Intelligence, in Czech, 2026 (elective course)
- Master programme, for the phase of study without specialisation, ver. for 2026 and higher (elective course)