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.

阿里云金秋上云季,云服务器秒杀2C2G5M年付60元起

阿里云(aliyun)在这个月又推出了一个金秋上云季活动,到9月30日前,每天两场秒杀活动,包括轻量应用服务器、云服务器、云数据库、短信包、存储包、CDN流量包等等产品,其中Aliyun轻量云服务器最低60元/年起,还可以99元续费3次!活动针对新用户和没有购买过他们的产品的老用户均可参与,每人限购1件。关于阿里云不用多说了,国内首屈一指的云服务器商家,无论建站还是学习都是相当靠谱的。活动地址:h...

PhotonVPS:美国Linux VPS半价促销2.5美元/月起,可选美国洛杉矶/达拉斯/芝加哥/阿什本等四机房

photonvps怎么样?photonvps现在针对旗下美国vps推出半价促销优惠活动,2.5美元/月起,免费10Gbps DDoS防御,Linux系统,机房可选美国洛杉矶、达拉斯、芝加哥、阿什本。以前觉得老牌商家PhotonVPS贵的朋友可以先入手一个月PhotonVPS美国Linux VPS试试了。PhotonVPS允许合法大人内容,支持支付宝、paypal和信用卡,30天退款保证。Photo...

物语云-VPS-美国洛杉矶VPS无限流量云windows大带宽100M不限流量 26/月起

物语云计算怎么样?物语云计算(MonogatariCloud)是一家成立于2016年的老牌国人商家,主营国内游戏高防独服业务,拥有多家机房资源,产品质量过硬,颇有一定口碑。本次带来的是特惠活动为美国洛杉矶Cera机房的不限流量大带宽VPS,去程直连回程4837,支持免费安装Windows系统。值得注意的是,物语云采用的虚拟化技术为Hyper-v,因此并不会超售超开。一、物语云官网点击此处进入物语云...

wisediskcleaner为你推荐
百度商城百度商城知道在哪个地方,怎么找不到啊同ip域名同IP网站具体是什么意思,能换独立的吗www.kanav001.com跪求下载[GJOS-024] 由愛可奈 [Kana Yume] 現役女子高生グラビア种子的网址谁有baqizi.cc徐悲鸿到其中一张很美的女人体画javlibrary.com大家有没有在线图书馆WWW。QUESTIA。COM的免费帐号www.147.qqq.com谁有147清晰的视频?学习学习梦遗姐男人梦遗,女人会吗?hao.rising.cn电脑每次开机的时候,都会弹出“http://hao.rising.cn/?b=34” 但是这个时关键词分析如何进行关键词指数分析dpscycle寻求LR 高输出宏
国外域名注册 vps服务器租用 域名备案号查询 vir hostgator ix主机 淘宝双十一2018 河南移动邮件系统 gtt Updog 安徽双线服务器 空间首页登陆 百度云加速 东莞主机托管 腾讯数据库 SmartAXMT800 cc攻击 vpsaa 报警主机 戴尔主机 更多