outcomewisediskcleaner

wisediskcleaner  时间:2021-04-01  阅读:()
ABSTRACTTraditionally,designersorganizesoftwaresystemasactiveend-points(e.
g.
applications)linkedbypassiveinfrastruc-tures(e.
g.
networks).
Increasingly,however,networksandinfrastructuresarebecomingactivecomponentsthatcontrib-utedirectlytoapplicationbehavior.
Amongstthevariousproblemsthatthispresentsisthequestionofhowsuchactiveinfrastructuresshouldbeprogrammed.
WehavebeendevelopinganactivedocumentmanagementsystemcalledPlacelessDocuments.
Itsprogrammingmodelisorganizedintermsofpropertiesthatactivelycontributetothefunctionalityandbehaviorofthedocumentstowhichtheyareattached.
Thispaperdiscussesactivepropertiesandtheiruseasaprogrammingmodelforactiveinfrastructures.
Wehavefoundthatactivepropertiesenablethecreationofpersistent,autonomousactiveentitiesindocumentsystems,independentofspecificrepositoriesandapplications,butpresentchallengesformanagingproblemsofcomposition.
Keywords:Activeproperties,documentmanagement,com-ponentsoftware,customization.
INTRODUCTIONAscomputersystemsbecomemorepowerfulandnetworkbandwidthandcapacityincreases,newmodelsareemergingforthedevelopmentofinfrastructuretechnologies.
Oneoftheseiswhatwecall"activeinfrastructures.
"Traditionalapproacheshavetypicallyconcentratedcompu-tationalpowerinfixedlocations.
So,forexample,themainframeapproachconcentratescomputingpowerinonelarge,centralizedsystem.
Client/servercomputingdistrib-utesitbetweentwopoints,butregardsthechannelbetweenthosepoints–thenetworkorinfrastructurethatconnectsthem–asastaticchannel.
Activeinfrastructureapproachesexploretheopportunitiestodevolvesomecomputationintotheinfrastructureitself.
Inthismodel,applicationsemanticscanmigrateintoinfrastructure,whichitselfbecomesanactiveentitythatcanspecializeitselftotheneedsofdifferentapplications.
Activeinfrastructureshavebeenexploredinarangeofdomains.
Forexample,theBayoudistributeddata-basesystemallowsdatabaseupdatestocarrywiththemproceduresthatcanresolveconflictsthatareencounteredastheymovethroughthenetwork[24];oragain,activenet-workingallowscodetobe"injected"intothenetworksothatroutersandothernetworkcomponentscanbespecializedtotheneedsofdifferentapplications[27].
Activeinfrastructureapproachesprovideanumberofadvantages.
Theyprovideapplicationswithspecializedinfrastructurearrangementsprovidingcleanerimplementationmodels;theymakemoreefficientuseofinfrastructuresbyincorporatingspecializedfacilitiesratherthanworkingonlyintermsofgenericfea-tures;andtheyallowinfrastructurestoadapttovariationsinapplicationdemands.
Sinceactiveinfrastructuresareanewapproach,however,theyareunfamiliartoprogrammers,andarenotdirectlysup-portedbyconventionalprogrammingtools(bethose"conceptual"toolsorstandardsoftwaretools).
Asetofques-tionsarise,then,abouttheprogrammingmodelthroughwhichactiveinfrastructurescanbepresentedandcontrolled.
InthePlacelessDocumentsproject,wehavebeenexploringanactiveinfrastructureapproachtotheprovisionofdocu-mentanddocumentmanagementservices.
Ourapproachisbasedonadistributedinfrastructureinwhichactivitycanbedirectlyassociatedwithdocuments,ratherthanbeinglockedinsideapplicationsthatareinvokedtoprocessthosedocu-ments.
Bypushingactivityintotheinfrastructure,wecanmakeitindependentofparticularrepositoriesandapplica-tions,sothatuserscanorganizeactivityaroundtheirtasksratherthanaroundthedetailsofapplications.
ThePlacelessDocumentsdesignexplorescompositionalapproachestodocumentservicefunctionality,andnewrelationshipsbetweenapplications,infrastructures,andservices.
ResearchQuestionsOursystemisdesignedasaninfrastructureforinteractivedocumentapplications.
Activeinfrastructureapproachesarenormallyvisibleonlytosystemsprogrammers;theiruseattheapplicationlevelisrelativelynovel.
Thisopensuptwosetsofquestionsthatthispaperwilladdress.
Thefirstishowactiveinfrastructuresandtheextensibilitytechniquestheyintroducecanbeincorporatedintoaninter-activesystemmodel.
WhatsortofconceptualmodelcanbeAProgrammingModelforActiveDocumentsPaulDourish,W.
KeithEdwards,JonHowell,AnthonyLaMarca,JohnLamping,KarinPetersen,MichaelSalisbury,DougTerryandJimThorntonComputerScienceLaboratoryXeroxPaloAltoResearchCenter3333CoyoteHillRoadPaloAltoCA94304USApaul@dourish.
comofferedtoenduserstounderstandhowactivityisincorpo-ratedintotheinfrastructure,andhowcanthisbeincorporatedintoacomponentmodelthatallowsdifferentactivitiestobepresentatthesametimeThesecond(related)issueisthatoftheprogrammingmodelthatthesystemwillpresent.
Howcanwecombineinterac-tivesystemprogrammingwithactiveinfrastructuresWhatconsequencesdoesanactiveinfrastructureapproachholdforinteractivesystemdesignandhowcanthesedesignconcernsbemanifesttoprogrammersHowcantheactiveinfrastruc-tureapproachbeincorporatedintocurrentdesignpracticeInthispaper,wereflectontheexperiencesofdesigningthePlacelessDocumentsinfrastructureanddevelopingapplica-tionsontopofit.
Weexploretheprogrammingmodelthatwedevelopedandsomeofitsconsequences,andshowhowitwasexploitedinapplicationsthatweandothersdevel-oped.
Onthebasisoftheseexperiences,wedrawoutsomelessonsanddiscussourcurrentapproachtotheprovisionofactiveinfrastructureinfollow-onwork.
PROPERTY-BASEDDOCUMENTINFRASTRUCTUREThePlacelessDocumentssystemhasbeenindevelopmentsincelate1997.
Bythisstage,wehavegainedexperiencewithavarietyofprototypeimplementationsaswellasarangeofapplicationsofdifferentstyles,scopesandmodels.
ThenamePlacelessDocumentsreflectsthecoreofourunderlyingmotivations.
Mostinformationmanagementsys-temsemployhierarchiesasthedominantparadigmforinformationmanagement–filesanddirectories,emailmes-sagesandfolders,etc.
Hierarchiesareusedtoperformmultiplefunctions.
Theyareusedtopresentinformation;theyareusedtoretrieveinformation;theyareusedtostoreinformation;andtheyareusedtocontrolinformation.
So,forexample,whenIstoreadocumentinthefilesystem,Iputitatsomeparticularplaceinthefilesystemhierarchythatbothreflectssomefeaturesofthedocument(e.
g.
whenIputitinT:\home\papers\drafts\uist\placeless.
doc)andwhereIthinkIwillremembertolookforitagain;and,byputtingitincertainplaces(e.
g.
theMicrosoftWindows"briefcase"),Icontrolsomethingofhowthatdocumentbehaves.
Inourmodel,wewanttoseparatetheexpressionofdocu-mentfeaturesanddocumentcontrolfromthesystemof"places"thatthehierarchydescribes(hence,"Place-less").
Ouralternativemodelisbasedondocumentproperties.
Propertiesaredocumentmetadatatagsthatusersandappli-cationscanassociatewithdocuments.
TheyareimplementedasarbitrarypairsofstringnamesandJavaobjectvalues;theirvaluescanbeset,tested,retrievedandsearched.
Adoc-umentcanhavemanydifferentpropertiesassociatedwithit.
Weusepropertiestoencodeinformationthatisrelevanttotheusersofthedocuments(e.
g.
,thatadocumentisapaper,thatitisadraft,thatitisbeingpreparedforUIST,etc.
)aswellastoassociateapplicationinformationwithdocuments(e.
g.
thehistoryofapplicationactionsoverthatdocument).
Usersaddpropertiestodocumentseitherdirectlythroughdrag-and-dropinterfacessuchasthoseexploredinaprevi-ousUISTpaper[6],orindirectlythroughproperty-basedapplications[10,14].
ActivePropertiesWeintroducedthedocumentpropertymodelinapreviousUISTconference,whereweoutlinedthedevelopmentofourinitialprototype,calledPresto1[6].
Prestouseddocumentpropertiestoprovideapersistentassociativedocumentstoreforendusersandapplications,butinPrestothestorewasentirelystatic.
InthefullPlacelessDocumentssystem,thepropertystoreisusedasanactiveinfrastructurethroughtheadditionofactiveproperties.
LikeattributesinPresto,Placeless'activepropertiesincludebothanamecomponentandavaluecomponent.
However,activepropertiesincludeathirdcomponent–runnablecode.
Thiscodeisdesignedtoberuninsidetheinfrastructureinresponsetovariousactionsuponthedocument.
Byattachingactivepropertiestoadocument,userscanmakethedocu-mentresponsivetothesituationsinwhichitisused.
Sinceadocumentcanhaveanynumberofpropertiesattached,activepropertiesprovideuserswithcompositionalcontroloverdocumentbehaviour.
WhatsortofbehaviourscanusersachievethroughactivepropertiesActivepropertiescanensurethatdocumentareautomaticallybackedup,oraremaintainedconsistentlyinmultipleplaces(e.
g.
onalaptopandaserver).
Activeprop-ertiescantakefunctionalitynormallyassociatedwithspecificapplicationssuchasworkflow,formatorcontentconversionorspecialisedpresentation,andassociatethemdirectlywiththedocumentsothattheytravelwiththedocu-mentwhereveritgoes,asitisemailedaround,transferredbetweensystemsandsoon.
Activepropertiescanautomati-callydetectdocumentcontentchangesandimplementfeaturessuchasnotification,summarisation,orversioncon-trol.
Further,thesecanallbecontrolledcompositionally,availableoveralldocumentunderusercontrol.
WehavebuiltthePlacelessDocumentsinfrastructureanduseditextensively,exploringitsopportunitiesbybuildingproperty-basedapplicationsandfunctionalelementsinclud-ingthosedescribedabove.
Elsewhere,wedescribethetechnicalconcernsinextendingadocumentmanagementsystemtoincorporateactiveproperties,includingthedistri-butionandefficiencyissuesthatareinvolved[7].
Inthispaper,however,weareconcernedwiththeprogrammingmodelthatactivepropertiesoffer,andwiththewaysinwhichinfrastructureactivitycanbeencapsulatedandpro-videdtoapplicationdevelopers.
THEACTIVEPROPERTYPROGRAMMINGMODELThePlacelessDocumentsinfrastructureiswritteninJava.
Weprovideanumberofinterfacestointeroperatewithexist-ingapplicationinfrastructures.
Forinstance,weofferaccesstothePlacelessDocumentsrepositorythroughHTTP,sothatexistingwebclientscanoperatewithPlacelessDocu-ments;similarly,weprovideaccessthroughotherstandardInternetprotocolssuchasIMAPandFTP,andofferanNFSinterfacesothatfilesystem-basedclientscangainaccesstoPlacelesswithoutanyadaptation.
Newapplications,includ-1.
Prestousedtheterm"attribute"ratherthan"property,"butoth-erwiseitsmodelisasubsetofthepropertymodelinPlacelessDocuments.
ingnewservicestobewrittenasactiveproperties,aretypicallywritteninJava,usingcustomAPIs.
Theinfrastructureprovidestwosortsofactiveproperties,inlineactivepropertiesanddelegates.
InlineActivePropertiesThestandardformofactivepropertyisaninlineactiveprop-erty.
InlineactivepropertieschangedocumentbehaviourbyinterceptingandinsertingthemselvesintotheexecutionpathofdocumentoperationssuchasdeleteDocument,addProp-erty,readContent,andsoon.
Placelessprovidestwelveofthesecoreoperations.
Eachactivepropertycanbeassociatedwithanynumberoftheseoperations.
AnactivepropertythattransformscontentmightinsertitselfintotheexecutionpathofboththereadContentandwriteContentoperations,sothatitcantransformcon-tentsymmetrically;onethatlogsalldocumentactivitymightinsertitselfintotheexecutionpathofallthedocumentoperations.
CombiningActivePropertiesAdocumentcanhavemanyproperties,andsinceactivepropertiesactjustlikenormalproperties,itfollowsthatasingledocumentcanhavemultipleactiveproperties.
Sinceanyactivepropertycaninterceptanysetofdocumentopera-tions,itfollowsthatadocumentmighthavemorethanoneactivepropertyinterestedinaspecificoperation.
Forexam-ple,thesetPropertyoperationmightbeofinteresttotwodifferentactiveproperties:anaccesscontrolpropertythatwantstorestrictwriteaccesstothedocument,andaloggingactivepropertythatwantstomaintainahistoryofdocumentactivities.
Ourinfrastructure,then,mustprovidesomemech-anismforcontrollinghowtheseactivepropertiescombine.
Therearetwomechanismsthatcontrolpropertycombina-tion:propertyorderingandphasedexecution.
Inphasedexecution,thedispatchcycleforasingleoperationonadocumentisdividedintothreephases,calledtheverify,performandnotifyphases.
Conceptually,theverifyphasedeterminesthattheoperationisallowed;theperformphasecarriesouttheoperation;andthenotifyphasecarriesoutanypost-executioncleanupandnotifications.
Whenanactivepropertyinsertsitselfintotheexecutionpathforanopera-tion,itspecifieswhichphaseitshouldbeassociatedwith.
Althoughanactivepropertymayhavemanycodemethods,eachmethodisassociatedwithjustonephase.
Theoverallmodelisshowninfigure1.
Consideraspecificdocumentoperation.
AuserorapplicationhasinvokedtheaddPropertyoperationonadocument,toaddanewprop-ertytoit.
ThisoperationdispatchesintothePlacelessinfrastructure,wheretheactivepropertydispatchertakesover.
First,thedispatcherscanstheactivepropertiesattachedtothisdocumenttodeterminewhichhaveassoci-atedthemselveswiththeaddPropertyoperationintheverifyphase.
Thisresultsinasetofmethods,eachofwhichisdefinedtotakeasargumentsthesetofargumentsfortheaddPropertyoperation,andreturnabooleanvalue.
Eachofthesemethodsiscalledinturn.
Ifanyofthefunctionsreturnsfalse,thentheexecutionsequenceisterminatedandanexceptionisthrowntothecallingapplication,informingitthatanactivepropertyhasdeclinedtheoperation.
Other-wise,thedispatcheradvancestotheperformphase.
Again,eachpropertyisexaminedinturn,thistimeforper-formermethods.
TheaddPropertyoperationdoesnotsupportperformers,butforthoseoperationsthatdo,theper-formermethodsmayaddfunctionalitythatalterstheeffectoftheoriginaloperationanditsreturnvalueifthereisone.
Theinterfacesarearrangedsothateachperform-phaseprop-ertyhasaccesstotheresultcomputed"sofar"bytheotherperformersonthesamedocument.
Forexample,anoutputstreamforwritingthedocumentcontentwillbebuiltsothateachinterposingactivepropertymayalterthecontentasitflowsdownthestream.
Finally,thedispatcheradvancestothenotifyphase.
Again,theactivepropertiesthathaveregisteredthemselvesforthenotifyphaseofthesetPropertyoperationarecalledinturn.
Notifymethodshavenoreturnvalue;theyareentirelyinde-pendentofeachother.
Oncetheyhaveallbeenexecuted,thereturnvaluecomputedduringtheperformphaseisretrievedandreturnedastheoutcomeoftheoperation.
Phasedexecutionallowsustocontrolsomeoftheeffectsofcombiningproperties,byallowingprogrammerstoassociateproperty1property2verifiersperformersnotifiersTable1:OperationsandtheirActivePropertiesVerifyPerformNotifyAddProperty-DeleteProperty-AddMember-GetMembersRemoveMember-GetPropertyValue-SetPropertyValue-SetQueryDeleteDocument-ReadContentWriteContentCloseOutputStream--GetDelegateFor-Figure1:Phasedexecutionofactivepropertycode.
themwithspecificphasesofexecution.
However,thereareotherelementsofpropertyinteraction,particularlyinthecaseofsideeffects.
Wewilldiscussthese,alongwiththepropertyorderingmechanism,inmoredetailafterlayingoutthefullprogrammingmodel.
WritingActivePropertiesActivepropertywriterscreateaJavaclassthatimplementstheActivePropertyinterface.
Thisinterfacerequiressomestandardmethodsforinitializingtheactivepropertyobjectitself.
Inaddition,thisclasswillimplementanumberofotherinterfaces.
Theseinterfacesdescribetheoperationsthattheactivepropertywillintercept.
Forexample,theclassforanactivepropertythatwantstointercepttheverifyphaseofthesetPropertyValueoperationandthenotifierphaseofthewriteContentoperationwillimplementtheinterfacesSetPropertyValueVerifierandWriteContentNotifier.
Table1showsthesetofavailableinterfacesthatanactivepropertywritercanuse.
Eachinterfacedefinesthemethodsthatwillbecalledbythedispatchengineattherelevantpointinthedispatchcycle.
Byprovidinginlineactivepropertiesthatinterceptandredi-rectdocumentoperations,programmersgiveenduserscontrolovertheinteractivebehavioroftheirdocuments.
Sinceactivepropertiescanbeaddedtodocumentsatanypointintheirlifecycle,thiscontrolcanbeexertedatanymomentandcontinuallyrevised.
Fromtheprogrammer'sperspective,codecanbeincorporatedautomaticallyandtransparentlywithnopriorknowledgeonthepartofthedoc-umentorapplicationdevelopers.
DelegatesThesecondsortofactivepropertyinthePlacelesssystemisthedelegate.
Whileinlineactivepropertiesinsertthemselvesintotheexecutionpathofexistingoperations,delegatesextendtheAPIofthedocumentstowhichtheyareattached,providingnewfunctionalityandnewcallpaths.
Conceptually,adelegateisanobjectwhichstandsforthedocumentwithrespecttosomeoperation(infact,withrespecttoaJavainterface).
Ifanapplicationwantstomakeuseofapotentialdocumentinterfaceextensionforaspecificdocument,thenitmakesacallonthedocumentobject,requestingadelegatethatimplementstheinterface.
Thedoc-umentreturnsadelegatethatimplementstherequestedinterface,andthatstandsforthedocumentforthepurposesofthatinterface.
Forexample,thereisnoBackupoperationdefinedinthestandarddocumentoperations.
However,abackupapplicationmightcallamethodonadocumenttorequestadelegatethatimplementstheBackupableDocumentinterface.
Ifthedocumentiscapableofprovidingone,itreturnsanobjectthatimplementsthatinterface;callingthemethodgetLastBackupTime()onthedelegatewouldreportwhenthatdocumentwaslastbackedup,andcallingbackup()onitwouldplaceacopyofthedocumentonastablebackupmedium.
Therearethreeimportantfeaturestonoteconcerningtheprogrammingmodelofferedbydelegates.
Thefirstisthat,whiletheexecutionofinlineactiveproper-tiesiscarriedoutinthePlacelessinfrastructure,theexecutionofdelegatesiscarriedoutintheapplication.
Thatis,thedelegateobjectisreturnedtotheapplicationandbecomespartoftheapplication'saddressspace,withtheapplicationincontrolofwhenthemethodsonthatobjectareinvoked.
Incontrast,inlineactivepropertiesareexecutedasapartofthenormalexecutionofthesystem,andsomustruninthePlacelessDocumentscoresincetheymustoperateacrossallapplications.
Thesecondfeatureisthatdelegatesrequirecoordinationbetweenthedocumentandtheapplication.
Delegatesareonlyprovidedwhenanapplicationknowstoaskforthem,andknowswhatinterfaceisrequired.
Delegatesdonotbecomeactiveforunspecializedapplications.
Thethirdimportantfeatureofdelegatesisthattheyareatype-safeextensionmechanism.
Applicationsrequestadele-gatespecifyingaspecificJavainterface.
Thedelegatethatisreturnedisaninstanceofaclassthatimplementsthatinter-face,andiscasttotheinterfacetype.
Callsuponthatinterfacecanthenbemadedirectly,andcanbetype-checkedbytheJavacompiler.
Incontrasttootherextensionmecha-nismsthatmightrelyontheuseoffeaturessuchasreflectiontomapstringsintomethodnames,thisapproachcanexploitthelanguage'stypesystem.
ImplementingDelegatesusingInlineActivePropertiesAlthoughwehavecontrasteddelegateswithinlineproper-tieshere,inlineactivepropertiesareinfactthemechanismbywhichdelegatesareassociatedwithdocuments.
OneofthebasicdocumentoperationsthataninlineactivepropertycanspecializeiscalledgetDelegateFor().
ThismethodtakesaJavainterfaceasitsargumentandreturnsanobjectthatimplementsthatinterfaceasaresult.
So,apro-grammerwishingtocreatetheBackupdelegatewouldcreatetwoclasses.
ThefirstclassisanimplementationoftheBackupinterface,andperformsthespecializedbackupoper-ations.
ThesecondclassisanactivepropertythatspecializesthegetDelegateFor()methodandreturnsaninstanceoftheimplementationclasswhenitdeterminesthattherelevantinterfaceisbeingrequested.
Oneofourdesignissuesishowasinglemodelsupportsbothprogrammingandend-userinteraction.
Usinginlineactivepropertiestoimplementdelegatesallowsuserstoextenddocumentbehaviorsthroughthesamemechanism–attach-ingpropertiestodocuments–thattheyusetoperformallothercustomizationsofthesystem.
DelegatesandObject-OrientedDelegationDelegationisatechniquethathasalreadybeenusedtogreateffectinobject-orientedprogrammingsystems.
Infact,pro-totype-basedobjectsystemsoftenemploydelegationasameanstoachievethesameeffectsthatcanbeachievedusinginheritanceinclass-basedsystems[21].
Ouruseofdelega-tionissimilar,butweusetheterminwaysthatdonotmatchtheconventionalstructureofobject-orienteddelegation.
InanOOdelegationsystem,amessagesenttooneobjectmaybe"delegated"orredirectedtoasecondobject,whichwillexecutethemethodassociatedwiththatmessageonbehalfofthefirstobject(orfurtherdelegateit).
Theresultofthismethodinvocationwillbereturnedtotheobjectthatorigi-nallysentthemessage.
Thiscanbeseentobestructurallyequivalenttomethodinheritance;imaginethat,bydelegat-ingthemessage,thefirstobjectseemstoinheritfromthesecondobjecttheabilitytorespondtothemessage.
Ouruseoftheterm"delegate"differsfromthismodelinthreeways.
First,ourdelegatesareexplicitlyvisibletotheapplication;wedonotautomaticallydelegateonmessagesends.
Second,wedelegate"downwards"ratherthan"upwards.
"Inourmodel,agenericobject(adocument)pro-videsamorespecializedobject(thedelegate)whichwillrespondtoasetofmessagesonitsbehalf.
Third,thedelegatedoesnotappearto"subclass"thedocumentbecauseitdoesnot,itself,implementtheDocumentinterface;instead,itimplementsonlytheinterfacespecifiedbytheapplication.
AlthoughthedifferencesfromOOPconventionsareconfus-ing,theseparationofthedelegatefunctionalityfromthedocumentfunctionalityprovidessomebenefitsinthedistrib-utedenvironmentofPlacelessprograms.
Inparticular,itmeansthatthedelegatecanbeshippedtootherprocessesorothernodeswithoutcreatingtheconfusionabouttheidentityofthedocumentthatmightresultfromtwo"document"objectsondifferentmachines.
ACTIVEPROPERTIESANDINTERACTIVEBEHAVIOURSOnefeatureofthePlacelessDocumentssystemanditsapproachtoactivedocumentsthatdistinguishesitfromear-lierexplorationsofactiveinfrastructuresisthatPlacelessisprimarilyaninfrastructureforinteractiveapplications.
Theinteractionaspectsofourmodelhavetwosetsofconsequences.
First,thecontrolthatactivepropertiesthemselvesofferoverdocumentbehaviorisinteractivecontrol.
Activepropertiescanbeadded,removedandcontrolledbyendusers.
Indeed,insomeofourbrowsers,activepropertiesareentitiesthatuserssimplydrag-and-dropinordertochangethebehaviorofdocuments.
Thismeansthattheproceduresbywhichactivepropertiescanbeassociatedwithdocumentsmustbebothsimpleandresponsive,thatactivepropertiesmustbeconsistentintheirinteractions,andthatactivepropertiesmustsupportarbitrarycompositions.
Strongerclass-basedapproaches,forexample,wouldnotsatisfytheserequirements.
Second,activepropertiesmayaffecttheinteractivebehaviorofdocuments.
Thisaffectsthestyleofdevelopment;sincedocumentsareinteractiveentities,activepropertiesmustsupportinteractiveresponsetimes.
Inaddition,activeprop-ertiesthemselvessometimesmanageotherinteractiveobjects,suchaswhenthey"decorate"documentinterfaceswithbuttonsandwidgetscorrespondingtocurrently-avail-ableactions.
Theinteractiverequirementsentailalightweightapproachtoactivepropertyprogramming,whichinturnsleadstoastyleofdevelopmentinvolvingmul-tipleinteractingactiveproperties(whichwewilldiscussinmoredetailinthediscussionofProgrammingIssues).
EXAMPLESOFACTIVEPROPERTIESActivepropertiesprovideaflexibleinfrastructureforassoci-atingbehaviorwithdocuments.
Tomakesomeofthisdiscussionmoreconcrete,wewillbrieflydescribesomeoftheapplicationswehavedevelopedusingactiveproperties,andthengoontoexploresomeoftheissuesthatariseinusingactivepropertiesasaprogrammingmodelforactivedocuments.
WorkflowOneseriesofdevelopmentsconcernedtheprovisionofworkflowanddocumentmanagementservicesviaactiveproperties[5,14].
Providingworkflowinthiswaymigratesitintotheinfrastructure,andmakesitindependentofeitherspecificapplicationsorspecificrepositories.
Ourapproachcombinesbothinlineactivepropertiesanddel-egates.
Adelegateencapsulatesaworkflow-specificAPIthatallowsanapplicationtoexploretheprocessinstanceswithwhichadocumentisassociated,querytheirstate,progressadocumentfromonestatetoanother,associatenotificationsandsoforth.
Sinceitisprovidedthroughadel-egate,thisfunctionalitycanbehighlyspecializedbutisavailableonlytospecial-purposeapplicationsthatunder-standhowtocallonit.
Byusinganinlineactiveproperty,wecanconnectworkflowfunctionalitywithexistingapplica-tions.
Anactivepropertyisassociatedwiththereadandwriteoperationsforthedocument;itnoticeswhenthoseoperationsareperformedandpassesnotificationstothedel-egate,whichcananalyzethechangestothecontentandassociatethemwiththeworkflowprocess.
So,forexample,ifadocumentrepresentsaformwithcheckboxes,theactivepropertycannoticewhenthecheckboxeshavebeenselected,andthedelegatecancausethedocumenttobemovedtothenextstageoftheprocess,accordingly.
Ourimplementationusesaninternalworkflowenginetorep-resentandcontrolprocessinstances.
However,manycommercialworkflowsystemsareorganizedaccordingtothereferencemodeldevelopedbytheWorkflowManage-mentCoalitionandprovidenetwork-accessiblemechanismsthroughprotocolssuchasSWAP[22].
Asimplerwaytowriteourdelegatewouldbetomakeitaclientofsuchaser-vice.
Inthisway,wecoulduseactivepropertiestocoordinatedocumentactivitywithanexternalworkflowser-vice,butprovidethis"activation"independentofanyparticularapplicationthatendusersmightwanttouse.
DeliveringServicesTheideaofusingactivepropertiestocoordinatedocumentactionwithexternalmechanismssuchasworkflowleadstoavarietyofwaysinwhichactivepropertiescanbeusedtodeliverdocumentservices.
Obviousexamplesincludeformatconversion(e.
g.
fromMicrosoftWordtoPDF)andinterpolation(e.
ginlinerecod-ingofimagestoreducebandwidthrequirements[13]).
Wehavealsousedthesemechanismstoincorporatehigher-leveldocumentservicessuchascontentfiltering,summarizationandlanguagetranslation.
Deliveringservicessuchasthesethroughactivepropertiesofferstwoadvantagesoverconventionalapproaches,onetechnicalandoneinteractive.
Thetechnicaladvantageisthattheservicescanbeofferedindependentlyofapplicationorrepository.
Theserviceisdeliveredatapointbetweentherepositoryandtheapplication,andsoappliestoanycombi-nation.
Theinteractiveadvantageisthatenduserscancompositionallycontrolthedeploymentofservicesonadoc-umentbydocumentbasis.
Sincethefunctionalityappearstobeassociateddirectlywithdocuments,itmakessensetoallowuserstocontrolitbyactingdirectlyonthosedocu-ments,andso,notionally,controlthebehaviorofthedocumentsratherthanthatofanabstractservice.
VersioningFinally,wehavealsousedactivepropertiestoaugmenttheservicestraditionallyassociatedwithrepositories.
Forexam-ple,usingactiveproperties,wecanaddversioningtoarepositorythatdoesnototherwisesupportit.
Thereareanumberofimplicationsofaddingversioningviaactivepropertiesratherthanbuildingitdirectlyintotheinfrastructure.
Forinstance,sincethePlacelessinfrastructureisunawareofversioning,itprovidesnodirectsupportforthewayinwhichversioningmakesdocumentidentitymorecomplex.
Theinfrastructure,forexample,willnotbeabletorecognizethattwodifferentversionsareactuallythe"same"document.
Asecondconsequenceisthat,sinceversioningisaddedatthemiddlewarelevelratherthantherepositorylevel,wecan,infact,takeadvantageofunderlyingversion-ingfacilitieswhentheyareprovided.
Thisflexibilitycomesatacost;sincedifferentrepositoriesoftenhavedifferentver-sionsemantics,weneedtobeabletointerpretandinterpolatebetweenthem.
Theversioningpropertymaintainsachainofdocumentsthatareearlierversionsofthecurrentcontent.
Eachtimeauseropensthedocumentforwriting,acopyoftheoriginalcon-tentismadeandlinkedtothedocumentasan"earlier"version.
ThisisdonebyattachingtothedocumentanactivepropertythatinterceptsthegetOutputStream()operation,andhencenoticesallattemptstowritenewversionsofthecontent.
2Previousoperationscanberetrievedeitherbylookingdirectlyatthepropertiesthatlinkadocumenttopre-viousversions,orthroughadelegatepropertywhichaddsanAPIforreviewingandretrievingearlierversions.
PROGRAMMINGISSUESThePlacelessDocumentsinfrastructurefirstbecameopera-tionalduringthesummerof1998;sincethattimeithasbeenindailyuseandwehaverefinedandrevisedourcoredesignssignificantly.
Wehavealsogainedconsiderableexperiencewithactiveproperty-basedapplications,someofwhichwedevelopedourselves,andsomeofwhichhavebeendevel-opedbycolleagueselsewhereatPARC.
Avarietyofprogrammingissueshavearisenfromourexperiencesdevel-opingapplicationswithactiveproperties.
ProgrammingUsingStaticPropertiesBeforediscussingactiveproperties,weshouldfirstexplorehowsimplestaticpropertiesimpactprogrammingstyle.
Thecombinationoffreelyextensiblestaticpropertiesandfastquerymechanismsallowprogrammerstoexploitnewmodelsforstructuringtheirapplications.
Propertiesprovideconvenientassociativestorage.
Informa-tioncanbestoredalongsidethedocumentstowhichitapplies,andretrievedbyqueries.
Atthesametime,becausepropertyobjectsstorenotjustprimitivetypesbutarbitraryserializedJavaobjects,adocument'spropertiescanpointtootherdocuments,andsoon,allowingprogrammerstocreatecomplexdatastructuresassetsofrelateddocuments.
Havingadocumentstorethatcanbeusedasapersistentobjectstore,programmersintuitivelyadoptastyleinwhichdatastruc-turesaredistributedacrossdocuments,storedpersistently,andreconstitutedthroughqueriesoverthedocumentspace.
3Mostimportantly,sincepropertiesarecompositional,asingledocumentmayparticipateinmanydifferentapplica-tionsordatastructures.
Thecompositionaluseofstaticpropertiesismirroredintheuseofactiveproperties.
CreatingResponsiveDocumentsOnewayofinterpretingtheeffectofactivepropertiesistoconsiderthatoperationsthatwouldotherwisebefixedintheirconsequencescannowbemadeopenandflexible.
So,forexample,whereasreadingadocument'scontentfromdiskanddisplayingitinawindowisnormallyafixedoper-ationwithafixedimplementation,activepropertiesgiveusersanddocumentsindividualizedcontrolovertheseoper-ations.
Theresultisthatdocumentscanbemaderesponsivetothecontextsinwhichtheyareused.
Atrivialexampleisthatdocumentcontentcanbetransformedaccordingtothepersonwhoreadsitorthetimeatwhichitisread;similarly,otherdocumentoperationscanbemaderesponsivetothecontextsinwhichtheyarecarriedout.
Thisfacility,alongwiththeassociatingstoragefacilitiespro-videdbystaticproperties,makesPlacelessDocumentsanexcellentplatformforthedevelopmentofinteractiveappli-cationsthatexploitcontextualfactorssuchaslocationorparticipants[1,19].
Staticpropertiesencourageacontext-basedapproachinwhichdocumentsandobjectsareanno-tatedwithinformationthatreflectshowtheyhavebeenused,where,when,bywhom,etc.
;combinationsoftheseproper-tiescanserveasretrievalcuesorcanbeusedtoextractrelationshipsbetweendocumentsorapplicationobjects.
Usingstaticproperties,however,meansthatthesecontex-tualfeaturescanbeexploitedonlywhenspecificapplicationsarerunning.
Usingactiveproperties,contextdependencecanbemigratedintotheinfrastructure.
Thecon-textualbehaviorisassociateddirectlywiththedocumentsthemselves.
Thisisvaluablesinceexploitingcontextisakeyelementoftheubiquitousorpervasivecomputingprograms,andsorequiressupportattheinfrastructurelevelratherthaninapplicationspace.
Activepropertiesprovideanovelmeansformaking"passive"entitiesintoactiveelementsofaubiquitouscomputingenvironment.
Throughtheiractiveproperties,documentscanbemaderesponsivetodifferentaspectsoftheiruse.
Inadditiontobeingresponsivetothepersonwhoactsonthem,documentsmightalsobemade2.
Interceptingpropertyoperationsalsoallowsthepropertytokeeptrackofchangestothesetofpropertiesassociatedwiththedocu-ment,butwefocusoncontentoperationshere.
3.
Recognizingthisfeatureofanumberofearlyapplications,weprovidedspecializedsupportforitbydevelopingapackagethatallowedprogrammerstoreflectdocumentsasJavaBeansandviceversa.
responsivetootheraspectsofthecontextinwhichtheyareused;e.
g.
renderingthemselvesdifferentlyandwithdiffer-entinterfaceoptionsdependingontheviewingdevice,onthetimeofday,oratdifferentpointsinanorganizationalprocess[10].
CombiningInlineandDelegatePropertiesInourinitialproposalsforactivepropertyapplications,wefavoredinlineactiveproperties.
Weproposedtheuseofactivepropertiesfordocumentformattranscoding,formobiledocumentservices,forconfiguringthebehaviorofexternalapplicationsorservices,andforspecializingtheser-vicecharacteristicsoftheinfrastructuretoapplicationneeds.
Ourearlyapplicationdevelopmentexperiences,however,showedthepowerofdelegatesforexploringnewapplicationopportunities.
So,ourapplicationsemphasizedthewayinwhichuserscouldextendandaugmentdocumentbehaviorusingdelegateproperties.
Infact,thereisanimportantdualitybetweenthetwoformsofactiveproperties.
Inlineactivepropertiesinterceptdocu-mentoperations,whiledelegatesprovidenewfacilities.
Acommonactivepropertyidiomistoactuallyusebothsorts;useaninlinepropertytoobservethatsomeoperationhastakenplace,andthenactivateadelegatetorunsomenewdocumentbehaviorinresponse.
Theworkflowserviceisanexampleofthisidiom.
Thispairingreliesonanaturalsepa-rationof"new"codefrom"interposed"code.
Itcould,ofcourse,bewrittenasasingleactiveproperty,buttheuseoftwodifferentsortsofactivepropertyseemstomoreaccu-ratelyreflecttheprogrammer'sexpectations.
ExplodedApplicationsInconventionalsystems,functionalityisrestrictedtoappli-cations.
Wehaveshownthatactivepropertiesallowfunctionalitytobedirectlyassociatedwithdocumentsandmovedintotheinfrastructure.
So,thepresenceofactivepropertiescausesustoreassesshowapplicationsworkandhowtheyarestructured.
InPlaceless,wecanstarttothinkofapplicationsasconsistingofavarietyofactivepropertiesthatmaybespreadthroughoutthedocumentspace.
Wecallthese"exploded"applications.
Asanexample,considerasystemthatsupportsdocumentlinking,suchasahypertextsystemoradocumenteditorthatsupportstheinclusionofimagefilesbyreference.
Inacon-ventionalapplication,therelationshipbetweenthedocumentsisonlyactivewhentheapplicationisrunning.
Ifauserdeletesormovesalinkedfile,theapplicationwillnotknow;theresultisadanglinglink.
Activepropertiesprovideamechanismtopreventthisproblem.
InPlaceless,anappli-cationthatsupportsdocumentlinkagecanattachanactivepropertytoanylinkeddocumentthatwillinterceptmoveordeleteoperations.
Whentheseoperationsoccur,itcannotifytheuserthatthisisalinkeddocument(andsotheusermaynotwanttomoveit),and/ornotifytheapplicationthatthedocumenthasbeenmoved(andsoitshouldupdateitspoint-ers).
Theapplicationhasbeen"exploded"orspreadthroughouttheinfrastructure;itcannowbeactiveevenwhenthecentralapplicationisnotrunning.
So,activepropertieschangeournotionsofwhatconstitutesanapplication.
OrderingOneimportantsetofissuesarisearoundtheorderingofpropertyinvocations.
Propertiesprovidecompositionalcon-troloverthebehaviorofadocument,andorderingaffectshowtheirinteractionsarecontrolled.
Placelessprovidestwomechanismstocontrolordering.
Thefirstisthethree-phasemodeldescribedearlier,whereprop-ertiesareinvokedseparatelyaccordingtothreeroles(verifier,performer,notifier).
Thismechanismmovessomeofthemoreobviouspotentialpropertyinteractions(e.
g.
apropertythatwantstovetotheattemptsofanothertoper-formanoperation)intothestructuraldomainoftheinfrastructure,ratherthanhavingtheproperties"fightitoutamongstthemselves.
"Italsoprovidesamorefine-grainedmodelwhich,inturn,encouragespropertywriterstoworkatamorefine-grainedlevel.
However,itleavesmanyproblemsunaddressed.
Inparticu-lar,weobserveconflictsbetweentwoactivepropertiesinvolvedinthesamephaseofthesameoperation.
Weexploredavarietyofdesignsforthisproblem,andeventu-allyfixedonastraight-forwardnumericalorderingfortheinvocationsequenceofproperties.
Thisallowsustocombinepropertiesthathaveinterdependenteffects.
Forexample,ifwewantedtoaddtothesamedocumentonepropertythatencryptedfilecontentsbeforetheywerewrittentodisk,andanotherthatcompressedthem,wewouldwanttoensurethattheywerealwaysinvokedintherightorder.
Anumericalorderingisclearlyflawedinanumberofways;itrequiresthepropertiesthemselvestomanagethepotentialnegotiationtoestablishtheirrelativeorder,ratherthanhan-dlingitautomatically.
However,webelievemorecomplicatedschemestobeoverlycomplex;toestablishalanguageofpropertyside-effects,forinstance,wouldmakeourAPIconsiderablymorecomplex.
4NotificationsAnotheridiomthatweobservedinearlyapplicationswastheuseofnotifications.
"Notifier"-phaseactivepropertieshadbeenincludedtosupportavarietyoftaskssuchasaudittrailloggingandoperationpost-processingthatcouldbeconcep-tualizedasa"notification"fromoneelementofthesystemtoanother.
However,moreexplicitnotificationsorcallbacksbetweendifferentapplicationsturnedouttobemorecommonthatwehadanticipated.
Inparticular,wefoundour-selvesfrequentlywritingnotifieractiveproperties–whichruninthe"kernel"orserver–thatsimplylookedupclientprocessesandinformedthemoftheevent.
Whatismore,forcertainkindsofapplications,suchasapplicationsthatpresentarepresentationoftheactivityofotherclientsoroverworkspaces,wefoundthesesortsofnotificationsbeingaddedtomanydocuments.
Placelessprovidedamechanismforserver-sidenotifications,butnotforclient-sidenotifications.
WeaugmentedourbasicAPIstoprovidesupportforclientnotifications.
Clientscanregistertheirnotificationswitha4.
Infact,however,aswewilldiscuss,therearesomeotherbene-fitstohavingsuchadescriptivelanguage.
server;shouldtheclientdisappearbeforethenotificationiscalled,thenthenotificationwillbesilentlyremovedontheserverside.
Client-sidenotificationsareassociatedwithpat-ternsofdocuments,propertiesoroperations.
So,anapplicationcanregisterasinglenotificationthatwillapplytoanynumberofdocuments,ortoactivitiestogroupsofpropertiesonthosedocuments,andsoon.
Inadditiontoreducingthenumberofnotificationinstances5thisfacilityalsoallowednotificationstoberegisteredthatcannotbeattachedtoaspecificdocument,suchasanotificationthatanewdocumenthasbeencreated.
IntrospectionOurexperienceswiththecompositionaleffectsofactivepropertiesleadtoarecognitionoftheimportanceofpropertyintrospection–theabilitytoexamineandreasonabouttheinternalstructureandbehaviorofactiveproperties.
Therearetworeasonsthatwerequiresomesortofintrospec-tionfacility.
Thefirstisthatproperties,themselves,needtobeabletodeterminehowtheirbehaviorsmightinteract,sothattheycanpotentially"negotiate"aboutorderingorcus-tomizetheirbehaviorinordertobetterinteroperatewithotherproperties.
Forinstance,theversioningpropertymightbehavedifferentlywhenattachedtoadocumentthatalsohasareplicationproperty.
Thesecondisthatweneedtobeabletoprovideend-userswithanunderstandingoftheconse-quencesoftheiractions.
Sinceseeminglysimpleactionssuchasaddingapropertytoadocumentmightcauseavari-etyofactivepropertiestobeexecuted,weneedtobeabletoprovideagenericframeworkinwhichthepotentialout-comesofactionscanbedetermined.
Thisalsorequiresthatwebeabletodeterminesomethingofthestructureandbehaviorofactiveproperties.
OuractivepropertiesarewritteninJava.
Assuch,their"con-tents"–thecodethattheywillexecute–islargelyinaccessiblefromuserspace,outsideoftheminimalstruc-turalpropertiesthatareavailablethroughthestandardJavaReflectionAPIs.
Thesearesufficienttobeabletoseewhatoperationsandwhatphasesarebeinginterceptedbytheactiveproperty,butnottodeterminewhatthatactiveprop-ertywilldo.
Instead,anumberofourapplicationsareforcedtodependonactivepropertyclassnamesand"well-known"propertiestobeabletoreasonaboutthebehaviorofproper-tiesattachedtodocuments.
Onealternativewouldbetowriteactivepropertiesinamoredeclarative"littlelanguage"withlessexpressivepowerthanfullJava,andaboutwhichwemightbeabletoreasonmorecarefully.
ThisapproachhasbeenusedinothersystemssuchasDPF[12].
WedeemedthisapproachinappropriatefortheinitialexplorationsthatPlacelessDocumentswasdesignedtosupport;whenwewereengagedinthedesignwelackedsufficientexperiencewithactivepropertiestodesignsuchalanguage.
Theexperiencewehavenowgainedsuggeststhattheabilitytouseactivepropertiestorelatedocumentbehav-iortothefunctionalityofexternalservices(e.
g.
externalworkflowenginesorformatconversionservices)isanimportantfeatureofourdesign.
Inordertosupportthis,wemustnecessarilygiveupstrongcontroloverthesemanticsofactivepropertyexecution.
Avoluntarydeclarativespecifica-tionoftheside-effectsorperformancerequirementsofactivepropertiesmaybeincorporatedinthefuture.
RELATEDAPPROACHESTherearetwoareasofrelatedworkrelevanttoourexplora-tionofprogrammingmodelsforactivedocuments.
Oneisthesetofinvestigationsintoactiveinfrastructuresofvarioussorts;theotheristheexplorationofcompositionalprogram-mingmodelsforinteractivebehavior.
ActiveInfrastructuresPlacelessDocumentsrepresentsoneapproachtotheprovi-sionofactiveinfrastructures.
Similarissuesoccurinothersystemstacklingsimilarproblems.
TheBayoudistributeddatabaseinfrastructuregaveprogram-mersactivecontroloverthedatabasesystem'spolicyformanagingconflicts.
ByweakeningthetraditionalACIDproperties,replacingthemwithamorefluidsetof"sessionguarantees"[23],Bayouprovidedadatastoragelayermoreattunedtotheneedsofapplicationdomainssuchascooper-ativework[9].
Bayouallowedprogrammerstoattachpiecesofcodecalled"mergeprocs"toupdates,whichwouldbeexecutedtoresolveconflictsencounteredastheyfilteredthroughthenetworkofdatabaseservers.
Likeouractiveproperties,mergeprocswerewritteninafullhigh-levellan-guage,raisingthesamesortsofintrospectionproblems.
However,sincedifferentmergeprocswouldnotbeassoci-atedwiththesameupdate,Bayouhadlittleneedtosupportcompositionalityandsodidnotsufferthesameproblemsofordering,etc.
,thatoccurinPlacelessDocuments.
Activedatabasesmoregenerallyprovideamechanismtoincorporatedynamicallycomputeddataand"triggers"withdataobjects,allowingthedatatorespondactivelytopatternsofaccess[17].
Thesetendtobewritteninrestrictedlan-guages,andthewaysinwhichtheycaninteroperateandrelyonexternalservicesismuchmorerestrictedthanwecanoffer,allowingactivedatabasestoofferstrongerperfor-manceguaranteesatthecostofexpressiveness.
Activenetworking[27]isanapproachtonetworkarchitec-tureinwhichprogramsareexecutedinsidethenetworkarchitectureitself.
Thisapproachsupportsmuchmoreflexi-blemanagementofnetworkresources.
Forexample,routerscanexploitdownloadedcodetodynamicallycontrolroutingpatterns,allowingapplicationstospecializethenetwork'sresponsetotheirparticularrequirements.
Thisissimilartoworkoncomposableprotocols[16]inthatitaffectsthecon-figurationofnetworkingbehavior,butcriticallydifferentinwhereitlocatescomputation,andinparticularthatitallowscomputationtomovearoundandtobeconfigureddynami-cally.
WorkonActiveNames[26]hasexploredinsertingactivemediationintojustthenamelookupprocess,sothatdynamicorcaller-dependentbindingsaremanagedinaprin-cipledway.
Someinteractiveapplicationtoolkits,suchasProspero[4]andIntermezzo[8],haveincorporatedextensibilitytech-5.
Infact,ourimplementationallowsmultipleinstancesofanactivepropertytosharecode,sotheoverheadofmultipleinstancesisnotoneofmemoryfootprint,butoneofactualcode.
niquessothatapplicationdeveloperscanextendtoolkitfunctionalityorinterfaces.
However,theytypicallydonotattempttoexposethisextensibilitymodeltoendusersaswedoinPlacelessDocuments.
Thisisalsotrueofexplorationsofactiveinfrastructuresintheoperatingsystemsdomain.
WorksuchasthatonSpin[3],scheduleractivations[2],exokernels[11]andtheMachExternalPager[18]haveallexploredmediatingthebehaviorofotherwisestaticinfrastructurecomponents.
Muchoftheefforthasbeendirectedtowardsfindingabalancebetweentheexpressivenessoftheinterfaceandthesecurityandresourcemanagementimplicationsofbroadeningittoofar.
CompositionalInteractiveBehaviorsUnlikeotherapproachestoactiveinfrastructures,Placelessisfocusseddirectlyoninteractionconcerns.
Howdoestheactivepropertymodelcomparetootherapproachesprovid-ingcompositionalinteractivebehaviorsIncontrasttotraditional"widget"programming,Myers'"interactors"modelprovidesanencapsulationofinteractivebehaviorthatisseparatefromthegraphicalelementstowhichitisconnected[15].
Interactionpatternsandgraphicalelementsoftheuserinterfacearedevelopedandspecifiedseparately;interactorscanthenbeattachedtographicalele-mentstogivethoseobjectsinteractivebehaviors.
Thisissimilartotheseparationbetweendocumentsandactiveproperties;theyalsohavesimilarcompositionalpropertieswhichmakeforsimilarprogrammingexperiences.
However,Myers'interactorsmodelisaimedspecificallyatthecreationofgraphicaluserinterfaces,whiletheactivepropertymodelismoregeneral.
Activepropertiesalsoresembletheprogrammingmodelofprototype-basedobject-orientedprogramminglanguageslikeSelf[25].
LikeobjectsofatraditionalOOlanguage,Selfobjectscombinedataandactivity(methods);butunlikethetraditionalapproach,Selfprovidesnoclassestoencapsulateobjectstructures,butallowsobjectstoinheritdirectlyfromeachother,throughaprototypemechanism.
PlacelessDocu-mentsissimilartoSelfinthewaythatusersexperiencedocuments(objects)directlyratherthanintermsofpre-definedstructures;andsimilarly,anumberofouruserinterfacesaredesignedaroundthesameprinciplesofcon-cretenessanduniformitythatcharacterizeSelfuserinterfaces[20].
However,althoughourearlydesignsincor-poratedit,PlacelessDocumentsdoesnotprovideinheritanceorthepropagationofpropertiesoractivitythrougha"chain"ofdocuments.
ThisisbecauseofPlaceless'schizophrenicnature,beingbothanapplicationinfrastructureandasystemforendusers.
Whileapplicationdevelopersmightbeexpectedtounderstandamodelstructuredaroundprototypeinheritance,wefeltthatend-userwouldnot.
FOLLOW-ONWORKThePlacelessDocumentsystemisstillunderactivedevelop-ment.
Inparticular,anew"kernel"architecture(thecorepropertystorageandactivationengine)iscurrentlybeingdeveloped,andexploresmoreadvancedideasfortheinte-grationofPlaceless'spropertymechanismswiththerelationaldatabasebeneaththecovers.
Anotherfeaturethatisbeingexploredinthisnewimplemen-tationisarichermechanismforapplicationprogrammerstodescribetotheinfrastructurethestructureoftheirapplica-tionsandtheiruseofpropertiesfordatastorage.
Inthefirstinstance,thisfacilityisaimedprimarilyattheuseofstaticpropertiesandschemas,butitalsoofferstheopportunitytoalleviatesomeoftheproblemsassociatedwiththecomposi-tionofactiveproperties.
Adeclarativemeansfordescribingapplicationneedsallowsthesystemtoadaptitselftotheneedsofeachapplicationandtotakeamoreactiveroleinmanagingtheirinteractions.
Wehavealreadydescribedanumberofwaysinwhichthesystemhasbeenchangedtoincorporatelessonslearnedfromearlyapplicationexperiences(e.
g.
theintroductionofclient-sidenotifications).
Byworkingcloselywithapplicationdevelopers,wearestilllearningnewwaystobettermatchtheconceptualmodelthatPlacelessofferstotheneedsofbothprogrammersandend-users.
CONCLUSIONSInfrastructureshavetraditionallybeenconstruedaspassiveelementsofcomputingsystems;activityhasbeenconcen-tratedattheend-pointsofthesystem,onserversorclients.
However,researchersinavarietyofsystemsarenashavebeenexploringtheuseofactiveinfrastructuresinordertospecialiseinfrastructurestotheneedsofparticularclientsortobettercapitalizeontheincreasedperformanceofmoderninfrastructurecomponents(e.
g.
increasednetworkband-width).
InthePlacelessDocumentsproject,wehavebeenexploringanactiveinfrastructureapproachinthecontextofinteractivedocumentservicesandapplications.
Activeinfrastructureshavebeenconceptualizedinmanydif-ferentways,encapsulatingmanydifferentprogrammingmodels.
TheprogrammingmodelforPlacelessDocumentshasbeendesignedtomeettwogoals.
Ononehand,itispow-erfulenoughtoallowapplicationdeveloperstocreateawiderangeofapplicationsthatcantakeadvantageofactivityintheinfrastructure.
Ontheother,sinceweareaimingatinter-activedocumentapplications,theprogrammingapproachmustalsoencapsulateaconceptualmodelthatisaccessibletoend-users.
ThePlacelessDocumentssystemblursthetra-ditionalboundarybetweenusersanddevelopers,sinceitgivesuserscompositionalcontroloverthebehavioroftheirdocumentsystems.
Whileourapproachisnotasgeneralasthatoftraditionalend-userprogrammingsystems,itnone-thelessrequiresthatusersbeabletounderstandtheencapsulationandcompositionmodelthatoursystemoffers.
Ourconceptualmodelhasbeenbasedonactiveproperties.
Staticpropertiesdescribefeaturesofdocumentsrelevanttouserneeds;activepropertiesaddencapsulatedcodethataffectshowthedocumentbehaves.
Propertiescanbecon-trolledindividuallybyend-usersandapplicationdevelopers,canbecomposedtocreatecomplexbehaviors,andprovideaconsistentinterfaceformanagingdocuments.
Wehaveworkedwithavarietyofpeopleoutsidethedevel-opmentgrouptodevelopapplicationsforPlacelessDocumentsorganizedintermsofactiveproperties.
Onthepositiveside,wehavefoundthatpeopletakenaturallytotheactivepropertymodel,andcanquicklyandeasilycreateapplicationsfactoredintoactiveproperties.
Activeproper-tiesalsoencourageadecomposedmodelinwhichbehaviorsarepersistentlyassociatedwithdocumentssothatapplica-tionactivityisdistributedthroughouttheinfrastructureandpermanentlyavailable.
Onthenegativeside,wehaveencounteredproblemswhereactivepropertieshideapplica-tionbehavior,makingithardforuserstounderstandtheconsequencesoftheiractions;documentbehaviormayresultinunexpectedandunforeseenactivepropertyinvocations.
Thishasnotcausedanysignificantproblemsinthesmallapplicationswehaveexplored,butraisessomeissuestobeaddressedinfutureexplorations.
Theactivepropertymodelspanstwoworlds–theworldofend-userdocumentmanagementandtheworldofapplica-tiondevelopment.
Ascomputersbecomemorepowerfulandapplicationsneedtobemoreandmoreradicallyadaptedtotheneedsofdifferentusersanddifferentenvironments,systemdeveloperswillincreasinglyneedtobuildbridgesbetweenthesetwoworlds.
InthePlacelessDocumentssys-tem,activepropertieshavebeguntoprovideuswithsomecluesastotheproblemsandopportunitiesthattheserequire-mentswillpresent.
ACKNOWLEDGEMENTSWewouldliketothankDirkBalfanz,JacekGwizdka,MinwenJi,EyaldeLaraandIanSmithfortheirbraveryinexperimentingwithactiveproperties.
REFERENCES1.
Abowd,G.
,Dey,A.
,Orr,R.
andBrotherton,J.
1998.
Context-awarenessinWearableandUbiquitousComputing.
VirtualReality,3,200-211.
2.
Anderson,T.
,Bershad,B.
,Lazowska,E.
andLevy,H.
1992.
SchedulerActivations:EffectiveKernelSupportforUser-LevelManagementofParallelism.
ACMTrans.
ComputerSystems,10(1),53–79.
3.
Bershad,B.
,Savage,S.
,Pardayk,P.
,Sirer,E.
,Fiuczynski,M.
,Becker,D.
,Chambers,C.
andEggers,S.
(1995).
ExtensibilityandSafetyintheSPINOperatingSystenm.
Proc.
ACMSymp.
OperatingSystemPrinciples(CopperMountain,CO).
NewYork:ACM.
4.
Dourish,P.
1998.
UsingMetalevelTechniquesinaFlexibleToolkitforCSCWApplications.
ACMTrans.
Computer-HumanInteraction,5(2),109-155.
5.
Dourish,P.
,Bentley,R.
,Jones,R.
andMacLean,A.
(1999).
GettingSomePerspective:UsingProcessDescriptionstoIndexDocumentHistory.
Proc.
ACMConf.
SupportingGroupWorkGROUP'99(Phoenix,AZ).
NewYork:ACM.
6.
Dourish,P.
,Edwards,K.
,LaMarca,A.
andSalisbury,M.
(1999).
UniformDocumentInteractionwithDocumentProperties.
Proc.
ACMSymp.
UserInterfaceSoftwareandTechnologyUIST'99(Asheville,NC).
NewYork:ACM.
7.
Dourish,P.
,Edwards,K.
,LaMarca,A.
,Lamping,J.
,Petersen,K.
,Salisbury,M.
,Terry,D.
andThornton,J.
(inpress).
ExtendingDocumentManagementSystemsWithPer-UserActiveProperties.
ACMTrans.
InformationSystems.
8.
Edwards,K.
1996.
CoordinationInfrastructureinCollaborativeSystems.
PhDdissertation,CollegeofComputing,GeorgiaInstituteofTechnology,Atlanta,GA.
9.
Edwards,K.
,Mynatt,E.
,Petersen,K.
,Spreitzer,M.
,Terry,D.
,andTheimer,M.
1997.
DesigningandImplementingAsynchronousCollaborativeApplicationswithBayou.
Proc.
ACMSymp.
UserInterfaceSoftwareandTechnologyUIST'97(Banff,Alberta).
NewYork:ACM.
10.
Edwards,K.
andLaMarca,A.
1999.
BalancingGeneralityandSpecificityinDocumentManagementSystems.
Proc.
SeventhIFIPConf.
Human-Computer-InteractionInteract'99(Edinburgh,Scotland).
11.
Engler,D.
,Kaashoek,F.
andO'Toole,J.
1995.
Exokernel:AnOperatingSystemArchitectureforApplication-LevelResourceManagement.
Proc.
ACMSymp.
OperatingSystemsPrinciplesSOSP-95,251–266.
NewYork:ACM.
12.
Engler,D.
andKaashoek,F.
1996.
DPF:Fst,FlexibleMessageDemultiplexingusingDynamicCodeGeneration.
Proc.
SIGCOMM'96.
NewYork:ACM.
13.
Fox,A.
,Gribble,S.
,Brewer,E.
andAmir,E.
1996.
AdaptingtoNetworkandClientVariationviaReal-TimeDistillation.
Proc.
ACMSymp.
ArchitecturalSupportforProgrammingLanguagesandOperatingSystemsASPLOS-VII(Boston,MA).
NewYork:ACM.
14.
LaMarca,A.
,Edwards,K.
,Dourish,P.
,Lamping,J.
,Smith,I.
andThornton,J.
1999.
TakingtheWorkoutofWorkflow:MechanismsforDocument-CenteredCollaboration.
Proc.
EuropeanConf.
Computer-SupportedCooperativeWorkECSCW'99(Copenhagen,Denmark).
Dordrecht:Kluwer.
15.
Myers,B.
1990.
ANewModelforHandlingInput.
ACMTrans.
InformationSystems,8(3),289–320.
16.
O'Malley,S.
andPeterson,L.
1992.
ADynamicNetworkArchitecture.
ACMTrans.
ComputingSystems,10(2),110–143.
17.
Paton,N.
andDiaz,O.
1999.
ActiveDatabaseSystems.
ACMComputingSurveys,31(1),63-106.
18.
Rashid,R.
,Tevanian,A.
,Young,M,Golub,D.
,Baron,R.
,Black,D.
,Bolosky,W.
andChew,J.
1987.
Machine-IndependentVirtualMemoryManagementforPagedUniprocessorandMultiprocessorArchitectures.
Proc.
ACMConf.
ArchitecturalSupportforProgrammingLanguagesandOperatingSystems(PaloAlto,CA).
NewYork:ACM.
19.
Schilit,B.
,Adams,N.
andWant,R.
1994.
Context-awareComputingApplications.
Proc.
WorkshoponMobileComputingSystemsandApplications(SantaCruz,CA).
20.
Smith,R.
,Maloney,J.
andUngar,D.
1995.
TheSelf-4.
0UserInterface:ManifestingaSystem-WideVisionofConcreteness,UniformityandFlexibility.
Proc.
ACMConf.
Object-OrientedProgrammingLanguages,SystemsandApplicationsOOPSLA'95(Austin,TX).
NewYork:ACM.
21.
Stein,L.
,Lieberman,H.
andUngar,D.
1987.
ASharedViewofSharing:TheTreatyofOrlando.
InKimandLochovsky(eds),Object-OrientedConcepts,DatabasesandApplications.
NewYork:ACMPress.
22.
Swenson,K.
1998.
SimpleWorkflowAccessProtocol.
IETFInternetDraft.
23.
Terry,D.
,Demers,A.
,Petersen,K.
,Spreitzer,M.
,Theimer,M.
andWelch,B.
1994.
SessionGuaranteesforWeaklyConsistentReplicatedData.
Proc.
Intl.
Conf.
ParallelandDistributedInformationSystems(Austin,Texas).
24.
Terry,D.
,Theimer,M.
,Petersen,K.
,Demers,A.
,Spreitzer,M.
andHauser,C.
1995.
ManagingUpdateConflictsinBayou,AWeaklyConnnectedReplicatedStorageSystem.
Proc.
ACMSymp.
OperatingSystemsPrinciplesSOSP'95(CopperMountain,CO).
NewYork:ACM.
25.
Ungar,D.
andSmith,R.
1987.
Self:ThePowerofSimplicity.
Proc.
ACMConf.
Object-OrientedProgrammingLanguages,SystemsandApplicationsOOPSLA'87(Orlando,FL).
NewYork:ACM.
26.
Vahdat,A.
,Dahlin,M.
,Anderson,T.
,andAggarwal,A.
1999.
ActiveNames:FlexibleLocationandTransportofWide-AreaResources.
Proc.
1999USENIXSymposiumonInternetTechnologiesandSystems(USITS).
27.
Wetherall,D.
1999.
ActiveNetworkVisionandReality:LessonsfromaCapsule-BasedSystem.
Proc.
ACMSymp.
OperatingSystemPrinciplesSOSP-17(LiawahIsland,SC).
NewYork:ACM.

hostodo:2021美国独立日7折优惠促销NVMe硬盘的VPS,低至$13/年,还送DirectAdmin授权

7月4日是美国独立日,大致就是国庆节的意思吧。hostodo今年提前搞了个VPS大促销活动,4款便宜VPS,相当于7折,续费不涨价,本次促销不定时,不知道有多少货,卖完为止。VPS基于KVM虚拟,NVMe阵列,1Gbps带宽,自带一个IPv4+/64 IPv6,solusvm管理,送收费版DirectAdmin授权,VPS在用就有效! 官方网站:https://www.hostodo.com ...

Central美国65折优惠,美国达拉斯机房VPS季付赠送双倍内存

Central美国独立日活动正在进行中,旗下美国达拉斯机房VPS 65折优惠,季付赠送双倍内存(需要发工单),Central租用的Hivelocity的机房,只支持信用卡和加密货币付款,不支持paypal,需要美国独服的可以谨慎入手试试。Central怎么样?Central便宜服务器,Central自称成立于2019年,主营美国达拉斯机房Linux vps、Windows vps、专用服务器和托管...

Hostodo,美国独立日特价优惠,四款特价VPS云服务器7折,KVM虚拟架构,NVMe阵列,1核512M内存1Gbps带宽3T月流量,13.99美元/月,赠送DirectAdmin授权

Hostodo近日发布了美国独立日优惠促销活动,主要推送了四款特价优惠便宜的VPS云服务器产品,基于KVM虚拟架构,NVMe阵列,1Gbps带宽,默认分配一个IPv4+/64 IPv6,采用solusvm管理,赠送收费版DirectAdmin授权,服务有效期内均有效,大致约为7折优惠,独立日活动时间不定,活动机型售罄为止,有需要的朋友可以尝试一下。Hostodo怎么样?Hostodo服务器好不好?...

wisediskcleaner为你推荐
京沪高铁上市首秀哪些企业建设京沪高铁?sherylsandberg谷歌怎么看自己的详细资料微信回应封杀钉钉微信大封杀"违规"了吗丑福晋男主角中毒眼瞎毁容,女主角被逼当丫鬟,应用自己的血做药引帮男主角解毒的言情小说百度关键词分析百度关键字分析是什么意思?www.522av.com在白虎网站bhwz.com看电影要安装什么播放器?33tutu.comDnf绝望100鬼泣怎么过dadi.tvApple TV是干嘛的?怎么用?多少钱?hao.rising.cn电脑每次开机的时候,都会弹出“http://hao.rising.cn/?b=34” 但是这个时hao.rising.cn瑞星强制篡改主页 HTTP://HAO.RISING.CN 各位有什么办法可以解决吗?
西安服务器租用 中国万网虚拟主机 泛域名解析 bbr 加勒比群岛 kdata 美国主机代购 dropbox网盘 广州服务器 电信虚拟主机 爱奇艺会员免费试用 ca187 超级服务器 银盘服务 腾讯总部在哪 云服务器比较 lamp架构 登陆qq空间 稳定空间 云服务是什么意思 更多