PLANO DE DISCIPLINA DADOS DO COMPONENTE CURRICULAR Nome: SISTEMAS DISTRIBUÍDOS Curso: CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Período: 6º Carga Horária Semestral: 83 h EMENTA Fundamentos de Sistemas Distribuídos. Estilos Arquiteturais para Sistemas Distribuídos. P2P. Processos e Threads. Arquitetura de Comunicação ClienteServidor. Comunicação: Sockets, RPC, RMI, MOM. Serviços: Conceitos, Arquitetura Orientada a Serviços, Tipos de Serviços, Design de Serviços, Registro e descoberta, Web Services. Tolerância a Faltas. Sincronização. OBJETIVOS Geral Capacitar o aluno para aplicar técnicas para o funcionamento de sistemas distribuídos e tecnologias emergentes para a construção de sistemas distribuídos, bem como a apresentação de soluções baseadas no desenvolvimento de serviços Web por meio de softwares baseados em componentes. Específicos Proporcionar o entendimento sobre as possíveis formas de estruturação dos sistemas distribuídos; Apresentar as técnicas para garantir a qualidade de sistemas distribuídos; Tornar o aluno apto a resolver problemas de faltas em sistemas distribuídos. CONTEÚDO PROGRAMÁTICO 1. Fundamentos de sistemas distribuídos Definição de sistemas distribuídos Infraestrutura básica Tipos de sistemas distribuídos 2. Estilos arquiteturais para sistemas distribuídos Camadas Baseada em objetos Baseada em dados Baseada em eventos 3. Visão Cliente-Servidor Requisição-Resposta 4. 5. 6. 7. 8. Comunicação síncrona Comunicação assíncrona Arquiteturas ponto a ponto Arquitetura centralizada Arquitetura descentralizada Processos e threads Comunicação Sockets Chamada de procedimentos remotos Invocação de métodos remotos Java Message Service Serviços Conceitos Arquitetura orientada a serviço Tipos de serviços Design de serviços Registro e descoberta Web Services Tolerância a faltas Definição Dependabilidade Tipos Recuperação Mascaramento Sincronização Cálculo de latência Ajuste de relógios METODOLOGIA DE ENSINO Aulas expositivas e dialogadas; Aulas práticas usando microcomputadores; Atividades práticas individuais e em grupo para a consolidação do conteúdo ministrado. AVALIAÇÃO DO PROCESSO DE ENSINO E APRENDIZAGEM Provas escritas; Projeto prático abordando a aplicação do conteúdo ministrado. RECURSOS NECESSÁRIOS Quadro branco; Marcadores para quadro branco; Laboratório de microcomputadores contendo componentes de hardware e software específicos; Projetor de dados multimídia. BIBLIOGRAFIA BÁSICA ALBUQUERQUE, F. TCP/IP Internet: programação de sistemas distribuídos HTML, JavaScript e Java. Rio de Janeiro: Axcel, 2001. CARDOSO, J. Programação de sistemas distribuídos em Java. Lisboa: FCA, 2008. TANENBAUM, A. S.; STEEN, V. M. Sistemas distribuídos: princípios e paradigmas. 2. ed. São Paulo: Pearson Prentice Hall, 2007. COMPLEMENTAR COULOURIS, G.; DOLLIMORE, J; KINDBERG, T. Sistemas distribuídos: conceitos e projeto. 5. ed. Porto Alegre: Bookman, 2013. TANENBAUM, A. S.; STEEN, V. M. Distributed systems: principles and paradigms. 2. ed. São Paulo: Pearson Prentice Hall, 2007.