Kode mobilitet - Code mobility
I distribuert databehandling er kodemobilitet muligheten for å kjøre programmer , kode eller objekter som skal overføres (eller flyttes) fra en maskin eller applikasjon til en annen. Dette er prosessen med å flytte mobilkode over nodene i et nettverk i motsetning til distribuert beregning der dataene flyttes.
Det er vanlig praksis i distribuerte systemer å kreve bevegelse av kode eller prosesser mellom deler av systemet, i stedet for data.
Eksempler på kodemobilitet inkluderer skript som er lastet ned over et nettverk (for eksempel JavaScript , VBScript ), Java-appletter , ActiveX-kontroller , Flash-animasjoner , Shockwave-filmer (og Xtras) og makroer innebygd i Microsoft Office- dokumenter.
Oversikt
Formålet med kodemobilitet er å støtte sofistikerte operasjoner. For eksempel kan et program sende et objekt til en annen maskin, og objektet kan fortsette å kjøres inne i applikasjonen på den eksterne maskinen med samme tilstand som den hadde i den opprinnelige applikasjonen.
I følge en klassifisering foreslått av Fuggetta, Picco og Vigna, kan kodemobilitet være enten sterk eller svak: sterk kodemobilitet innebærer å flytte både koden , dataene og utførelsestilstanden fra en vert til en annen, spesielt via et prosessbilde (dette er viktig i tilfeller der applikasjonen som kjører trenger å opprettholde tilstanden når den migrerer fra vert til vert), mens svak kodemobilitet innebærer å bare flytte koden og dataene. Derfor kan det være nødvendig å starte kjøringen av programmet på nytt på destinasjonsverten.
Flere paradigmer, eller arkitektoniske stiler , finnes innenfor kodemobilitet:
- Ekstern evaluering - En klient sender kode til en ekstern maskin for kjøring.
- Code on demand - En klient laster ned kode fra en ekstern maskin for å utføre lokalt.
- Mobile agenter - Objekter eller kode med muligheten til å migrere mellom maskiner autonomt.
Implementeringer
Innen kodemobilitet har Mobile Agent-paradigmet konvensjonelt tiltrukket seg mest interesse og forskning, men noen nyere arbeider har gitt generelle implementeringer.
- Rammeverk for mobilagenter
- Aglets - Mobile agent framework, Java
- Java Agent Development Framework - Mobile agent framework, Java
- Mobile-C - Mobil agentplattform, C / C ++
Mobilkode kan også være innkapslet eller innebygd i andre filformater som ikke tradisjonelt er knyttet til kjørbar kode. Et eksempel på denne formen for innkapsling er tilstedeværelsen av JavaScript i en PDF .
Virus
Mobilkode kan også lastes ned og utføres i klientarbeidsstasjonen via e-post. Mobilkode kan lastes ned via et e-postvedlegg (f.eks. Makro i en Word-fil) eller via en HTML-e-posttekst (f.eks. JavaScript). For eksempel ble ILOVEYOU , TRUELOVE og AnnaK e-postvirus / ormer alle implementert som mobil kode (VBScript i .vbs e-postvedlegg som ble utført i Windows Scripting Host). I nesten alle situasjoner er brukeren ikke klar over at mobilkode lastes ned og kjøres i arbeidsstasjonen.
Leiekode
Mobilkode refererer også til koden "brukt til leie", en måte å gjøre programvarepakker rimeligere. dvs. å bruke på forespørsel. Dette er spesielt relevant for mobile enheter som utvikles, som er mobiltelefoner, PDAer osv. Alt i ett. I stedet for å installere programvarepakker, kan de "leases" og betales for per bruk.
Se også
Referanser
- ^ a b c d Fuggetta, Alfonso; Gian Pietro Picco; Giovanni Vigna (1998). "Forstå kodemobilitet" . IEEE-transaksjoner på programvareteknikk . 24 (5): 342–361. CiteSeerX 10.1.1.20.3442 . doi : 10.1109 / 32.685258 . ISSN 0098-5589 . Hentet 29. juli 2009 .
- ^ Dr Lawrie Brown. "Mobile Code Security" . Australian Defense Force Academy. Arkivert fra originalen 3. april 2012 . Hentet 23. april 2012 .
- ^ Carzaniga, Antonio; Gian Pietro Picco; Giovanni Vigna (2007). Flytter kode seg fremdeles? Ser tilbake på et tiår med kodemobilitet . ICSE COMPANION '07 Companion to the Proceedings of the 29. International Conference on Software Engineering . Washington, DC, USA: IEEE Computer Society. s. 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 and RPC for Java platform" . Hentet 15. juni 2012 .
- ^ "Mobile-C: en multiagentplattform for mobile C / C ++ -agenter" . Hentet 15. juni 2012 .
- ^ "Acrobat JavaScript-spesifikasjon" (PDF) . Hentet 18. november 2009 .