Oportunidades e Desafios da Computa¸c˜ao M´ovel
no Cotexto Empresarial
Aspectos de Software e Middleware
para Computa¸c˜ao M´ovel
Francisco Jos´e da Silva e Silva Rafael Fernandes Lopes
Universidade Federal do Maranh˜ao - UFMA Laborat´orio de Sistemas Distribu´ıdos - LSD
Agenda
1 Arquiteturas de Software
2 Opera¸c˜oes Desconectadas
3 Fraca Conectividade
4 Middleware para Computa¸c˜ao M´ovel
MoCA SNU
5 Exemplo de Aplica¸c˜ao Regional
CEMAR: Sele¸c˜ao de Alvos
Arquiteturas de Software
Arquiteturas de Software
Restri¸c˜oes t´ıpicas de ambientes de computa¸c˜ao m´ovel
Dispositivos possuem poucos recursos e n˜ao s˜ao confi´aveis; Heterogeneidade de dispositivos e tecnologias de rede;
Conectividade atrav´es de enlaces sem fio de baixa largura de banda; Desconex˜oes freq¨uentes por per´ıodos de tempo indefinidos.
Estas condi¸c˜oes severas possuem grande impacto no projeto de aplica¸c˜oes voltadas `a computa¸c˜ao m´ovel e motivaram o desenvolvimento de novos modelos de computa¸c˜ao.
Arquiteturas de Software
Funcionalidades Atribu´ıdas ao Dispositivo M´ovel
Dispositivo m´ovel como terminal burro (Thin Client Model) ◮ Poucos recursos
◮ N˜ao confi´avel (roubo, acidentes, etc...)
Dispositivo m´ovel incorpora o m´aximo de funcionalidades poss´ıvel ◮ Redes sem fio lentas e n˜ao confi´aveis
Modelos que permitem um ajuste da funcionalidade: adapta¸c˜ao
Arquiteturas de Software
Modelo Cliente/Servidor Simples
Arquiteturas de Software
Modelo Cliente/Servidor Simples
Em alguns casos, funcionalidade e dados s˜ao distribu´ıdos em v´arios servidores;
Em muitos casos, o servidor ´e replicado em diferentes m´aquinas para aumentar a disponibilidade / tolerˆancia a falhas / escalabilidade; Nem o cliente nem o servidor s˜ao cientes da mobilidade do cliente; O meio sem fio ´e transparente devido `a camada de enlace ou de rede (IP m´ovel).
O cliente pode observar tempos de resposta lentos e imprevis´ıveis,
especialmente quando grandes volumes de dados s˜ao transmitidos em
resposta a solicita¸c˜oes;
Algoritmos de invalida¸c˜ao de cache no cliente normalmente dependem de disponibilidade cont´ınua do mesmo.
Arquiteturas de Software
Cliente / Agente (Proxy) / Servidor
Um agente ou proxy representa o cliente na rede fixa;
Alivia a pobre largura de banda e baixa confiabilidade de enlaces sem fio, mantendo a presen¸ca do cliente na rede fixa;
Protocolos diferentes podem ser utilizados em cada parte da intera¸c˜ao;
Adequado para clientes leves.
Arquiteturas de Software
Funcionalidades T´ıpicas do Agente
Enfileiramento da comunica¸c˜ao entre o cliente e o agente;
Assumir responsabilidades em favor do cliente. Por exemplo: realizar requisi¸c˜oes complexas, retornando apenas o resultado final;
Cache;
Arquiteturas de Software
Cliente / Agente (Proxy) / Servidor: Desvantagens
Em caso de desconex˜ao, o cliente m´ovel n˜ao consegue continuar operando;
´
E necess´ario a modifica¸c˜ao do c´odigo de aplica¸c˜oes legadas na sua parte cliente. Para o servidor, a abordagem ´e transparente;
Otimiza¸c˜oes de transferˆencia de dados ocorrem apenas no sentido servidor → cliente;
A programa¸c˜ao do agente envolve o conhecimento do hardware e
software b´asico dos dispositivos m´oveis.
Arquiteturas de Software
Arquiteturas de Software
Cliente / Intercepta¸c˜ao / Servidor
Os agentes cliente e servidor trabalham em conjunto para:
◮ Realizar otimiza¸c˜oes que reduzem os dados transmitidos atrav´es do
enlace sem fio;
◮ Aumentar a disponibilidade dos dados;
◮ N˜ao interromper a computa¸c˜ao no dispositivo m´ovel;
A aplica¸c˜ao cliente enxerga o agente cliente como um servidor co-residente;
A aplica¸c˜ao servidora enxerga o agente servidor como um cliente localizado na rede fixa.
A intercepta¸c˜ao ´e transparente tanto ao cliente quanto ao servidor; Portanto, o par de agentes pode ser empregado com qualquer aplica¸c˜ao;
Possui maior flexibilidade para lidar com desconex˜oes; Mais adequado para clientes m´oveis com bom poder de processamento e armazenamento.
Arquiteturas de Software
Cliente / Intercepta¸c˜ao / Servidor: Desvantagens
Necessidade de desenvolver os dois agentes para cada classe de aplica¸c˜ao (sistema de arquivos, banco de dados, acesso a Web, etc)
Arquiteturas de Software
Ponto-a-Ponto
N˜ao h´a distin¸c˜ao entre clientes e servidores;
Cada lado possui toda funcionalidade tanto cliente quanto servidor; Modelo somente apropriado para clientes poderosos (heavy-weight); Para lidar com desconex˜oes e baixa conectividade, um agente interceptador servidor pode ser utilizado no dispositivo m´ovel.
Adequado para algumas aplica¸c˜oes como trabalho cooperativo usando
dispositivos m´oveis:
◮ Em C/S, as atualiza¸c˜oes n˜ao podem ser trocadas diretamente; ◮ C/S imp˜oe maior custo de comunica¸c˜ao caso o servidor esteja longe
dos clientes;
◮ Em C/S, desconex˜oes com servidor impedem intera¸c˜oes.
Arquiteturas de Software
Agentes M´oveis
S˜ao processos enviados a partir de um computador de origem para realizar uma tarefa espec´ıfica;
Estende o paradigma de comunica¸c˜ao RPC: cada AM possui seus
pr´oprios dados e estado de execu¸c˜ao;
O AM procede de forma autˆonoma e independente de quem o enviou. Um ambiente de execu¸c˜ao de agentes existe nos n´os que os recebem; Um AM pode migrar de um n´o para outro;
Ao completar sua tarefa, o AM entrega os resultados ao cliente de origem ou a outro servidor;
Arquiteturas de Software
Agentes M´oveis
Opera¸c˜oes Desconectadas
Opera¸c˜oes Desconectadas
Motiva¸c˜ao para Suporte a Opera¸c˜oes Desconectadas
Computadores que utilizam redes sem fio possuem conectividade intermitente;
O suporte a opera¸c˜oes desconectadas ´e, portanto, crucial;
Este suporte provˆe uma maior autonomia ao dispositivo m´ovel que deve continuar operando mesmo sem conectividade com a rede.
Opera¸c˜oes Desconectadas
Id´eia B´asica
Antecipar per´ıodos de desconex˜ao, movendo dados e computa¸c˜ao para o dispositivo m´ovel;
Provisionamento (hoarding): processo de carregar dados para o dispositivo m´ovel de forma a permitir a continuidade das opera¸c˜oes em caso de desconex˜ao.
Opera¸c˜oes Desconectadas
Estados de Opera¸c˜ao
Opera¸c˜oes Desconectadas
Estado de Provisionamento
Unidade Depende da aplica¸c˜ao
de provisionamento (ex: um arquivo, tuplas ou fragmentos de banco de dados, tarefas, p´aginas HTML, etc..)
Quais itens carregar Explicitamente especificado pelo usu´ario Deduzido pelo hist´orico das opera¸c˜oes
Depende da aplica¸c˜oes para as quais o sistema ´e utilizado (execut´aveis processador de
texto/compilador)
Quando carregar os Antes das desconex˜oes (desconex˜oes previs´ıveis. Ex: itens ´area de alto custo de comunica¸c˜ao)
De forma regular (desconex˜oes n˜ao previsiveis) Ao ser requisitado um Gerar uma mensagem de erro / excess˜ao dado n˜ao dispon´ıvel Enfileirar a solicita¸c˜ao para atendimento futuro localmente
Opera¸c˜oes Desconectadas
Estado de Desconex˜ao
O que armazenar no log Valores para os dados Marcas de tempo Opera¸c˜oes
Quando otimizar o log De forma incremental
Imediatamente antes da reintegra¸c˜ao Como otimizar o log Depende da aplica¸c˜ao
Vantagens da Poupar mem´oria do dispositivo m´ovel
otimiza¸c˜ao do log Reduzir o tempo de propaga¸c˜ao de atualiza¸c˜oes
Opera¸c˜oes Desconectadas
Estado de Reintegra¸c˜ao
Abordagens Pessimista: atualiza¸c˜oes somente em um lugar (check in / check out)
Otimista
Como reintegrar Re-executar as a¸c˜oes do log Como resolver conflitos Utilizar semˆantica da aplica¸c˜ao
Resolu¸c˜ao autom´atica
Disponibilizar ferramentas para assistir o usu´ario
Opera¸c˜oes Desconectadas
Exemplo: Sistema de Arquivo
Arquivos a serem utilizados em per´ıodos de desconex˜ao s˜ao carregados no dispositivo m´ovel;
Diferen¸cas com rela¸c˜ao a caching: ◮ Ausˆencias n˜ao podem ser atendidas;
◮ O servidor n˜ao pode notificar o cliente a respeito de atualiza¸c˜oes no
arquivo: necessidade de reintegra¸c˜ao.
Unidades de provisionamento: ◮ Bloco de disco;
◮ Arquivos (mais comum); ◮ Grupos de arquivos; ◮ Diret´orios.
Opera¸c˜oes Desconectadas
Sistema de Arquivos: Provisionamento
Escolha de Itens:
Processo assistido por instru¸c˜oes fornecidas pelo usu´ario;
Processo realizado automaticamente pelo sistema de acordo com o hist´orico de acesso aos arquivos;
Combina¸c˜ao das duas abordagens gerando uma lista de prioridades (Coda).
Abordagem Tait et Al:
Uma ´arvore ´e usada para representar o hist´orico de acesso aos arquivos;
Seus n´os representam arquivos execut´aveis e de dados;
Uma aresta de A at´e B ´e inserida caso o programa A chame o programa B ou acesse o arquivo B;
Opera¸c˜oes Desconectadas
Sistema de Arquivos: Provisionamento
Abordagem Seer System:
Arquivos s˜ao automaticamente carregados de acordo com uma medida que quantifica a rela¸c˜ao entre eles;
Esta medida pode ser definida como a quantidade de referˆencias separando duas referˆencias adjacentes aos dois arquivos no passado hist´orico.
Opera¸c˜oes Desconectadas
Sistema de Arquivos: Opera¸c˜oes Desconectadas
Atualiza¸c˜oes s˜ao mantidas em um log;
Em Coda, o log guarda todas as chamadas ao sistema de arquivos
com seus respectivos argumentos bem como o estado da vers˜ao dos
objetos referenciados; Otimiza¸c˜os do log em Coda:
1 Qualquer opera¸c˜ao que sobreponha os efeitos de opera¸c˜oes anteriores
removem as entradas correspondentes;
2 Uma opera¸c˜ao inversa (ex: rmdir) cancela tanto a opera¸c˜ao inversa
Opera¸c˜oes Desconectadas
Sistema de Arquivos: Reintegra¸c˜ao
Atualiza¸c˜oes de dados na cache s˜ao consideradas apenas tentativas; Em Coda, a execu¸c˜ao do log ´e realizada como uma ´unica transa¸c˜ao; Em Coda, estrat´egias diferentes s˜ao utilizadas para lidar com
atualiza¸c˜oes concorrentes em arquivos e diret´orios;
Apenas conflitos write/write necessitam ser considerados por produzirem c´opias divergentes;
Conflitos read/write s˜ao ignorados.
Fraca Conectividade
Fraca Conectividade
Fraca Conectividade
Conectividade fraca ´e a conectividade provida por redes lentas ou caras;
Tipicamente ´e comum perdas de conectividade por per´ıodos curtos; Em computa¸c˜ao m´ovel tem-se a caracter´ıstica adicional de varia¸c˜ao na intensidade do sinal o que provoca varia¸c˜oes na largura de banda dispon´ıvel para a comunica¸c˜ao e na latˆencia;
Estas caracter´ısticas imp˜oem revis˜oes em v´arios protocolos do sistema.
Fraca Conectividade
Abordagens T´ıpicas para Fraca Conectividade
Revisar as opera¸c˜oes que envolvem o uso da rede;
Tanto com rela¸c˜ao a cache quanto replica¸c˜ao, os seguintes t´opicos s˜ao revistos:
◮ Tratamento de ausˆencias (cache misses);
◮ Freq¨uˆencia de propaga¸c˜ao de atualiza¸c˜oes para os servidores; ◮ Valida¸c˜ao dos itens mantidos na cache.
Fraca Conectividade
Tratamento de Ausˆencias em Cache
Servir ausˆencias pode implicar em longas esperas ou altos custos; Op¸c˜ao: servir seletivamente, baseado em qu˜ao cr´ıtico o item ´e ou na conectividade corrente.
Fraca Conectividade
Propaga¸c˜ao de Atualiza¸c˜oes
Reintegra¸c˜ao agressiva
◮ Reduz a efetividade de otimiza¸c˜oes do log (ex: arquivos tempor´arios); ◮ Pode comprometer o tempo de resposta de outros tr´afegos na rede; ◮ Permite um gerenciamento consistente da cache;
◮ Reduz a probabilidade de conflitos; ◮ Mantˆem pequena a log no cliente. Reintegra¸c˜ao lenta
◮ Pode sobrecarregar a cache;
◮ O uso de callbacks pelos servidores pode consumir muita largura de
banda;
◮ Objetos na cache podem ficar obsoletos, afetando o resultado de
opera¸c˜oes de leitura.
Middleware para Computa¸c˜ao M´ovel MoCA
Middleware para Computa¸c˜
ao M´
ovel
MoCA
Middleware para Computa¸c˜ao M´ovel MoCA
MoCA (Mobile Collaboration Architecture)
MoCA ´e um middleware que facilita o desenvolvimento e execu¸c˜ao de aplica¸c˜oes distribu´ıdas cientes de contexto para redes locais sem fio infra-estruturadas, epecificamente redes IEEE 802.11b/g;
MoCA provˆe meios para coletar, armazenar e processar informa¸c˜oes de contexto de dispositivos m´oveis (como notebooks, por exemplo); O projeto ´e desenvolvido na PUC-Rio sob a orienta¸c˜ao do Prof Markus Endler;
Middleware para Computa¸c˜ao M´ovel MoCA
Arquitetura do MoCA
Middleware para Computa¸c˜ao M´ovel MoCA
Componentes do MoCA
CIS (Context Information Service):
◮ Servi¸co distribu´ıdo que recebe, armazena e processa informa¸c˜oes de
contexto enviadas por monitores que executam em dispositivos m´oveis;
◮ Recebe registro de aplica¸c˜oes e servidores, gerando notifica¸c˜oes de
eventos a estas sempre que detectar mudan¸cas de interesse no estado de dispositivos m´oveis.
ClientAPI and ServerAPI: disponibiliza o acesso a dados de qualquer dispositivo armazenados pelo CIS.
CS ((Configuration service):
◮ Armaze e gerencia informa¸c˜oes de configura¸c˜ao de cada dispositivo
utilizadas pelo CIS;
◮ Mantˆem uma tabela de espalhamento indexada pelo endere¸co MAC do
Middleware para Computa¸c˜ao M´ovel MoCA
Componentes do MoCA
Monitor:
◮ Coleta informa¸c˜oes a respeito do dispositivo m´ovel e da rede e
periodicamente envia estes dados a um CIS localizado na rede fixa;
◮ Coleta informa¸c˜oes como: uso da CPU, mem´oria dispon´ıvel, energia
restante na bateria, endere¸co MAC do ponto de acesso atual;
◮ Realiza uma busca pelos pontos de acesso pr´oximos obtendo o valor de
seu endere¸co f´ısico e indicador de intensidade de sinal (BSSIDs) e RSSI (Received Signal Strength Indicator);
◮ Notifica o CIS quando um handoff ´e detectado.
Middleware para Computa¸c˜ao M´ovel MoCA
Componentes do MoCA
LIS (Location Inference Service)
◮ Respons´avel por inferir a localiza¸c˜ao aproximada do disposivo m´ovel a
partir de dados armazenados pelo CIS;
◮ Compara o padr˜ao de sinais RF recebidos pelo dispositivo m´ovel a
partir de pontos de acesso 802.11 aud´ıveis com padr˜oes de sinal previamente mensudados em pontos de referˆencia pr´e-definidos de um pr´edio ou ´area aberta.
SRM (Symbolic Region Manager ):
◮ Disponibiliza uma interface para definir (criar, modificar e excluir) e
consultar informa¸c˜oes a respeito de regi˜oes simb´olicas;
◮ Regi˜oes simb´olicas s˜ao nomes associadas a regi˜oes f´ısicas bem
Middleware para Computa¸c˜ao M´ovel MoCA
Componentes do MoCA
DS (Discovery Service):
◮ O ServerAPI automaticamente se registra junto ao DS;
◮ O DS armazena informa¸c˜oes como nome, proripedade e endere¸co de
qualquer aplica¸c˜ao e seus componentes (como servidores e proxies) ou servi¸co registrado junto ao middleware MoCA de forma a disponibilizar a descoberta de seu endere¸co por parte de seus clientes.
Proxy Framework for Customized Adaptation:
◮ Interage com o MoCA, escondendo os detalhes desta intera¸c˜ao e
registrando-se como interessado por notifica¸c˜oes sobre informa¸c˜oes de contexto de interesse da aplica¸c˜ao;
◮ Permite associar a¸c˜oes a serem realizadas na ocorrˆencia de eventos de
contexto.
Middleware para Computa¸c˜ao M´ovel MoCA
Aplica¸c˜oes MoCa: ComManager
A aplica¸c˜ao comManager ´e uma ferramenta que permite a
comunica¸c˜ao e o relacionamento entre usu´arios que se encontram em
uma mesma ´area de cobertura;
Os usu´arios podem realizar o cadastro de uma lista de usu´arios confi´aveis (amigos) e receber informa¸c˜oes sobre o estado (online ou n˜ao) e localiza¸c˜ao destes usu´arios e de grupos de amigos
(comunidades) recebendo a localiza¸c˜ao de todos os usu´arios filiados que variam de acordo com as restri¸c˜oes de localiza¸c˜ao definidas pela comunidade.
Middleware para Computa¸c˜ao M´ovel MoCA
NITA (Notes In The Air )
´
E uma aplica¸c˜ao baseada em localiza¸c˜ao;
Utiliza a informa¸c˜ao de localiza¸c˜ao para permitir que usu´arios postem mensagens destinadas a uma regi˜ao simb´olica;
Qualquer cliente localizado na regi˜ao receber´a a mensagem.
Middleware para Computa¸c˜ao M´ovel SNU
Middleware para Computa¸c˜
ao M´
ovel
Middleware para Computa¸c˜ao M´ovel SNU
Objetivo Geral
Projetar e implementar um framework que facilite o desenvolvimento de aplica¸c˜oes de compartilhamento de servi¸cos e informa¸c˜oes em ambiente de computa¸c˜ao m´ovel que utilizam redes ad-hoc espontˆaneas.
Middleware para Computa¸c˜ao M´ovel SNU
Requisitos
Inexistˆencia de controle centralizado;
Baixo consumo de recursos do dispositivo (processamento, mem´oria, bateria, . . . )
Independˆencia da tecnologia de rede; Portabilidade do software.
Middleware para Computa¸c˜ao M´ovel SNU
SNU: Cen´
arios de Utiliza¸c˜
ao
Middleware para Computa¸c˜ao M´ovel SNU
Ao acaso, em bares ou aeroportos
Encontros completamente ao acaso e com desconhecidos; Busca de pessoas com um determinado perfil e disponibilidade;
◮ Perfil = informa¸c˜oes pessoais/trabalho, gostos, hobbies... ◮ Disponibilidade = ocupado, livre, n˜ao perturbe...
Middleware para Computa¸c˜ao M´ovel SNU
Encontros combinados, reuni˜oes de trabalho ou sala de
aula
Encontros programados com pessoas conhecidas; Compartilhamento de informa¸c˜oes e arquivos; Agenda de compromissos em grupo.
Middleware para Computa¸c˜ao M´ovel SNU
Middleware para Computa¸c˜ao M´ovel SNU
Organiza¸c˜ao em Camadas
Camada de Rede ◮ Funcionalidade Cliente; ◮ Funcionalidade Servidor. Camada de Servi¸cos ◮ Servi¸co de Contatos; ◮ Servi¸co de Dados;◮ Servi¸co de compartilhamento de stream; ◮ Servi¸co de Contexto;
◮ Descoberta de Servi¸cos;
Aplica¸c˜ao do Usu´ario
Middleware para Computa¸c˜ao M´ovel SNU
Middleware para Computa¸c˜ao M´ovel SNU
Camada de Rede
Implementada utilizando-se a tecnologia Bluetooth; Expans´ıvel para outras tecnologias de rede;
Implementa tanto a funcionalidade cliente quanto a servidor; N˜ao possui fun¸c˜oes de baixo n´ıvel como enviar e receber bytes; Baseada em comandos de alto n´ıvel, ex. transferir arquivo;
Engloba todos as opera¸c˜oes e informa¸c˜oes diretamente associadas a rede, como a lista de dispositivos encontrados e suas “strings” de conex˜ao.
Middleware para Computa¸c˜ao M´ovel SNU
Servi¸co de Grupo
N˜ao h´a servidor de grupos;
N˜ao h´a algoritmos distribuidos de gerenciamento de grupo; Cada pessoa ´e respons´avel por manter sua lista de grupos de interesse;
Cada pessoa pode ter mais de um disposivo;
Dados podem ser compartilhados com pessoas individualmente ou com grupos de pessoas;
Middleware para Computa¸c˜ao M´ovel SNU
Servi¸co de Dados
´Itens de dados s˜ao pares contendo um nome e um valor; Os valores podem representar arquivos de qualquer formato; N˜ao h´a controle de vers˜ao dos dados disponibilizados;
Os dados podem ser privados, p´ublicos ou compartilhados com
pessoas ou grupos.
Middleware para Computa¸c˜ao M´ovel SNU
Planejamento Atual
Defini¸c˜ao e implementa¸c˜ao do servi¸co de contexto;
Implementa¸c˜ao de aplica¸c˜oes para avalida¸c˜ao da infra-estrutura proposta;
Elabora¸c˜ao de p´agina Web;
Instala¸c˜ao e configura¸c˜ao de CVS e ambiente de desenolvimento no LSD;
Exemplo de Aplica¸c˜ao Regional CEMAR: Sele¸c˜ao de Alvos
Exemplo de Aplica¸c˜
ao Regional
CEMAR: Sele¸c˜
ao de Alvos
Exemplo de Aplica¸c˜ao Regional CEMAR: Sele¸c˜ao de Alvos
Sele¸c˜ao de Alvos: Objetivo
Desenvolver uma solu¸c˜ao para recupera¸c˜ao de energia que selecione poss´ıveis alvos suspeitos de fraude, os distribua comtemplando a roteriza¸c˜ao das equipes, fa¸ca a fiscaliza¸c˜ao da unidade consumidora suspeita e proveja relat´orios gerencias sobre o resultado.
Exemplo de Aplica¸c˜ao Regional CEMAR: Sele¸c˜ao de Alvos
Sele¸c˜ao de Alvos: Funcionalidades
Selecionar alvos para fiscaliza¸c˜ao a partir de ind´ıcios de fraudes; Cada ind´ıcio atribui um ponto a UC, quem tiver mais pontos tem maior probabilidade de estar fraudando) utilizando dados dos sistema comercial (hist´oricos de consumos, leituras, c´odigos de irregularidades alimentados pelos leituristas, historico de adimplˆencia, recorrˆencia em fraude...) e dados hist´oricos da gerˆencia;
Distribuir os alvos selecionados nas 40 equipes de fiscaliza¸c˜ao respeitando crit´erios geogr´aficos a fim de otimizar o tempo de deslocamento;
Fiscalizar atrav´es de PDA os alvos selecionados, exibindo informa¸c˜oes pr´oprias da UC (localiza¸c˜ao, hist´oricos, etc. . . ) e coletando todas as informa¸c˜oes pertinentes a fiscaliza¸c˜ao, eliminando por completo a utiliza¸c˜ao das fichas em papel e evitando erros e demoras de digita¸c˜ao; Monitorar os retorno de campo, analizando efetividade da ferramenta e das equipes.
Exemplo de Aplica¸c˜ao Regional CEMAR: Sele¸c˜ao de Alvos
Sele¸c˜ao de Alvos: Arquitetura
Utiliza BD Oracle, Apache/PHP e PDA/Palm/Superwaba; Toda comunica¸c˜ao feita pelo PDA ´e criptografada com Xxtea; A comunica¸c˜ao ´e feita via GPRS utilizando protocolo HTTP:80.
Exemplo de Aplica¸c˜ao Regional CEMAR: Sele¸c˜ao de Alvos
Sele¸c˜ao de Alvos: Telas
Exemplo de Aplica¸c˜ao Regional CEMAR: Sele¸c˜ao de Alvos