Programa da Disciplina

From Gppd-wiki

Jump to: navigation, search

Contents

CMP167 (POD) - Programa da Disciplina

OBJETIVOS:

  • O tema central da disciplina é o estudo de ambientes de programação com objetos distribuídos. Ao final da disciplina o aluno deverá conhecer os principais modelos de POD, tanto por uma abordagem conceitual quanto através de exemplos acadêmicos e comerciais. O aluno também deverá saber usar os recursos da POD através do estudo de algoritmos distribuídos. O aluno ainda tomará conhecimento das principais tendências e extensões da POD.

SERIAÇÃO:

  • Carga Horária: 60 horas-aula
  • Créditos: 4 (quatro)
  • Semestre: aaaa/1

PROFESSORES:

  • Cláudio Geyer ( geyer at inf.ufrgs.br )

SÚMULA:

  • Introdução a sistemas distribuídos. Revisão dos conceitos de POO. Abordagens para ambientes de POD. Modelos de concorrência, sincronização e comunicação em POD. Exemplos de ambientes de POD: comerciais e acadêmicos: Java, C#, Espaços de Tuplas, Java EE, EJB, Web Services, Corba, CC++, e outros. Algoritmos distribuídos com POD. Extensões de POD: replicação, persistência, agentes móveis, transações distribuídas e outros.

CONTEÚDOS PROGRAMÁTICOS:

  • 1. Introdução: Conceitos básicos de programação distribuída e paralela: sistemas distribuídos, aplicações distribuídas, modelos de programação, expressão da concorrência, sincronização e comunicação. Revisão dos conceitos de POO.
  • 2. Concorrência, comunicação e sincronização em POD: Abordagens biblioteca, integração e reflexão; criação de objetos distribuídos; concorrência inter e intra objeto; atomicidade, sincronização entre threads; tipos de comunicação (send/receive, chamada remota de método síncrona e futura, ...)
  • 3. Exemplos de ambientes: Java: threads, métodos de sincronização, sockets, RMI, ...; C#: threads e sincronização; Java Spaces: modelo, API, sincronização, transações, eventos, exemplos; Mobilidade: conceitos, tipos, caso Voayger (agentes móveis, ...); JEE: conceitos, arquitetura, componente servidor EJB (Session, Enterprise e Event bean); Web Services: conceitos, arquitetura, Soap,
  • 4. Algoritmos paralelos e distribuídos: alguns algoritmos são usados como exemplos de uso dos ambientes apresentados em aula


  • Observações: a) a maior do conteúdo (aulas) é dedicada ao item 3.

BIBLIOGRAFIA:

_Nota: Veja também o [[" a atualizar "][Material de Apoio]] da disciplina para lista de documentos, artigos e software disponibilizados online._

  • Orfali, R. and Harkey, D. Client/Server Programming with JAVA and CORBA. Wiley, New York, 2o edition, 1998.
  • Orfali, R., Harkey, D. and Edwards, J. The Essential Distributed Objects Survival Guide. Wiley, New York, 1996.
  • Agha, G., Wegner, P. and Yonezawa, A. Research Directions in Concurrent Object-Oriented Programming. The MIT Press, Cambridge, 1993.
  • Oaks, S. and Wong, H. Java Threads. O’Reilly, 1997.
  • Briot, J-P. and Guerraoui, R. A Classification of Various Approaches for Object-Based Parallel and Distributed Programming. Technical Report, EPFL and Univ of Tokyo, 1996.
  • Andrews, G. R. Concurrent Programming - Principles and Practice. The Benjamin/Cummings, Redwood City, 1991.
  • Lea, P. Concurrent Programming in JAVA - Design Principles and Patterns. Addison-Wesley, 1997.
  • Lynch, N. Distributed Algorithms. 1996
  • Artigos selecionados.
Personal tools
Alliances