MCT620 Distributed Systems Module Handbook Master of Science in Software Engineering & Database Technologies (MScSED) Diploma in Software Engineering MCT620 Module Handbook Version 2 Table of Contents 1 Module Details 1.1 1.2 1.3 1.4 1.5 1.6 2 2 Module Description Prerequisites Module Objectives Required Text Module Assignments Module Grading 2 2 3 3 3 4 Module Outline 5 1 MCT620 Module Handbook Version 2 1 Module Details 1.1 Module Description This Distributed Systems module brings together many of the different strands of study in the MSc in Software Engineering & Database Technologies programme: database applications, software engineering, middleware, architecture, and Java programming. It challenges students to combine these into a powerful technical platform for complex modern problem solving. The course aims to balance a practical understanding of various programming concepts with a higher-level architectural facility for engineering Distributed Systems. Right from the start, this balance should be obvious: in Week 1, students will deploy a simple Web application to a cloud platform. They will follow with a critical analysis of that cloud platform thereby building their practical, critical and analytical muscle for designing and building these systems. Students will become very familiar with the common challenges of building Distributed Systems - and over the weeks they will build an evaluative framework which they can apply to nearly any Distributed Systems scenario. This framework will be built on principles that have stood the test of time so it is unlikely to change much as new approaches and technologies evolve. This foundation framework should see students through a career and not just through the 'next big thing'. Over the following weeks students will spend time on a number of important evolutions in Distributed Systems including relational & non-relational database systems, Web Services and Java EE. They will also get an appreciation of legacy systems like CORBA, RMI and RPC, right down to Sockets. 1.2 Prerequisites The course will involve a good deal of network-based, distributed programming using the Java programming language and its related APIs and frameworks. It is essential, therefore, that course participants have a good working knowledge of Java and be familiar with good software design principles (i.e. completion of module MCT619 Object Oriented Programming, or equivalent). Some prior knowledge of Networks and Data Communications would also be useful, but is not essential. 2 MCT620 Module Handbook Version 2 1.3 Module Objectives The module aims to: • Provide students with a clear understanding of the evolution of Distributed Systems • Introduce students to the newest distributed paradigms e.g. Cloud Computing and Massively Parallel Process AKA ‘Big Data’ and Web Services • Bring together programming frameworks management in a cohesive, applied approach • Give students a theoretical framework which they can use to evaluate any Distributed System • Apply Distributed Systems theory to practical scenarios and database 1.4 Recommended Text There is no required textbook for this module. Students will be directed to online open resources to support their work in the module. The following textbooks are supplementary textbooks which students may find helpful: Puder, A., Römer, K., & Pilhofer, F. (2006). Distributed systems architecture: a middleware approach. Elsevier. Kerzner, M., & Maniyam, S. (2013). Hadoop Illuminated. 1.5 Module Assignments Details of module assignments and a sample final examination are detailed fully in the MCT620 Facilitator Guide. Student assessment will take the form of: • Weekly Virtual Lab activities • Weekly assignments • Participation in the weekly forum discussions • A final exam 3 MCT620 Module Handbook 1.6 Module Grading Assessment Forum participation vLabs Weekly assignments Final exam TOTAL Weight 20% 30% 30% 20% 100% 4 Workshop 1 to 8 1, 2, 3, 4, 6 1, 2, 3, 5, 6, 7 8 Version 2 MCT620 Module Handbook Version 2 2 Module Outline Workshop 1. Getting started in the Cloud, some Definitions and some History 2. Distributed Systems Frameworks – Old and New Sections • Amazon Web Services • Definitions and challenges in the study of Distributed Systems • Evolution of Distributed Systems • • Sockets From RPC to CORBA Assessment Summary • Deploy a simple application to AWS • Analyse network traffic using Wireshark • • 3. Persistence: from the RDBMS to NoSQL • • Newer web frameworks The evolving role of the database • • Deploy a simple application (using Java Socket API or CORBA) Analyse scalability Create database/persistenc e layer on AWS server Write a PHP web application to interact with database 4. Web Services & SOA • Web services and heterogeneity • Create a Web Services version of app 5. Cloud Computing • • Cloud computing Delivery models • Use AWS to improve last week’s app Implement new AWS feature and assess its efficacy • 6. Massively Parallel Processing and Hadoop • • Hadoop Possibilities of big data • Implement application on locally installed Hadoop cluster 7. Applying technologies and concepts of • Challenges of Distributed • Research activity: Future of cloud 5 MCT620 Module Handbook Distributed Systems to real problems 8. Review and Final Exam Systems • 6 Review computing • Final Exam Version 2
© Copyright 2024