The University of Southampton
Courses

COMP2207 Distributed Systems and Networks

Module Overview

The networking aspect of this module will expose students to the principles of layered communication protocols, the architecture of the Internet, and the principles of how the components of the TCP/IP layered model are designed and operate. The distributed systems aspect will focus on distributed algorithms, but include distributed communication and transaction models, distributed objects (including Java RMI), web services and peer-to-peer systems. Students should gain a clear understanding of the technologies covered in terms of the underlying fundamental principles.

Aims and Objectives

Module Aims

The aims of this module are two-fold: to teach the theory and practice of concurrent and distributed systems, and to provide a solid grounding in the fundamentals of all major aspects of computer network technology.

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Principles of communications protocols
  • Peer-to-peer systems, their design, the value of decentralisation
  • The Internet architecture and layered TCP/IP networking model
  • Link, network and transport layer principles and functions
  • Network services, design, operation and security
  • Client-server applications and programming
  • Distributed objects, including use through Java RMI
  • Distributed transactions
  • Distributed algorithms
  • Web services, both classic and RESTful
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Build a client-server solution in Java
  • Build a distributed objects solution in Java
  • Build and operate simple data networks
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Explain the fundamental concepts underlying networks and distributed systems
  • Design and analyse simple networks and the protocols they use
  • Assess network systems and technologies
  • Choose between alternative paradigms and technologies for solving problems in distributed systems
  • Understand the use and impact of concurrency on the design of distributed systems

Syllabus

The topics to be covered will include: Internet architecture - The TCP/IP layered model - Protocols, design principles, standardisation, IETF - Naming and addressing Link-layer - Transmission theory and protocols - Ethernet networks, switches - Wireless networks Network layer - Routing, link state and distance vector algorithms - Subnet, site and ISP routing perspectives - IPv6 Network services - Quality of service (QoS) - IP multicast, reliable multicast - Host configuration, service discovery, zero-configuration networking - DHCP, DNS Transport layer - TCP, UDP Network design and operation - Infrastructures; enterprise/campus, ISP/home networks - Network monitoring and management, SNMP - Virtual network environments Applications - Web/HTTP, Email/SMTP Client-server programming - Sockets Introduction to distributed systems - Issues, challenges - Distributed system models (architectural, interaction, failure, security) Time in distributed systems - Clock synchronisation, logical clocks Distributed objects - RPC/RMI - Java RMI Distributed transactions Distributed algorithms - Mutual exclusion - Leader election - Application of reliable/ordered multicast - Consensus Indirect communication - Group communication - Publish-subscribe - Message queues Web services - The classic web service model; WSDL, SOAP, UDDI, RDF, XML - RESTful web services; HTTP methods, JSON - (Linked) open data Peer to peer systems - Design principles - BitTorrent - Distributed hash tables Network security - Authentication and encryption, PKI - (Distributed) denial of service attacks

Learning and Teaching

TypeHours
Preparation for scheduled sessions18
Wider reading or practice36.5
Follow-up work18
Completion of assessment task19.5
Revision10
Lecture36
Tutorial12
Total study time150

Resources & Reading list

A Tanenbaum, D. J. Wetherall (2010). Computer Networks. 

LL Peterson and BS Davie (2008). Computer Networks, a Systems Approach. 

Lydia Parziale, Dr. Wei Liu, Carolyn Matthews, Nicolas Rosselot, Chuck Davis, Jason Forrester and David T. Britt (2006). TCP/IP Tutorial and Technical Overview. 

Coulouris, Dollimore and Kindberg (2011). Distributed Systems - Concepts and Design. 

D. Comer and D. Stevens (1993). Internetworking with TCP/IP Volume III: Client-Server Programming and Applications. 

Mohr, S, (1999). Designing Distributed Applications with XML, ASP, IE5, LDAP and MSMQ. 

Flanagan, Farley, Crawford, and Magnusson (2002). Java Enterprise in a Nutshell. 

Emmerich, W (2000). Engineering Distributed Objects Wiley. 

Assessment

Summative

MethodPercentage contribution
Coursework 15%
Coursework 20%
Exam  (2 hours) 65%

Referral

MethodPercentage contribution
Exam 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Pre-requisites

To study this module, you will need to have studied the following module(s):

CodeModule
COMP1202Programming I
COMP1206Programming 2
Share this module Facebook Google+ Twitter Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×