Data management support for asynchronous groupware

发布时间:   来源:文档文库   
字号:
DataManagementSupportforAsynchronousGroupware

NunoPreguiça,J.LegatheauxMartins,HenriqueDomingos,SérgioDuarte
DepartamentodeInformática
FaculdadedeCiênciaseTecnologia-UniversidadeNovadeLisboa
QuintadaTorre,2825-114MontedaCaparica,Portugal
{nmp,jalm,hj,smd}@di.fct.unl.pt

Abstract
Inasynchronouscollaborativeapplications,usersusuallycollaborateaccessingandmodifyingsharedinformationindependently.Wehavedesignedandimplementedareplicatedobjectstoretosupportsuchapplicationsindistributedenvironmentsthatincludemobilecomputers.Unlikemostdatamanagementsystems,awarenesssupportisintegratedinthesystem.Toimprovethechancefornewcontributions,thesystemprovideshighdataavailability.Thedevelopmentofapplicationsissupportedbyanobjectframeworkthatdecomposesobjectsinseveralcomponents,eachonemanagingadifferentaspectofobject"execution".Newdatatypesmaybecreatedrelyingonpre-definedcomponentstohandleconcurrentupdates,awarenessinformation,etc.
Keywords
becausetheydonothaveaccesstoeachother'sactions.Toimprovethechanceforasynchronouscollaboration,usersshouldbeallowedtoperformtheircontributionsindependentlywithoutrestrictions(besidescoordinationandaccesscontrolrestrictions.Toaccomplishthisrequirement,areplicateddatamanagementsystemwitha"readany/writeany"modelofdataaccessisoftenused.Theincreasingpopularityofmobileanddisconnectedcomputing,withitsinherentcharacteristics[21],seemstofurtherstrengththeaboveapproach-mobileusersexpecttobeabletoaccessandmodifysharedinformationevenwhiledisconnected.Usingthismodel,usersmayexecuteconcurrentupdates.Tosynchronizetheseconcurrentstreamsofactivity[5]adequately,itisoftennecessarytorelyonapplication-specificsemanticinformation[12,14,7].Awarenessinformationisoftenessentialtothesuccessofcollaborativeactivities[4].Inasynchronousgroupware,althoughusershavenoimmediateknowledgeofeachother'sactions,overallinformationabouttheevolutionofthecollaborativeactivity(e.g.evolutionoftheshareddata,users'actions,…mayimproveeachuser'scontributions.Differentcollaborativeactivities,applicationsanduserswilldemanddifferentformsofawarenessinformation(e.g.aschedulerapplicationmayactivelynotifyusersofnewappointmentswhileacollaborativewritingsystemmaysimplymaintainalogofmodifications.
InthispaperwepresentthedatamanagementapproachoftheDAgoraproject[1]tosupportasynchronousgroupware.Ithastwomaincomponents:(1areplicatedobjectstorethatintegratesawarenessmechanisms;and(2aframeworkthateasesthecreationofnewdatatypesthatarespeciallytailoredtobeusedincollaborativeapplications.
TheDAgoradistributedobjectstore(namedDOORSisbasedonagroupofserversthatreplicatesetsofrelatedobjectswitha"readany/writeany"modelofdataaccess.Italsoincludesaclientcachingmechanismthatallowsclientstocachefrequentlyusedobjects.Thecombinationofthesemechanismsprovideshighdataavailabilityeveninthepresenceofvoluntarydisconnectionandnetworkand/orserverfailures.Tomaximizethesemanticinformationavailabletosynchronizedivergentstreamsofactivity,thesystempropagatesoperationsinsteadofdatavalues.DOORSobjectsarestructuredaccordingtoanobjectframeworkthatdecomposesobject“operation”indifferent
Asynchronousgroupware,mobilecomputing,awareness,objectframework,developmentsupport.
INTRODUCTION
TheubiquityoftheInternethasopenedopportunitiesforcollaborationamongpeopleondifferentgeographicallocations.Severalgeneral-purposeservices,suchase-mailandnews,havebeenusedtosupportbasicinteractionandcollaboration.However,enhancedsupportforgroupsofuserscollaborativelyseekingcommongoalsrequiresspecializedapplicationssuchasmulti-usereditingtools,cooperativeschedulersandcalendars,workflow-basedapplications,conferencingsystemsandothers[8].Mostoftheseapplicationsrelyheavilyonadatastoragesub-systemtoenableinformationsharing,distributionandcomposition.Somesupportsystemshavebeenimplemented,either,forgeneraluse(e.g.LotusNotes[16],forspecificdomains(e.g.Vortex[11]forworkfloworforspecificapplications(e.g.Iris[15]fordocumenteditors.
Inasynchronousgroupware,usersusuallycollaborateaccessingandmodifyingsharedinformationwithoutimmediateknowledgeabouttheactionsofotherusers(eitherbecauseusersworkatdifferenttimesorsimply

Copyright©2000,AssociationforComputingMachinery.PublishedinProceedingsofthe2000ACMConferenceonComputer-SupportedCooperativeWork(CSCW'00,December2000.


1

aspects:concurrencycontrol,awareness-support,etc.Thisframeworkeasesthedevelopmentofcollaborativeapplicationsbecauseitallowsprogrammerstodefinenewshareddatatypesusing,ineachdatatype,theadequatepre-definedcomponentsforeachaspectofdatasharing.Theremainderofthispaperisorganizedasfollows:section2discussesrequirementsanddesignchoices;section3outlinestheDOORSarchitecture;section4presentstheobjectframework;section5describesourexperienceusingtheDOORSsystemandsection6discussesrelatedwork;section7concludesthepaperwithsomefinalremarks.
REQUIREMENTSANDDESIGNCHOICES
However,intheDAgoraproject[1]wearealsoaddressingotherproblems,suchasthecoordinationofcollaborativeactivities[3],thesupportofsynchronousapplications[23]andthedisseminationofawarenessinformationrelativetothecollaborativeactivity[6].
Highdataavailability
InthissectionwepresenttherequirementsanddesignchoicesthatleadtotheDAgoradatamanagementapproachtosupportasynchronouscollaborativeactivities.Toillustratesomeoftherequirementsofasynchronousgroupwarewewilluseexamplesfromthreewellunderstoodapplications:aconferencingsystem,agroupschedulerandamulti-usereditingtool.
Inanasynchronousconferencingsystem,userscollaboratethroughtheexchangeofmessagespostedinasharedspace(newsgroupsareasimpleexample.Thesemessagescreatethreadsofdiscussionrelatedwithdifferentsubjects.Usersshouldbeallowedtoindependentlypostnewmessages,whichshouldbedisplayedinaconsistentway(atleast,messagedependenciesshouldbetakenintoaccount-areplyshouldnotbedisplayedbeforetheoriginalmessage.Inagroupscheduler,multipleusersshouldbeallowedtorequestnewappointmentsindependently.Thesenewappointmentsshouldbeconsideredtentative[7]untilbeingcommittedbysomeformofautomaticglobalagreement.Ifrequested,usersshouldbenotifiedwhentheirrequestsarecommittedoraborted.
Amulti-usereditingtoolallowsagroupofuserstocollaborativelyeditsomestructureddocument(forexample,thispaper.Differentusersshouldbeallowedtoindependentlymodifythedocument(e.g.twouserscanmodifydifferentsections.Concurrentmodificationsshouldbemergedtakingintoconsiderationallchanges(e.g.thefinaldocumentmustincludethenewversionsofthetwosections.Syntacticconsistency1[5]shouldbepreservedevenwhenhandlingsemanticconflicts(e.g.iftwousersmodifythesamesection,twoversionsofthatsectionshouldbecreatedandmaintained.
Fromthepreviousbriefdescriptionswenotethatuserscollaboratethroughtheaccessandmodificationofsharedinformation.Therefore,datamanagementplaysanimportantroleinthesupportofgroupware.Inthispaperwerestrictourdiscussiontothedata-managementsupport.
1
Oneimportantrequirementtoenablecollaborationisto
allowuserstoaccesssharedinformation.Indistributedsettings,itisimpossibletoguaranteethepermanentreachabilityofasinglestoragesite(duetonetworkandmachinefailures.Therefore,systemsthatintendtoprovidehighdataavailabilityusuallyrelyondatareplication-datacanbeaccessedifsomereplicaisavailable.InDOORS,theinformationassociatedwithacollaborativeactivityisgroupedinavolume[14]thatisreplicatedbyagroupofservers.
Mobileusersarefrequentlydisconnectedfromthenetwork,eitherduetoeconomicalfactors,energysavingorunavailableconnectivity.Disconnectedusershavetorelyonlocaldatareplicastoaccessthesharedinformation.However,asitisoftenimpossibleand/orundesirabletoallowalldisconnectedcomputerstomanageafullunitofreplication,clientsusuallyrelyonacachingmechanism.InDOORS,clientscacheasetofkeyobjectstoallowdisconnecteduserstocontinuetheirwork.
Fromthepreviousexampleswenotethatuserscontributetoacollaborativeactivitythroughthemodificationofthesharedinformation.Therefore,topromotecollaboration,usersshouldbeallowedtomodifydatawithoutrestrictions.Inadistributedsettingthatincludesmobile/disconnectedcomputers,pessimisticconcurrencycontrolmechanismsbasedonlocksortokensleadtolowwriteavailability(forexample,toallowasingledisconnectedclienttomodifydataitmaybenecessarytopreventallotherclientsfromupdatingit.InDOORS,wehaveadoptedanoptimisticreplicationstrategywitha"readany/writeany"modelofdataaccess-allclientsareallowedtomodifydataindependently.Wehavealsoadoptedanepidemicschemeofupdatepropagation[2],whereeveryservereventuallyreceivesallupdatesfromeveryother,eitherdirectlyorindirectly.Thisschemerequiresonlyoccasionalpair-wisecommunicationbetweencomputers,thusimposingminimumconnectivityrequirementsamongcomputers.TheDOORSarchitectureisdetailedinthenextsection.
Multipleconcurrency-controlstrategies
Asystemissyntacticallyconsistentiftheunderlyingdatastoreisstructurallysound,allowingtheactivitytoproceed.
IntheoptimisticreplicationschemeadoptedinDOORS,asinothersystemspreviouslypresentedinliterature[7,16,14,15],usersmayindependentlyperformtheirupdates.Thissituationleadstotheneedtohandleconcurrentlyperformedupdates.Moreover,duetothelazyreplicationstrategy,updatesarenotpropagatedtoallserversatthesametime-differentserversmayhavereceiveddifferentsubsetsoftheperformedupdates.Althoughsimilarapproacheshavebeenidentifiedasnecessarytosupportlarge-scaledistributedenvironments2


thatincludemobilecomputers[7,9,14],theyposeanimportantdatamanagementproblem-howtohandletheconcurrentlyperformedupdates?
Considerthefollowingexamplesfromthepreviouslypresentedapplications.Inaconferencingsystemmessagesshouldbedisplayedtakingintoconsiderationtheirdependencies.However,thereisnoneedtodisplayallmessagesinthesameorderinallreplicas-acausalorderissufficient.Ontheotherhand,inaschedulerapplicationallappointmentsmustbecommittedinthesameorderinallreplicas-allupdatesshouldbeappliedusingatotalorder.Uncommittedupdatesmaybepresentedastentative.Manyalgorithmshavebeenproposedtohandleconcurrentupdates(basedonundo-redotechniques[13],operationtransformations[24],exploitationofdatatypessemanticproperties[12],….However,itseemsthatnosinglemethodisadequatetoallsituations.Instead,differentgroupsofapplicationswillusedifferentmechanisms.Nevertheless,theuseofsemanticinformationhasbeenidentified[7,14,18]asakeyelementtomergetheconcurrentstreamsofactivity.
InDOORSwealloweachapplicationtodefineitsownconcurrencycontrolmethod(see"applicationdevelopmentsupport"forreusesupport.Tomaximizetheflexibilityinthehandlingofconcurrentupdates,wehavebasedoursysteminthepropagationofupdatesasoperations.Consequently,theconcurrencycontrolmechanismmayusenotonlythesemanticinformationassociatedwiththedatatypebutalsothesemanticinformationassociatedwitheachperformedoperation.
Integratedawarenesssupport
connectedtothesystemwhentheirupdatesarecommitted2.Consequently,webelievethatthesupportforhandlingawarenessinformationrelativetotheevolutionoftheshareddatashouldbetightlyintegratedwiththedatamanagementsystem.Thisintegrationallowseachprocessedupdatetoproducetheadequateawarenessinformation(andeventualnotificationstobepropagatedimmediately.InDOORS,wehavemadethisintegration.Eachprocessedupdatemayproduceapieceofawarenessinformation.Eachdatatypemaydefinethewaythisinformationishandled,thussupportingdifferentawarenessmodels(e.g.awarenessdatamaybestoredwiththedataobjector/andmaybeimmediatelypropagatedtousers.Wewilldetailtheawarenesssupportinthenextsections.
Applicationdevelopmentsupport-reusingpre-definedbasesolutions
IntheprevioussubsectionswehavepresentedsomeofthedatamanagementrequirementsthatleadtotheDAgoraapproachtosupportasynchronouscollaborativeapplications.Itisimportanttonoticethatthefulfillmentofthoserequirementsdemandstype-specificsolutions.TheDOORSdesignchoicesattempttoofferthemaximumflexibilityintheimplementationofdifferentsolutions-differentgroupsofapplicationsrequiredifferentsolutions.However,tofulfilltheobjectiveofprovidingsupportforthedevelopmentofnewapplications,thisflexibilityisnotsufficientapplicationprogrammersshouldbeassistedintheimplementationoftheirspecificdatatypes.Tothisend,wehavecreatedadatamanagementobjectframeworkthatdecomposeseachobjectinseveralcomponents,eachoneresponsibleforadifferentaspectoftheobject"operation".Moreover,wehaveimplementedasetofpre-definedcomponentsthatexecutedifferentpolicies,notablyrelatedwithconcurrencycontrolandawarenesssupport.UsingtheDOORSopenobjectframework,applicationprogrammersmaycreatenewdatatypescomposingthesepre-definedcomponentswithregularobjectclasses.Ifnecessary,programmersmaycreatenewcomponentsorextendanypre-definedone.TheDOORSobjectframeworkdoesnotrestrictreusetoconcurrencycontrolandawarenesssupport.Forexample,wehavedefinedabasecomponentthatactsasasurrogateofarelationaldatabasesystem.ThiscomponentallowsprogrammerstostoretheirdatausingarelationalmodelwhilerelyingonDOORSfacilities.Wewilldetailtheobjectframeworkandsomeoftheimplementedbasecomponentsinthesection"objectframework".
Asithasalreadybeenmentioned,theDOORSreplicationmechanismisbasedonthepropagationoftheoperationsperformedbyusers.Tothisend,theinvocationof
2
Awarenesshasbeenidentifiedasimportantinthe
developmentofcollaborativeactivitiesbecauseindividualcontributionsmaybeimprovedbytheunderstandingoftheactivitiesofthewholegroup[4,19].Tothisend,itisimportanttohaveinformationabouttheevolutionofshareddata,users'actionsandmotivations,…Inasynchronouscollaborativeactivities,awarenessinformationplaysacentralroleincollaborationallowingeachusertotakenoticeofnewcontributionsfromotherusers.
Considerthepreviouslypresentedmulti-usereditingtool:itisimportantthateachusertakesnoticeofupdatesperformedtotheshareddocument.Tothisend,informationaboutupdatesshouldbeautomaticallycollectedandmaintainedwiththedocument.Thisinformationmaybedisplayedtousersusingdifferentuserinterfacemetaphors(logofchanges,multiplecolorsinthedocument,….Thisformofawarenessisusuallycalledsharedfeedback[4].Considernowthegroupschedulerapplication:itseemsinterestingtoallowtheaffectedpersonstobenotifiedofthecommitmentorabortionofanyrequestedappointment(alogwiththeresultsofrequestsmayalsobemaintained.Inourarchitecture,updatesareprocessedasynchronouslybythedatamanagementsystemanduserswillusuallynotbe
Notethatthisoperationalpattern(updatesbeingprocessedwhenusersarenolongerconnectedtothesystemiscommoninmanydatamanagementsystemsthatsupportdisconnectedusers[7,12,14].
3

operationsshouldbeloggedinclients.InDOORS,weuseapreprocessorthattransformstheobjectclassesimplementedbytheapplicationprogrammersothattheinvocationofoperationscouldbeloggedtransparentlywhenuserapplicationscallobjectmethods.
ARCHITECTURE
DOORSisadistributedobjectstorebasedona"extendedclient/replicatedserver"architecture.ItmanagesobjectsstructuredaccordingtotheDOORSobjectframework(namedcoobjects-fromcollaborativeobjects.Thesecoobjectsmayrepresentrathercomplexdataobjects,suchasdocumentsorcalendars,andbeimplementedasarbitrarycompositionsofcommonobjects.Setsofrelatedcoobjectsaregroupedinvolumesthatrepresentcollaborativeworkspacesandstorethedataassociatedwithagivenworkgroupand/orcollaborativeproject.
TheDOORSarchitectureiscomposedbyserversandclients,asdepictedinfigure1-anymachinemayactasbothaclientandaserver.Serversreplicatevolumesofcoobjectstomasknetworkand/orserverfailures.Clientscachekeycoobjectstoallowuserstocontinuetheirwork,evenwhiledisconnected.ApplicationsthatuseDOORStostoretheirdatarunonclientmachinesandmodifycoobjectsthroughtheinvocationofcoobjects'methods-userscollaboratethroughthemodificationofsharedcoobjects.
thesesequences-forexample,onlythelastoperationthatsetsnewtexttoasectionisrecorded.Finally,iftheuserchoosestosaveherchanges,theloggedsequenceofupdatesistransferredtotheclient,whereitispersistentlystoreduntilitispropagatedtoaserver.Alternatively,DOORSsupportsaremoteinvocationmechanismthatimmediatelyprocessesonaserveranymethodinvocationperformedonacoobject(ifconnectivityisavailable.Thismechanismismainlyusedtosupportaccesstolargecoobjectsthatcannotbeinstantiatedinclients,inparticularcoobjectsthatactassurrogatesofRDBMS(seenextsection.
Uponarrivalofupdatesfromaclientmachine,theserverhandsthemovertothecoobjectlocalreplica.Itisuptothecoobjectreplicatostoreandprocesstheseupdates-updatesarepropagatedfromclientstoserversandamongserversassequencesofmethodinvocations.Serverspropagatenewupdatesamongtheminanepidemicway[2]-pairsofserversestablishoccasionalcommunicationstosynchronizereceivedupdates.Therefore,allserverswilleventuallyreceiveallupdates,eitherdirectlyorindirectly.DOORSallowspair-wisecommunicationstobeestablishedovermultipletransports,includingasynchronousonessuchase-mail.Thisproperty,combinedwiththeepidemicstrategyofupdatepropagation,imposesminimumconnectivityrequirementsamongservers.Asaconsequenceofthelazystrategyofupdatepropagation,multiplereplicasmaydifferatagivenmoment,buttheywilleventuallyconverge(atleastallreplicaswillreflectthesamesetofupdates.Thesetemporaryinconsistenciesmaybereducedbyincreasingthefrequencyofepidemicpropagationsessions.
Thegroupofserversthatreplicateeachvolumemayvaryasaresultofusers(systemadministratorsexplicitorders.Theprotocolsimplementedformembershipmanagementarelight-weightandimposeonlypair-wisecommunications.Tosupportpush-basedawarenessmodels,eachservercontainsan"awarenessservice".This"awarenessservice"isresponsibletopropagatemessagesthroughthedefinedmechanisms-e-mail,SMS/pagergatewaysorother(tocopewithtemporaryimpossibilitiesofpropagation,severalretriesmaybenecessary.Tosupportcoobjectsthatactasdatabasesurrogates,eachservermayhaveanassociateddatabasesystemtomaintainlocalreplicas.
OBJECTFRAMEWORK
updatescoobjects
epidemicpropagation
Key
epidemicpropagation
ServerClientCoobjectApplication

Figure1–DOORSarchitecturecomposedbyfourcomputerswithdifferentconfigurations.Coobjectsarereplicatedbyservers,cachedbyclientsandmanipulated
byusers’applications.Applicationsusuallyusea"get/modifylocally/putchanges"modelofdataaccess.Whenanapplicationrequestsacoobject,ifitisnotavailableinthelocalcache,itisfetchedfromanyserver(ifconnectivityisavailable.Aprivatecopyofthecoobjectiscreatedintheclientcomponentanditishandedovertotheapplication.Applicationsusecoobjectsascommonobjects,i.e.,applicationsinvokecoobjects’methodstoqueryandmodifytheirstate.UpdatesperformedbyapplicationsareloggedinternallybycoobjectswithoutanyinterventionoftheDOORSsystem.Theseupdatesarerecordedassequencesofmethodinvocations(propertiesofoperationsareusedtocompress
IntheprevioussectionwehaveoutlinedtheDOORSsystem.Asithasbeendescribed,theresponsibilitiesofthesystemcorearealmostrestrictedtoprovidehighdataavailability:itshouldmaintainupdatedcopiesofcoobjectsinclientsandpropagateupdatesbetweenclientsandserversandamongservers.Therationalebehindthisdesignistoallowflexiblesupportofcollaborativeactivities:“operational”aspectsofdatamanagement,suchasconcurrencycontrolandawarenesssupport,arecontrolledinatype-specificwayandaredefinedintheimplementationoftheshareddatatypes(coobjects.
4

Therefore,thesystemcoreislimitedtominimalservicesthatrepresentthecommonaspectsofdatamanagement.Ontheotherhand,aheavyburdenisimposedontheimplementationofcoobjects,whichmusthandleseveralaspectsthatareusuallymanagedbythesystem.Toalleviateprogrammersfrommuchofthisburdenandtoallowthereuseof"good"solutionsinmultipledatatypes,wehavedefinedanobjectframeworkthatdecomposescoobjectsinseveralcomponentsthathandledifferentoperationalaspects.Inthissectionwewillpresenttheobjectframeworkandsomeofthereusablepre-definedbasecomponentsthathavebeenimplemented.Intheapplicationspresentedinthenextsectionwewillexemplifytheuseofthisobjectframework.
TheDOORSobjectframeworkstructureseachcoobjectinsixcomponents,eachonewithawelldefinedfunctionandinterface(seefigure2.Wewillnowbrieflypresentthesecomponentsandoutline(withsomesimplificationshowtheyworktogetherintheclientsandintheservers.ThecapsuleaggregatestheothercomponentsofthecoobjectandservesasaninterfacetotheDOORSsystem.The"attributes"componentstoresgeneral-purposeinformationaboutthecoobject.Thelogstorestheupdatesperformedbyusers.Theconcurrencycontrolcomponentisresponsibletoexecutetheloggedupdates.Thedatacomponentdefinestheconventionaldatatyperepresentedbythecoobject,withitsinternalstateandoperations.Theawarenesscomponenthandlestheawarenessinformation.
Concurrencycontrol
Capsulecomponent
Thecapsulecomponentdefinesthecompositionofthecoobjectandaggregatesitscomponents.Itimplementstheinterfaceusedbythesystemcoretointeractwithcoobjectsandcoordinatescoobjects'operation.Commonly,coobjectsarecomposedbyoneinstanceofeachcomponentandworkasithasbeendescribed.However,wehavedefinedatwo-versioncapsulethatallowsprogrammerstoimplementcoobjectsthatmaintaintwodataversionsrelyingoncommonobjectclasses.Usuallyoneversionstoresthecommittedstate(resultoftheexecutionofallstableupdatesandtheotherstoresatentativestate(reflectingallknownupdates.Inthenextsection,wepresenttheexampleofaschedulerapplicationthatusesthiscapsuletoallowuserstoobserveboththetentativeandcommittedappointmentsthisbehaviorhasbeenidentifiedasinterestingforapplicationsthatusereplicateddatainlarge-scalesettingsthatincludemobilecomputers[7].
Thetwo-versioncapsulecontainstwodatacomponents,twoawarenesscomponentsandtwoconcurrencycontrolcomponents.Eachdatacomponentstoresadifferentversionofthedata.Theseversionsareeasilymaintainedexecutingthestoredupdatesresortingondifferentconcurrencycontrolpolicies-thecommitted(tentativeversionisobtainedusingapessimistic(optimisticstrategy.Thetwoawarenesscomponentsallowprogrammerstohandlestableandunstableawarenessinformationindifferentways.
"Attributes"component

Figure2–DOORSopenobjectframework.
Inclients,applicationsmanipulatecoobjectsusingthemethodsdefinedinthedatacomponent.Updatesperformedaretransparentlylogged(inthelogandexecuted.Whentheuserdecidestosaveherchanges,thesystemextractsthesequencesofupdatesperformedfromthelog,andlaterpropagatestheseupdatestoaserver.
Inservers,theupdatesreceivedfromclientsandfromotherserversarestoredinthelogduringepidemicsessionsthesestoredupdatesarepropagatedamongreplicas.Theconcurrencycontrolcomponentisresponsibleforexecutingloggedupdatesaccordingtothedefinedstrategy.Whenanupdateisexecutedsomeawarenessinformationmaybeproduced:thisinformationishandledbytheawarenesscomponent.Next,wewilldetailthecomponentsoftheDOORSopenobjectframeworkandpresentsomepre-definedbasesolutions.
Capsule
The"attributes"componentisusedtostoregeneral-purposeinformationrelativetothecoobject,suchascreationandmodificationdates,owner,etc.Italsostoresmeta-informationaboutthecoobjectstateandthereplicationprocess,suchassummaries(timevectorsofreceived,executed,discardedanddeliveredupdates[20].Twobaseimplementationsareavailable:asimpleandanextendedone.Theextendedimplementationmaintainsadditionalinformationaboutaprimaryreplicaanddefinesmethodstomodifyit.Thisinformationcanbeusedbyothercomponentsintheiroperation-e.g.concurrencycontrolmechanismsbasedonasequencerusethisinformation(seeconcurrencycontrolcomponent”fordetails.Thesebaseclassesmaybeextendedtodefinetype-specificattributes.
Logcomponent
Awareness
Attributes
Data
Log
Thelogcomponentstorestheupdatesperformedbyusers.Inclients,theseupdatesaretemporarilyloggeduntiltheyarerequestedbythesystem(whentheusersaveshischangestobepropagatedtoaserver.Inservers,updatesarepermanentlystored(untiltheyarediscardedandtheyarepropagatedduringepidemicsynchronizationsessions.Thelogadds,toeachsequenceofupdates,thenecessaryinformationtoorderthemandtotracetheirdependencies,i.e.,toidentifythemultiplestreamsofactivity.
Twobaseimplementationsareavailable:asimpleoneandanextendedone.Theextendedoneshouldbeusedwithconcurrencycontrolcomponentsbasedonasequencer(see
5

detailsinthenextsubsection.Thesequenceofupdatesproducedinclientsisautomaticallycompressedifoperations'propertiesareavailable-e.g.ifmultipleconsecutiveupdates(performedinthesamesessionbythesameusersetanewvaluetothesamesectionofadocument,onlythelastupdateneedstoberecorded.
Concurrencycontrolcomponent
updatestobe(orderedandexecutediftheycanbepropagatedtothesequencerreplica(eveninthepresenceofmultiplepermanentlydisconnectedcomputers.
Bothtotalordercomponentspostponetheexecutionofupdatesuntiltheorderofupdatescanbepositivelyestablished.However,insomesituationsitispreferabletouseanoptimisticapproach-updatesareimmediatelyappliedassumingthatnopreviousupdatesareunknown.Thisallowsuserstoobservetheexpectedresultsfromallknownupdates.Subsequently,ifsomepreviousupdateisreceivedtheupdatesexecutedinthewrongorderareundoneandlaterredoneintheircorrectposition.Wehaveimplementedversionsoftheprevioustotalordercomponentsthatusethisundo-redooptimisticstrategy[13].Thesecondproblemistoguaranteethatusers'intentionsarerespectedwhenconcurrentstreamsofactivityaresynchronized.Totacklethisproblem,threemainapproacheshavebeenproposedinliterature.First,theuseoftransactions-anupdateiscommittedifdatavaluesareequaltothoseobservedbytheuser,otherwiseitisaborted.Thismodelistoorestrictivebecausethestrictidentityofvaluesisnotnecessaryinmanysituations-sometransactionscouldbeexecutedifdatahonorsaweakercondition.Moreover,theabortionofusers'contributionsisnotusuallyacceptableinasynchronousgroupwarewherecontributionsmayrepresentlargeamountsofwork(insynchronousgroupwareseveralsystemshaveusedthisapproachsuccessfully-e.g.[22].Second,updatesaretransformedtakingintoconsiderationtheupdatesexecutedafterthestateobservedbytheuser[24].Third,semanticinformationisusedinsynchronization[7,12].Althoughwehaveextendedtheoptimisticstability-basedtotalordercomponenttoexecuteupdatetransformations(thatmustbespecifiedbyprogrammers,weexpectthatmostapplicationswillrelyonsemanticinformationtoguaranteethefulfillmentofusers'intentions.Asupdatesareappliedinserversexecutingcoobjects'methods,itispossibletoexpresstheexpectedsemanticsinthecodeofoperations-preandpost-conditionscanbecheckedandalternativeactionsmaybeexecuteddependingonthestateofthecoobject(seethenextsectionforexamples.
Awarenesscomponent
Theconcurrencycontrolcomponentisresponsibleforexecutingtheupdatesstoredinthelog.Inclients,interceptedupdatesareusuallyimmediatelyexecutedtoallowuserstoobservetheexpectedresultsfromtheiractions.Inservers,multiplestrategiesmaybeusedtosynchronizetheconcurrentstreamsofactivitydependingonthesemanticsoftheshareddata-type.Twointer-relatedproblemsmustbetakenintoconsideration:howtoguaranteethatalldatareplicasevolveasexpectedandhowtoguaranteethatusers'intentionsarerespected.
Thefirstproblemcanbehandledconstrainingtheexecutionorderofupdates.Forexample,executingall(deterministicupdatesbythesameorderinallreplicasleadsallreplicastothesamestate.However,asdifferentreplicasmayhavereceiveddifferentsubsetsofupdates,itisusuallynecessarytopostponetheexecutionofsomeupdatestoguaranteethatproperty.Insomeapplicationsitisnotnecessarytoachieveexactlythesamestateorduetosemanticpropertiesitispossibletorelyonweakerorderingstoachievethesamestate.Wehaveimplementedseveralcomponentswithdifferentpolicies(inthenextsectionwepresentexamplesoftheirusage.
Thenoordercomponentexecutesupdatesassoonastheyarereceivedforthefirsttime-therefore,differentreplicasmayapplythesameupdatesinadifferentorder.Thecausalordercomponentexecutesupdatesinacausalorder(whenauserperformsanewupdate,heobservesacoobjectstatethatreflectsagivensetofpreviousupdates-causalorderguaranteesthatthenewupdateisexecutedinallreplicasafterthatsetofupdates.DuetotheDOORSepidemicpropagationmodel,thisconstraintdoesnotusuallyimposeanydelayontheexecutionofupdates-therefore,replicasusuallyreflectallknownupdates.
Wehavealsoimplementedseveralcomponentsthatexecuteupdatesinthesameorderinallreplicasusingdifferenttechniques-allcomponentsrelyuniquelyininformationpropagatedduringnormalepidemicsessions.Thestability-basedtotalordercomponentimplementsafullydistributedalgorithmtoestablishthetotalorder(basedontheReplicatedStateMachinealgorithm,see[17].Asthisalgorithmreliesoninformationgatheredinallreplicas,apermanentlydisconnectedcomputermaypreventnewupdatesfrombeingexecuted.Thesequencer-basedtotalordercomponentusesareplicadesignatedassequencertoorderupdates.Theseupdatesareexecutedinallreplicasintheorderdefinedbythesequencer.Theidentityofthesequencermaybemodifiedusingthemethodsdefinedinthe"attributes"component.Thiscomponentallowsnew
6
Theawarenesscomponentisusedtohandletheawarenessinformationgeneratedintheexecutionofupdates.Twomainimplementationsareavailable.Thenotification-basedcomponentpropagatesinformationtousersusingtheirpreferredtransport-e-mailmessages,SMS/pagermessages,etc.Theshared-feedbackcomponentstorestheawarenessinformation,sothatitcanbepresentedtousersinapplications-e.g.amulti-usereditormaypresentthelogofupdates.Wehavealsoimplementedsomewrappersthatguaranteetheexpectedsemanticsdespitethemultipleconcurrencycontrolpolicies(e.g.awarenessinformationmaynotbepropagatedastheresultofunstableupdatesinoptimisticconcurrencycontrolstrategies,althoughupdates

areexecutedinallserversonlyonemessageispropagated,….
Inthefuture,weexpecttoprovideanenhancednotification-basedcomponentthatpropagatesinformationtousersthroughournewevent-disseminationarchitecture(see[6]forapreliminarydesign.Thisarchitecturewillallowuserstospecifythewayawarenessinformationispropagatedtothemselvesforexample,someusermayrequesttobeimmediatelynotifiedusingSMS/pagermessagesforimportantinformation,dailydigestsforinformationaboutactivitiesthatheisnotdirectlyinvolvedon,ande-mailforothermessages.
Datacomponent
EXPERIENCE
IntheprevioussectionswehavedescribedtheDOORSsystem.InthissectionwewillpresentsomeapplicationsthatillustratetheDOORSsupportforasynchronousgroupware.Inparticular,wewillfocusontheuseoftheDOORSobjectframeworktoeasethedevelopmentofnewapplications.TheapplicationspresentedinthissectionhaveusedaDOORSprototypeimplementedinJava1.2.TheDOORSpre-processorhasbeenimplementedusingtheJavaCCparsergenerator.
Scheduler
Thedatacomponentimplementsthedatatypebeingcreated,withitsassociatedstateandoperations.Itisimplementedasacommonclassthatispreprocessed,sothatupdatesperformedbyuserscanbetransparentlylogged.Wehaveimplementedsomebasecomponentsthatcanbeextendedtoeasilycreatedatatypeswithspecificapproaches.Thestructuredmulti-versioncomponentdefinesahierarchyofsub-objectsthatmayhavemultipleversions.Twotypesofoperationsareavailable:operationsthatmodifythesub-objectsandoperationsthatmanagethehierarchicorganization.Concurrentmodificationsofthesamesub-objectareautomaticallydetectedandsolvedcreatingmultipleversions-theinformationaddedtotheoperationsbythelogcomponentisusedtodetectconcurrentmodificationswithouttheneedforanyspecialconcurrencycontrolcomponent(asin[14,16].Programmersmaydefineautomaticmergeproceduresorletthisworktousers.Concurrentmodificationsofthehierarchicorganizationareautomaticallymergedinacoherentway.Thiscomponentissuitableforsituationswhereitisimpossibletoautomaticallysolveconflictsbutsyntacticconsistencymustbemaintainedtoenableuserstocontinuetheirwork(e.g.inastructureddocumenttwoversionsshouldbecreatedwhenthesamesectionisconcurrentlymodifiedbytwousers.Wehaveusedthiscomponenttoimplementseveralstructureddocuments(asitisdetailedinthenextsection.
Thedatabasesurrogatecomponentimplementsasurrogateofadatabase.ItprovidesbasicmethodstoqueryandupdatethedatabaseusingaJavaJDBC-likeinterface(i.e.queriesandupdatesmaybeperformedusingSQL.Toallowdifferentserverstoholdlocaldatareplicasusingdifferentdatabasesystems,onlySQLstandardstatementsmustbeused.Thiscomponentmaybeextendedtocreatenewdatatypesthatusetherelationaldatamodel-thesenewdatatypesshoulddefinehigh-leveloperationsthatusethosebasicmethods.Coobjectsthatusesuchdata-typesarestructuredasallothercoobjectsandrelyonthesameDOORSmechanisms(e.g.updatesarepropagatedandexecutedinallreplicasusingthecommonmechanism.Similarly,wehavealsodefinedafile-systemsurrogatethatallowsprogrammerstostoretheirdatainfiles.
Theschedulerapplicationenablesuserstomanageasharedcalendar.Thiscalendarmaybeusedtoschedulethereservationofasharedresource(e.g.meetingroomorasapersonaldatebookmanagedbymorethanoneperson(e.g.theownerandhissecretary.Inthisapplicationmultipleusersmayindependentlyrequestreservations,thusimposingahighdataavailabilityrequirement.Asonlyasinglereservationmaybegrantedforthesameperiodoftime,aglobalagreementmechanismmustbeusedtocommitrequestsanddecidepossibleconflicts.However,usersmustbeabletoobservenotonlycommittedrequestsbutalsothosethathavenotbeencommittedyet.Asthesetentativeupdatesrepresenttheexpectedstateofthesharedcalendar,usersshouldalsoavoidconflictswiththoseupdates.Toreducethelikelihoodofhavingrejectedrequests,usersmayprovidealternativeperiodsoftimefortheirrequests.Additionally,usersmaywanttobenotifiedwhentheresultsoftheirrequestsaredetermined.
TodevelopthisapplicationusingDOORSitwasnecessarytoimplementthesharedcalendarasanewcoobject(andthentoimplementtheapplicationthatmanipulatesthiscoobject.First,wehaveimplementedthecoobject'sdatacomponent-wehaveusedacommoncalendarclass,asitwouldbeimplementedforalocalapplication.Infigure3wepresentthemethodthatprocessesnewrequests.Asitcanbeseen,thismethodsequentiallychecksthepossibilitytoscheduletheappointmentinalternativeperiods.TheresultoftheoperationisreportedusingthemethodnewAwarenessMsg(anditwillbeprocessedbytheawarenesscomponent.
Next,thisdatacomponenthasbeencomposedwithsomepre-definedcomponentstocreatethesharedcalendarcoobject.Inthisapplicationwewantedtobeabletopresentthecommittedandtentativeupdatesusingdifferentcolors.InDOORS,wecanmaintaintwodataversionsusingnormaldataclassesrelyingonthetwo-versioncapsule.Thecommittedstateismaintainedexecutingthestoredupdatesbyapessimistictotalorder(e.g.thesequencer-basetotalorder-thereforeallreplicaswillexecuteallupdatesinthesameorder,thusdecidingpossibleconflictsinconcurrentlyperformedrequests.Thetentativestateismaintainedexecutingallotherupdatesbyanyordertoacopyofthecommittedstate(orexecutingupdatesbythecorrespondentoptimistictotalorder.Toprovidenotificationsofthefinal
7

resultofrequests,wehaveassociatedthenotification-basedawarenesscomponenttothecommitteddata(andawrappersothatasinglenotificationispropagatedforeachrequest.Withthetentativedataversionwehaveassociatedanullawarenesscomponent,sothatnonotificationispropagatedastheresultoftentativeupdates.Finally,wehavealsousedaloganda"attributes"components(theextendedversionsmustbeusedwiththesequencer-basedtotalorderconcurrencycontrol.
publicupdatevoidprocessRequest(RequestInforequest{for(inti=0;iif(availablePeriod(request.period[i]{
insertRequest(request,request.period[i];newAwarenessMsg(request.user,"Reservationconfirmedat"+
request.period[i]+"\nDetails:\n"+request.detailedInfo(;return;}}
newAwarenessMsg(request.user,
"Impossiblerequest.\nDetails:\n"+request.detailedInfo(;}
Figure4–Multi-usereditorwithaLaTeXdocument.TocreateashareddocumentcoobjectinDOORS,wehave
usedthestructuredmulti-versiondatacomponenttoautomaticallymanagethedocumentstructureandmulti-versioningofatomicdocumentelements.Thiscomponenthadtobeextendedtodefinetheallowedconfigurationofelementsandthetypeofatomicelements.Toguaranteethatallmodificationsinthestructureofashareddocumentareexecutedinthesamewayinallreplicaswehaveusedanoptimistictotalorderconcurrencycontrolcomponent.Thiscomponentguarantees,notonly,thattheshareddocumentreplicaswillconverge,butalsothatuserscanimmediatelyobserveallcontributionsperformedbyusers.
Wehaveusedtheshared-feedbackawarenesscomponenttostoreawarenessinformationaboutallupdatesperformed.Thisinformationisusedbytheeditorapplicationtoprovideshared-feedbackawarenessinformationtousers.Theshareddocumentcoobjecthasalsousedasimplecapsulecomponent,alogcomponentanda"attributes"component.Asoutlined,wehaveusedandextendedDOORSpre-definedcomponentstocreatemultipleshareddocumentcoobjects-data-managementproblemsrelatedwithdatasharingaremanagedbythepre-definedcomponents.
Musicalshareddatabase
Figure3–MethodprocessRequestforschedulercoobject.ThemethodnewAwarenessMsgisdefinedinthebasedatacomponentclassanditisasimpleredirectiontotheawarenesscomponent.The"update"
keywordisusedbytheDOORSpreprocessor.Asoutlined,thesharedcalendarcoobjectwasimplementedusingasimplecalendarclassandrelyingonseveralpre-definedcomponentstomanagethecomplexityassociatedwithdatasharingamongmultipleusers.HighdataavailabilityisprovidedbythecoreoftheDOORSsystem.
Multi-userdocumenteditor
Theeditorapplicationallowsuserstoproducestructureddocumentscollaboratively.Adocumentisahierarchicalcompositionoftwotypesofelements:containersandleaves.Containersaresequencesofothercontainersand/orleaves.Leavesrepresentatomicunitsofdatathatmayhavemultipleversionsandthatmaybeofdifferenttypes.Infigure4,wepresentanexampleofaLaTeXdocument.Usersareallowedtochangethesamedocumentindependentlyandthesystemmustmanagethesechanges.Iftwousersmodifythesameatomicelement,twoversionsofthatelementshouldbecreated,thusmaintainingsyntacticconsistency-thesystemcannotdecidewhichversionisthebestoneandnoworkshouldbediscardedbythesystem.Usersshouldmergebothversionslater.Concurrentmodificationsofthedocumentstructureshouldbemergedapplyingbothmodificationsinthesamewayinallreplicas-forexample,iftwousersareaddinganewsectiontheyareprobablyaddingdifferentsections.Additionally,theapplicationshouldprovideawarenessinformationtouserspresentingthemodificationsperformedbyotherusers.
8
Themusicalshareddatabaseisanapplicationthatmanagesinformationaboutmusic.Multipleusersareallowedtointroduceinformationaboutnewalbums,theirsongs,authors,producers,on-linepointers,etc.Associatedwitheachalbumthereisadiscussionboardwhereusersmayproducetheircommentsonthealbumandreplytopreviouscomments.Usersmayalsoclassifyalbumsregardingseveralcharacteristics.Additionally,usersmayrequesttobenotifiedwhenalbumswithspecificcharacteristicsareintroduced.Asusualindatabaseapplications,asetofpossiblequeriesisalsoprovidedtousers.
ThisapplicationhasbeendevelopedusingDOORStomanagedatadistribution-multipledatabasereplicasmaybedistributedindifferentcomputersandmaybeaccessedindependently(e.g.differentintranetsmayhavedifferent

databasereplicasthataresynchronizedduringe-mail-basedepidemicsessions,aportablecomputermayholdareplica,etc.Thedatacomponenthasbeenimplementedextendingthedatabasesurrogate-application-leveloperations(suchasinsertanewalbumandinsertacommenthavebeendefinedusingbasicSQLstatements.Thecausalorderconcurrencycontrolcomponenthasbeenusedtoguaranteethatthedependenciesamongoperationsarerespected(e.g.repliesarealwayspostedaftertheoriginalcomments-thispropertyissufficientinthiscase.Thiscoobjectreliesonthenotification-basedawarenesscomponenttoimplementnotificationstousers.Asusual,aloganda"attributes"componentshavebeenused.
RELATEDWORK
However,theseapplicationsmustdefinehigh-leveloperationsinJavausingaJDBC-likeinterface,whileBayouapplicationsmayuseahigher-levelmechanism(basedonTCL.Third,theDOORSobjectframeworkallowsthereuseofdifferentstrategies(suchasupdatetransformations-thissituationmayallowbetterandsimplersolutionsforsomeapplications,withoutimposingadditionalcomplexityforprogrammers.
Severalgroupwaresystemsarebasedonatraditionalclient/serverarchitecture.Sync[18],aframeworkformobilecollaborativeapplications,presentsamodelofconcurrentupdatemergingbasedonthedefinitionofmergematrixes.Thesematrixesdefinetheoperationsthatmustbeexecutedintheserverandinclientsforeachpairofoperations.TheProsperotoolkit[5]presentsamodelfordatamanagementbasedonthesynchronizationofdivergentstreamsofactivity-divergencemaybeconstrainedusingpromisesandguarantees(anextensionoflocks.Itallowstype-specificcustomizationthroughitsopenimplementation(e.g.synchronizationproceduresmayberedefined.However,thelackofserverreplicationmakesthesesystemslesssuitableforlarge-scalesettings.Additionally,theydonotpresentintegratedawarenesssupport(e.g.nomechanismisdefinedtonotifyusersoftheresultoftheiraction-adesirablecharacteristicinsomeapplicationsdesignedformobileenvironments.
Sharedworkspacesystems(suchasBSCW[10]allowmultipleuserstoshareacommonworkspacewheretheycanstoredocuments.Theyusuallyusesimpleconcurrencycontrolmechanismsbasedonlocking(check-in/check-outorversionmanagement.Webelievethatitisoftenpossibleanddesirabletoautomaticallymergeconcurrentupdates.Awarenessinformationisusuallypull-based(usersmustlogtothesystemandpollfornewinformation.
CONCLUDINGREMARKS
Severalsystemshavebeendesignedtomanagedatainlarge-scaledistributedenvironments.Notably,databasesystemsusuallyrelyontransactionstomanageconcurrencycontrol.However,aswehavealreadydiscussed,webelievethattransactionsaretoorestrictiveforasynchronousgroupware.Distributedfilesystems,suchasCoda[14],supportdatasharingamongdistributedanddisconnectedusers.Codasupportsautomaticconflictdetectionandresolutionrelyingonapplication-definedprogramstomergemultiplefileversions.Astheseprogramshavenoinformationaboutexecutedoperations,theirtaskisdifficultandsometimesimpossible.Thisisnotaprobleminthetargetedenvironmentwhereconflictsareexpectedtobetheexception-howeverthisproblemisimportantforgeneralgroupwaresupport.
LotusNotes[16]isareplicateddocumentdatabasebasedonepidemicupdatepropagation.Documentshavearecord-likestructurecomposedbytypedfieldsdefinedinforms.Notespropagatesfieldvalues,handlingconcurrentupdatesbythecreationofmultiplefieldversionsthatmustbemanuallymerged.Althoughthisapproachissuitableinsomecircumstances,automaticmergingofconcurrentstreamsofactivityisoftenpossibleanddesirable.
Bayou[7]isareplicateddatabasesystembasedonepidemicoperation-basedupdatepropagation.Bayouupdates(writesincludeinformationtoallowgenericautomaticconflictdetectionandresolutionthroughdependencychecksandmergeprocedures.Bayoudatapresentstwovalues:tentativeandcommitted.Aprimaryreplicaschemeisusedtofastenupdatecommitment.Thissetofdatamanagementcharacteristicsisinterestingformanycollaborativeapplications,aswehavealreadydiscussedwhenwehavepresentedsimilarDOORSfeatures.DOORSdiffersfromBayouinthreemainaspects.First,DOORSincludesintegratedawarenesssupportaboutdataevolution,whichisimportantformanyasynchronousgroupwareapplications.Second,asDOORSallowsspecificdatatypesdefinitionitdoesnotimposedatatofittherelationalmodel(asinBayou.DOORSalsoallowstheimplementationofapplicationsthatusetherelationaldatamodelextendingthedatabasesurrogatedatacomponent.
TheDOORSreplicatedobjectstoreprovidesdatamanagementsupportforasynchronousgroupware.Asynchronouscollaborativeapplications,asillustratedintheapplicationsreportedinthispaper,requirehigh(readandwritedataavailabilitytomaximizetheopportunityforcollaborationamongusers-usersperformtheircontributionsmodifyingsharedinformation.Tothisend,DOORScombinesserverreplicationandclientcachingtoprovidehighdataavailabilityinadistributedenvironmentthatincludesmobilecomputers.WhileDOORSsharesgoalsandapproacheswithseveralothersystems,italsostressesseveraldifferentdirectionsthatlookverypromisingaccordingtoourexperience.
First,DOORSisfullybuiltaroundthenotionofoperation-basedupdatepropagation.Thisapproachmaximizestheflexibilityinthesynchronizationofdivergentstreamsofactivityrelyingonbothdatatypeandoperationsemanticinformation.Accordingtoourexperience,thisflexibilityisessentialtocreatespeciallytailoredsolutions.
9

Second,DOORSprovidesintegratedsupportforhandlingawarenessinformationthatisgeneratedintheexecutionofoperationsduringthesynchronizationprocess.
Third,theDOORSsystemcoreisalmostrestrictedtothecommonfunctionsofdatamanagement:propagateupdatesbetweenclientsandserversandamongservers.DOORSdelegatesoncoobjectsmostoftheaspectsrelatedwiththemanagementofdatasharing,suchasconcurrencycontrol,handlingofawarenessinformation,etc.Additionally,DOORSdefinesanobjectframeworkthatdecomposescoobject“operation”inseveralcomponentsthathandlethosedifferentaspects.Thisframeworkeasesapplicationdevelopmentallowingprogrammerstocreatenewdatatypesrelyingonseveralpre-definedsolutionstoorganizedata,tomanageconcurrencycontrol,tohandleawarenessinformation,etc.-theapplicationsreportedinthispaperillustrateitsuse.Duetothismodelandtotheopenimplementationoftheobjectframework,DOORSprovidesthenecessaryflexibilitytomanagedifferentcollaborativeapplications.
Someproblemsalsoneedmoreattentionandfurtherresearch.First,weintendtoenhanceoursupportforsmallmobiledevicesintroducingsupportforpartialreplicationandadequatemechanismstohandlevariableconnectivity.Second,weintendtoresearchmoreadvancedtoolstosupportourcomponent-basedobjectframework.Third,weintendtopursueourresearchintheevent-disseminationarchitectureanduseittopropagateawarenessinformation.MoreinformationabouttheDAgoraproject(includingDOORSisavailablefrom[1].
Acknowledgments
Wewouldliketothankourstudentsforhelpfulfeedbackonthesystemandforsupportinguswiththeimplementationofseveralapplications(inparticular,wewouldliketothankInêsVicenteandFilipeLeitãofortheimplementationofthemusicalshareddatabase.
REFERENCES
1.DAgoraprojecthomepage-http://dagora.di.fct.unl.pt2.Demers,A.,Green,D.,Hauser,C.,Irish,W.,Larson,J.,Shenker,S.,Sturgis,H.,Swinehart,D.,Terry,D.EpidemicAlgorithmsforReplicatedDatabaseMaintenance.OperatingSystemsReview,22(1,1988.3.Domingos,H.,Preguiça,N.,LegatheauxMartins,J.CoordinationandAwarenessSupportforAdaptiveCSCWSessions.InProceedingsofCRIWG’98,1998.4.Dourish,P.,Bellori,V.AwarenessandCoordinationinSharedWorkspaces.InProceedingsofCSCW'92,1992.5.Dourish,P.UsingMetalevelTechniquesinaFlexibleToolkitforCSCWApplications.ACMTransactionsonComputer-HumanInteraction,June1998.
6.Duarte,S.,LegatheauxMartins,J.,Domingos,H.,Preguiça,N.DEEDS-AnEventDisseminationServiceforMobileandStationarySystems.InActasdoEncontroPortuguêsdeComputaçãoMóvel,1999.
10
7.Edwards,W.,Mynatt,E.,Petersen,K.,Spreitzer,M.,Terry,D.,Theimer,M.DesigningandImplementingAsynchronousCollaborativeApplicationswithBayou.InProceedingsofUIST'97,Oct.1997.
8.Ellis,C.,Gibbs,S.,Rein,G.Groupware:SomeIssuesandExperiences.Commun.ACM34(1,1991.
9.Gray,J.,Helland,P.,O'Neil,P.,Shasha,D.TheDangersofReplicationandaSolution.InProceedingsofSIGMOD'96,1996.
10.Horstmann,T.,Bentley,R.DistributedAuthoringontheWebwiththeBSCWSharedWorkspaceSystem.ACMStandardsView,Mar.1997.
11.Hull,R.,Llirbat,F.,Simon,E.,Su,J.,Dong,G.,Kumar,B,Zhou,G.DeclarativeWorkflowsthatSupportEasyModificationandDynamicBrowsing.InProceedingsofWACC'99,1999.
12.Joseph,A.,deLespinasse,A.,Tauber,J.,Gifford,D.,Kaashoek,M.Rover:AToolkitforMobileInformationAccess.InProceedingsof15thSOSP,Dec.1995.
13.Karsenty,A.,Beaudouin-Lafon,M.AnAlgorithmforDistributedGroupwareApplications.InProceedingsof13thICDCS,May1993.
14.Kistler,J.,Satyanarayanan,M.DisconnectedOperationintheCodaFileSystem.ACMTransactionsonComputerSystems,Feb.1992.
15.Koch,M.DesignIssuesandModelforaDistributedMulti-userEditor.ComputerSupportedCooperativeWork–AnInternationalJournal,3(3-4,1995.16.LotusNotes.http://www.lotus.com
17.Lynch,N.DistributedAlgorithms.MorganKaufmannPublishers,Inc.,1996.
18.Munson,J.,Dewan,P.Sync:AJavaFrameworkforMobileCollaborativeApplications.IEEEComputer,June1997.
19.Pankoke-Babatz,U.,Syri,A.CollaborativeWorspacesforTimeDeferredElectronicCooperation.InProceedingsofGROUP'97,1997.
20.Preguiça,N.,LegatheauxMartins,J.,Domingos,H.,Simão,J.SystemSupportforLarge-ScaleCollaborativeApplications.TechnicalReport,TR-01-98DI-FCT-UNL,availablefrom[1].
21.Pitoura,E.,Samaras,G.DataManagementforMobileComputing.KluwerAcademicPublishers,1998.
22.Schuckmann,C.,Kirchner,L.,Schümmer,J.,Haake,J.DesigningObject-OrientedSynchronousGroupwarewithCOAST.InProceedingsofCSCW'96,1996.
23.Simão,J.,Preguiça,N.,Domingos,H.,LegatheauxMartins,J.DAgora:AFlexible,ScalableandReliableObject-OrientedGroupwarePlatform.InProceedingsofECSCW’97OOGPWorkshop,1997,availablefrom[1].24.Sun,C.,Ellis,C.OperationalTransformationinReal-timeGroupEditors:Issues,Algorithms,andAchievements.InProoceedingsofCSCW'98,1998.

本文来源:https://www.2haoxitong.net/k/doc/02678a758e9951e79b892712.html

《Data management support for asynchronous groupware.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式