sistemas distribuÍdos. histórico anos 50 - sistemas operacionais tipo lote: aumentar a...
TRANSCRIPT
![Page 1: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/1.jpg)
SISTEMAS DISTRIBUÍDOS
![Page 2: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/2.jpg)
Histórico
Anos 50 - Sistemas Operacionais tipo Lote:Aumentar a capacidade de
processamento de programasUsuário ia ao computadorProcessamento Seqüencial
![Page 3: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/3.jpg)
Histórico
Sistema de tipo Lote com E/S através de um sistema auxiliar Dispositivo especial Transporte manual de fitas
“Distribuição local” do processamento
Sistema de computação centralizado
![Page 4: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/4.jpg)
Histórico
Sistema de Interrupção e Canais de E/S Automação da E/S das fitas
MultiprogramaçãoSistema de Computação CentralizadoSistemas Operacionais de Tempo
Compartilhado Aumentar a produtividade dos programadores Computador vai ao usuário Surgimento dos terminais de E/S Distribuição da apresentação dos dados
![Page 5: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/5.jpg)
Histórico
Mainframes interligados Distribuição da Apresentação dos Dados (terminais
de E/S) Distribuição do Processamento
Comunicação de Dados e Teleprocessamento Processamento Centralizado Apresentação da Informação - Distribuída
![Page 6: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/6.jpg)
Histórico
Anos 80 - Surgimento dos Microcomputadores: Produtividade dos usuários e desenvolvedores Conexão com os mainframes Apresentação dos dados Crescimento da distribuição do processamento
![Page 7: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/7.jpg)
Histórico
Anos 80 - Difusão da Tecnologia da Informação: Instrumento de transformação dos processos de
negócios das empresas Aumento insignificante dos níveis de produtividade
com relação aos investimentos em TI Perda em níveis de produtividade quando
profissionais trabalham individualmente
![Page 8: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/8.jpg)
Histórico
Anos 90 - Interligação dos Recursos:Surgimento das Redes Locais
Essência da Computação Distribuída
Evolução da tecnologia de redesRepetidor, ponte, roteador, gateway
![Page 9: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/9.jpg)
Histórico
Sistema de Rede: Compartilhar periféricos, dados,
programas Acessar base de dados Comunicação entre usuários Computadores autônomos Sistemas Operacionais: independente
e de rede Interação em forma de comunicação Gerenciamento do sistema
![Page 10: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/10.jpg)
Histórico
Sistemas Distribuídos Extensão dos sistemas de redes onde
a interação inclui comunicação e cooperação/colaboração.
Cooperação▪ Todos por todos.▪ Cada um com a sua tarefa.
Colaboração▪ Todos por um.▪ Todos com a mesma finalidade.
![Page 11: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/11.jpg)
Definição
Um Sistema Distribuído é:Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente - Tanenbaum
É um sistema em que os componentes se localizam em uma rede de computadores e coordenam suas ações através de passagem de mensagens - Coulouris
![Page 12: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/12.jpg)
Características
HeterogeneidadeAberturaEscalabilidadeSegurançaTratamento de falhasConcorrênciaTransparência
![Page 13: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/13.jpg)
HeterogeneidadeAplica-se a:
Redes Hardware de computador Sistemas Operacionais Linguagens de programação Implementações por diferentes
programadoresSoluções:
Middleware Máquinas virtuais (ex: Applets Java)
![Page 14: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/14.jpg)
Abertura
Determina se o sistema pode ser estendido ou reimplementado de diversas maneiras.
Como alcançar: Publicação de interfaces Documentação e especificação Código aberto (Open-source)
Exemplos: RFCs Repositório
![Page 15: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/15.jpg)
Escalabilidade
Suporta o aumento dos recursos e usuários mantendo um desempenho satisfatório.
Desafios: Controlar o custo dos recursos físicos Controlar a perda de performance
(quantidade) Prevenir esgotamento de recursos (ex:
IP) Evitar gargalos de performance
(centralização)
![Page 16: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/16.jpg)
Segurança
CaracterísticasConfidencialidadeIntegridadeDisponibilidade
DesafiosNegação de Serviço (DoS)Código Móvel
![Page 17: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/17.jpg)
Tratamento de Falhas
Tipos de falhasFísica, software e humana
Técnicas:Detecção de falhasOcultação de falhasTolerância a falhas (replicação)Recuperação de falhas
![Page 18: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/18.jpg)
Concorrência
Permitir que recursos compartilhados sejam utilizados por diversos processos
Questões:SincronizaçãoDisponibilidadeSegurança
![Page 19: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/19.jpg)
Transparência Transparência de acesso: recursos locais e
remotos são acessados pelas mesmas operações.
Transparência de localização: recursos são acessados sem que sua localização seja determinada.
Transparência de concorrência: processos executam concorrentemente, utilizando recursos compartilhados, sem interferirem na execução dos outros.
Transparência de replicação: múltiplas cópias de um recurso para aumentar a performance e disponibilidade dos seus serviços, sem o conhecimento das réplicas por usuários e programadores.
![Page 20: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/20.jpg)
Transparência Transparência a falhas: ocultar e tratar as
falhas, hardware ou software, permitindo que as aplicações ou usuários completem suas tarefas.
Transparência de mobilidade: movimento de recursos ou clientes dentro do sistema não podem afetar a operação dos usuários ou programas.
Transparência de performance: sistema deve permitir ser reconfigurado para melhorar a performance conforme a variação de carga.
![Page 21: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/21.jpg)
![Page 22: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/22.jpg)
![Page 23: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/23.jpg)
![Page 24: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/24.jpg)
![Page 25: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/25.jpg)
![Page 26: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/26.jpg)
![Page 27: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/27.jpg)
![Page 28: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/28.jpg)
![Page 29: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/29.jpg)
![Page 30: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/30.jpg)
![Page 31: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/31.jpg)
![Page 32: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/32.jpg)
![Page 33: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/33.jpg)
![Page 34: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/34.jpg)
![Page 35: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/35.jpg)
Tipos de Sistemas Distribuídos
![Page 36: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/36.jpg)
Sistemas de Computação Distribuídos Utilizada para tarefas de computação de alto
desempenho. Geralmente, utilizados para processamento de grandes conjuntos de dados (Computação intensiva)
Algumas aplicações: Pesquisa da cura de doenças (AIDS, câncer)
Descoberta de vida Extra-Terrestre
Processamento de imagens (NASA)
Processamentos de dados climáticos
![Page 37: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/37.jpg)
Sistemas de Computação Distribuídos
Dois tipos principais:
Computação em cluster
Computação em grade
![Page 38: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/38.jpg)
Sistemas de Computação Distribuídos
Computação em cluster
Um conjunto de computadores conectados em rede de alta velocidade sendo utilizado, em geral, para programação paralela.
Grande ganho na relação preço / desempenho
Geralmente, utiliza-se máquinas iguais e o mesmo Sistema Operacional
![Page 39: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/39.jpg)
Cluster►Cluster (ou clustering) é um sistema que relaciona dois ou mais
computadores para que estes trabalhem de maneira conjunta no intuito de processar uma tarefa.
►Dividem entre si as atividades de processamento e executam este trabalho de maneira simultânea.
►Cada computador que faz parte do cluster recebe o nome de nó (ou node).
►Deve ser "transparente", ou seja, ser visto pelo usuário ou por outro sistema que necessita deste processamento como um único computador.
►É extremamente importante que o padrão adotado permita a inclusão ou a retirada de nós com o cluster em funcionamento, do contrário, o trabalho de remoção e substituição de um computador que apresenta problemas, por exemplo, faria a aplicação como um todo parar.
![Page 40: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/40.jpg)
Cluster
![Page 41: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/41.jpg)
Sistemas de Computação Distribuídos
Computação em grade
Conjunto de computadores de diferentes hardwares, softwares, tecnologia de rede e pertencentes a organizações diferentes.
Alto grau de heterogeneidade Hardware, sistema operacional, rede, etc.
O recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições.
![Page 42: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/42.jpg)
Grid
![Page 43: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/43.jpg)
Grade
É um modelo de rede de computadores onde os recursos de cada
computador são compartilhados com todos os outros computadores no
sistema.
Poder de processamento, memória e armazenamento de dados se tornam
recursos “coletivos”, onde usuários que tem autorização podem utilizar e
aproveitar para determinadas tarefas.
O projeto Search for Extraterrestrial Intelligence (SETI) foi um dos primeiros
sistemas em grade a ganhar a atenção.
A missão do SETI é analisar dados reunidos por rádio-telescópios na busca
de evidências de comunicação alienígena inteligente.
O projeto SETI criou um programa chamado SETI@home, que interliga
computadores conectados em rede para formar um supercomputador
virtual.
![Page 44: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/44.jpg)
Grade
![Page 45: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/45.jpg)
Sistemas de Informação Distribuídos Têm como característica a integração das
aplicações existentes.
Principal desafio é a interoperabilidade das aplicações, isto é, uma aplicação conseguir “conversar” com a outra aplicação.
![Page 46: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/46.jpg)
Sistemas de Informação Distribuídos
Dois tipos principais:
Sistema de Processamento de Transação
Integração de Aplicações Empresariais
![Page 47: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/47.jpg)
Sistemas de Informação Distribuídos
Sistema de Processamento de Transação
Em geral, são aplicações centradas em transações de banco de dados. A aplicação é formada por um conjunto de transações.
Transações podem conter sub-transações e acessar mais de um banco de dados. Normalmente são monitoradas por um Monitor de transação.
![Page 48: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/48.jpg)
Sistemas de Informação Distribuídos
Sistema de Processamento de Transação
As transações devem ser: Atómicas: transação é indivisível
Consistentes: não viola invariantes do sistema
Isoladas: Permite transações concorrentes
Duráveis: após o “commit” de uma transão as alterações feitas ficam gravadas
![Page 49: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/49.jpg)
Propriedades das transações
Atômicas: para o mundo exterior, a transação acontece como se fosse indivisível.
Consistentes: a transação não viola invariantes de sistema.
Isoladas: transações concorrentes não interferem umas nas outras.
Duráveis: uma vez comprometida uma transação, as alterações são permanentes
ACID (para memorizar)
![Page 50: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/50.jpg)
Exemplo de Transação Aninhada
![Page 51: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/51.jpg)
Integração usando Monitor TP
![Page 52: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/52.jpg)
Integração usando Middleware de comunicação
![Page 53: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/53.jpg)
Sistemas Distribuídos Pervasivos
Sistemas decorrentes do uso de computação móvel e embutida, nas quais o comportamento esperado é a instabilidade;
Pequeno tamanho
Alimentados por bateria;
Comunicação sem fio;
Não possui controle administrativo humano, podendo:
Adotar mudanças contextuais
Incentivar composição ad hoc
Reconhecer compartilhamento como padrão
![Page 54: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/54.jpg)
Sistemas Pervasivos - ExemplosSistemas para tratamento de Saúde
![Page 55: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/55.jpg)
Sistemas Pervasivos - ExemplosRedes de sensores sem fio
![Page 56: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/56.jpg)
Sistemas de Informação Distribuídos
![Page 57: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/57.jpg)
Sistemas de Informação Distribuídos Integração de Aplicações Empresariais
São sistemas onde os componentes de aplicações se comunicam diretamente um com o outro, e não por meio de um sistema de processamento de transação.
Surgiram da necessidade de integrar as diversas aplicações de/entre empresas.
A ideia é que os componentes das aplicações passem a se comunicar diretamente.
![Page 58: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/58.jpg)
Sistemas de Informação Distribuídos
Integração de Aplicações Empresariais
Muitos modelos de comunicação entre aplicações:
Chamadas de procedimento remoto (RPC – Remote Procedure Calls)
Inovações de método remoto (RMI – Remote Method Invocations)
Middleware orientado a mensagem (MOM – Message-oriented Middleware)
![Page 59: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/59.jpg)
Sistemas Distribuídos Pervasivos Sistemas Distribuídos Pervasivos
A estabilidade não é mais a regra
Entrada da computação móvel e embutida
A instabilidade é o comportamento esperado
Ausência geral de controle administrativo humano
Configurado por seus proprietários
Os dispositivos descobrem automaticamente seu ambiente e se encaixa o melhor que puderem
Aspecto importante, os dispositivos se juntam ao sistema para acessar informações
Não existe transparência!!!
![Page 60: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/60.jpg)
Sistemas Distribuídos Pervasivos
Três exemplos:
Sistemas Domésticos
Sistemas eletrônicos para tratamento de saúde
Redes de Sensores
![Page 61: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/61.jpg)
EscalabilidadeSão três os critérios para se
estabelecer a escalabilidade:
1. Quanto ao seu tamanho: Um sistema é escalável em relação ao seu tamanho, quando é possível se inserir mais usuários e recursos ao sistema em si.
2. Quanto ao local: Um sistema é escalável do ponto de vista geográfico, quando os usuários e recursos podem estar um longe dos outros.
3. Quanto a sua administração: Um sistema é escalável do ponto de vista de sua administração quando ele pode ser facilmente gerenciado, mesmo que abranja muitas organizações administrativas distintas.
![Page 62: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/62.jpg)
EscalabilidadeMas, existem problemas...
Quando um sistema escalável contém essas várias dimensões, muitas vezes apresenta queda de desempenho na medida em que é ampliado
Conceito Exemplo
Serviços Centralizados Único servidor para todos os dados
Dados Centralizados Lista telefônica on-line
Algoritmos Centralizados Fazer roteamento com base em informações completas
![Page 63: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/63.jpg)
Escalabilidade - Problemas
Tamanho: Ao inserirmos continuamente mais usuários tendemos a chegar a um ponto onde o servidor centralizado atinja seu limite operacional, transformando-se no gargalo do sistema.
Mesmo que admitamos que esse servidor tenha capacidade de processamento e de armazenagem ilimitadas, ainda assim sofrerá restrições devido a sua capacidade de comunicação ser limitada.
![Page 64: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/64.jpg)
Escalabilidade - Problemas Segurança: Imaginemos um servidor
destinado apenas ao armazenamento de informações sigilosas sobre dados médicos, financeiros ou confidenciais de pessoas.
Nesse caso, a implementação obrigatoriamente terá que ser feita num único servidor que deve estar numa sala separada, de alta segurança, separado de outras partes do sistema.
Copiar o servidor para melhorar o desempenho para outras localizações, definitivamente, não seria uma boa ideia, nessa situação.
![Page 65: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/65.jpg)
Escalabilidade - Problemas Impensável também seria uma solução com
dados centralizados que contivesse os dados de 50 milhões de pessoas. Não haveria limitações quanto ao espaço em disco armazenado, mas sem dúvida haveria saturação de todas as linhas de comunicação que o acessam.
É o que ocorreria, por exemplo, se todo Sistema de Nomes de Domínio (Domain Name System – DNS) estivesse implementado numa única tabela. Se cada requisição para resolver um URL fosse passada para esse hipotético servidor, ninguém estaria usando a Web (o que seria uma solução ao problema, também...).
![Page 66: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/66.jpg)
Escalabilidade e o tipo de comunicação A localização de um serviço numa rede local é
representada no esquema abaixo, baseada em broadcast.
Um processo envia a todas máquinas, perguntando a cada uma se está executando o serviço que ele necessita.
Apenas as máquinas que estão executando tal serviço respondem informando seu endereço.
Basta imaginar o que ocorreria se tentássemos localizar dessa maneira um serviço na Internet...
Em vez disso, é preciso projetar
serviços especiais de localização,
que talvez tenham alcance
mundial e capazes de atender
a bilhões de usuários.
![Page 67: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/67.jpg)
Escalabilidade e o tipo de comunicação
Ampliar sistemas distribuídos a partir de sistemas projetados para redes locais é algo difícil, pois estes foram criados a partir da filosofia síncrona.
Assim quando uma parte requisita um serviço, fica bloqueada até que uma mensagem seja enviada de volta. Numa rede local (LANs), na pior das hipóteses o retorno dessa mensagem demora algumas centenas de microssegundos.
Todavia, quando pensamos numa rede de longa distância, essa comunicação pode demorar centenas de milissegundos, ou seja, três ordens de grandeza mais lenta. Ainda existe a questão de que em redes de longa distância a comunicação é não confiável.
![Page 68: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/68.jpg)
Técnicas de Escalabilidade
1. Ocultar latências de comunicação A ideia central é simples: evita-se esperar por
respostas a requisições remotas, evitando esperar por respostas a requisições remotas (e lentas).
Uma requisição a uma máquina remota fica pendente, enquanto esta é liberada para continuar executando trabalhos úteis ao lado requisitante.
![Page 69: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/69.jpg)
Técnicas de Escalabilidade
1. Ocultar latências de comunicação Essencialmente a aplicação
requisitante deve ser escrita usando comunicação assíncrona para evitar bloquear processos à espera de receber respostas.
Quando a resposta retorna, a aplicação é interrompida e um manipulador especial é chamado para concluir a requisição emitida anteriormente.
Implica no tratamento de respostas como eventos e o uso de do conceito de várias tarefas em paralelo para continuar processamento.
![Page 70: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/70.jpg)
Técnicas de Escalabilidade1. Ocultar latências de comunicação
Exemplificando, se um acesso for feito a um banco de dados por meio de formulários (a), o preenchimento de formulários pode ser feito com o envio de uma mensagem separada para cada campo e a espera por um reconhecimento do servidor, que verifica se há algum erro sintático antes de aceitar a entrada.
Ora, uma alternativa bem melhor é apresentada no outro esquema (b), onde o cliente é quem preenche o formulário e devolve completamente preenchido.
Essa é a forma usada
atualmente suportada
pela Web, sob a forma
de applets e Java e
Javascript.
![Page 71: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/71.jpg)
Técnicas de Escalabilidade
![Page 72: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/72.jpg)
Técnicas de Escalabilidade
2. Distribuição A idéia é distribuir entre vários computadores
os serviços e dados. Decompondo os componentes em partes menores, que por sua vez são distribuídas por todo o sistema distribuído.
Exemplificando, o DNS (Sistema de Nomes de Domínios da Internet), o espaço de nomes do DNS é organizado em hierarquia em uma árvore de domínios, dividida em zonas de superposição em acordo com a figura. Assim, nenhum servidor prestará todos os serviços nem possuirá todos os dados, portanto se um servidor falhar, nem tudo está perdido...
![Page 73: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/73.jpg)
Técnicas de Escalabilidade
![Page 74: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/74.jpg)
Técnicas de Escalabilidade3. Replicação
Aumenta a disponibilidade dos serviços e melhora o balanceamento de carga no sistema, resultando na melhoria do desempenho.
Aumenta a disponibilidade do serviço nas zonas da rede onde há réplicas.
Caching é uma forma de replicação controlada pelo cliente. A existência de várias cópias pode levar a problemas de consistência.
Se for necessário ter garantias fortes de consistência tem de se atualizar as cópias imediatamente. Além disso, se duas atualizações ocorrerem simultaneamente, também se exige a atualização de cada cópia na mesma ordem.
![Page 75: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/75.jpg)
As ciladas da escalabilidade Premissas falsas adotadas ao se
desenvolver pela primeira vez uma aplicação distribuída:
1. Rede é confiável
2. Rede é segura
3. Rede é homogênea
4. Topologia constante
5. Latência é zero
6. Largura de banda é infinita
7. Custo de Transporte é zero
8. Existe somente um administrador
![Page 76: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/76.jpg)
Exemplo de solução (Escalabilidade) Internet Banking
Soluções bancárias on-line têm muitas características e capacidades em comum, mas tradicionalmente também têm algumas particularidades que são específicas da aplicação.
Categorias Transacionais (por exemplo, realizando uma operação financeira
como uma transferência de conta para conta, pagamento de uma conta, transferência bancária e aplicações até pedir um empréstimo, etc)
Apresentação da Fatura e do Pagamento por meio Eletrônico.
Transferência de fundos entre a conta de um cliente, sua poupança ou a conta de outro cliente.
Investimentos
Não transacionais (por exemplo, as declarações online, os links de seleção, chat, etc)
Extratos Bancários.
Saldos.
![Page 77: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/77.jpg)
Exemplo de solução (Escalabilidade) "Home banking" também pode se referir ao uso de
um teclado numérico para enviar tons abaixo de uma linha telefônica com instruções para o banco.
O serviço on-line começou em Nova York em 1981, quando quatro dos principais bancos da cidade (Citibank, Chase Manhattan, Chemical e Manufacturers Hanover) ofereciam serviços de home banking usando o sistema de videotexto.
Por causa do fracasso comercial de videotexto esses serviço bancário nunca se tornou
popular, exceto na França, onde o uso de Videotexto (Minitel) foi subsidiado pelo
serviço de telefonia e do Reino Unido, onde o sistema Prestel foi usado.
![Page 78: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/78.jpg)
Exemplo de solução (Escalabilidade) Internet Banking – Segurança (exemplo,
continuação)
Proteção através de auntenticação de senha única, como é o caso na
maioria dos sites de compras seguros. Essa sistemática nem sempre é
considerada segura por alguns países. Basicamente existem dois métodos
diferentes de segurança para bancos online:
O PIN/TAN sistema em que o PIN é uma senha, utilizados para o login e
TANs representando uma lista de senhas de autenticação. TANs podem
ser distribuídos de diferentes maneiras, a mais popular é o de enviar
uma lista de TANs para o usuário do banco. A maneira mais segura de
usar TANs é para gerá-los por necessidade dependendo do tempo num
algoritmo chamado de dois fatores. Normalmente transações
bancárias on-line com PIN / TAN são feitas através de um navegador
da Web usando conexões SSL protegido, de modo que não há
necessidade de criptografia adicional.
![Page 79: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/79.jpg)
Exemplo de solução (Escalabilidade) Internet Banking – Segurança (exemplo,
continuação)
Assinatura bancária online baseada em
todas as transações criptografadas e
assinadas digitalmente. As chaves para a
geração de assinatura e criptografia podem
ser armazenados em cartões inteligentes
ou qualquer outro meio de memória,
dependendo da aplicação concreta.
![Page 80: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/80.jpg)
Técnicas de Escalabilidade Internet Banking – Segurança (exemplo, continuação)
Ataques A maioria dos ataques a operação bancária em linha usados hoje são
baseados em enganar o usuário para roubar dados de login e TANs válidos. Exemplos bem conhecidos são phishing e os keylogger / cavalos de tróia.
Outro método de ataque consiste na manipulação do software usado de tal maneira que as operações corretas são mostrados na tela e transações falsas são assinadas em segundo plano.
Contramedidas Existem várias contramedidas que tentam evitar ataques. Certificados
digitais são usados contra phishing e pharming, o uso da classe-3 leitores de cartão é uma medida para evitar a manipulação das operações com o software baseado na assinatura variantes banking. Para
proteger seus sistemas contra cavalos de Tróia,
os usuários devem usar antivírus e ter cuidado
com o software baixado ou anexos enviados
por e-mail.
![Page 81: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/81.jpg)
Técnicas de Escalabilidade Internet Banking – Segurança (exemplo, continuação)
Ataques A maioria dos ataques a operação bancária em linha usados hoje são
baseados em enganar o usuário para roubar dados de login e TANs válidos. Exemplos bem conhecidos são phishing e os keylogger / cavalos de tróia.
Outro método de ataque consiste na manipulação do software usado de tal maneira que as operações corretas são mostrados na tela e transações falsas são assinadas em segundo plano.
Contramedidas Existem várias contramedidas que tentam evitar ataques. Certificados
digitais são usados contra phishing e pharming, o uso da classe-3 leitores de cartão é uma medida para evitar a manipulação das operações com o software baseado na assinatura variantes banking.
Para proteger seus sistemas contra cavalos de Tróia, os usuários devem usar antivírus e ter cuidado com o software baixado ou anexos enviados
por e-mail.
![Page 82: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/82.jpg)
RPC - Chamada de procedimento Remoto
Definição
Permite que um programa procedural chame
uma função que reside em outro computador
tão convenientemente como se esta função
fosse parte do mesmo programa que
executa, no mesmo computador.
![Page 83: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/83.jpg)
Chamada de procedimento Remoto
![Page 84: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/84.jpg)
Chamada de procedimento Remoto
![Page 85: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/85.jpg)
Chamada de procedimento RemotoDefinição
RPC foi desenvolvida para permitir aos
programadores se concentrar nas tarefas exigidas
de um programa chamando funções e,
tornando transparente ao programador o
mecanismo que permite que as partes do
aplicativo se comuniquem através de uma rede.
![Page 86: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/86.jpg)
Chamada de procedimento Remoto
História:
A idéia de RPC data de 1976, quando foi descrito no RFC 707. Um
dos primeiros usos comerciais da tecnologia foi feita pela Xerox
no "Courier", de 1981.
A primeira implementação popular para Unix foi o Sun RPC
(atualmente chamado ONC RPC), usado como base do Network
File System e que ainda é usada em diversas plataformas.
![Page 87: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/87.jpg)
Chamada de procedimento Remoto
História:
De forma análoga, atualmente utiliza-se XML
como linguagem de descrição de interface e
HTTP como protocolo de rede para formar
serviços web, cujas implementações incluem
SOAP e XML-RPC.
![Page 88: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/88.jpg)
Chamada de procedimento Remoto Características:
a definição de um procedimento remoto especifica
parâmetros de entrada e de saída.
parâmetros de entrada são passados para o servidor
enviando os valores dos argumentos na mensagem
(request message).
parâmetros de saída são retornados para o cliente na
mensagem de resposta (reply message).
um procedimento remoto é executado em um
ambiente diferente do seu chamador e não pode
acessar variáveis do ambiente do chamador, como
variáveis globais por exemplo
![Page 89: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/89.jpg)
Chamada de procedimento remoto
![Page 90: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/90.jpg)
Chamada de procedimento Remoto
Funcionamento:
O cliente na inicialização localiza o servidor.
O cliente invoca um procedimento local (stub), que
serializa os parâmetros (marshalling), constrói uma
mensagem, invoca a camada de comunicação e
bloqueia.
![Page 91: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/91.jpg)
Chamada de procedimento Remoto
Funcionamento:
O servidor recebe a mensagem e:
-faz o despacho para o stub apropriado.
-este recupera os parâmetros (unmarshalling), e chama o procedimento escrito pelo programador.
-o resultado é serializado e uma mensagem é enviada de volta.
O stub do cliente recebe a mensagem, faz o unmarshalling
e devolve a resposta ao código cliente.
![Page 92: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/92.jpg)
Chamada de procedimento Remoto
![Page 93: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/93.jpg)
Chamada de procedimento RemotoStubs:
Escondem os códigos de chamada à rede.
Protege as aplicações (cliente e servidor) dos
detalhes referentes à comunicação pela rede.
Cabe ao stub a passagem de parâmetros entre os
procedimentos.
![Page 94: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/94.jpg)
Chamada de procedimento RemotoSistemas RPC divididos em duas classes:
A) mecanismos RPC integrados a uma linguagem de programação particular que inclui uma notação para definir as interfaces
o cliente utiliza-se de bibliotecas de procedimentos convencionais para realizar as tarefas, como por exemplo a localização de um servidor que possa tratar seus requisitos. Tais bibliotecas são chamadas de user package.
![Page 95: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/95.jpg)
Chamada de procedimento Remoto
B) Uso de de uma linguagem de definição de interface
(IDL) para descrever as interfaces entre clientes e
servidores.
Uma interface especifica as características dos
procedimentos fornecidos por um servidor que são
visíveis aos clientes deste servidor. Estas
características incluem: nomes dos procedimentos e
os tipos de seus parâmetros (assinatura).
![Page 96: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/96.jpg)
Chamada de procedimento RemotoIDL – Interface Definition Language
As interfaces são especificadas num formato
independente de linguagem: as IDL.
Isto permite que muitos detalhes de
implementação sejam escondidos da
especificação da interface.
![Page 97: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/97.jpg)
Chamada de procedimento RemotoIDL
Especifica características dos procedimentos fornecidos por um servidor que são visíveis aos clientes do servidor:
Assinaturas dos procedimentos, ou seja, seus nomes, junto com os tipos de seus argumentos de entrada e saída.
Exemplo de IDL
![Page 98: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/98.jpg)
Chamada de procedimento remotoImplementação:
O software que suporta RPC tem três tarefas:
a) Processar a interface: integrar mecanismos RPC com os programas cliente e servidor em uma linguagem de programação convencional. Isto inclui o marshalling e unmarshalling de argumentos no cliente e no servidor e o despacho das mensagens de request para o procedimento apropriado no servidor.
b) Tratar a comunicação: transmitir e receber mensagens de request e reply
c) Ligar (binding): localizar o servidor apropriado para um serviço particular
![Page 99: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/99.jpg)
Chamada de procedimento remoto
Processar a interface:
Construindo o programa cliente: Antes que um programa cliente possa executar, chamando os procedimentos remotos, é preciso que o stub seja gerado.
O stub tem o propósito de converter uma chamada a um procedimento para uma chamada remota ao mesmo procedimento.
![Page 100: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/100.jpg)
Chamada de procedimento remotoSTUB
A tarefa do stub do cliente é fazer o marshalling, isto é,
empacotar os argumentos do procedimento, os valores de
tipos de dados simples e o identificador do procedimento
em uma mensagem. O cliente deve enviar a mensagem ao
servidor e esperar pela resposta. Quando a resposta
retorna, o cliente deve fazer o unmarshalling (processo
inverso ao marshalling) e retornar os resultados.
![Page 101: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/101.jpg)
Chamada de procedimento remotoPrograma servidor:
Um sistema RPC fornecerá um despachador e um
conjunto de stubs para os procedimentos.
O despachador usa o identificador do procedimento na
mensagem enviada pelo cliente para selecionar um
dos stubs e passar os argumentos.
A tarefa de um stub no servidor é fazer o unmarshalling
dos argumentos, chamar o procedimento apropriado, e
quanto retornar, fazer o marshalling dos argumentos
de saída.
![Page 102: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/102.jpg)
Chamada de procedimento remoto
Existe um compilador de interfaces para processar
as definições de uma interface escritas em uma
linguagem de definição de interface (IDL).
Tais compiladores são projetados para produzir
componentes que podem ser combinados com
programas clientes e programas servidores, sem
quaisquer modificações nos compiladores
originais.
![Page 103: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/103.jpg)
Chamada de procedimento remoto
![Page 104: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/104.jpg)
Chamada de procedimento remotoRPC-sun e rpcgen
RPC-sun : criado orginalmente para máquinas sun. Hoje disponível em vários sistemas.
Constitui-se de: Uma linguagem de definição de interfaces (RPCL). Aplicativo rpcgen, que cria os stub de comunicação Biblioteca RPC Protocolo de comunicação para as aplicações.
![Page 105: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/105.jpg)
Chamada de procedimento remoto
![Page 106: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/106.jpg)
Chamada de procedimento remoto
Rpc-gen – criação dos arquivos
![Page 107: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/107.jpg)
Chamada de procedimento remotoLigar (binding):
Um cliente para enviar uma mensagem a um servidor,
deve utilizar um serviço de nomes disponível no
sistema distribuído.
O cliente procura neste serviço de nomes por um
servidor que possa atender à sua chamada de
procedimento.
Em geral o serviço é executado por servidores
portmmap.
![Page 108: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/108.jpg)
Chamada de procedimento remotoPortmapper:
O portmapper RPC é um servidor que converte números
de processos RPC em números no protocolo TCP/IP (ou
UDP/IP).
Ele deve estar executando para que seja possível realizar
chamadas RPC para servidores RPC em determinada
máquina.
Quando um servidor RPC é iniciado, ele irá dizer ao
portmap qual número de porta ele está ouvindo, e quais
programas RPC ele está preparado para atender.
![Page 109: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/109.jpg)
Chamada de procedimento remotoPortmapper:
![Page 110: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/110.jpg)
110
![Page 111: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/111.jpg)
111
![Page 112: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/112.jpg)
112
(a) Grupo Fechado (b) Grupo Aberto
(a) Comunicação em Grupo de Semelhantes
(b) Comunicação em Grupo Hierárquico.
![Page 113: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/113.jpg)
113
![Page 114: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/114.jpg)
114
![Page 115: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/115.jpg)
115
![Page 116: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/116.jpg)
116
É uma operação, ou conjunto de operações, em uma base de dados, ou em qualquer outro sistema computacional, que deve ser executada completamente em caso de sucesso, ou ser abortada completamente em caso de erro.
Um exemplo prosaico que ilustra este conceito é o da gravidez.
Não se diz que uma mulher está "meio grávida"; ou ela está grávida ou não está.
![Page 117: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/117.jpg)
117
![Page 118: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/118.jpg)
118
O exemplo clássico é aquele da transferência entre duas contas bancárias.
No momento de uma transferência de valores de uma conta "A" para uma conta "B", que envolve pelo menos uma operação de ajuste no saldo para cada conta, se o computador responsável pela operação é desligado por falta de energia, espera-se que o saldo de ambas as contas não tenha se alterado.
Neste caso são utilizados sistemas que suportam transações atômicas.
![Page 119: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/119.jpg)
119
![Page 120: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/120.jpg)
120
É implementada por algum mecanismo que indica que a transação foi iniciada ou terminou, ou pela manutenção de uma cópia dos dados feita antes do início da transação.
Os sistemas de arquivo que implementam transações atômicas normalmente utilizam métodos como o journaling que evitam a cópia dos dados.
![Page 121: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/121.jpg)
121
Os SGBDs utilizam sistemas de log de dados que gravam os dados ainda não confirmados.
No caso da confirmação da transação (commit), esses dados são consolidados na base de dados, por outro lado, na ocorrência de algum problema esses dados são descartados (rollback).
![Page 122: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/122.jpg)
122
![Page 123: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/123.jpg)
123
![Page 124: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/124.jpg)
124
![Page 125: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/125.jpg)
125
![Page 126: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/126.jpg)
126
![Page 127: SISTEMAS DISTRIBUÍDOS. Histórico Anos 50 - Sistemas Operacionais tipo Lote: Aumentar a capacidade de processamento de programas Usuário ia ao computador](https://reader036.vdocuments.mx/reader036/viewer/2022062512/552fc181497959413d8f3013/html5/thumbnails/127.jpg)
127