Size: px
Start display at page:

Download ""

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 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

More information

-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6<6725$*

-8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6<6725$* -8*6-DYD6HPLQDU 6HUYOHW$UFKLWHFWXUHV 5DLQHU+LVV$QGUHDV.DSS 6

More information

How To Install Linux Titan

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

More information

The functions of system LSI become more and more complicated

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

More information

BIRT Application and BIRT Report Deployment Functional Specification

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

More information

Implementing a Bidirectional Model Transformation Language as an Internal DSL in Scala

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

More information

LMT Lustre Monitoring Tools

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

More information

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

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]

More information

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 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

More information

What is a workflow? Workflows are a series of actions that correspond to a work process

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,

More information

Settlers of Catan Phase 1

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

More information

What do you think? Definitions of Quality

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

More information

OPERATING SYSTEM SERVICES

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

More information

NetBeans IDE Field Guide

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

More information

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

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...

More information

Effective Java Programming. efficient software development

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

More information

Example. Represent this as XML

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

More information

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 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

More information

SOFTWARE TESTING TRAINING COURSES CONTENTS

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

More information

Why Threads Are A Bad Idea (for most purposes)

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).

More information

Client-Server Applications

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

More information

Philosophy of GIMnet

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

More information

What Is the Java TM 2 Platform, Enterprise Edition?

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

More information

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 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

More information

Comparison of Software Development Productivity by EJB Versions with Enterprise of Standardization

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

More information

Software Development around a Millisecond

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.

More information

Three Stages for SOA and Service Governance

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

More information

Enterprise Application Integration

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

More information

Electronic Data Capture At Emory University. Research and Health Sciences IT Division

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

More information

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

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."

More information

Software support for economic research at CNB

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,

More information

Review of Mobile Applications Testing with Automated Techniques

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

More information

Java Technology in the Design and Implementation of Web Applications

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

More information

ITG Software Engineering

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.

More information

CORBA and object oriented middleware. Introduction

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

More information

Efficiency Considerations of PERL and Python in Distributed Processing

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

More information

Complete Java Classes Hadoop Syllabus Contact No: 8888022204

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

More information

Classic Grid Architecture

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

More information

Reduces development time by 90%

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

More information

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 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

More information

CT505-30 LANforge-FIRE VoIP Call Generator

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

More information

Intro to Docker and Containers

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

More information

VisuSniff: A Tool For The Visualization Of Network Traffic

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

More information

The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1

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

More information

A Performance Analysis of Distributed Indexing using Terrier

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

More information

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications

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

More information

Developing a MapReduce Application

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

More information

Distributed Systems. Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets

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

More information

Software Engineering: Analysis and Design - CSE3308

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

More information

FTP Server/Client in Haskell and Java

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

More information

End-user Tools for Application Performance Analysis Using Hardware Counters

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

More information

Operating Systems and Networks

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

More information

Software design (Cont.)

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

More information

Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney

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

More information

IDL. Get the answers you need from your data. IDL

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

More information

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

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

More information

Project Proposal Distributed Project Management

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...

More information

Chapter 2 System Structures

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

More information

Microsoft Windows PowerShell v2 For Administrators

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.

More information

Evaluation of Load/Stress tools for Web Applications testing

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

More information

AndroLIFT: A Tool for Android Application Life Cycles

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

More information

Automation using Selenium

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...

More information

Audio networking. François Déchelle ([email protected]) Patrice Tisserand ([email protected]) Simon Schampijer (schampij@ircam.

Audio networking. François Déchelle (dechelle@ircam.fr) Patrice Tisserand (tisserand@ircam.fr) 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

More information

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

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

More information

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 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

More information

Current Status of Development of New VLBI Data Analysis Software

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

More information

Product Overview. Contents

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

More information

ios Application Development &

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

More information

Distributed Systems Architectures

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

More information

Analysis and Design of Software Systems Practical Session 01. System Layering

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

More information

Property & Casualty Insurance Solutions from CCS Technology Solutions

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

More information

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES

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

More information

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 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

More information

Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems

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

More information

IP Interface for the Somfy Digital Network (SDN) & RS485 URTSII

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)

More information

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

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,

More information

CSE 3214: Computer Network Protocols and Applications

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])

More information

Mobilize Your ERP with ADF Mobile

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

More information

Platform Independent Mobile Application Development

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

More information

Troubleshooting for Yamaha router

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

More information

IBM Rational Web Developer for WebSphere Software Version 6.0

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,

More information

System Structures. Services Interface Structure

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

More information

S P I E Information Environments Shibboleth and Its Integration into Security Architectures. EDUCAUSE & Internet 2 Security Professionals Conference

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

More information

MARTe Framework. Middleware for RT Control Development

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

More information