Agentes De Software Para Computação Móvel - PUC-Rio

Transcription

Agentes de software para Computação MóvelAnolan MilanésPontifícia Universidade Católica do Rio de Janeiro (PUC-Rio)anolan@inf.puc-rio.br17 de novembro de 20041IntroduçãoOs problemas típicos da computação móvel como as freqüentes desco-nexões, a variabilidade e limitações na largura de banda e as limitações derecursos nos dispositivos móveis fazem com que a adaptatividade seja umacaracterística desejável nas aplicações desenvolvidas nesse ambiente. As características de autonomia e mobilidade próprias dos agentes fazem dessatecnologia uma solução atraente para resolver esses desa os.Um agente móvel é um agente que não está atado ao nó em que começoua executar e em conseqüência pode-se transportar entre nós [omg00].Aidéia nos agentes móveis consiste basicamente em enviar ao servidor remoto,código capaz de efetuar requisições em nome do usuário.Dessa forma sepretende otimizar o tráfego na rede (somente o dado desejado é retornado,possivelmente no formato desejado) e aumentar o assincronismo entre clientee servidor.A capacidade do agente móvel de migrar entre nós até atingirseu objetivo sem precisar retornar ao cliente permite evitar deslocamentosem estrela entre o cliente e os possíveis servidores, diminuindo dessa formao tráfego na rede e a latência.Por outro lado, é preciso levar em conta oimpacto causado pelo possível aumento de informações contidas no agenteitinerante.O objetivo deste trabalho é pesquisar tendências atuais na aplicação datecnologia de agentes na computação móvel, assim como as vantagens e desvantagens da sua aplicação comparado ao outras possíveis soluções. O trabalho se organiza da seguinte forma: na seção 2 se apresenta uma introduçãono tema de agentes de software assim como diferentes conceitos que irão serusados ao longo do trabalho.Na seção 3 se enumeram as motivações douso de agentes móveis em computação móvel, assim como as suas vantagens

e desvantagens.Na seção 4 se comentam algumas aplicações de computa-ção móvel desenvolvidas usando agentes de software.A seção 5 relata asconclusões do trabalho.2Agentes em computação móvelAs características de mobilidade, o meio inalâmbrico e a portabilidade dosdispositivos inerentes a este ambiente implicam em uma série de desa os: Ao respeito da mobilidade, ela faz com que a con guração não sejaestática (a topologia e a carga mudam constantemente) e precisemde gerência de localização (o que acrescenta ao custo de comunicaçãoaquele da localização do elemento). Os dados de localização precisamser representados e cientemente dado que mudam com freqüência. Aconectividade e con abilidade variam. A rede inalâmbrica implica em desconexões freqüentes (inclusive paraeconomizar bateria), oferece suporte físico para broadcast e detém umabaixa taxa de transmissão. A portabilidade provoca problemas derivados com a necessidade deconstruir dispositivos portáveis, por exemplo, a limitação de recursoscomo memória, bateria e interface, problemas de segurança e perda dedados. A disponibilidade de recursos no dispositivo móvel varia de umdispositivo a outro.Estes fatores e as mudanças no ambiente de execução que acontecem durante o deslocamento em termos de largura de banda, latência e serviçosdisponíveis, entre outros, fazem com que seja desejável que a adaptação ofereça um comportamento adaptativo. A chamada mudança no ambiente deexecução inclui recursos computacionais, carga da bateria, memória, largurade banda, todas estas limitadas e variáveis no mesmo dispositivo , tambémo conjunto de dispositivos ligados na rede varia.2.1Agentes de softwareEmbora o termo "agentes de software"venha sendo amplamente usadotanto na industria como no médio acadêmicos, ainda não existe consensosobre a sua de nição. Entretanto, se assume que as características que todoagente de software (tratados nesse trabalho simplesmente como agentes) deveter são a autonomia (o agente é capaz de agir em nome de um usuário sem2

precisar da sua intervenção), reatividade (a partir de percepções do ambienteresponde a mudanças para atingir seus objetivos), pró-atividade (é capaz dese antecipar a mudanças do ambiente e agir em conseqüência) e sociabilidade(capacidade de interagir com outros participantes do ambiente). Agentes sãoencontrados com freqüência formando uma organização com outros agentes.Estas organizações são chamadas sistemas multiagentes (Multi-AgentSystems: MAS).Os agentes móveis são programas (tipicamente escritos em uma linguagemde script ) que podem ser enviados (expedidos) desde um computador clientee transportados a um servidor remoto para a sua execução [CHK94]. Umade nição mais comumente aceita, no entanto, expressa os fatos de que:1. o agente móvel representa um usuário na rede2. pode migrar autonomamente de um nó a outro para executar algumcálculo em nome do usuário. (Um nó é um host endereçável conectadoà rede.)Dessa forma o usuário não precisa manter-se conectado à rede, uma conseqüência desejável em ambientes de desconexão freqüente e enlaces de bandaestreita como é o caso da computação móvel. Eles podem suspender a execução a qualquer momento, migrando para outro host para continuar a execução. Depois de criados, decidem quais locações visitar e quais instruçõesexecutar. Não precisa uma interação continua com o originador.Depois de expedido, o agente móvel procede autônoma e independentemente do cliente.Ao chegar ao servidor, ele é enviado a um ambiente deexecução de agentes em que são veri cadas as suas credenciais antes de serexecutado. Para executar a sua tarefa o agente pode-se transportar (migrar)a outro servidor, criar (spawn) novos agentes ou interagir com outros agentes.Ao terminar leva os resultados para o cliente ou para outro servidor.Os agentes móveis são também considerados o topo na evolução de abstrações móveis como código móvel, objeto móvel e processo móvel, assim: Código móvel: transferência de código Objeto móvel: transferência de código e dados Processo móvel: transferência de código, dados e thread Agente móvel: transferência de código, dados, thread e autoridade dodono3

Os agentes móveis podem ser enxergados como um caso particular deagentes de software, ou como mais uma forma de modelar aplicações de código móvel. Eles herdam boa parte das suas vantagens diretamente do códigomóvel, entre elas o suporte à operação sem conexão e a tolerância a falhas. Amobilidade em [LO99] se coloca como uma propriedade ortogonal dos agentes,eles podem ter mobilidade ou não. Isto se relaciona com outra possível classi cação, aquela que divide os agentes em estacionários e móveis. Os agentesestacionários são aqueles que executam no nó onde começaram a executar eestão con nados a ele. Por outro lado, um agente móvel não está con nadoao nó onde começou a executar e em conseqüência (subseqüentemente) podemigrar entre nós [omg00]. No caso de um agente estacionário precisar interagir com outro agente ou sistema, pode usar um mecanismo de comunicaçãocomo mensagens ou chamadas remotas de procedimento (RPC).Os agentes móveis precisam de um entorno para serem criados e executados: estas são as chamadas de plataformas de agentes móveis. Várias plataformas tem sido propostas, entre elas: IBM's Aglets Workbench, ObjectSpace's Voyager, Mitsubishi's Concordia, IKV Grasshopper e D'Agents(este último não baseado em java).Estas diferem em arquitetura, meca-nismos de comunicação e funcionalidades e desempenho, e comumente sãoincompatíveis ente si.Não entanto, não são os agentes móveis os únicos que resultam de interesse no desenvolvimento de aplicações móveis:agentes de colaboração,inteligentes e de interface são também utilizados.3Agentes Móveis3.1Modelos de software para a computação móvelA aplicação (adaptação) dos modelos tradicionais para a computação distribuída resultaram na conclusão da necessidade de novos modelos por causadas invalidação das pre-condições impostas por aqueles, entre estas: comunicação rápida e con ável, riqueza de recursos nos dispositivos e participantescom locações xas. Dessa forma foi necessária a criação de novos modelospara a computação móvel.Dado que o modelo tradicional Cliente-Servidor para a computação distribuída não satisfaz os requerimentos da computação móvel, novos modelostem sido propostos [SSPE04, PS98]. Estes são:1. cliente/agente/servidor (c/a/s)2. cliente/interceptador/servidor4

3. ponto a ponto (peer-to-peer )4. agentes móveisModelo cliente/agente/servidor:Como a maioria das extensões do modelo cliente/servidor, está baseadoem agentes estacionários colocados entre o cliente móvel e o servidor xoobjetivando diminuir as conseqüências dos problemas derivados da conexãoinalâmbrica e da limitações de recursos dos dispositivos móveis.Na arquitetura c/a/s em particular, o agente se coloca do lado do servidor.As funções do agente variam entre o extremo em que o agente atua como umrepresentante do dispositivo móvel na rede xa e aquele em que o agenteestá relacionado somente com um serviço ou aplicação em particular. Estemodelo é apresentado na gura 1Figura 1: Modelo cliente/agente/servidorApesar que este modelo permite resolver um número de problemas, não épossível manter a operação no dispositivo móvel durante etapas de desconexão. O cliente pode otimizar diretamente somente as transmissões de dadosdo terminal xo para o móvel.Este modelo é indicado para clientes levescom poucos recursos computacionais.Modelo cliente/interceptador/servidor:Como mostrado na gura2, esse modelo é outra variante de cliente/servidor. No caso, se acrescenta aomodelo c/a/s um agente no dispositivo móvel. Os agentes em este modelosão chamados em conseqüência de agente interceptadores ou proxies.Figura 2: Modelo cliente/interceptador/servidorEsse modelo é mais apropriado para clientes pesados com recursos computacionais su cientes (potência e armazenamento) para suportar a execuçãolocal de um agente no lado cliente.5

Uma variante é o modelo ponto a ponto, um modelo simétrico em quetodos os dispositivos são simultaneamente clientes e servidores. Os agentessão chamados de proxies, eles interceptam as requisições para e desde hostremotos.Modelo de agentes móveis:A gura 3 mostra uma representação desse modelo.Figura 3: Modelo de agentes móveisEntretanto, em [SSPE04], se descreve como os modelos propostos podemser implementados com agentes móveis de forma a facilitar a recon guração dinâmica das aplicações segundo o paradigma ideal em cada momento.Assim, o agente de servidor do modelo cliente/agente/servidor pode ser umagente móvel criado dinamicamente e expedido no dispositivo móvel para oservidor.Em [LO99] se relatam sete motivos para usar a tecnologia de agentes nacriação de sistemas distribuídos, eles são:1. Redução da tráfego na rede:por empacotamento de conversation eprocessamento local de grandes quantidades de informação2. Redução dos efeitos da latência da rede:ao ser enviado o controleempacotado em aplicações de tempo real, em aplicações interativasdeve notar-se o mesmo efeito.3. Encapsulamento de protocolos:Os agentes podem contornar o pro-blema da heterogeneidade de protocolos no sistema ao mover ao sistema remoto e estabelecer a comunicação através de canais baseadosem protocolos proprietários.4. Execução assíncrona e autônoma: a necessidade de uma conexão continua entre o dispositivo móvel e a rede é resolvida embutindo as tarefasem agentes móveis que são enviados na rede de forma que o dispositivonão precisa estar conectado para executá-las e pode pegar o resultadoao momento da reconexão.5. Adaptação dinâmica: A característica de reatividade própria dos agentes (veja 2.1) lhes permite reagir a mudanças autônomas no ambiente6

de execução.No caso dos agentes móveis a reação pode incluir porexemplo a migração ao outro host.6. Naturalmente heterogêneos: Por serem em geral independentes da plataforma e a camada de transporte, oferecem suporte para a integraçãotransparente entre sistemas.7. Robustos e tolerantes a falhas: graças as suas capacidades de reação emobilidade.Apesar que ainda não existe uma killer application para os agentes móveis,são múltiplas as aplicações que podem ser bene ciadas pelo uso da tecnologiade agentes móveis.No entanto não é possível a rmar que seja a melhorsolução para todas as aplicações.3.2Paradigmas de comunicação para a computação distribuídaA pesar de que com freqüência se coloca a tecnologia de agentes móveiscomo a única solução para a implementação de aplicações distribuídas , existem outros paradigmas largamente usados em este tipo de ambiente cujaanálise é igualmente conveniente. Estes são o paradigma Cliente/Servidor ea avaliação remota (ou Remote Evaluation ).Cliente/servidorNo protocolo Cliente/Servidor o servidor meramente executa tarefas derecuperação e armazenamento de dados: é fundamentalmente no cliente quese executa o processamento dos dados [PRS99]. As restrições na forma emque se acessam os dados do servidor motivam uma das suas maiores vantagens, isto é a segurança. O servidor coloca a disposição do usuário somenteaqueles métodos de nidos durante a etapa de projeto.Por outro lado, apesar de que as requisições possam gerar volumes de dados superiores aosnecessários, o sistema não possui a exibilidade su ciente para gerar novasoperações. Isto implica numa carga desnecessária para o servidor e o sistemade comunicação.Avaliação remotaA avaliação remota é uma tecnologia bem conhecida e largamente usadaem computação distribuída.Implica em que junto com as requisições deprocessamento, o servidor receberá o código necessário para efetuar as operações.Nesse caso somente o resultado pronto é devolvido, diminuindo osrequerimentos em termos de recursos computacionais no dispositivo móvel.A demora, não entanto, na abertura de sessões faz com que o custo inicial7

seja maior que em C/S, não entanto a avaliação remota ca com vantagemna hora de retornar os resultados.Agentes móveisQuando a resolução de um problema (ou tarefa) obriga a um grandenúmero de idas e voltas de um servidor ou vários servidores. Nesse cenáriopode ser desejável que o código tivesse a propriedade de se deslocar entreos servidores sem precisar voltar para o cliente (que pode inclusive estardesconectado nesse momento) com todos os benefícios que a localidade traz.Nesse caso o paradigma de avaliação remota está mais limitado pois sempretem uma interação direta entre cliente e servidor.Em [BSZP03], se estuda o desempenho desses paradigmas para a criação de uma infra-estructura que permita o acesso transparente e seguro deusuários móveis a os recursos do Grid. O cenário é mostrado na gura 4.Figura 4: CenárioOs resultados experimentais mostrados em 5 permitem chegar a conclusões interessantes. A gura apresenta os tempos médios para a conclusão deuma aplicação da busca para os três paradigmas descritos para distintas larguras de banda entre 10kbps e 10000kbps, o inciso b mostra uma ampliaçãodo intervalo entre 50kbps e 1000kbps. O desempenho do paradigma de agentes móveis em enlaces de até 50kbps foi melhor que nos outros paradigmasem um 20Note que segundo esse resultados, um dispositivo móvel ao se deslocarpode atravessar por situações em que a qualidade da conexão e com isso a8

Figura 5: Resultados experimentaiscon guração ótima para a sua aplicação varia entre os três paradigmas.3.3DesvantagensRealmente, nem todo nos agentes móveis para a computação móvel sãovantagens.Alguns pontos tem sido colocados como problemas para a suamaior aplicação, entre eles:1. Desempenho e escalabilidade2. Portabilidade e estandardização3. SegurançaDesempenho e escalabilidadeComo mencionado anteriormente, o desempenho dos agentes móveis depende das características da aplicação e da velocidade da rede. Outros problemas podem afetar seu desempenho, como é o problema do aumento debytes transferidos a cada migração.Portabilidade e estandardização A pesar de que grande parte das pla-taformas de agentes móveis estarem programadas em linguagem Java, elassão basicamente incompatíveis. Por exemplo, agentes construídos em Voyager não podem ser usados em um ambiente Grasshopper, eles são incompatíveis. Os standards o cializados pela FIPA [ p] e a OMG[omg00] ainda nãosão suportados pela maioria das plataformas. Espera-se, entretanto, que istoseja resolvido em um futuro próximo.Segurança9

O fato de que o agente móvel será executado em uma máquina remotamotiva em parte certa reserva contra a aplicação mais generalizada desseparadigma.Em geral, o problema da segurança em agentes móveis podedividir-se em duas áreas: segurança do host (proteção da plataforma contraagentes maliciosos) e segurança do código (proteger ao agente móvel contraplataformas maliciosas).Em [JK00] são citadas alguns possíveis ataques,entre eles: Masquerading: Um agente usurpa a identidade de outro para conseguiracesso a serviços o dados em um host.Um host assume uma falsaidentidade para captar agentes. Denegação de serviço: Os agentes podem tentar consumir ou corromperos recursos de um host para impedir que outros agentes os acessem. Oshosts podem ignorar as requisições de um agente por serviços. Acesso não autorizado: Explorando falhas de segurança os agentes podem ganhar acesso a informações sensíveis. Um agente interfere comoutro para ganhar acesso aos dados.Em [CHK94] se conclui que com exceção do controle remoto em temporeal em certas condições, não tem nada que se faça com agentes móveisindividuais não possa ser feito usando outras tecnologias.Por outro lado,em conjunto permitem criar frameworks abertos para o desenvolvimento epersonalização de serviços de rede.4Middlewares de agentes móveis para computação móvelOs problemas inerentes á computação móvel sugerem á necessidade deuma infra-estrutura que ofereça informação sobre o desempenho esperado,agentes que controlem as operações de transferência, uma política de controle, a capacidade de trabalhar sem conexão, métodos de recuperação deerros avançados e adaptação [ p].Nessa seção comentamos um grupo deinfra-estruturas para agentes móveis que foram estendidas para suportar mobilidade (SOMA e MAP) assim como middlewares para o suporte à computação móvel (Monads e Lime).É importante salientar que estas não sãoas únicas iniciativas nesse sentido, na realidade a bibliogra a relacionada aotema é considerável. Algumas propostas focam na mobilidade à nível de rede,enquanto outras propõem soluções à nível da aplicação.SOMA10

A linha de pesquisa do grupo DEIS da Universidade de Bologna segue aúltima vertente. Em [BCS01] se propõe a adoção da tecnologia de agentespara suportar mobilidade. Dessa forma o SOMA (A Secure and Open MobileAgent Programming Environment [SOM]), um framework de agentes móveis,foi estendido através de uma camada adicional desenvolvida especi camentepara suportar mobilidade. Essa camada inclui três serviços que segundo otrabalho são necessários para suportar a mobilidade de usuário, eles são: Entorno virtual do usuário (User Virtual Environment - UVE); Terminal virtual móvel (Mobile Virtual Terminal - MVT) e Gerente de Recursos Virtuais (Virtual Resource Manager - VRM).As aplicações móveis podem ser implementadas acima dessa arquiteturacomo mostra a gura 6.Figura 6: Middleware para suporte à mobilidade baseado em SOMAO serviço UVE trata a mobilidade do usuário, permitindo aos usuáriosse conectarem a diferentes pontos da rede inclusive através de dispositivosdiferentes mantendo seu per l de usuário.Para o caso em que o trabalhode um usuário precise ser interrompido e depois continuado em outro local éoferecido um serviço de persistência que permite guardar o estado atual dasessão e mudá-la ao novo ponto de conexão.O serviço MVT trata a mobilidade dos dispositivos ao garantir a persistência das interações com os recursos e serviços da rede enquanto mantém aexecução local durante a migração. Na nova locação o terminal pode recuperar o estado de execução incluindo processos ativos e serviços suscritos.11

O serviço VRM facilita o acesso aos recursos disponíveis no sistema. Permite modi car os enlaces com os recursos e/ou serviços dinamicamente emtempo de execução.MAPEm [CPT99] se apresenta um framework para suporte de usuários nômades baseado na tecnologia de agentes móveis. Esse framework foi desenvolvido na plataforma MAP na Universidade de Catania. MAP (Mobile AgentsPlatform [MAP]) é uma plataforma para o desenvolvimento e gerência deagentes móveis desenvolvida pelo próprio grupo.A arquitetura de MAPestá baseada nos conceitos de servidor e agentes. Os servidores provêem oambiente de execução dos agentes. Os agentes são entidades ativas que podem migrar se um servidor a outro. O suporte à mobilidadede usuáriosfoi integrado à plataforma MAP e consiste no monitoramento dos usuáriosconectados dentro de uma "região"a través de um módulo chamado de Lookup Server. Dessa forma quando o agente termina a sua execução pode serenviado transparentemente ao servidor em que o usuário está conectado nomomento. Em caso do usuário estar desconectado, o agente será desativadoaté o usuário se reconectar. O usuário então recebe a noti cação informandoa existência de agentes inativos de forma que possa escolher quais ativar. Agura 7 mostra um esquema dessa arquitetura.Figura 7: Arquitetura para suporte a mobilidade em MAPA noção de Virtual Home Environment (VHE) oferece aos usuários dosserviços independência da tecnologia de rede e transparência durante a migração, migrando junto com o cliente o seu entorno personalizado.12

Em [SSPE04], por outro lado, é proposto um framework em que agentes móveis são usados para con gurar dinamicamente aplicações de forma aseguir os modelos propostos para computação inalâmbrica (veja em 3.1).MonadsComo parte do projeto Monads [Mon], do Grupo de Computação Nômadeno Departamento de Ciências da Computação da Universidade de Helsinki,Nokia Mobile Phones, Sonera e Nokia Telecommunications, foi estudado ouso de agentes adaptativos para usuários nômades. O foco principal aqui estána adaptação, que aqui se refere às formas em que os serviços se adaptam áspropriedades dos dispositivos móveis e do canal de comunicação. No projetofoi desenvolvida e implementada uma arquitetura de software baseada emagentes de software. A arquitetura Monads foi baseada na arquitetura de comunicações Mowgli para a transmissão de dados em ambiente inalâmbrico eem outras soluções existentes como as especi cações FIPA. O uso e ciente docanal de comunicação é conseguido através da otimização das comunicaçõesentre os agentes, com métodos que dependem da camada de comunicaçãoem questão. Assim, na camada de transporte de mensagens (Message Transport Layer ) pode ser usado em lugar do JavaRMI uma versão otimizada,introduzida através do uso de mediadores.Como resultado do projeto foram publicados uma larga série de traba lhos [CHK 00, CR99, RHLT99]. Um diferencial entre esses trabalhos secomparados aos outros comentados está no estudo de agentes inteligentespara a predição de movimentação do terminal e de QoS em determinadoponto, feito através de aprendizado. A combinação dessas predições permiteadaptar seu comportamento pró-ativamente dependendo do resultado.Lime:O projeto envolvendo desenvolvedores do Politecnico di Milano, a Universidade de Rochester e a Universidade de Washington tem como objetivofundamental o desacoplamento da computação de forma a tornar transparente as mudanças de locação do dispositivo móvel e os agentes móveis. Essedesacoplamento é resolvido em [PMR99, MPR03] através de uma extensãodo modelo de comunicação de Linda [Lin]. Lime (Linda In a Mobile Environment) [Lim] é um middleware projetado para auxiliar no desenvolvimento deaplicações distribuídas com mobilidade física e lógica. A mobilidade física serefere à mobilidade dos dispositivos, enquanto a mobilidade lógica tambémé chamada de mobilidade de código.A coordenação entre os processos (agentes Lime) é oferecida através deum mecanismo de memória compartilhada chamado de espaço de tuplas transiente compartilhado (transiently shared tuple space ) diferente do espaço detuplas de Linda, que é persistente, globalmente acessível e criado estáticamente.13

Quando os processos usam Lime para a coordenação não precisam enviar explicitamente a mensagem a outro processo. A mensagem é colocadaanonimamente no espaço de tuplas e retirada pelo destinatário seguindo umtemplate que corresponda com o conteúdo da mensagem. Cada agente móvelé dono de no mínimo um espaço de tuplas Lime que segue ao agente durantea migração. A noção de um espaço de tuplas global e persistente é recriadodinamicamente no host ao juntar os LTSs de todos os agentes móveis colocalizados formando um espaço de tuplas transiente compartilhado no host.Similarmente os espaços de tuplas dos hosts são fundidos resultando em umespaço de tuplas transiente federado. Os conteúdos desses espaços de tuplassão dinamicamente recon gurados pelo sistema nos eventos de chegada deum agente ou estabelecimento de uma conexão (engagement) ou saída de umagente ou desconexão de um host(disengagement).Dessa forma se gera aaparência de um espaço de tuplas global e persistente que pode ser acessadoatravés das operações através das operações convencionais de Linda.Outro middleware para computação móvel que tem se baseado também noparadigma de coordenação de Linda é Tuples on the Air (TOTA) [TOT], dogrupo de Agents and Pervasive Computing Group da Università di Modenae Reggio Emilia.5ConclusõesOs problemas típicos dos dispositivos móveis como as desconexões inter-mitentes, as limitações em largura de banda e armazenamento e capacidadede processamento, entre outros e por outro lado as capacidades dos agentesmóveis de interação assíncrona, redução do tráfego na rede e procura e ltragem remota, motivam o interesse no desenvolvimento de aplicações para osuporte à mobilidade baseado nesse paradigma. Particularmente interessantenesse sentido resulta o desenvolvimento de middlewares baseados em agentespara o suporte à computação móvel. Esses middlewares tratam determinados problemas relacionados à este ambiente, como por exemplo a gerência deagentes móveis cujos clientes estão no momento desconectados.Isto incluia noti cação ao cliente da lista de agentes pendentes e a ativação daquelesque forem escolhidos para serem ativados. O objetivo de ocultar do desenvolvedor dos agentes os detalhes referentes à mobilidade se traduz em Limena transparência de mobilidade física e lógica através do desacoplamento dacomputação seguindo o paradigma de espaço de tuplas preconizado em Linda.O objetivo em Monads é, por outro lado, a adaptação às condições da comunicação baseado em otimização de protocolos e na predição de QoS baseadaem aprendizado para conseguir reagir à futuras mudanças no ambiente. Em14

MAP o monitoramento dos usuários em cada região permite saber em cadamomento a qual servidor devem ser enviados os agentes que terminam a suaexecução.O SOMA oferece uma camada de serviços orientada ao usuáriomóvel, o dispositivo móvel e à gerência transparente de recursos.Apesar dos agentes não serem uma solução para todas as necessidades,a combinação deles em frameworks de agentes oferece oportunidades para osuporte transparente de aplicações móveis.Referências[BCS00]Paolo Bellavista, Antonio Corradi, e Cesare Stefanelli. A mobileagent infrastructure for the mobility support. In Proceedings ofthe 2000 ACM symposium on Applied computing , páginas 539 545. ACM Press, 2000.[BCS01]Paolo Bellavista, Antonio Corradi, e Cesare Stefanelli.Mobileagent middleware for mobile computing. Computer , 34(3):73 81,2001.[BSZP03]Dario Bruneo, Marco Scarpa, Angelo Zaia, e Antonio Pulia to.Communication paradigms for mobile grid users. In Proceedings ofthe 3rd International Symposium on Cluster Computing and theGrid (CCGRID'03) , página 669. IEEE Computer Society, 2003.[CHK94]David Chess, Colin Harrison, e Aaron Kershenbaum.Agents: Are They a Good Idea?MobileRelatório Técnico RC 19887(December 21, 1994 - Declassi ed March 16, 1995), IBM Research Division 1994. [CHK 00] Stefano Campadello, Heikki Helin, Oskari Koskimies, Pauli Misikangas, Mikko Mäkelä, e Kimmo Raatikainen.Using mobileand intelligent agents to support nomadic users. In Proceedingsof the 6th International Conference on Intelligence in Networks(ICIN2000) . 2000.[CPT99]A. La Corte, A Pulia to, e O. Tomarchio.framework for mobile users.An agent-basedIn Proceedings of the 3rd Euro-pean Research Seminar On Advances In Distributed Systems (ERSADS'99) . 1999.[CR99]Stefano Camapdello e Kimmo Raatikainen.Agents in personalmobility. In Proceedings of the First International Workshop on15

Mobile Agents for Telecommunication Application (MATA'99) ,páginas 359 374. World Scienti c, 1999.[ECDF01] C. Efstration, K. Cheverst, Nigel Davis, e A. Friday.Architec-tural requirements for the e ective support of adaptive mobileapplications. In Proceedings of the International Conference onMobile Data Management (MDM2001) . 2001.[ p]Fipanomadicapplicationportsup-speci cation.si00014h-2002/12/03.Http://www. pa.org/specs/ pa00014/SI00014H.html.[FPV98]Alfonso Fuggetta, Gian Pietro Picco, e Giovanni Vigna. Understanding Code Mobility. IEEE Transactions on Software Engineering , 24(5):342 361, 1998.[JK00]W. Jansen e T. Karygiannis. Nist special publication 800-19 - mobile agent security, national institute of standards and [Lin]Linda. [LO99]Danny B. Lange e Mitsuru Oshima. Seven good reasons for mobileagents. Communications of the ACM , 42(3):88 89, 1999.[MAP]Mobile agents platform. ionagentsfornomadicusers.http://www.cs.helsinki. /research/monads/.[MPR03]Amy L. Murphy, Gian Pietro Picco, e Gruia-Catalin Roman.Lime: A coordination middleware supporting mobility of hostsand agents. Relatório Técnico WUCSE-03-21, Politecnico di Milano, 2003.[omg00]Mobile agent facility speci cation/00-01-02, object managementgroup (omg), 2000.[

xão. O cliente pode otimizar diretamente somente as transmissões de dados do terminal xo para o móvel. Este modelo é indicado para clientes leves com poucos recursos computacionais. Modelo cliente/interceptador/servidor: Como mostrado na gura 2, esse modelo é outra arianvte de cliente/servidor. No caso, se acrescenta ao modelo c/a/s um .