Learning objectives
The goal of this course is to define and characterize Internet-oriented systems. In particular, the student will be able to understand:
- the principles of Internet operation
- the main web technologies
- the JavaScript programming language
- the principles and technologies of service-oriented architectures
- the principles of the design and development of applications with Microservices
- the principles of internet security
- the principles containers and the governance of cloud applications
The student will learn to apply these skills to:
- develop interactive web applications
- design and implement microservices
- manage applications in an isolated environment through the use of containers
- know the ecosystem of basic services offered by the cloud
Prerequisites
- - -
Course unit content
1. Internet
2. Network and Transport layer
3. Application layer
4. Basic Web technologies
5. Javascript
6. Web API SOA
7. Microservices
6. Internet Security
7. Containers and orchestration in modern cloud applications
Full programme
1. Internet:
- What is internet?
- A short history of internet
- Network edge
- Network core
- Delay, Loss, Throughput
- Security
- Protocol layers
2. Network and Transport layer:
- Network layer:
Overview:
data plane and control plane
IP: the Internet Protocol
Datagram format
Addressing
Network address translation
IPv6
- Transport Layer:
Transport-layer services
Multiplexing and demultiplexing
Connectionless transport: UDP
Connection-oriented transport: TCP
Congestion management
TLS Transport Layer Security
3. Application layer:
- DNS
- HTTP
- WS
- HTTP2
- HTTPS
- Proxy
- Reverse Proxy
- Virtual Hosting
- SSL-Offloading
- WAF
4. Basic Web technologies:
- HTML
- CSS
- JSON
- AJAX
5. Javascript
- The language basics
- Asynchronocity
- Callback
- Javascript and the Web
6. Web API SOA:
- Communication paradigms
- SOA
- XML
- SOAP
7. Internet Security:
- Fundamentals
- OWASP Top 10
- Common types of cyber attacks
- Threat modeling
8. Containers and orchestration in modern cloud applications:
- Container
- Orchestration
- Auto scaling
- Load balancing
- Auto discovery
- Performance
- Readiness
Bibliography
Jim Kurose, Keith Ross
Computer Networking: A Top Down Approach
8th Edition, Pearson, 2020
Larry L. Peterson, Bruce S. Davie
Computer Networks, A system Approach
5th Edition, Morgan Kaufmann 2012
David Gourley and Brian Totty
HTTP The Definitive Guide
O’Reilly Media, 2002
Barry Pollard
HTTP2 In Action
Manning, 2019
Jennifer Robbins
Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics
5th Edition, O’Reilly Media, 2018
Keith J. Grant
CSS in Depth
1st Edition, Manning, 2018
Waseem Roshen
SOA-Based Enterprise Integration: A Step-by-Step Guide to Services-based Application
McGraw-Hill Education, 2009
Teaching methods
The activities will take place both in telepresence via Microsoft Teams platform and in the classrooms assigned to the course. Furthermore, the lessons will be recorded and the material (slides and recordings) will be uploaded on the Elly page of the course. During the lessons, moments of explanation will be alternate with interactive moments with the students during the workshops.
Assessment methods and criteria
A project related to the topics of the course is expected.
This project involves the development of an Internet-oriented application, the writing of a PDF report illustrating the chosen architecture and an evaluation by the commission of the implemented solution.
There will be an oral exam on the topics of the course.
Other information
Lecture slides and recordings are available on http://elly2000.dia.unipr.it/
2030 agenda goals for sustainable development
- - -