Sistemas Distribuídos Revisão Arquitetura Três Camadas Regras De Negócios BD FONTE: www.portaljava.com Servidor WEB Interface Protocolos de Internet Camada Aplicação HTTP, SMTP, FTP, SSH, IRC, SNMP ... Camada Transporte TCP, UDP, SCTP, RTP, DCCP ... Camada Rede IPv4, IPv6, ARP, ICMP ... Camada Ligação de dados Ethernet, 802.11 WiFi, Token ring, FDDI, PPP, ... Modelo de Cliente Servidor Cliente/Servidor O cliente manda um pedido para o servidor e o servidor o retorna. Peer-to-peer (P2P) O banco de dados manda um pedido para o gerenciador, o gerenciador retorna para o banco de dados e pede confirmação, e o banco de dados retorna para o gerenciador. P2P P2P ou Peer-to-Peer é uma tecnologia que possibilita a distribuição de arquivos em rede e que tem como característica permitir o acesso de qualquer usuário dessa rede a um nó, ou a outro usuário (peer) de forma direta, possibilitando a partilha entre os usuários de ciclos de processamento das máquinas, banda de rede, espaço de armazenamento entre outros recursos que em outros sistemas acabavam sendo desperdiçados. Basicamente pode-se dizer que cada computador é cliente e servidor ao mesmo tempo. P 2 P... O conceito de peer-to-peer disseminou-se pelo mundo inteiro, devido ao surgimento, na internet, de sistemas de gestão de redes descentralizadas, que permitem aos utilizadores partilhar arquivos de forma direta, sem necessitarem de se ligar a um servidor central. O mais conhecido desses sistemas, o Napster, especializado na partilha de música, tornou-se mundialmente célebre devido a ser alvo de ataque jurídico por parte das companhias discográficas. Um dos tipos de arquivos mais frequentemente compartilhado nas redes P2P é o mp3 Sistemas Distribuídos Definição Um sistema distribuído possui as seguintes características: Várias máquinas independentes, e potencialmente: l Heterogéneas; l Geograficamente distantes; l Administradas por diferentes organizações . Redes de interligação entre essas máquinas; Estado partilhado entre as várias máquinas. l Uma máquina multiprocessador autónoma não é (nesta óptica) um sistema distribuído Condicionantes da evolução Tecnologia Os requisitos do utilizador Tecnologia Das diversas evoluções tecnológicas ocorridas durante a última década, parece interessante destacar 4 que modificaram o modo de conceber os sistemas computacionais. As redes de computadores Os computadores pessoais Sistemas abertos As arquiteturas multiprocessador As redes de computadores Arpanet (EUA) – Linhas dedicadas l Cyclades (França) – Redes públicas Internet – Analógica – RDIS – ADSL LAN’s Os computadores pessoais • Contribuíram para o rápido desenvolvimento da tecnologia da micro eletrônica. Tecnologia Evolução da Densidade (de 3 em 3 anos) Circuitos lógicos Duplica Memórias Quadruplica Discos Duplica Evolução do desempenho (tempo de ciclo) 50% em 2 anos 33% em 10 anos 33% em 10 anos Sistemas Abertos Inicialmente os sistemas operativos eram criados pelo fabricante do hardware. – Melhor adaptação do software ao hardware – Dificuldade de intercâmbio de informação entre sistemas diferentes Sistemas operativos abertos – Definição do sistema complexa – Existência de plataformas As arquiteturas multiprocessador Teve o seu ponto mais marcante na década de 70 e 80, devido à existência de aplicações com elevado calculo numérico. Destinados a super computadores Os requisitos dos utilizadores Os requisitos dos utilizadores podem ser segmentados de acordo com a atividade desenvolvida. Finais Programadores Gestores Utilizadores Finais Visão integrada de recursos locais e remotos Segurança e confiabilidade no acesso a recursos remotos Disponibilidade dos recursos remotos Programadores Interfaces normalizadas Ambientes de desenvolvimento especializados Gestores de sistemas Capacidade de evolução, extensibilidade Segurança do sistema local Confiabilidade e disponibilidade dos recursos fornecidos VANTAGENS E PROBLEMAS Vantagens Potenciais Adequação à estrutura das organizações – Distribuição física e acesso distribuído a sistemas de informação das organizações Adequação à interação entre pessoas – E-mail, boletins eletrônicos – Suporte para trabalho cooperativo Adequação dos serviços às máquinas – Mainframes para SGBDs, PCs para as aplicações gráficas Vantagens Potenciais Partilha de recursos – Poder computacional, informação, periféricos Difusão de informação entre pessoas – E-mail Acesso a serviços – E-business Vantagens Potenciais Disponibilidade – A falha de uma parte pode não perturbar todo o sistema – Replicação Flexibilidade –Escalabilidade no desenvolvimento de sistemas com elevado potencial Problemas da Distribuição Falha independente das componentes do sistema – Máquinas diretamente envolvidas nas interações – Infra-estrutura de comunicação Interação via troca de mensagens – Incapacidade de comunicar com o destinatário – Perda de mensagens, alteração do seu fluxo ou conteúdo – Latência variável – Heterogeneidade de representação de dados Problemas da Distribuição Segurança – Acesso não autorizado a recursos remotos – Inspeção ou alteração ilegítimas de conteúdos de mensagens Desenvolvimento de software – Concepção de sistemas operativos, linguagens e aplicações mais apropriados – Definir o que deve ser feito pelo sistema e o que deve ser feito pelos utilizadores Arquitetura do Sistema Arquitetura do Sistema Suporte à comunicação distribuída Plataformas Cliente/Servidor Sistema operativo distribuído Suporte à comunicação Distribuída Estruturado em 7 níveis Cada nível possui: – Uma funcionalidade própria – Uma API – Um protocolo para dialogar com níveis idênticos Formato das mensagens trocadas Semântica das mensagens trocadas 2 grupos de protocolos – Com ligação (connection-oriented) Ligar, negociar, interactuar, terminar – Sem ligação (connectionless) Maquina A Maquina B Nível i+1 Nível i Nível i-1 Nível i Suporte à comunicação Distribuída 1 – Físico Transmissão física de bits 2 - Lógico (Data Link ) Endereçamento físico Controlo de erros do nível físico 3 – Rede Localização de receptores Encaminhamento (routing) Fragmentação 4 – Transporte Terminais para envio/recepção Comunicação entre extremos Semânticas de transmissão 5 – Sessão Multiplexagem Controlo de fluxo adicional Gestão de contextos adicional 6 – Apresentação Conversão de informação estruturada 7 – Aplicação Interação aplicacional pretendida Suporte à comunicação Distribuída Nível Rede: – IP (Internet Protocol) – Resolução de endereços Nível Transporte – TCP (Transport Control Protocol) Circuitos virtuais – UDP (User Datagram Protocol) Suporte à comunicação Distribuída Interação baseada na troca de mensagens – Facilidade de transporte para múltiplos sistemas – Exemplos: aplicações/protocolos telnet, ftp, SMTP Problemas: – Cada aplicação possui um protocolo próprio – Exploração do protocolo por terceiros – Desempenho Plataformas Cliente/Servidor Máquinas autónomas e heterogéneas Sistemas operativos autónomos e heterogéneos – Sem administração comum Um conjunto de requisitos mínimos para garantir inter operacionalidade: – Protocolos de comunicação comuns – Aplicações cliente e serviços: telnet, ftp - Envio e recepção de e-mail - Sistema de arquivos distribuído Plataformas Cliente/Servidor Aplicação Aplicação Sistemas de Arquivos E/S E/S Gestão de Memória Gestão de Memória Comunicação entre processos Comunicação entre processos Gestão de Processos Gestão de Processos Plataformas Cliente/Servidor Aplicação Sistemas de Arquivos E/S Gestão de Memória Comunicação entre processos Gestão de Processos Micro Núcleo Micro Núcleo