Ficha Unidade Curricular:

Computa�‹o M—vel

Docente:

Rui Silva Moreira

Grau AcadŽmico:

Doutor

Categoria Funcional:

Professor Associado

Curso:

Engenharia Inform‡tica

Ciclo De Estudos:

1¼ Ciclo

Ano Lectivo:

2015-2016

Semestre Curricular:

1¼ Semestre

N.¼ Total ECTS:

8

N.¼ ECTS Contacto:

2,5

Tipologia Das Aulas:

Te—rico-Pr‡tica (TP) e Pr‡tica-Laboratorial (PL)

 

 

 

 

 

 

 

 

 

 

 

 

1        Introdu�‹o

Ao longo dos œltimos anos temos assistido a um crescimento exponencial na utiliza�‹o de computadores e redes de telecomunica�›es em todas as ‡reas da sociedade. O grande poder de processamento destes computadores aliado ao seu baixo custo e ˆ generaliza�‹o das redes de computadores abriu novas possibilidades na organiza�‹o dos sistemas inform‡ticos. A necessidade de partilhar e gerir dados, perifŽricos e o processamento em v‡rias m‡quinas ligadas por rede, de forma coordenada, fi‡vel, escal‡vel e segura, levou ao aparecimento da disciplina de Sistemas Distribu’dos.

Neste contexto, o objectivo principal desta unidade curricular Ž apresentar aos alunos as arquitecturas, os modelos e os protocolos de gest‹o de sistemas distribu’dos mais utilizados. Por outro lado, pretende-se tambŽm introduzir algumas das ferramentas actualmente utilizadas para o desenvolvimento de aplica�›es distribu’das (cf. RMI/EJB, CORBA/CCM, COM+/DCOM/.NET) uma vez que consideramos importante que uma forma�‹o superior na ‡rea de inform‡tica inclua este assunto no seu curr’culo. Assim, pretende-se que os alunos consigam definir e caracterizar os sistemas distribu’dos, nomeadamente os seus objectivos, os conceitos de hardware, software e middleware envolvidos e o modelo base de arquitectura mais utilizado (cf. Cliente-Servidor). Pretende-se ainda que os alunos, consigam caracterizar as tŽcnicas e os modelos de comunica�‹o mais utilizados em sistemas distribu’dos, e.g., invoca�‹o remota de procedimentos, invoca�‹o de mŽtodos em objectos remotos, comunica�‹o ass’ncrona (baseada em mensagens) e comunica�‹o s’ncrona (multimŽdia).

Os alunos dever‹o ainda ser capazes de perceber os modelos mais importantes na identifica�‹o, localiza�‹o e gest‹o de recursos em sistemas distribu’dos, e conseguir descrever os algoritmos de sincroniza�‹o e controlo de concorr�ncia mais utilizados em sistemas distribu’dos. Outro objectivo importante ser‡ a capacidade para compreender e aplicar os modelos e protocolos mais utilizados na replica�‹o de recursos e na gest‹o da consist�ncia como forma de aumentar a toler‰ncia a falhas, e conseguir descrever e utilizar os algoritmos mais utilizados no controlo de transac�›es distribu’das. Devem ainda identificar os problemas e usar as solu�›es correntemente utilizadas na protec�‹o de recursos.

Por outro lado, os alunos dever‹o conseguir identificar e caracterizar as aplica�›es mais relevantes de sistemas distribu’dos que foram sendo utilizados nos œltimos anos (e.g., sistemas de ficheiros distribu’dos, sistemas de documentos distribu’dos, sistemas de coordena�‹o e multimŽdia distribu’dos) e tambŽm conseguirem identificar, caracterizar e comparar os modelos de objectos e componentes (cf. CORBA/CCM, RMI/EJB, COM+/DCOM/.NET) existentes no mercado de middleware.

Finalmente, devem os alunos ser capazes de perceber e aplicar os conceitos e mecanismos de implementa�‹o de sistemas distribu’dos recorrendo ˆ tecnologia de rede dispon’vel em Java, i.e., invoca�‹o de mŽtodos em objectos remotos Remote Method Invocation (RMI) e Java networking.

2        Distribui�‹o das Horas de Trabalho

ECTS:

Presencial: 8

N‹o Presencial: 0

Total (Presencial + N‹o Presencial): 8

 

Tipologia:

(x) Forma�‹o Espec’fica

( ) Forma�‹o B‡sica

( ) Unidade Curricular de Op�‹o

( ) Projecto de Gradua�‹o

 

Parcela                 (Horas)

Te—rica                                                                     

Te—rico-Pr‡tica: 32

Pr‡tica                                                                      

Pr‡tica Laboratorial: 32

Ensino Cl’nico                                     

Semin‡rio                                             

Trabalho de Campo:

Est‡gio                                                                      

Orienta�‹o Tutorial:

Avalia�‹o:

 

Nota: 1 ECTS = 26 horas

3        Requisitos PrŽvios

Linguagens de Programa�‹o II (cf. Programa�‹o Orientada-Objectos em Java).

4        Compet�ncias / Resultados da Aprendizagem

Lista de compet�ncias a alcan�ar no final da unidade curricular de acordo com o formato dos Descritores de Dublin:

1.     Conhecimento e capacidade de compreens‹o:

1.1.  Dom’nio sobre os v‡rios objectivos dos sistemas distribu’dos

1.2.  Compreens‹o dos mecanismos de comunica�‹o e principais modelos/ferramentas de desenvolvimento de sistemas distribu’dos

1.3.  Dom’nio das principais tŽcnicas utilizadas na organiza�‹o do processamento, localiza�‹o e sincroniza�‹o de sistemas distribu’dos

1.4.  Dom’nio sobre os modelos de replica�‹o e de toler‰ncia a falhas aplicados no desenvolvimento de sistemas distribu’dos

1.5.  Dom’nio sobre os mecanismos de seguran�a e coordena�‹o utilizados em sistemas distribu’dos

2.     Aplica�‹o de conhecimentos e compreens‹o:

2.1.  Conhecimentos para utilizar/aplicar conceitos, tecnologias e ferramentas (cf. sockets, RMI, Web services, etc.) na especifica�‹o e desenvolvimento de sistemas distribu’dos

2.2.  Conhecimentos para compreender, desenvolver e instalar aplica�›es distribu’das

2.3.  Conhecimentos para utilizar/aplicar modelos de replica�‹o, coordena�‹o e toler‰ncia a falhas no desenvolvimento de sistemas distribu’dos

3.     Realiza�‹o de julgamento/tomada de decis›es:

3.1.  Capacidade para definir e escolher diferentes arquitecturas para sistemas distribu’dos

3.2.  Capacidade para seleccionar e justificar diferentes ferramentas de desenvolvimento

3.3.  Capacidade para escolher diferentes modelos de replica�‹o e sincroniza�‹o

4.     Comunica�‹o:

4.1.  Capacidade para descrever/explicar a arquitectura, tecnologias e funcionalidades de um sistema distribu’do

4.2.  Capacidade de apresenta�‹o e compara�‹o de sistemas e tecnologias distribu’das

4.3.  Capacidades de compara�‹o e justifica�‹o da utiliza�‹o de tecnologias e modelos de organiza�‹o distribu’dos

5.     Compet�ncias de auto-aprendizagem:

5.1.  Capacidade/curiosidade para conhecer e aprofundar conhecimentos sobre sistemas distribu’dos

5.2.  Capacidades de autonomia e de auto-disciplina para procurar solu�›es alternativas e ultrapassar autonomamente dificuldades inerentes ao desenvolvimento de sistemas distribu’dos

5        Conteœdos Program‡ticos

0.     Apresenta�‹o

0.1.   Enquadramento e Objectivos

0.2.   Conteœdo Program‡tico e Bibliografia

0.3.   Metodologia e Sistema de Avalia�‹o

1.     Introdu�‹o aos Sistemas Distribu’dos

1.1.   Defini�‹o

1.2.   Objectivos e caracter’sticas dos sistemas distribu’dos

1.3.   Middleware

1.4.   Modelo cliente - servidor

2.     Comunica�‹o em Sistemas Distribu’dos

2.1.   Protocolos por camadas

2.2.   Tipos de comunica�‹o entre processos

2.3.   Comunica�‹o por procedimentos remotos (RPC)

2.4.   Comunica�‹o por objectos remotos (RMI/CORBA/DCOM)

2.5.   Comunica�‹o ass’ncrona (MOM)

2.6.   Comunica�‹o s’ncrona (fluxos de dados)

3.     Processamento, Localiza�‹o e Sincroniza�‹o de Recursos

3.1.   Identifica�‹o de entidades distribu’das

3.2.   Organiza�‹o de processamento distribu’do (cf. processos, threads, agentes)

3.3.   Localiza�‹o de recursos e entidades m—veis

3.4.   Coopera�‹o e sincroniza�‹o temporal

3.5.   Coordena�‹o e gest‹o de recursos/estados

3.6.   Gest‹o da concorr�ncia com regi›es cr’ticas

3.7.   Gest‹o da concorr�ncia com transac�›es

4.     Replica�‹o de Recursos e Toler‰ncia a Falhas

4.1.   Modelos de consist�ncia

4.2.   Protocolos de replica�‹o/actualiza�‹o de recursos

4.3.   Protocolos de gest‹o de consist�ncia

4.4.   Gest‹o de grupos e mascaramento de falhas

4.5.   Protocolos de coordena�‹o de transac�›es (2PC/3PC)

4.6.   Protec�‹o e seguran�a

5.     Ferramentas e Servi�os Remotos

5.1.   Sistemas de componentes distribu’dos - Middleware

5.2.   Aplica�›es de sistemas distribu’dos

5.2.1.     Sistemas de ficheiros distribu’dos

5.2.2.     Sistemas de coordena�‹o distribu’dos

5.3.   Ferramentas baseadas em mŽtodos remotos (Java RMI)

5.3.1.     Introdu�‹o e instala�‹o das ferramentas de desenvolvimento

5.3.2.     Arquitectura das camadas RMI

5.3.3.     Descri�‹o das entidades/recursos RMI

5.3.4.     Localiza�‹o e refer�ncia de objectos remotos

5.3.5.     Aspectos de seguran�a

5.3.6.     Passagem de par‰metros e serializa�‹o

5.3.7.     Distribui�‹o e instala�‹o de classes/objectos RMI

5.3.8.     Servidores e clientes multi-thread

5.3.9.     Ferramentas de networking (sockets, multicast)

5.3.10.  Implementa�‹o de sistemas/servi�os distribu’dos

5.4.   Compara�‹o entre Java RMI vs .NET Remoting

5.4.1.     Arquitectura e implementa�‹o

5.4.2.     Protocolos/canais de comunica�‹o e interoperabilidade

5.4.3.     Passagem de par‰metros por valor vs refer�ncia

5.4.4.     Registos/Servi�o de nomes

5.4.5.     Ciclo de desenvolvimento e activa�‹o

5.5.   Ferramentas baseadas em servi�os Web (Web Services - WS)

5.5.1.     Objectivos e tecnologias de base

5.5.2.     Arquitectura e elementos de suporte

5.5.3.     Implementa�‹o de Web Services (WS)

6        Metodologia de Ensino-Aprendizagem e Execu�‹o de ECTS

Designa�‹o da unidade lectiva; Horas Contacto (HC) - (T+TP+P+L+TC+OT); Horas de Estudo Individual (HEI); ECTS; Bibliografia (B)

0. Apresenta�‹o; HC: 1

1. Introdu�‹o aos Sistemas Distribu’do; HC: 4; HEI: 8; ECTS: 0,5; B: [1], [2]

2. Comunica�‹o em Sistemas Distribu’dos; HC: 4; HEI: 8; ECTS: 0,5; B: [1], [2]

3. Processamento, Localiza�‹o e Sincroniza�‹o Recursos; HC: 12; HEI: 26; ECTS: 1,5; B: [1], [2]

4. Replica�‹o de Recursos e Toler‰ncia a Falhas; HC: 12; HEI: 26; ECTS: 1,5; B: [1], [2]

5. Ferramentas e Servi�os Remotos; HC: 30; HEI: 76; ECTS: 4; B: [1], [2], [3], [4], [5]

 

Horas Contacto (TP+PL): 208

Horas Estudo Individual: 64

Horas Totais: 144

ECTS: 8

N¼ ECTS = N¼ horas/26

7        Sistema de Avalia�‹o

O sistema de avalia�‹o desta disciplina segue na generalidade o regulamento pedag—gico da UFP e define em espec’fico as seguintes regras de c‡lculo:

 

1 - Avalia�‹o cont’nua

A avalia�‹o compreende duas componentes: uma componente Te—rico-Pr‡tica (TP) e uma componente Pr‡tica-Laboratorial (PL). A classifica�‹o final da disciplina ser‡ calculada atravŽs da seguinte express‹o:

 

Nota final = 50% Nota Componente TP + 50% Nota Componente PL

 

Componente Te—rico-Pr‡tica (TP)

A componente TP realiza-se de forma cont’nua durante o semestre e inclui os seguintes elementos de avalia�‹o:

 

¥ Um teste de avalia�‹o individual: incide sobre os conhecimentos leccionados atŽ ao momento da sua realiza�‹o. O teste realiza-se no fim do semestre (em data a combinar com os alunos). O teste englobar‡, por exemplo, op�›es de escolha mœltipla, verdadeiro/falso bem como a utiliza�‹o das tecnologias e ferramentas de desenvolvimento abordadas na implementa�‹o concreta de cen‡rios ou exemplos de servi�os distribu’dos.

 

¥ Desempenho nas aulas: esta componente procurar‡ avaliar a participa�‹o e o progresso dos alunos nas aulas e a capacidade para a realiza�‹o de exerc’cios.

 

A falta aos momentos de avalia�‹o ser‡ convertida numa nota 0 (zero) para efeitos de c‡lculo da classifica�‹o. A classifica�‹o obtida na componente TP ser‡ calculada atravŽs da seguinte express‹o:

 

Nota Componente TP = 90% Teste + 10% Desempenho Aulas

 

Componente Pr‡tica-Laboratorial (PL)

A componente PL realiza-se de modo cont’nuo durante as aulas e atravŽs da realiza�‹o de projectos pr‡ticos realizados em grupo (m‡ximo 2 alunos), sobre um ou mais temas propostos durante o semestre. A avalia�‹o da componente PL inclui os seguintes elementos de avalia�‹o:

 

¥ Projecto Sistemas Distribu’dos: esta componente procurar‡ estimular e avaliar a autonomia e o conhecimento na utiliza�‹o de diferentes tecnologias e ferramentas para a organiza�‹o e desenvolvimento de sistemas distribu’dos. Ser‹o colocados v‡rios desafios aos alunos que dever‹o implementar as respectivas solu�›es, recorrendo ˆs ferramentas de desenvolvimento existentes. Dever‹o ser entregues dois relat—rios: o 1¼ relat—rio, entregue atŽ meio do semestre (em data a especificar), dever‡ conter a defini�‹o da arquitectura, modelos de dados e algoritmos de distribui�‹o e sincroniza�‹o necess‡rios para a resolu�‹o do problema; o 2¼ relat—rio, entregue no final do semestre (em data a especificar), dever‡ conter a arquitectura e modelos de distribui�‹o implementados. Os alunos dever‹o fazer ainda, em sala de aula, uma defesa e demonstra�‹o das solu�›es desenvolvidas.

 

¥ Desempenho nas aulas: esta componente procurar‡ avaliar a participa�‹o e o progresso dos alunos nas aulas e a capacidade para a realiza�‹o de exerc’cios.

 

A falta aos momentos de avalia�‹o ser‡ convertida numa nota 0 (zero) para efeitos de c‡lculo da classifica�‹o. A classifica�‹o obtida na componente PL ser‡ calculada atravŽs da seguinte express‹o:

Nota Componente PL = 20% 1¼ Relat—rio Projecto + 70% 2¼ Relat—rio e Defesa Oral Projecto + 10% Desempenho Aulas PL

 

O acesso ˆs Žpocas de exame, relativas apenas ˆ componente TP, faz-se de acordo com o regulamento pedag—gico. A componente PL n‹o pode ser efectuada por exame.

 

2 - Exames

Os exames ser‹o realizados de acordo com o regulamento pedag—gico da UFP nos per’odos previstos no cronograma e incidir‹o sobre a totalidade da matŽria inclu’da no programa da disciplina. O docente poder‡ solicitar o desenvolvimento de trabalhos com apresenta�‹o oral de modo a melhor aferir o n’vel de conhecimentos e compet�ncias alcan�adas pelos alunos. A classifica�‹o final do aluno ser‡ calculada utilizando a equa�‹o indicada acima.

8        Bibliografia

[1] Coulouris G., Dollimore J., Kindberg T., Blair, G. S., Distributed Systems Concepts and Design, 5th Ed., Addison-Wesley 2011.

[2] Tanenbaum, A., Steen, M., Distributed Systems, Principles and Paradigms, Prentice Hall 2002.

[3] Sun Developers Services, URL: http://developer.java.sun.com/developer/ (2009).

[4] Jian, Chen, Java RMI vs .Net Remoting, White Paper, 2003, http://students.cs.tamu.edu/jchen/cpsc689-608/comparison/l0c0607-framework_comp_lichen.pdf (2007).

9        Recursos Did‡cticos

Computador Port‡til

Netbeans, http://www.netbeans.org/downloads

Eclipse, http://www.eclipse.org/downloads

Eclipse RMI Plugin, http://rmi-eclipse.sourceforge.net

10    Resumo

Apresenta�‹o dos objectivos, programa e mŽtodo de avalia�‹o. Introdu�‹o aos sistemas distribu’dos: defini�‹o. Comunica�‹o em sistemas distribu’dos. Processamento, localiza�‹o e sincroniza�‹o de recursos. Replica�‹o de recursos e toler‰ncia a falhas. Sistemas de componentes distribu’dos – Middleware. Ferramentas e servi�os remotos – estudo do Java RMI, compara�‹o entre o Java RMI vs .NET Remoting, Networking (sockets unicast e multicast), introdu�‹o aos servi�os web.

11    Abstract

Presentation of the goals, syllabus and evaluation methods. Introduction to distributed systems. Communication issues in distributed systems. Processing, locating and synchronizing resources. Resource replication and fault tolerance. Distributed component systems – Middleware. Remote services and frameworks – Java RMI case study, comparison between Java RMI vs .NET Remoting, Networking (unicast and multicast sockets), introduction to web services.

 


 

12    ECTS

Course Title:

Sistemas Distribu’dos / Distributed Systems

Code

Language of Instruction

PT

Assessment Method

Exames & Projectos

Exams & Projects

Level of Course

 

Undergraduate

Number of Credits

8

Year of Studies

Name of Lecturer

Rui Moreira

Spring Semester      x

 

Total Hours:

208

Course Objectives:

Apresenta�‹o dos objectivos e assuntos relacionados com a comunica�‹o em Sistemas Distribu’dos. Estudar os mecanismos de localiza�‹o, sincroniza�‹o e gest‹o de recursos e as aplica�›es em sistemas distribu’dos. Abordar ainda os sistemas de objectos e componentes distribu’dos – Middleware.

 

Presentation of the goals and Communication issues of distributed systems. Study the mechanisms for locating, synchronizing and managing resources. Surveying applications of distributed systems and existing distributed objects/components system (Middleware).

Course Description:

1. Introdu�‹o aos Sistemas Distribu’dos

2. Comunica�‹o em Sistemas Distribu’dos

3.Processamento, Localiza�‹o e Sincroniza�‹o de Recursos

4. Replica�‹o de Recursos e Toler‰ncia a Falhas

5. Ferramentas e Servi�os Remotos

 

1. Introduction to distributed systems

2. Communication issues in distributed systems

3. Processing, locating and synchronizing resources

4. Resource replication and fault tolerance

5. Frameworks and remote services

Obligatory Reading

[1] Coulouris G., Dollimore J., Kindberg T., Blair, G. S., Distributed Systems Concepts and Design, 5th Ed., Addison-Wesley 2011.

[2] Tanenbaum, A., Steen, M., Distributed Systems, Principles and Paradigms, Prentice Hall 2002.

[3] Moreira, R., FORMAware: Framework Of Reflective components for Managing architecture Adaptation, PhD Thesis, Lancaster University, October 2003.

[4] Sun Developers Services, URL: http://developer.java.sun.com/developer/ (2009).

[5] Jian, Chen, Java RMI vs .Net Remoting, White Paper, 2003, http://students.cs.tamu.edu/jchen/cpsc689-608/comparison/l0c0607-framework_comp_lichen.pdf (2007).

Supplementary Reading

[6] Orfali, R., Harkey, D. Client/Server Programming with Java and CORBA, 2nd Edition, Wiley Computer Publishing, 1998.

Method of Teaching

Aulas te—ricas e pr‡ticas / Theoretical and practical classes

Prerequisites

Conhecimentos de programa�‹o OO & Redes de Computadores

Knowledge of OO programming & Computer Networking

Assessment method

 

 

 

 

 

Exames & trabalhos / Exams & projects

Responsible person

Rui Moreira

e-mail: rmoreira@ufp.edu.pt

 

 

Modelo A3ES: Sistemas Distribu’dos

 

 

1        Objetivos de Aprendizagem (conhecimentos, aptid›es e compet�ncias a desenvolver pelos estudantes) – 1000 caracteres

Neste curso pretende-se que os alunos adquiram conhecimentos s—lidos sobre as arquitecturas, modelos e protocolos de gest‹o de sistemas distribu’dos. Os alunos dever‹o conseguir definir e caracterizar diferentes tipos de sistemas distribu’dos, nomeadamente os seus objectivos, servi�os de middleware envolvidos e variantes arquitecturais ao modelo base Cliente-Servidor. Dever‹o ainda conseguir caracterizar as tŽcnicas e os modelos de comunica�‹o mais utilizados em sistemas distribu’dos, e.g., invoca�‹o remota de mŽtodos, comunica�‹o ass’ncrona (mensagens) e comunica�‹o s’ncrona (streaming). Pretende-se tambŽm introduzir algumas ferramentas usadas no desenvolvimento de aplica�›es distribu’das (e.g., RMI/EJB, CORBA/CCM, DCOM/.NET, Web Services). Os alunos dever‹o ficar capazes de aplicar os conceitos e mecanismos de implementa�‹o de sistemas distribu’dos recorrendo a tecnologias existentes (e.g., invoca�‹o de mŽtodos em objectos remotos (RMI) e Web Services).

Learning Goals (knowledge, skills and competences to be developed by students)

In this course students should acquire solid knowledge about the most common architectures, management models and protocols used in distributed systems. Students should be able to define and characterize different types of distributed systems, namely the objectives, middleware services involved and architectural variants of the client-server base model. Students should also be able to characterize the most used techniques and patterns of communication in distributed systems, e.g., remote method invocation, asynchronous communication (message-based) and synchronous communication (streaming). It is also intended to introduce some tools used in the development of distributed applications (e.g., RMI / EJB, CORBA / CCM, DCOM / .NET, Web Services). Students should be able to apply the concepts and implementation mechanisms of distributed systems by using existing technologies (e.g., invoking methods on remote objects (RMI) and Web Services).

2        Conteœdos Program‡ticos – 1000 caracteres

1. Introdu�‹o aos Sistemas Distribu’dos

2. Comunica�‹o em Sistemas Distribu’dos

3. Processamento, Localiza�‹o e Sincroniza�‹o de Recursos

4. Replica�‹o de Recursos e Toler‰ncia a Falhas

5. Ferramentas e Servi�os Remotos

Program Content

1. Introduction to Distributed Systems

2. Communication in Distributed Systems

3. Processing, Location & Synchronization of Resources

4. Replication of Resources and Fault Tolerance

5. Tools and Remote Services

3        Demonstra�‹o da coer�ncia dos conteœdos program‡ticos com os objetivos de aprendizagem da unidade curricular – 1000 caracteres

Os conteœdos program‡ticos s‹o coerentes com os objectivos de aprendizagem na medida em que focam os principais temas tradicionalmente abordados em sistemas distribu’dos.  Em particular come�a-se por caracterizar os diferentes objectivos e aspectos inerentes aos sistemas distribu’dos bem como as tecnologias e servi�os que est‹o na base destes sistemas. Particulariza-se o estudo dos tipos de comunica�‹o utilizados e abordam-se os modelos de localiza�‹o, replica�‹o e sincroniza�‹o de recursos bem como a gest‹o de actualiza�›es, concorr�ncia e toler‰ncia a falhas. Paralelamente abordam-se na pr‡tica tecnologias utilizadas na implementa�‹o de sistemas distribu’dos, nomeadamente atravŽs da invoca�‹o de mŽtodos remotos e web services. Os objectivos da aprendizagem est‹o portanto alinhados com os temas abordados ao n’vel te—rico como tambŽm com os exemplos pr‡ticos concretizados por via de exerc’cios e projetos implementados recorrendo a ferramentas de middleware existentes.

Demonstration of the consistency between the syllabus and the learning objectives of the course

The presented contents are consistent with the learning objectives since these focuses the main issues traditionally addressed in distributed systems. In particular we start by characterizing the different objectives and aspects inherent to distributed systems and the technologies and services that underlie these systems. In particular we start to address the different types of communication used in distributed systems and also the models of location, replication and synchronization as well as the management mechanisms for updates, fault tolerance and concurrency. In parallel we address in practice some of the existing technologies used in the implementation of distributed systems, in particular the invocation of remote methods and web services. The learning objectives are therefore aligned with the theoretical themes as well as the practical examples achieved by means of exercises and projects implemented using currently available market tools.

 

 

4        Metodologias de ensino (avalia�‹o inclu’da) – 1000 caracteres

Esta unidade curricular est‡ organizada em aulas te—rico-pr‡ticas (TP) e pr‡ticas (PR). A metodologia de ensino utilizada no ‰mbito das aulas TP baseia-se na exposi�‹o oral dos conteœdos program‡ticos bem como na discuss‹o das principais quest›es sobre os temas abordados. Paralelamente, no contexto das aulas pr‡ticas laboratoriais, os alunos t�m oportunidade de  contactar com ferramentas de software (cf. RMI, Web Services) vulgarmente utilizadas e aplicadas no desenvolvimento de sistemas distribu’dos. A avalia�‹o Ž cont’nua, contemplando em partes iguais a componente TP e PR. A componente TP Ž avaliada por um exame realizado no final do semestre. A componente PR Ž avaliada pelo planeamento e implementa�‹o de um projecto de um sistema/servi�o distribu’do cujos requisitos s‹o propostos durante o semestre.

Teaching methodologies (including evaluation)

This course is organized into theoretic-practical (TP) and practical classes (PR). The teaching methodology used within TP classes is based on the oral presentation of the contents as well as the discussion of the main issues about the covered topics. In parallel, the context of laboratory classes provide students the opportunity to contact with software tools (cf. RMI, Web Services) usually used for developing distributed systems. The assessment is continuous, contemplating with equal weight both the TP and PR components. The TP component is assessed by an exam at the end of the semester. The PR component is assessed through the planning and implementation of a project for a distributed system/service whose requirements are proposed during the semester.

 

5        Demonstra�‹o da coer�ncia das metodologias de ensino com os objetivos de aprendizagem da unidade curricular – 3000 caracteres

As metodologias de ensino aplicadas nesta unidade curricular procuram levar os alunos a conhecer os modelos e arquitecturas de planeamento e gest‹o de sistemas distribu’dos, bem como a desenvolver compet�ncias na identifica�‹o e implementa�‹o dos requisitos para estes sistemas. A vertente proporcionada pelas aulas pr‡ticas permite um contato com tecnologias actualmente utilizadas no desenvolvimento de sistemas distribu’dos numa l—gica de servi�os, tecnologias de invoca�‹o de mŽtodos remotos e servi�os web. Esta experi�ncia e contacto com contextos pr‡ticos espec’ficos permite ainda melhorar as capacidades de an‡lise e reflex‹o sobre sistemas ou servi�os existentes, sendo essencial na obten�‹o de compet�ncias tŽcnicas e de desenvolvimento nesta ‡rea.

Demonstration of the consistency between the teaching methodologies with the learning objectives of the course

Teaching methodologies applied in this course seek to lead students to know the models and architectures used when planning and managing distributed systems, and to develop skills for identifying and implementing the necessary requirements for these systems. The practical classes allow the contact with current technologies used in the development of distributed systems using a logic of services, remote method invocation technologies and web services. This experience and contact with specific practical contexts also improve the analysis and reflection capacities of students with respect to existing systems, which is essential in obtaining technical and development skills in this area.

 

6        Bibliografia de consulta/exist�ncia obrigat—ria – 1000 caracteres

[1] Coulouris G., Dollimore J., Kindberg T., Blair, G. S., Distributed Systems Concepts and Design, 5th Ed., Addison-Wesley 2011.

[2] Tanenbaum, A., Steen, M., Distributed Systems, Principles and Paradigms, Prentice Hall 2002.

[3] Sun Developers Services, URL: http://developer.java.sun.com/developer/ (2009).

[4] Jian, Chen, Java RMI vs .Net Remoting, White Paper, 2003, http://students.cs.tamu.edu/jchen/cpsc689-608/comparison/l0c0607-framework_comp_lichen.pdf (2007).