Sistemas Distribuídos 17/04/2017 Sistemas Distribuídos Carlos Ferraz cagf@cin.ufpe.br
Agenda Motivação O que são os Sistemas Distribuídos 17/04/2017 Motivação O que são os Sistemas Distribuídos Definição Exemplo como funcionam e como são estruturados Desafios “Convergência digital” Habilidades para o desenvolvimento de Sistemas Distribuídos O profissional de Sistemas Distribuídos
Motivação Nos últimos anos, os sistemas distribuídos, particularmente os serviços e aplicações baseados na Web e Internet de forma geral, têm adquirido interesse e importância sem precedentes. Técnicas de sistemas distribuídos, como comunicação entre processos, invocação remota, nomeação distribuída, entre outras, fornecem a infra-estrutura de execução que suporta as aplicações em rede de hoje.
O que são?
Definição de Sistemas Distribuídos 17/04/2017 “Um sistema distribuído é uma coleção de computadores independentes que aparecem para os usuários do sistema como um único computador.” (Tanenbaum) Hardware: máquinas autônomas Software: os usuários pensam do sistema como um único computador “Um sistema em que componentes de hardware e software localizados em computadores em rede se comunicam e coordenam suas ações por passagem de mensagens.” (Coulouris et al)
Por que ter sistemas distribuídos? Integração de sistemas Ex: sistema de alarme + sistema de agenda Processamento de alto desempenho Paralelismo aproveitando recursos de processamento distribuídos em rede Segurança Distribuição dificulta ataques, como em estratégias de guerra Alta disponibilidade Falhas parciais Entre outras vantagens...
Exemplo: Web Internet Servidor DNS Servidor BD Servidor DNS de Arquivos Servidor BD Servidor DNS Servidor Web Porta 80 Internet Servidor DNS Servidor DNS Cliente “browser”
Como funcionam e como são estruturados? Clientes/servidores RPC Objetos distribuídos Baseados nos conceitos de orientação a objetos C S C/S C/S Aplicação O O O O O Sistema Operacional Distribuído Middleware Middleware Sistema Operacional Distribuído Sistema Operacional Rede
Desafios Heterogeneidade Abertura Segurança Tratamento de falhas Concorrência Transparência
Convergência Digital Sistemas Distribuídos Multimídia Computação Comunicação Computação em rede Sistemas Distribuídos Multimídia Software & Hardware para divertimento & informação Difusão de conteúdo em rede Mídia Filmes Música Notícias
Desenvolvimento
Habilidades Um pouco de redes Muito de plataformas de suporte a distribuição A maioria das linguagens de programação incorporam modelos de programação distribuída (RPC, RMI etc.) Engenharia de software Requisitos funcionais Documentação .... Afinal está se desenvolvendo a Engenharia de Software Distribuído!!! Requisitos não-funcionais também: Desempenho Segurança Tolerância a falhas, etc...
Profissão
O Profissional de Sistemas Distribuídos Desenvolve sistemas em redes, que vão desde sistemas operacionais, passando por middleware, até aplicações inerentemente distribuídas envolvendo educação a distância, telemedicina, vídeo-conferência, jogos em rede, entre outros... O mercado de trabalho para o profissional de sistemas distribuídos é formado de empresas de desenvolvimento de software ("fábricas de software"), básico ou aplicativo de rede, provedores de sistemas de informações na Internet/Web, ...
computação a qualquer hora e em qualquer lugar. Conclusão Os profissionais de sistemas distribuídos, redes e mídias colaboram para viabilizar a convergência digital, que permite computação ubíqua, ou seja, computação a qualquer hora e em qualquer lugar.