Ir para o conteúdo

CCT-UFCA/Ciência da Computação/Sistemas Distribuídos

De Wikiversidade

Programa do Componente Curricular

[editar | editar código]
Código: CC0042
Componente Curricular: Sistemas Distribuídos
Semestre de Oferta: Tipo: Disciplina Caráter: Obrigatória
Unidade Acadêmica Responsável: Centro de Ciências e Tecnologia - CCT
Área: Sistemas de Computação
Créditos: 4 Carga horária: 64 Teórica: 48 Prática 16 Extensão: -
Pré-requisito: CC0024 - Redes de Computadores e CC0026 - Sistemas Operacionais
Co-requisito:
Equivalência:

Objetivos

[editar | editar código]

Capacitar o aluno a aplicar técnicas para o funcionamento de sistemas distribuídos e tecnologias emergentes para a sua construção, bem como a apresentação de soluções baseadas no desenvolvimento de serviços Web por meio de softwares baseados em componentes.

Conceitos básicos: histórico, terminologia, sistemas centralizados, distribuídos, paralelos ou de alto desempenho, modelos e arquiteturas de sistemas distribuídos. Paradigmas de comunicação entre processos (IPC). Programação de aplicações cliente/servidor em uma rede de computadores com Sockets e TCP/IP. Sincronização em sistemas distribuídos. Algoritmos distribuídos. Sistemas distribuídos tolerantes a falhas. Objetos distribuídos. Balanceamento de carga e segurança em sistemas distribuídos. Serviços Web e Estudos de caso.

Conteúdo

[editar | editar código]
  • Sincronização em Sistemas Distribuídos:
    • Problemas de sincronização em sistemas distribuídos
    • Relógios físicos e lógicos
    • Algoritmos de sincronização de relógios
    • Exclusão mútua em sistemas distribuídos
    • Algoritmos de eleição
  • Algoritmos Distribuídos:
    • Conceitos e características de algoritmos distribuídos
    • Algoritmos de difusão
    • Algoritmos de consenso
    • Algoritmos de replicação de dados
  • Sistemas Distribuídos Tolerantes a Falhas:
    • Conceitos de tolerância a falhas
    • Tipos de falhas em sistemas distribuídos
    • Técnicas de tolerância a falhas (replicação, checkpoints, recovery)
    • Algoritmos de consenso em ambientes falhos
  • Objetos Distribuídos:
    • Conceito de objetos distribuídos
    • Frameworks e tecnologias para objetos distribuídos (CORBA, RMI, DCOM)
    • Invocação de métodos remotos (RMI)
    • Serialização e desserialização de objetos
  • Serviços Web:
    • Conceito de serviços web
    • Protocolos e padrões de serviços web (HTTP, SOAP, REST)
    • Implementação de serviços web
    • APIs e microsserviços

Metodologia

[editar | editar código]

Avaliação

[editar | editar código]

Bibliografia básica

[editar | editar código]
  1. TANENBAUM, A.; STEEN, M. V. Sistemas Distribuídos: princípios e paradigmas. 2 ed. Pearson, 2008. ISBN 9788576051428.
  2. COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Sistemas Distribuídos: Conceitos e Projetos. 5ª ed. Editora Bookman, 2013.
  3. RIBEIRO, U. Sistemas Distribuídos: Desenvolvendo Aplicações de Alta Performace no Linux. 1ª ed. Editora Novaterra, 2015.

Bibliografia complementar

[editar | editar código]
  1. MULLENDER, S. Distributted Systems. 2 ed. Addison Wesley, 1993.
  2. ORFALI, R.; HARKEY, D. Client/Server Programming with Java and CORBA. 2 ed. New York: John Wiley & Sons, 1998.
  3. COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Distributed systems: concepts and design. 3 ed. Harlow: Addison Wesley, 2001. • MARQUES, J. A.; GUEDES, P. Tecnologia de Sistemas Distribuídos. 2ª ed. Editora FCA, 2003.
  4. STALLINGS, W.; CASE, T. Redes e sistemas de comunicação de dados. Rio de Janeiro, RJ: Elsevier, 2016. 526 p., il., 28 cm. ISBN 9788535283587.