Servizi per la didattica
PORTALE DELLA DIDATTICA

Distributed programming II

01PDVOV

A.A. 2019/20

Course Language

English

Course degree

Master of science-level of the Bologna process in Computer Engineering - Torino

Course structure
Teaching Hours
Lezioni 39
Esercitazioni in laboratorio 21
Teachers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Sisto Riccardo Professore Ordinario ING-INF/05 39 0 51 0 8
Teaching assistant
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 6 C - Affini o integrative Attivitą formative affini o integrative
2019/20
The course is taught in English. Optional course for the Laurea Magistrale degree in Computer Engineering, which is taught in English during the 1st semester of the 2nd year. This course completes the basic knowledge and abilities that are taught in the previous course on Distributed Programming I and that are required for developing distributed applications. It focuses on the techniques for interactions among distributed applications, and in particular web services and related portable data formats (XML and JSON).
Optional course for the Laurea Magistrale degree in Computer Engineering, taught in English during the 1st semester of the 2nd year. This course completes the basic knowledge and skills that have been acquired in the previous course on Distributed Programming I and that are required for developing distributed applications. It focuses on the techniques for B2B interactions among distributed applications (web services). It provides general knowledge of web services and their portable data formats (XML, JSON) and related design and implementation skills, with reference to REST APIs and Java programming.
- Knowledge of the main character-oriented standards for data exchange among distributed applications - Ability to develop applications for XML data manipulation using the Java language - Knowledge of web services and related architectures (REST vs SOAP) - Ability to design and develop RESTful web services (REST APIs) using the Java language
- Knowledge of the main character-oriented standards for data exchange among distributed applications (JSON, XML) - Skill to design XML and JSON data formats and to develop applications for XML/JSON data manipulation using the Java language, with particular focus on performance and validation issues. - Knowledge of web services, related architectures (REST vs SOAP), and related general design principles. - Skill to design RESTful web services (REST APIs) and to implement them using the Java language, with particular focus on concurrency, robustness, security, interoperability and performance issues.
Basic knowledge of the Java language and related programming abilities. Knowledge of the main internet application-level protocols, with particular reference to HTTP. Basic knowledge about web applications.
Basic Java programming skills. Knowledge of the HTTP protocol. Basic knowledge about web applications.
Part 1: Character-oriented portable data formats (2,8 CFU) - Main character-oriented techniques for data exchange among distributed applications (XML and JSON) - XML and related design and programming techniques (schema, standard programming interfaces) - XML data manipulation in Java Part2: Web Services (3,2 CFU) - Service Oriented Architecture (SOA) and web services (REST and SOAP) - Design of web services - RESTful web services programming in Java - Concurrency, robustness, security, interoperability and performance aspects in web services development
Part 1: Character-oriented portable data formats (2,4 CFU) - Character-oriented data representations (XML, JSON) and related schema languages - XML/JSON programming in Java Part2: Web Services (3,6 CFU) - Service Oriented Architecture (SOA), REST Architecture, REST and SOAP Web services - Web services general design principles, design of REST APIs - RESTful web services programming in Java - Concurrency, robustness, security, interoperability and performance issues in web services development - Concurrency, robustness, security, interoperability and performance issues in web services development
In addition to lectures, the course includes 20 hours of programming laboratory about the application of the presented techniques. During the laboratory time, the students will discuss with the teachers about the solution of the assigned exercises.
In addition to lectures, the course includes a programming laboratory (21 hours) about the application of the presented techniques. During laboratory time, the students will discuss with the teachers about the solution of the assigned exercises.
The course material will be distributed by the teacher and it will be available on the web pages of the course.
The teacher will provide material (copy of slides and links to online resources) that will be available on the course web site. Suggested textbook: Bill Burke, RESTful Java with JAX-RS 2.0, 2nd Edition, O'Really Media, November 2013
Modalitą di esame: prova orale facoltativa; prova di laboratorio; progetto individuale;
The exam consists of verifying the expected knowledge and skills acquired by the student. During the course the student will have to develop XML applications and web services using the Java language. The exam includes a preliminary evaluation of the assignments developed by the student and a test in the Lab, composed of a programming test (which consists of developing an extension of the previously developed assignments) and one or more open-answer questions. In case of doubts, an oral exam may be requested to complete the evaluation. The evaluation of the assignments developed by the student is done by sampling: at each exam call a different set of aspects is evaluated. The evaluation of the assignments contributes to the final grade with up to 20 points, while the programming test contributes with up to 6 points and the questions with up to 4 points. Laude requires oral exam.
Exam: optional oral exam; practical lab skills test; individual project;
The exam consists of verifying the expected knowledge and skills acquired by the student. The exam includes a test in the Lab and an optional oral exam. The oral exam can be requested by the student or by the instructor, in case of doubts in the evaluation. Oral exam consists of discussion of the lab test and questions about the course topics. The test in the lab aims at checking the student's knowledge of the topics presented in the course and the student's design and development skills. It is composed of a programming exercise similar to the ones proposed during the course and one or more open-answer questions. On the days before the test, each student can upload any material (e.g. course notes, slides etc.) into his/her personal area on the lab network disks. During the test, this material will be accessible to the student, while no internet access will be possible. In addition, during the test, each student can bring and use a single piece of paper material, that is, one set of bound notes or book. No other material is admitted. The weights of the programming exercise and of the questions for the final grade are respectively 60% and 40%. Laude requires oral exam. Examples of exam tests will be provided to the students during the course. The students who submit good quality and original solutions of the assignments proposed in the labs by the given deadlines have the possibility to substitute the test in the Lab with an oral discussion about their solutions. This possibility is valid for the current academic year, but only for the first time the exam is taken.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il