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