At the end of the course, it is expected that the student is able to:
- know the Internet principles
- know the major Web technologies
- implement dynamic Web pages
- implement Web applications
- know the principles and technologies of service-oriented architectures
- design and implement Web services
- know the principles of cloud application design and development
- design and implement cloud applications
- know architectures and protocols of peer-to-peer systems
- design and implement peer-to-peer applications
Course contents summary
2. Basic Web technologies
4. Service-oriented architectures and cloud applications
5. Peer-to-peer systems
1. Internet (4 hours)
1.1. Network edge
1.2. Network core
1.3. Delay, loss and throughput
1.4. Protocol layers
1.5. network applications
1.6. History of the Internet
2. Basic Web technologies (8 hours)
2.2. Apache HTTP Server
2.3. HTML, CSS, XML e JSON
2.4. Search engines
4. Service-oriented architectures and cloud applications (8 hours)
4.1. General SOA concepts
4.2. Web Services, SOAP, WSDL, UDDI, WS-Security, Semantic WS, WS-Composition
4.3. REST, RESTful services
4.4. OpenStack, cloud application development
5. Peer-to-peer systems (8 hours)
5.1. Qualitative and quantitative characterization of P2P systems
5.2. Design issues of P2P systems
5.3. HM, DUM, DSM e LM models
5.4. HM-based peer-to-peer systems: SoulSeek, Napster, eMule, BitTorrent
5.5. DUM-based peer-to-peer systems: Gnutella, Mute, Freenet
5.6. DSM-based peer-to-peer systems: Kademlia, Chord
5.7. LM-based peer-to-peer systems: Skype
5.8. Blockchain and Bitcoin
M. Amoretti, lecture notes in english.
J. Kurose, K. Ross, "Computer Networking: A Top Down Approach", ed. Addison-Wesley, 2012.
M. Cantelon, M. Harter, T. J. Holowaychuck, N. Rajlich, "Node.js in action", ed. Manning, 2014.
Teaching activities will be mostly performed in terms of lectures given by the teacher, showing slides and writing on the blackboard.
Some hours will be devoted to the practice of software development for Internet oriented systems.
Teaching materials (including slides, lecture notes, source code, scientific articles) will be weekly uploaded on the Elly platform.
To download teaching materials, on line subscription to the course is mandatory.
Students that won't attend the lectures are invited to check the available teachning materials and recommendations provided by the teacher through the Elly platform.
Assessment methods and criteria
The learning evaluation consists of two moments:
1) a written exam lasting 2 hours, with open questions related to the theoretical topics of the course;
2) a software development project based on the technologies illustrated within the course; it is mandatory to write a short report and to make an oral presentation of the work done.
The written exam is evaluated on a 0-30 scale. The project is evaluated on a 0-30 scale. The final grade is the average of the two partial grades, with weight 0.4 for the written exam and 0.6 for the project. There won't be midterm exams.