Full Title:Client-Server Distributed Programming
Language of Instruction:English
Module Code:PROG C8010
Credits: 5
Valid From:Semester 1 - 2014/15 ( September 2014 )
Module Delivered in No Programmes
Module Description:Students completing this module will have a comprehensive understanding of the concepts, technologies and tools that are used to design and develop distributed applications using the client-server paradigm. They will be able to discuss the issues underpinning distributed systems, design, develop and test client-server applications using both the message-passing and distributed objects paradigms (i.e. sockets and RMI). They will also be able to evaluate sockets and RMI as distributed application enabling technologies and will have a through understanding of the various models of server construction.
Learning Outcomes:
On successful completion of this module the learner should be able to
  1. Discuss the core issues underpinning distributed systems.
  2. Design, develop and test client-server applications using message-passing and distributed objects paradigms, specifically Sockets and RMI (Remote Method Invocation).
  3. Demonstrate a good understanding of design patterns and be able to apply them in a distributed application.
  4. Critically evaluate sockets and RMI as distributed computing paradigms and understand server construction models.

Module Content & Assessment

Indicative Content
Distributed computing overview
What is a distributed system?, Core issues: heterogeneity, openness, security, scalability, failure handling, concurrency, transparency, distributed computing paradigms.
Inter-process communication
Primitives – connect, send, receive, disconnect, Data marshalling, Event synchronisation
­TCP/connection-oriented, UDP/connectionless, Multithreaded servers: Thread-per-client, Thread pool, Object serialization, Stateful and stateless servers, Software engineering for a network service: protocol specification, application design and implementation,
Distributed Objects and RMI (Remote Method Invocation)
Distributed objects paradigm, Java RMI architecture, RMI operational exchange between client and server, Building applications with RMI, RMI Object Design Issues, Threading and network Management, Client callback, Stub downloading and RMI security
Analysis of server construction models.
Comparison of RMI (distributed objects) and sockets (message-passing).
Assessment Breakdown%
Course Work40.00%
End of Module Formal Examination60.00%

Full Time

Course Work
Assessment Type Assessment Description Outcome addressed % of total Marks Out Of Pass Marks Assessment Date Duration
Continuous Assessment Students will be organised into groups and will be required to demonstrate the ability to design, implement and test socket and RMI applications in a specific application context. They will also be required to document and present their solution. The continuous assessment component in this module can integrate with other modules where appropriate. 2,3,4 40.00 0 0 n/a 0
No Project
No Practical
End of Module Formal Examination
Assessment Type Assessment Description Outcome addressed % of total Marks Out Of Pass Marks Assessment Date Duration
Formal Exam End-of-Semester Final Examination 1,2,3,4 60.00 0 0 End-of-Semester 0
Reassessment Requirement
A repeat examination
Reassessment of this module will consist of a repeat examination. It is possible that there will also be a requirement to be reassessed in a coursework element.

DKIT reserves the right to alter the nature and timings of assessment


Module Workload & Resources

Workload: Full Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Lecturer-Supervised Learning (Contact) There will be three hours of lab-based classes per week. In these theory / practical sessions, the delivery of theory will be integrated with the practical implementation of that theory. Classes will normally be broken down into 60% theory delivery and 40% practical implementation. 4.00 Every Week 4.00
Directed Reading Reading of lecturer-recommended information sources. 1.00 Every Week 1.00
Independent Study Independent practical work. 3.00 Every Week 3.00
Total Weekly Learner Workload 8.00
Total Weekly Contact Hours 4.00
This course has no Part Time workload.
Supplementary Book Resources
  • Liu, M.L. 2003, Distributed Computing: Principles and Applications, Addison Wesley [ISBN: 0201796449]
  • Couloris G., et al. 2005, Distributed Systems, Concepts and Design, 3rd ed. Ed., Addison Wesley [ISBN: 0321263545]
  • Tanenbaum, A. S. and van Steen, M. 2007, Distributed Systems: Principles and Paradigms, 2nd ed Ed., Prentice Hall [ISBN: 0132392275]
  • Harold, E.R. 2004, Java Network Programming, 3rd ed. Ed., O’Reilly [ISBN: 0596007213]
  • Grosso, W. 2001, Java RMI, O’Reilly [ISBN: 1565924525]
  • Oberg, R. 2001, Mastering RMI: Developing Enterprise Applications in Java and EJB, Wiley Publishing [ISBN: 0471389404]
  • Horstmann, C. et al. 2004, Core Java 2 Volume II, Advanced Features, 7th ed. Ed., Prentice Hall PTR [ISBN: 0131118269]
This module does not have any article/paper resources
Other Resources