Web Architecture, Protocols, and Services

Data is displayed for academic year: 2023./2024.

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

  1. explain the client-server architecture and it's application on the Web
  2. explain the separation of concerns between client, server, and proxy and it's impact on the Web scalability
  3. discuss the scalability of a particular Web service and the Web in general
  4. analyze the applicability and performance of different Web protocols
  5. analyze the applicability of different architectural styles for Web infrastructure and Web services design
  6. apply the REST and RPC-based architectural styles for Web services design
  7. compare the applicability of synchronous and asynchronous protocols for Web-based communication
  8. apply the microservices architecture for Web services design
  9. 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

Laboratory

Design 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

  1. 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
  2. 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
  3. REST and RESTful Web services; REST constraints: network, content, and interaction constraints; REST network constraints: client-server architecture, layered system; proxy and gateway
  4. REST content constraints: addressability; resource-oriented architecture; resource identifiers; URI, URL, and URN
  5. REST content constraints: connectedness; resource representations; hypermedia; hypermedia formats: HTML, XML, JSON; media types in HTTP; content negotiation
  6. 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
  7. 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
  8. Midterm exam
  9. RESTful API design; resource and URI design; resource modelling; interaction design; metadata design; HTTP persistent connections; HTTP pipelining
  10. 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
  11. Web hosting; dedicated Web hosting; virtual Web hosting
  12. Web server load balancing; Quality of service (QoS) in service-oriented systems
  13. RPC frameworks; RPC-style Web services
  14. Microservices architecture
  15. 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