INTERNET ORIENTED SYSTEMS
cod. 18305

Academic year 2017/18
2° year of course - First semester
Professor
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Ingegneria informatica
Type of training activity
Characterising
42 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in ITALIAN

Learning objectives

At the end of the course, it is expected that the student is able to:
- know the Internet principles
- know the major Web technologies
- know the JavaScript programming language
- 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

Prerequisites

- - -

Course unit content

1. Internet
2. Basic Web technologies
3. JavaScript
4. Service-oriented architectures and cloud applications
5. Peer-to-peer systems

Full programme

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.1. HTTP
2.2. Apache HTTP Server
2.3. HTML, CSS, XML e JSON
2.4. Search engines
2.5. MVC

3. JavaScript (14 hours)
3.1. Client-side JavaScript (basics, window object, DOM, events, AJAX, JQuery, storage, scripted graphics, dev tools, WebRTC)
3.2. Server-side JavaScript (Node.js)

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

Bibliography

M. Amoretti, lecture notes in english.
J. Kurose, K. Ross, "Computer Networking: A Top Down Approach", ed. Addison-Wesley, 2012.
D. Flanagan, "JavaScript - The Definitive Guide", ed. O’Reilly, 2011.
M. Cantelon, M. Harter, T. J. Holowaychuck, N. Rajlich, "Node.js in action", ed. Manning, 2014.

Teaching methods

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.

Other information

- - -