105
ThepersistentaddressspaceinPalimpsestgreatlyenhancestheeaseandprecisionof
conflictdetection,localinvestigationofeditinghistories,andpersistentselectionmanage-
ment.ForaPalimpsest-basedsystem,anchormanagementofhypertextlinksisalmostauto-
matic.Thisisadirectresultofapointingsystemthatcreatespointersthatarevalidacross
revisionswithoutrequiringactivemaintenance.Theusefulnessofpersistentpointersof
varioussortshasbeennotedbyothers.FischerandLadner(FischerandLadner1979)exam-
ineddatastructuresforthemanagementof“stickypointers.”Theirdatastructurefacilitates
thein-memorymanagementofpersistentpointersduringediting,ratherthanthedistrib-
uted,persistentmanagementofeditinghistories,butthebasicconceptsandmechanismsare
quitesimilar.
AlanDixhasexploredthenotionof“dynamicpointers”(Dix1991;AbowdandDix1992;
Dix1995)totrackdatacontextsacrossvariousformsofupdateandchange.Appliedto
changetracking,dynamicpointerstakeanintermediatepositionbetweenPalimpsestad-
dresses,whicharefullypersistent,andoperationaltransformation,inwhichoperations
themselvesaredynamicallytranslatedagainsteachother.TheinsightbehindDix’sdynamic
pointersisthatifthetranslationofoperationsisspecifiedforeverypossiblepairofopera-
tions,thepointerscanbeupdatedeasily.Forallofthesetransformations,onlytheoffsetsin
othercommandsareactuallybeingupdated.Bytreatingthoseoffsetsaspointers,thecom-
mandsthemselvesneednotbetranslated,butcanbespecifiedintermsofaneffectrelative
toparticulardynamicpointers.Eachcommandhasaspecifiedupdatefunctionforanypoint-
ersinitsvicinitythatdefineshowtheyshouldbeupdatedwhenitisexecutedorundone.
Thissingletransformationfunctionforthedynamicpointerssufficestotransformanyop-
erationtoaccountfortheeffectsofanyotheroperationissuedbyacollaborator.Thus,dy-
namicpointersareinonewayofgeneralizingthenotionofoperationaltransformation.Like
operationaltransformation,thismethodstilldependsoncollaboratinginstancesofanappli-
cationhavingsufficientknowledgeofotherinstance’sstatestoknowwhatdynamicpointers
106
needtobetranslated,andwhatoperationshavetransformationsthatneedtobeapplied.
Palimpsest,bydealingwiththewholehistoryandusingimmutablepointers,doesnotre-
quiresuchknowledge,sinceoperationsareexpressedusing“staticpointers”thatdonot
needtobeupdatedwhenthecontextchanges.
5.2 Distributedimplementations
Persistentaddressingminimizestheamountofknowledgeanapplicationneedstohave
aboutthestateofitscollaborators.Anysetofupdatescanbeextractedandpackagedinthe
formofoperationsusingPalimpsestaddressesandthentransmittedtoanyotherinstanceof
theapplication.Thechangesinsuchanupdatepackagearesuitableforprocessingbyany
instanceoftheapplicationthatgetsaccesstothem.Infact,aninstanceofanapplication
needstoknownothingaboutacollaborator’sstatetosenditschangesinausableform.
Evenifanupdateissenttoaninstanceofanapplicationthathasneverpreviouslyseenthe
documentinquestion,itisstillpossibletoallowworktoproceedwithoutresendinganyup-
dates.AslongasIDsareassignedinawaythatallowsfordiscoveryofthelocationwherea
changewascreated,anapplicationcanrequestallorsomeofthemissinginformationre-
quiredtocreateacomplete(orsufficient)instance.Theoriginalchangeswouldneverhave
toberetransmitted.Evenifthestateanapplicationfinallyretrievedissignificantlydiver-
gentfromthesender’sstateatthetimeoftransmissionoftheoriginalchanges,theinvari-
antaddresseswillstillbemeaningfulandtheycanstillbeapplied.
Forlinkmaintenanceindistributedhypertextsystems,thispropertyisacriticalone.One
ofthehigher-costtasksforhyperbasesystems(CampbellandGoodman1987;Schnase,Leg-
gettetal.1993),isthemanagementofchangeandversioning(Hicks,Leggettetal.1998),
andtheinsuranceoflinkintegrity.Whenapplyingsuchsystemstocollaborationoverwide
areanetworks,linktrackingbecomesconsiderablymoreexpensiveandproblematic.Whenit
isdoneatall,linkconsistencyisusuallymaintainedusingsomeformofdistributeddata-
Previous Page Next Page