Modelos de Sistemas Distribuídos. Introdução. Modelos is. Requerimentos de Projeto para s Distribuídas 1
Introdução Introdução. Existem 2 conjuntos de modelos de sistemas distribuídos: -> Conjunto dos Modelos is; -> Conjunto dos Modelos Fundamentais;. Cada modelo tem a intenção de disponibilizar uma descrição abstrata e simplificada, mas consistente dos aspectos relevantes do projeto de sistemas distribuídos. 2
Introdução Introdução Modelos is estão preocupados com a disposição das partes do sistema distribuído e da relação/interação entre elas Modelos Fundamentais preocupam-se com as propriedades que são comuns a todos os modelos arquiteturais. 3
Modelos is. A arquitetura de um Sistema é sua estrutura em termos de componentes especificados separadamente, e assim fazer um sistema confiável, gerenciável, adaptável e de custo razoável. Considerando:. Localização dos componentes na rede de computadores (definindo padrões de distribuição de dados e carga de trabalho). A inter-relação entre os componentes (os papéis funcionais e os padrões de comunicação entre eles). Conceitos: Modelos. Processo servidor;. Processo cliente;. Processos pares; (cooperam e comunicam de maneira simétrica) 4
de Software. Originalmente é a estruturação do software como camadas ou módulos em um único computador e mais recentemente em termos de serviços oferecidos e requisitados entre processos localizados no mesmo ou em computadores diferentes. -> Plataforma (hardware/sistema Operacional. Ex: intel x86/windows, PowerPC/Mac OS X); ->Middleware (modelo de programação conveniente mascarando heterogeneidade); 5
de Software Source: Coulouris et al. 6
de Software. Limitações de Middleware (principalmente middleware de comunicação The end-to-end argument Em muitos casos o comportamento correto de SDs depende de verificações, mecanismos de correção de erro e medidas de segurança em muitos níveis, alguns dos quais requerendo acesso a dados dentro do espaço de endereçamento da aplicação. Qualquer tentativa de verificação dessas condições apenas dentro do sistema de comunicação (middleware) será insuficiente, e o trabalho provavelmente terá de ser feito tbém no nível da aplicação, disperdiçando esforço de programação, e mais importante, adicionando complexidade e executando operações redundantemente. Saltzer, J.H., Reed, D.P., and Clarke, D. (1984). End-to-End Arguments in System Design, ACM Transactions on Computer Systems Vol. 2, Nº 4, pp. 277-288 7
s de Sistema No que se baseiam as arquiteturas de sistemas distribuídos:. Na divisão de responsabilidades entre os componentes do sistema, e;. No posicionamento (onde) desses componentes na rede. Conseqüência: Divisão de responsabilidades e posicionamento na rede são talvez o mais evidente aspecto do projeto de sistemas distribuídos. Resultado: Tais características implicam na: (dos sistemas resultantes). Performance (desempenho). Confiabilidade. Segurança 8
s de Sistema Cliente/Servidor. Quem requisita serviço assume o papel de cliente.. Os servidores podem tornar-se clientes de outros servidores. 9
s de Sistema. Processos Pares: Todos os processos praticam papéis similares interagindo cooperadamente (sem distinção entre servidores e clientes). Ex. Aplicação de quadro branco distribuído. 10
s de Sistema Múltiplos Servidores. Serviços disponibilizados por múltiplos servidores: Servidores em computadores separados podem implementar serviços baseando-se na interação constante, particionando ou replicando os componentes do serviço (objetos por ex.) e distribuindo-os entre eles. Ex: Content Distribution Network (CDN), Web, cluster 11
s de Sistema. Servidores Proxy e Cache: Armazenamento de informações de forma a aumentar a performance. Ex. Web 12
Variações no Modelo Cliente/Servidor. Código Móvel O código da aplicação é buscado no servidor e executado no cliente. Economizar largura de banda. Ex. Applet, TV digital interativa 13
Variações no Modelo Cliente/Servidor. Agentes Móveis Um programa executável que viaja de um computador a outro na rede, executando computações e recuperando informações, e eventualmente retornando algum resultado. 14
Variações no Modelo Cliente/Servidor. Computadores de Rede É diferente do conceito de computadores em rede. Nesse caso, os computadores possuem poder de processamento e tem memória, porém não utilizam armazenamento local. Ex: boot remoto. Nesse exemplo, o sistema operacional e aplicações (imagens) ficam armazenadas no servidor e são descarregadas para o cliente (computador de rede) no momento do boot. O usuário utiliza as aplicações e quaisquer dados a serem salvos, são armazenados no servidor. 15
Variações no Modelo Cliente/Servidor. Thin Clients Similar ao modelo de computadores de rede, porém sem capacidade de processamento ou memória. Todo o processamento e armazenamento é executado no servidor. Apenas uma interface de acesso ao servidor é disponibilizada pelo Thin Client. Ex: X-11 window system, Citrix system 16
Variações no Modelo Cliente/Servidor. Dispositivos móveis e Redes Espontâneas (computação ubíqua) Dispositivos de hardware com capacidade de processamento e comunicação sem fio através da rede pública de telecomunicações (ex: gsm,cdma) ou WiFi, Wimax, bluetooth, etc.. com capacidade de criação de redes ad hoc móveis. Um dos dispositivos atua como servidor e os outros como clientes (para autenticação por ex) ou a operadora telefônica atua como servidora e os dispositivos como clientes. 17
Requerimentos de Projeto para s Distribuídas. Performance - Tempo de Resposta (Responsiviness) - Throughput (taxa de processamento e/ou transferência) - Balanceamento da Carga Computacional 18
Requerimentos de Projeto para s Distribuídas. Qualidade de Serviço - Afetada pela Confiabilidade, Segurança e Performance (características dos modelos fundamentais). Uso de Caching e Replicação (protocolos). Fidedignidade ou Confiabilidade - Correção ou Corretude - Tolerância a Falhas (alcançada por redundância alto custo) - Segurança 19