Base Knowledge
Java programming language and TCP/IP protocol stack.
Teaching Methodologies
Theoretical lessons based on presentation, demonstration and discussion of topics related to the objectives of the curricular unit.
Practical lessons based on programming assignments.
A project assignment.
A final exam.
Learning Results
This curricular unit aims at providing the students the ability to plan and develop object-oriented distributed applications through the use of different programming paradigms/levels of abstraction, i.e., remote communication, remote/distributed objects, and web services. This type of application requires the ability to understand and deal with issues such as concurrency, synchronization, remote communication, and access to remote objects.
Program
- Implementation of Java distributed applications for TCP/IP networks
- Addressing
- Connectionless communication (UDP)
- Connection-oriented communication (TCP)
- Group communication
- Concurrency and input/output multiplexing
- Multithreaded applications
- Mutual exclusion mechanisms
- HTTP
- N-Tier architecture
- JDBC and JPA
- Introduction to middleware solutions for distributed applications
- Middleware, serialization, RPC, and remote object concepts
- Sun PRC
- Main types of remote objects (singleton, stateful, stateless, etc.)
- Java RMI
- CORBA
- REST Web services
- Implementation of Java RMI distributed applications
- Servers
- Clients
- Callback
- Remote object activation
- Introduction to security mechanisms
- Implementation of CORBA distributed applications in Java
- Servers
- Clients
- Implementation of Java distributed applications based on REST web/API services
- Servers
- Clients
- http authentication mechanisms
- Spring Boot platform
Curricular Unit Teachers
Internship(s)
NAO
Bibliography
- Main Bibliography
- Study material prepared and collected by the teachers and made available on the InforEstudante platform.
- Complementary Bibliography
- REILLY, D. & REILLY, M. (2002). Java Network Programming & Distributed Computing. Addison-Wesley
- BOJE, J. (2019). Spring Boot 2 : how to get started and build a microservice (3rd ed). Frankfurt : Codeboje (available in the ISEC library: 1A-12-205)
- COULOURIS, G., DOLLIMORE, J., KINDBERG, T, & BLAIR, G. (2011). Distributed Systems – Concepts and Design (5th Edition). Addison-Wesley (available in the ISEC library: 1A-1-440)
- VITILLO, R. (2021). Understanding distributed systems (version 1.1.1) (available in the ISEC library: 1A-1-460)