Adaptação Dinâmica de Sistemas Distribuídos - IME-USPfssilva/tese/apresentacao.pdf ·...
Transcript of Adaptação Dinâmica de Sistemas Distribuídos - IME-USPfssilva/tese/apresentacao.pdf ·...
Adaptação Dinâmica deSistemas Distribuídos
Francisco Jose da Silva e Silva
Orientadores:
Prof. Dr. Markus Endler
Prof. Dr. Fabio Kon
Instituto de Matematica e Estatıstica da
Universidade de Sao Paulo
Adaptacao Dinamica deSistemas Distribuıdos – p.1/54
Tópicos
1. Introdução
2. Visão Geral do Arcabouço
3. Monitoração
4. Detecção de Mudanças
5. Reconfiguração
6. Validação
7. Testes Realizados
8. Conclusões
Adaptacao Dinamica deSistemas Distribuıdos – p.2/54
Introdução
Adaptacao Dinamica deSistemas Distribuıdos – p.3/54
Motivação
Os avanços nas áreas de computação distribuída, móvel eubíqua tem contribuído para o desenvolvimento desistemas de software caracterizados por um alto grau dedinamismo para tratar de diversas caracteristicas inerentesa estes sistemas:
grande variação na disponibilidade de recursos eserviços;
heterogeneidade de hardware e software;
diversidade das tecnologias de rede empregadas;
mobilidade dos usuários.
Adaptacao Dinamica deSistemas Distribuıdos – p.4/54
Requisito de Software
O software deve ser capaz de se reconfigurar dinamica-
mente em resposta às constantes mudanças do ambiente
de execução de forma a prover os requisitos de funcionali-
dade e desempenho especificados.
Adaptacao Dinamica deSistemas Distribuıdos – p.5/54
Software Adaptativo: Desafios
estruturação do código da aplicação considerando osaspectos funcionais e adaptativos;
escolha de quais elementos do ambiente de execuçãodevem ser monitorados e como realizar estamonitoração;
determinação da necessidade de realizar adaptações;
definição de quais ações adaptativas devem serrealizadas e como executá-las;
complexidade é maior se considerarmos aplicaçõesdistribuídas.
Adaptacao Dinamica deSistemas Distribuıdos – p.6/54
Objetivo e Abordagem
Reduzir a complexidade inerente ao desenvolvimento de
aplicações distribuídas adaptativas através do desenvolvi-
mento de um modelo e mecanismos, na forma de um arca-
bouço de software, que facilitem a construção desta classe
de aplicações.
Adaptacao Dinamica deSistemas Distribuıdos – p.7/54
Mecanismos para Adaptação
Monitoração do Ambientede Execução
MudançasDetecção de
Alteração do Comportamentoda Aplicação
Adaptacao Dinamica deSistemas Distribuıdos – p.8/54
Visão Geral do Arcabouço
Adaptacao Dinamica deSistemas Distribuıdos – p.9/54
Requisitos de Projeto
deve ser geral;
deve dar apoio a reconfiguração dinâmica deaplicações distribuídas;
seus componentes devem ser extensíveis;
os serviços disponibilizados devem permitir a execuçãoconcorrente de aplicações adaptativas;
os componentes do arcabouço devem permitir ogerenciamento de sua execução;
deve promover uma clara separação entre o códigofuncional da aplicação e o código responsável pelocomportamento adaptativo.
Adaptacao Dinamica deSistemas Distribuıdos – p.10/54
Visão Geral do Arcabouço
Detecção de Eventose Notificação
Monitor deRecursos
Monitor deInterações entreObjetos
Avaliador deEventos de Interação
Avaliador deEventos de Recurso
Compositor eNotificador
ReconfiguraçãoDinâmica
Configurador deComponentes Estendido
Monitoração
Adaptacao Dinamica deSistemas Distribuıdos – p.11/54
Monitoração
Adaptacao Dinamica deSistemas Distribuıdos – p.12/54
Monitoração
Objetivo: coletar dados que permitam acompanhar oestado do ambiente de execução.Sub-pacotes:
Monitor de Recursos: acompanha o estado deutilização dos recursos disponíveis no ambiente;
Monitor de Interações entre Objetos:monitora as chamadas de método realizadas entre oscomponentes da aplicação.
Adaptacao Dinamica deSistemas Distribuıdos – p.13/54
Monitor de Recursos
estruturado como uma coleção de OMRs (Objetos deMonitoração de Recursos);
cada OMR é responsável por monitorar um Parâmetrode Monitoração.
Exemplo: percentual de uso da UCP
Faixa Valor Inicial Valor Final
1 0 5
2 5.01 10
3 10.01 20
4 20.01 50
5 50.01 75
6 75.01 85
7 85.01 95
8 95.01 100Adaptacao Dinamica deSistemas Distribuıdos – p.14/54
OMR
utiliza modelo push;
gera notificação somente ao ocorrer alteração na faixade operação;
extensível: reutiliza-se 5 de 7 classes;
tipicamente haverão diversos OMRs instanciados nosnós do ambitente de execução;
permite gerenciamento de sua execução.
Adaptacao Dinamica deSistemas Distribuıdos – p.15/54
Monitor de Interações
Interceptadores são inseridos entre os objetos quecompõem a aplicação;
dados relativos a cada chamada de método sãoarmazenados em memória persistente;
pode-se selecionar quais métodos de cadacomponente da aplicação devem ser monitorados.
Adaptacao Dinamica deSistemas Distribuıdos – p.16/54
Monitor de Interações
Duas implementações disponíveis:
utiliza Interceptadores Portáteis de CORBAtransparente para o código da aplicação;não permite o armazenamento dos parâmetrosenviados na chamada de método.
utiliza apenas Javacontorna a limitação anterior;não é transparente para o código da aplicação.
Adaptacao Dinamica deSistemas Distribuıdos – p.17/54
Detecção de Mudançasno Ambiente de Execução
Adaptacao Dinamica deSistemas Distribuıdos – p.18/54
Detecção de Eventos
Objetivo: detectar mudanças relevantes no estado doambiente no qual a aplicação está sendo executada enotificar estas mudanças.Sua abordagem é orientada a eventos:
Eventos de Recurso: relacionados a mudanças noestado de utilização dos recursos distribuídos;
Eventos de Interação: relacionados com a análise dasinterações entre os componentes que compõem aaplicação distribuída.
Adaptacao Dinamica deSistemas Distribuıdos – p.19/54
Requisitos de Projeto
extensibilidade: cada aplicação possui interesse em umconjunto próprio de eventos;
definição de eventos de Recurso e Interação.
reconfiguração dinâmica: o código para detecção deum evento deve poder ser carregado, removido ealterado dinamicamente;
gerenciamento: interface que permita inciar, suspender,reiniciar e interromper a detecção de eventos de formaseletiva.
Adaptacao Dinamica deSistemas Distribuıdos – p.20/54
Eventos de Recurso
OMRs notificam o Gerente de Recursos sempre quehouver uma variação na faixa de operação doparâmetro monitorado;
O Gerente de Recursos mantém o último valorfornecido por todos os OMRs;
A avaliação da ocorrência de Eventos de Recurso ébaseada em expressões boolenas:
uso_ucp > 4 AND mem_disponível < 2
tempo de duração.
Adaptacao Dinamica deSistemas Distribuıdos – p.21/54
Eventos de Interação
dados relativos às chamadas de método realizadas porcomponentes da aplicação são armazenadas emmemória persistente;
a análise destes dados é realizada por Avaliadores deInterações;
cada Avaliador é responsável pela avaliação daocorrência de um Evento de Interação específico;
cada Avaliador é executado em uma periodicidadefornecida;
o Gerente de Interações controla a execução de umconjunto de Avaliadores.
Adaptacao Dinamica deSistemas Distribuıdos – p.22/54
Notificação de Eventos
Utiliza o Serviço de Eventos de CORBA:
push()
Componente daAplicação B
Componente daAplicação A
Canal de Eventos
push()
Gerente de
Gerente de
Interações
Recursos
Adaptacao Dinamica deSistemas Distribuıdos – p.23/54
Reconfiguração
Adaptacao Dinamica deSistemas Distribuıdos – p.24/54
Reconfiguração Dinâmica
Objetivo: executar as ações de reconfiguração daaplicação distribuída necessárias para adequá-la a umnovo estado do ambiente de execução.
componentes do arcabouço são introduzidos no códigoda aplicação;
requisito importante: separar o código responsável pelocomportamento funcional da aplicação do códigoresponsável pelo comportamento adaptativo;
extensão do Configurador de Componente;
Adaptacao Dinamica deSistemas Distribuıdos – p.25/54
Configurador de Componente
Para cada componente da aplicação que possa estarenvolvido ou ser afetado por uma reconfiguração,instancia-se um Configurador de Componente;
O Configurador mantém dois tipos de referencias:gancho;cliente.
Configuradores são também responsáveis por distribuireventos de reconfiguração entre componentesinter-dependentes.
Adaptacao Dinamica deSistemas Distribuıdos – p.26/54
Configurador de Componente
Clientes
Ganch
so
Depende DeDepende De
Componentes
Implementação do
Clientes
Componente (C)
Componente
Configurador de
Enganchadas
Adaptacao Dinamica deSistemas Distribuıdos – p.27/54
Configurador Estendido
Uma nova thread, denominada EnvironmentAware,possui as seguintes funções:
receber notificações de eventos que sinalizammudanças no ambiente de execução;
executar a estratégia responsável por tratar o eventoespecífico ocorrido;
para cada evento, pode-se definir mais de umaestratégia organizadas utilizando-se o padrão Strategy.
Adaptacao Dinamica deSistemas Distribuıdos – p.28/54
Configurador Extendido
Clientes
anchos
G
Depende DeDepende De
Componentes Clientes
Environment Component
CORBA
Configurator
Canal de Eventos
Aware
Implementação do Componente
Enganchados
Adaptacao Dinamica deSistemas Distribuıdos – p.29/54
Validação
Adaptacao Dinamica deSistemas Distribuıdos – p.30/54
Validação do Arcabouço
utilizamos o protótipo da aplicação de referência doprojeto SIDAM: um sistema de disseminação deinformações de trânsito para uma metrópole;
a geração, armazenamento e consulta de dados sobreo tráfego nas regiões da cidade são distribuídos.
Adaptacao Dinamica deSistemas Distribuıdos – p.31/54
Conceitos
divide-se a cidade em microrregiões;
cada microrregião corresponde a algumas quadras erepresenta uma unidade atômica de armazenamentode informações de trânsito;
dados a respeito da condição do trânsito de uma oumais microrregiões são armazenados em Servidoresde Informação;
máquinas fixas executam um ou mais Servidores deInformação.
Adaptacao Dinamica deSistemas Distribuıdos – p.32/54
Protótipo PSIT
Componentes:
Servidor de Informação;
Servidor de Localização;
Servidor Sidam.
Adaptacao Dinamica deSistemas Distribuıdos – p.33/54
Adaptação no PSIT
adaptação a variações no padrão de acesso aServidores de Informação;
adaptação a variações no estado de utilização derecursos.
Adaptacao Dinamica deSistemas Distribuıdos – p.34/54
Padrão de Acesso
monitoração das chamadas ao método getInfo()disponibilizado por Servidores de Informação;
um Avaliador periodicamente contabiliza a quantidadede acessos gerados para cada Servidor de Informação,agrupando-as pelas “regiões geradoras” dasrequisições;
evento AccessLocation;
a estratégia implementada localiza uma máquina naregião responsável pelo maior número de acessos paraeste servidor e que esteja com uma carga de trabalhoabaixo de um determinado patamar;
o Servidor de Informação é reintanciado.
Adaptacao Dinamica deSistemas Distribuıdos – p.35/54
Estado de Recursos
OMRs monitoram o percentual de uso da UCP ememória disponível nas máquinas pertencentes à redefixa;
evento ServerOverloaded: grande consumo de UCPe pouca memória disponível;
estratégias implementadas:first fitbest fit
o Servidor de Informação é reintanciado.
Adaptacao Dinamica deSistemas Distribuıdos – p.36/54
Testes Realizados
Adaptacao Dinamica deSistemas Distribuıdos – p.37/54
Testes Realizados
através de simulações, avaliou-se o desempenho daversão adaptativa do PSIT comparando-o à sua versãonão-adaptativa;
a cidade foi dividida em quatro macrorregiões (norte,sul, leste e oeste) e definimos um custo decomunicação para computadores pertencentes à redefixa entre cada uma das regiões;
para simplificar a análise dos dados coletados, foiutilizado apenas um Servidor de Informação;
foram implementados 3 cenários.
Adaptacao Dinamica deSistemas Distribuıdos – p.38/54
Primeiro Cenário
� �
Etapa
� �
Etapa
acessos 300 / 600 300 / 600
norte 10% 10%
sul 50% 10%
leste 20% 10%
oeste 20% 70%
Adaptacao Dinamica deSistemas Distribuıdos – p.39/54
Primeiro Cenário
0
10
20
30
40
50
60
70
0 20 40 60 80 100 120
Tem
po m
edio
de
aces
so (
em m
ilise
gund
os)
Intervalo entre execucoes do Avaliador (em segundos)
Adaptacao Dinamica deSistemas Distribuıdos – p.40/54
Primeiro Cenário
0
50
100
150
200
250
300
0 50 100 150 200 250
Tem
po d
e ac
esso
(em
mili
segu
ndos
)
Tempo (em segundos)
Adaptacao Dinamica deSistemas Distribuıdos – p.41/54
Primeiro Cenário
0
50
100
150
200
250
300
0 50 100 150 200 250
Tem
po d
e ac
esso
(em
mili
segu
ndos
)
Tempo (em segundos)
Adaptacao Dinamica deSistemas Distribuıdos – p.42/54
Segundo Cenário
� �
Etapa
� �
Etapa
acessos 300 300
norte 25% 20%
sul 25% 40%
leste 25% 20%
oeste 25% 20%
Adaptacao Dinamica deSistemas Distribuıdos – p.43/54
Segundo Cenário
0
10
20
30
40
50
60
70
0 20 40 60 80 100 120
Tem
po m
edio
de
aces
so (
em m
ilise
gund
os)
Intervalo entre execucoes do Avaliador (em segundos)
Adaptacao Dinamica deSistemas Distribuıdos – p.44/54
Terceiro Cenário
� �
Etapa
� �
Etapa
� �
Etapa
� �
Etapa
� �
Etapa� �
Etapa
acessos 60 60 60 60 60 60
norte 0% 100% 0% 100% 0% 100%
sul 100% 0% 100% 0% 100% 0%
leste 0% 0% 0% 0% 0% 0%
oeste 0% 0% 0% 0% 0% 0%
Adaptacao Dinamica deSistemas Distribuıdos – p.45/54
Terceiro Cenário
0
10
20
30
40
50
60
70
0 50 100 150 200
Tem
po m
edio
de
aces
so (
em m
ilise
gund
os)
Intervalo entre execucoes do Avaliador (em segundos)
Adaptacao Dinamica deSistemas Distribuıdos – p.46/54
Quarto Cenário
� �
Etapa
� �
Etapa
acessos 600 600
norte 90% 5%
sul 5% 90%
leste 3% 3%
oeste 2% 2%
Adaptacao Dinamica deSistemas Distribuıdos – p.47/54
Quarto Cenário
0
50
100
150
200
250
300
350
0 20 40 60 80 100 120
Tem
po m
edio
de
aces
so (
em m
ilise
gund
os)
Intervalo entre execucoes do Avaliador (em segundos)
Adaptacao Dinamica deSistemas Distribuıdos – p.48/54
Conclusões
Adaptacao Dinamica deSistemas Distribuıdos – p.49/54
Características do Arcabouço
seu modelo integra a monitoração do ambiente deexecução, a detecção de mudanças significativas desteambiente e o suporte à reconfiguração doscomponentes da aplicação;
é geral;
é flexível;
possui mecanismos que permitem o gerenciamento daexecução de seus componentes;
permite a reconfiguração dinâmica da infra-estrutura demonitoração e detecção de eventos do ambiente deexecução;
Adaptacao Dinamica deSistemas Distribuıdos – p.50/54
Características do Arcabouço
monitoração: estado de utilização de recursos doambiente E análise das interações realizadas entre osobjetos que compõem a aplicação;
os componentes do arcabouço executados emprocessos independentes podem ser compartilhadospor diversas aplicações adaptativas;
separação do código funcional da aplicação do códigoresponsável pela adaptação;
estratégias de adaptação organizadas de acordo com opadrão Strategy ;
suporte à reconfiguração dos componentes quecompõem a aplicação através do uso deConfiguradores de Componentes.
Adaptacao Dinamica deSistemas Distribuıdos – p.51/54
Principais Contribuições
desenvolvimento de um modelo e mecanismos naforma de um arcabouço para simplificar odesenvolvimento de aplicações adaptativasdistribuídas;
foi explorado a análise das interações entrecomponentes da aplicação como forma de se detectara necessidade de realizar adaptações;
extendeu-se o Configurador de Componentes criandoum mecanismo para coordenar reconfigurações decomponentes distribuídos.
Adaptacao Dinamica deSistemas Distribuıdos – p.52/54
Conclusões
o desenvolvimento de aplicações distribuídasadaptativas é uma tarefa complexa;
este trabalho apresenta um modelo e arcabouço queobjetivam simplificar o desenvolvimento desta classede aplicações;
solução geral e que não restringe os mecanismos paraadaptação que possam ser utilizados.
Adaptacao Dinamica deSistemas Distribuıdos – p.53/54
Trabalhos Futuros
integração com o ReMoS;
utilização EPS;
utilização do arcabouço na construção de outrasaplicações;
desenvolvimento de bibliotecas de componentesespecializados;
escalabilidade no gerenciamento de recursos;
extensões na interface do OMR;
utilização de parte da infra-estrutura em outrosprojetos, como os relacionados a grid computing.
Adaptacao Dinamica deSistemas Distribuıdos – p.54/54