Introduzir os fundamentos de sistemas computacionais distribuídos e suas técnicas de implementação. Aplicar os fundamentos e as técnicas de sistemas computacionais distribuídos em estudos de caso.
Evolução histórica e introdução aos conceitos básicos; Modelos arquiteturais; Modelos de comunicação e coordenação; Projetos de aplicações distribuídas; Estudos de caso.
Evolução histórica e introdução aos conceitos básicos; Modelos arquiteturais: cliente-servidor, peer-to-peer, ad-hoc e outros; Modelos de comunicação e coordenação: memória compartilhada e distribuída; Projetos de aplicações distribuídas: metodologias de projeto e desenvolvimento de aplicações distribuídas. Definição e características dos componentes de um sistema distribuído: front-ends, back-ends, brokers. Uso de banco de dados distribuídos como suporte a aplicações distribuídas; Plataformas para o desenvolvimento de aplicações distribuídas; Estudos de caso, tais como: sistemas de arquivos distribuídos, servidores de aplicação distribuídos, uso de grande volumes de dados abertos coletados de servidores governamentais, problemas relacionados à comunicação e sincronismo de aplicações distribuídas.
Livro Texto: COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Gordon B. Distributed Systems: Concepts and Design, Addison-Wesley, Hardcover, 5th edition, Published May 2013, 1067 pages, ISBN 0132143011 Bibliografia Complementar: TANEMBAUM, A. S. Distributed Systems: Principles and Paradigms (2nd Edition), Prentice Hall, 2006, 704 pages. GHOSH, S. "Distributed Systems: An Algorithmic Approach, Second Edition", 2014, ISBN: 1466552972, 552 pages PIERSON, J. M. "Large-Scale Distributed Systems and Energy Efficiency: A Holistic View", 2015, ISBN: 1118864638, 336 pages.