Adaptação Dinâmica em Sistemas Distribuídos. Software Adaptativo Software adaptativo é aquele que é capaz de mudar o seu comportamento em tempo de execução. - ppt carregar
PublicouRenato Garro Alterado mais de 4 anos atrás
Apresentação em tema: "Adaptação Dinâmica em Sistemas Distribuídos. Software Adaptativo Software adaptativo é aquele que é capaz de mudar o seu comportamento em tempo de execução."— Transcrição da apresentação:
1 Adaptação Dinâmica em Sistemas Distribuídos
2 Software Adaptativo Software adaptativo é aquele que é capaz de mudar o seu comportamento em tempo de execução. Esta característica possui inúmeros benefícios potenciais como a habilidade de responder rapidamente a ameaças de segurança ou a possibilidade de otimizações de desempenho em resposta a variações no ambiente de execução. Software adaptativo é aquele que é capaz de mudar o seu comportamento em tempo de execução. Esta característica possui inúmeros benefícios potenciais como a habilidade de responder rapidamente a ameaças de segurança ou a possibilidade de otimizações de desempenho em resposta a variações no ambiente de execução.
3 Reconfiguração de Rede Em ambientes de computação móvel, o dispositivo deve ser transparentemente reconfigurado à medida que ele atravessa diferentes ambientes de rede e utiliza diversas interfaces heterogêneas. Dispositivos podem ser dinamicamente inseridos no dispositivo sem a necessidade de desligá-lo.
4 Adapatação de Protocolos de Rede Tecnologias como Ethernet, redes locais sem fio, modems celulares, CDPD e canais de satélite possuem direntes características. Dado que um usuário móvel encontra diferentes tecnologias de rede, faz-se necessário que protocolos de rede adaptem- se a diferentes condições na operação das conexões de rede.
5 Adaptando Aplicações para Lidar com Variações de Rede Variações na largura de banda, latência e taxa de erros de transmissão são comuns em ambientes de computação móvel e na própria Internet. Aplicações devem levar em consideração estas variações através da alteração de seu comportamento.
6 Lidando com Variações no Cliente Hardware de dispositivos são cada vez mais variáveis com relação a diversas propriedades como tamanho da tela e resolução, memória, poder de processamento, etc... Isto também é verdade com relação ao software, incluindo o tipo de codificação de dados suportado (JPEG, PostScript, etc...) Servidores devem suportar estas variações.
7 Lidando com Variações de Serviços e Recursos Um aspecto importante da computação móvel é que os serviços e recursos disponíveis a um usuário variam à medida que o mesmo se desloca Exemplos: guia de turismo, localizador de serviços de hoteis, restaurantes, etc... Exemplos: conferência / sala de aula
8 Suporte à Mobilidade de Usuários A mobilidade dos usuários pode levar a grandes variações no ambiente de execução de aplicações.
9 Aplicações de Tempo Real Software adaptativo é também empregado em aplicações como suporte a missões não tripuladas, onde o ambiente está em constante mudança e problemas ou situações atípicas devem ser contornadas.
10 Muitas Abordagens... A partir do final dos anos 90, muita pesquisa tem sido dedicada ao software adaptativo: PMI (Physical Media Independence) Protocol Adaptation Active Proxies Odyssey Conductor MOCA Karamcheti Outros...
11 MOCA IBM T. J. Watson É um framework que lida com a descoberta dinâmica de serviços e recursos. É voltada para dispositivos portáteis e pequenos, com pouca memória. Para facilitar sua portabilidade, foi desenvolvido em Java. Seu núcleo possui apenas 50KB.
12 Serviços É um componente de software que encapsula uma funcionalidade específica e que disponibiliza uma interface bem definida. Exemplos: encriptação de dados, cache local de arquivos, serviço de impressão, etc... Uma aplicação é um programa Java que pode dinamicamente requisitar serviços e invocar os métodos constantes de sua interface. Serviços e aplicações podem ser locais ao dispositivo ou serem dinamicamente carregados.
13 Arquitetura MOCA
14 Registry: Funções Repositório de serviços, mantendo um mapeamento entre descrições de serviço e suas implementações. Encapsula a política de gerenciamento de ciclo de vida de serviços, provendo suporte ao registro, atualização e de-registro de serviços.
15 Registro e Bind de Serviços Para registrar um serviço, deve-se prover ao Registry: Nome da interface Nome da implementação URL que indica a localização da implementação Serviços pode ser registrados sem que sejam carregados para o dispositivo. Para obter uma referencia a um serviço, a aplicação deve pelo menos fornecer o nome da interface.
16 Serviços Especiais São implementados como uma extensão da JVM. Cache de arquivos: gerencia um ropositório de classes Java associadas a todos os serviços e aplicações carregadas para o dispositivo. Serviço de carga de arquivos: chamado quando um serviço não for encontrado na cache local. Gerente de ciclo de vida: cria, suspende e destroi aplicações. Cada aplicação possui seu proprio carregador de classes, provendo um espaço de nomes privado.
17 Serviços Opcionais Broadcaster: periodicamente realiza um broadcast dos serviços disponibilizados pelo dispositivos. Listener: recebe o broadcast de anúncios de serviços remotos. Logging: realiza um log de erros que ocorram no dispositivo.
18 Aquisição de Serviços Um serviço é composto de: Interface: uma único arquivo.class Implementação: 1..n arquivos.class A aquisição é feita em duas etapas: Carga do arquivo contendo a interface, realizada através de repositórios conhecidos (IR) Carga dos arquivos contendo a implementação, realizada através da URL provida no registro do serviço.
19 Exemplo de Aquisição de Serviço
20 Descoberta Dinâmica de Serviços
21 Active Proxies Voltado para aplicações de acesso a dados na Internet. Objetiva lidar com: Variações de rede: largura de banda, latênica e taxa de erros Variações de hardware dos clientes: tamanho e resolução da tela, memória e poder de processamento Variações dos tipos de codificações de dados suporados pelo cliente (JPEG, PostScript, etc...)
22 Princípios de Projeto Adaptação baseada na transformação dos dados. Mecanismos de compressão dependentes do tipo de dado sendo transmitido; Adaptação no momento da solicitação; Complexidade fora do cliente e servidor, através da utilização de um proxy intermediário.
23 Compressão de Acordo com o Tipo de Dado
24 Destilação e Refinamento Destilação: processo de compressão que visa preservar o máximo do conteúdo semântico do dado sendo transmitido Refinamento: processo de busca de uma porte (ou eventualmente todo) de um objeto em uma qualidade superior, possivelmente na qualidade original.
26 Arquitetura Escalável
27 Framework para Adaptação Dinâmica de Aplicações Distribuídas Candidato: Francisco Silva Orientadores: Markus Endler Fábio Kon
28 Abordagem Definição de um modelo a partir do qual pretendemos desenvolver um framework que será utilizado para instrumentar uma aplicação distribuída com os mecanismos necessários para torná-la adaptável dinamicamente.
29 Modelo SIDAM
30 SIDAM: Requisitos de Projeto As aplicações devem ser capazes de se adaptar a variações de carga, padrões de requisição e a diversos cenários de disponibilidade de recursos; As aplicações devem prover uma alta disponibilidade de seus dados e serviços e, sempre que possível, garantir uma baixa latência de acesso; Apesar da base de dados global estar distribuída em várias máquinas, esta distribuição e localização física de qualquer dado específico deve permanecer transparente ao cliente.
31 Adaptação Dinâmica na Aplicação de Referêcia do SIDAM Separação e agregação de IS - sobrecarca do IS; Replicação de IS - requisições a um IS "distante"; Variação no formato do resultado de consultas - variação na largura de banda disponível para a comunicação com o cliente; Migração de IS - sobrecarga de DS; Realocação e pré-alocação de recursos - mudança de célula de usuários especiais.
32 Requisitos para o Modelo de Adaptação Dinâmica Deve dar suporte a uma aplicação composta por diversos componentes executando em diversos nós de um ambiente distribuído; Deve permitir a monitoração de recursos do ambiente e a interação entre os objetos que compõem a aplicação; Assim como o próprio projeto SIDAM, deve ser genérico o suficiente para poder ser utilizado em um grande espectro de aplicações.
33 Requisitos para o Modelo de Adaptação Dinâmica Deve dar suporte à reconfiguração dinâmica dos componentes que compõem a aplicação; Esta reconfiguração deve ocorrer de forma segura.
34 Modelo para Adatação Dinâmica
35 Monitoração: Interação entre Objetos Utilização de interceptadores (padrão CORBA); Armazenamento dos dados em logs; Necessidade de re-configuração em tempo de execução.
36 Monitoração de Recursos Parâmetros de monitoração: Percentual de uso da UCP; Memória real e virtual disponível; Largura de banda disponível; Flexibilidade:parâmetros específicos de uma aplicação. Por exemplo, #threads abertas por um IS; OMR - Objetos de Monitoração de Recursos.
37 Modelo para Adatação Dinâmica
38 Detecção de Eventos Tipos de eventos: Eventos de log Eventos de Recursos Requisitos Desejáveis: Extensibilidade de tipos de eventos detectáveis; Re-configuração Dinâmica; Gerenciável;
39 Detecção de Eventos Definição de eventos complexos a partir da combinação de outros eventos => EPS Serviço de Notificação da ocorrência de eventos aos objetos interessados => EPS / Serviço de Eventos / Notificação de CORBA
40 Modelo para Adatação Dinâmica
41 Reconfiguração Dinâmica Tomada de decisão - determina as ações necessárias para adaptar a aplicação face a ocorrência de eventos; Re-configurador dinâmico - aplica as ações de re-configuração; Gerenciamento de dependências => Automatic Configuration Service e Component Configurator [Kon]
Carregar ppt "Adaptação Dinâmica em Sistemas Distribuídos. Software Adaptativo Software adaptativo é aquele que é capaz de mudar o seu comportamento em tempo de execução."