1st Cycle Studies
Operating Systems, Object-Oriented Programming, Computer Networks.
This course will include theoretical lectures with detailed exposition, using visual aids, of concepts, principles and fundamental techniques of Distributed Systems, accompanied by practical exemples intended to increase students' interest in theoretical concepts and exemplify their application to real situations.
The course will also include practical classes in which students, with the guidance of the teacher, solve practical exercises that require the combination of different theoretical concepts and promote critical thinking with respect to more complex problems. The practical classes are also designed to support the practical project.
The Distributed Systems course provides alumni with an encompassing approach on algorithms, protocols and fundaments of modern distributed systems. Students shall acquire competences on the development of distributed applications using several technologies, and shall be able to understand and integrate knowledge on fundamental techniques for the design of distributed applications at an industrial setting and for the Internet. The course intends to promote competence in analysis and synthesis, knowledge in computer science regarding the subject of study, problem-solving ability, autonomous learning competence, and competence in applying knowledge in practice.
- Introduction to Distributed Systems
- Challenges in the development of distributed applications
- Overview of Middleware
- The Client/Server model
- Programming in TCP and UDP Sockets
- Multicast communication
- The RPC model and remote object invocation
- Fault treatment in the RPC model and RPC semantics
- Distributed programming using Java RMI
- Introduction to CORBA
- Message-Oriented Middleware and JMS API
- The HTTP protocol
- 2-tier, 3-tier and N-tier models
- Distributed applications for the Internet
- Web programming overview
- The technology of Web-Services: SOAP, XML, UDDI
- Security in Distributed Systems
- Naming Servers and Directory Services
- Distributed File Systems
- Clock synchronization in distributed systems
- Causal and total order in distributed applications
- Maintenance and upgrade of distributed applications
- Server replication and high-availability solutions
- Peer-to-peer systems.
Raul André Brajczewski Barbosa
Practical component: 40.0%
Distributed Systems: Concepts and Design
George Coulouris, Jean Dollimore, Tim Kindberg
Distributed Systems: Principles and Paradigms
Andrew S. Tanenbaum, Maarten van Steen
Publisher: Prentice Hall