| ![[The University of Leicester]](http://www.le.ac.uk/corporateid/departmentresource/000066/unilogo.gif) | Department of Mathematics & Computer Science | |||
|  | ||||
| Credits: 20 | Convenor: Dr. N. Ghani | Semester: 2 | 
| Prerequisites: | essential: CO1003,CO1004,CO1011 | desirable: CO2006,CO3007 | 
| Assessment: | Coursework: 40% | Three hour exam in June: 60% | 
| Lectures: | 36 | Problem Classes: | none | 
| Tutorials: | none | Private Study: | 78 | 
| Labs: | 24 | Seminars: | none | 
| Project: | none | Other: | none | 
| Surgeries: | 12 | Total: | 150 | 
  
 
Subject Skills
  
  
 
Explanation of Pre-requisites
 
  A significant aspect of the module will be the reinforcement of
  material delivered in lectures with practicals involving students
  implementing distributed systems in Java. Hence a basic knowledge of
  Java, as provided in CO1003 and CO1004, will be essential. A basic
  grounding in discrete mathematics will assumed during the lectures 
  on security.
Although not essential, software design as found in CO2006 will aid
  the design of distributed systems while the close relationship
  between distributed computing and concurrency means that knowledge
  of CO3007 will also be of benefit.
  
 
Course Description
  The internet has caused a revolution in the way we use and think
  about computers. One of the key technologies underlying the internet
  is distributed computing which allows individual computing
  agents to be located, or distributed, on a network of
  computers but nevertheless work together on cooperative tasks.
  There are many motivations for distributing applications including:
The development and programming of distributed systems is considerably more complex than that of local applications. Distributed applications usually run on spatially separated computers, consist of different components which need to communicate with each other and must ensure a consistent management of shared resources. In addition, of increasing importance is the issue of security in distributed systems, eg how can a component of a system communicate with another component in such away that malicious eavesdroppers cannot interfere. This course will introduce these and other fundamental problems in distributed computing, explain some of the solutions available and cover their implementation in the Java programming language. Students will thus gain insight into distributed computing and security as well as practical skills of immediate use.
  
 
Syllabus
  Distributed Programming: Networking in Java using sockets and
  streams, multi-threaded computation, liveness, safety, deadlock,
  livelock, mutual exclusion, communication protocols, semaphores and
  monitors, synchronous and asynchronous message passing in Java,
  client-server architectures.
Security: Security issues and concerns. Key management including generation, translation, agreement protocols and management paradigms. Authentication including message digests, MAC's, signatures, certificates. Symmetric and antisymmetric ciphers, eg DES, IDEA, RSA.
Java Support: Java security, Java Cryptography
  Architecture (JCA), Java Cryptography Extension (JCE), Java remote
  method invocation (RMI).
  
 
Reading list
Essential:
J. Farley, Java Distributed Computing, O'Reilly. 1998..
M. Boger, Java in Distributed Systems, Wiley. 2001..
J. Knudsen, Java Cryptography, O'Reilly. 1998..
Recommended:
S. Oaks, Java Security, O'Reilly. 1999..
J. Farley, Java Distributed Computing, O'Reilly. 1998..
S. Hartley, Concurrent Programming, The Java Programming Language, OUP. 1998..
D. Lea, Concurrent Programming in Java: Design Principles and Patterns, Addison-Wesley. 1997..
Background:
  
 
 
 
 
 
 
 Author: N.  Rahman, tel: +44 (0)116 252 3902Resources
  Lecture slides, web page, study guide, worksheets, handouts, lecture
  rooms with two OHPs, past examination papers. 
 Module Evaluation
  Course questionnaires, course review. 
 
 Next: MSc
 Up: Year 3
 Previous: CO3096 Compression Methods for Multimedia
  
                      ![[University Home]](http://www.le.ac.uk/corporateid/navigation/unihome.gif) 
                      ![[MCS Home]](http://www.le.ac.uk/corporateid/navigation/depthome.gif) 
                        ![[University Index A-Z]](http://www.le.ac.uk/corporateid/navigation/index.gif) 
                      ![[University Search]](http://www.le.ac.uk/corporateid/navigation/search.gif) 
                      ![[University Help]](http://www.le.ac.uk/corporateid/navigation/help.gif) 
                        
Last updated: 2003-09-23
MCS Web Maintainer
  This document has been approved by the Head of Department.
© University of Leicester.