|
|
|
- Derrick Wilson
- 10 years ago
- Views:
Transcription
1 TypesAnimationovertheInternet ConcurrentAlgorithmsandData GiuseppeF.Italianoy GiuseppeCattaneo UmbertoFerraro VittorioScarano AlgorithmsanddataTypesAnimationovertheInternet).Amongthefeaturesofthis systemarealoweortrequiredforanimatingalgorithmiccode,andthepossibilityof WepresentadistributedalgorithmanimationsystemcalledCatai(forConcurrent Abstract embeddinganimationclientsinstandardjava-enabledwebbrowsers.webelievethistobe agoodcompromisebetweentwodierentviewpoints:theprogrammer'sperspective,which typicallyincludesthegoalofanimatingecientlyandunobtrusivelyagivenalgorithmic code,andtheuser'sperspective,whichcanbenetfrominteractive,easy-to-use,distributed 1 Introduction andcooperativeinterfaces. Algorithmanimationisaformofsoftwarevisualizationthatusesinteractivegraphicstoenhance thepresentation,developmentandunderstandingofcomputerprograms.systemsforalgorithm implementationofalgorithms,andperformancetuninganddebuggingoflargeandcomplex softwaresystems. totheirrelevanceinmanyareas,includingcomputerscienceeducation,design,analysisand animationhavematuredsignicantlyinthelastdecade[2,3,6,8,9,28,29,30],perhapsdue codeathandand,insomeinstances,evenrequirewritingtheentireanimationcodeinorder cationsinmind.however,manyofthesesystemsrequireheavymodicationstothesource toproducethedesiredalgorithmvisualization.thus,auserofthesesystemsnotonlyshould Severalalgorithmanimationsystemshavebeendevelopedwithoneormoreoftheseappli- investaconsiderableamountoftimewritingcodefortheanimationbutalsoneedstohavea signicantalgorithmicbackgroundtounderstandthedetailsoftheprogramtobevisualized. Thisisnotdesirable,especiallywhenalgorithmanimationistobeusedinprogramdevelopment anddebugging. DipartimentodiInformaticaedApplicazioni\R.M.Capocelli",UniversitadiSalerno,Italy. Council.PartofthisworkwasdonewhilevisitingTheHongKongUniversityofScience&Technology. searchgrantfromuniversity\ca'foscari"ofvenice,andbygrantsfromcnr,theitaliannationalresearch portedinpartbyeuespritlongtermresearchprojectalcom-itundercontractno.20244,byare- ydipartimentodimatematicaapplicataedinformatica,universita\ca'foscari"divenezia,italy.sup- [email protected]:
2 testingandunderstandingcomputeralgorithms(seealso[25]). mainfactorslimitingthediusionofanimationtechniquesasasuccessfultoolfordebugging, ThispaperdescribesanalgorithmanimationsystemcalledCatai(forConcurrentAlgorithmsanddataTypesAnimationovertheInternet).Oneinterestingaspectofoursystemis writtenaccordingtocertainspecics(e.g.,inc++,usinganalgorithmicsoftwarelibrarysuchas thatittriestoimposealittleburdenonthetaskofanimatingalgorithms.iftheprogramis LEDA[22]),thenitshouldbeeasytoobtainasimpleanimationofthisprogramwithCatai. programmeroranalgorithmdevelopershouldnotinvesttoomuchtimeingettinganactual animationofthealgorithmupandrunning.inourexperience,thiswasnotalwaysthecase, andoftenanimatinganalgorithmwasasdicultandastimeconsumingasimplementingthe Thisshouldmakethissystemeasytouse,andisbasedonthephilosophythatanaverage Inourownexperience,theeortrequiredtoanimateanalgorithmisperhapsoneofthe algorithmitselffromscratch.ourapproachhasanadvantageoversystemswherethetask ofanimatinganalgorithmishighlynon-trivial.producinganimationsalmostautomatically, however,canlimitexibilityincreatingcustomgraphicdisplays.iftheuseriswillingtoinvest graphicscapabilities,whilestillexploitingthefeaturesoeredbyoursystem. moretimeonthedevelopmentofananimation,heorshecanproducemoresophisticated possibilityofanimatingcomplexalgorithmsanddatastructures.thisismainlyachievedby structuresstartingfromverysimpleobjects.particularattentionwasdevotedtoeciency fullyexploitinganobject-orientedabstraction,whichallowsonetobuildcomplexanimateddata Wesketchheresomeotherfeaturesofoursystem.Oneofourdesignprinciplewasthe issues:thesystemwasdesignedsoastoberesource-ecient(graphicalresourcesarelargely reusedduringtheanimation),andtime-ecient(littleextraeortisrequiredwhenassembling systemisdistributed,asanimationclientscanbeplacedanywhereonanetwork,andhasa animatedobjects,asasoftwarelayerisinchargeofcoordinatingthepresentation).our distributeduserinterfaces,oursystemcanbeeasilyintegratedintheweb.anotherofthe runningprograms,thusinuencingtheanimation.besidesoeringinteractiveandeasy-to-use maincharacteristicsofcataiisthatitisinherentlycooperative:multipleanimationclients highdegreeofinteractivity,asclientsareabletohaveadeepgraphicalinteractionwiththe caninteractandinuencethebehaviorofasinglesharedalgorithminstance.furthermore,our keepsoverallthesamebehaviorasitsoriginalexecution.thisisparticularlyimportantfor asanimationdoesnotinterferewiththeexecutionofthealgorithm:theanimatedalgorithm systemhasahighdegreeofprivacy,whichispreservedonopennetworks,andisnotpervasive, debugging. architecturalchoicesunderlyingthedesignofcataiinsection2.next,weprovidesome algorithmanimationwithcatai.themainfeaturesofcataiaresummarizedinsection4, examplesonitsusageinsection3,wherewedescribeindetailshowtoprepareanactual Therestofthispaperisorganizedasfollows.Werstdescribethemainprinciplesand wherewealsomentionthenextdevelopments,mostnotablysomefurtherintegrationwiththe WorldWideWebtoprovidecooperativeworkgroupcapabilities. WhenourrstprototypeofCataiwasstarted,wehadalreadyimplementedandanimateda 2fairamountofalgorithms.Thus,ourownexperience,bothasprogrammersandasusersof SystemDesignandArchitecture algorithmsandanimations,stronglyinuencedourviewsanddevelopmentofcatai.thiscan perhapsexplainsomebiasorsomeparticularchoicesmadeinthedevelopmentofoursystem,
3 butatthesametimecanbeseenfromadierent,andperhapsmorepractical,viewpoint:we developedcataibecauseweactuallyneededaneectiveanimationtool,especiallysuitedfor debugging,testingandtuningalgorithmicsoftware. codeproducedbypeopleindierentsites.thus,wethoughtofananimatedalgorithmlikeany access,whichimplieddesigningadistributedsystemtoanimatealgorithms.whilejointly developingsomecomplexalgorithmicsoftware,wewantedtoquicklytestandvisualizethe Firstofall,beingaresearchgroupspreadoverdierentsites,wewantedtoensureremote remoteaccesshasmanyotheradvantages.justtomentionafew,aremoteinterfaceisanatural, simpleandoftenmoreecientalternativetoportinganyspecial-purposeorspecializedsoftware other\networkresource",whichcanbeaccessedandinteractedwith.ofcourse,asystemwith packageneededbyagivenalgorithm.furthermore,remoteaccesscanalsoensuresomeform ofprivacyandencapsulation:theusercanwatchanalgorithmrunningonaparticularinput fromtheuser,sincethecodeislocatedonadierentmachine.thiswassomehowinlinewith set(whichcanbechosenbytheuser),whilethealgorithmitselfanditsdetailsare\hidden" othercurrentanimationsystems,suchasmocha[2]. animateddatastructuresatrun-time:incataithisisdoneinsuchawaythattheexecution interactasmuchaspossiblewiththeanimatedalgorithm.wewanted,forinstance,toallow theusertointeractwiththealgorithmduringitsexecution.oneexamplecouldbechangingthe However,anddierentlyfromotheranimationsystems,wewishedtoallowtheuserto needsnottoberestarted(asithappensinothersystems)butissimplycontinuedonthe speed,checkpointing).notrulydeepinteractionwasavailabletowardstheunderlyingdata ofpresentingthealgorithm.thetypicalinteractionallowedbetweentheuserandalgorithm changeddata.inprevioussystems,userinterfaceswerestronglyorientedtowardsthegoal wasverylight(e.g.,runthealgorithm,presentitsexecutionframe-by-frame,controltheframe structures:theonlypossibilitywastoassigndefaultvaluesatinitializationtime;usually, animatedalgorithmsoeredonlythechoiceamongdierentinputsets,includingdeninga newone.inourexperience,thisgavearatherlimitedviewofinteraction,andwhilevisualizing algorithms,weneededamuchdeeperinteractionwiththeirexecution.forinstance,wefound extremelybenecialtousetheanimationtodebugcomplexalgorithmiccode:inthiscase, andforeducationalpurposesaswell,weoftenperceivedtheneedtovisualizewhathappens requiresamuchstrongerinteractionbetweentheuserandtheexecutionofthealgorithmat animationtime.aspointedoutin[3],fromwhichweciteverbatim,thisstronginteraction ifweinteractivelyforcethealgorithmtofallintonon-standardorwrongcongurations.this seemssomehowimplicitintheconceptofalgorithmanimation: \Algorithmanimationappealstothestrengthsofhumanperceptionbyproviding Acrucialpointhereisthemeaningof\step",asincurrentanimationsystemsonecannd end-usertounderstandthealgorithmsbyfollowingvisuallystep-by-stepexecution". avisualrepresentationofthedatastructure[...]algorithmanimationhelpsthe nearlytwooppositeinterpretationsofthis.therstinterpretationistheoneusedinlineorienteddebuggers,wherecoherencewiththealgorithmexecutionisguaranteedattheexpense ofaverynegranularity,whichsometimescanevendisturbtheinterpretationofthebehaviorof thealgorithm.thesecondinterpretationofstepisthatofalogicalframe,whichcanbedened bytheprogrammeratthedesiredlevelofgranularity(asforinstanceinpolka[28]).withthis and,therefore,itisnotalwaysguaranteed.forus,accordingtoanobject-orientedparadigm, approach,coherencewiththealgorithmexecutionisatotalresponsibilityoftheprogrammer astepisanychangeofstateoftheanimatedobjects.indeed,toensureastronginteraction
4 Requirements Remote Access Interactivity Reusability Approach Distributed Animation Architecure Data Structures Animation vs. Algorithm Animation betweenusersandalgorithmexecutions,oursystemmonitorsallandonlytheeventsthat ofanalgorithmwassoheavilyembeddedinthealgorithmitselfthatnotmuchofitcouldbe comforting.inmanycases,reusabilitywasnotconsideredatall,andveryoftentheanimation changethestateofananimatedobject. reusedinotheranimations.wewantedtoenforcereusabilityinastrongsense:iftheuserproducesagivenanimateddatastructure(e.g.,astack,atree,oragraph),thenallitsinstances Ourthirdmainconcernwasreusability,aspreviousexperienceswiththiswereratherdisicalbehaviorwithnoadditionaleortatall.Ofcourse,whenmultipleinstancesofdierent datastructuresareanimatedfordierentgoals,abasicgraphicalresultmaybepoorwithout inanycontext(localscope,globalscope,dierentprograms)mustshowsomestandardgraph- perhapscouldneverbe)reusable.wedesignedoursystemsothatitcanoerdierentlevels anadditional,application-speciccoordinationeortthatbyitsownnatureseemsnot(and ofsophistication:non-sophisticatedanimationscanbebasicallyobtainedforfree.ifonewants amoresophisticatedanimation,forinstancebyexploitingsomecoordinationamongdierent datastructuresforthealgorithmathand,thensomeadditionaleortisrequired. Figure1:ThemainideasbehindthedesignofCatai. Cooperative GUI Efficiency Features Portable GUI Distributed Algorithm (development time. Animation network resources) deeplyinuencedthedesignofoursystem.toallowremoteaccess,oursystemhadobviously tohingeonadistributedarchitecture.however,ourdesireofahighdegreeofinteractivity aswellhadaprofoundinuenceonthechoiceofadistributedarchitecture.oursecondmain Figure1showshowthesethreerequirements(remoteaccess,interactivityandreusability) rithmsonly.roughlyspeaking,wewantedtoallowadeepinteractionbetweentheuserand architecturalchoicewastofocustheanimationmoreondatastructuresratherthanonalgo- theanimateddatastructuresusedbyanalgorithm,whilethealgorithmitselfwasrunningon them.thisisopposedtootheralgorithmicanimationswhichchooseaninput,visualizeit,and thenrunthealgorithmonit,withoutgivingmuchinformationonitsinternaldatastructures. oftenallowsonetoachieveabetteranddeeperunderstandingoftheinternaldetailsoftheal- Webelievethatthisfocusonanimatingdatastructureshasmanybenets.Firstofall,this
5 gorithm,whichisespeciallyimportantatdebugtime.furthermore,itensuresahigherdegree ofinteractivity,byexploitingthefactthatdatastructureshavemethodsforinputthatcanbe animatedaswell.finally,italsoimprovesthereusability,ascomplexanimatedalgorithmsand datastructurescanbeoftenobtainedasacompositionofsimpleranimateddatastructures. Figure1.Firstofall,CataiisdesignedsoastoprovidenaturallyaportableGraphicalUser Interface,andthisinterfaceisgivensimplybyaJavaprogram.Thesystemcanofcoursebe easilyusedintheweb:javaappletswithinanimationclientscanbeaccessedbyusingany Webelievethattherearethreemainnaturaloutcomesfromthisapproach,asshownin distributedalgorithms.finally,webelievethatthefocusofcataionreusabilityassuresa amongmultipleanimationclientstowardsthesamealgorithm,andevenallowsonetoanimate greatdegreeofeciencywithrespecttobothdevelopmenttimeandtheusageofnetwork standardjava-enabledwwwbrowser.thesecondfeatureisthatcataiallowscooperation Figure2,therearethreemaincomponentsinoursystem: resources. (1)Thealgorithmservers(AlgServer).TheseareexecutableprogramswritteninC++ WearenowreadytopresentinmoredetailsthearchitectureofCatai.Asillustratedin (2)Theanimationclients(Ci).Theyimplementtheusers'interfacestowardthealgorithms,andarewritteninJava. algorithmserver,andcoordinatesalltheinteractionsbetweenthem.oneofitsmain goalsistoprovidecoherencebetweenthenon-animateddatastructuresusedbythe algorithmserverandthecorrespondinggraphicalobjectshandledbyaclientci.itis andobtainedfromtheoriginalnon-animatedsourcecodesofthealgorithmswiththe supportofsomecommunicationprimitivesfromthecatailibrary. (3)Theanimationserver(S).Itisthemiddlelayerbetweenanimationclientsandthe TheAlgorithmServer alsowritteninjava. AnalgorithmserverAlgServerisanexecutableprogramwritteninC++withthesupportof somecommunicationprimitivesfromthecatailibrary.theseprimitivesaregroupedintwo virtualclasses:animatorandbootstrap.theanimatorclassprovidessomecommunication primitivestotheanimatedobjectsdenedinalgserver,whilethebootstrapclassmainly providestheinitializationroutinesnecessarytothecommunicationprimitives.inordertobe abletocommunicatewiththeanimationservers,theoriginalalgorithmmustbeencapsulated inaclassthathasaninterfaceknowntos. animatedalgorithma.thisprocessisstandard,sothatitcouldbeeasilymadeautomatic. Firstofall,thedatastructuresusedbyAthatwewanttodisplayareextendedtoanimated datastructures.wedenotebya'theresultingalgorithm.next,a'isencapsulatedinaclass WedescribenowhowtobuildanalgorithmserverAlgServerstartingfromanoriginalnon- (a)deningthetoplevelgraphicalobjectswhichwillbehandledbya'; classanimateda'isresponsiblefor: calledanimateda',whichisderivedfromtheanimatorandbootstrapvirtualclasses.the (b)deningthemethodanimateda'::a'()whichisusedtocallalgorithma';
6 Java Animation Server Animator Class Remote Interfaces Object Mapper Animation Libraries CORBA compliant Interface C++ Programs Multicast Forwarder AlgServer i Java Client C 1 Java Client C 2 Java Client C n End User End User... End User (c)deninganyextramethodsthathandlethegraphicalobjectsboundtotheuserinterface.allthesemethodswillbeoeredbytheserverstotheclientsci. Figure2:CataiBasicArchitecture. GUI GUI GUI fromtheoriginalnon-animatedclassandthevirtualclassanimator.theyarearedenedon Theanimatedclasses(i.e.,animateddatastructures)areobtainedusingmultipleinheritance librariesofs.thisimpliesthatananimatedclasscontainsnographicalobjectrepresentation,a thebaseoftheservicesoeredbytheanimationservers,whichareincludedintheanimation taskwhichisleftentirelytotheanimationservers.namely,anobjectresidesonanalgorithm serveralgserverwhileitsgraphicalrepresentationresidesontheanimationservers:thebinding betweenthesetwoentitiesisestablishedonlyatrun-time,bylatebinding. entdatastructurescanusethesameobjectrepresentation:forinstance,anyalgorithmusing nodescaninvokethesamenoderepresentationoeredbytheanimationservers.thiswill speeduptheprocessofgeneratingnewanimatedclasses,andwillallowtheusertoignorecompletelythedetailsbehindthegraphicalrepresentationoftheanimatedobjects.notethatthe animatedclasseswillmaintaintheiroriginalinterfacesandthuswillnotcauseanymodication totheoriginalalgorithm. AlgServer,thereisabootstrapphasewhereAlgServerannouncesitsservicestotheanimation servers.asanydistributedsystem,algserverneedstoagreewithsoncommonobjectinterfaces:afteraninitialsimplehandshake,theanimationserverslearnswhatisthelocalsupport WearenowreadytoexplainhowanalgorithmserverAlgServerworks.Whenoneruns Thisisperhapsoneoftheadvantagesofthisarchitecturewithrespecttoreusability.Dier- requiredbytheanimateddatastructuresinalgserverandwhataretheinterfacesexposed byalgserver.thealgorithmservercompletesthebootstrapphasebyenteringintoanevent
7 handlerloop,wherealgserverwaitsforconnectionrequestsfromtheanimationservers(i.e., handlerloopthatwillprovidethebasicguitotherelevantclientsthroughthealgorithm tobeselectedbyauserwishingtorunalgorithma'). servers.inthisguitheusercanhavemanyoptions,includingrunningthealgorithm.ifthis objectoftheclassanimateda'.theconstructorofthisclasswillenterinasecondevent WhenoneormoreusersselectAlgServer,theanimationserverSremotelyinstantiatesan TheAnimationServer optionisselected,theanimationserverswillinvoketheexecutionofalgorithma'throughthe remoteinvocationofanimateda'::a'(). Allthecoordinationbetweenthealgorithmserversononesideandtheanimationclientson theothersideiscarriedoutbytheanimationservers:indeed,oneoftheprimarygoalsofan animationserveristointerfacealgorithmserverswiththeirgraphicalrepresentationsonthe animationclients.asillustratedinfigure2,ananimationservercontainsfourbasicmodules: TheAnimatorClassRemoteInterfaces.Thislayerdenesthecommunicationprimitives andimplementsthejava/c++interoperabilityasacollectionofstubs/proxies.proxiesencapsulatenetworkcallsandaccessdistributedobjects:aproxylooksliketheserverobjectinterm functioncallsiscarriedoutviasectionsofthecodecalledstubcode.thislayerwillinterface outtheremotecallstoforwardthemtotheremoteobject.themechanismformakingremote ofthemethodsitimplements.however,itsimplementationoftheobjectmethodswouldcarry theguiofanalgorithmclientandbymappingthemontoeventsforobjectsonanalgorithm theremoteobjectsinstantiatedbyanalgorithmserverbyparsingtheeventsreceivedfrom server,andviceversa. ObjectMapper.Thismoduleisinchargeofmaintainingamappingbetweengraphicalobjects avisualobject,aneventwillbesenttothecorrespondingobjectonaparticularalgorithm server.ontheotherhand,eachtimeanalgorithmservermodiesthestateofanobject,a correspondingchangewillbeproducedontheuserdisplay. andtheircounterpartsonthecorrespondingalgorithmserver.eachtimeauserinteractswith AnimationLibraries.ThislayercontainsarepositoryofJavaclassesabletodrawgraphical denedhowtodrawabinarytreeandhowtodealwithit(moving,deleting,insertingnodes, objectsandtodenethestandardinteractionswiththem.forinstance,inthismoduleitis etcetc).whenanalgorithmserveralgserverisstarted,itrequestsalltheentriesofthe AnimationLibrariesthatarenecessaryforitsownanimateddatastructures.Ifavailable,the Multicastforwarder.Thismoduleprovidesone-to-manycommunicationandletmanyclients correspondingclassesaredownloadedtotheclientsthatwillrequestconnectiontoalgserver. runninginstanceofanalgorithmevenafterthealgorithmisstarted,themulticastforwarder interactwiththerunninginstanceofthealgorithm.asananimationclientmightjointhe containsacoordinationprotocolthatalignsalltheclientswiththealgorithmexecution.the andedges.whentheseupdatesarerequestedfromoneclient,alltheotherclientsarelocked interactwiththealgorithmserverinamutuallyexclusiveway.forexampleifweareexecuting samecoordinationprotocolmaintainsthesynchronizationprimitivesthatalloweachclientto analgorithmbasedondynamicgraphs,theusershouldbeabletocreateordeletenewnodes untiltheoperationisterminated.
8 AnimationclientsareJavaprogramstargetedtohandlingthreedierenttypesofevents.The TheAnimationClientsCi ofeventsareanimationdirectives:theseareeventsoriginatedbyanalgorithmserveralgserver generatedcommandssuchas\click",\drag-and-drop",and\shift+click".thesecondtype anddirectedtowardstheuserinterfaceofanalgorithmclientwhichrequiresomechangesinthe rsttypeareuser-generatedeventstowardsanalgorithmserveralgserver;theseincludemouse- graphicalpresentation;examplescanbeoperationslikecreateanewgraphicalobject,establish dynamicallyenteringthepoolofdisplayingdevicesforaparticularalgorithm.sinceallthe alignmentdirectivesusedbytheanimationserverstocoordinatemultipleclientsthatcanbe aconnectionbetweentwodierentgraphicalobjects,etc.thethirdtypeofeventsarethe communicationbetweenanimationclientsandalgorithmserversishandledbytheanimation servers,alltheseevents(includinguser-generatedeventsandanimationdirectives)arebetween animationclientsands. somealgorithmserver.iftheuserchoosesthealgorithmoeredbyaparticularalgorithmserver programcistarts,itlooksforananimationserverataspeciedaddress.next,cireceives fromtheanimationserversalistofavailablealgorithms,namelyallthealgorithmsrunningon Wenowdescribehowanimationclientsinteractwiththeanimationserver.Whenaclient thepoolofclientscurrentlyconnectedtothatalgorithmandcoordinatesalltheinteractions clientciandthecorrespondingalgserver.theanimationserversmaintainsinformationabout andtheupdatesonthedisplayforallthemembersofthepool.atthispoint,theclientcican AlgServer,thenanewvirtualconnectionisestablishedviatheanimationserverbetweenthe downloadallthedataitneedstodisplaythedatastructuresanimatedbyalgserver.fromnow on,eachclientwillbeabletocallsomeservices,suchassomeupdateoperationsonalgserver, animatedobject,eitheratinitializationtimeorduringtheexecutionofthealgorithm,thisnew objectwillbedisplayedontheclientsasinstructedbytheanimationservers. andtovisualizetheresultingevolution.ontheotherhand,whenalgserverallocatesanew onthetopofjavaawt(theabstractwindowtoolkitofthejavavirtualmachine).each server.theserverinturnwillusethebasicgraphicprimitivespresentintheclientcodebuilt denedintermofabstractobjectscontainedintheanimationlibrariesresidentintheanimation ThebasicGUIpresentedbytheclientsfollowstheinterfaceproposedbyAlgServer,whichis thismapwillbeupdatedwhenanewobjectiscreatedbyalgserver. AlgServerandtheGUIwilldirectlycalltheirmethodsasaremotemethodinvocation.Again, clientkeepitsownmapofalltheanimatedobjectsinordertobeabletoaddressthemon bycatai.firstofall,weshouldmentionthatanobject-orientedparadigmbyitselfoers reusability:ananimatedclass,onceithasbeendesigned,cannaturallyberecycledandextended.forinstance,wecaninheritananimatedlistclasstodeneeasilyananimatedstack Weconcludethissectionwithsomemorecommentsaboutthelevelofreusabilityoered deneanimatedclassesbyreusingallthegraphicalrepresentationsdenedintheanimation class.thereusabilityfeaturesofcataiareofcoursedeeperthanthat.indeed,onecanalso abasicanimationofmanysortingalgorithms.finally,andperhapsmoreimportantly,with resentation.orwecanuseanimatedarraysandanimatedliststoobtain,atnoextracost, anddierentimplementationsofgraphclassescouldsharemuchofthesamegraphicalrep- libraries.forinstance,thegraphicalrepresentationofanodeisthesameforgraphsandtrees, ourapproach,wecaneasilyexchangeandreuseanimateddatastructuresthatarebuilt-in somewhereinalgorithmservers.thiswasparticularlyusefulinourownexperience.
9 3ofclarity,wewilldescribethegeneralstepsthatmustbefollowedforaccomplishingthistask WenowdescribeinsomedetailshowtoprepareanalgorithmanimationwithCatai.Forsake AnExampleofAnimationwithCatai andatthesametimeillustratethemthroughaworkingexample:theanimationofkruskal's algorithmforcomputingaminimumspanningtree(mst)ofagraph[20]. willnallyconvergetoaminimumspanningtree.initially,theforestconsistsofnsingleton nodes(i.e.,theverticesinthegraph).thealgorithmscanstheedges,oneatthetimeand inincreasingorderoftheircost.iftheendpointsoftheedgeunderexaminationarealready Kruskal'salgorithmrstsortsalltheedgesbyincreasingcost,andthengrowsaforestthat edge),andthetwotreesaremergedintoone.foreciencyissues,thetreesaremaintainedas dierenttrees:theedgeisinsertedintotheforest(i.e.,itwillbeaminimumspanningtree setuniondatastructures[31].werefertoleda'simplementationofkruskal'salgorithm[22], connectedinthecurrentforest,thisedgeisdiscarded.otherwise,theendpointsareintwo whichmakeuseoftheclasspartitiontoimplementsetuniondatastructures. 3.1 Whilebuildinganalgorithmanimation,therstdecisiontobetakeniswhichdatastructures aretobeanimated.intheexampleathand,forinstance,itseemsnaturaltovisualizethe Howtoanimateanalgorithm graphbeingexplored;additionally,wecouldalsochoosetoanimatetheunderlyingpartition ananimationcanbebrokeninthreedierentsteps. givenbythesetuniondatastructures.oncethishasbeendecided,theprocessofdeveloping Cataiisgivenbytheanimationlibraries,whichintuitivelyprovideananimatedinterpretation Creatingananimationlibrary.Acrucialmodulewhichprovidesthebasicanimationin animationlibrariesforthealgorithmathand,thenwemustdeveloptheanimationlibraries of\howdatastructureswork".theselibrariesaretotallyindependentfromthedatastructures beinganimatedandcanbeeasilyreused.iftheanimationserverdoesnotsupportalready requiredbythealgorithm.inourexampleofminimumspanningtrees,cataicontainsalready animationlibrariestorepresentgraphobjects,andthusthistaskisempty.weremarkhere onewouldrarelyneedtobuildalgorithmiclibrariesfromscratch. thatcataisuppliesanimationlibrariesformosttextbookalgorithms,andthusintheaverage blocksofanimations.eachanimobjectcanhaveacustomizableappearanceandcanbere- latedtootheranimobjectsviaanimationlinks(animlinks):inparticular,animlinksde- neasetofanimobjectswithacommonproperty.tocreateanewanimationlibrary,wemust Animationlibrariesmanagesanimatedobjects(animobjects)whicharethebuilding Thelibstructclassprovidestheuserwithabasicsetofanimationprimitivestoadd,remove, whosepurposeistodenehowananimobjectandananimlinkisgraphicallyrepresented. rstcreateanewjavaobjectderivedfromacataiclass:thelibstructclass.eachanimationlibrarymustimplementtwospecialmethods(paintanimobjectandpaintanimlinks) select,labelandaccessbothananimobjectandananimlink. Creatinganimateddatastructures.Onceanimationlibrariesareavailable,weneedto revisetheimplementationoftheoriginaldatastructurestosupportsomeanimationcapabilities. CataioersaspecializedC++librarytoassistinthedevelopmentofanimatedclasses.The Wecallanimatedclassestheclassesthatimplementdatastructureswithsupportforanimation:
10 andfromtheanimatorclass:foreachmethodoftheoriginalclassthatwewanttoanimate, animationlibrary.ananimatedclasscanbederivedfromtheoriginalnon-animatedclass principalcomponentofthislibraryistheanimatorclass,whichprovidesanimationserver communicationprimitivesandbindingmechanismsbetweenadatastructureandtherelated togetherwiththeuseofoneormoreanimationprimitives.theseprimitivesmapsdatastructure wedeneanewmethodwiththesameprototypewhichholdstheoriginalmethodinvocation allanimationlibraries,whiletheirbehaviordependsontheanimationlibraryselected.to operatorstotheiranimatedcounterparts.theinterfaceofthesefunctionsiscommonfor achievebetteranimations,wecanextenddatastructuresbyintroducingsomeanimationspecicoperators,i.e.,operatorswhosefunctionalitydoesnotaectadatastructurebutonly itsvisualrepresentation. {public: animgraph(inttsockd):animator(tsockd,graph),graph(){} classanimgraph:publicgraph,publicanimator strap //GRAPHistheanimationlibraryiddefinedinAnimator //tsockdisthecommunicationchannelreferenceobtainedintheanimationboot //buildanimgraphasagraphplusanimator nodeanimgraph::new_node() {noden=graph::new_node(); }edgeanimgraph::new_edge(nodesrc,nodedst) Animator::new_obj((long)n,index(n)); returnn; //createanewnode //nextcreateanewanimobjectandbindittotheoriginalnode {edgee=graph::new_edge(src,dst); }voidanimgraph::color_node(nodev,intc) new_link((long)src,(long)dst,index(temp),(long)e); return(temp); //createanewedge //nextcreateanewanimlinkandbindittotheoriginaledge {Animator::color_obj((long)v,c); }; LEDAgraphandpartitiondatatypes.TheLEDAgraphclassusesasingleobjectwhichacts Inourrunningexampleofminimumspanningtree,thenon-animatedalgorithmusesthe Figure3:Thedenitionofanimgraphandsomeofitsmethods. asacontainertoholdnodesandedges.toobtaintheanimatedclass,wederivetheclass
11 animgraphfromtheledagraphclassandfromtheanimatorclass.themethodsthatwe wishtoanimatearethosewhichchangethegraph:adding,removingandmodifyingedges orvertices.apartfromthesemethods,wecouldalsoaddsomeextramethodsforanimation purposes.thedenitionoftheanimgraphclassandtheimplementationofsomeanimated methodsisgiveninfigure3.theanimatedpartitionclasscanbedenedwiththesame technique. Animatedalgorithm.Oncebothanimationlibrariesandanimateddatastructuresareavailable,wecannallycodetheanimatedalgorithm.TheresultingprogramwillcomplytoCatai protocolsandwillexhibitastandardanimation.thisanimationcouldbefurtherimprovedusinganimation-specicoperatorsandcataidirectortools.thesetoolsallowonetointeractin moredepthwithalgorithmandtocoordinateitsexecution.cataidenesalltheinteractions asastandardsetofevents:eachoftheseeventscanbeeasilyboundtoamethodinvocation. Apartfromtheseinteractions,Cataiprovidesalsotoolsforrequiringacknowledgmentsto end-users,forshowingcustomizabletextboxesandforsynchronizinganimationsplaying. Originalalgorithm Animatedalgorithm... G=newgraph();... list<edge>mst::kruskal(graph&g) {node_partitionp(g); list<edge>l=g.all_edges(); list<edge>t; L.sort(CMP_EDGES); edgee; forall(e,l){ nodev=source(e); nodew=target(e); if(!p->same_block(v,w)){ T.append(e); P->union_blocks(v,w); } }returnt; }... G=newanimgraph(sockd);... list<edge>mst::kruskal(animgraph&g) {anim_node_partitionp(g); list<edge>l=g.all_edges(); list<edge>t; L.sort(CMP_EDGES); edgee; forall(e,l){ color_edge(e,green); nodev=source(e); nodew=target(e); if(!p->same_block(v,w)){ T.append(e); color_edge(e,blue); color_node(v,blue); color_node(w,blue); P->union_blocks(v,w); }else{ color_edge(e,red); } }returnt; } Figure4:Kruskal'salgorithmforMSTinitsoriginal(LEDA-like)versionanditsanimation incatai.
12 Figure5:Theanimationstartsonagraph.Threealgorithmsareoeredbythealgorithm servers:scc1,kruskalandprim:theuserselectskruskal.allverticesinthegraphareoriginallycoloredyellow,andalledgesarecoloredblack. hand.startingfromtheoriginalcode,wereplacethestandardgraphandpartitionwiththeir animatedcounterparts.next,weaddsomeanimation-speciccodetohighlightthebehavior ofthealgorithm.forinstance,wecanchoosetocolorredtheedgewhichwearecurrently WearenowreadytoshowhowtoanimatetheimplementationofKruskal'salgorithmat itblue,andotherwisewewillcoloritred.endpointsofblueedgesarecoloredblue,sothat considering.ifthisedgewillbeincludedintheminimumspanningtree,thenwewillcolor aforestofbluetreesisvisualizedthroughouttheexecutionofthealgorithm.thisblueforest services(methods)thatcanberequestedbytheend-user.acomparisonbetweenthecodeof willconvergetoaminimumspanningtree.theresultingalgorithmisproposedasamethod theoriginalnon-animatedalgorithmandthecodeofanimatedalgorithmcanbeobtainedfrom ofacontainerobject,i.e.,anmstclass,andthepublicinterfaceofthisobjectwillreportthe Figure4.SomesnapshotsoftheactualanimationarecontainedinFigures5{7.
13 Figure6:Theanimationatthefourthstep:edges(2,5),(0,5)and(4,0)havebeenexamined andcoloredbluetogetherwiththeirendpoints,andtheedge(6,7)iscurrentlyexaminedand coloredgreen.thestateofthepartitionisshowntotheright:wehavegrownonlyoneblue tree(containingvertices0,2,4,5).alltheotherverticesarestillinsingletontrees. inperspective. Inthissection,wesummarizethebasiccharacteristicsofCatai,andtrytoputitscontributions 4 TheMainFeaturesofCatai certainway,muchofthecontrolistransferredbythealgorithmtotheuser,asatruntimethe andnavigationofdatastructures.consequently,theanimationcanbeusedtrulyasabasic userisallowedadeepcoordinationofthealgorithmanimationthroughthevisualmanipulation Firstofall,wedesignedCataisothatitoersanadvancedsupportforinteraction.Ina especiallywhenusingalgorithmanimationinprogramdevelopmentanddebugging:wecould ontherunningalgorithm.othersystemsthatweareawareofmainlyimplementverysimple putsomedatastructuresinnon-standardorwrongcongurations,andvisualizetheeects GUIforaccessingthealgorithmpropertiesandfunctionalities.Wefoundthisveryuseful formsofinteractions,whichdonotinvolvevisualrepresentationsandonlyallowtheuserto executeaxedsetoffunctionsforeachalgorithm;veryoften,theargumentsofthesefunctions cannotbespeciedbyinteractingwiththeanimation.
14 havebeenexaminedandcoloredbluetogetherwiththeirendpoints,edge(5,3)hasbeencolored Figure7:Theanimationattheeighthstep:edges(2,5)(0,5),(4,0),(6,7),(4,3)and(1,7) red,andtheedge(3,8)iscurrentlyexaminedandcoloredgreen.thestateofthepartitionis showntotheright:wehavegrowntwobluetrees(onecontainingvertices0,2,3,4,5andthe othercontainingvertices1,6,7).vertices8and9arestillinsingletontrees. mation.indeed,thesystemguaranteesaclosematchbetweenthebehaviorofthealgorithm executionanditsanimatedcounterpart.othersystemsuseaclassicalevent-drivenapproach: animationdirectivesrelyonspecicfunctioncallsspreadalongthealgorithmicsourcecode. Furthermore,Cataioersahighdegreeofadherencebetweenthealgorithmanditsaniwaysautomaticallyassured.Onthecontrary,Cataipresentsanevolutionoftheevent-driven directive.thisisaconditionwhichisleftentirelytotheprogrammer,andthuscannotbeal- Thistecniquedoesnotalwaysassureadherenceastheonlyrelationbetweentheexecutionof approach,asitencapsulateseachanimatedoperatortogetherwiththeanimationlinkina afunctionanditsanimatedvisualizationistheconcomitantinvocationoftherightanimation thealgorithmfollowscloselytheanimation:indeed,theanimationisdirectlyboundtothe eratorinvocationwillbefollowedbytheexecutionofitsanimatedcounterpartandthusthere istheguaranteethateach\step"inthealgorithminduces\step"intheanimation.conversely, containermethod.inthisway,theanimationfollowscloselythealgorithm:eachanimatedop-
15 methodsofthealgorithm,sothateachuserinteractionisforwardedbytheanimationtothe algorithm,whereittakestheshapeofmethodinvocation. numberofpossiblyverycomplexdatastructures,andwebelievethatcataiscalesupnaturally withrespectbothtothenumberandtothecomplexityofdatastructures.indeedincatai, graphicalobjectsandanimationreferencesareinternallykeptintheanimationservers,so Thenextfeaturewementionisscalability,i.e.,howasystemdealstheanimationofalarge ofdatastructuresrequiresnomoreeorttotheuserthananimatingasmallnumberofthem. Theonlyextraeortrequiredwhenanimatingalargenumberofdatastructuresisforhighly thatusersdonotneedtodealdirectlywiththem.consequently,animatingalargenumber interactiveanimations,asinthiscasetheusermustspecifywhicharetheinteractionsand thedatastructuresinvolvedwiththeseinteractions.thisismuchmorecomplicatedforother thesesystemsclearlygrowswiththenumberofdatastructuresinvolved.asforscalabilitywith alltheallocatedgraphicalobjectsandtheircorrespondencewithdatastructures.theeortin systems,whichrequire,apartfromwritingtheanimationcode,someadditionaleortstotrack respecttothecomplexityofdatastructures,othersystemsdonotseemtoprovideaspecic solutiontothisproblem:itseemstousthattheuserneedstowritecomplexanimationcode assemblingtheminanobject-orientedfashionedmanner. complexdatastructurescanbebuiltbyrstanimatingsimplerdatastructuresandthenby inordertoanimatecomplexdatastructures.incatai,mostofthetimestheanimationof ofsettingupananimation.indeed,itoersagoodtrade-obetweenthelevelofreusability, theaveragetimeittakestoanon-sophisticatedprogrammertodevelopananimation,andthe basicknowledgerequiredtousethesystem.weemphasizeherethatweconsiderthecasewhere Inourpersonalexperience,Cataiwasaneectivetoolforreducingtheoverallcomplexity important,asinmanycasestasksthataretrivialfortheknowledgeableandexpertprovider ofasystemmightbeverydiculttoachieveforthetypicaluser.ifonewishestoanimatean algorithmwithcatai,therearethreepossiblescenarios: auserofthesystem(nottheprovider!)wishestosetupananimation.thisisparticularly (B)Onlytheanimationlibraryisavailable; (A)Nosupportisavailable(noanimationlibraryandnoanimateddatastructures). (C)Theanimationlibraryandananimatedimplementationoftheunderlyingdatastructuresarealreadyavailable; animationlibrariesfromscratch:thisimpliesamedium/highdevelopmenttime(perhapscomparabletothedevelopmenttimerequiredbyothersystems),andabasicknowledgeofc++, JavaandCorba.Incase(B),whichwebelievewillbetheaveragecaseforaCataiuser,the maintaskistoderivetheanimateddatastructuresfromthenon-animatedcode.asitcanbe inferredfromfigures3and4,inthiscasethedevelopmenttimeistypicallylow/medium,and onlyamoderateknowledgeofc++isrequired.finally,incase(c)theanimationwithcatai isstraightforward:onlyasimpleknowledgeofc++isrequiredtocomposetheexistingpieces, andthetimerequiredtodeveloptheanimationisextremelylow(ifany),asitcanbeseenfrom placedanywhereprovidedthattheyshareacommunicationchannel.perhapsevenmorethan Mocha,Cataiheavilyreliesondistributedobjects,whichhavebeendevelopedusingaCORBA Figure4. Incase(A)whennosupportforthedatastructuresisavailable,theuserhastocreate SimilarlytoMocha[2],Cataiisatrulydistributedarchitecture:allitscomponentscanbe
16 compliantprotocol.inaddition,thehttpprotocolisusedfordownloadingthejavaclasses neededandabsdsocketmessageinterfaceisusedforthecommunicationaddressedbyan algorithmservertowardstheanimationserver.theoverallcommunicationloadistypicallylow alowcostusingshortmessages:basicallyonlyinvocationofmethodsonremoteobjects.this sincealltheanimatedscenesresideonanimationclientsandtheiractivationcanbeobtainedat givesaneectivesupporttotheanimationofdistributedalgorithms,whichcanbenaturally tioncanbeexportedremotelywhiletheanimatedprogramismaintainedonasafehost,and implementedwithmultiplealgorithmservers. overallsecurity,ascommunicationprotocolsexportlimitedresourcesandonlytothepoolof animationcomponents. Finally,asmanyothersystemsCataioersagooddegreeofcodeprotection,asananima- inmanyareas,includingeducationalsupportespeciallyfordistancelearning.infact,many makeinformationpubliclyavailable,theworldwidewebhasalreadyshownitslargepotential ofintegrationintheworldwideweb(www)environment.althoughoriginallydevelopedto WeconcludethissectionbymentioninganotherfeatureofCatai,whichrelatestoitsease educationalsystemsbasedonwwwhavebeenrecentlydevelopedandtheeducationaluseof WWWhasattractedalotofattention(seee.g.,[16,19]).ThepotentialofWWWasaneducationaltoolhavealsobeenstudiedintheareaofComputerSupportedCooperativeWorkgroup bythecurrentnetworktechnologytocooperativeworkgroup.inbothareas,thereisagreat (CSCW)[1,13,14,15,17,23,24]whichingeneralisconcernedwiththenewpossibilitiesoered studentsandinstructors.infact,theaspectofthe\ordinary"classroomthatliesintheinteractionsbetweenthestudentsandtheinstructorandamongstudentsthemselveshasstimulated ThearchitectureofCataiisnaturallyintegratedintheWeb:infactWWWservers(HTTP alotofworkonseveralsystemsfor\sharedworkgroup"onwww[4,5,11,18,21,26,32]. server)andwwwclients(browsers)canbemapped,respectively,tocataianimationservers andanimationclients,andananimationclientcanbeevenusedasanappletwithinanhtml page(whiletheanimationservercanbemanagedbyawwwserver). dealofattentionontheusageofwwwforafullyintegratedcooperativeenvironmentbetween thevisualizationofthealgorithmscooperativelywithotherstudentsorwiththeinstructor. canlearnaparticularsetofalgorithms,seesomeoftheirimplementations,andinteractwith educationalsystems,whereastudentcaninteractwithalgorithmiccourseware:heorshe TheintegrationofCataiwiththeWebcanbeextremelyusefulinthedesignofintegrated Cataicanallowaneasy,ecient,distributedandinteractiveaccesstosuchprocesses.For repositoriesstoredsomewhereelse,suchinthecaseofreal-timemonitoringprocesses:indeed instance,wecaneasilyaddmethodstoanimateddatastructuresandalgorithmsthatallowfollowing\links"(url's)totherestofthewww.asanexample,wearecurrentlyinvestigating aparticularapplicationwhichisconnectedtomonitoringnetworkcongestionsviatheweb:we haveanetwork,andwewishtondtheshortestpath(orsomeotherparticularpaths)toa setofdestinations.insomecases,shortestpathsarenotdeeplyinformative,andonewould liketoobtainatrulyreal-timeinteractionwiththenetwork,i.e.,byclickingonalinktoget informationonthecurrenttracpatternonthatlink(e.g.,roadconditions,linkcongestions, Moreover,Cataioersthepossibilityofvisualizingalgorithmsthatcanberelatedtodata etc).aprototypeofthiskindseemstorequirenotmucheortwithcatai.
17 loweortrequiredforsettingupanewanimation,andthepossibilityofembeddinganimation 5Wehavepresentedanewsystemforalgorithmanimation,whosemainfeaturesincludeatypical Conclusions tweentwodierentviewpoints:theprogrammer'sperspective,whichtypicallyincludesthegoal clientsinstandardjava-enabledwebbrowsers.webelievethistobeagoodcompromisebe- believethattakingintoaccountboththesetwoviewsisimportant,astheprogrammerand theuserofananimationsystemcanoftenbeunitedinthesameperson:e.g.,aprogrammer ofanimatingquicklyandecientlyagivenalgorithmiccode,andtheuser'sperspective,which clearlybenetsfromhighlyinteractive,easy-to-use,distributedandcooperativeinterfaces.we studentoraninstructorwishingtosetupandinteractwithhis/heranimationofanalgorithm. wishingtousealgorithmanimationtovisualizeanddebughis/herownalgorithmiccode,ora References [1]W.Appelt,U.Busbach.\TheBSCWSystem:AWWWbasedApplicationtoSupportCooperationofDistributedGroups".GMD-GermanNationalResearchCentreforInformationTechnology.SanktAugustin, [3]J.E.Baker,I.F.Cruz,G.Liotta,andR.Tamassia.\AlgorithmanimationovertheWorldWideWeb".In [2]J.E.Baker,I.F.Cruz,G.Liotta,andR.Tamassia.\TheMochaalgorithmanimationsystem".InProc. Germany [4]R.Bentley,T.Horstmann.\SupportingcollaborativeinformationsharingwiththeWorldWideWeb:the Proc.Int.WorkshoponAdvancedVisualInterfaces,pp ,1996. Int.WorkshoponAdvancedVisualInterfaces,pp ,1996. [5]R.Bentley,U.Busbach,K.Sikkel.\TheArchitectureoftheBSCWSharedWorkspaceSystem".In: stituteoftechnology,cambridge(usa)1995. BSCWSharedWorkspacesystem".WorkshoponWorldWideWebandCollaboration,MassachusettsIn- [6]Brown,M.H.,Sedgewick,R..\ASystemforAlgorithmAnimation".InProceedingsofACMSIGGRAPH [7]Brown,M.H.,Sedgewick,R.\TechniquesforAlgorithmAnimation".IEEESoftware,2(1):28-39,1985. `84,(pp ).NewYork:ACM.1984 ProceedingsoftheERCIMworkshoponCSCWandtheWeb.SanktAugustin,Germany,February1996. [9]Brown,M.H.\Zeus:ASystemforAlgorithmAnimationandMulti-ViewEditing".InProceedingsofIEEE [8]Brown,M.H.\AlgorithmAnimation".NewYork:MITPress. [10]M.H.Brown,J.Hershberger.\ColorandSoundinAlgorithmAnimation".Computer,n.25.pp WorkshoponVisualLanguages,(pp.4-9).NewYork:IEEEComputerSocietyPress.Seealso:Brown,M. [11]D.M.Chiu,D.Grin.\WorkgroupWebForum:ToolsandapplicationsforWWW-basedgroupcollaboration".WorkshoponWorldWideWebandCollaboration,MassachusettsInstituteofTechnology,Cambridge H.\Zeus:ASystemforAlgorithmAnimationandMulti-viewEditing".(ResearchReportNo.75).DEC SystemsResearchCenter,PaloAlto,CA. [12]A.vanDam.\TheElectronicClassrom:Workstationsforteaching".Intnl.JournalofMan-MachineStudies"..21(4),pp ,1984. oftheercimworkshoponcscwandtheweb.sanktaugustin,germany,february1996. (USA)1995. [13]D.Decouchant,M.RSalcedo.\Alliance:AStructuredCooperativeEditorontheWeb".In:Proceedings [14]P.DeBra,A.Aerts.\Multi-UserPublishingintheWeb:DRess,ADocumentRepositoryServiceStation". [15]A.Dix.\ChallengesandPerspectivesforCooperativeWorkontheWeb".In:ProceedingsoftheERCIM In:ProceedingsoftheERCIMworkshoponCSCWandtheWeb.SanktAugustin,Germany,February workshoponcscwandtheweb.sanktaugustin,germany,february1996.
18 [17]J.I.Griera.\ManagingCSCW".In:ProceedingsoftheERCIMworkshoponCSCWandWeb.Sankt [16]D.Dwyer,K.Barbieri,H.M.Doerr.\CreatingaVirtualClassroomforInteractiveEducationontheWeb". [18]T.Gruber.\CollaboratingaroundSharedContentontheWWW".WorkshoponWorldWideWeband Augustin,Germany,February1996. Proc.ofWWW95,ThirdInternationalConferenceonWorldWideWeb. [19]B.Ibrahim,S.D.Franklin.\AdvancedEducationalUsesoftheWorldWideWeb".Proc.ofWWW95,3rd [20]J.B.Kruskal.\Ontheshortestspanningsubtreeofagraphandthetravelingsalesmanproblem".Proc. Collaboration,MassachusettsInstituteofTechnology,Cambridge(USA)1995. InternationalConferenceonWorldWideWeb. [22]K.MehlhornandS.Naher:\LEDA:APlatformforCombinatorialandGeometricComputing",CommunicationsoftheACM,38(1),96{102,1995. [url: [21]K.MacArthur.\Collaboration,KnowledgerepresentationandAutomatability". Amer.Math.Soc.7(1956),pp.48{50. [23]D.R.Newman,\HowcanWWW-basedgroupwarebettersupportcriticalthinkinginCSCL".In:ProceedingsoftheERCIMworkshoponCSCWandtheWeb.SanktAugustin,Germany,February1996. [24]R.Peters,C.Neuss.\CrystalWeb{ADistributedAuthoringEnvironmentfortheWorldWideWeb".Proc. [25]Price,B.A.,Baecker,R.M.,andSmall,I.S.\APrincipledTaxonomyofSofwareVisualization".Journalof [26]M.Roscheisen,T.Winograd.\GeneralizedAnnotationsforSharedCommenting,ContentRating,and ofwww95,3rdinternationalconferenceonworldwideweb. VisualLanguagesandComputing4(3): [27]J.T.Stasko.\Tango:AFrameworkandSystemforAlgorithmAnimation".IEEEComputer,23(9),pp. OtherCollaborativeUsage".WorkshoponWorldWideWebandCollaboration,MassachusettsInstituteof Technology,Cambridge(USA)1995. [29]J.T.Stasko.\SupportingStudent-BuiltAlgorithmAnimationasaPedagogicalTool".InProc.ofofthe [28]J.T.Stasko,E.Kraemer.\AMethodologyforBuildingApplication-SpecicVisualizationsofParallelPrograms".Tech.Rep.GIT-GVU (ftp://ftp.cc.gatech.edu/pub/gvu/tech-reports/92-10.ps.Z) 27-39,1990. [30]SoftwareVisualization.JohnT.Stasko,JohnB.Domingue,MarcH.Brown,andBlaineA.Price(Eds.). ACMSIGCHI'97ConferenceonHumanFactorsinComputingSystems,Atlanta,GA,USA [31]R.E.Tarjan,J.vanLeeuwen.\Worst-caseanalysisofsetunionalgorithms.J.Assoc.Mach.31(1984), [32]S.Virdhagriswaran,M.Webb,J.Mallatt.\SharedInformationSpace:AnInteractive,CollaborativeSystem MITPress,1998. EnablementPerspective".WorkshoponWorldWideWebandCollaboration,MassachusettsInstituteof Technology,Cambridge(USA)1995. pp.245{281.
Digital Library for Multimedia Content Management
Digital Library for Multimedia Content Management Cezary Mazurek, Maciej Stroinski, Sebastian Szuber Pozna_ Supercomputing and Networking Centre, ul. Noskowskiego 10, 61-704 Pozna_, POLAND tel. +48 61
-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6<6725$*
-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6
How To Install Linux Titan
Linux Titan Distribution Presented By: Adham Helal Amgad Madkour Ayman El Sayed Emad Zakaria What Is a Linux Distribution? What is a Linux Distribution? The distribution contains groups of packages and
The functions of system LSI become more and more complicated
The functions of system LSI become more and more complicated Current requirement Data processing Compliant to new formats Further expand requirement Innovations of the user interface Recognizing outside
BIRT Application and BIRT Report Deployment Functional Specification
Functional Specification Version 1: October 6, 2005 Abstract This document describes how the user will deploy a BIRT Application and BIRT reports to the Application Server. Document Revisions Version Date
Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala
Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala BX 14: 3rd International Workshop on Bidirectional Transformations @EDBT/ICDT 14, Athens, Greece Arif Wider Humboldt-University
LMT Lustre Monitoring Tools
LMT Lustre Monitoring Tools April 13, 2011 Christopher Morrone, P. O. Box 808, Livermore, CA 94551 This work performed under the auspices of the U.S. Department of Energy by under Contract DE-AC52-07NA27344
SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS
SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS Bimal Aklesh Kumar Department of Computer Science and Information Systems Fiji National University Fiji Islands [email protected]
A J2EE based server for Muon Spectrometer Alignment monitoring in the ATLAS detector Journal of Physics: Conference Series
A J2EE based server for Muon Spectrometer Alignment monitoring in the ATLAS detector Journal of Physics: Conference Series Andrea Formica, Pierre-François Giraud, Frederic Chateau and Florian Bauer, on
What is a workflow? Workflows are a series of actions that correspond to a work process
SharePoint 2010 What is a workflow? Workflows are a series of actions that correspond to a work process For example a document approval process Workflows can control most aspects of a SharePoint 2010 site,
Settlers of Catan Phase 1
Settlers of Catan Phase 1 Objective In this phase you will design, implement, and test the following subsystems: 1. Catan Model 2. Server Proxy 3. Server Poller Catan Model The Catan Model will be at the
What do you think? Definitions of Quality
What do you think? What is your definition of Quality? Would you recognise good quality bad quality Does quality simple apply to a products or does it apply to services as well? Does any company epitomise
OPERATING SYSTEM SERVICES
OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered
NetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting
Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models
Table of Contents J2EE Technology Application Servers... 1 ArchitecturalOverview...2 Server Process Interactions... 4 JDBC Support and Connection Pooling... 4 CMPSupport...5 JMSSupport...6 CORBA ORB Support...
Effective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
Example. Represent this as XML
Example INF 221 program class INF 133 quiz Assignment Represent this as XML JSON There is not an absolutely correct answer to how to interpret this tree in the respective languages. There are multiple
THE SOFTWARE DEVELOPMENT LIFE CYCLE *The following was adapted from Glencoe s Introduction to Computer Science Using Java
THE SOFTWARE DEVELOPMENT LIFE CYCLE *The following was adapted from Glencoe s Introduction to Computer Science Using Java Developing software is a very involved process, and it often requires numerous
SOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes) John Ousterhout Sun Microsystems Laboratories [email protected] http://www.sunlabs.com/~ouster Introduction Threads: Grew up in OS world (processes).
Client-Server Applications
Client-Server Applications Prof. Sanjeev Setia Distributed Software Systems CS 707 Distributed Software Systems 1 Client Server Systems Distributed Software Systems 2 1 Client/Server Application Distributed
Philosophy of GIMnet
Philosophy of GIMnet Software Modularity and Reusability through Service Oriented Architecture and Hardware Abstraction Introduction GIMnet MaCI GIMnet = tcphub + GIMI Enables communication between distributed
What Is the Java TM 2 Platform, Enterprise Edition?
Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today
Integrating Databases, Objects and the World-Wide Web for Collaboration in Architectural Design
Integrating Databases, Objects and the World-Wide Web for Collaboration in Architectural Design Wassim Jabi, Assistant Professor Department of Architecture University at Buffalo, State University of New
Comparison of Software Development Productivity by EJB Versions with Enterprise of Standardization
Comparison of Software Development Productivity by EJB Versions with 1 Gui Jung Kim, 2 Myeong Ho Lee, 1, First Author Dept. of Biomedical Eng., Konyang University, [email protected] 2, Corresponding
Software Development around a Millisecond
Introduction Software Development around a Millisecond Geoffrey Fox In this column we consider software development methodologies with some emphasis on those relevant for large scale scientific computing.
Three Stages for SOA and Service Governance
Three Stages for SOA and Governance Masaki Takahashi Tomonori Ishikawa (Manuscript received March 19, 2009) A service oriented architecture (SOA), which realizes flexible and efficient construction of
Enterprise Application Integration
Enterprise Integration By William Tse MSc Computer Science Enterprise Integration By the end of this lecturer you will learn What is Enterprise Integration (EAI)? Benefits of Enterprise Integration Barrier
Electronic Data Capture At Emory University. Research and Health Sciences IT Division
Electronic Data Capture At Emory University Research and Health Sciences IT Division Research Scenarios An investigator wants to collect discrete data at single or multiple sites for a prospective or retrospective
9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?
What is Programming? CSCI 209: Software Development Sara Sprenkle [email protected] "If you don't think carefully, you might think that programming is just typing statements in a programming language."
Software support for economic research at CNB
Software support for economic research at CNB Modern tools for financial analysis and modeling František Brázdik Macroeconomic Forecasting Division [email protected] Czech National Bank May 23,
Review of Mobile Applications Testing with Automated Techniques
Review of Mobile Testing with Automated Techniques Anureet Kaur Asst Prof, Guru Nanak Dev University, Amritsar, Punjab Abstract: As the mobile applications and mobile consumers are rising swiftly, it is
Java Technology in the Design and Implementation of Web Applications
Java Technology in the Design and Implementation of Web Applications Kavindra Kumar Singh School of Computer and Systems Sciences Jaipur National University Jaipur Abstract: This paper reviews the development
ITG Software Engineering
Introduction to Cloudera Course ID: Page 1 Last Updated 12/15/2014 Introduction to Cloudera Course : This 5 day course introduces the student to the Hadoop architecture, file system, and the Hadoop Ecosystem.
CORBA and object oriented middleware. Introduction
CORBA and object oriented middleware Introduction General info Web page http://www.dis.uniroma1.it/~beraldi/elective Exam Project (application), plus oral discussion 3 credits Roadmap Distributed applications
Efficiency Considerations of PERL and Python in Distributed Processing
Efficiency Considerations of PERL and Python in Distributed Processing Roger Eggen (presenter) Computer and Information Sciences University of North Florida Jacksonville, FL 32224 [email protected] 904.620.1326
Complete Java Classes Hadoop Syllabus Contact No: 8888022204
1) Introduction to BigData & Hadoop What is Big Data? Why all industries are talking about Big Data? What are the issues in Big Data? Storage What are the challenges for storing big data? Processing What
Classic Grid Architecture
Peer-to to-peer Grids Classic Grid Architecture Resources Database Database Netsolve Collaboration Composition Content Access Computing Security Middle Tier Brokers Service Providers Middle Tier becomes
Reduces development time by 90%
Symphonia. Symphonia Messaging Toolkit A developer s productivity tool that Reduces development time by 90% Message Definition Huge Message Libraries Message Testing - Explorer Symphonia Engine (processes
Building Applications with Protégé: An Overview. Protégé Conference July 23, 2006
Building Applications with Protégé: An Overview Protégé Conference July 23, 2006 Outline Protégé and Databases Protégé Application Designs API Application Designs Web Application Designs Higher Level Access
CT505-30 LANforge-FIRE VoIP Call Generator
1 of 11 Network Testing and Emulation Solutions http://www.candelatech.com [email protected] +1 360 380 1618 [PST, GMT -8] CT505-30 LANforge-FIRE VoIP Call Generator The CT505-30 supports SIP VOIP
Intro to Docker and Containers
Contain Yourself Intro to Docker and Containers Nicola Kabar @nicolakabar [email protected] Solutions Architect at Docker Help Customers Design Solutions based on Docker
VisuSniff: A Tool For The Visualization Of Network Traffic
VisuSniff: A Tool For The Visualization Of Network Traffic Rainer Oechsle University of Applied Sciences, Trier Postbox 1826 D-54208 Trier +49/651/8103-508 [email protected] Oliver Gronz University
The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1
S C H E D A E I N F O R M A T I C A E VOLUME 20 2011 The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1 Zdzis law Onderka AGH University
A Performance Analysis of Distributed Indexing using Terrier
A Performance Analysis of Distributed Indexing using Terrier Amaury Couste Jakub Kozłowski William Martin Indexing Indexing Used by search
JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications
SOFTWARE ENGINEERING TRACK JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS Module 1 - Office Applications This subject enables users to acquire the necessary knowledge and skills to use Office
Developing a MapReduce Application
TIE 12206 - Apache Hadoop Tampere University of Technology, Finland November, 2014 Outline 1 MapReduce Paradigm 2 Hadoop Default Ports 3 Outline 1 MapReduce Paradigm 2 Hadoop Default Ports 3 MapReduce
Distributed Systems. Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets
I. Introduction II. Fundamental Concepts of Architecture models; network architectures: OSI, Internet and LANs; interprocess communication III. Time and Global States Clocks and concepts of time; Event
Software Engineering: Analysis and Design - CSE3308
CSE3308/DMS/2004/25 Monash University - School of Computer Science and Software Engineering Software Engineering: Analysis and Design - CSE3308 Software Quality CSE3308 - Software Engineering: Analysis
FTP Server/Client in Haskell and Java
FTP Server/Client in Haskell and Java Team Members Dustin Pfeiffer Coy Humphrey Compare and Contrast Networking Libraries Threading Code readability Ease of use The Little Haskells Comparative Programming
End-user Tools for Application Performance Analysis Using Hardware Counters
1 End-user Tools for Application Performance Analysis Using Hardware Counters K. London, J. Dongarra, S. Moore, P. Mucci, K. Seymour, T. Spencer Abstract One purpose of the end-user tools described in
Operating Systems and Networks
recap Operating Systems and Networks How OS manages multiple tasks Virtual memory Brief Linux demo Lecture 04: Introduction to OS-part 3 Behzad Bordbar 47 48 Contents Dual mode API to wrap system calls
Software design (Cont.)
Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java
Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney
Frysk The Systems Monitoring and Debugging Tool Andrew Cagney Agenda Two Use Cases Motivation Comparison with Existing Free Technologies The Frysk Architecture and GUI Command Line Utilities Current Status
IDL. Get the answers you need from your data. IDL
Get the answers you need from your data. IDL is the preferred computing environment for understanding complex data through interactive visualization and analysis. IDL Powerful visualization. Interactive
In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal
Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto [email protected] Luís Teixeira INESC Porto, Universidade Católica Portuguesa [email protected] Luís Corte-Real
Project Proposal Distributed Project Management
Proposal Distributed Management by Passakon Prathombutr Ashok Emani CS551 Fall 2001 CSTP UMKC 1 Contents Introduction...3 Goal and Objectives...4 Overall goal... 4 Specific objectives... 4 Significance...
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
Microsoft Windows PowerShell v2 For Administrators
Course 50414B: Microsoft Windows PowerShell v2 For Administrators Course Details Course Outline Module 1: Introduction to PowerShell the Basics This module explains how to install and configure PowerShell.
Evaluation of Load/Stress tools for Web Applications testing
May 14, 2008 Whitepaper Evaluation of Load/Stress tools for Web Applications testing CONTACT INFORMATION: phone: +1.301.527.1629 fax: +1.301.527.1690 email: [email protected] web: www.hsc.com PROPRIETARY
AndroLIFT: A Tool for Android Application Life Cycles
AndroLIFT: A Tool for Android Application Life Cycles Dominik Franke, Tobias Royé, and Stefan Kowalewski Embedded Software Laboratory Ahornstraße 55, 52074 Aachen, Germany { franke, roye, kowalewski}@embedded.rwth-aachen.de
Automation using Selenium
Table of Contents 1. A view on Automation Testing... 3 2. Automation Testing Tools... 3 2.1 Licensed Tools... 3 2.1.1 Market Growth & Productivity... 4 2.1.2 Current Scenario... 4 2.2 Open Source Tools...
Audio networking. François Déchelle ([email protected]) Patrice Tisserand ([email protected]) Simon Schampijer (schampij@ircam.
Audio networking François Déchelle ([email protected]) Patrice Tisserand ([email protected]) Simon Schampijer ([email protected]) IRCAM Distributed virtual concert project and issues network protocols
Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure
University of California at Berkeley School of Information Management and Systems Information Systems 206 Distributed Computing Applications and Infrastructure Layering a computing infrastructure Middleware
PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY
PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY Andrés Moreno and Niko Myller, University of Joensuu Introduction Jeliot Family is a group of program visualization
Current Status of Development of New VLBI Data Analysis Software
Current Status of Development of New VLBI Data Analysis Software Sergei Bolotin, John M. Gipson, David Gordon, Daniel S. MacMillan NVI, Inc. 7257D Hanover Parkway Greenbelt, MD 20770 NASA Goddard Space
Product Overview. Contents
Contents Product Overview Copyright 2002 - Xware AB. All rights reserved. xtrade is a registered trademark of Xware AB. Symphonia is a trademark of Orion Systems New Zealand Ltd. All rights reserved. 2
ios Application Development &
Introduction of ios Application Development & Swift Programming Language Presented by Chii Chang [email protected] Outlines Basic understanding about ios App Development Development environment: Xcode IDE Foundations
Distributed Systems Architectures
Software Engineering Distributed Systems Architectures Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain the advantages and disadvantages of different distributed systems
Analysis and Design of Software Systems Practical Session 01. System Layering
Analysis and Design of Software Systems Practical Session 01 System Layering Outline Course Overview Course Objectives Computer Science vs. Software Engineering Layered Architectures Selected topics in
Property & Casualty Insurance Solutions from CCS Technology Solutions
Property & Casualty Insurance Solutions from CCS Technology Solution presents OneTimePortal (Powered by WEBSPHERE), Web-based software platform for property and casualty insurers that are seeking to reduce
STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES
Volume 3, No. 12, December 2012 Journal of Global Research in Computer Science RESEARCH PAPER Available Online at www.jgrcs.info STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES Vishawjyoti * and Sachin
Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy
Google Web Toolkit Introduction to GWT Development Ilkka Rinne & Sampo Savolainen / Spatineo Oy GeoMashup CodeCamp 2011 University of Helsinki Department of Computer Science Google Web Toolkit Google Web
Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems
Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems Author: P.Ramachandran Name: Date: Designation: March 2 nd, 2005 Date: February, 2004 0 Agenda Background
IP Interface for the Somfy Digital Network (SDN) & RS485 URTSII
IP Interface for the Somfy Digital Network (SDN) & RS485 URTSII Internet Protocol (IP) Interface Product Options Cat # 1810815 IP Interface Only Cat # 1810870: Interface and DB9/RJ45 Adapter (9015028)
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency 1. 420-PA3-AB Introduction to Computers, the Internet, and the Web This course is an introduction to the computer,
CSE 3214: Computer Network Protocols and Applications
CSE 3214: Computer Network Protocols and Applications 1 Course Web-Page: Instructor: http://www.eecs.yorku.ca/course/3214/ (all lecture notes will be posted on this page) Natalija Vlajic ([email protected])
Mobilize Your ERP with ADF Mobile
Mobilize Your ERP with ADF Mobile Ramesh Kumar ealliance Corp Founder & CEO [email protected] 630-618-0916 1 ealliance Background ealliance started in 1998 as an Oracle Partner specializing in Oracle
Platform Independent Mobile Application Development
International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 5 (2014), pp. 527-532 International Research Publications House http://www. irphouse.com /ijict.htm Platform
Troubleshooting for Yamaha router
Troubleshooting for Yamaha router How to troubleshoot This document describes how to troubleshoot for Yamaha router. - Some points which should be considered before the trouble - What you should do when
IBM Rational Web Developer for WebSphere Software Version 6.0
Rapidly build, test and deploy Web, Web services and Java applications with an IDE that is easy to learn and use IBM Rational Web Developer for WebSphere Software Version 6.0 Highlights Accelerate Web,
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
S P I E Information Environments Shibboleth and Its Integration into Security Architectures. EDUCAUSE & Internet 2 Security Professionals Conference
Shibboleth and Its Integration into Security Architectures Christian Fernau, Francisco Pinto University of Oxford EDUCAUSE & Internet 2 Security Professionals Conference Denver, CO 10-12 April 2006 16:47:29
MARTe Framework. Middleware for RT Control Development
MARTe Framework Middleware for RT Control Development André Neto*+, F. Sartori, D. Alves, A. Barbalace, L. Boncagni, G. De Tommasi, G. Manduchi, R. Vitelli, D.F. Valcárcel, L. Zabeo and EFDA-JET PPCC contributors
