CCT320 - 2 - Introdução Aos Sistemas Distribuídos



Comments



Description

CCT320 – Sistemas Distribuídos2 Rafael Frinhani [email protected] 2014 UNIVERSIDADE FEDERAL DE ITAJUBÁ CCT320 – Sistemas Distribuídos 2 Aulas: 3ª feiras 10:10 (Sala C1103) e 5ª feiras 10:10 (Sala I2102) Referências Bibliográficas Básicas CCT320 – Sistemas Distribuídos  TANENBAUM, A. & STEEN, M. V. "Sistemas Distribuídos - Princípios e Paradigmas", 2ª Edição, Pearson Education do Brasil, Copyright © 2008.  COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. ”Distributed Systems – Concepts and Design", 5 th Edition, Pearson Education Inc., Copyright © 2012. 3 CCT320 – Sistemas Distribuídos Referências Bibliográficas Auxiliares  YADAV, S.C & SINGH, S.K. "An introduction to client/server computing" New Age Internatinal Ltd. Publishers, Copyright © 2009.  JIA, W. & Zhou, W. "Distributed Network Systems - From Concepts to Implementations" Springer Science + Business Media, Inc., Copyright © 2005.  Kshemkalyani, A.D. & Singhal, M. "Distributed Computing - Principles, Algorithms and Systems", Cambridge University Press, Copyright © 2008. CCT320 – Sistemas Distribuídos 4 Atividades Avaliativas 1ª Avaliação (15/Abril) = 30pts 2ª Avaliação (03/Julho) = 30pts Trabalhos = 20pts Seminário = 20pts Observações: - Não existe prova substitutiva; - Presença  75%; - 01 Exame Especial, condições para realização: - Frequência  75%; - Ter obtido  40 pontos durante o semestre; CCT320 – Sistemas Distribuídos CCT320 – Sistemas Distribuídos 5 OBJETIVOS Aula introdutória. Apresentar os conceitos e definições, principais componentes, desafios, tipos e exemplos de sistemas distribuídos. AGENDA  Definição  Componentes  Características  Desafios  Tipos  Exemplos CCT320 – Sistemas Distribuídos 6 “... consiste de uma coleção de máquinas autônomas conectadas por redes de comunicação e equipadas com sistemas de software projetados para produzir um ambiente de computação integrado e consistente.” Weijia Jia 1. SISTEMAS DISTRIBUÍDOS – Definição (1/3) INTERNET CCT320 – Sistemas Distribuídos 7 INTRANET 1. SISTEMAS DISTRIBUÍDOS – Definição (2/3) CCT320 – Sistemas Distribuídos 8 COMPUTAÇÃO MÓVEL E UBÍQUA 1. SISTEMAS DISTRIBUÍDOS – Definição (3/3) CCT320 – Sistemas Distribuídos 9 HARDWARE Cliente (ex. computador pessoal, sensor, smartphone, tablet, notebook) e Servidores (tradicionais e virtuais). Computação Pessoal 1. SISTEMAS DISTRIBUÍDOS – Componentes (1/3) CCT320 – Sistemas Distribuídos 10 HARDWARE Cliente (ex. computador pessoal, sensor, smartphone, tablet, notebook) e Servidores (tradicionais e virtuais). Computação Pessoal PDAs 1. SISTEMAS DISTRIBUÍDOS – Componentes (1/3) CCT320 – Sistemas Distribuídos 11 HARDWARE Cliente (ex. computador pessoal, sensor, smartphone, tablet, notebook) e Servidores (tradicionais e virtuais). Servidores Computação Pessoal PDAs Supercomputadores 1. SISTEMAS DISTRIBUÍDOS – Componentes (1/3) CCT320 – Sistemas Distribuídos 12 REDE Local Area Networks, (LANs), Wide Area Networks (WANs) e Internet. 1. SISTEMAS DISTRIBUÍDOS – Componentes (2/3) CCT320 – Sistemas Distribuídos SOFTWARE Sistemas Operacionais Distribuídos, Aplicações e Middleware. Fonte: Tanenbaum, A.S & Steen, M.V “Distributed Systems – Principles and Paradigms”, 2 nd Edition, Pearson Prentice Hall, Copyright © 2007 1. SISTEMAS DISTRIBUÍDOS – Componentes (3/3) 13 CCT320 – Sistemas Distribuídos 14 1. SISTEMAS DISTRIBUÍDOS – Componentes (3/3) SOFTWARE Sistemas Operacionais Distribuídos, Aplicações e Middleware. CCT320 – Sistemas Distribuídos 15 1. SISTEMAS DISTRIBUÍDOS – Características  Baixo acoplamento e atrasos na comunicação; CCT320 – Sistemas Distribuídos 16 1. SISTEMAS DISTRIBUÍDOS – Características  Baixo acoplamento e atrasos na comunicação; O baixo acoplamento de um serviço está relacionado com a sua capacidade de ser independente de outros serviços para realizar a sua tarefa. CCT320 – Sistemas Distribuídos 17 1. SISTEMAS DISTRIBUÍDOS – Características  Baixo acoplamento e atrasos na comunicação;  Processos em sistemas computacionais distintos com probabilidade de falhas; CCT320 – Sistemas Distribuídos 18 1. SISTEMAS DISTRIBUÍDOS – Características  Baixo acoplamento e atrasos na comunicação;  Processos em sistemas computacionais distintos com probabilidade de falhas;  Comunicação geralmente não confiável, onde existem atrasos, variação de atrasos, perdas e em alguns casos baixas larguras de banda; CCT320 – Sistemas Distribuídos 19 1. SISTEMAS DISTRIBUÍDOS – Características  Baixo acoplamento e atrasos na comunicação;  Processos em sistemas computacionais distintos com probabilidade de falhas;  Comunicação geralmente não confiável, onde existem atrasos, variação de atrasos, perdas e em alguns casos baixas larguras de banda;  Dificuldade em definir a ordem dos eventos e estado global do sistema, uma vez que a comunicação acontece pela troca de mensagens;  Ambiente geralmente marcado pela heterogeinadade. CCT320 – Sistemas Distribuídos 20 1. SISTEMAS DISTRIBUÍDOS – Desafios (1/8) 1. Heterogeneidade 2. Sistemas abertos 3. Segurança 4. Escalabilidade 5. Tratamento de falhas 6. Concorrência 7. Transparência CCT320 – Sistemas Distribuídos 21 1. SISTEMAS DISTRIBUÍDOS – Desafios (2/8) 1. Heterogeneidade Sistemas finais são heterogêneos em diferentes aspectos:  Rede;  Hardware;  Sistema Operacional;  Linguagens de Programação;  Implementação de diferentes desenvolvedores; “A padronização é o caminho para o convívio das diversidades” CCT320 – Sistemas Distribuídos 22 1. SISTEMAS DISTRIBUÍDOS – Desafios (2/8) 1. Heterogeneidade (cont.) Middleware Camada de software intermediaria que oferece uma abstração de programação, mascaramento da heterogeneidade da rede, do Sistema Operacional, do hardware e de linguagens de programação. ex. CORBA, RMI. CCT320 – Sistemas Distribuídos 23 1. Heterogeneidade (cont.) Migração de código ou código móvel  Código que pode ser enviado de um computador para outro e ser executado no destino. Java applets  Estratégias: Virtual Machines Mobilidade de Aplicação Uma aplicação em execução pode ser migrada entre diferentes computadores. 1. SISTEMAS DISTRIBUÍDOS – Desafios (2/8) Applet é um software aplicativo que é executado no contexto de outro programa (ex. web browser). Geralmente têm algum tipo de interface de usuário. CCT320 – Sistemas Distribuídos 24 2. Sistemas Abertos Um SD aberto oferece serviços de acordo com regras padronizadas para a sintaxe e a semântica desses serviços. Em redes a abertura é obtida através de protocolos, em SDs é especificada por uma linguagem de descrição de interface (IDL - Interface Description Language). IDLs descrevem a interface de forma independente da linguagem permitindo a comunicação entre componentes desenvolvidos por linguagens diferentes (ex. entre componentes escritos em C++ e componentes escritos em Java). 1. SISTEMAS DISTRIBUÍDOS – Desafios (3/8) CCT320 – Sistemas Distribuídos 25 - IDLs geralmente focam na sintaxe de serviços (especificam nomes de funções, parâmetros, valores de retorno) não focam na semântica. - IDLs bem especificadas permitem que entidades independentes construam implementações de interfaces diferentes mas que funcionam do mesmo modo. - Boas especificações são completas (tudo que é necessário foi especificado) e neutras (não prescrevem como deve ser a aparência da implementação); 2. Sistemas Abertos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Desafios (3/8) CCT320 – Sistemas Distribuídos 26 - IDLs geralmente focam na sintaxe de serviços (especificam nomes de funções, parâmetros, valores de retorno) não focam na semântica. - IDLs bem especificadas permitem que entidades independentes construam implementações de interfaces diferentes mas que funcionam do mesmo modo. - Boas especificações são completas (tudo que é necessário foi especificado) e neutras (não prescrevem como deve ser a aparência da implementação); 2. Sistemas Abertos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Desafios (3/8) Interoperabilidade (coexistência e cooperação de implementações e componentes de fornecedores distintos mas especificados por um padrão comum); Portabilidade (até que ponto aplicações desenvolvidas para um SD podem ser executadas em outro SD sem a necessidade de modificação). CCT320 – Sistemas Distribuídos 27 2. Sistemas Abertos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Desafios (3/8) CCT320 – Sistemas Distribuídos Utilização da IDL com duas linguagens diferentes 28 2. Sistemas Abertos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Desafios (3/8) CCT320 – Sistemas Distribuídos Característica que determina se um sistema pode ser estendido de diferentes maneiras. 1. No hardware: Inclusão de dispositivos de fabricantes distintos. 2. No software:  Incorporação de módulos do SO  Protocolos de comunicação  Recursos compartilhados “Abertura” pode ser obtida com:  Especificação e documentação.  Disponibilização destas aos desenvolvedores. Órgãos que padronizam: IEEE, RFC, ISO, OMG-CORBA 29 2. Sistemas Abertos (cont.) SOs “abertos”: UNIX-like (Linux, FreeBSD,etc)  Recursos (arquivos, processos e IPC – Interprocess Communication) são acessíveis aos programadores via chamadas de sistema padronizadas e APIs.  Pode acomodar “facilmente” novos dispositivos.  Não é dependente de um hardware específico, arquitetura ou versão de kernel desde que um software seja implementado no espaço de usuário. 1. SISTEMAS DISTRIBUÍDOS – Desafios (3/8) CCT320 – Sistemas Distribuídos 30 3. Segurança  Recursos (dados, informações) são mantidos em SD e podem possuir alto valor para os seus usuários.  Componentes básicos da Segurança: – Confidencialidade: É a propriedade da informação pela que não estará disponível ou divulgada a indivíduos, entidades ou processos sem autorização. – Integridade: Significa que a informação não foi alterada de forma não autorizada ou indevida. – Disponibilidade: É a propriedade que classifica os recursos e informações quanto a sua disponibilidade no momento e local esperados. 1. SISTEMAS DISTRIBUÍDOS – Desafios (4/8) CCT320 – Sistemas Distribuídos 31 4. Escalabilidade Pequena escala:  2 estações de trabalho e um servidor de arquivos, em uma LAN (Local Area Network) Larga escala:  Uma centena de máquinas em uma Intranet acessando diversos servidores de arquivo, impressão, etc.  Centenas de milhares (mesmo milhões) de máquinas acessando servidores na Internet . Um SD executado concorrentemente por determinado número de máquinas deve permitir o aumento da quantidade de máquinas sem comprometer o desempenho. Um SD pode operar em diversas escalas: Problemas com o aumento de escala: GARGALO!!! 1. SISTEMAS DISTRIBUÍDOS – Desafios (5/8) CCT320 – Sistemas Distribuídos 32 4. Escalabilidade (cont.) Gargalos na Rede: Substituição de links de comunicação por outros mais velozes. Otimização da largura de banda e priorização de tráfego. 1. SISTEMAS DISTRIBUÍDOS – Desafios (5/8) CCT320 – Sistemas Distribuídos 33 4. Escalabilidade (cont.) Gargalos na Rede: Substituição de links de comunicação por outros mais velozes. Otimização da largura de banda e priorização de tráfego. 1. SISTEMAS DISTRIBUÍDOS – Desafios (5/8) Gargalos em Recursos e Serviços:  Servidores muito solicitados podem ser replicados (RAID).  A coerência das cópias deve ser preservada.  Cloud Computing = Virtualização + Web Services + Clusters/Grids CCT320 – Sistemas Distribuídos 34 5. Tratamento de Falhas Tudo é susceptível a falha, principalmente sistemas computacionais. São vários os pontos passíveis de falha: - Rede, links de comunicação; - Equipamentos (servidores, HDs, memória, fonte, etc); - Software (bugs, invasão, etc); - Infraestrutura (energia, incêndio, etc); Sistema tolerante a falhas É a habilidade do sistema operar corretamente na ocorrência de falhas (alta disponibilidade). 1. SISTEMAS DISTRIBUÍDOS – Desafios (6/8) CCT320 – Sistemas Distribuídos 35 5. Tratamento de Falhas (cont.) 1. SISTEMAS DISTRIBUÍDOS – Desafios (6/8) DISPONIBILIDADE É a medida que define a porção do tempo em que o sistema permaneceu operacional ou ativo.  MTTF (Mean Time To Failure): Tempo médio que o sistema leva até falhar.  MTTR (Mean Time To Recover): Tempo médio que o sistema leva para recuperar da falha.  MTBF (Mean Time Between Failures): Tempo médio entre as falhas. CCT320 – Sistemas Distribuídos 36 5. Tratamento de Falhas (cont.) 1. SISTEMAS DISTRIBUÍDOS – Desafios (6/8) Classificação de Datacenters Tier 1: Data Center básico. Tier 2: Data Center com componentes redundantes. Tier 3: Data Center que permite manutenção sem paradas. Tier 4: Data Center tolerante a falhas. Tempo de disponibilidade TIER Fonte: Uptime Institute CCT320 – Sistemas Distribuídos 37 5. Tratamento de Falhas (cont.) 1. SISTEMAS DISTRIBUÍDOS – Desafios (6/8) Custo de downtime por hora Fonte: Uptime Institute CCT320 – Sistemas Distribuídos 38 6. Concorrência Arquitetura centralizada (1 processador): A concorrência pode ser contornada através da intercalação de instruções de diferentes processos. Arquitetura multiprocessada (N processsadores): O Paralelismo permite executar o trabalho N vezes mais rápido que um sistema monoprocessado. 1. SISTEMAS DISTRIBUÍDOS – Desafios (7/8) A execução concorrente é uma característica intrínseca de um SD, em que os processos disputam pelos recursos compartilhados. CCT320 – Sistemas Distribuídos 39 7. Transparência “Ocultação (para o usuário final ou programador) da separação dos componentes distribuídos em um SD de modo que o sistema seja percebido como um todo, em vez e uma coleção de componentes” Coulouris. Transparência de Acesso: Permite que recursos locais ou remotos possam ser acessados com operações idênticas. Transparência de localização: Permite que recursos sejam acessados sem conhecer a localização física ou lógica. Transparência de replicação: Permite que várias instâncias de um recurso sejam usadas para aumentar a confiabilidade, disponibilidade, desempenho sem que o usuário/programador tenha conhecimento das réplicas. 1. SISTEMAS DISTRIBUÍDOS – Desafios (8/8) CCT320 – Sistemas Distribuídos 40 7. Transparência (cont.) Transparência de falhas: Permite ocultar ou tolerar falhas de modo que os usuários concluam suas tarefas. Transparência de mobilidade: Permite a movimentação de recursos sem afetar a tarefa do usuário ou aplicação. Transparência de desempenho: Permite que o sistema seja reconfigurado para melhorar o desempenho à medida que as cargas variam. Transparência de escalabilidade: Permite que o sistema e processos se expandam em escala, sem alterar a estrutura do sistema ou algoritmos. 1. SISTEMAS DISTRIBUÍDOS – Desafios (8/8) Transparência de concorrência: Permite que vários processos operem de forma concorrente sem interferência entre eles. CCT320 – Sistemas Distribuídos 41 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 42 Sistemas de Computação Distribuídos Computação em Cluster O hardware subjacente consiste em um conjunto de workstations ou PCs semelhantes, conectados por meio de uma rede local de alta velocidade. Cada nó executa o mesmo sistema operacional. Agrupa os sistemas distribuídos utilizados para tarefas de computação de alto desempenho. Pode ser classificada em: 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 43 Computação em Cluster O hardware subjacente consiste em um conjunto de workstations ou PCs semelhantes, conectados por meio de uma rede local de alta velocidade. Cada nó executa o mesmo sistema operacional. Computação em Grade (Grid Computing) Modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas geralmente geograficamente distantes, que formam uma máquina virtual. Os processos podem ser executados no momento em que as máquinas não estão sendo utilizadas pelo usuário, assim evitando o desperdício de processamento da máquina utilizada. Agrupa os sistemas distribuídos utilizados para tarefas de computação de alto desempenho. Pode ser classificada em: Sistemas de Computação Distribuídos 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 44 Computação em Cluster Exemplo de sistema de computação em cluster - Tem como característica a homogeneidade; - O nó mestre executa o middleware necessário para a execução de programas e o gerenciamento do cluster; - Beowulf, Mosix são exemplos de softwares para clustering. Sistemas de Computação Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 45 Sistemas de Computação Distribuídos (cont.) Computação em Cluster (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 46 Columbia (20 Altix clusters executando Linux totalizando 10.240 processadores) Sistemas de Computação Distribuídos (cont.) Computação em Cluster (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 47 Tipos de Cluster Sistemas de Computação Distribuídos (cont.) HPC (High Performance Computing): Tarefas que exigem um nível elevado de processamento são divididas entre os nós e executadas de forma paralela com objetivo de reduzir o tempo de processamento. Quanto mais nós menos tempo será necessário para executar todo processamento. 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 48 Tipos de Cluster Sistemas de Computação Distribuídos (cont.) HPC (High Performance Computing): Tarefas que exigem um nível elevado de processamento são divididas entre os nós e executadas de forma paralela com objetivo de reduzir o tempo de processamento. Quanto mais nós menos tempo será necessário para executar todo processamento. HAC (High Availability Cluster): Tem como objetivo manter um ou mais serviços disponíveis para atender às requisições dos clientes por um período de tempo próximo a 100%. O objetivo dos clusters HAC é eliminar os pontos únicos de falha. 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 49 Tipos de Cluster Sistemas de Computação Distribuídos (cont.) HPC (High Performance Computing): Tarefas que exigem um nível elevado de processamento são divididas entre os nós e executadas de forma paralela com objetivo de reduzir o tempo de processamento. Quanto mais nós menos tempo será necessário para executar todo processamento. HAC (High Availability Cluster): Tem como objetivo manter um ou mais serviços disponíveis para atender às requisições dos clientes por um período de tempo próximo a 100%. O objetivo dos clusters HAC é eliminar os pontos únicos de falha. LBC(Load Balance Cluster): São um misto de cluster de alto desempenho, com cluster de alta disponibilidade onde vários nodos, chamados load balancers, atendem requisições de um serviço qualquer e repassam aos demais nodos do cluster que fazem o processamento das informações. Esta técnica faz com que não haja um ponto de gargalo. 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 50 Computação em Grade - Tem como característica a heterogeneidade; - Recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições (organização virtual). - SETI@Home e BOINC. Sistemas de Computação Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 51 Computação em Grade - Tem como característica a heterogeneidade; - Recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições (organização virtual). - SETI@Home e BOINC. Arquitetura em camadas para sistemas de computação em Grade Sistemas de Computação Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 52 Sistemas de Computação Distribuídos (cont.) Computação em Grade (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 53 SETI (Search for Extraterrestrial Intelligence) Projeto que tem por objetivo analisar o máximo de sinais de rádio captados por radiotelescópios terrestres, a partir da ideia que se existe alguma forma de vida inteligente no universo, ela tentará se comunicar com outra formas de vida através de ondas eletromagnéticas (sinais de rádio), pois estas representam a forma de transmissão de informação mais rápida conhecida. http://setiathome.berkeley.edu/ Computação em Grade (cont.) Sistemas de Computação Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 54 BOINC (Berkeley Open Infrastucture For Network Computing) É uma plataforma, na forma de framework, que visa facilitar a implementação de sistemas de computação voluntária, funcionando através de uma grade computacional de dimensões mundiais. http://boinc.berkeley.edu/ Computação em Grade (cont.) Sistemas de Computação Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (1/3) CCT320 – Sistemas Distribuídos 55 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) CCT320 – Sistemas Distribuídos 56 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Sistemas de Informação Distribuídos Sistema de Informação Conjunto de componentes inter relacionados que trabalham juntos para coletar, recuperar, processar, armazenar e distribuir informações com a finalidade de facilitar o planejamento, o controle, a coordenação, a análise e o processo decisório em organizações. CCT320 – Sistemas Distribuídos 57 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Sistemas de Informação Distribuídos Sistema de Informação Conjunto de componentes inter relacionados que trabalham juntos para coletar, recuperar, processar, armazenar e distribuir informações com a finalidade de facilitar o planejamento, o controle, a coordenação, a análise e o processo decisório em organizações. Utiliza os conceitos de Sistemas de Informação aplicados em um ambiente distribuído. SIDs tem a informação como recurso principal e são voltados para integrá-las a partir de aplicações separadas, em uma aplicação com visão global. Sistemas de Informação Distribuídos (SID) CCT320 – Sistemas Distribuídos 58 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Origem dos SIDs Sistemas de Informação Distribuídos (cont.) Aplicações foram criadas para atender demandas isoladas na empresa o que repercutiu em uma grande quantidade de aplicações que passaram a ter problemas de interoperabilidade. CCT320 – Sistemas Distribuídos 59 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Origem dos SIDs Sistemas de Informação Distribuídos (cont.) Uma aplicação em rede consistia de um servidor que executava a aplicação + banco de dados. Aplicação era disponibilizada através de programas remotos, onde clientes podiam enviar uma requisição ao servidor que executava uma operação e enviava a resposta. O conceito de transação distribuída representa o nível mais baixo de interação onde o cliente empacota várias requisições e as envia para servidores diferentes. Aplicações foram criadas para atender demandas isoladas na empresa o que repercutiu em uma grande quantidade de aplicações que passaram a ter problemas de interoperabilidade. CCT320 – Sistemas Distribuídos 60 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Origem dos SIDs (cont.) Sistemas de Informação Distribuídos (cont.) A medida que as aplicações se tornavam mais sofisticadas e eram gradualmente separadas em componentes independentes de BD e processamento, surgiu a necessidade da integração que permitisse que aplicações se comunicassem diretamente umas com as outras. Isso originou o conceito de EAI (Enterprise Application Integration - Integração de Aplicações Empresariais). CCT320 – Sistemas Distribuídos 61 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Exemplo de SID – Portal de Turismo Sistemas de Informação Distribuídos (cont.) CCT320 – Sistemas Distribuídos 62 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Exemplo de SID – Sistema SCADA (Supervisory Control and Data Acquisition) Sistemas de Informação Distribuídos (cont.) Monitoramento e controle de sistema de energia primários e secundários. CCT320 – Sistemas Distribuídos 63 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Exemplo de SID – Sistema SCADA (cont.) Sistemas de Informação Distribuídos (cont.) CCT320 – Sistemas Distribuídos 64 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Sistemas de Informação Distribuídos (cont.) Exemplo de SID – Sistema SCADA (cont.) CCT320 – Sistemas Distribuídos 65 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Exemplo de SID – Sistema de Apontamento Eletrônico da Produção Sistemas de Informação Distribuídos (cont.) Metodologia OEE (Overall Effectiveness Equipament - Eficiência Global do Equipamento) visa monitorar o desempenho e disponibilidade de equipamentos. CCT320 – Sistemas Distribuídos 66 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) Tipos de Sistemas Distribuídos Sistemas de Informação Distribuídos (cont.) 1. Transação Distribuída  Aplicações de Banco de Dados; 2. EAI (Enterprise Application Integration)  Integração de Aplicações Empresariais;  Aplicações existentes nas empresas (legadas) situadas em diferentes setores, precisam realizar troca de informações. CCT320 – Sistemas Distribuídos 67 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 1. Transação Distribuída Sistemas de Informação Distribuídos (cont.) Operações em banco de dados costumam ser realizadas na forma de transações o que requer primitivas especiais que devem ser fornecidas pelo SD ou pela linguagem em tempo de execução. Exemplos de primitivas para transações CCT320 – Sistemas Distribuídos 68 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 1. Transação Distribuída (cont.) Sistemas de Informação Distribuídos (cont.) RPCs (Remote Procedure Calls - Chamadas de Procedimentos Remotos), costumam ser encapsuladas em transações resultando em um RPC transacional. BEGIN_TRANSACTION e END_TRANSACTION delimitam o escopo de uma transação. As operações entre essas primitivas formam o corpo da transação. CCT320 – Sistemas Distribuídos 69 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 1. Transação Distribuída (cont.) Sistemas de Informação Distribuídos (cont.) RPCs (Remote Procedure Calls - Chamadas de Procedimentos Remotos), costumam ser encapsuladas em transações resultando em um RPC transacional. BEGIN_TRANSACTION e END_TRANSACTION delimitam o escopo de uma transação. As operações entre essas primitivas formam o corpo da transação. Atômicidade: Tudo é feito ou nada é feito. Consistência: Ao final da transação o BD deve refletir a realidade. Isolamento: Uma transação não pode interferir na outra. Durabilidade: Persistência. O resultado deve estar gravado no BD. PROPRIEDADES DAS TRANSAÇÕES: CCT320 – Sistemas Distribuídos 70 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 1. Transação Distribuída (cont.) Sistemas de Informação Distribuídos (cont.) Transações Aninhadas: Uma transação pode se ramificar e gerar filhos (subtransações) visando ganho de desempenho ou simplificação de programação. Proporcionam um modo natural de dividir transações em várias máquinas. Transação Aninhada CCT320 – Sistemas Distribuídos 71 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 1. Transação Distribuída (cont.) Sistemas de Informação Distribuídos (cont.) Monitor de Processamento de Transação (Monitor TP): No middleware forma o núcleo para integração de aplicações a nível do servidor ou do banco de dados. Oferece para aplicação um modelo de programação transacional de forma a permitir que ela acesse vários servidores/BDs. Transação Aninhada CCT320 – Sistemas Distribuídos 72 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 2. EIA (Enterprise Application Integration) Sistemas de Informação Distribuídos (cont.) Quanto mais as aplicações se desvinculavam dos BDs mais evidente era a necessidade para integrar aplicações independentemente de seus BDs. O ideal é que componentes de aplicação deveriam se comunicar diretamente uns com os outros e não apenas por requisição/resposta. Middleware como facilitador de comunicação em EAI CCT320 – Sistemas Distribuídos 73 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 2. EIA (Enterprise Application Integration) (cont.) Sistemas de Informação Distribuídos (cont.) Modelos de middleware de comunicação  RPC (Remote Procedure Calls)  RMI (Remote Method Invocations)  MOM (Message-Oriented Middleware) CCT320 – Sistemas Distribuídos Fases de execução de uma RPC 74 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 2. EIA (Enterprise Application Integration) (cont.) Sistemas de Informação Distribuídos (cont.) RPC (Remote Procedure Calls) Um componente de aplicação pode enviar uma requisição a um outro executando uma chamada de procedimento local, que resulta no empacotamento da requisição como uma mensagem e seu envio ao servidor. O resultado da chamada de procedimento será enviado de volta à aplicação origem. CCT320 – Sistemas Distribuídos Fases de execução de uma RMI 75 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 2. EIA (Enterprise Application Integration) (cont.) Sistemas de Informação Distribuídos (cont.) RMI (Remote Method Invocations) Tem o mesmo princípio de funcionamento dos RPCs, mas permite chamadas a objetos remotos em vez de aplicações. Permite que o cliente invoque métodos remotos no servidor (que contém o objeto remoto), como se o objeto remoto estivesse contido na máquina cliente. CCT320 – Sistemas Distribuídos 76 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 2. EIA (Enterprise Application Integration) (cont.) Sistemas de Informação Distribuídos (cont.) Desvantagens do RPC e RMI Forte Acoplamento - Cliente e servidor precisam estar ligados e em funcionamento no momento da comunicação; - Cliente e servidor precisam saber exatamente como se referir um ao outro; CCT320 – Sistemas Distribuídos 77 1. SISTEMAS DISTRIBUÍDOS – Tipos (2/3) 2. EIA (Enterprise Application Integration) (cont.) Sistemas de Informação Distribuídos (cont.) MOM (Message-Oriented Middleware) Aplicações enviam mensagens a pontos lógicos de contato (messaging provider) e dessa forma podem indicar seu interesse por um tipo específico de mensagem. O MOM cuidará para que todas as mensagens sejam entregues a essas aplicações. Formam os sistemas do tipo publicar/subescrever. Sistema baseado em MOM CCT320 – Sistemas Distribuídos 78 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) CCT320 – Sistemas Distribuídos 79 Sistemas Embarcados Distribuídos 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Equipamentos caracterizados pelo tamanho pequeno, alimentação por bateria, mobilidade (conexão sem fio) visando transparência e onipresença (ubiquidade). Exemplos:  Telefones celulares, smartphones e tablets;  Dispositivos acoplados ao corpo (Wearable Computing);  Redes de Sensores;  Dispositivos incorporados em aparelhos e objetos;  Interfaces I/O com usuários;  Robôs; CCT320 – Sistemas Distribuídos 80 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Requisitos para aplicações pervasivas: 1. Adotar mudanças contextuais: Um dispositivo deve estar continuamente ciente que devido a mobilidade seu ambiente pode mudar com o tempo. CCT320 – Sistemas Distribuídos 81 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Requisitos para aplicações pervasivas: 1. Adotar mudanças contextuais: Um dispositivo deve estar continuamente ciente que devido a mobilidade seu ambiente pode mudar com o tempo. 2. Incentivar composição ad hoc: Dispositivos em sistemas pervasivos serão utilizados de modos diferentes por usuários diferentes. CCT320 – Sistemas Distribuídos 82 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Requisitos para aplicações pervasivas: 1. Adotar mudanças contextuais: Um dispositivo deve estar continuamente ciente que devido a mobilidade seu ambiente pode mudar com o tempo. 2. Incentivar composição ad hoc: Dispositivos em sistemas pervasivos serão utilizados de modos diferentes por usuários diferentes. 3. Reconhecer compartilhamento como padrão: Dispositivos se juntam ao sistema para acessar e fornecer informações o que requer meios para ler, armazenar, gerenciar e compartilhar informações com facilidade. CCT320 – Sistemas Distribuídos 83 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Sistemas Domésticos (Automação Residencial) CCT320 – Sistemas Distribuídos 84 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Sistemas Domésticos (Automação Residencial) (cont.) CCT320 – Sistemas Distribuídos 85 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Redes de Sensores Consiste de dezenas a milhares de nós relativamente pequenos, equipados com sensores para medição e monitoramento de ambientes. Utilizam comunicação wireless e são alimentados por bateria o que justifica suas capacidades restritas de comunicação e energia. Armazenamento dos dados no site do operador (a) ou nos sensores (b) CCT320 – Sistemas Distribuídos 86 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Redes de Sensores (cont.) Monitoramento de atividade de vulcões CCT320 – Sistemas Distribuídos 87 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Redes de Sensores (cont.) Monitoramento de incêndios florestais CCT320 – Sistemas Distribuídos 88 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Sistemas para tratamento de Saúde Inclui dispositivos desenvolvidos para fins médicos onde sensores que constituem uma Body Area Network (Rede de Area Corporal) monitoram aspectos fisiológicos do indivíduo. O objetivo é detectar previamente sintomas que podem comprometer a saúde do paciente e com isso alertar os médicos e prevenir internações de emergência. CCT320 – Sistemas Distribuídos 89 Sistemas Embarcados Distribuídos (cont.) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Sistemas para tratamento de Saúde (cont.) CCT320 – Sistemas Distribuídos 90 Sistemas Embarcados Distribuídos (cont.) BAN (Body Area Network) 1. SISTEMAS DISTRIBUÍDOS – Tipos (3/3) Sistemas para tratamento de Saúde CCT320 – Sistemas Distribuídos 91 1. SISTEMAS DISTRIBUÍDOS – Exemplos (1/4) CCT320 – Sistemas Distribuídos Sistemas Distribuídos abrangem vários dos desenvolvimentos tecnológicos mais significativos dos últimos anos. O crescimento do comércio electrônico através de empresas como Amazon e eBay; tecnologias para pagamento como o PayPal e PagSeguro; serviços bancários e de negociação online; sistemas complexos de disseminação de informação para os mercados financeiros. Finanças e Comércio Sociedade da Informação O crescimento da World Wide Web como um repositório de informações e conhecimentos; o desenvolvimento de motores de busca na web para buscar esse vasto repositório como o Google e o Yahoo; o surgimento de bibliotecas digitais e a digitalização em grande escala de fontes de informação legados (ex. livros com o Google Books), a importância crescente de conteúdo gerado pelo usuário através de sites como YouTube, Wikipedia e Flickr, o surgimento de redes sociais através de serviços como o Facebook eo MySpace. 92 1. SISTEMAS DISTRIBUÍDOS – Exemplos (2/4) CCT320 – Sistemas Distribuídos Indústrias criativas e de entretenimento O surgimento de jogos online e de entretenimento altamente interativo; a disponibilidade de música e filme em casa através de centros de mídia em rede e mais amplamente na Internet através de conteúdo para download ou streaming; o papel do conteúdo gerado pelo usuário como uma nova forma de criatividade através de serviços como o YouTube. O crescimento da informática na saúde com sua ênfase nos registros eletrônicos online de pacientes e questões relacionadas à privacidade, o papel crescente da telemedicina como apoio ao diagnóstico remoto ou serviços mais avançados, como cirurgia remota (incluindo o trabalho de colaboração entre equipes de saúde), o aumento da aplicação de redes e sistemas de tecnologia embarcada no monitoraramento de pacientes. Saúde e Qualidade de Vida 93 1. SISTEMAS DISTRIBUÍDOS – Exemplos (3/4) CCT320 – Sistemas Distribuídos Educação O surgimento do e-learning através ferramentas baseadas na web, tais como ambientes virtuais de aprendizagem, apoio para o ensino à distância, apoio à aprendizagem colaborativa. O uso de tecnologias de localização como GPS em sistemas de localização de rotas e sistemas de gestão de tráfego mais abrangentes, o desenvolvimento de serviços de mapas baseados na web como o MapQuest, Google Maps e Google Earth. Transporte e Logística O surgimento da computação em cluster como tecnologia fundamental para eScience, incluindo o uso de redes complexas de computadores para apoiar o armazenamento, análise e tratamento de dados científicos, o uso da computação em grade como uma tecnologia que permite a colaboração mundial entre grupos de cientistas. Ciência 94 1. SISTEMAS DISTRIBUÍDOS – Exemplos (4/4) CCT320 – Sistemas Distribuídos Gestão Ambiental O uso da tecnologia de rede de sensores para o monitoramento e gerencia do ambiente natural, para fornecer alerta de desastres naturais (ex. terremotos, enchentes, incêndios, tsunamis) e coordenar a resposta de emergência, a captura e análise de parâmetros ambientais globais para entender melhor fenômenos naturais complexos, tais como alterações climáticas. 95 1. SISTEMAS DISTRIBUÍDOS CCT320 – Sistemas Distribuídos  Sistemas Distribuídos são constituídos por hardware, software e rede que trabalham em conjunto para produzir um ambiente integrado e consistente.  Principais desafios: Heterogeneidade, abertura, segurança, escalabilidade, tratamento de falhas, concorrência e transparência.  São classificados em Sistemas de Computação Distribuídos, Sistemas de Informação Distribuídos e Sistemas Embarcados Distribuídos.  Possuem aplicações no comércio eletrônico, na saúde e qualidade de vida, indústrias criativas e entretenimento, educação, transporte e logística e gestão ambiental. Resumo 96 1. SISTEMAS DISTRIBUÍDOS CCT320 – Sistemas Distribuídos Dúvidas? Perguntas? Sugestões?
Copyright © 2024 DOKUMEN.SITE Inc.