Dupliceren

Uit Inf20
Naar navigatie springen Naar zoeken springen

Dupliceren

Dupliceren gebeurt vaak impliciet

Veel informatieprocessen hebben impliciet het dupliceren van informatie tot gevolg. Denk bijvoorbeeld aan het uitlezen van een geheugen: het geheugen houdt de oorspronkelijke waarde, hoe vaak dit ook uitgelezen wordt. Het verspreiden van informatie betekent ook dat er kopieën gemaakt worden. Bij een broadcast is dat direct duidelijk. Maar ook als er via het internet een bestand verstuurd wordt, zijn er in alle tussenliggende systemen kopieën van het origineel aanwezig. Meestal zijn deze tijdelijk - maar daar heb je geen zicht op.

In een programma kom je deze impliciete duplicatie tegen als je een waarde van een variabele op verschillende plaatsen gebruikt.

Geen verlies van informatie

Bij dupliceren van informatie vindt er geen verlies plaats: het origineel en de kopie kunnen precies gelijk zijn. (Bij een analoge kopie is dit niet het geval, maar een digitale kopie kun je heel betrouwbaar maken. Ook in het geval van celdeling wordt er een zeer betrouwbare kopie van het origineel gemaakt - met een zeer kleine kans op fouten.)

Reversibel?

Als je een kopie maakt van een origineel, tast dit het origineel niet aan. Dit betekent dat je nooit kunt nagaan of er een kopie gemaakt is, van het origineel, of van een kopie van een kopie... Met andere woorden: als je informatie verspreidt, heb je de verspreiding daarvan niet echt meer in de hand. Als je een kopie gemaakt hebt, kun je dat eigenlijk niet meer ongedaan maken.

Waarom dupliceren?

Meestal is er een fysische reden om te dupliceren:

  • lokale kopie werkt sneller (processor cache; lokaal bestand op schijf, i.p.v. via internet)
  • je hebt te maken met meerdere actors (agents; processoren) - de capaciteit per actor is beperkt
    • parallellisme (zowel van processoren als van mensen of organisaties)
  • een enkel origineel is kwetsbaar; je maakt duplicaten voor een redundante representatie
    • alleen duplicaten maken is niet voldoende; je moet weten of een kopie beschadigd is
    • voor een redundante representatie hoef je niet altijd een volledige kopie te maken
    • vb: kanaalcodering, bij transport; RAID voor secondair geheugen

Dupliceren van veranderlijke informatie; redundantie

Als je een kopie maakt van veranderlijke informatie, krijg je een consistentie-probleem.

  • cache-coherency
  • database consistentie; transacties
  • dupliceren vs. "sharing"van gemeenschappelijke data
    • DropBox (kopie) vs. Google Docs (sharing)
    • Google Docs vs. GitHub (kopie met merge achteraf)

Hoe werk je met twee (of meer) actors aan eenzelfde resultaat?

  • samenwerken aan een presentatie, document
  • samenwerken aan een programma
  • distributed processing; parallellisme

Copyright en Intellectual Property(?)

  • kun je spreken over "eigendom"?
  • kun je spreken over "diefstal"? (Als het origineel ongewijzigd blijft?)
  • regels voor copyright werken door in de technische systemen, bepalen welke oplossingen aanvaardbaar zijn