Ficha Unidade Curricular:

Computao Mvel

Docente:

Rui Silva Moreira

Grau Acadmico:

Doutor

Categoria Funcional:

Professor Associado

Curso:

Engenharia Informtica

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:

Terico-Prtica (TP) e Prtica-Laboratorial (PL)

 

 

 

 

 

 

 

 

 

 

 

 

1        Introduo

Ao longo dos ltimos anos temos assistido a um crescimento exponencial na utilizao de computadores e redes de telecomunicaes em todas as reas da sociedade. O grande poder de processamento destes computadores aliado ao seu baixo custo e generalizao das redes de computadores abriu novas possibilidades na organizao dos sistemas informticos. A necessidade de partilhar e gerir dados, perifricos e o processamento em vrias mquinas ligadas por rede, de forma coordenada, fivel, escalvel e segura, levou ao aparecimento da disciplina de Sistemas Distribudos.

Neste contexto, o objectivo principal desta unidade curricular apresentar aos alunos as arquitecturas, os modelos e os protocolos de gesto de sistemas distribudos mais utilizados. Por outro lado, pretende-se tambm introduzir algumas das ferramentas actualmente utilizadas para o desenvolvimento de aplicaes distribudas (cf. RMI/EJB, CORBA/CCM, COM+/DCOM/.NET) uma vez que consideramos importante que uma formao superior na rea de informtica inclua este assunto no seu currculo. Assim, pretende-se que os alunos consigam definir e caracterizar os sistemas distribudos, 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 tcnicas e os modelos de comunicao mais utilizados em sistemas distribudos, e.g., invocao remota de procedimentos, invocao de mtodos em objectos remotos, comunicao assncrona (baseada em mensagens) e comunicao sncrona (multimdia).

Os alunos devero ainda ser capazes de perceber os modelos mais importantes na identificao, localizao e gesto de recursos em sistemas distribudos, e conseguir descrever os algoritmos de sincronizao e controlo de concorrncia mais utilizados em sistemas distribudos. Outro objectivo importante ser a capacidade para compreender e aplicar os modelos e protocolos mais utilizados na replicao de recursos e na gesto da consistncia como forma de aumentar a tolerncia a falhas, e conseguir descrever e utilizar os algoritmos mais utilizados no controlo de transaces distribudas. Devem ainda identificar os problemas e usar as solues correntemente utilizadas na proteco de recursos.

Por outro lado, os alunos devero conseguir identificar e caracterizar as aplicaes mais relevantes de sistemas distribudos que foram sendo utilizados nos ltimos anos (e.g., sistemas de ficheiros distribudos, sistemas de documentos distribudos, sistemas de coordenao e multimdia distribudos) e tambm 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 implementao de sistemas distribudos recorrendo tecnologia de rede disponvel em Java, i.e., invocao de mtodos em objectos remotos Remote Method Invocation (RMI) e Java networking.

2        Distribuio das Horas de Trabalho

ECTS:

Presencial: 8

No Presencial: 0

Total (Presencial + No Presencial): 8

 

Tipologia:

(x) Formao Especfica

( ) Formao Bsica

( ) Unidade Curricular de Opo

( ) Projecto de Graduao

 

Parcela                 (Horas)

Terica                                                                     

Terico-Prtica: 32

Prtica                                                                      

Prtica Laboratorial: 32

Ensino Clnico                                     

Seminrio                                             

Trabalho de Campo:

Estgio                                                                      

Orientao Tutorial:

Avaliao:

 

Nota: 1 ECTS = 26 horas

3        Requisitos Prvios

Linguagens de Programao II (cf. Programao Orientada-Objectos em Java).

4        Competncias / Resultados da Aprendizagem

Lista de competncias a alcanar no final da unidade curricular de acordo com o formato dos Descritores de Dublin:

1.     Conhecimento e capacidade de compreenso:

1.1.  Domnio sobre os vrios objectivos dos sistemas distribudos

1.2.  Compreenso dos mecanismos de comunicao e principais modelos/ferramentas de desenvolvimento de sistemas distribudos

1.3.  Domnio das principais tcnicas utilizadas na organizao do processamento, localizao e sincronizao de sistemas distribudos

1.4.  Domnio sobre os modelos de replicao e de tolerncia a falhas aplicados no desenvolvimento de sistemas distribudos

1.5.  Domnio sobre os mecanismos de segurana e coordenao utilizados em sistemas distribudos

2.     Aplicao de conhecimentos e compreenso:

2.1.  Conhecimentos para utilizar/aplicar conceitos, tecnologias e ferramentas (cf. sockets, RMI, Web services, etc.) na especificao e desenvolvimento de sistemas distribudos

2.2.  Conhecimentos para compreender, desenvolver e instalar aplicaes distribudas

2.3.  Conhecimentos para utilizar/aplicar modelos de replicao, coordenao e tolerncia a falhas no desenvolvimento de sistemas distribudos

3.     Realizao de julgamento/tomada de decises:

3.1.  Capacidade para definir e escolher diferentes arquitecturas para sistemas distribudos

3.2.  Capacidade para seleccionar e justificar diferentes ferramentas de desenvolvimento

3.3.  Capacidade para escolher diferentes modelos de replicao e sincronizao

4.     Comunicao:

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

4.2.  Capacidade de apresentao e comparao de sistemas e tecnologias distribudas

4.3.  Capacidades de comparao e justificao da utilizao de tecnologias e modelos de organizao distribudos

5.     Competncias de auto-aprendizagem:

5.1.  Capacidade/curiosidade para conhecer e aprofundar conhecimentos sobre sistemas distribudos

5.2.  Capacidades de autonomia e de auto-disciplina para procurar solues alternativas e ultrapassar autonomamente dificuldades inerentes ao desenvolvimento de sistemas distribudos

5        Contedos Programticos

0.     Apresentao

0.1.   Enquadramento e Objectivos

0.2.   Contedo Programtico e Bibliografia

0.3.   Metodologia e Sistema de Avaliao

1.     Introduo aos Sistemas Distribudos

1.1.   Definio

1.2.   Objectivos e caractersticas dos sistemas distribudos

1.3.   Middleware

1.4.   Modelo cliente - servidor

2.     Comunicao em Sistemas Distribudos

2.1.   Protocolos por camadas

2.2.   Tipos de comunicao entre processos

2.3.   Comunicao por procedimentos remotos (RPC)

2.4.   Comunicao por objectos remotos (RMI/CORBA/DCOM)

2.5.   Comunicao assncrona (MOM)

2.6.   Comunicao sncrona (fluxos de dados)

3.     Processamento, Localizao e Sincronizao de Recursos

3.1.   Identificao de entidades distribudas

3.2.   Organizao de processamento distribudo (cf. processos, threads, agentes)

3.3.   Localizao de recursos e entidades mveis

3.4.   Cooperao e sincronizao temporal

3.5.   Coordenao e gesto de recursos/estados

3.6.   Gesto da concorrncia com regies crticas

3.7.   Gesto da concorrncia com transaces

4.     Replicao de Recursos e Tolerncia a Falhas

4.1.   Modelos de consistncia

4.2.   Protocolos de replicao/actualizao de recursos

4.3.   Protocolos de gesto de consistncia

4.4.   Gesto de grupos e mascaramento de falhas

4.5.   Protocolos de coordenao de transaces (2PC/3PC)

4.6.   Proteco e segurana

5.     Ferramentas e Servios Remotos

5.1.   Sistemas de componentes distribudos - Middleware

5.2.   Aplicaes de sistemas distribudos

5.2.1.     Sistemas de ficheiros distribudos

5.2.2.     Sistemas de coordenao distribudos

5.3.   Ferramentas baseadas em mtodos remotos (Java RMI)

5.3.1.     Introduo e instalao das ferramentas de desenvolvimento

5.3.2.     Arquitectura das camadas RMI

5.3.3.     Descrio das entidades/recursos RMI

5.3.4.     Localizao e referncia de objectos remotos

5.3.5.     Aspectos de segurana

5.3.6.     Passagem de parmetros e serializao

5.3.7.     Distribuio e instalao de classes/objectos RMI

5.3.8.     Servidores e clientes multi-thread

5.3.9.     Ferramentas de networking (sockets, multicast)

5.3.10.  Implementao de sistemas/servios distribudos

5.4.   Comparao entre Java RMI vs .NET Remoting

5.4.1.     Arquitectura e implementao

5.4.2.     Protocolos/canais de comunicao e interoperabilidade

5.4.3.     Passagem de parmetros por valor vs referncia

5.4.4.     Registos/Servio de nomes

5.4.5.     Ciclo de desenvolvimento e activao

5.5.   Ferramentas baseadas em servios Web (Web Services - WS)

5.5.1.     Objectivos e tecnologias de base

5.5.2.     Arquitectura e elementos de suporte

5.5.3.     Implementao de Web Services (WS)

6        Metodologia de Ensino-Aprendizagem e Execuo de ECTS

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

0. Apresentao; HC: 1

1. Introduo aos Sistemas Distribudo; HC: 4; HEI: 8; ECTS: 0,5; B: [1], [2]

2. Comunicao em Sistemas Distribudos; HC: 4; HEI: 8; ECTS: 0,5; B: [1], [2]

3. Processamento, Localizao e Sincronizao Recursos; HC: 12; HEI: 26; ECTS: 1,5; B: [1], [2]

4. Replicao de Recursos e Tolerncia a Falhas; HC: 12; HEI: 26; ECTS: 1,5; B: [1], [2]

5. Ferramentas e Servios 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 Avaliao

O sistema de avaliao desta disciplina segue na generalidade o regulamento pedaggico da UFP e define em especfico as seguintes regras de clculo:

 

1 - Avaliao contnua

A avaliao compreende duas componentes: uma componente Terico-Prtica (TP) e uma componente Prtica-Laboratorial (PL). A classificao final da disciplina ser calculada atravs da seguinte expresso:

 

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

 

Componente Terico-Prtica (TP)

A componente TP realiza-se de forma contnua durante o semestre e inclui os seguintes elementos de avaliao:

 

Um teste de avaliao individual: incide sobre os conhecimentos leccionados at ao momento da sua realizao. O teste realiza-se no fim do semestre (em data a combinar com os alunos). O teste englobar, por exemplo, opes de escolha mltipla, verdadeiro/falso bem como a utilizao das tecnologias e ferramentas de desenvolvimento abordadas na implementao concreta de cenrios ou exemplos de servios distribudos.

 

Desempenho nas aulas: esta componente procurar avaliar a participao e o progresso dos alunos nas aulas e a capacidade para a realizao de exerccios.

 

A falta aos momentos de avaliao ser convertida numa nota 0 (zero) para efeitos de clculo da classificao. A classificao obtida na componente TP ser calculada atravs da seguinte expresso:

 

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

 

Componente Prtica-Laboratorial (PL)

A componente PL realiza-se de modo contnuo durante as aulas e atravs da realizao de projectos prticos realizados em grupo (mximo 2 alunos), sobre um ou mais temas propostos durante o semestre. A avaliao da componente PL inclui os seguintes elementos de avaliao:

 

Projecto Sistemas Distribudos: esta componente procurar estimular e avaliar a autonomia e o conhecimento na utilizao de diferentes tecnologias e ferramentas para a organizao e desenvolvimento de sistemas distribudos. Sero colocados vrios desafios aos alunos que devero implementar as respectivas solues, recorrendo s ferramentas de desenvolvimento existentes. Devero ser entregues dois relatrios: o 1 relatrio, entregue at meio do semestre (em data a especificar), dever conter a definio da arquitectura, modelos de dados e algoritmos de distribuio e sincronizao necessrios para a resoluo do problema; o 2 relatrio, entregue no final do semestre (em data a especificar), dever conter a arquitectura e modelos de distribuio implementados. Os alunos devero fazer ainda, em sala de aula, uma defesa e demonstrao das solues desenvolvidas.

 

Desempenho nas aulas: esta componente procurar avaliar a participao e o progresso dos alunos nas aulas e a capacidade para a realizao de exerccios.

 

A falta aos momentos de avaliao ser convertida numa nota 0 (zero) para efeitos de clculo da classificao. A classificao obtida na componente PL ser calculada atravs da seguinte expresso:

Nota Componente PL = 20% 1 Relatrio Projecto + 70% 2 Relatrio 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 pedaggico. A componente PL no pode ser efectuada por exame.

 

2 - Exames

Os exames sero realizados de acordo com o regulamento pedaggico da UFP nos perodos previstos no cronograma e incidiro sobre a totalidade da matria includa no programa da disciplina. O docente poder solicitar o desenvolvimento de trabalhos com apresentao oral de modo a melhor aferir o nvel de conhecimentos e competncias alcanadas pelos alunos. A classificao final do aluno ser calculada utilizando a equao 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 Didcticos

Computador Porttil

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

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

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

10    Resumo

Apresentao dos objectivos, programa e mtodo de avaliao. Introduo aos sistemas distribudos: definio. Comunicao em sistemas distribudos. Processamento, localizao e sincronizao de recursos. Replicao de recursos e tolerncia a falhas. Sistemas de componentes distribudos – Middleware. Ferramentas e servios remotos – estudo do Java RMI, comparao entre o Java RMI vs .NET Remoting, Networking (sockets unicast e multicast), introduo aos servios 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 Distribudos / 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:

Apresentao dos objectivos e assuntos relacionados com a comunicao em Sistemas Distribudos. Estudar os mecanismos de localizao, sincronizao e gesto de recursos e as aplicaes em sistemas distribudos. Abordar ainda os sistemas de objectos e componentes distribudos – 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. Introduo aos Sistemas Distribudos

2. Comunicao em Sistemas Distribudos

3.Processamento, Localizao e Sincronizao de Recursos

4. Replicao de Recursos e Tolerncia a Falhas

5. Ferramentas e Servios 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 tericas e prticas / Theoretical and practical classes

Prerequisites

Conhecimentos de programao 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 Distribudos

 

 

1        Objetivos de Aprendizagem (conhecimentos, aptides e competncias a desenvolver pelos estudantes) – 1000 caracteres

Neste curso pretende-se que os alunos adquiram conhecimentos slidos sobre as arquitecturas, modelos e protocolos de gesto de sistemas distribudos. Os alunos devero conseguir definir e caracterizar diferentes tipos de sistemas distribudos, nomeadamente os seus objectivos, servios de middleware envolvidos e variantes arquitecturais ao modelo base Cliente-Servidor. Devero ainda conseguir caracterizar as tcnicas e os modelos de comunicao mais utilizados em sistemas distribudos, e.g., invocao remota de mtodos, comunicao assncrona (mensagens) e comunicao sncrona (streaming). Pretende-se tambm introduzir algumas ferramentas usadas no desenvolvimento de aplicaes distribudas (e.g., RMI/EJB, CORBA/CCM, DCOM/.NET, Web Services). Os alunos devero ficar capazes de aplicar os conceitos e mecanismos de implementao de sistemas distribudos recorrendo a tecnologias existentes (e.g., invocao de mtodos 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        Contedos Programticos – 1000 caracteres

1. Introduo aos Sistemas Distribudos

2. Comunicao em Sistemas Distribudos

3. Processamento, Localizao e Sincronizao de Recursos

4. Replicao de Recursos e Tolerncia a Falhas

5. Ferramentas e Servios 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        Demonstrao da coerncia dos contedos programticos com os objetivos de aprendizagem da unidade curricular – 1000 caracteres

Os contedos programticos so coerentes com os objectivos de aprendizagem na medida em que focam os principais temas tradicionalmente abordados em sistemas distribudos.  Em particular comea-se por caracterizar os diferentes objectivos e aspectos inerentes aos sistemas distribudos bem como as tecnologias e servios que esto na base destes sistemas. Particulariza-se o estudo dos tipos de comunicao utilizados e abordam-se os modelos de localizao, replicao e sincronizao de recursos bem como a gesto de actualizaes, concorrncia e tolerncia a falhas. Paralelamente abordam-se na prtica tecnologias utilizadas na implementao de sistemas distribudos, nomeadamente atravs da invocao de mtodos remotos e web services. Os objectivos da aprendizagem esto portanto alinhados com os temas abordados ao nvel terico como tambm com os exemplos prticos concretizados por via de exerccios 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 (avaliao includa) – 1000 caracteres

Esta unidade curricular est organizada em aulas terico-prticas (TP) e prticas (PR). A metodologia de ensino utilizada no mbito das aulas TP baseia-se na exposio oral dos contedos programticos bem como na discusso das principais questes sobre os temas abordados. Paralelamente, no contexto das aulas prticas laboratoriais, os alunos tm oportunidade de  contactar com ferramentas de software (cf. RMI, Web Services) vulgarmente utilizadas e aplicadas no desenvolvimento de sistemas distribudos. A avaliao contnua, 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 implementao de um projecto de um sistema/servio distribudo cujos requisitos so 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        Demonstrao da coerncia 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 gesto de sistemas distribudos, bem como a desenvolver competncias na identificao e implementao dos requisitos para estes sistemas. A vertente proporcionada pelas aulas prticas permite um contato com tecnologias actualmente utilizadas no desenvolvimento de sistemas distribudos numa lgica de servios, tecnologias de invocao de mtodos remotos e servios web. Esta experincia e contacto com contextos prticos especficos permite ainda melhorar as capacidades de anlise e reflexo sobre sistemas ou servios existentes, sendo essencial na obteno de competncias tcnicas 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/existncia obrigatria – 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).