How to find us
|
Contacts

Distributed Systems 2017/2018

  • 6 ECTS
  • Taught in Portuguese
  • Continuous Assessment

Objectives

• Know and understand the principles of conception of distributed applications, as well as some fundamental distributed algorithms;
• Analyze the architectures and technologies to design and implement distributed applications relatively simple that can ensure requirements such as reconfigurability, scalability, replication and consistency of information exchange, fault tolerance and security;
• Assess the suitability of distributed solutions to various problems, particularly through Web services, based on service-oriented architectures standard.
• Build and deploy simple distributed applications in web environment

Recommended Prerequisites

As prerequisites that enable success in harnessing UC, it is expected that students have:

• Knowledge and experience programming in Java and XML;

• Basic knowledge of computers and operating systems and data communication networks and computer architectures.

Teaching Metodology

In theoretical-practical classes will use the lecture method, reports and oral presentations to show the different theoretical and practical concepts. The active participation of all students will be stimulated.
Elements of assessment:
Regular exams period:

• Ordinary students: Two middle term exams (T1, T2) and two Group Projects (GP1, GP2).
Final grade = ((T1 + T2)/2)* 50% + GP1 * 20% + GP2 * 30%

• Students with other status: Two middle term exams (T1, T2), Individual Work (IW) and two Group Projects.

Final grade = ((T1 + T2)/2) * 50% + GP1 * 20% + GP2 * 20% + IW * 10%

The average of middle term exams must be >= 10 and the minimum grade mandatory of 7.
Recovery exams period and Special exams
• Final Grade = Exam * 60% + Project * 40%

Body of Work

1. Introduction and Architectures SDs.
2. Distributed Processes and Communication: Threads, models and communication interfaces, Client / Server, RPC and Messaging Oriented to Communication (CoM);
3. Names: DNS, identification and tracking.
4. Sockets in Java.
5. Replication and Consistency: Consistency Models Management, Replication and Recovery.
6. Fault tolerance: reliability, availability. Policies for Fault Tolerance. Recovery and processing.
7. Web Services and SOA Architecture - standards and protocols: XML, WSDL and UDDI; Types (Styles) Web Services: SOAP and REST, Web Services Implementation, Web Security

Recommended Bibliography

• Couloris, G., Dollimore, J., Kindberg, T., (2012) Distributed Systems: Concepts and Design, 5th Ed, Addison-Wesley
• Tanenbaum, A., S., Steen, M., (2006). Distributed Systems: Principles and Paradigms, 2ª Ed, Prentice Hall, ISBN: 0132392275.
• Cardoso, Jorge (2008). Programação de Sistemas Distribuídos em Java, FCA Editores, ISBN 9789727226016.
Disponibilizada no decorrer das aulas.

Complementary Bibliography

Marques, J.A., Guedes. P., (1999). Tecnologia de Sistemas Distribuídos, 2ª edição, FCA Editores, ISBN: 978-972-722-128-8

Weekly Planning

1.
• Introduction
• Presentation and Functioning of UC; program; Operating rules of theoretical and practical classes; Evaluation.
• Distributed Systems - what they are and what justifies its relevance:
Definitions and Constraints in the development of SDs;
the characteristics and properties - Transparencies, Scalability, Flexibility and availability.
• Distributed Processes and Communication
• Processes: Characteristics and properties - Threads, Virtualization, Client / Server;
• Models and Reference Architectures (OSI, TCP / IP, ...).
2.
• Processes and Distributed Communication (cont)
• Communication Interfaces - Transport Layer and corresponding APIs: (i) Semantics of the functions of sending and receiving; (ii) Client / Server Model; (iii) Names: DNS, identification and location; (iv) Sockets in C and Java.
3.
• Processes and Distributed Communication (cont)
• Communication Interfaces - Transport Layer and corresponding APIs: laboratory work - developing in Java Sockets
4.
• Processes and Distributed Communication (cont)
• Communication Interfaces - Transport Layer and corresponding APIs: laboratory work - developing in Java Sockets
5.
• Processes and Distributed Communication (cont)
• Communication Interfaces - Transport Layer and corresponding APIs: laboratory work - developing in Java Sockets
6.
• Processes and Distributed Communication (cont)
• Communication Interfaces - Transport Layer and corresponding APIs:
laboratory work - developing in Java Sockets
7.
• Names
• Names: Names Service and Space;
• Properties of names. Architecture Management System Name (DNS);
• Standardization in Management Names (Directory Service - X.500).
8.
• Written Test
• Fault Tolerance and Security
• Fault Tolerance and Resilience Process - Models of Failure, reliability, availability. Policies for Fault Tolerance. Recovery and processing;
• Policies and mechanisms for security in distributed systems. Based computing confidence. Secure communication channels.
9.
• Fault Tolerance and Security (cont)
• Introduction to cryptography. Symmetric and asymmetric key. Key distribution. Authentication. Authorization. Integrity and digital signature;
• Security Management.
10.
• Consistency and Replication
• Models of Consistency - Data-Centric and Client Centric;
• Consistency Protocols.
11.
• Consistency and Replication (cont)
• Replica - Architecture and protocols. Architecture of Transactional systems in distributed environment;
• Managing Replication and Recovery
12 .
• Web Services
• Protocols and architectures (SOA and SOAP);
• Web Services based on SOAP and REST;
• Security in Web Services - DNS Sec
13.
• Web Services (cont)
• Lab work - basic development of Web Services
14.
• Test
• Lab work - basic development of Web Services
15.
• Presentation of the work

Demonstration of the syllabus coherence with the curricular unit's objectives

To know and understand the principles of conception of distributed applications and distributed algorithms are taught the fundamental issues related to the architectures of Distributed Systems and processes, models and communication interfaces. To analyze the architectures and technologies that enable design and implement distributed applications relatively simple to ensure that requirements such as reconfigurability, scalability, replication and consistency of information exchange, fault tolerance and security, are taught topics such as DNS, identification and location, as well as programming with sockets in Java. To assess the suitability of distributed solutions to several problems, especially in Web environment are taught the rules and protocols XML, SOAP, UDDI and WSDL, and REST through the implementation of Web Services.

Demonstration of the teaching methodologies coherence with the curricular unit's objectives

To know and understand the principles of conception of distributed applications, will be used theoretical and practical lessons, which present the basic concepts, accompanied by the solving exercises and study of practical applications. To design and implement distributed applications relatively simple and ensure that requirements such as reconfigurability, scalability, replication and consistency of information exchange, fault tolerance and security, will be developed practical exercises in theoretical and practical lessons, complemented by discussion and sharing of ideas among students.

relevant generic skillimproved?assessed?
Achieving practical application of theoretical knowledgeYesYes
Commitment to effectivenessYesYes
Commitment to qualityYesYes
Ethical and responsible behaviourYesYes
Event organization, planning and managementYesYes
IT and technology proficiencyYesYes
Problem Analysis and AssessmentYes 
Problem-solvingYesYes
Self-assessmentYes 
TeamworkYesYes
This website uses cookies to provide better functionality and for performance measurements (European Union Directive 2009/136/EC)
Please take a few minutes do answer a few quick questions about our website.