Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
slide 1/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Arquiteturas 2 capítulo slide 2/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2 Arquitetura O Sistema Distribuído é considerado complexo, pois o softeware é dividida em partes pequenas e espalhadas por várias máquinas. O que a arquitetura de software define? Como os vários componentes de software deve ser organizados e interagir. A especificação final de uma Arquitetura de Software é também denominada de Arquitetura de Sistemas. Centralizada; Descentralizada; Hibridas. Conector – pode ser formado pelas facilidades para chamadas de procedimento (remotas), passagem de mensagem ou fluxo de dados. slide 2/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2 Arquitetura (Cont.) Meta importante do SD é separar aplicações das plataformas adjacentes, isso é conseguindo com o Middleware Qual a finalidade dessa decisão arquitetônica? Proporcionar transparência de distribuição. Sistema Autonômico: o sistema monitora seu próprio comportamento e toma providências adequadas quando necessárias. Conector – pode ser formado pelas facilidades para chamadas de procedimento (remotas), passagem de mensagem ou fluxo de dados. slide 2/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.1 Estilos Arquitetônicos Formado em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre componentes e, por fim, da maneira como esses elementos são configurados em conjunto para formar um sistema. Componente é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro de seu ambiente. Conector é um mecanismo mediador da comunicação ou da cooperação entre componentes. Exp.: chamada de procedimento (remota), passagem de mensagem ou fluxo de dados. Conector – pode ser formado pelas facilidades para chamadas de procedimento (remotas), passagem de mensagem ou fluxo de dados. slide 3/40 Capítulo 2 - Arquiteturas www.pearson.com.br 2.1 Estilos Arquitetônicos - classificação Arquiteturas em camadas Arquiteturas baseadas em objetos Arquiteturas centradas em dados Arquiteturas baseadas em eventos Andrew S. Tanenbaum Maarten Van Steen slide 4/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.1 Estilos Arquitetônicos Arquitetura em camadas Componentes organizados em camadas, onde componentes da camada Li pode chamar métodos da camada subjacente Li-1, mas não o contrário. slide 4/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.1 Estilos Arquitetônicos 2. Arquiteturas baseadas em objetos Objetos correspondem às definições de componentes, que são conectados por meio de chamadas de procedimento remotas; slide 6/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.1 Estilos Arquitetônicos 1. Arquiteturas centradas em dados Processos se comunicam por meio de repositório comum (passivo ou ativo); Sistema web em grande parte são centrados em dados slide 6/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.1 Estilos Arquitetônicos 2. Arquiteturas baseadas em eventos Sistemas Publicar/Subscrever; Processo publicam eventos e o middleware assegura que somente os processos que se subscreveram (“se inscreveram”) para esses eventos os receberão. Processo são fracamente acoplados Não precisa se referenciar uns aos outros = referencialmente desacoplados. Podem ser combinados com arquitetura centrada em dados Resultando em um espaço compartilhado Processos também são desacoplados no tempo, ou seja, não precisa está ativo quando ocorre a comunicação Usam interface semelhante ao SQL server slide 6/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.1 Estilos Arquitetônicos 2. Arquiteturas baseadas em eventos Processos se comunicam por meio de propagação de eventos que podem transportar dados; slide 8/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.1 Estilos Arquitetônicos Estilos podem ser híbridos, como arquiteturas baseadas em eventos juntamente com centradas em dados, também conhecidas como espaços compartilhados de dados. slide 9/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2 Arquiteturas de Sistemas 2.2.1 Arquiteturas Centralizadas Processos são distribuídos em dois grupos: - Servidor: processo que implementa um serviço especifico * exp.: Sistema de arquivos ou banco de dados - Cliente: Processo que requisita um serviço * Envia requisição e aguarda resposta. Essa requisição é conhecida como compartilhamento de requisição-resposta slide 11/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.1 Arquiteturas Centralizadas Camadas de Aplicação Como distinguir um cliente e um servidor? Essa distinção pode ser feita em três níveis: Nível de interface de usuário Contém tudo o que é necessário para fazer interface com o usuário. Nível de processamento Contém as aplicações Nível de dados Gerencia os dados propriamente ditos slide 12/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Organização em 3 Camadas de Aplicação Um mecanismo de busca da Internet slide 13/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.1 Arquiteturas Centralizadas Arquiteturas multidivididas Com base na organização de três níveis lógicos discutida anteriormente, é necessária a distribuição física. A maneira mais simples, denominada arquitetura de duas divisões (físicas) é distribuída da seguinte forma: Uma máquina cliente que contém apenas os programas que implementam o nível (ou parte do nível) de interface de usuário Uma máquina do servidor que contém todo o resto, ou seja, os níveis de processamento e de dados. slide 14/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.1 Arquiteturas Centralizadas Arquiteturas multidivididas Alternativas de distribuição Interface dependente de terminal Interface completa no lado do cliente Editor de Textos Software locais Em (e) temos o disco local armazenando parte dos dados slide 15/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.1 Arquiteturas Centralizadas Arquiteturas multidivididas Arquitetura de três divisões (físicas) slide 16/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.2 Arquiteturas descentralizadas slide 17/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.2 Arquiteturas descentralizadas Distribuição vertical divide componentes logicamente diferentes em máquinas diferentes (interface de usuário, componentes de processamento e nível de dados); Ex.:Bancos de Dados Relacionais em que as tabelas são subdivididas em colunas e distribuídas por várias máquinas Distribuição horizontal Um cliente ou servidor pode ser subdividido em partes logicamente equivalentes, mas cada parte está operando em sua própria porção do conjunto de dados, equilibrando a carga. Ex.: Peer to Peer (servidor e cliente ao mesmo tempo, também chamada “servente”) slide 18/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.2 Arquiteturas descentralizadas Peer to Peer Arquiteturas se dividem pela forma de organizar os processos em uma rede de sobreposição. Redes de sobreposição estruturadas Redes de sobreposição não-estruturadas slide 19/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.2 Arquiteturas descentralizadas Arquiteturas Peer to Peer estruturadas O mais usado é organizar os processos por meio de uma DHT (Distributed Hash Table). Sistema Chord – Nós ligados logicamente em anel, onde um item de dado com chave k seja mapeado para o nó que tenha o menor Id ≥ k. CAN (Content Addressable Network) – Usa espaço de coordenadas cartesianas de d dimensões particionado entre todos os nós participantes do sistema. slide 20/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.2 Arquiteturas descentralizadas Sistema Chord slide 21/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.2 Arquiteturas descentralizadas Rede de Conteúdo Endereçável (CAN) slide 22/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.2 Arquiteturas descentralizadas Arquiteturas P2P não-estruturadas Cada nó mantém uma lista aleatória de vizinhos. Itens de dados são colocados aleatoriamente nos nós. Consulta através de inundação da rede A meta é construir uma rede de sobreposição parecida com um grafo aleatório. slide 23/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Thread, ou linha de execução em português, é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas simultaneamente. slide 24/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Gerenciamento de topologia de redes de sobreposição Abordagem de 2 camadas slide 25/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Evolução da rede de sobreposição não-estruturada slide 26/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Evolução da rede de sobreposição não-estruturada A tendência do uso contínuo das duas camadas tende a distribuir melhor os peers. slide 27/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Super-pares (superpeers) Usam nós especiais que mantêm um índice de itens de dados, a fim de facilitar a localização de dados relevantes em sistemas P2P não estruturados. Definem, em muitos casos, uma relação cliente-superpar fixa, onde sempre que um par se junta à rede, se liga a um dos superpares e continua ligado até sair da rede Nem sempre é uma boa solução! slide 28/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Super-pares (superpeers) slide 29/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.3 Arquiteturas híbridas Sistemas de servidor de borda (Internet) Sistemas colaborativos (Torrent) slide 30/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.2.3 Arquiteturas híbridas BitTorrent Um usuário acessa um diretório global que contém um arquivo .torrent, o qual contém as informações necessárias para transferir um ou mais arquivos específicos (rastreador). Após a identificação dos nós e suas porções de arquivos, o nó que está transferindo se torna efetivamente ativo, sendo forçado a auxiliar os outros. O gargalo dos servidores são os rastreadores! slide 31/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Funcionamento do BitTorrent slide 32/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Funcionamento do BitTorrent BitTorrent reduz largamente a carga no servidor porque os utilizadores descarregam arquivos uns dos outros, não do servidor. As barras coloridas indicam que os pedaços são partilhados em ordem aleatória, em vez da ordem seqüencial. slide 33/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.3 Arquiteturas versus Middleware Onde o Middleware se encaixa? Entre aplicações e plataformas distribuídas, com finalidade de proporcionar um grau de transparência à distribuição de dados, processamento e controle. Middlewares normalmente seguem estilos arquitetônicos específicos: CORBA (baseado em objetos); TIB/Rendezvouz (baseado em eventos); slide 34/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.3.1 Interceptadores É um software que interromperá o fluxo de controle usual e permitirá que seja executado um outro código (específico da aplicação). Funcionamento em O.O. Oferecida a A uma interface local igual à oferecida pelo objeto B. A chamada por A é transformada em uma invocação a objeto genérico, possibilitada por meio de uma interface geral de invocação de objeto oferecida pelo middleware na máquina em que A reside. Por fim, a invocação a objeto genérico é transformada em uma mensagem que é enviada por meio de uma interface de rede de nível de transporte como oferecida pelo sistema operacional de A. slide 35/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Funcionamento de um Interceptador slide 36/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen 2.3.2 Abordagens gerais para software adaptativo É necessário adaptar sistemas distribuídos por vários motivos, como hardware defeituoso ou esgotamento de bateria. Isso levou aos softwares adaptativos, que são responsáveis por reagir a essas mudanças. Separação de Interesses – Separa as partes que implementam funcionalidades das que cuidam de funcionalidades extras. Além disso, entrelaça os interesses cruzados em um sistema distribuído (software orientado a aspecto). Reflexão computacional – Programa inspeciona a si mesmo e, se necessário, adapta-se ao ambiente. Projeto baseado em componente – adaptação por meio de composição. slide 37/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Autogerenciamento em SDs Modelo de realimentação e controle slide 38/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Exemplo: Monitoração de sistemas com Astrolabe slide 39/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Exemplo: diferenciação de estratégias de replicação em Globule slide 40/40 Capítulo 2 - Arquiteturas www.pearson.com.br Andrew S. Tanenbaum Maarten Van Steen Exemplo: gerenciamento automático de conserto de componente em Jade Jade – Sistema de monitoramento e manutenção de clusters – detecta falhas e substitui componente defeituosos automaticamente.
Compartilhar