Mobilidade de código - Code mobility
Na computação distribuída , a mobilidade do código é a capacidade de executar programas , código ou objetos a serem migrados (ou movidos) de uma máquina ou aplicativo para outro. Este é o processo de mover o código móvel através dos nós de uma rede, em oposição à computação distribuída onde os dados são movidos.
É prática comum em sistemas distribuídos exigir a movimentação de código ou processos entre partes do sistema, em vez de dados.
Exemplos de mobilidade de código incluem scripts baixados em uma rede (por exemplo , JavaScript , VBScript ), miniaplicativos Java , controles ActiveX , animações Flash , filmes Shockwave (e Xtras) e macros incorporadas em documentos do Microsoft Office .
Visão geral
O objetivo da mobilidade do código é oferecer suporte a operações sofisticadas. Por exemplo, um aplicativo pode enviar um objeto para outra máquina e o objeto pode retomar a execução dentro do aplicativo na máquina remota com o mesmo estado em que estava no aplicativo de origem.
De acordo com uma classificação proposta por Fuggetta, Picco e Vigna, a mobilidade do código pode ser forte ou fraca: a mobilidade forte do código envolve mover o código , os dados e o estado de execução de um host para outro, notadamente por meio de uma imagem de processo (isso é importante nos casos em que o aplicativo em execução precisa manter seu estado à medida que migra de host para host), enquanto a fraca mobilidade do código envolve mover o código e apenas os dados. Portanto, pode ser necessário reiniciar a execução do programa no host de destino.
Vários paradigmas, ou estilos de arquitetura , existem na mobilidade do código:
- Avaliação remota - um cliente envia código a uma máquina remota para execução.
- Código sob demanda - um cliente baixa o código de uma máquina remota para executar localmente.
- Agentes móveis - Objetos ou código com a capacidade de migrar entre máquinas de forma autônoma.
Implementações
Dentro da mobilidade de código, o paradigma do Agente Móvel tem convencionalmente atraído mais interesse e pesquisa, no entanto, alguns trabalhos recentes produziram implementações de propósito geral.
- Estruturas de agente móvel
- Aglets - estrutura de agente móvel, Java
- Java Agent Development Framework - estrutura de agente móvel, Java
- Mobile-C - plataforma de agente móvel, C / C ++
O código móvel também pode ser encapsulado ou incorporado em outros formatos de arquivo não tradicionalmente associados ao código executável. Um exemplo dessa forma de encapsulamento é a presença de JavaScript em um PDF .
Vírus
O código móvel também pode ser baixado e executado na estação de trabalho do cliente por e-mail. O código móvel pode ser baixado por meio de um anexo de e-mail (por exemplo, macro em um arquivo do Word) ou por meio de um corpo de e-mail em HTML (por exemplo, JavaScript). Por exemplo, os vírus / worms de e-mail ILOVEYOU , TRUELOVE e AnnaK foram implementados como código móvel (VBScript em um anexo de e-mail .vbs executado no Windows Scripting Host). Em quase todas as situações, o usuário não sabe que o código móvel está sendo baixado e executado em sua estação de trabalho.
Código de aluguel
Código móvel também se refere ao código "usado para alugar", uma forma de tornar os pacotes de software mais acessíveis. ou seja, para usar sob demanda. Isso é especialmente relevante para os dispositivos móveis em desenvolvimento, que são telefones celulares, PDAs, etc., tudo em um. Em vez de instalar pacotes de software, eles podem ser "alugados" e pagos de acordo com o uso.
Veja também
Referências
- ^ a b c d Fuggetta, Alfonso; Gian Pietro Picco; Giovanni Vigna (1998). "Compreendendo a mobilidade do código" . IEEE Transactions on Software Engineering . 24 (5): 342–361. CiteSeerX 10.1.1.20.3442 . doi : 10.1109 / 32.685258 . ISSN 0098-5589 . Página visitada em 29 de julho de 2009 .
- ^ Dr. Lawrie Brown. "Segurança de código móvel" . Academia da Força de Defesa Australiana. Arquivado do original em 3 de abril de 2012 . Página visitada em 23 de abril de 2012 .
- ^ Carzaniga, Antonio; Gian Pietro Picco; Giovanni Vigna (2007). O código ainda está se movendo? Olhando para trás em uma década de mobilidade do código . ICSE COMPANION '07 Companion to the Proceedings of the 29th International Conference on Software Engineering . Washington, DC, EUA: IEEE Computer Society. pp. 9–20. CiteSeerX 10.1.1.119.5295 . doi : 10.1109 / ICSECOMPANION.2007.44 . ISBN 978-0-7695-2892-2.
- ^ "Mobility-RPC - Seamless Code Mobility e RPC para a plataforma Java" . Retirado em 15 de junho de 2012 .
- ^ "Mobile-C: uma plataforma multiagente para agentes móveis C / C ++" . Retirado em 15 de junho de 2012 .
- ^ "Especificação do Acrobat JavaScript" (PDF) . Página visitada em 18 de novembro de 2009 .