Mobilidade
Cláudia Ribeiro
Introdução
Dispositivos móveis + Wireless
 Aplicações móveis
Novas aplicações  novos requisitos
Limites da Computação Móvel

Capacidade dos dispositivos móveis


Conexão e rede




Heterogeneidade em recursos disponíveis
Banda limitada
Alta taxa de erros
Freqüentes desconexões
Mobilidade física (Mobile host)


Aumenta handoff
Possível redução na disponibilidade de recursos
 Exige adaptabilidade da aplicação às
mudanças no ambiente
Requisitos para Computação
Móvel

Reconfiguração dinâmica


Adaptabilidade


Minimizar efeitos de alta latência e desconexões freqüentes
Consciência de contexto (context-awareness)


Execução eficiente e previsível em diferentes condições
Interação assíncrona


Adição ou alteração de funcionalidade em tempo de execução
Para efetivar a adaptabilidade
Lightweigth Middleware

Devido a limitação de recursos
Mobile Middleware

Facilita o desenvolvimento de aplicações distribuídas que
incluem a conexão entre elementos móveis e aplicações
corporativas através de redes sem fio, fornecendo serviços
como sincronização após desconexão e adaptabilidade
baseada em contexto
Funções

Mobile middleware age como mediador entre
dispositivo e a aplicação, executando as seguintes
funções:

Sincronização entre dispositivo e dados corporativos

Messaging, incluindo e-mail

Tradução entre formatos de dados, plataformas e protocolos de
rede

Segurança, incluindo autenticação e encriptação

Gerenciamento de dispositivos
O suporte do Sistema
Operacional

A comunicação em sistemas distribuídos dá-se entre processos
em máquinas distintas

Gerenciar estes processos é na perspectiva do sistema
operacional, uma atividade fundamental

A utilização de técnica multithreading permite organização mais
eficiente de sistemas cliente-servidor

Compartilhamento do espaço de endereçamento

Redução do custo de troca de contexto
Threads em Sistemas
Distribuídos

Uma importante propriedade de threads é permitir
uma forma conveniente de efetivar systems calls
sem bloquear o processo como um todo


Permite múltiplas conexões ao mesmo tempo (pool)

Ganho de performance
Mas a distribuição tem seu custo...
Componentes do atraso em
sistemas distribuídos

Tempo de transmissão

Marshalling/Unmarshalling

Cópia de dados – potencialmente após marshalling

Através dos limites user-kernel, entre espaços de endereçamento do cliente
e do servidor e buffers do kernel;

Através de cada camada de protocolo (ex. RPC/UDP/IP/Ethernet)

Entre interface de rede e buffers do kernel (geralmente feita através de
DMA)

Inicialização de pacote – envolve inicialização de cabeçalhos e
checksums

Escalonamento de thread e troca de contexto

Espera de confirmação (ACK)
Custo da comunicação entre
threads
(a) Sys tem call
Control transfer via
trap instruc tion
T hread
Control transfer via
privi leged i ns tructions
User
Kernel
Protec tion domain
boundary
(b) RPC/RMI (wi thi n one c omputer)
T hread 1
User 1
T hread 2
Kernel
User 2
(c ) RPC/RMI (between computers)
Network
T hread 1
T hread 2
User 1
User 2
Kernel 1
Kernel 2
Custo de Invocação e tamanho
do parâmetro
RPC del ay
Requested data
s ize (bytes )
0
1000
2000
Pac ket
s ize
• Custo associado ao atraso no processamento da chamada remota
• Cada pacote adicional acrescenta um aumento extra no delay
Tempos para Invocações
S eri al ised invoc ations
proc es s args
marshal
S end
Rec ei ve
unmarshal
proc es s results
proc es s args
marshal
S end
Conc urrent i nvoc ati ons
proc es s args
marshal
S end
transmis si on
proc es s args
marshal
S end
Rec ei ve
unmarshal
exec ute reques t
marshal
S end
Rec ei ve
unmarshal
proc es s results
Rec ei ve
unmarshal
exec ute reques t
marshal
S end
Rec ei ve
unmarshal
exec ute reques t
marshal
S end
Rec ei ve
unmarshal
proc es s results
Rec ei ve
unmarshal
exec ute reques t
marshal
S end
ti me
Rec ei ve
unmarshal
proc es s results
Client
S erver
Client
S erver
Uma nova perspectiva

Consideramos até então que comunicação nos sistemas distribuídos
estão limitados a troca de mensagem

Contudo, existem situações na qual a passagem de programas, às
vezes em execução, simplifica o projeto de um sistema distribuído

Motivações para migração de código:

Balanceamento de carga entre máquinas - carga é geralmente expressa
em termos de tamanho de fila para CPU ou utilização de CPU

Redução da comunicação

Acesso a grande bases de dados
Mobilidade de código e
configuração dinâmica

Esta abordagem permite que alterações sejam efetuadas sem o
conhecimento prévio do cliente

Não exige a pré-instalação do software no cliente. No momento
em que é solicitada a comunicação com o servidor, o código é
carregado
Modelos para Migração de
Código

Nesses modelos, um processo consiste em 3 partes: segmento de código, segmento de
recursos e segmento de execução

Mobilidade fraca: transferência somente do segmento de código (reinicialização do
processo). Ex. Applets que rodam no mesmo espaço de endereçamento do browser

Mobilidade forte: segmento de execução pode ser transferido também (mais difícil de
implementar). O processo é clonado e roda em paralelo com o processo original
Migração e Recursos Locais

O segmento de recursos contém referências a recursos externos
necessários ao processo, tais como arquivos, impressoras, dispositivos
e outros como porta e sockets

A migração de segmento de recursos merece atenção especial, uma
vez que os recursos são locais e não podem ser simplesmente
transferidos

As implicações da migração de código sobre o segmento de recursos
pode ser exemplificado através de ligações process-resource

Ligação por identificador: ex. URL ou FTP server

Ligação por valor: quando um programa usa bibliotecas, que devem
estar localmente disponíveis, mas o exato local pode variar

Ligação por tipo: ex. referência a dispositivos locais como monitores,
impressoras, etc
Migração em Sistemas
Heterogêneos
Principal problema refere-se à migração do segmento de execução.
Java Virtual Machine e byte code atendem os requisitos para migração
Agentes Móveis

Mobile agents são processos (programas em execução) que podem migrar
de uma máquina para outra (comumente no mesmo sistema), a fim de
satisfazer requisições feitas por seus clientes

Implementam uma metáfora computacional que é análoga a forma de
conduzir negócios: visita um lugar, usa um serviço e move-se levando
consigo seu estado

Vantagens de usar agentes móveis inclui:

baixa exigência de recursos de rede, em geral usado para seu
deslocamento, e continuidade de execução sem conexão

Capacidade de clonar-se para executar tarefas em paralelo

Fácil implementação e instalação

Confiabilidade
Arquitetura de Agentes

Extensão do modelo client-server, onde cada máquina possui um
servidor com as seguintes funções:

Manter trilha de agentes a máquina

Aceitar e autenticar agentes que chegam

Fornecer namespace hierárquico para cada agente e serviço

Permitir comunicação de agentes através de mensagens

Permitir migração de agentes

Fornecer acesso a persistência para que o agente possa salvar seu estado
como desejado e em caso de falha

Padrão - FIPA
Download

Mobilidade