Principles of distributed computing; architectures and middleware; servers, processes, and virtualization; upper-layer network protocols, interprocess communication and remote procedure calling; concurrency, synchronization and distributed algorithms, dependable distributed systems and fault tolerance. [Offered: S] Prereq: ECE 358 and (one of ECE 254, 354, SE 350); Level at least 4A Computer Engineering or Electrical Engineering or Software Engineering. Antireq: CS 454, 654