COMP 3009 Distributed Systems and Programming

Credit Points 10

Legacy Code 300115

Coordinator Evan Crawford Opens in new window

Description This subject covers the concepts, design, and programming of distributed systems. It builds on basic network communication protocols (specifically IP) to cover client server programming using both the system level socket interface and remote procedure calls. It also examines large scale distributed system architectures particularly those based on distributed objects and considers the complexities inherent in distributed transactions. Key concepts covered include data and algorithmic distribution, idempotent protocols, stateless and statefull servers, and distributed system transparency. Illustrative case studies are included.

School Computer, Data & Math Sciences

Discipline Programming

Student Contribution Band HECS Band 2 10cp

Check your fees via the Fees page.

Level Undergraduate Level 3 subject

Pre-requisite(s) Successful completion of COMP 2004 Computer Networking and either COMP 2014 Object Oriented Programming or COMP 2015 Programming Techniques

Learning Outcomes

On successful completion of this subject, students should be able to:

  1. Identify and explain distributed system models, client server in particular.
  2. Write programs for client side applications (UDP and TCP sockets).
  3. Write programs for iterative and concurrent servers (UDP and TCP sockets).
  4. Describe and explain how RPC based systems work.
  5. Explain the purpose and method of operation of system generated RPC based program code.
  6. Write simple RPC based programs (client and server ends) and install/register such services.
  7. Identify and describe the major distributed architectures in wide spread use, in particular those based on distributed object technologies.
  8. Describe and explain the principal architectural components and working of one major distributed architecture implementation.
  9. Explain how distributed transactions run in both partitioned and replicated data environments in terms of recovery, concurrency control, and commitment.
  10. Deliver tested and documented programs and systems of significant complexity within specified project deadlines and in a form that meets IT professional standards

Subject Content

- Basic concepts of data and algorithmic distribution.
- client/Server Models: connection and connectionless orientations, stateless versus statefull servers, Server concurrency, socket interface programming.
- Distributed Name/Directory services.
- Remote procedure Calls (RPC): data exchange representations, port location services, RPC programming.
- Large scale architectures and Distributed Objects.
- Distributed data and databases: data replication/partitioning, Distributed transaction and their concurrency, recovery and commitment


The following table summarises the standard assessment tasks for this subject. Please note this is a guide only. Assessment tasks are regularly updated, where there is a difference your Learning Guide takes precedence.

Type Length Percent Threshold Individual/Group Task
Professional Task Up to 5. Approx 400 words each or equivalent code 50 N Individual
Quiz 1.5 hour each 50 N Individual

Teaching Periods

Spring (2023)

Penrith (Kingswood)


Subject Contact Evan Crawford Opens in new window

View timetable Opens in new window

Parramatta - Victoria Rd


Subject Contact Evan Crawford Opens in new window

View timetable Opens in new window