52477 Distributed Programming 2010

Lecturer: Dr. Sotirios Terzis
Coursework: 20% of final mark
Course Timetable
Course Syllabus
Recommended Textbooks: (**) Distributed Systems: Concepts and Design, 4th edition
G. Coulouris, J. Dollimore and T. Kindberg, Addison Wesley, 2005
(*) Java Network Programming, 3rd Edition
E.R. Harold, O'Reilly, 2004
(*) Mastering RMI: Developing Enterprise Applications in Java and EJB
R. Oberg, Wiley, 2001
(**) Java Concurrency in Practice
B. Goetz with T. Peierls, J. Bloch, J. Bowbeer, D. Holmes and D. Lea, Addison Wesley, 2006

Announcements

(7/10/2010) VERY IMPORTANT: The lab on Friday 8 October is available for you to start working on your coursework. I will be in my office during the lab if anyone has any questions.

(24/9/2010) VERY IMPORTANT: There is no lab on Friday 1 October.

Lectures

TCP Sockets in Java

Distributed Systems Introduction
References: Coulouris et al. 1.1, 1.4, 2.1, 2.2 (excl. 2.2.4 and 2.2.5)
Further Reading: J. Saltzer, D. Reed and D.D. Clark, End-to-End Arguments in System Design, ACM Transactions on Computer Systems, Vol. 2, No. 4, November 1984, pp. 277-288, M.S. Blumenthal, D.D. Clark, Rethinking the design of the Internet: The end to end arguments vs. the brave new world, ACM Transactions on Internet Technology, Vol 1, No 1, August 2001, pp 70-109.

RMI Intro
References: Harold chapter 18

Concurrency
References: Goetz Sections: 1.3, 1.4, 5.1, 5.2, 5.3 (excl. 5.3.1 and 5.3.2) and 5.5, and Chapters 2, 3, 4
Further Reading: M. Herlihy , Highly concurrent data structures, Communications of the ACM, Vol. 52, No. 5, May 2009, pp. 99, W.N. Scherer III, D. Lea, M.L. Scott Scalable synchronous queues, Communications of the ACM, Vol. 52, No. 5, May 2009, pp. 100-111.

More on Java RMI
References: Oberg 2 and 6

Patterns for Concurrent Application & Java Executor Framework
References: Goetz Chapter 6 and 8 (excl. 8.5), Sections 7.1.1, 7.1.5, 7.2.2, 7.2.5 and 11.2
Further Reading: Goetz section 11.4 and Chapter 10.

RMI in context and behind the scenes
References: Coulouris et al. 4.3 (excl. 4.3.1 and 4.3.3), 4.4 and 5 (5.2.5 only until top of page 192, and excl. 5.2.6, 5.3 and 5.4), J. Waldo, G. Wyant, A. Wolrath and S. Kendall, A Note on Distributed Computing, Sun Microsystems Technical Report, no. SMLI TR-94-29, November 1994.
Further Reading: Coulouris et al. rest of chapter 5, J. Waldo, Remote procedure calls and Java Remote Method Invocation, IEEE Concurrency, vol. 6, no. 3, July-September 1998, R. Rodrigues and P. Druschel, Peer-to-Peer Systems, Communications of the ACM, vol. 53, no. 10, pp. 72-82, October 2010.

Directed Reading
References: P. Eugster, P. Felber, R. Guerraoui and A.-M. Kermarrec, The Many Faces of Publish/Subscribe, ACM Computing Survey, vol. 35, no. 2, June 2003, A. Fuggetta, G.P. Picco and G. Vigna, Understanding Code Mobility, IEEE Transactions on Software Engineering, vol. 24, no. 5, May 1998.

Revision Lecture

Coursework

Client-Server Interactions
Measuring Performance
Last modified: Thursday, April 21, 2010