Checking date: 03/05/2019


Course: 2019/2020

Information Systems
(15397)
Study: Bachelor in Telecommunication Technologies Engineering (252)


Coordinating teacher: DIAZ SANCHEZ, DANIEL

Department assigned to the subject: Department of Telematic Engineering

Type: Electives
ECTS Credits: 6.0 ECTS

Course:
Semester:




Students are expected to have completed
System architectures Telematic Applications
Competences and skills that will be acquired and learning results. Further information on this link
The goal of this course is to enable the student to acquire knowledge relative to the fundamental concepts on modern distributed systems and enable him/her to use modern distributed systems that enable popular services used by millions of users all over the world, such as Dropbox, Grooveshark, Youtube, Google Search Engine The philosophy of this course is to enable the practical learning of the distributed computing through the usage of interfaces from widely known and used services. In order to achieve this goal, the student should acquire a series of knowledges and capabilities. Knowledge To achieve this goal the student must acquire the following knowledge: - To know the structure of a modern distributed systems, its internal characteristics and interfaces with other systems, such as mobile and desktop applications or others. - To know the basic communication mechanisms of distributed systems, using different protocols used nowadays, such as HTTP (REST interfaces) or Web Services - To know modern load balancing systems, from Enterprise Service Bus to the ones used by Map Reduce (used currently by Google, Amazon and others). - To know real-world scenarios such as load balancing with Varnish and Symfony for web applications with high number of visits (DailyMotion, Yahoo! Bookmarks); cloud architectures for applications development and/or storing. - To know the advantages and disadvantages of these systems and when to develop a specific application in a distributed way (resource scaling, data center economics). To know data sets that need distributed processing. Specific capabilities The specific capabilities that will be acquired by the student upon successful completion of the course will be: - To use basic communication mechanisms in distributed systems. - To know centralised and distributed applications through demonstrative labs. - To model and deploy a distributed system and to use existing applications and clouds. General capabilities The general capabilities acquired by the students will be: - Ability to use and apply knowledge of telecommunications technologies and engineering. The students will work on this capability in the lab sessions and in the exercise sessions. (PO a) - Ability to use the techniques and modern engineering tools necessary for the professional practice (PO k) - Ability to effectively communicate information in speech, presentation and in writing in english and spanish, through the development of the proposed activities in the subject (exercises, projects about new trend technologies, etc) (PO g) - Recognition of the need of a life-long learning and the ability to obtain and apply the required and suitable information through the use of technical literature related to the subject field in spanish and in english (PO i) - Knowledge of contemporary issues and trends in the field of study (PO j)
Description of contents: programme
The contents of the programme are the following: 1. Introduction to distributed computing 1.1. From RPC/Corba to Main Frame, Grid and Cloud Computing 1.2 Current state of the technologies 1.2.a Legacy systems and evolution 1.2.b Distributed systems 1.2.c Cloud Computing 2. Distributed Systems and Cloud Computing 2.1 What is it? 2.2. Architectures (IaaS, PaaS, SaaS) 2.2.a IaaS - Amazon EC2 2.2.b SaaS - App Engine/Azure 2.3 Distributed storing 2.3.a P2P vs Key-value store (HDFS, REDIS, Mongo) 2.3.b Security aspects in Cloud 2.4 Use cases 2.4.a Do I really need Cloud Computing for my project? 3. Communication protocols for distributed systems 3.1 Legacy protocols 3.2 Current protocols 3.2.a REST / HTTP 3.2.b Web Services 3.2.c Messaging 3.3 Data representation 3.3.a Json vs XML - AJAX 3.4 Massive-use Web systems 3.4.a Load balancing 3.5 Mobile applications and REST systems 3.5.a Why to use REST/HTTP? 3.5.b Usage of REST/HTTP in Android 4. Mapreduce 4.1 Big Table from Google and Hadoop 4.2 Introduction to Hadoop 4.2.a Architecture 4.2.b Design 4.2.c Data layer (HDFS) 4.2.d Map Reduce 4.3 Applications over Hadoop 4.3.a WordCount 4.3.b Video processing
Learning activities and methodology
The activities used to underpin the competences and the skills in the course are (with reference to the program objectives): - During the first part of the course, the students should complete a set of guided labs, where they will modify code provided by the teaching staff in order to gradually acquire the needed skills to pass the course. These guided labs will be closely related with a real case study, presented at the beginning of the course (PO: a). - During a six-week period, students will be divided into pairs, and they are expected to complete a project entailing the design and implementation of a Cloud application (or an application that access a Cloud) that should use one or more of the technologies and paradigms covered during the course (PO a). - Students are requested in several activites throughout the course to search for auxiliary documents to support the information studied in a topic. In their final report, they must acknowledge the information sources they used (PO: i). - Use of the following tools: Virtual machines, IDEs, and version control in multiple laboratory sessions (PO: k). - Exercises covering the topics of the course (PO a) During these activities the teaching staff reviews the student work in the class, supervises the lab sessions, answers questions in course forum, maintains office hours and calls for plenary office hours upon demand.
Assessment System
  • % end-of-term-examination 0
  • % of continuous assessment (assigments, laboratory, practicals...) 100
Basic Bibliography
  • George F. Coulouris. Distributed systems : concepts and design. Addison-Wesley. 2005

The course syllabus and the academic weekly planning may change due academic events or other reasons.


More information: http://pervasive.it.uc3m.es/asignatura/computacionDistribuida