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

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

  1. ^ 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 .
  2. ^ Dr Lawrie Brown. "Mobile Code Security" . Australian Defense Force Academy. Arkivert fra originalen 3. april 2012 . Hentet 23. april 2012 .
  3. ^ 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.
  4. ^ "Mobility-RPC - Seamless Code Mobility and RPC for Java platform" . Hentet 15. juni 2012 .
  5. ^ "Mobile-C: en multiagentplattform for mobile C / C ++ -agenter" . Hentet 15. juni 2012 .
  6. ^ "Acrobat JavaScript-spesifikasjon" (PDF) . Hentet 18. november 2009 .