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.
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.
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.
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)