Web Architecture, Protocols, and Services
Data is displayed for the academic year: 2024./2025.
Lectures
Laboratory exercises
Course Description
Introduction to service-oriented distributed computing based on Web services. Service-oriented programming and engineering. Human and programmable Web. Web standards, architectures, technologies, and protocols. Principles of design and implementation of high-performance, scalable, and secure Web services. HTTP and Websocket protocols. AJAX and SSE. Server push paradigms and technologies. REST and RPC architectural styles. Design and implementation of RESTful and RPC-based Web services. RESTful API design. Web hosting. Web server load balancing. Microservices architecture.
Prerequisites
computer networks; network programming
Study Programmes
University graduate
[FER3-HR] Audio Technologies and Electroacoustics - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Communication and Space Technologies - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Computer Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Computer Science - profile
Core-elective courses
(1. semester)
(3. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Data Science - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electronic and Computer Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Electronics - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Network Science - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Courses
(1. semester)
Elective Courses of the Profile
(1. semester)
[FER2-HR] Computer Engineering - profile
Specialization Course
(1. semester)
[FER2-HR] Computer Science - profile
Specialization Course
(3. semester)
[FER2-HR] Software Engineering and Information Systems - profile
Specialization Course
(1. semester)
[FER2-HR] Telecommunication and Informatics - profile
Specialization Course
(1. semester)
Learning Outcomes
- explain the client-server architecture and it's application on the Web
- explain the separation of concerns between client, server, and proxy and it's impact on the Web scalability
- discuss the scalability of a particular Web service and the Web in general
- analyze the applicability and performance of different Web protocols
- analyze the applicability of different architectural styles for Web infrastructure and Web services design
- apply the REST and RPC-based architectural styles for Web services design
- compare the applicability of synchronous and asynchronous protocols for Web-based communication
- apply the microservices architecture for Web services design
- compare the characteristics of different Web server load balancing algorithms
Forms of Teaching
Lectures
Lecturer-driven classroom presentations with live demonstrations of how to implement theoretical concepts in software
LaboratoryDesign and development of a RESTful Web service. Design and development of a Websocket-based Web service. Students individually implement given assignment in a recommended programming language or tool, and periodically demonstrate the progress to teaching assistants.
Grading Method
Continuous Assessment | Exam | |||||
---|---|---|---|---|---|---|
Type | Threshold | Percent of Grade | Threshold | Percent of Grade | ||
Laboratory Exercises | 50 % | 40 % | 50 % | 0 % | ||
Mid Term Exam: Written | 50 % | 30 % | 0 % | |||
Final Exam: Written | 50 % | 30 % | ||||
Exam: Written | 50 % | 100 % | ||||
Exam: Oral | 100 % |
Week by Week Schedule
- Introduction; definition of service-oriented computing as a paradigm for software development and software comsumption; examples of dual interface (GUI and API) of popular Web services; brief history of the Web
- Basics of HTTP protocol; HTTP request and HTTP response; structure of HTTP message: request and status line, headers, body; URL; HTTP client algorithm; implementation of a simple HTTP client
- REST and RESTful Web services; REST constraints: network, content, and interaction constraints; REST network constraints: client-server architecture, layered system; proxy and gateway
- REST content constraints: addressability; resource-oriented architecture; resource identifiers; URI, URL, and URN
- REST content constraints: connectedness; resource representations; hypermedia; hypermedia formats: HTML, XML, JSON; media types in HTTP; content negotiation
- REST interaction constraints: uniform interface and statelessness; HTTP methods; HTTP status codes; safety and idempotence of HTTP methods; example of server-side software implementation of a RESTful Web service
- REST interaction constraints: caching and code on demand; conditional HTTP request and its impact on scalability; cache topologies; cache processing algorithm; REST triangle; REST maturity model
- Midterm exam
- RESTful API design; resource and URI design; resource modelling; interaction design; metadata design; HTTP persistent connections; HTTP pipelining
- Asynchronous and real-time Web; server push technologies: polling and long polling; AJAX and Server Sent Events (SSE); Websocket protocol and Websocket API; performance and scalability comparison of polling, long polling, and Websocket based communication
- Web hosting; dedicated Web hosting; virtual Web hosting
- Web server load balancing; Quality of service (QoS) in service-oriented systems
- RPC frameworks; RPC-style Web services
- Microservices architecture
- Final exam
Literature
General
ID 222464
Winter semester
5 ECTS
L1 English Level
L1 e-Learning
30 Lectures
0 Seminar
0 Exercises
5 Laboratory exercises
0 Project laboratory
0 Physical education excercises
Grading System
88 Excellent
75 Very Good
63 Good
50 Sufficient