Codice di mobilità - Code mobility
In Distributed Computing , mobilità del codice è la possibilità per l'esecuzione di programmi , codice o oggetti da migrati (o spostati) da una macchina o applicazione ad un altro. Questo è il processo di spostamento del codice mobile attraverso i nodi di una rete rispetto al calcolo distribuito in cui vengono spostati i dati .
È pratica comune nei sistemi distribuiti richiedere lo spostamento del codice o dei processi tra le parti del sistema, invece dei dati.
Esempi di mobilità del codice includono script scaricati in rete (ad esempio JavaScript , VBScript ), applet Java , controlli ActiveX , animazioni Flash , filmati Shockwave (e Xtra) e macro incorporate nei documenti di Microsoft Office .
Panoramica
Lo scopo della mobilità del codice è supportare operazioni sofisticate. Ad esempio, un'applicazione può inviare un oggetto a un'altra macchina e l'oggetto può riprendere l'esecuzione all'interno dell'applicazione sulla macchina remota con lo stesso stato che aveva nell'applicazione di origine.
Secondo una classificazione proposta da Fuggetta, Picco e Vigna, la mobilità del codice può essere forte o debole: una forte mobilità del codice comporta lo spostamento sia del codice , dei dati e dello stato di esecuzione da un host all'altro, in particolare tramite un'immagine di processo (questo è importante nei casi in cui l'applicazione in esecuzione deve mantenere il suo stato durante la migrazione da host a host), mentre la mobilità del codice debole comporta lo spostamento solo del codice e dei dati. Pertanto, potrebbe essere necessario riavviare l'esecuzione del programma sull'host di destinazione.
Esistono diversi paradigmi, o stili architettonici , all'interno della mobilità del codice:
- Valutazione remota : un client invia il codice a una macchina remota per l'esecuzione.
- Codice su richiesta : un client scarica il codice da una macchina remota per eseguirlo localmente.
- Agenti mobili : oggetti o codice con la possibilità di migrare tra macchine in modo autonomo.
Implementazioni
All'interno della mobilità del codice, il paradigma dell'agente mobile ha convenzionalmente attirato l'interesse e la ricerca maggiori, tuttavia alcuni lavori recenti hanno prodotto implementazioni generiche.
- Framework di agenti mobili
- Aglet - Framework agente mobile, Java
- Java Agent Development Framework - Framework agente mobile, Java
- Mobile-C : piattaforma agente mobile, C / C ++
Il codice mobile può anche essere incapsulato o incorporato in altri formati di file non tradizionalmente associati al codice eseguibile. Un esempio di questa forma di incapsulamento è la presenza di JavaScript in un PDF .
Virus
Il codice mobile può anche essere scaricato ed eseguito nella workstation client tramite e-mail. Il codice mobile può essere scaricato tramite un allegato di posta elettronica (ad esempio, macro in un file Word) o tramite un corpo di posta elettronica HTML (ad esempio, JavaScript). Ad esempio, i virus / worm di posta elettronica ILOVEYOU , TRUELOVE e AnnaK sono stati tutti implementati come codice mobile (VBScript in un allegato di posta elettronica .vbs eseguito in Windows Scripting Host). In quasi tutte le situazioni, l'utente non è a conoscenza del fatto che il codice mobile viene scaricato ed eseguito sulla propria workstation.
Codice noleggio
Il codice mobile si riferisce anche al codice "utilizzato per l'affitto", un modo per rendere i pacchetti software più convenienti. cioè da utilizzare su richiesta. Ciò è particolarmente importante per i dispositivi mobili in fase di sviluppo che sono telefoni cellulari, PDA, ecc. Tutto in uno. Invece di installare i pacchetti software, possono essere "noleggiati" e pagati in base all'utilizzo.
Guarda anche
Riferimenti
- ^ a b c d Fuggetta, Alfonso; Gian Pietro Picco; Giovanni Vigna (1998). "Capire la mobilità del codice" . Transazioni IEEE sull'ingegneria del software . 24 (5): 342–361. CiteSeerX 10.1.1.20.3442 . doi : 10.1109 / 32.685258 . ISSN 0098-5589 . Estratto 29 luglio 2009 .
- ^ Dr Lawrie Brown. "Mobile Code Security" . Australian Defence Force Academy. Archiviata dall'originale il 3 aprile 2012 . Estratto il 23 aprile 2012 .
- ^ Carzaniga, Antonio; Gian Pietro Picco; Giovanni Vigna (2007). Il codice è ancora in movimento? Guardando indietro a un decennio di mobilità del codice . ICSE COMPANION '07 Companion agli Atti della 29a Conferenza Internazionale sull'Ingegneria del Software . Washington, DC, USA: IEEE Computer Society. pagg. 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 per la piattaforma Java" . Estratto 15 giugno 2012 .
- ^ "Mobile-C: una piattaforma multi-agente per agenti C / C ++ mobili" . Estratto 15 giugno 2012 .
- ^ "Specifiche JavaScript di Acrobat" (PDF) . Estratto 18 novembre 2009 .