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.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas Distribuídos Baseados em Objetos
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Sistemas operacionais
ISO Processos do Ciclo de Vida do Software
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
Computação Distribuída
Interação Cliente Servidor
QoS para Realidade Virtual
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Simple Network Management Protocol (SNMP)
GERENCIAMENTO DE REDES
Sistemas Operacionais de Rede
Gerência de Redes Áreas Funcionais de Gerenciamento
Mobilidade Cláudia Ribeiro.
Metodologia Versão 2 FSRS.
Middleware e Sistemas Distribuídos
Rodrigo de Souza Couto Redes de Computadores II
1 Modelos de Sistemas Distribuídos. Introdução - Dificuldades e ameaças para SD. Grande variação na utilização de SD )carga de trabalho e requerimentos.
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
Arquitetura Cliente /Servidor
Sistemas Distribuídos
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Carolina Gelenske Carlos Eduardo Laís Xavier
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Gerenciamento de Redes Utilizando Agentes Móveis
Sistemas Distribuídos
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Distribuídos
Ferramentas de Gerenciamento Aula 3
SISTEMAS OPERACIONAIS I
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Processos.
RMI - JAVA.
RUP - Cap. 4 – Processo Centrado na Arquitetura
FERRAMENTAS DE GERENCIAMENTO Aula 01
Sistemas Distribuídos Prof. Marcus Rodrigues
Laboratório de Programação
Módulos de um sistema operativo
1 MAC Computação Móvel Agentes de software para Computação Móvel Aluno: Eduardo Leal Guerra
Padrões de Interação com o Usuário
MONITORAMENTO DE REDE E SERVIDORES UTILIZANDO O CACTIEZ E SNMP
Integração de Ferramentas CASE
CONECTIVIDADE Prof.: Alessandro V. Soares Ferreira
Abr-17 Projetar Processos Projetar distribuição.
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Julho 2005 Conceitos fundamentais Modelos de estruturação da Gestão (parte 2) Arquitectura genérica.
1 Gerenciamento de Recursos em Sistemas de Grande Escala Jeferson R. Marques Fabio Kon Departamento de Ciência da Computação IME-USP
1 Onde Foi Parar a Avenida Paulista??? Seminário SIDAM Fabio Kon 23 de março de 2001.
Capítulo 6: SAD – Arquitetura e aspectos de rede e segurança
Sistemas Operacionais Aula 2 Danielle Costa
Conceitos de Monitoramento
Serviços baseados em dispositivos pessoais móveis Seminários Taguspark Mobilidade 2005 Miguel Pardal 21 de Março de 2005.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Sistemas Distribuídos
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Projetar Processos. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar distribuição | 2 Descrição do Projeto.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Laboratório B – Sistemas Supervisórios N8LB9 Prof. Dr. Cesar da Costa 3.a Aula: Driver de Comunicação e Comunicação OPC.
Emerson Felipe GOVERNO DO ESTADO DE PERNAMBUCO ESCOLA TÉCNICA ESTADUAL MARIA EDUARDA RAMOS DE BARROS.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Escalonamento de Operações de Reconfiguração Dinâmica Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Aluno: Ricardo Ferreira Orientador:
Bruna Cavallero Martins Universidade Católica de Pelotas.
Maique C. Garcia Pelotas, Junho de  Controle Automático Autônomo  Através da identificação da ação mais adequada em caso de um diagnóstico de.
Transcrição da apresentação:

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. 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.

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.

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.

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.

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.

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

Suporte à Mobilidade de Usuários A mobilidade dos usuários pode levar a grandes variações no ambiente de execução de aplicações.

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.

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...

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.

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.

Arquitetura MOCA

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.

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.

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.

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.

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.

Exemplo de Aquisição de Serviço

Descoberta Dinâmica de Serviços

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...)

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.

Compressão de Acordo com o Tipo de Dado

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.

Arquitetura

Arquitetura Escalável

Framework para Adaptação Dinâmica de Aplicações Distribuídas Candidato: Francisco Silva Orientadores: Markus Endler Fábio Kon

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.

Modelo SIDAM

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.

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.

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.

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.

Modelo para Adatação Dinâmica

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.

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.

Modelo para Adatação Dinâmica

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;

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

Modelo para Adatação Dinâmica

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]