35
tentofincludingtablesandpictures).Authoringsystemsshouldbecapableofsup-
portingchangestodocumentpartsofalldatatypes.
7. Itshouldallowtheapplicationtocontroltheparametersfordataconsistency.Rather
thanenforcingasinglemodelthatcannotbecorrectforallapplications,itshould
enableapplicationstodeterminehowmuchconsistencyisappropriate,andwhen.By
postponingpolicydecisionstothegreatestextentpossible,agreatervarietyofap-
plicationscanbeaccommodated.
8. Itshouldprovideadefinitivesemanticsforinterpretingandmodelingasynchronyand
inconsistency.Achiefdifficultyinimplementingsystemsthathavetodealwithdis-
tributedediting(synchronousorasynchronous)isunderstandingwhatisgoingon
withrespecttotimesofupdatesandthemovementofdatabetweenthepartiesto
aneditingsession.Onethingthataframeworkanditsunderlyingmodelcanprovide
isasimplemodeloftemporalandcausalinteraction.
9. Itshouldprovideapplicationimplementerswithaneasydefaultoption.Conflictand
versionmanagementarecomplex,thornyproblemsforimplementersandforusersas
well.Itisusefultohavea(potentiallylesssafe)“seenoevil”policyavailableifit
canreduceasystem’sdemandsonauserfortheenforcementofsafetyandconsis-
tency.Aframeworkshouldhelpapplicationwriterstoofferusersaconvenientway
toignorepotentialproblems,ordeferthem—perhapsindefinitely.Theexactforof
defaultisworthcarefulconsiderationasitislikelytobeused.Itisalsodesirable
thatasystembeabletosupportachoicebetweenasmallnumberofdefaultpolicies.
Thediscussioninsection1.8supportsthefollowingadditionalrequirementsforamerge
function,listedinorderofpriority:
1. Reasonabilityofchangemodel.Whilecomplexitymaybeinvolvedwhenchanges
combine(sinceeditinghistoriesaretricky),thebasicoperationsprovidedmustbe
intelligibleandunsurprisingtousersandapplicationdesigners.
36
2. Useractionsshouldbereflected.Theoperationsmadevisibletoauserbymergeand
undofacilitiesshouldbeoperationsactuallyperformed.Boththisandthepreceding
requirementarebothjustificationsforthefollowingrequirement.
3. Moveandcopyshouldbesupported.Ifwelimitthekindsofchangesallowedbythe
model,wearelikelytofailthereasonabilityrequirement.Moveandcopyareex-
tremelycommonoperationsandtheyshouldbefirst-classcitizens.Trackingmove
andcopyallowsdatasharingtobeusedindeterminingreasonablemergeresults(as
whenonechangeeditsdata,andanothermovesorcopiesit).
4. Determinacyofmergeresults.Itisimportantthatthesystemhaveaconsistent,well-
definedmodelfordeterminingtheresultofinteractingchangesinamergedgroupof
changes.Practicallyspeaking,editingconflictsshouldberesolvablesimplybyun-
doingthechangethatcreatesaconflict.Thedefinitionofwhatconflictsareresolved
byuserorthesystemremainsanapplicationfunction.
5. Localtrackingofchanges.Itshouldbeeasyforthesystemtoprovideinformationon
thechangesthataffectanyparticularpartsofthesharedobject.
6. Commutativityofchanges.Inordertosupportthefullflexibilityofmerging,changes
mustnothaveinherentorderingrequirementswithrespecttoeachother.Changes
shouldhavetwostates:activeandinactive.Whereorderingisunavoidableweprefer
tohavethesystemdoit,preservingthesimpleusermodelofmerge,ratherthan
addingtherelativeorderingofmanyasynchronouslymadechangestotheuser’s
collaborationmanagementworkload.
7. Simpleconflicttests.Somechangescanconflictwithotherchanges.Detectionof
suchconflictsshouldinvolvesimpletests,inordertoenablequickconflictdetection
andacceptableimplementationcost.
8. Guaranteeofsensibleresults.Givenasystem’sdeterministicanswerforacombination
ofchanges,thatresultshouldbeassensibleaspossible.However,adeterministicre-
Previous Page Next Page