Marshaling

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 27. november 2014; checks kræver 13 redigeringer .

Marshaling (fra engelsk  marshal  - at arrangere) i datalogi  er processen med at konvertere information (data, en binær repræsentation af et objekt) lagret i RAM til et format, der er egnet til lagring eller transmission. Processen ligner serialisering (se nedenfor for forskelle ). Det bruges normalt, når information (data, objekter) skal overføres mellem forskellige dele af et program eller fra et program til et andet.

Den modsatte proces kaldes unmarshaling (svarende til deserialisering).

Ansøgning

Marshaling bruges, når data overføres mellem processer og/eller tråde , for eksempel:

Sammenligning med serialisering

I Python Standard Library svarer udtrykket "marshaling" i betydningen til udtrykket "serialisering" [1] , men termerne er ikke synonyme i RFC 2713 ("Schema for Representing Java(tm) Objects in an LDAP Directory"; oktober 1999), som Java :

At "marshalere" et objekt betyder at registrere dets tilstand og kodebase(r) [2] (URI'en, der peger på placeringen af ​​objektets klassekode, der skal indlæses) på en sådan måde, at den omvendte operation frembringer en kopi af originalen, formentlig ved automatisk at indlæse klassedefinitionsobjektet. Du kan samle ethvert objekt, der kan serialiseres eller fjernt (...). Marshaling ligner serialisering, bortset fra at marshaling angiver placeringen af ​​den eksekverbare kode. Marshaling adskiller sig fra serialisering ved, at den anvendes på en særlig måde til fjernobjekter, hvortil der ikke oprettes en kopi af selve objektet, men kun en fjernadresse er angivet, hvor der skal arbejdes med det.

Originaltekst  (engelsk)[ Visskjule] At "marshalere" et objekt betyder at registrere dets tilstand og kodebase(r) på en sådan måde, at når det rangerede objekt er "unmarshalled", opnås en kopi af det originale objekt, muligvis ved automatisk at indlæse objektets klassedefinitioner. Du kan samle ethvert objekt, der kan serialiseres eller fjerntliggende (...). Marshalling er som serialisering, bortset fra at marshalling også registrerer kodebaser. Marshalling er forskellig fra serialisering ved, at rangering behandler fjerntliggende objekter specielt. (…) rangering registrerer det fjerne objekts "stub" i stedet for selve det fjerne objekt. — RFC 2713

At "serialisere" et objekt betyder at omdanne dets tilstand til en strøm af bytes på en sådan måde, at strømmen kan konverteres tilbage til en kopi af det originale objekt.

Originaltekst  (engelsk)[ Visskjule] At "serialisere" et objekt betyder at konvertere dets tilstand til en bytestrøm på en sådan måde, at bytestrømmen kan konverteres tilbage til en kopi af objektet. — RFC 2713

Netværksprotokoller

Når det anvendes på computernetværk , refererer marshaling til processen med at konvertere data til et format, hvor dataene kan transmitteres over netværket og kan passere gennem netværksbegrænsninger. Data konverteres til en strøm af bytes, pakkes, opdeles i dele, transmitteres over netværket ved hjælp af en netværksprotokol . De modtagne data konverteres tilbage til dets oprindelige format.

Noter

  1. Marshalling-modul til Python . Hentet 18. juli 2014. Arkiveret fra originalen 15. august 2014.
  2. Kodebasen her er ikke en almindelig betydning , men en Java-specifik - et sæt URI'er, der angiver placeringen af ​​en ekstern eksekverbar kode til at interagere med et eksternt objekt

Links

Se også