The basic concepts of this course are: concurrency; interprocess communication; middleware; RPC; distributed file systems; distributed applications; fault tolerance; web services;
Content:
1. Introduction - Basic concepts - Interconnection networks - Advantages of distributed systems - Distributed computing paradigms - Design of distributed systems
2. Process communication and synchronization - Communication mechanisms in shared memory systems - Communication mechanisms in distributed memory systems - POSIX services - Threads in Java
3. Message passing and client-server applications - Communication model using message passing - Design aspects - POSIX queue messages - Client-server applications - Design of concurrent servers
4. Communication using sockets - Communication model with sockets - POSIX sockets API - Java sockets API - Design guide of client-servers applications using sockets
5. Remote procedure call - RPC behavior - Interface definition language - Marshaling and message transfer - ONC-RPC -Remote method invocation in JAVA (RMI)
6. Web services - HTTP protocol - SOAP - Development of web services with JAX-WS - Development of web services with gSOAP
7. Distributed services - Name services - Synchronization in distributed systems - Physical and logical clocks - Distributed mutual exclusion - Algorithms of election - Multicast
8. Distributed storage systems - Distributed file systems structure - File and directory services - Implementation of distributed file systems - Example: NFS - Shared disks file systems - Parallel file systems - Storage area networks
9. Fault tolerant in distributed systems - Fault tolerant concepts - Software fault tolerance - Fault detectors - Replication - Protocols of consensus