Chapter5:ApplyingandEvaluatingtheModel
Inthischapter,IexaminetheimplicationsofthepropertiesofP-sequences,andtheir
applications.MuchofthischapterwillbeconcernedwithhowP-sequencescanbemanipu-
latedbyoperationsonchangesets.Beforeexaminingtheissuesindetail,itisworthre-
viewinghowthepuremodelinChapter4wouldbeusedinanactualsystem.Wehavede-
finedaP-sequenceintermsofasinglechangeset,andtherepresentationofasequence
stateorversionconsistsofachangeset.Relatedversionswouldbechangesetssharingmore
orfeweroperations.
Exceptinsomeofthefinaltheorems,wedidnotconsidermultipleP-sequencesinthe
previouschapter.Inasystemapplication,wewillalwaysbedealingwithP-sequenceswhose
changesaresubsetsofalargeruniversalsubset,representingallchangesevermadetoa
document.Individualcollaboratinginstancesofanapplicationwillmaintaintheirown“mas-
terchangesets”whichmaynotbecompletewithrespecttotheuniversalchangeset.In
termsofmodelinghowever,theuniversalsetsarenotimportant,becausetheimportant
questionforanapplicationiswhataparticularsetofchangesmeans:whatP-sequenceit
defines.ThesubjectsofChapter6andChapter7arethecreationofanefficientchangestore
forP-sequencesandaflexibleapplicationarchitectureforusingthatchangestore.
5.1 Editinghistoriesandversionmanagement
Inthissection,IwillbrieflydiscusssomeofthewaysthatPalimpsestcanmodelthefa-
cilitiesprovidedbymoretraditionalversionmanagementsystems,andexaminehowthe
commonestversioningmodelsfitintoPalimpsest’smodel.Thetraditionalapproachmanages
asetofdocumentstates(versions)bymaintainingaderivationgraph(see(Conradiand
Westfechtel1998)foranexcellentoverviewofthemanymodelsinthisarea).Thisversion
graphusuallytakestheformofaDAG,thoughisitsometimesfurtherrestrictedtobeatree.
101
Existingversionsareeditedbyauser,andtheresultsareaddedtotheversiongraphbya
useroperation.Versionsarealmostalwaysstoredinasinglelogicalrepository,althoughit
maybephysicallydistributedacrossmultiplemachines.Accesscontrolisprovidedsothat
onlyversionswithoutsuccessorscanbeupdated,addingnewnodestothegraph,andto
preventusersfrominadvertentlycreatingunwantedversions.Whennon-treestructuredver-
siongraphsaresupported,theyarecreatedbyuser-executedmergeoperations.Amergeop-
erationcreatesanewstatethatisadescendentofmorethanonenodeintheversiongraph.
Thestructureofchangehistoriesistheotherfactorindetermininghowchangesinteract,
andhowconflictsariseandareresolved.Table1.1(inSection1.4)liststheusualuser-visible
historystructuresintermsofthetopologyofversiongraphs.Anygeneralinfrastructure
shouldbeabletosupportthesemodels.Onekeycharacteristicofthenotionsofserializabil-
itythatwearereplacingisthatchangesaretemporallyorderedinalinearway.Whendiver-
genteditingoccurs,aforkinthehistoryalsooccurs,andoneconcerniswhetherandhowto
mergeorremovetheseforks.
Manytoolsforsoftwareengineering,revisioncontrolandcollaborativeauthoringuse
lockingorotherconcurrencymechanismstoensurethatsimpleeditinghistoriesarealways
maintained,andthustoavoidthenecessityhandlingmergeanditsmorecomplexchange
histories.By“simple”editinghistoriesImeaneithersequentialortree-structuredhistories.
Whiletreestructuredhistoriesdopermitalternativevariantsofabasicsequence,theyare
simpleinthesensethatanystateofthesequencehasasinglelinear,temporallyorganized
lineofdescent.Mosttoolsencouragehistoriesofthisform,andforthemthemergeproblem
isanexceptionalcase,onlyinvokedwhenthenormalsynchronizationmechanismsofthe
systemaresubvertedordeliberatelysuspended.
Intraditionalversionsystems,thereisnosystem-enforcedinherentrelationshipbetween
thecontentsofoneversionintheversiongraphandthecontentsofitspredecessor(s).The
actualrelationshipofversionsinthegraphisdeterminedbytheusersperformingcheck-in
Previous Page Next Page