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 HECS Band contribution amount 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:
- Identify and explain distributed system models, client server in particular.
- Write programs for client side applications (UDP and TCP sockets).
- Write programs for iterative and concurrent servers (UDP and TCP sockets).
- Describe and explain how RPC based systems work.
- Explain the purpose and method of operation of system generated RPC based program code.
- Write simple RPC based programs (client and server ends) and install/register such services.
- Identify and describe the major distributed architectures in wide spread use, in particular those based on distributed object technologies.
- Describe and explain the principal architectural components and working of one major distributed architecture implementation.
- Explain how distributed transactions run in both partitioned and replicated data environments in terms of recovery, concurrency control, and commitment.
- 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
Assessment
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 (2022)
Penrith (Kingswood)
Day
Subject Contact Evan Crawford Opens in new window
View timetable Opens in new window
Parramatta - Victoria Rd
Day
Subject Contact Evan Crawford Opens in new window
View timetable Opens in new window
Spring (2023)
Penrith (Kingswood)
On-site
Subject Contact Evan Crawford Opens in new window
View timetable Opens in new window
Parramatta - Victoria Rd
On-site
Subject Contact Evan Crawford Opens in new window