En la informática distribuida , la movilidad del código es la capacidad de ejecutar programas , código u objetos para migrar (o mover) de una máquina o aplicación a otra. [1] Este es el proceso de mover código móvil a través de los nodos de una red en contraposición al cálculo distribuido donde se mueven los datos .
Es una práctica común en los sistemas distribuidos requerir el movimiento de código o procesos entre partes del sistema, en lugar de datos. [1]
Los ejemplos de movilidad de código incluyen scripts descargados a través de una red (por ejemplo , JavaScript , VBScript ), subprogramas Java , controles ActiveX , animaciones Flash , películas Shockwave (y Xtras) y macros incrustadas en documentos de Microsoft Office . [2]
Descripción general
El propósito de la movilidad del código es soportar operaciones sofisticadas. Por ejemplo, una aplicación puede enviar un objeto a otra máquina y el objeto puede reanudar la ejecución dentro de la aplicación en la máquina remota con el mismo estado que tenía en la aplicación de origen.
Según una clasificación propuesta por Fuggetta, Picco y Vigna, [1] la movilidad del código puede ser fuerte o débil: la movilidad fuerte del código implica mover tanto el código como los datos y el estado de ejecución de un host a otro, en particular a través de una imagen de proceso ( esto es importante en los casos en que la aplicación en ejecución necesita mantener su estado mientras migra de un host a otro), mientras que la movilidad de código débil implica mover el código y los datos únicamente. Por lo tanto, puede ser necesario reiniciar la ejecución del programa en el host de destino.
Existen varios paradigmas, o estilos arquitectónicos , dentro de la movilidad del código: [1]
- Evaluación remota : un cliente envía código a una máquina remota para su ejecución.
- Código a pedido : un cliente descarga el código de una máquina remota para ejecutarlo localmente.
- Agentes móviles : objetos o código con la capacidad de migrar entre máquinas de forma autónoma.
Implementaciones
Dentro de la movilidad de código, el paradigma del agente móvil ha atraído convencionalmente el mayor interés e investigación, [3] sin embargo, algunos trabajos recientes han producido implementaciones de propósito general. [4]
- Marcos de agentes móviles
- Aglets : marco de agente móvil, Java
- Marco de desarrollo de agentes de Java : marco de agentes móviles, Java
- Mobile-C : plataforma de agente móvil, C / C ++ [5]
El código móvil también se puede encapsular o incrustar en otros formatos de archivo que no se asocian tradicionalmente con el código ejecutable. Un ejemplo de esta forma de encapsulación es la presencia de JavaScript en un PDF . [6]
Virus
El código móvil también se puede descargar y ejecutar en la estación de trabajo del cliente por correo electrónico. El código móvil se puede descargar a través de un archivo adjunto de correo electrónico (por ejemplo, una macro en un archivo de Word) o mediante un cuerpo de correo electrónico HTML (por ejemplo, JavaScript). Por ejemplo, los virus / gusanos de correo electrónico ILOVEYOU , TRUELOVE y AnnaK se implementaron como código móvil (VBScript en un archivo adjunto de correo electrónico .vbs que se ejecutó en Windows Scripting Host). En casi todas las situaciones, el usuario no es consciente de que el código móvil se está descargando y ejecutándose en su estación de trabajo. [ cita requerida ]
Código de alquiler
El código móvil también se refiere al código "usado para alquilar", una forma de hacer que los paquetes de software sean más asequibles. es decir, para usar bajo demanda. Esto es especialmente relevante para los dispositivos móviles que se están desarrollando, que son teléfonos móviles, PDA, etc., todo en uno. En lugar de instalar paquetes de software, se pueden "alquilar" y pagar por uso. [ cita requerida ]
Ver también
Referencias
- ↑ a b c d Fuggetta, Alfonso; Gian Pietro Picco; Giovanni Vigna (1998). "Comprensión de la movilidad del código" . Transacciones IEEE sobre ingeniería de software . 24 (5): 342–361. CiteSeerX 10.1.1.20.3442 . doi : 10.1109 / 32.685258 . ISSN 0098-5589 . Consultado el 29 de julio de 2009 . CS1 maint: parámetro desalentado ( enlace )
- ^ Dr. Lawrie Brown. "Seguridad de código móvil" . Academia de las Fuerzas de Defensa de Australia. Archivado desde el original el 3 de abril de 2012 . Consultado el 23 de abril de 2012 . CS1 maint: parámetro desalentado ( enlace )
- ^ Carzaniga, Antonio; Gian Pietro Picco; Giovanni Vigna (2007). ¿Sigue moviéndose el código? Una mirada retrospectiva a una década de movilidad de códigos . ICSE COMPANION '07 Companion to the Proceedings of the 29th International Conference on Software Engineering . Washington, DC, EE.UU .: IEEE Computer Society. págs. 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 y RPC para la plataforma Java" . Consultado el 15 de junio de 2012 . CS1 maint: parámetro desalentado ( enlace )
- ^ "Mobile-C: una plataforma de agentes múltiples para agentes móviles C / C ++" . Consultado el 15 de junio de 2012 . CS1 maint: parámetro desalentado ( enlace )
- ^ "Especificación de JavaScript de Acrobat" (PDF) . Consultado el 18 de noviembre de 2009 . CS1 maint: parámetro desalentado ( enlace )