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 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 B2B 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 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 B2B interactions among distributed applications, and in particular web services and related portable data formats (XML and JSON).
- Knowledge of the main character-oriented standards for data exchange among distributed applications (JSON, XML)
- Ability to design XML and JSON data formats and to develop applications for XML 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 design principles.
- Ability to design and develop RESTful web services (REST APIs) using the Java language, with particular focus on concurrency, robustness, security, interoperability and performance issues.
- Knowledge of the main character-oriented standards for data exchange among distributed applications (JSON, XML)
- Ability to design XML and JSON data formats and to develop applications for XML 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 design principles.
- Ability to design and develop RESTful web services (REST APIs) 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 HTTP protocol. Basic knowledge about web applications.
Basic knowledge of the Java language and related programming abilities. 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 issues in web services development
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 issues in web services development
In addition to lectures, the course includes a programming laboratory (19.5 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.
In addition to lectures, the course includes a programming laboratory (19.5 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 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
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 pratica di laboratorio; Progetto individuale;
...
The exam consists of verifying the expected knowledge and skills acquired by the student.
During the course, exercises are assigned about the application of the design and programming techniques and best practices illustrated in the course. Each student has to develop a solution of these assignments individually. The solution has to be submitted before the selected exam call. The exam includes the evaluation of the solutions of the assignments developed by the student, 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 in questions about the assignments and about the course topics.
The evaluation of the assignments developed by the student and the test in the lab aim at checking the student's knowledge of the topics presented in the course and the student's design and development abilities. The evaluation of the assignments is done by sampling, i.e. it focuses on some of the aspects illustrated in the course. The test in the Lab is composed of a programming test (which consists of developing a simple extension of the assignments developed at home) 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.
In order to pass the exam it is necessary to get positive evaluation of both the submitted assignments and the programming test in the lab. 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.
The students who submit good quality and original solutions to the assignments by a given deadline have the possibility to substitute the test in the Lab with an oral question about their solutions. This possibility is valid for the current academic year, but only for the first time the exam is taken.
Gli studenti e le studentesse con disabilitą o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unitą Special Needs, al fine di permettere al/la docente la declinazione pił idonea in riferimento alla specifica tipologia di esame.
The exam consists of verifying the expected knowledge and skills acquired by the student.
During the course, exercises are assigned about the application of the design and programming techniques and best practices illustrated in the course. Each student has to develop a solution of these assignments individually. The solution has to be submitted before the selected exam call. The exam includes the evaluation of the solutions of the assignments developed by the student, 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 in questions about the assignments and about the course topics.
The evaluation of the assignments developed by the student and the test in the lab aim at checking the student's knowledge of the topics presented in the course and the student's design and development abilities. The evaluation of the assignments is done by sampling, i.e. it focuses on some of the aspects illustrated in the course. The test in the Lab is composed of a programming test (which consists of developing a simple extension of the assignments developed at home) 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.
In order to pass the exam it is necessary to get positive evaluation of both the submitted assignments and the programming test in the lab. 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.
The students who submit good quality and original solutions to the assignments by a given deadline have the possibility to substitute the test in the Lab with an oral question about their solutions. This possibility is valid for the current academic year, but only for the first time the exam is taken.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.