Marshaling

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 27 november 2014; kontroller kräver 13 redigeringar .

Marshaling (från engelska  marshal  - att arrangera) inom datavetenskap  är processen att omvandla information (data, en binär representation av ett objekt) lagrad i RAM till ett format som är lämpligt för lagring eller överföring. Processen liknar serialisering (se nedan för skillnader ). Det används vanligtvis när information (data, objekt) behöver överföras mellan olika delar av ett program eller från ett program till ett annat.

Den motsatta processen kallas unmarshaling (liknande deserialisering).

Applikation

Marshaling används när data överförs mellan processer och/eller trådar , till exempel:

Jämförelse med serialisering

I Python Standard Library liknar termen "marshaling" i betydelsen termen "serialisering" [1] , men termerna är inte synonyma i RFC 2713 ("Schema for Representing Java(tm) Objects in an LDAP Directory"; oktober 1999), som Java- :

Att "marskalera" ett objekt betyder att registrera dess tillstånd och kodbas(er) [2] (URI:n som pekar på platsen för objektets klasskod som ska laddas) på ett sådant sätt att den omvända operationen ger en kopia av originalet, förmodligen genom att automatiskt ladda klassdefinitionsobjektet. Du kan samla alla objekt som är serialiserbara eller fjärranslutna (...). Marshaling liknar serialisering, förutom att marshaling anger platsen för den körbara koden. Marshaling skiljer sig från serialisering genom att den appliceras på ett speciellt sätt på avlägsna objekt, för vilka en kopia av själva objektet inte skapas, utan endast en fjärradress anges där arbete ska utföras med det.

Originaltext  (engelska)[ visaDölj] Att "marshalera" ett objekt betyder att registrera dess tillstånd och kodbas(er) på ett sådant sätt att när det rangordnade objektet är "unmarshalled", erhålls en kopia av det ursprungliga objektet, möjligen genom att automatiskt ladda klassdefinitionerna för objektet. Du kan samla alla objekt som är serialiserbara eller fjärranslutna (...). Marshalling är som serialisering, förutom att rangering också registrerar kodbaser. Marshalling skiljer sig från serialisering genom att rangering behandlar avlägsna föremål speciellt. (…) rangering registrerar fjärrobjektets "stub", istället för själva fjärrobjektet. — RFC 2713

Att "serialisera" ett objekt innebär att omvandla dess tillstånd till en ström av bytes på ett sådant sätt att nämnda ström kan omvandlas tillbaka till en kopia av det ursprungliga objektet.

Originaltext  (engelska)[ visaDölj] Att "serialisera" ett objekt innebär att konvertera dess tillstånd till en byteström på ett sådant sätt att byteströmmen kan konverteras tillbaka till en kopia av objektet. — RFC 2713

Nätverksprotokoll

När den tillämpas på datornätverk hänvisar marshaling till processen att konvertera data till ett format där data kan överföras över nätverket och kan passera genom nätverksbegränsningar. Data omvandlas till en ström av bytes, packas, delas upp i delar, överförs över nätverket med hjälp av ett nätverksprotokoll . Den mottagna datan konverteras tillbaka till sitt ursprungliga format.

Anteckningar

  1. Marshalling-modul för Python . Hämtad 18 juli 2014. Arkiverad från originalet 15 augusti 2014.
  2. Kodbasen här är inte en vanlig betydelse , utan en Java-specifik sådan - en uppsättning URI:er som indikerar platsen för en fjärrkörbar kod för att interagera med ett fjärrobjekt

Länkar

Se även