Distributed Network Systems

You are here

Credits
6
Types
Specialization complementary (Information Technologies)
Requirements
  • Precorequisite: SO
  • Precorequisite: XC
Department
AC
This course provides an overview of the fundamental principles behind distributed systems. Covered topics include distributed programming, distributed interprocess communication and coordination, distributed transactions, replication, distributed file systems, and distributed applications such as the web and peer-to-peer systems. An introduction to advanced topics such as Cloud Computing, Grid Computing, and Mobile Computing will be also provided.

Teachers

Person in charge

  • Jordi Guitart Fernandez ( )

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6

Competences

Technical Competences

Common technical competencies

  • CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
    • CT5.6 - To demonstrate knowledge and capacity to apply the fundamental principles and basic techniques of parallel, concurrent, distributed and real-time programming.
  • CT6 - To demonstrate knowledge and comprehension about the internal operation of a computer and about the operation of communications between computers.
    • CT6.4 - To demonstrate knowledge and capacity to apply the characteristics, functionalities and structure of the Distributed Systems and Computer and Internet Networks guaranteeing its use and management, as well as the design and implementation of application based on them.

Technical Competences of each Specialization

Information technology specialization

  • CTI1 - To define, plan and manage the installation of the ICT infrastructure of the organization.
    • CTI1.3 - To select, deploy, integrate and manage information system which satisfy the organization needs with the identified cost and quality criteria.
  • CTI3 - To design solutions which integrate hardware, software and communication technologies (and capacity to develop specific solutions of systems software) for distributed systems and ubiquitous computation devices.
    • CTI3.1 - To conceive systems, applications and services based on network technologies, taking into account Internet, web, electronic commerce, multimedia, interactive services and ubiquitous computation.
    • CTI3.2 - To implement and manage ubiquitous systems (mobile computing systems).
    • CTI3.4 - To design communications software.

Transversal Competences

Third language

  • G3 [Avaluable] - To know the English language in a correct oral and written level, and accordingly to the needs of the graduates in Informatics Engineering. Capacity to work in a multidisciplinary group and in a multi-language environment and to communicate, orally and in a written way, knowledge, procedures, results and ideas related to the technical informatics engineer profession.
    • G3.1 - To understand and use effectively handbooks, products specifications and other technical information written in English.

Objectives

  1. Understand the definition of distributed system and its possible applications, as well as challenges to be faced to design and implement it.
    Related competences: CTI3.1, CTI3.4, CT6.4, CTI1.3,
    Subcompetences:
    • Know the possible applications of a distributed system
    • Put examples of distributed systems
    • Understand the challenges to design and implement a distributed system: heterogeneity, lack of global view, security, coordination, asynchrony, openness, transparency, fault tolerance, scalability
    • Understand the definition of distributed system
  2. Understand the basic system architectures in distributed systems.
    Related competences: CTI3.1, CTI3.4, CT6.4, CT5.6,
    Subcompetences:
    • Know the basic system architectures in distributed systems: centralized (client-server), decentralized (peer-to-peer), hybrid
  3. Understand the basic mechanisms of communication in a distributed system: invocation of remote operations, message-based communication, event-based communication and channel-based communication (streams), and write distributed applications that communicate by sending messages.
    Related competences: CTI3.1, CTI3.4, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Know the basic communication paradigms in distributed systems: remote procedure call, message passing, message queuing, group communication, publish/subscribe, shared data spaces, shared-memory, mobile code, stream-oriented
    • Write distributed applications that communicate by sending messages
    • Know the communication mechanism based on streams: transmission modes, quality of service
    • Know the event-based communication mechanism: publish/subscribe systems
    • Know the different types of communication in a distributed system: direct vs. indirect (space and time uncoupling), persistent vs. transient, synchronous vs. asynchronous, discrete vs. continuous
    • Know the communication mechanism based on messages: transient (Sockets) vs. persistent (MOM)
    • Know the communication mechanism by invoking remote procedures (RPC): basic operation, parameter passing, extensions of the basic model, failure handling, remote method invocation (RMI)
  4. Understand the problem of time and events ordering in a distributed system and explain and implement the mechanisms of logic clocks to attack this problem and algorithms to synchronize physical clocks in a distributed system.
    Related competences: CTI3.1, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Understand the problem of time and events ordering in a distributed system
    • Explain and implement algorithms to synchronize physical clocks in a distributed system: Cristian (NTP), Berkeley
    • Explain and implement logical clocks mechanisms to attack this problem: happened-before relation, Lamport logical clocks (scalar, vector)
  5. Describe, compare and implement algorithms for the coordination of processes in a distributed system, including the coordination necessary to ensure mutual exclusion, leader election, multicast group communication and consensus.
    Related competences: CTI3.1, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Describe, compare, and implement algorithms for the coordination of processes in a distributed system to ensure mutual exclusion: permission-based algorithms (centralized, Lin's, Maekawa's, Ricart & Agrawala's), token-based algorithms (token ring)
    • Describe, compare, and implement algorithms for the coordination of processes in a distributed system for multicast group communication: basic reliable multicast, scalable reliable multicast, ordered multicast (FIFO, causal, total), atomic multicast
    • Describe, compare, and implement algorithms for the coordination of processes in a distributed system for the election of leader: Bully, Ring
  6. Understand the application of replication in a distributed system, as well as the consistency problems introduced, and describe the corresponding consistency models and their implementation.
    Related competences: CTI3.1, CT6.4, CTI1.3, CTI3.2, CT5.6,
    Subcompetences:
    • Describe specific implementations of consistency models: primary-based protocols (remote-write, local-write) and replicated-write protocols (active replication, quorum-based protocols)
    • Understand the application of replication in a distributed system, in addition to the consistency problems introduced
    • Describe the data-centric relaxed consistency models: usage of synchronization variables
    • Describe the client-centric consistency models: eventual, monotonic-read, monotonic-write, read-your-writes, writes follow-reads
    • Know the implementation details of consistency models in relation to the replica placement (permanent, initiated by the server, initiated by the client) and the propagation of updates (push-pull protocols)
    • Describe the data-centric strong consistency models: strict, sequential, causal, FIFO
  7. Understand and compare basic features of name resolution services for flat, structured and attribute-based names, and implement and evaluate one of these systems.
    Related competences: CTI3.1, CT6.4, CTI1.3, CTI3.2,
    Subcompetences:
    • Implement and evaluate a simple DNS service
    • Know and compare the basic features of name resolution services for flat names: broadcasting, forwarding pointers, home-based solutions, DHTs
    • Know and compare the basic characteristics of name resolution services for structured names: name spaces, iterative resolution, recursive resolution, DNS
    • Know and compare the basic features of name resolution services for attribute-based names: directory services (LDAP)
  8. Understand and compare the basic characteristics of distributed filesystems (e.g. NFS).
    Related competences: CTI3.1, CT6.4, CTI1.3, CTI3.2,
    Subcompetences:
    • Understand the semantics of file sharing: UNIX semantics, session semantics, immutable files, transactional semantics
    • Understand and compare the basic features of the NFS distributed file system
    • Understand and compare the basic characteristics of the distributed filesystem Coda
    • Know the architectures of distributed file systems: remote access model, upload / download model, the basic idea of ​​clustered architectures (stripping + replication)
  9. Understand and compare the basic characteristics of Web-based distributed systems: web servers, application servers, Web Services, Content Distribution Networks (CDN), and implement and evaluate one of these systems.
    Related competences: CTI3.1, CTI3.4, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Implement and evaluate a simple web server
    • Know the synchronization mechanisms in distributed Web-based systems
    • Know the communication protocols in distributed Web-based systems: HTTP, SOAP, WSDL
    • Know the mechanisms of replication and caching in distributed Web-based systems: Proxies, Content Distribution Networks (CDN): Akamai, redirection schemes (URL Rewriting, DNS redirection)
    • Know the architectures of distributed Web-based systems: client/server, servlets, server clusters, Web Services
    • Know the name services in distributed Web-based systems: URL, DNS, UDDI
  10. Understand the Peer-to-Peer (P2P) computing model, compare the characteristics of non-structured P2P systems and structured systems based on DHTs, and implement and evaluate one of these systems.
    Related competences: CTI3.1, CT6.4, CTI1.3, CT5.6,
    Subcompetences:
    • Understand the Peer-to-Peer (P2P) computing model, its advantages, and its applications
    • Compare the characteristics of non-structured centralized P2P systems: BitTorrent
    • Compare the characteristics of structured P2P systems based on DHTs: Chord: organization of the ring, inserting items, searching items with finger tables, inserting nodes
    • Implement and evaluate a structured P2P system
    • Compare the characteristics of non-structured hierarchical P2P systems: FastTrack
    • Compare the characteristics of non-structured decentralized P2P systems with flooding-based search: Gnutella
  11. Know the most important distributed computing paradigms (volunteer computing, Grid and Cloud) and their characteristics.
    Related competences: CTI3.1, CT6.4, CTI1.3,
    Subcompetences:
    • Know the Cloud paradigm for distributed computing, its characteristics, and its applications: Utility Computing, type of Clouds (public, private, community, hybrid), differences with Grid computing, Cloud Services (IaaS, PAAS, SaaS), base technologies for implementation, Cloud infrastructure (datacenters), obstacles to the consolidation of the Cloud
    • Know the Grid paradigm for distributed computing, its characteristics and its applications: Virtual Organizations (VO), OGSA architecture, difference from the cluster and distributed computing
    • Know the volunteeer distributed computing paradigm: BOINC
  12. Know the paradigms of Mobile and Ubiquitous Computing and their problems.
    Related competences: CTI3.1, CT6.4, CTI3.2,
    Subcompetences:
    • Know the paradigms of Mobile and Ubiquitous Computing and their problems: volatility, association, interoperability, sensors and context-awareness, adaptation
  13. Understand articles, assignments, and any source of technical information written in English
    Related competences: G3.1,

Contents

  1. Concepts underlying distributed systems
    Definition of a distributed system. Potential applications of a distributed system. Examples of distributed systems. Challenges to design and implement a distributed system: heterogeneity, lack of global view, security, coordination, asynchrony, openness transparency, fault tolerance, scalability. Basic system architectures in distributed systems: centralized (client-server), decentralized (peer-to-peer), hybrid
  2. Interprocess communication
    Types of communication in a distributed system: direct vs. indirect (space and time uncoupling), persistent vs. transient, synchronous vs. asynchronous, discrete vs. continuous. Basic communication paradigms in distributed systems: remote procedure call, message passing, message queuing, group communication, publish/subscribe, shared data spaces, shared-memory, mobile code, stream-oriented. Invocation of remote procedures (RPC): basic operation, parameter passing, extensions of the basic model, failure handling, remote method invocation (RMI). Message-oriented communication based on : transient (Sockets) vs. persistent (MOM). Event-based communication: publish/subscribe systems. Stream-based communication: transmission modes, quality of service
  3. Time and order
    Time and events ordering in a distributed system. Logical clocks: happened-before relation, Lamport logical clocks (scalar, vector). Algorithms to synchronize physical clocks in a distributed system: Cristian (NTP), Berkeley.
  4. Coordination and agreement
    Coordination of processes in a distributed system to ensure mutual exclusion: permission-based algorithms (centralized, Lin's, Maekawa's, Ricart & Agrawala's), token-based algorithms (token ring). Coordination of processes in a distributed system for the election of leader: Bully, Ring. Coordination of processes in a distributed system for multicast group communication: basic reliable multicast, scalable reliable multicast, ordered multicast (FIFO, causal, total), atomic multicast.
  5. Consistency and replication
    Replication and consistency in a distributed system. Data-centered strong consistency models: strict, sequential, causal, FIFO. Data-centric relaxed consistency models: usage of synchronization variables. Client-centric consistency models: eventual, monotonic-read, monotonic-write, read-your-writes, writes follow-reads. Replica placement (permanent, initiated by the server, initiated by the client) and propagation of updates (push-pull protocols). Implementations of consistency models: primary-based protocols (remote-write, local-write) and replicated-write protocols (active replication, quorum-based protocols)
  6. Naming systems
    Name resolution services for flat names: broadcasting, forwarding pointers, home-based solutions, DHTs. Name resolution services for structured names: name spaces, iterative resolution, recursive resolution, DNS. Name resolution services for attribute-based names: directory services (LDAP)
  7. Distributed file systems
    Architectures of distributed file systems: remote access model, upload / download model, the basic idea of ​​clustered architectures (stripping + replication). Semantics of file sharing: UNIX semantics, session semantics, immutable files, transactional semantics. Basic features of the NFS distributed file system. Basic features of the Coda distributed file system
  8. Distributed Web-based systems
    Architectures of distributed Web-based systems: client/server, servlets, server clusters, Web Services. Communication protocols in distributed Web-based systems: HTTP, SOAP, WSDL. Name services in distributed Web-based systems: URL, DNS, UDDI. Synchronization mechanisms in distributed Web-based systems. Replication and caching in distributed Web-based systems: Proxies, Content Distribution Networks (CDN): Akamai, redirection schemes (URL Rewriting, DNS redirection)
  9. Peer-to-Peer (P2P) systems
    Peer-to-Peer (P2P) computing model, its advantages, and its applications. Non-structured centralized P2P systems: BitTorrent. Non-structured decentralized P2P systems with flooding-based search: Gnutella. Non-structured hierarchical P2P systems: FastTrack. Structured P2P systems based on DHTs: Chord: organization of the ring, inserting items, searching items with finger tables, inserting nodes; Kademlia: organization of the tree and node state, node lookup and join, finding and storing items.
  10. Distributed computing systems
    Volunteeer distributed computing paradigm: BOINC. Grid paradigm for distributed computing, its characteristics and its applications: Virtual Organizations (VO), OGSA architecture, difference from the cluster and distributed computing. Cloud paradigm for distributed computing, its characteristics, and its applications: Utility Computing, type of Clouds (public, private, community, hybrid), differences with Grid computing, Cloud Services (IaaS, PAAS, SaaS), base technologies for implementation, Cloud infrastructure (datacenters), obstacles to the consolidation of the Cloud
  11. Mobile and ubiquitous systems
    Mobile and ubiquitous systems: volatility, association, interoperability, sensors and context-awareness, adaptation

Activities

Activity Evaluation act


Developing the lesson "Concepts underlying distributed systems"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Definition of a distributed system. Potential applications of a distributed system. Examples of distributed systems. Challenges to design and implement a distributed system: heterogeneity, lack of global view, concurrency, lack of a single point of control, security, asynchrony, openness transparency, fault tolerance, scalability. Basic architectural styles in distributed systems: layered, object-based, data-centered, event-based, shared data spaces. Basic system architectures in distributed systems: centralized (client-server), decentralized (peer-to-peer), hybrid
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 1 2
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Seminar assignment #1

Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
  • Laboratory: Implementation and analysis of the requested mechanism.
Objectives: 1 2 3 13
Contents:
Theory
0h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
0h

Reading assignment #1

Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report
Objectives: 1 2 3 13
Week: 2
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Developing the lesson "Interprocess communication"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Types of communication in a distributed system: persistent vs. transient, synchronous vs. asynchronous. Invocation of remote procedures (RPC): basic operation, parameter passing, extensions of the basic model, failure handling, remote method invocation (RMI). Communication based on messages: transient (Sockets) vs. persistent (MOM). Communication based on streams: transmission modes, quality of service
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 3
Contents:
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Seminar assignment #2

Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
  • Laboratory: Implementation and analysis of the requested mechanism.
Objectives: 4 5 13
Contents:
Theory
0h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
0h

Report about seminari assignment #1

Making of a report of the seminar explaining the work done and the conclusions drawn
Objectives: 1 2 3 13
Week: 3
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Developing the lesson "Time and order"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Time and events ordering in a distributed system. Logical clocks: happened-before relation, Lamport logical clocks (scalar, vector). Algorithms to synchronize physical clocks in a distributed system: Cristian (NTP), Berkeley.
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 4
Contents:
Theory
1.5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
1.5h

Reading assignment #2

Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report
Objectives: 4 13
Week: 4
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Developing the lesson "Coordination and agreement"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Coordination of processes in a distributed system to ensure mutual exclusion: permission-based algorithms (centralized, decentralized using a P2P system, Ricart and Agrawal's distributed system using totally ordered multicast), token-based algorithms (token ring). Coordination of processes in a distributed system for the election of leader: Bully, Ring. Coordination of processes in a distributed system for multicast group communication: basic reliable multicast, scalable reliable multicast, ordered multicast (FIFO, causal, total), atomic multicast.
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 5
Contents:
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Seminar assignment #3

Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
  • Laboratory: Implementation and analysis of the requested mechanism.
Objectives: 5 6 13
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
0h

Report about seminar assignment #2

Making of a report of the seminar explaining the work done and the conclusions drawn
Objectives: 4 5 13
Week: 5
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Reading assignment #3

Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report
Objectives: 5 6 13
Week: 6
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Developing the lesson "Consistency and replication"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Replication and consistency in a distributed system. Data-centered strong consistency models: strict, sequential, causal, FIFO. Data-centric relaxed consistency models: usage of synchronization variables. Client-centric consistency models: eventual, monotonic-read, monotonic-write, read-your-writes, writes follow-reads. Replica placement (permanent, initiated by the server, initiated by the client) and propagation of updates (push-pull protocols). Implementations of consistency models: primary-based protocols (remote-write, local-write) and replicated-write protocols (active replication, quorum-based protocols)
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 6
Contents:
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Seminar assignment #4

Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
  • Laboratory: Implementation and analysis of the requested mechanism.
Objectives: 5 6 13
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
0h

Report about seminar assignment #3

Making of a report of the seminar explaining the work done and the conclusions drawn
Objectives: 5 6 13
Week: 8
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Reading assignment #4

Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report
Objectives: 7 8 9 13
Week: 8
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Developing the lesson "Naming systems"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Name resolution services for flat names: broadcasting, forwarding pointers, home-based solutions, DHTs, hierarchical solutions. Name resolution services for structured names: name spaces, iterative resolution, recursive resolution, DNS. Name resolution services for attribute-based names: directory services (LDAP)
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 7
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Partial exam

Assimilation of the concepts of the course and conduct of the examination
Objectives: 1 2 3 4 5 6 7
Week: 10
Type: theory exam
Theory
1.5h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
7.5h

Developing the lesson "Distributed file systems"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Architectures of distributed file systems: remote access model, upload / download model, the basic idea of ​​clustered architectures (stripping + replication). Semantics of file sharing: UNIX semantics, session semantics, immutable files, transactional semantics. Basic features of the NFS distributed file system. Basic features of the CIFS/SMB distributed file system
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 8
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Seminar assignment #5

Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
  • Laboratory: Implementation and analysis of the requested mechanism.
Objectives: 7 9 13
Contents:
Theory
0h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
0h

Report about seminar assignment #4

Making of a report of the seminar explaining the work done and the conclusions drawn
Objectives: 5 6 13
Week: 11
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Reading assignment #5

Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report
Objectives: 10 13
Week: 11
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Developing the lesson "Distributed Web-based systems"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Architectures of distributed Web-based systems: client/server, servlets, server clusters, Web Services. Communication protocols in distributed Web-based systems: HTTP, SOAP, WSDL. Name services in distributed Web-based systems: URN, URL, DNS, UDDI. Synchronization mechanisms in distributed Web-based systems: WebDAV. Replication and caching in distributed Web-based systems: Proxies, Content Distribution Networks (CDN): Akamai, redirection schemes (URL Rewriting, DNS redirection)
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 9
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Developing the lesson "Peer-to-Peer (P2P) systems"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Peer-to-Peer (P2P) computing model, its advantages, and its applications. Non-structured centralized P2P systems: BitTorrent. Non-structured decentralized P2P systems with flooding-based search: Gnutella. Structured P2P systems based on DHTs: Chord: organization of the ring, inserting items, searching items with finger tables, inserting nodes.
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 10
Contents:
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Seminar assignment #6

Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
  • Laboratory: Implementation and analysis of the requested mechanism.
Objectives: 10 13
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
0h

Report about seminar assignment #5

Making of a report of the seminar explaining the work done and the conclusions drawn
Objectives: 7 9 13
Week: 13
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Developing the lesson "Distributed computing systems"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Volunteeer distributed computing paradigm: BOINC. Grid paradigm for distributed computing, its characteristics and its applications: Virtual Organizations (VO), difference from the cluster and distributed computing, architecture and implementation: OGSA, WSRF, GT. Cloud paradigm for distributed computing, its characteristics, and its applications: Utility Computing, Service Level Agreements (SLA), type of Clouds (public, private), differences with Grid computing, Cloud Services (IaaS, PAAS, SaaS) architecture and implementation: virtualization, HDFS, Map-Reduce, Cloud infrastructure (datacenters), obstacles to the consolidation of the Cloud
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 11
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Reading assignment #6

Read of the proposed article. Understanding and assimilation of the contents of the article. Making of a reading report
Objectives: 11 12 13
Week: 14
Type: theory exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h

Developing the lesson "Mobile and ubiquitous systems"

Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
  • Theory: Mobile and ubiquitous systems: volatility, association, interoperability, sensors and context-awareness, adaptation
  • Autonomous learning: Class preparation with the help of the support material. Understanding and assimilation of the lesson contents and their subsequent application
Objectives: 12
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h

Report about seminar assignment #6

Preparation of the seminar with the help of the support material. Implementation and analysis of the requested mechanism. Making of a report of the seminar explaining the work done and the conclusions drawn
Objectives: 10 13
Week: 15
Type: lab exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Final Exam

Assimilation of the concepts of the course and conduct of the examination
Objectives: 1 2 3 4 5 6 7 8 9 10 11 12
Week: 15 (Outside class hours)
Type: theory exam
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h

Teaching methodology

During the course there will be two types of activities:

a) Activities focused on the acquisition of theoretical knowledge.
b) Activities focused on the acquisition of knowledge through experimentation by implementing and evaluating empirically in the laboratory the mechanisms explained at a theoretical level.

The theoretical activities include participatory lecture classes, which explain the basic contents of the course, besides the reading of articles/reports, either as preparation for lectures or as to facilitate the subsequent development of important concepts. In order to work the transversal competence the articles will be written in English.

The practical activities include seminar laboratories where students implement (in groups of 2) the mechanisms described in the lectures. The seminars require a preparation by reading the statement and supporting documentation, and a further elaboration of the conclusions in a report. In order to work the transversal competence the seminar documentation will be written in English.

Evaluation methodology

A) Individual written mid-term exam.
B) Individual written final exam.
-- B1) Evaluation of contents included in the mid-term exam, for the students that failed.
-- B2) Evaluation of contents not included in the mid-term exam, for all the students.
C) Assessment of reading reports and article discussion.
D) Evaluation of the laboratory seminars.

For the students that have passed the mid-term exam (A>=5) and do not perform the B1 part of the final exam, the final grade will be calculated in the following way:

Final Grade = 0.25 x A + 0.25 x B2 + 0.2 x C + 0.3 x D

Otherwise, the final grade will be calculated as follows:

Final Grade = 0.25 x B1 + 0.25 x B2 + 0.2 x C + 0.3 x D

The grading of the transversal competence will be done through the evaluation of the activities C and D, which provide the supporting documentation in English.

Bibliography

Basic:

Complementary:

Previous capacities

Students require knowledge of operating systems (OS) and computer networks (XC)