Distributed Systems

Teaching Methodologies

In this curricular unit are used the following teaching methodologies:

1. Exhibition method: explanatory method where facts, concepts, principles and generalizations are defined and presented by the teacher and discussed with the class, followed by demonstrative examples;

2. Experimental method: active method where the student develops knowledge through several individual practical records and the development of the group thin project.

Learning Results

It is expected that at the end of the curricular unit the student will be qualified to:

1. Characterize distributed systems and describe their main concepts, architectures, problems and challenges.

2. Implement systems distributed through the use of basic communication primitives, remote object innovation mechanisms and web services.

Program

1. Introduction aso Distributed Systems (Characterization of Distributed Systems; Objectives: connectivity, transparency, scalability; Distributed hardware concepts; Examples of distributed systems; Middeware; Distributed system architectures).

2. Communication (Protocol layers, Remote Procedure Call (RPC); remote access to objects; Message-oriented communication; Persistence and sinconism; Stream-oriented communication)

3. Problems in Distributed Systems (clock synchronization, consistency and replication; Fault tolerance)

4. Sockts (TCP and UDP protocols; Programming with stockets in JAVA; Multicast and Broadcast)

5. Java RMI (Java RMI Architecture; Services; API; Security)

6. REST Web Services (The HTTP Protocol; REST architecture; Implementation with JAX-RS)

Curricular Unit Teachers

Internship(s)

NAO

Bibliography

orge Cardoso,” Programação de Sistemas Distribuídos em Java”, FCA, 2008, ISBN: 978-972-722-601-6.

Bill Burke, “RESTFUL Java with JAX-RS 2.0”, 2nd ed., O´Reilly, 2013, ISBN: 978-1-449-36134-1. Jean Dollimore, Tim Kindberg, George Coulouris, “Distributed Systems: Concepts and Design”, 4th Edition, Addison Wesley, 2005, ISBN: 978-032-126-354-4.

David Reilly e Michael Reilly, “Java Network Programming and Distributed Computing”, Addison-Wesley, 2002, ISBN: 978-020-171-037-3.