140
anyactivenetworkconnections.Eachchangecanbeexaminedwithrespecttoitssource,
operandsandrelationshiptootherchanges,andthendealtwithappropriately.Application
conflictsarethoseconflictsthatdependonspecializedconsistencyconstraintsoverand
abovethebasicsequenceconstraintsimposedbythedatamodel.Thiskindofcustomization
isbeyondourcurrentscope,butitisworthnotingthatpropersupportforthisfunction
wouldincludesupportforapplicationstodetectsemanticconflicts.Thiswouldincludefull
queryfunctionsonchangesofthesortdiscussedinChapter6.Astandardsetofextensible
dispositionactionsfordetectedconflictswouldalsobeneededasastartingpointforappli-
cationimplementers.Thesewouldinclude,atleast:
Movementofconflictingchangestospecialchangesets;
Acceptanceofconflictingchanges,andsendingofaspecialconflicteventtotheapplica-
tion;
Acceptanceoftheconflictwithoutspecialreportingofanykind.
Theotherfunctionsofthepolicymanager(inconjunctionwiththeindividualnetwork
connections)arereplicationmanagementandeventpropagation.Thesearegroupedtogether
becausethePalimpsestmodelunifiestheseundertherubricofchangedistribution,atthe
sametimethatitseparatesthemfromsynchronizationconcerns.Thepolicymanagerneeds
tobeabletodecidewhatchangesshouldbedistributedwhere.Abrieflistofusefulpolicies
includesthefollowing:
Epidemic.Foreachnewchangereceived,sendittoasubsetofa(presumablylarge)
groupofactiveconnections.Ifachangehasalreadybeenreceived,donotpropagateit,
orpropagateitwithaverylowprobability.
Versionupdate.Foraselectedversion,packageupallthechangesinitschangeset,
andsendthemoutononeormorenetworkchannels.
Pushy.Sendeverychangeaddedtoaparticularversiontoaspecifiedsetofnetwork
connections.Accepteverychangeonthoseconnections,andaddittothatversion.
141
Bufferedonline.Thisisliketheonlineoption.Anychangesaddedtoaspecifiedver-
sionareimmediatelysentoutontheappropriatenetworkconnections,butincoming
changesareaddedtoadifferentversion.Thisisapolicythatwouldoftenbemoreuseful
inoff-linecollaborations,inwhichcollaboratorsseparatelymakechangesbutandaccu-
mulatethemfromothersindistinctworkingversions.Itissometimesusefultomonitor
acollaborator’sactivityevenifoneisnotreadytospendtimeonthecoordinationwork
requiredtoresolveproblemsbyexecutingamerge.
Thepolicymanagementmodulemayhaveseveraldifferentpoliciesinstantiatedatthe
sametime,correspondingtodifferentdocuments,orevendifferentmodesofcollaboration
onthesamedocument.Ofcourse,thetypicalapplicationwillpickoneortwopoliciescorre-
spondingtothesensiblemodesofinteractionforitsparticulartask,andselecttheproper
onestoactivateautomatically,orwithuserassistance.
7.1.3 Thenetworkmanager
Thepoliciespresentedaboveareratherweak,witheachpolicybeingasetofconnections
betweensourcesofchanges,andprocessesthatacceptchanges,alongwithaprogramtode-
cidewhichchangesgotowhichplaces.Thatdefinitionofpolicyignoresimportantaspects,
includingallofthetemporalandschedulingaspects,whatevernegotiationsarerequiredbe-
tweenserverstodeterminewhatwillbetransmitted,andthelike.Theseaspectsofpolicy
aredelegatedtoindividualnetworkconnections,becausetheseaspectsofcommunication
policyandthenetworkmediumareintimatelyrelated.Itisrarelysensibletouseapolling
architectureoveremail,especiallyifthepollingintervalisshort.
Theconceptofconnectionisquitegeneral;anythingthatcanacceptPalimpsestchanges
orproducethemcanbethoughtofasaconnection.Someconnectionsinvolvenonetwork
activityatall,insteadcreatingfilesforarchivalortransferby“sneakernet.”Somesignifi-
cantcharacteristicsofnetworkconnectionsinclude:
1. Directionality.Aconnectioncanbeincoming-only,outgoing-only,orbidirectional.
Previous Page Next Page