Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS DISTRIBUÍDOS INTRODUÇÃO E MODELOS Conteúdo • O que é um sistema distribuído? • Exemplos de sistemas distribuídos • Requisitos de sistemas distribuídos • Transparência em sistemas distribuídos • Modelos O que é umSistema Distribuído? O que é umSistema Distribuído? Hostn-1 Hostn Host2 Host1 Middleware Middleware Network Operating System Network Operating System Hardware Hardware Component1 Componentn Middleware Network Operating System Hardware Component1 Componentn Middleware Network Operating System Hardware Component1 Componentn Component1 Componentn Network O que é umSistema Distribuído? Um sistema distribuído é uma coleção de hosts autônomos, conectados através de uma rede de computadores. Cada host executa componentes e opera um middleware de distribuição, o qual habilita os componentes a coordenarem suas atividades de tal forma que usuários percebam o sistema como um ambiente computacional único e integrado. Exemplos deMiddleware • Orientados a Transações • IBM CICS • BEA Tuxedo • IBM Encina • Microsoft Transaction Server • Orientados a Mensagens • Microsoft Message Queue • NCR TopEnd • Sun Tooltalk • Procedural • Sun ONC • Linux RPCs • OSF DCE • Orientado a Objetos • OMG CORBA • Sun Java/RMI • Microsoft COM • Sun Enterprise Java Beans Características de Sistemas Centralizados • Um componente, com partes não autônomas • Componentes são compartilhados por todos os usuários durante todo o tempo • Todos os recursos acessíveis (tipicamente) • Software ‘roda’ em um único processo • Ponto de controle único • Ponto de falha único Características de Sistemas Distribuídos • Múltiplos componentes autônomos • Componentes não são compartilhados por todos os usuários • Recursos podem não ser acessíveis • Software ‘roda’ em processos concorrentes e em processadores distintos • Múltiplos pontos de controle • Múltiplos pontos de falha (!!!) Exemplos de SistemasDistribuídos Motivação • Estudos de caso • Sistema de video-sob-demanda (Hongkong Telecom) • Infra-estrutura de informática (setor bancário) • Sistema de gerenciamento de configurações de aeronaves (Boeing) • Sistema de gerência de federação de futebol • Desenvolvidos empregando os princípios e técnicas apresentados neste curso • Servem como exemplos ilustrativos para o curso Ex.1: Sistema de Vídeo-sob-Demanda • Objetivo: prover aos assinantes facilidades para o ‘download’ devídeos a partir de servidores para serem apresentados em Web-TVs de baixo custo • Atualmente: cerca de 100.000 usuários • Construído utilizando tecnologia de objetos … Requisitos: Heterogeneidade • Hardware: • Clientes: Web-TV • Servidores: processador RISC • Sistemas operacionais: • Clientes: JavaOS • Servidores: UNIX • Linguagens de programação: • Clientes: Java • Servidores: C++ Baseado em Emmerich, 2000 Prof. Fábio M. Costa 11 Requisitos (cont.) • Comunicação através da rede • Como transmitir estruturas de dados complexas através da Internet? • Escala • Expansão para um grande número de usuários • Segurança • Forma segura de pagamento • Autenticação e controle de acesso Por que Tecnologias deObjetos Distribuídos? • Distribuição: • Clientes de vídeo necessitam fazer o ‘download’ / exibição de vídeo na Web-TV do usuário final • Múltiplos servidores (balanceamento de carga) • Tecnologia de objetos: • Clientes de vídeo escritos em Java: • Web-TV contém um Máquina Virtual Java • Portabilidade - ex: Sony Playstation, Sega Console • Servidores de vídeo escritos em C++: desempenho Por que Tecnologias deObjetos Distribuídos? (cont.) • Uma maneira natural de particionar a funcionalidade de uma aplicação ou sistema • Objetos: unidades funcionais autônomas que se comunicam entre si através da troca de mensagens • Abstração ideal para a construção de sistemas distribuídos • Objetos diferentes podem ser instalados em computadores distintos • Cooperação através de mensagens transmitidas pela rede Ex.2: Infra-estrutura de Informática Empresarial (Setor Bancário) Estação de Negócios Serviços de Autorização Serviço de Informações de Clientes Serviço de Banco de Dados de Produtos Serviços de Marketing Requisitos • Tempo para se chegar ao mercado • Desenvolvimento de novas aplicações com tecnologia recente • Integração de novas aplicações tem se tornado cada vez mais difícil • Escalabilidade • Administração de milhões de contas e clientes • Milhares de usuários concorrentes • Confiabilidade Requisitos (cont.) • Heterogeneidade de Hardware • Mainframes (Unisys, IBM, etc.) • Servidores SUN SPARC • PCs • Heterogeneidade de Sistema Operacional • MVS, UNIX, Linux, Windows • Heterogeneidade de Linguagem de Programação • Cobol, C/C++, Visual Basic, Java Por que Tecnologia deObjetos Distribuídos • Permite uma visão uniforme de todos os serviços da empresa e de como acessá-los • Provê um nível apropriado de abstração • Preserva o investimento encapsulando aplicações legadas • Permite explorar as vantagens da tecnologia de objetos em novos projetos • Uma forma natural de resolver: • distribuição • heterogeneidade Ex.3: Gerência deConfiguração Boeing 777 Problemas a seremresolvidos • Escala • 3.000.000 de peças por aeronave • A configuração de cada aeronave é diferente • Regulamentos demandam que registros sejam mantidos para cada peça de uma aeronave • Aeronave evolui durante manutenções • Produção de 500 aeronaves por ano • Banco de dados de configuração cresce 1,5 bilhão de partes a cada ano • Tempo de vida de uma aeronave: 30 anos • 45.000 engenheiros necessitam acesso on-line aos dados de configurações Problemas a serem resolvidos(cont.) • Integração de componentes de prateleira • Infra-estrutura de TI se tornou inadequada • Mas a empresa não podia se dar ao luxo de re-construir toda a sua infra-estrutura de TI • Componentes foram comprados de diversos fabricantes especializados • Banco de dados relacional • Planejamento de recursos da empresa (ERP) • Planejamento de projetos auxiliado por computador • Componentes precisavam ser integrados Problemas a serem resolvidos(cont.) • Heterogeneidade • 20 máquinas de banco de dados Sequent para gerenciar os dados de configuração de aviões • 200 servidores de applicações UNIX • Estações de trabalho NT e UNIX para os engenheiros Por que Tecnologia deObjetos Distribuídos • Componentes de prateleira encapsulam a funcionalidade da aplicação • Resolvendo o problema de distribuição em um nível mais elevado de abstração • Resolvendo o problema da heterogeneidade • Escalabilidade da solução Ex.4: Administração de umaFederação de Futebol • Administração de campeonatos, seleção nacional, clubes, transferência de jogadores, etc. • Sistema imaginário • Exemplo comum, que pode ser ajustado com finalidade didática Requisitos • Autonomia dos clubes • Cada clube opera sua própria administração, treinamento, escala de jogos e jogadores, etc. • Necessidade de integração para: • o registro de jogadores na federação de futebol • requisitar jogadores para a seleção nacional • combinar a escala de jogos do campeonato • Heterogeneidade • Diferentes máquinas (Windows, Linux, etc.) • Diferentes linguagens de programação Requisitos de SistemasDistribuídos Requisitos Gerais • Integração de componentes • Componentes novos, implementados com a mais moderna tecnologia • Componentes de prateleira (COTS), que não podem ser modificados • Componentes legados, sem a necessidade de uma re- engenharia • Heterogeneidade • Plataformas de hardware, sistemas operacionais, linguagens de programação e redes Requisitos Comuns Qual o objetivo da construção de um sistema distribuído? • Compartilhamento de Recursos • Abertura • Concorrência • Escalabilidade • Tolerância a Falhas • Transparência Compartilhamento deRecursos • Habilidade de usar qualquer hardware,software ou dados em qualquer lugar do sistema • Gerenciador de recursos • Controla o acesso aos recursos • Provê um esquema de nomes para os recursos • Controla acessos concorrentes aos recursos Baseado em Emmerich, 2000 Prof. Fábio M. Costa 29 Compartilhamento de Recursos(2) • Modelo de compartilhamento • Cliente / Servidor • Baseado em objetos • Define: • a forma pela qual recursos são providos • formas de uso dos recursos • como o provedor do recurso e os usuários interagem entre si e com o gerenciador Abertura • Relacionada com futuras extensões e melhorias que um sistema distribuído pode sofrer • Novos componentes precisam ser integrados, juntamente com componentes existentes (legados) • Provenientes de diversas fontes • Usando diferentes tecnologias • Necessário publicar interfaces detalhadas dos componentes • Diferenças de representação de dados precisam ser resolvidas (para uma troca de informações efetiva) Concorrência • Em um sistema distribuído, componentes são executados em paralelo • Em processos ou máquinas diferentes • Componentes acessam e atualizam recursos compartilhados (variáveis, bancos de dados) • A integridade do sistema pode ser violada se atualizações concorrences não forem coordenadas • Atualizações podem ser perdidas (sobrescritas) • Análise de dados pode ficar inconsistente Baseado em Emmerich, 2000 Prof. Fábio M. Costa 32 Escalabilidade • Adaptação de sistemas distribuídos para • Acomodar mais usuários • Obter um tempo de resposta mais rápido • Usualmente através da adição de mais processadores • Componentes não devem necessitar ser alterados quando a escala do sistema cresce ➢Componentes devem ser projetados para serem escaláveis Tolerância a Falhas • Hardware, software e redes podem falhar! • Um sistema distribuído deve manter sua disponibilidade mesmo em baixos níveis de confiabilidade do hardware/software/rede • Tolerância a falhas pode ser obtida com: • técnicas de recuperação • redundância Transparência em Sistemas Distribuídos Transparência • Um sistema distribuído deve ser percebido por seus usuários e pelos programadores de aplicações como um sistema único e coeso • ao invés de uma coleção de máquinas separadas • Várias dimensões de transparência identificadas pelo modelo ISO RM-ODP • Modelo de Referência para Sistemas Distribuídos Abertos • Representam as diversas propriedades que um sistema distribuído deve possuir Transparências de Distribuição Baseado em Emmerich, 2000 Prof. Fábio M. Costa 37 Access Transparency Location Transparency Concurrency Transparency Migration Transparency Performance Transparency Scalability Transparency Replication Transparency Failure Transparency Transparência deAcesso • Permite que objetos e informações remotas sejam acessados usando operações idênticas • Mascara as diferentes formas de acesso empregadas por cada tecnologia utilizada • Exemplos: • Operações de acesso a um sistema de arquivos distribuído com NFS (Network File System) • Navegação na WEB • Consultas em SQL Transparência deLocalização • Permite que objetos e informações sejam acessados sem o conhecimento de sua localização • Exemplos: • Arquivos acessados via NFS • Páginas na WEB (*) • Tabelas em um banco de dados distribuído Transparência de Concorrência • Permite que vários processos operem concorrentemente usando objetos de informação compartilhados sem interferirem entre si • Exemplos: • NFS • Caixa eletrônico • Sistema gerenciador de bancos de dados (SGBD) Transparência deReplicação • Permite que múltiplas instâncias de objetos de informação sejam usados para melhorar o desempenho e a confiabilidade • Sem que os usuários ou programadores de aplicações tomem conhecimento da existência das réplicas • Exemplos: • SGBD distribuído • Espelhamento de páginas WEB Transparência deFalhas • Mascara a ocorrência de falhas • Permite que usuários e aplicações completem suas tarefas normalmente a despeito de falhas em alguns componentes do sistema • Exemplo: • Transações em um SGBD Transparência deMigração • Permite a movimentação de um objeto dentro do sistema distribuído sem afetar as operações dos usuários ou dos programas de aplicação • Duas variantes: • Migração propriamente dita: com relação ao objeto migrado • Relocação: com relação a outros objetos no sistema • Exemplos: • NFS • Páginas WEB Baseado em Emmerich, 2000 Prof. Fábio M. Costa 43 Transparência de Desempenho • Permite que o sistema distribuído seja reconfigurado para melhorar o desempenho para refletir mudanças na carga de processamento • Através de replicação e migração • Exemplo: • Utilitário make distribuído • Programa é compilado em várias máquinas em paralelo, transparentemente para o usuário Transparência deEscala • Permite que o sistema e as aplicações possam ser expandidos em escala sem a necessidade de mudanças em sua estrutura ou nos algoritmos utilizados • Exemplo: • WWW • Bancos de dados distribuídos Pontos-Chave • O que é um Sistema Distribuído • Adoção de sistemas distribuídos é regida por requisitos não-funcionais • Necessidades de distribuição são transparentes aos usuários e projetistas de aplicações • Várias dimensões de transparência • Dimensões de transparência dependem entre si Arquitetura de SistemasDistribuídos ▪ A arquitetura de um sistema distribuído é a sua estrutura em termos de componentes. ▪ Um modelo de arquitetura simplifica e abstrai as funções de cada componente e considera os seguintes itens: • A colocação de componentes na rede decomputadores • A relação entre os componentes (padrão de comunicação entreeles) • Camadas de software: O termo arquitetura de software é usado para designar as camadas ou módulos em um únicocomputador. • Plataforma: Apresenta a interface de programação de baixo nível (comunicação, sincronização) para as camadas maisacima 2 Tipos deModelos ▪ Modelos arquitetônicos descrevem a estrutura organizacional dos componentes do sistema • Como interagem uns com osoutros • Como são mapeados para a infraestrutura física (rede) subjacente ▪ Modelos fundamentais descrevem problemas e características chaves comuns ao projeto de todos os tipos de sistemasdistribuídos • Mecanismos de interação ecomunicação • Tratamento defalhas • Segurança Modelos Arquitetônicos ▪ Foco na arquitetura – estrutura de alto nível do sistema, descrita em termos de componentes e seus relacionamentos • Base para garantir que a estrutura do sistema atenderá sua atual e provável futura demanda em termos de atributos de qualidade como confiabilidade, adaptabilidade, desempenho, gerência, etc. ▪ Descrição simplificada e abstrata dos componentes do sistema: • Funcionalidades (ou responsabilidades) ◼ Ex.: servidor, cliente,peer • Distribuição física (recursos e carga de trabalho) ◼ Ex.: regras de particionamento e/oureplicação • Padrões de interação ecomunicação ◼ Ex.: cliente-servidor,ponto-a-ponto Modelos Arquitetônicos ▪ Classificados e estudados de acordo com as suas características comuns (“estilosarquitetônicos”): • Cliente-servidor • Ponto-a-ponto ▪ Foco na divisão de responsabilidades entre os componentes do sistema e na alocação física desses componentes à infraestrutura de rede • Forte influêncianosatributos dequalidade do sistema! ▪ Na prática, um mesmo sistema distribuído pode apresentar características de diferentes estilos (arquiteturashíbridas) Taxonomia – Sistemas Computacionais Arquitetura Cliente-Servidor ▪ Divisão das responsabilidades entre os componentes do sistema de acordo com dois papéis bem definidos: • Clientes • Servidores ▪ Servidores são responsáveis por gerenciar e controlar o acesso aos recursos mantidos nosistema ▪ Clientes interagem com servidores de modo a terem acesso aos recursos que estesgerenciam ▪ Alguns servidorespodem assumir o papel de clientes de outros servidores • Ex.: Servidor web no papel de cliente de um servidor de nomes ▪ Continua sendo o modelo de sistema distribuído mais estudado e utilizado na prática! Arquitetura Cliente-Servidor ▪ Clientes interagem com um ou mais processos servidorescomo intuito deacessarosrecursos compartilhadosqueosservidoresgerenciam. 8 Arquitetura Cliente-Servidor ▪ Servidores podem ser clientes de outros servidores. • Servidor Web pode ser clientede um Servidor de Arquivos e DNS. ▪ A centralização do fornecimento do serviço apresenta problemas deescalabilidade. • Limitaçõesnacapacidadedo computador servidor e na vazão de rede paraatingi-lo. 9 Arquitetura Peer-to-Peer 10 ▪ Processos envolvidos em uma atividade desempenham papéis similares e interagem cooperativamente como pares sem distinção entre clientes eservidores. ❑ Explora os recursos de um grande número de participantes para desempenhar uma determinada tarefa. Arquitetura Peer-to-Peer ▪ Padrão de comunicação depende dos requisitos daaplicação ▪ Objetos podem ser replicados em diversos computadores com o intuito de oferecer balanceamento de carga e tolerância afalhas ▪ O gerenciamento dos recursos e da aplicação é mais complexo que aquele na arquitetura Cliente-Servidor 11 Arquiteturas: Variações ▪ Serviço fornecido por Múltiplos Servidores ▪ Servidores de Proxy eCaches ▪ Código Móvel ▪ AgentesMóveis ▪ Computadores em rede ▪ ClientesFinos ▪ DispositivosMóveis 12 Serviço com Múltiplos Servidores ▪ Cada serviço é implementado por um conjunto de servidores, possivelmente localizados em diferentes pontos da rede ▪ Servidores podem interagir entre si para oferecer uma visão global consistente do serviço para os clientes ▪ Técnicas maisutilizadas: • Particionamento – distribuição física dos recursos entre os váriosservidores ◼ Maior facilidade de gerência e maior escalabilidade ◼ Ex.: Clusters de servidores do portalUOL • Replicação – manutenção de cópias do mesmo recurso lógico em dois ou maisservidores ◼ Maior desempenho e disponibilidade ◼ Ex.: Base de dados doGoogle Serviço com MúltiplosServidores 14 ▪ Serviço implementadopor váriosprocessos servidores que estão em hosts separados e interagementre si. ▪ Servidorespodemarmazenarobjetosreplicados. ❑ Um exemplo baseado em dados replicados é o NIS (Network Information Service). Cada servidor NIS possui a sua própria réplica do arquivo de senhas. Serviço com Cache e ServidorProxy ▪ Cache • Repositório de cópias de objetos recentemente utilizados que está fisicamente mais próximo do que os objetos originais • Principaisdesafios: ◼ Política de atualização (controla a entrada e saída de objetos no cache) • Localização física (nos clientes ou em um ou mais servidores proxy) ▪ Servidorproxy • Processo compartilhado por vários clientes que serve como cache para os recursos disponibilizados por outros servidores remotos • Principaisfunções: ◼ Reduzir o tempo de acesso ◼ Aumentar adisponibilidade ◼ Também utilizado para proteção, filtragem, adaptação, etc. Serviço com Cache e ServidorProxy Computadores emRede ▪ Um “network computer” faz o download do sistema operacional e aplicações necessárias ao usuário de um servidor de arquivosremoto. ▪ Aplicações executam localmente, mas os arquivos são gerenciados por um servidor remoto. ▪ Uma vez que o código e os dados da aplicação são armazenadosremotamente • Usuários podem trocar de estação de trabalho sem problemas. ▪ Disco local é usado paracache. • Objetos na cache são invalidados quando uma nova versão do arquivo é escrita noservidor. 17 Serviço com ClientesMagros ▪ Clientemagro • Camada de software com suporte para interação local com o usuário, e que executa aplicações e solicita serviços exclusivamente a partir de servidoresremotos ◼ VNC (Virtual Network Computing), ◼ LTSP (Linux Terminal Server Project) • Afavor: ◼ Baixocustodehardwareesoftwareparaosclientes ◼ Maior facilidade de gerência e manutenção dasaplicações • Contra: ◼ Altocustodehardwareesoftwareparaosservidores ◼ Centralização da carga de trabalho e do tráfego de mensagens ◼ Risco de sobrecarga dos servidores e/ou da rede ◼ Baixo desempenho para aplicações altamenteinterativas LTSP (Linux Terminal ServerProject) ▪ Utiliza uma combinação de DHCP, TFTP e NFS para permitir que as estações não apenas rodem aplicativos instados no servidor, mas realmente dêem boot via rede, baixando todos os softwares de que precisam diretamente do servidor. VNC (Virtual NetworkComputing) Serviço com CódigoMóvel ▪ Serviços oferecidos na forma de um código (programa) específico que deve ser descarregado doservidor • Aplicações clientes executam e interagem localmente com o código móvelrecebido • Dependendo do serviço, código móvel pode interagir com um ou mais servidores em nome da aplicaçãocliente • Ex.: Javaapplets ▪ Principaisbenefícios: • Redução do tempo de resposta para aplicações interativas • Maior facilidade de customização e atualização da interface de acesso ao serviço • Possibilidade de estender dinamicamente as funcionalidades das aplicaçõesclientes Serviço com CódigoMóvel ▪ Navegadores impedem que o Código Móvel: • Acesse arquivos locais • Impressoras • Sockets deRede ▪ JVM • Classes carregadas por download são armazenadas separadamente das classes locais, impedindo sobrescrita por classesmaliciosas • É verificada a validade dos bytecodes. ◼ Composto de instruções de um conjunto específico? ◼ Acessa endereços de memória inválidos? Serviço com CódigoMóvel Serviço com AgenteMóvel ▪ Agentemóvel • Programas em execução (código + dados) que circula pela rede solicitando serviços em nome de um usuário ou de uma aplicaçãocliente ◼ Ex.: agente para coleta de dados, busca e comparação de preços de produtos, instalação de software,etc • O acesso aos serviços é feito localmente pelo agente, ou de locais fisicamente próximos (da mesma rede local) aos servidores ▪ Benefícios: • Redução dos custos e do tempo deacesso ◼ Acesso antes remoto agora passa a serlocal • Maior tolerância a falhas decomunicação ◼ Conexão necessária apenas durante a transferência do agente • Melhor distribuição do tráfego de mensagens na rede Serviço com AgentesMóveis Serviço com ObjetosDistribuídos ▪ Objetos encapsulados em processosservidores • Objetos acessados por outros processos (clientes) através de referências remotas para uma ou mais de suas interfaces • Referência remota permite invocar remotamente os métodos disponíveis na interface do objeto referenciado ▪ Implementação na forma de middleware orientada a objetos (ex.: CORBA, Java-RMI, EJB,.NET) • Diferentes mecanismos para criar, executar, publicar, localizar, e invocar objetosremotos • Diferentes serviços de suporte ◼ Transação, persistência, replicação, segurança, etc Serviço com ObjetosDistribuídos Serviço com DispositivosMóveis ▪ Formado por aplicações clientes que executamem dispositivos móveis (PDAs, laptops, celulares, etc)e acessam servidores da rede fixa através de uma infraestrutura de comunicação semfio • Diferença para as variações com código móvel e agentes móveis? ▪ Principaisbenefícios: • Fácil conexão dos dispositivos a uma nova redelocal ◼ Inclusão de novos clientes sem a necessidade de configuração explícita • Fácil integração dos clientes aos serviçoslocais ◼ Descoberta automática de novos serviços (sem intervenção do usuário) ▪ Desafios de projeto: • Identificação de recursos independente de sua localização física • Limitações de processamento, tempo de conexão e largura de banda • Privacidade e segurança Arquitetura de DispositivosMóveis ▪ Componentes de computação que se movem em redes físicas, levando consigo componentes de software. • Ambos clientes e servidorespodem existir como dispositivosmóveis. ▪ Questões importantes • transparência demobilidade • tolerância a falhas. ▪ Mobilidade lida com interoperaçõesespontâneas • Uma variação do modelo cliente-servidor no qual a associação entre dispositivos são rotineiramente criadas edestruídas 29 MODELOS FUNDAMENTAIS Modelos Fundamentais ▪ Independente de ser cliente/servidor ou p2p, todos os modelos possuem características comuns: • São constituídos deprocessos • Esses processos se comunicam através do envio de mensagens através de uma rede de comunicação • Requisitos de projeto semelhantes ◼ Desempenho e confiabilidade das redes eprocessos ◼ Segurança dos recursoscompartilhados Modelos Fundamentais ▪ Foco em três importantes aspectos deprojeto: • Mecanismo de interação • Tratamento defalhas • Segurança ▪ Utilizados para ajudar a planejar, entender e analisar o comportamento esperado do sistema ▪ Principaisbenefícios: • Correção antecipada de erros • Investigação, avaliação e reuso de diferentes alternativas de projeto • Menor custo de desenvolvimento, manutenção e evolução Modelos Fundamentais ▪ Modelos de Interação: • Como os processos secomunicam? • Deve refletir o fato de que a comunicação ocorre comatrasos ▪ Modelos de Falha: • Define e classifica asfalhas ▪ Modelos de Segurança: • Define e classifica as formas que ataques de agentes externos ou internos podem assumir Requisitos deProjeto ▪ Questões chave para o projeto (arquitetura) de um sistema distribuído • Desempenho • Qualidade de serviço (QoS) • Cache ereplicação • Confiabilidade ▪ Geralmente consideradas na implementação de aplicações distribuídas que compartilham recursos em largaescala Desempenho ▪ Capacidade do sistema para reagir de forma rápida e consistente às requisições dos usuários • Sujeita às limitações de processamento e comunicação dos computadores e da infraestrutura de rede ▪ Principais fatores envolvidos: • Tempo de resposta (responsiveness - reatividade) ◼ Afetado pelo número de camadas de software necessário para a invocação dos serviços remotos e pelo volume de dados transferidos através darede • Taxa de trabalho (throughput) ◼ Medida do desempenho do sistema considerando todos os usuários • Balanceamento de carga (loadbalance) ◼ Utilizado para explorar de forma mais eficiente os recursos computacionais disponíveis QoS ▪ Capacidade do sistema para oferecer serviços com garantias suficientes para atender de forma satisfatória as necessidades específicas de seususuários ▪ Principaisfatores: • Confiabilidade • Segurança • Desempenho • Adaptabilidade ◼ para atender mudanças de configuração e disponibilidade de recursos ▪ Aspectos de confiabilidade, segurança e desempenho serão abordados no contexto dos modelos fundamentais de falha, segurança e interação, respectivamente QoS (cont.) ▪ No contexto de QoS, o desempenho também é definido em termos da capacidade do sistema de atender restrições de tempo crítico ▪ Em geral, essas restrições devem ser mantidas durante todo o tempo, e sob todas as circunstâncias, em que os recursos são utilizados, especialmente sob altademanda • Recursos críticos devem ser reservados a priori junto aos seus respectivos servidores (solicitações não atendidas são rejeitadas) ▪ Garantias negociadas entre as partes através de acordos em nível de serviço(SLAs) Cache eReplicação ▪ Capacidade do sistema para manter múltiplas cópias de um mesmo recurso lógico fisicamente distribuídas, de modo a reduzir o seu tempo de acesso • Ex.: protocolo de cache daweb ▪ Principais questões envolvidas: • Alocação e distribuição das réplicas • Políticas de acesso e atualização • Mecanismo devalidação • Compromisso entre a consistência e a qualidade do serviço ◼ Freqüência de atualização X desempenho ◼ Suporte para operações “desconectadas”(off-line) Dependabilidade ▪ Capacidade do sistema continuar operando efetivamente, mesmo diante da ocorrência de falhas e da ameaça de acessos indevidos aos recursos compartilhados ▪ Principaisquestões: • Tolerância a falhas ◼ Obtida através da redundância (replicação) de recursos lógicos efísicos ◼ Implica em maiores custo e complexidade • Segurança ◼ Obtida através de mecanismos de criptografia, garantia da integridade dos dados, assinatura digitais, políticas de controle de acesso,etc
Compartilhar