WEB AND SERVICE ORIENTED SYSTEMS AND LABORATORYModule LABORATORY
Academic Year 2024/2025 - Teacher: SALVATORE NICOTRAExpected Learning Outcomes
This Lab course focuses on a pratical approach to test the conceptual foundations and practical skills deemed essential for the development of Web applications and, more generally, distributed systems. Typical architectural solutions to be treated include: the client-server paradigm, remote procedure calls, dynamic Web, HTTP request handlers (servlets), the MVC (Model-View-Controller) pattern, and REST API-based Web applications. Development technologies presented are based on Java platform.
Course Structure
Lectures will mainly consist in live sessions dealing with the development of distributed applications, with a special emphasis on server-side web applications. These will be carried out by the lecturer and replicated, with suggested variations, by students, on their notebooks or lab workstations. As a framework and guidance for such sessions, lecture notes will be displayed during the lecture and shared with students through the Studium portal. Notes will provide a precise record of the material presented, as well as pointers to the required reference technical documentation.
Required Prerequisites
- Ability to think algorithmically (from Programming 1 and Programming 2 courses)
- Knowledge of the main concepts and solutions of concurrent programming (from the Operating Systems course)
- Knowledge of the main concepts, mechanisms and protocols of the Internet (from the Computer Networks course)
Attendance of Lessons
Required
Detailed Course Content
The course will introduce the main concepts, paradigms and architectural aspects pertaining the following topics.
Java Web Application
- Tomcat
- Servlet and web application
- Databases connections JDBC/JPA
Spring Boot
- Microservices
- Spring Boot Web MVC
Thymeleaf
- Spring Data (JDBC, Spring Data JPA)
Frameworks
- Web Assembly
- React Native
Application client-server based on socket in Java
- Communication connection-oriented and connectionless
- API Java (Server(Client)
- NIO
Thread Java
- class Thread e API to create and manage thread
- Runnable interface
- Virtual Thread
Textbook Information
- Lecture notes available through the Studium portal or the University's MS Teams platform
- Deitel H. M., Deitel P. J. Java: How to Program. Pearson.
- Java online documentation, https://docs.oracle.com/javase/tutorial/
- Java Enterprise Edition online documentation, Tutorial Jakarta EE
Course Planning
Subjects | Text References | |
---|---|---|
1 | Introduction to distributed systems and course | 1 |
2 | Socket introduction and main system calls | 1 |
3 | Socket: Client Examples. Read and Write. Non blocking sockets | 1 |
4 | Socket: IP address | 1 |
5 | Socket: Connection less communication send and recieve | 1 |
6 | Socket in Java | 1,2,3 |
7 | Java Servlets | 1,4 |
8 | Web Application: principles and concepts | 1,4 |
9 | Web services: REST con JSON | 1 |
10 | Development in PHP | |
11 | Development of API REST using Spring Boot | 1 |
12 | Development in PHP | 1 |
13 | Laravel MVC | 1 |
14 | Web Client development | 1 |
Learning Assessment
Learning Assessment Procedures
Coding exercises on the course topics in laboratory, then oral discussion.
The exam is structured so that each student is assigned a grade according to the following scale:
- Not approved: the student has not acquired the basic concepts and is unable to answer at least 60% of the questions or complete the exercises.
- 18-23: the student demonstrates minimal mastery of basic concepts, has limited ability to connect the content, and is able to solve simple exercises.
- 24-27: the student demonstrates a good command of the course content, has solid content-connection skills, and solves exercises with few errors.
- 28-30 with honors: the student has fully acquired all course content and is able to master it with a critical approach; exercises are completed thoroughly and without errors.
Assessment may also be conducted online if conditions require it.
Students with disabilities and/or specific learning disorders (SLDs) must contact the professor and the CInAP representative of the Department of Mathematics and Informatics (DMI) well in advance of the exam date to inform them of their intention to take the exam with appropriate compensatory measures
Examples of frequently asked questions and / or exercises
Client-server socket based clients.
Usage of Posix threads.
3-tier architectures.
Server-side web application development using servlets.
Integrated Development Environments for Web Apps.
Servlets and servlet containers.
Web applications.
Developing and consuming SOAP and REST web services.
The JSON data interchange format.
PHP and the web.
The MVC design pattern in the Spring Boot and Laravel frameworks.
Usage of Posix threads.
3-tier architectures.
Server-side web application development using servlets.
Integrated Development Environments for Web Apps.
Servlets and servlet containers.
Web applications.
Developing and consuming SOAP and REST web services.
The JSON data interchange format.
PHP and the web.
The MVC design pattern in the Spring Boot and Laravel frameworks.