Web Architecture, Protocols, and Services
Data is displayed for the academic year: 2024./2025.
Lectures
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.
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 Course of the Profile
(1. semester)
Elective Courses
(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
Leonard Richardson, Sam Ruby (2007.), RESTful Web Services, "O'Reilly Media, Inc."
Mark Masse (2011.), REST API Design Rulebook, "O'Reilly Media, Inc."
David Gourley, Brian Totty, Marjorie Sayer, Anshu Aggarwal, Sailu Reddy (2002.), HTTP: The Definitive Guide, "O'Reilly Media, Inc."
Ilya Grigorik (2013.), High Performance Browser Networking, "O'Reilly Media, Inc."
Eric Newcomer, Greg Lomow (2005.), Understanding SOA with Web Services, Addison-Wesley Professional
Thomas Erl (2005.), Service-oriented Architecture: A Field Guide to Integrating XML and Web Services, Prentice Hall
For students
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