Web Architecture, Protocols, and Services

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, AJAX, SSE, and Websocket protocols. Server push paradigms and technologies. REST and RPC architectural styles. Design and implementation of RESTful and RPC-based web services. REST API design. Microservices architecture. Web hosting. Web server load balancing.

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

Study Programmes

University graduate
Audio Technologies and Electroacoustics (profile)
Free Elective Courses (1. semester)
Communication and Space Technologies (profile)
Free Elective Courses (1. semester)
Computational Modelling in Engineering (profile)
Free Elective Courses (1. semester)
Computer Engineering (profile)
Free Elective Courses (1. semester) Specialization Course (1. semester)
Computer Science (profile)
Core-elective courses (1. semester) Specialization Course (3. semester)
Control Systems and Robotics (profile)
Free Elective Courses (1. semester)
Data Science (profile)
Free Elective Courses (1. semester)
Electrical Power Engineering (profile)
Free Elective Courses (1. semester)
Electric Machines, Drives and Automation (profile)
Free Elective Courses (1. semester)
Electronic and Computer Engineering (profile)
Free Elective Courses (1. semester)
Electronics (profile)
Free Elective Courses (1. semester)
Information and Communication Engineering (profile)
Free Elective Courses (1. semester)
Network Science (profile)
Free Elective Courses (1. semester)
Software Engineering and Information Systems (profile)
Elective Course of the Profile (1. semester) Specialization Course (1. semester)
Telecommunication and Informatics (profile)
Specialization Course (1. semester)

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

Associate Lecturers

For students

General

ID 222464
  Winter semester
5 ECTS
L1 English Level
L1 e-Learning
30 Lectures
5 Laboratory exercises

Grading System

88 Excellent
75 Very Good
63 Good
50 Acceptable