module specification

CS6002 - Distributed and Internet Systems (2018/19)

Module specification Module approved to run in 2018/19
Module title Distributed and Internet Systems
Module level Honours (06)
Credit rating for module 30
School School of Computing and Digital Media
Total study hours 300
 
90 hours Scheduled learning & teaching activities
139 hours Guided independent study
71 hours Assessment Preparation / Delivery
Assessment components
Type Weighting Qualifying mark Description
Coursework 25%   Distributed system and Report
Coursework 25%   Cybersecurity system and Report
Practical Examination 10%   Demonstration of Workshop Tasks and Homework
Unseen Examination 20%   Unseen Exam (1.5 hours)
Unseen Examination 20%   Unseen Exam (1.5 hours)
Running in 2018/19
Period Campus Day Time Module Leader
Year North Monday Morning

Module summary

This module equips students with professional level programming skills required for developing distributed software systems to solve real-world problems with guaranteed security. Students are taught alternative conceptual paradigms, design patterns, frameworks and programming techniques for developing distributed systems for local networks, Internet or the Web and securing data and applications. The typical phases of software development life cycle are covered using industry standard languages and tools, for example modelling (UML, XML), design, implementation and testing using popular IDEs, thereby improving students’ employment prospects. Successful completion of this module will give students an opportunity to gain professional Java certification or similar and essential modern requirements of risk assessment prior to embedding appropriate cybersecurity.

Prior learning requirements

Programming

Syllabus

1. Distributed systems Overview. Principles, classification and examples. Software architectures and protocols. LO1,LO2,LO7
2. Enterprise systems. Tiers, containers and components. Principles, software technologies and tools. LO5,LO6
3. Processes and inter-process communication. Sockets, Connections and Serialization. LO3,LO4,LO5
4. Concurrency and parallelism. Threads, multithreading and synchronization. Transactions and Transaction Processing. LO3,LO4,LO5
5. Client/Server Systems. Local and remote objects. Naming, proxies and remote method invocation. LO3,LO4,LO5
6. Asynchronous Systems. Communication using messaging and PUSH Architecture. Technologies for asynchronous systems, i.e. AJAX, JSON, etc. LO3,LO4,LO5
7. Service-oriented Architectures and Web Services. Data Services, Application Services and Legacy Systems Integration. LO3,LO4,LO5
8. Peer-to-peer Systems. Unicast and Broadcast Models. Local Resources, Remote Services and Service Discovery. LO3,LO4,LO5
9. Security and risk assessment in Distributed Systems. Information security, network security, operation security and cybersecurity. Security and Privacy LO1,LO2,LO7
10. Trustworthy Software. Identification, Authentication, Access Control and Data Encryption. LO5,LO6
11. Network security. Security toolbox. Traffic Monitoring. Malicious attacks and Penetration Testing LO3,LO4,LO5
12. Web Security. Web browser attacks, Web server attacks and Web user attacks LO3,LO4,LO5
13. Security on the Cloud. Cloud Identity Management. Cloud Security Tools and Techniques. Securing IaaS LO3,LO4,LO5

Balance of independent study and scheduled teaching activity

The Learning and Teaching Strategy in this module combines

• Lectures for defining concepts, describing methods and discussing alternative choices
• Workshops for demonstrating software tools, configuring working environments, building solutions, discussing alternatives and acquiring hands-on experience
• Individual coursework for reporting technological research and technical solutions, comparing design alternatives and personal reflection
• Blended learning through the use of Virtual Learning Environments (VLE) for setting problem scenarios, providing prepared solutions, submitting assessment materials and obtaining feedback
• Public demonstration of software solutions for evaluation and reflection of individual practice during workshops in Computer Lab.

Students will be expected and encouraged to produce reflective commentaries and an action plan for personal development on the learning activities and tasks that they carry out to complete their work, e.g. in the form of an assessed section of their coursework report/essay.

Learning outcomes

On successful completion of this module the student should be able to:

LO1: Demonstrate understanding of different distributed paradigms, their limitations and applicability for developing standalone, client/server and peer-to-peer applications, software components and services for the Internet and the Web
LO2: Design software architectures for distributed systems based on functional specifications, analytical models and design patterns
LO3: Interpret, transform and implement design specifications in pseudo-code, UML and XML into working code using suitable industrial tools, standard APIs, third-party software libraries and products
LO4: Integrate existing software components, products and services for implementing distributed, Internet and Web-based systems using suitable frameworks, development tools and software APIs
LO5: Evaluate alternatives for implementation of distributed, Internet and Web-based systems, justify design decisions, estimate trade-offs  and critically evaluate their impact at different stages of the software lifecycle
LO6: Apply for level one professional certification for programming.
    LO7: Undertaking risk assessment and apply appropriate security

Assessment strategy

The assessment strategy in the module is based on combining regular assessment of the progression through demonstrating of the prepared solution of workshop tasks, periodic assessment of the systematic progress through individual coursework dedicated to solving relatively large practical problems, intermediate diagnostic test for evaluating the progress towards the end goal, and one final two-hours exam for assessing the overall achievements in the end of the Academic Year.

• The coursework will involve designing, implementing, testing and documenting of distributed, Internet and Web-based applications with control of the security, and is aimed at developing students’ skills, professionalism and problem solving strategies
• The workshop materials, activities and feedback opportunities will be dedicated to supporting student learning and provide working examples of typical distributed, Internet and Web-based applications and security solutions. Students will have the opportunity to demonstrate their work on the workshop exercises and receive regular feedback to enhance their learning
• Students’ overall understanding of the subject, analytical and problem-solving skills will be assessed through the end of year final exam
• A special optional diagnostic test in the end of the first semester will be used to indicate their preparation for professional certification

Bibliography

Textbooks:

Core Text:
• Coulouris, G., Dollimore, J., and Kindberg, T., Distributed Systems: Concepts and Design, 5th or later edition, Pearson; 2012, ISBN: 9780133001372.
• Anderson, R., Security Engineering: A Guide to Building Dependable Distributed Systems, 2nd or later edition, Wiley, 2008; ISBN: 0470068523.

Other Texts:
• Graba, J., An Introduction to Network Programming with Java, second or later edition, Springer, 2006; ISBN 1846283809
• Pfleeger, C., Pfleeger, S., and Margulies, J. Security in Computing, fifth or later edition, Prentice Hall, 2015; ISBN: 0134085043.

Journals:
• IEEE Transactions on Parallel and Distributed Systems (TPDS), Publisher: IEEE Computer Society, ISSN: 1045-9219
Websites:
• Security Engineering by Ross Anderson — The Book – Full-text http://www.cl.cam.ac.uk/~rja14/book.html
• IEEE Distributed Systems Online, Publisher: IEEE Computer Society, ISSN: 1541-4922
http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=8968

Electronic Databases (available from the University Library)
• ACM Digital Library
• IEEE Xplore/IET Digital Library