Buscar

2015.2 - Arquitetura de sistemas distribuídos - 01 - Evolução da computação

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS: 
EVOLUÇÃO DA COMPUTAÇÃO
	OBJETIVOS:
 Conhecer o docente da disciplina
 Conhecer o plano de ensino da disciplina
 Entender em que contexto os conceitos de distribuição se aplicam
 Entender o momento histórico em que o conteúdo está inserido
 Entender as características da computação centralizada e da computação distribuida
 Conhecer as vantagens e desvantagens de cada arquitetura
 Conhecer a motivação para esta evolução
 Conhecer o conceito de sistemas distribuídos
	CONTEÚDO:
Motivação
Computação centralizada
Microcomputadores e redes de computadores
Sistemas distribuídos
Características dos serviços em tempo real (tolerância a retardo, jitter)
REFERÊNCIA : 
 TANEMBAUM, A. e  STEEN, M., “Sistemas Distribuídos: Princípios e Paradigmas”, 2ª edição, Pearson Prentice Hall, 2007.
 COMER , D. , "Redes de Computadores e internet", 4ª edição, Artmed, 2007.
 COULOURIS,G.,  DOLLIMORE, J. e KINDBERG, T., “Sistemas Distribuídos: Conceitos e Projetos”, 4a Edição, Bookman, 2007.
REFERÊNCIA : 
BIBLIOGRAFIA COMPLEMENTAR : 
MATERIAL DIDÁTICO : 
- Tanembaum, A. e  Steen, M., “Sistemas Distribuídos: Princípios e Paradigmas”, 2ª edição, Pearson Prentice Hall, 2007.
 
Capítulo 1 Introdução          19 p.
Capítulo 2 Arquiteturas        22 p.
 
- Silberschatz, A.  e Galvin, P , “Fundamentos de sistemas operacionais”, 8 ª Edição, LTC, 2010.
Cap 16, Sistema de Arquivos distribuídos                            12p
 
- Deitel, H.M, "Sistemas Operacionais", 3 ª edição, Pearson Prentice Hall, 2005.
Cap 18. Sistemas distribuídos e serviços web     32p.
 
- Comer , D. , "Redes de Computadores e internet", 4ª edição, Artmed, 2007.
capítulo 28 - interação cliente-servidor    12 p.
capítulo 29 - interface de sockets             13p.
capítulo 30 - exemplo de um cliente e de um servidor 12.
Capítulo 38 – RPC e Middleware   11p.
Motivação
· No futuro, os computadores não pesarão mais do que 1,5 tonelada.
(Popular Mechanics,1949).
· Penso que há talvez no mundo um mercado para 5 computadores.
(Thomas Watson, presidente da IBM, 1943).
	Frases famosas sobre tecnologia:
· Não há nenhuma razão para que alguém queira ter um computador em casa.
(Ken Olson, presidente e fundador da Digital Equipment Corp.,1977).
· 640 K é mais do que suficiente para qualquer um.
(Bill Gates, presidente e fundador da Microsoft, 1981).
· Telefonia fixa digital
· Telefonia celular
· Internet  (discada e banda larga)
· Forno de microondas
· TV digital
· Portabilidade
O que vivemos nos últimos 20 anos ?
· Computação em nuvem
· Teletransporte
· Manipulação genética (mais !)
· Elevador espacial
· Preços mas acessíveis para telefonia e acesso a internet
O que esperar para os próximos 20 anos?
	 Mudanças comportamentais
Nativo digital: é aquele que nasceu e cresceu com as tecnologias digitais presentes em sua viva (por exemplo: videogames, internet, MP3, iPod, telefone celular, etc). Caracterizam-se principalmente por não necessitar do uso de papel nas tarefas com o computador.
	No sentido mais amplo, refere-se a pessoas nascidas a partir da década de 1970 e, geralmente, o termo foca sobre aqueles que cresceram com a tecnologia do século 21.
Imigrante digital: são membros das gerações mais antigas, são os que conseguiram aprender a usar as tecnologias digitais, uns mais, outros menos.
	O fazem como os imigrantes, se adaptam ao novo ambiente, mas sem deixar de ter o seu sotaque, isto é, o seu pé no passado. Usam as novas tecnologias, mas de uma maneira diferente das gerações mais recentes.
 O que mudou no comportamento humano em função da tecnologia ?
 Que mudança não agradou ?
 Qual a mudança que mais impactaria em sua vida ?
1970
2020
1980
Evolução Histórica do Processamento
1950
1960
Mainframe
Time-sharing
Redes
Sistemas Distribuídos
?
1. Videos: 
45 anos do mainframe:
http://www.youtube.com/watch?v=qb5EH5PSgQk
 
Rafinha 2.0 :
 
http://www.youtube.com/watch?v=UI2m5knVrvg
	Atividade estruturada : 
Computação centralizada
	O nome tem origem na forma com que estes computadores eram construídos.
	Todos os componentes (processador, memória...) do computador principal (Main) são colocados dentro de uma única estrutura (frame).
Mainframe: termo utilizado para se referenciar a um grande computador, normalmente produzido por uma grande empresa.
 Sistemas multiusuário.
 Sistemas proprietários -> hardware, software, rede.
 Instalação e manutenção feita pelo fabricante -> confiabilidade x custo.
 Pouco escalável e apresenta limites.
 Lei de Moore: em meados de 1965,o então presidente da Intel, Gordon E. Moore previu que o número de transistores dos chips teria um aumento de 100%, pelo mesmo custo, a cada período de 18 meses. Este parâmetro deve se manter até 2015 e serve para uma elevada gama de dispositivos digitais, além de CPUs, tais como câmeras fotográficas digitais (sensor que capta a imagem nas câmeras nuclear; ou CNCL, sensores que captam imagens nas câmeras fotográficas profissionais).
	 Características do mainframe :
Lei de Moore
O que é isto ?
Microcomputadores e redes de computadores
	Ampliação do parque computacional em função de:
· Processadores mais rápidos e mais baratos.
· Redes mais rápidas e acessíveis.
· Liberdade de escolha.
· Menor custo de manutenção.
· Necessidade inerente de conectividade.
Aplicação básica:
			
	- compartilhamento de recursos
 Os terminais foram substituídos pelos primeiros microcomputadores.
 Em geral, o uso de um programa emulador de terminais e uma unidade de disquete era suficiente para que um PC-XT se comportasse como um terminal.
 Em alguns casos era utilizada uma placa que compatibilizasse a forma  de comunicação serial entre os dois computadores.
	 Evolução :
Sistemas distribuídos
	Utilização das redes de computadores (locais e de longa distância) para execução colaborativa  e cooperativa de aplicações e não somente para compartilhamento de recursos.
Sistema Distribuído = Computadores + 					 Rede + Aplicação
Conceito: É um sistema em que os computadores estão conectados em rede e coordenam suas ações através de troca de mensagens.
 Segundo Tanenbaum:
	 O que é um sistema distribuído (SD) ?
 	Segundo Coulouris, um sistema distribuído é aquele no qual os componentes interligados em rede se comunicam e coordenam suas ações apenas passando mensagens.
 Sistemas de computação distribuídos:
	Utilizado para tarefas de computação de alto desempenho.
 Segundo Leslie Lamport, você sabe que existe um sistema distribuído quando a falha de um computador que você nunca ouviu falar impede que você faça qualquer trabalho.
Quando existe um sistema distribuído ?
 Muitas das diferenças entre os vários computadores e o modo como eles se comunicam, assim como a organização interna do SD estão ocultas aos usuários. 
 Usuários e aplicações podem interagir com o SD independente de onde a interação ocorra. 
- Usuários e aplicações não devem perceber quais partes do SD estão em manutenção ou sendo substituídas. 
	 Características :
- São sistemas altamente heterogêneos. 
- Os SD geralmente se organizam por meio de uma camada de software – o middleware. 
	 Características :
a) Definição: camada de software que fornece uma abstração de programação que mascara a heterogeneidade das redes, do hardware, sistema operacional e linguagem de programação.
- Exemplos: CORBA, Java RMI, ODP (Oracle) e DCOM (Microsoft).
	 Middleware :
b) Serviços:
- Invocação remota de objetos. 
- Modificação remota de eventos.
- Acesso remoto a banco de dados.
- Processamento distribuído de transações. 
a) Síncrona 
- Processos remetente e destinatário são sincronizados a cada mensagem. 
Operação de envio causa bloqueio a menos que:
		
	- A mensagem é passada
ao middleware. 	- A mensagem é recebida pelo processo destino.
	- A mensagem é processada pelo destino que então retorna uma resposta.
	 Tipos de comunicação:
b) Assíncrona 
 Operação de envio não é bloqueada. 
	- Mensagem é copiada para um buffer local.
	- Transmissão em paralelo com processamento no remetente.
 Operação de recebimento bloqueada ou não. 	- Processo bloqueado enquanto mensagem não chega.
	- Processo continua execução podendo ser notificado da chegada de uma mensagem. 
c) Persistente 
- A mensagem transmitida é armazenada pelo sistema de comunicação até que ela seja entregue ao receptor. 
- Não é necessário que a aplicação transmissora continue executando após ter transmitido a mensagem e a aplicação receptora não precisa estar executando quando a transmissão da mensagem 
- Exemplo: sistema de correio eletrônico 
d) Transiente 
- A mensagem é armazenada pelo sistema de comunicação somente enquanto as aplicações transmissora e receptora estão executando. 
- Exemplo: serviços de comunicação no nível da camada de transporte. 
 
Processos: ambiente de execução que possui uma ou mais threads.
- Processo:
• Programa em execução.
• Protegido pelo S.O. e compartilhamento de recursos por múltiplos processos transparente. 
• Alto grau de transparência e concorrência. 
	 Processos e threads
Thread: abstração de uma atividade gerada pelo S.O.
 Threads:
• Múltiplas threads compartilham uma mesma CPU.
• Esforço adicional no desenvolvimento de aplicações.
• Muitas aplicações são mais facilmente projetadas usando múltiplas threads.
• Não são protegidas umas das outras. 
Ambiente de Execução: unidade de gerenciamento de recursos (locais) do núcleo do S.O. acessados pelas threads: 
• Espaço de endereçamento.
• Recursos de comunicação e sincronização entre threads.
• Recursos de mais alto nível como arquivos e aplicações abertas. 
	 Modelos de servidores:
 Os terminais foram substituídos pelos primeiros microcomputadores.
 Em geral, o uso de um programa emulador de terminais e uma unidade de disquete era suficiente para que um PC-XT se comportasse como um terminal.
 Em alguns casos era utilizada uma placa que compatibilizasse a forma  de comunicação serial entre os dois computadores.
	 Evolução :
- Internet : sistema distribuído muito grande que permite fazer uso de seus serviços, como WWW, email e transferência de arquivos.
- Intranet: parte da internet composta por redes locais, que pode estar ligada a internet por meio de um roteador.
- Sistema de computação de cluster: cada cluster consiste em um conjunto de nós de computação controlados e acessados por meio de um único nó mestre.
	 Exemplos :
- Fonte: “SISTEMAS DISTRIBUÍDOS: PRINCÍPIOS E PARADIGMAS”, TANEMBAUM, 2ª edição, página 10.
	 Tipos de Sistemas de Distribuídos :
Existem atualmente basicamente três tipos:
 
• Sistemas de Computação Distribuídos 
• Sistemas de Informação Distribuídos 
• Sistemas Distribuídos Pervasivos 
1) Sistemas de Computação Distribuídos: computação de alto desempenho formado por dois grupos distintos: Clusters e Grids. 
a) Computação de cluster: conjunto de computadores semelhantes, interligados em uma rede local de alta velocidade e cada nó executa o mesmo sistema operacional.
	Principais características:
 
• Baixo custo relativo a um mesmo sistema formado por um supercomputador. 
• Usada em computação paralela onde um ou mais programas intensivos executa suas funções em paralelo em várias máquinas. 
• Cada cluster é formado por um conjunto de nós de computação controlados e acessados por um único nó mestre. Exemplo: Cluster Beowulf baseado em Linux. 
• É um sistema homogêneo. 
• O nó mestre controla a alocação de nós a um determinado programa, mantém a fila de jobs, mantém a interface de usuário (GUI). 
• O middleware da aplicação roda no nó mestre enquanto que os demais nós fazem e recebem acesso a ele por meio da rede de alta velocidade. 
• Migração de processos permite iniciar uma aplicação em qualquer nó (nó nativo) e depois mover transparentemente a execução desta para outros nós. 
Exemplo:
b) Computação em grade (grid): conjunto de estações de trabalho heterogêneas, conectados por meio de camadas onde cada estação pode rodar sistemas operacionais diferentes em topologias de redes diferentes e com camadas de software diferentes. 
	Recursos de diferentes organizações são reunidos para permitir a colaboração de um grupo de pessoas ou instituições.
	Principais características:
 
• Possui alto grau de heterogeneidade (nenhuma premissa é adotada em relação a hardware, sistemas operacionais, redes, domínios administrativos, entre outros).
• A camada de conectividade possui protocolos de comunicação que suportam transações em múltiplos recursos. Delega autenticação a usuários e a programas. 
• A camada de recursos é responsável por criar processos no grid ou ler dados que trafegam nele. Depende fortemente das camadas anteriores.
• A camada coletiva possui serviços para descoberta de recursos, alocação e escalonamento de tarefas no grid, replicação de dados, etc. 
• A camada de aplicação implementa a arquitetura orientada a serviços onde vários sites formam um conjunto de serviços web. Exemplo: Arquitetura de Serviços de Grade Aberta (OGSA). 
Modelo em 3 camadas de Computação em Grid:
2) Sistemas de Informação Distribuídos: é encontrada em organizações que necessitam utilizar várias aplicações em rede. 
Geralmente se aplica à integração de aplicações empresariais (EAI).
	Esta arquitetura de divide em duas partes:
processamento de transações.
integração de aplicações empresariais.
 Sistemas de processamento de transações: um servidor executa uma operação, inclui em um banco de dados, e disponibiliza em um sistema remoto para o cliente. Geralmente usados para fazer a comunicação com banco de dados remoto.
	Primitivas usadas em RPC transacional:
 
• BEGIN_TRANSACTION  Inicia uma transação. 
• END_TRANSACTION  Finaliza uma transação. 
• ABORT_TRANSACTION  Elimina a transação e restaura valores antigos. 
• READ  Ler dados em arquivos, tabelas, etc. 
• WRITE  Escreve dados em tabelas, arquivos, etc. 
b) Integração de aplicações empresariais: as aplicações se tornam mais sofisticadas, sendo separadas em componentes independentes, necessitam sua integração.
	Utiliza vários tipos de middleware para tarefas como RPC em aplicação e invocação de métodos remotos (RMI) em objetos. Exemplo: uso de middleware orientado a mensagem (MOM).
3) Sistemas distribuídos pervasivos: utiliza como nós dispositivos de computação móvel e embutidos.
	Caractérísticas:
 Instabilidade é um comportamento esperado.
 Não há controle administrativo humano.
 Descobrem automaticamente seu ambiente e “se encaixam” o melhor que puderem.
• Os dispositivos usados são geralmente pequenos e alimentados por baterias. 
• Possuem modelos de arquivos diferentes, S.O. diferentes e geralmente são configurados de acordo com o seu usuário. 
	Exemplos:
- Sistemas domésticos: redes domésticas (computadores, TVs, impressoras, dispositivos para jogos) ligadas em um único sistema
Sistemas eletrônicos para tratamento de saúde costumam ser equipados com vários sensores organizados em uma rede de área corporal e suportam processamento de dados na rede
- Redes de sensores: conjunto de dispositivos que permitem obter informações sobre um fenômeno e suportam o processamento de dados na rede.
Econômicas: melhor custo/benefício
Velocidade: pode ter mais poder computacional que mainframes
Distribuição inerente: algumas aplicações envolvem máquinas espacialmente separadas
	 Arquitetura - Vantagens de SDs sobre sistemas centralizados:
Confiabilidade (tolerância a falhas): se uma máquina quebra, o sistema como um todo pode continuar
 Capacidade de crescimento incremental (escalabilidade) : poder computacional pode ser adicionado em pequenos incrementos
Compartilhamento de dados: permite o acesso a uma base comum de dados por vários usuários
Compartilhamento de dispositivos: permite o compartilhamento de dispositivos caros por vários usuários
Comunicação: facilita comunicação humana
Flexibilidade: distribui a carga sobre máquinas disponíveis com um custo mais efetivo
	 Arquitetura - Vantagens de SDs sobre PCs independentes:
a) Software: pouco software existente para SD.
- Falta de padronização para desenvolvimento de software.
- Desenvolver SD pode ser uma tarefa extremamente complexa. 
- SDs são diferentes de softwares tradicionais pois seus componentes estão dispersos por uma rede. 
	 Arquitetura - Desvantagens de SDs
b) Sistema: falta de uma divisão clara entre sistema/aplicação.
- O uso de muitas tecnologias pode facilitar ou dificultar a tarefa, a experiência da equipe de desenvolvimento é que define a linha divisória. 
c) Rede: rede pode saturar ou causar outros problemas (latência e possibilidade de congestionamento na rede).
d) Segurança: acesso fácil também aplica-se aos dados privativos.
	 Arquitetura - Desvantagens de SDs
- Construir um sistema distribuído não é trivial e existem ciladas devem ser observadas.
- São sistemas altamente heterogêneos e deve oferecer fácil acesso aos seus recursos remotos. 
- Ocultar da melhor forma possível o fato de que os recursos são distribuídos em uma rede. 
- Deve ser aberto e poder ser expandido. 
- É essencialmente um conjunto escalável. 
- Os SDs geralmente se organizam por meio de uma camada de software – o middleware.
	 Metas na construção de SDs :
• Groupware: grupo de pessoas geograficamente dispersas que trabalham juntas. 
– Teleconferência. 
– Edição colaborativa.
– Aplicativos Compartilhados. 
– Preocupação com a segurança.
	 Recursos compartilhados:
Acesso a recursos
Transparência da distribuição
3) Abertura 
4) Escalabilidade
	 Quatro metas sugeridas por Tanenbaum na construção de SDs :
Facilitar aos usuários e as aplicações o acesso a recursos remotos e seu compartilhamento de maneira controlada e eficiente
Dentre os recursos temos:
	- Impressoras 
	- Computadores 
	- Facilidades de armazenamento
	- Dados 
	- Páginas Web
	- Redes
	 1) Acesso a recursos :
	 2) Transparência da distribuição :
Um sistema distribuído aberto é um sistema que oferece serviços de acordo com regras padronizadas que descrevem a sintaxe e a semântica desses serviços.
– Protocolos de Redes.
– Linguagem de Definição de Interface (IDL). 
– Interoperabilidade.
– Portabilidade.
– Escalabilidade (tamanho, geografia, administração).
	 3) Abertura :
Escalável em relação a seu tamanho
	- Possibilidade de adicionar mais usuários e recursos ao sistema
 
Escalável em termos geográficos
	- Usuários e recursos podem estar longes uns dos outros
Escalável em termos administrativos
	- Deve ser fácil de gerenciar mesmo que envolva várias organizações
	 4) Escalabilidade :
1. A rede é confiável 2. A latência é zero 3. A largura de banda é infinita 4. A rede é segura 5. A topologia não muda 6. Existe só um administrador 7. O custo de transportes é zero 8. A rede é homogênea
	As 8 falácias (ciladas) da computação distribuída (Peter Deutch): erros comuns ao desenvolver um sistema distribuído
	Atributos dos sistemas distribuídos
 Latência: tempo decorrido entre o início de uma operação e seu término. O termo latência é usado, normalmente, para comunicações entre partes de um sistema.
 Speedup: termo que significa ganho relativo de velocidade ou desempenho. Como exemplo de speedup, podemos citar a razão dos tempos de execução sequencial e o paralelo.
 Escalabilidade: capacidade de melhoria do desempenho do sistema distribuído conforme cresce o número de elementos processadores.
 Disponibilidade: característica que indica quanto tempo o sistema funcionará ininterruptamente sem ser afetado por falhas, manutenção preventiva ou corretiva etc.
	
 Tolerância a falhas: capacidade de o sistema sobreviver à falha de alguns de seus elementos.
 
 Transparência: característica que esconde de usuários ou aplicativos detalhes de funcionamento do sistema distribuído, de tal forma que se tenha a impressão de que esse sistema é centralizado.
- Acesso: oculta diferenças na representação de dados e no modo de acesso a um recurso.
- Localização: oculta o lugar em que um recurso está localizado.
- Migração: oculta que um recurso pode ser movido para outra localização.
- Relocação: oculta que um recurso pode ser movido para outra localização durante o uso.
- Replicação: oculta que um recurso é replicado.
- Concorrência: oculta que um recurso pode ser compartilhado por diversos usuários concorrentes.
- Falha: oculta a falha e a recuperação de um recurso. 
 
1. Apresente duas redes com mais de 5 pontos com dois tipos de sistemas distribuídos diferentes. 
2. Cite duas vantagens e duas desvantagens das duas redes citadas no item anterior.
3. Desde 1993, o site TOP500 publica, semestralmente, um ranking dos 500 computadores com maior desempenho no mundo. Segundo este site, no momento, apresente os 5 computadores com melhor desempenho 
3. Apresente um resumo sobre os seguintes temas:
• O sistema operacional Mosix.
• O cluster Beowulf.
• Cluster formado por videogames.
	Atividade estruturada : 
Fim

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais