Cloud Computing

Specialization complementary (Computer Networks and Distributed Systems)
This subject has not requirements
Cloud computing is a service model for large-scale distributed computing based on a converged infrastructure and a set of common services over which applications can be deployed and run over the network. In this course we will provide a background on the principles and the state-of-the-art of large-scale distributed computing, and the means to understand and apply the model and services of cloud computing.
In terms of principles, the course looks at how scale affects systems properties, issues (such as virtualization, availability, locality, performance and adaptation), system models (game-theoretic, economic, evolutionary, control, complexity), architectural models (multi-tier, cluster, cloud), environment and application requirements (such as fault tolerance, content distribution). The course reviews the state of the art in resource management of Cloud environments (composed of different types of platforms and organization) to support current applications and their requirements.

In the other side, Big Data has become a hot topic in the field of large-scale distributed computing in recent years, impossible to separate it from Cloud Computing. Particularly, the exponential and fast growth of very different types of data has quickly raised concerns about how to store, manage, process and analyze that data. The second part of the course will will start with a brief review of Big Data technologies that will shape our near future as well as attempts to visualize in which direction this technology will take us. The goal is to help students become part of this profound transformation that is causing big data and encourage the desire to want to delve further into this exciting world of technology and become actively involved.


Person in charge

  • Jordi Torres Viñals ( )
  • Leandro Navarro Moldes ( )

Weekly hours

Guided learning
Autonomous learning


Technical Competences of each Specialization

Computer networks and distributed systems

  • CEE2.1 - Capability to understand models, problems and algorithms related to distributed systems, and to design and evaluate algorithms and systems that process the distribution problems and provide distributed services.
  • CEE2.3 - Capability to understand models, problems and mathematical tools to analyze, design and evaluate computer networks and distributed systems.

High performance computing

  • CEE4.3 - Capability to analyze, evaluate, design and manage system software in supercomputing environments.

Generic Technical Competences


  • CG4 - Capacity for general and technical management of research, development and innovation projects, in companies and technology centers in the field of Informatics Engineering.

Transversal Competences

Entrepreneurship and innovation

  • CTR1 - Capacity for knowing and understanding a business organization and the science that rules its activity, capability to understand the labour rules and the relationships between planning, industrial and commercial strategies, quality and profit. Capacity for developping creativity, entrepreneurship and innovation trend.


  • CB7 - Ability to integrate knowledges and handle the complexity of making judgments based on information which, being incomplete or limited, includes considerations on social and ethical responsibilities linked to the application of their knowledge and judgments.


  1. The goal of this course is to introduce new execution environments needed to manage the computing resources and simplify the development and integration of the different types of applications and services at today Internet-scale systems.
    Related competences:


  1. PART I: Cloud Computing
    o Fundamental concepts: The effect of scale in system properties.
    o Issues in large-scale systems: virtualization, service orientation and composition, availability, locality, performance and adaptation.
    o Models for large-scale systems: system models for analysis, architectural models and service/deployment models.
    o Scaling techniques: basic techniques, scalable computing techniques for architectural models.
    o Middleware and Applications: computing, storage, web, content distribution, Internet-scale systems or services.
    o Environment and applications requirements.
  2. PART II: Manage, process and analyze data in the Cloud (Big Data)
    o Characteristics of Big Data
    o Big Data Challenges
    o Processing Big Data
    o Managing Big Data
    o Analyzing Big Data (Data Modelling & Prediction)
    o Real Big Data application Case Study
  3. PART III: Guest Lectures
    Invited lectures from the industry and academia will illustrate and describe specific aspects. The content will vary depending on visits and availability of invited speakers.
  4. PART IV: Experimental part
    Development of a prototype application using Cloud service offerings (such as AWS, Google AppEngine, Open Stack, OpenNebula.

Teaching methodology

Theory classes, Reading and discussion of research papers, Presentation of topics (and papers) by students, Laboratory activities and Guest lectures

Evaluation methodology

The evaluation of the course will be based on the participation of students in class, Class attendance, reading and presenting reports and papers and an experimental project work on specific topics.
The final grade for the course is the weighted average of the grades for the following components:
· Lab sessions: 25%
· Paper Readings/Presentations (and homework): 25%
· Research Project: 25%
· Participation: 25% (Class participation 5% + Class attendance: 20%)