/
NuboAMiddlewareforinteractingwithCloudPlatformsSaurabhSrivastavaIndia NuboAMiddlewareforinteractingwithCloudPlatformsSaurabhSrivastavaIndia

NuboAMiddlewareforinteractingwithCloudPlatformsSaurabhSrivastavaIndia - PDF document

linda
linda . @linda
Follow
342 views
Uploaded On 2021-07-05

NuboAMiddlewareforinteractingwithCloudPlatformsSaurabhSrivastavaIndia - PPT Presentation

0 1234156207 01 2345601 Figure1TheabstractrepresentationofNuboLayer ID: 854166

pair attribute entityname turn attribute pair turn entityname forexample keys https amazon aws entity memory 2018 storage terminalnode cloud

Share:

Link:

Embed:

Download Presentation from below link

Download Pdf The PPT/PDF document "NuboAMiddlewareforinteractingwithCloudPl..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

1 Nubo:AMiddlewareforinteractingwithCloudP
Nubo:AMiddlewareforinteractingwithCloudPlatformsSaurabhSrivastavaIndianInstituteofTechnology,Kanpurssri@iitk.ac.inT.V.PrabhakarIndianInstituteofTechnology,Kanpurtvp@iitk.ac.inABSTRACTThispaperenvisionstheideatobuildaMiddlewarewhichcaneasethehassleofinteractingwithmultiplecloudplatforms.Weproposeaplatformindependentlanguagetoperformregularandoftenmundanetasksonvaryingunderlyingcloudplatforms.ThelanguagecalledNubo,willhaveasyntaxresemblinglanguageslikeEnglish,makingiteasytolearnandrecollect.WearguethatNuboiseasilyextensibleandpresentademointerpreterforalanguagesubsetasaProof-of-Conceptforevaluation.KEYWORDSPrivacyEngineering,ArticialIntelligence,SoftwareEngineering1INTRODUCTIONDrivenbyanurgetocutinitialcosts,andutiliseavailableresourcestoagreaterextent,moreandmoreenterprisesareswitchingtocloudbasedsolutions[20].TheAmazonWebServicesbecamethemarketleaderinoeringsolutionsoverapubliccloudplatform[26].ThereareotherslikeMicrosoft,GoogleandIBM,tryinghardtocatchup.Fortheenterpriseswhowishtohaveaprivateorhybridcloudenvironment,solutionslikeOpenstack[24]arebecomingfairlypopular.Thesolutionspaceincloudoeringsarevarying,andareevolv-ingquickly.AnyITInfrastructureteamtaskedwithmigratinglegacyapplicationstocloud,orfacilitatingdevelopmentofnewapplicationswithanintendtobedeployedonthecloudfacethechallengeofgettingthemselvesaccustomedtotheplatform(s)ofinterest.ThisoftenforcestheITteamtoresistusageoftwoormoredissimilarplatformsforuse,sinceitwouldforcethemtolearntheintricaciesofallofthem.Suchscenariosinturn,canleadtotheproblemofvendorlocking[22].Inthiswork,weproposebuildingamiddlewarecalledNubo,whichaimstollthisgap.ThewordnubomeanscloudinaconstructedinternationallanguagecalledEsperanto[27].Oneofthegoalsofconstructingsuchalanguagewasanabilitytoexpressideas,irrespectiveofnationalities.Nubo,aimstoperformthesametaskforvariouscloudplatforms.ItisinspiredbythepopularrelationaldatabaselanguagecalledSQL[9].EventhoughthereareavarietyofRDBMSavailableinthemarketprovidedbydierentvendors,almostallsupportasetofcommoncommandsunderSQLtointeractwiththeirimplementations.AnotheraspectofSQLthatmadeitthedefactostandardacrossRDBMSsolutionsisitsEnglish-likesyntax,makingiteasytoremember.Likewise,Nuboisplannedtoprovideauniformviewoftheunderlyingcloudplatformstotheuser,withasyntaxthatcloselyresemblessomenaturallanguage,makingiteasytoremember.AnotheraspectofSQLworthpointingoutisthatdierentRDBMSsolutionsmayprovidefeaturesthatarenotstandardacrossindustry.HencethecommandsandclausesthataresupportedunderSQLdodierfromvendortovendor.Nevertheless,sincetheoverallSQLstillresemblesgreatlytotheANSISQL,theusersgenerallydonotneedtolearnadierentlanguageforeveryvendor.Becauseofsimilarreasons,weintendtokeepNuboextensible,sothatvendorspeciccommandsandclausescanbeaddedeasilytotheoveralllanguage.Therestofthispaperisorganizedasfollows.WerstdescribetheNuboMiddleware.Weenlistthemeritsofusingsuchalayer,citingitsprobableapplications.Wethendiscussaparticularimple-mentationparadigmwhichcanbeusedtobuildsuchalayer.Wedothatbydeningabasicsetofeasilyextensiblegrammarrules,whichcanbeparsedbyaninterpretertoprovidethesaidfunction-ality.Wethenmoveovertodescribingasampledemointerpreterthatwebuiltasaproof-of-concepttoprovidebetterinsightsintotheintuitionsgiveninthepaper.WethenwrapupprovidingabriefoverviewofpreviousattemptstobuildlanguagesforclouddomainandconcludewithlistingouttheopportunitiesthatNubocanopenupinfuture.2THENUBOMIDDLEWAREAddingalayertoanexistingSoftwareSystemisgenerallyadecisionthatrequiressevereintrospection.ThereasonforthesamecomesfromthebodyofknowledgeinthedomainofSoftwareArchitectureandEngineering.Atanabstractlevel,asoftwarelayercanbeviewedasatrade-obetweencertainqualityattributes[16]oftheoverallsystem.Theadditionofanextralayeroftenintroducesapenaltyontheperformanceattribute,makinguponthefrontsofothertraitssuchasmodiability,usabilityormaintainability.BuildingalayerofNuboaimsatachievingasimilartrade-o.Figure1depictstheconceptoftheNubolayerinanutshell.Ev-eryplatformexposesasetoffeaturesorservices.Theseservicemayhavedierentnames,dierentcommunicationprotocols,aswellasdierentworkow.Inanycase,itmaystillbepossibletoconsol-idatesomeofthesefeaturesunderasamename.Forexample,bothEC2[13]byAWSandNova[24]byOpenstackareessentiallyascal-ableComputeservice.TheNuboLayerconsistsoftwocomponents.TheCoreNubocomponentpresentsauniform,consolidatedviewofcommonservicesoeredbyallvendors,e.g.thecomputeservice.TheNuboVendorExtensionscomponentleavesspaceforimple-mentingconstructsthatcanprovideaccesstoanyvendorspecicfeaturesorservices,notoeredbyothers,e.g.AWSLambda[14].Theuserinteractswitheitheraninterpreterorajust-in-timecompilerforNubo.ThecommandsthatbelongtothecoreNubohavenodierencesintheirsyntaxorclauses,irrespectiveoftheplatformforwhichthecommandisintended.Formostcases,itshouldsucetosetaplatformtypewhentheinterpreterstarts,orviaaseparatecommandtochangetheintendedplatformtypelateron.Forsomepeculiarcas

2 es,whereacross-platformdeploymentscenari
es,whereacross-platformdeploymentscenarioisinplace,thesamecanbeprovidedatpercommandbasistoo.ForcommandsthatbelongtotheVendorExtensions,theinterpreterwillraiseanalarm,ifthecommandisattemptedfora !"#$%&'("&'("%)$*+"#,-.$*/0"*/ !"#$%&'(!"#$%&'(!"#$%&'( &'("%1*.$#2#$.$#%3%415%!"6207$# !"#$%&'()*+"(,-+*.%/%0$#1+)$ 2$(3"#%45$)+6+)&'()*+"(,-+*.%/%0$#1+)$ Figure1:TheabstractrepresentationofNuboLayerplatformitinnotmeanttobe.TheNubolayeressentiallyprovidesaper-command,per-platformimplementationforalltheCoreNubocommands,andaplatformonlyimplementationforcommandsinVendorExtensions.TheimplementationmayuseservicesprovidedbythevendorsuchasRESTAPIorSDKtofulltherequests.TheNubolayermayperformsomeorallofthebelowfunctions:(1)Thelayerhidesanumberofmundanetasksrequiredtoimple-mentanabstractfunctionality,andllthemwithoperationstoperformthesetasksinadefaultfashion.Forexample,inordertocreateaVMonanIaaSplatform,theusersarere-quiredtocreateaKey-pair,deneasetofrulestoalloworrestricttraconthemachine,createsubnetsandroutersetc.Inthedemoapplicationwe'vebuilt,wedothesameoverAWS.(2)Thelayerprovidesanopportunityforheuristics-basedde-cisionmakingforresourcecreationandmanipulationontheunderlyingcloudplatform.Forexample,thelayermaychooseanavailabilityzonethatisneartotheuser'sgeo-graphicalregionwhencreatingaVM.ItcanalsobeusedtoprovideenhancedQualityofService,suchasbyreplicationofresourcesacrossmultipleavailabilityzones(incasetheunderlyingplatformdoesn'tsupportitimplicitly).(3)Thelayercanimplementoptimizationtechniquesmeantforbetterresourceutilizationandreductionofcostsforcertainuse-cases.Forexample,thelayercanimplementakindoflazyexecutionparadigmforsomeoperations.Inthedemoapplication,wegiveanexampleofsuchascenariobydecou-plingtheprocessofcreatingaVMfromswitchingiton-twostepsthatarecombinedbyAWSimplicitly.(4)Thelayercanhandlescenariosofcross-platformresourcecreationbydeployingpartsofadeploymentstackovermul-tiplecloudplatforms.Itcanalsobeusefulinscenarioslikecloudbursting[21].Thiscaneasethecomplexitiesforen-terpriseswishingtohaveaHybridCloudenvironment,orthedeploymentchoosesresourcesdynamicallyfromsomemarketplace(e.g.AWSEC2spotinstances[1]).(5)Anunconventionaladvantageofbuildingsuchalayermaycomeintheeldoftraining.Ifwegobacktoourdatabaseanalogy,theusageofSQLgreatlysimpliestheaspectoflearninghowtointeractwithRelationalDatabases.Comparethattoother,moreformalanddetailedmethodslikeRela-tionalAlgebra[10],andonecaneasilygureoutwhySQLbecamesopopular.SinceNuboheavilyborrowsitsoverallstructurefromSQL,itcanbeaneasystartingpointforsome-oneinterestedinknowingmoreaboutCloudComputingingeneral,withoutrequiringtogothroughamoreformalanddetailedmethod.3IMPLEMENTINGABASICNUBOLAYERThetaskofimplementingalanguageinvolvesanumberofsteps.Wedividethetaskintothefollowingphases:(1)LexicalAnalysisofthecharacterstream,toproducedistinctlyidentiabletokenssuchaskeywordsandidentiers.(2)SyntaxAnalysisoftokenstoverifythattheydonotappearoutofplace,andfollowsomelanguagepattern.(3)SemanticAnalysisofthestatementstoseeiftheymakesenseornotinthelanguagecontext.(4)Implementationoftheoperationsthatarerequestedinthestatement.Beforeproceedinganyfurther,wemustunderlinethefactthattheimplementationoftheabovestepspresentedbyusisoneplausiblewaytobuildtheNubolayer.Therecanbeother,possiblybetterimplementationsthatmaycomeupinfuture.3.1ProposedNuboGrammarWecombinethersttwostepsdenedaboveintoasinglestepandtermtheoutputasNuboGrammar.WehavechosentowritethegrammarusingawellknownformatcalledExtendedBackusNaurFormorEBNFinshort.Wedenethelanguageinatop-downfashion.ThestartingproductionforNubois:program:statement+;meaningthataNuboprogramconsistsofoneormorestatements.Astatementcanbeoneofthefollowingtype:statement:create|delete|attach|detach|modify|use|show|lter|turn;Thedierentstatementsinclude:create:CREATEany_entityNAMEhaving?`;';delete:DELETEany_entityNAME`;';attach:ATTACHattachable_entityNAMETOattached_to_entityNAME`;';detach:DETACHattachable_entityNAMEFROMattached_to_entityNAME`;';modify:MODIFYmodiable_entityNAMEset`;';use:USEusable_entityNAME`;';show:SHOW(any_entityNAME|ALLany_entity)`;';lter:FILTER(ALL)?any_entitywith`;';turn:TURN(ON|OFF)switchable_entityNAME`;';Thestatementsusesomesub-statementsorclauses:having:HAVINGattribute_value_pair(`,'attribute_value_pair)+`;';set:SETattribute_value_pair(`,'attribute_value_pair)+`;';with:(NOT)?WITHattribute_comparison_pair2 (`,'attribute_comparison_pair)+`;';attribute_value_pair:attribute`='value`;';attribute_comparison_pair:attribute(`−'|`'|`−='|`'|`=')value`;';attribute:CORES|STORAGE|IMAGE|IP|FS|CAPACITY|KEY_FILE|ADDRESS|ALL_TRAFFIC|IN_PORT_ON|IN_PORT_OFF|OUT_PORT_ON|OUT_PORT_OFF|CIDR`;';value:NUMBER|STRING|BOOL|ALLOW|DISALLOW`;';Theattach,deleteandmodifystatementscreate,destroyandmanipulateresourcesonthecloudrespectively.Theusestatementputsinuse,aparticularproject,underwhichotherresourcesreside.Theshowstatementdisplaysdetailsaboutaparticularresource(e.g.thememory,storage,corese

3 tc.ofaVM)whereasthelterstatementdis
tc.ofaVM)whereasthelterstatementdisplaysalistofallresourcesofaparticulartype,thatfollowsomecriteria(e.g.allVMswith2GBmemory).Theattachanddetachstatementsformandremoveassociationsbetweentwoentitiesrespectively(e.g.aKey-pairwithaVM).Theturnstatementisusedtoturnon/oaresource(e.g.aVM).Thetokenswritteninthelowercaseareprocessedduringthesyntaxanalysis,whereasthosewritteninCAPITALcasearedenedforthelexicalanalysisphase.Thelexicaltokensaredenedinsuchawaythatthelanguagebecomescaseinsensitive.Tosavespace,wearenotputtingallthosedenitionshere,buttheyareoftheform:KEYS:[Kk][Ee][Yy][Ss];Inessence,thisallowsustoconsiderkeys,Keys,KEYSorevenkEySasthesamelexicaltoken.Therearesomelexicaltokens,wherewecanallowtheusertowriteadierentwordaltogether,yetmeaningthesamething.Forexample,theruleforkeywordTURNcanbewrittenlikethis:TURN:[Tt][Uu][Rr][Nn]|//acceptsturn[Ss][Ww][Ii][Tt][Cc][Hh];//orswitchThismeansthattheusercanwriteaphraseturnonvmorswitchonvm,butthelanguageconsidersitthesame.Thisisaniceandcleanwaytoallowadditionsofsynonymsforoperationsandentitieswithinthelanguageframework,withoutchanginganythingupstream.ThiscanalsomeanthatwecanaddwordsfromlanguagesotherthanEnglish,oraddcolloquialwordsforentitiesandoperationstotheoveralllanguagemodel.WediscussmoreonthiswhenwetalkaboutextensibilityofNubo.Thereisonespeciclexerrulethatwewouldliketomentionbeforewemoveahead.ItistherulefordeningaNUMBERinNubo.Unlikeusualnumbers,NubonumberscantakeaquantierlikeMorG.ThebasicideabehinditistoallowuserstospecifynumbersintermsofcomputingworldunitssuchasMegabyteorGigabyte.TheruleforaNUMBERlookssomethinglikethis:NUMBER:([0-9]+(.)?|[0-9]*[.][0-9]+)(MEMORY_UNITS)?;MEMORY_UNITS:[Mm]|[Gg]|[Tt];Thisallowsustotakeinputslike2,2.,2.5aswellas2.5gasvalidnumbers.Of-course,thisdoesputonsomeextraworkloadinthesemanticanalysis,tocheckiftheinputissemanticallycorrect(e.g.memory=2gmakessense,cores=5mdoesn't).The*_entityrulesusedindierentstatements,justgroupentitiesintovariousgroups,basedontheapplicabilityoftheoperationonthem.Tosavespace,wearenotputtingallthosedenitionshere,buttheyareoftheform:any_entity:PSPACE1|VM|SUBNET|ROUTER|VOLUME|KEYS|POLICY;Bydecouplingtheallowedentitytypesintoaseparategroupusingthe*_entityrules,wemakeitfairlyeasytoaddnewopera-tionstothelanguage.Anewoperationcancreatesanew*_entityruletopointto,makingotheroperationremainexactlyhowtheyhavebeen.Thisalsoallowsrollingoutlanguagefeaturesinstages,insteadofbeingrequiredtoimplementallatthesametime.Forinstance,ifanewoperationappliestoallentitiesinthesystem,yetwewishtoallowtheimplementationtogooneatatime,wecancreatearuleforthesame,andkeepaddingentitiestoit,asandwhenwehaveimplementedthefunctionality.Theoverallgrammarcanbesummarizedasfollows:AProgramconsistsofoneormorestatements.Astatementimplementsaconsolidatedfeatureorservice,likecreatingaresourceormanagingassociationsbetweentworesources.Eachstatementbeginswithaverb,followedbyentitytypesandentitynames,withoptionalquantiersandprepositionsconcludinginapossiblyemptylistofattribute-valuepairs.We'vedenedaseteachforrepresentingentities(resourcesandprojects),theirattributes(likeaVM'smemory,oraSubnet'sCIDR),andthevaluesthatattributescantake.Notethatthersttwostepsonlycheckforstatementsthataresyntacticallycorrect.Theymaystillbeincorrectseman-tically(e.g.anattribute-valuepairlikeip=ALLOWissyntacticallycorrect,butsemanticallyincorrect).3.2ExtendingtheproposedgrammarWediscussedtheexistenceofNuboVendorExtensionsinSec-tion2.TheVendorExtensionsarebasicallyawaytoextendNubofornonstandardizedfeaturesandservices.Todoso,wemusttakeamoment,andmakeacommentabouttheextensibilityofthelan-guagegrammar.Toaddanewoperationtothelanguage,wejustaddittothelistofalternativesforastatementrule.Althoughthestate-mentitself,canhaveanypeculiarsyntax(notnecessarilyfollowingthegeneraldescriptionabove)aspertherequirements,thecurrentgrammaticalconstructsmaybeeasilyreusedtoselectasubsetofentitiesandreceiveattributevaluesforthem.Inthisregard,ourdiscussionsontheusageof*_entityrulesandthesamplescenariopresentedforacceptingcustomizednumeralinputsinSection3.1canbehelpfultograsptheoverallextensibilityofthelanguage.Wesummarizethetypicalstepsthatcanbetakentoaddanewoperationtotheexistinggrammar:(1)Createaruleforthenewoperationtobeaddedtothelan-guagegrammar.Forexample,demo_op:DEMO_OPdemoable_entityNAME`;';Ifanysub-statementsorclausesarerequired,createarulesimilarlyforthemtoo.(2)Createaruletoincludetheentitiesthataregoingtobeaectedbythisnewoperation.Forexample,demoable_entity:VM|VOLUME; 1PSpaceorPrivateSpaceisjustanothertermforProject3 Thisallowsastepbystepinclusionofthefunctionality,sayoneentityatatime.(3)Createlexerrulesfortheoperationkeywords,andanynewconstructsorentitiesthatwillbeaddedtothelanguage.RefertoSection3.1forsampleimplementations.(4)Finally,addtheoperationruletotherulethatsele

4 ctsoneofthestatementsinthelanguage:state
ctsoneofthestatementsinthelanguage:statement:create|delete|attach|detach|modify|use|show|lter|turn|demo_op;Westillhowever,needanecientwaytoparsethisgrammar,andexecutetheoperationstheyrepresent.Inthenextsection,wegointodetailsofhowthiscanbedoneinaneatway.Wewilldiscussasampleinterpreterimplementation,thatcanparseandperformanend-to-endoperationonasmallsubsetoftheabovegrammar.4NUBODEMOINTERPRETERWeimplementedasmallsubsetoftheoverallcommandsinNuboaspartofademointerpreter.TheinterpreterisavailableforevaluationasapublicGITrepository[5].ThesourcecodeisavailableundertheMITlicense[15].ItisbuiltasaMaven[2]project,whichmakestheprocessofbuildingitfromscratchfairlystraightforward.ThetoolrequiresasubscriptionontheAWSplatform.Inthoery,wecouldhavechosenanypubliccloudplatformfordoingthesame.ThedecisiontochooseAWSisinspiredbytwofactors.First,AWSisarguablythemostpopularamongdevelopers.Ademointerpreteroverthesamecanhencebemoreeasilyappreciated.Inparticular,ourargumentsaboutlazyexecutionanddefaultbehaviourcanbeeasilygraspedbyaregularAWSuser.Second,AWShasmodesofoperation,wherestudentsandresearcherscaneasilyobtainsignicantamountofcreditstocreatevirtualresources.TheAWSFreeTier[4]andtheAWSEducate[3]facilitescanbeusedtogetaccesstotheplatform,forthesakeofevaluatingtheinterpreter.ForimplementingtheProof-of-Conceptinterpreter,wechooseapopularandrobusttoolcalledANTLR[23](ANotherToolforLanguageRecognition).Antlrisaparsergeneratorthattakesasinput,agrammarwritteninEBNF,andproducesJavasourceles,whichcanparsethegivengrammar.Antlrdoesalmosteverythingshortoftheactualsemanticinterpretationofthelanguage.AsampleparsetreeproducedbyAntlrforagivenstatementcanbeseeningure2.WeusedAntlr'slistenerinterfacetoimplementthedemointer-preter.Antlrproducedalexicalanalyser,andaparserforNubofromthegivengrammarles.Thelistenerinterfaceprovidesmethodswhichareessentiallycallbacksinvokedwhentheparserdiscoveredaspeciclanguageconstruct.ForasampleNubostatement:CREATEPROJECTmy_proj;thecallbacksinvokedduringtheparsingofthestatementareasshowningure3.Therearetwocallbacksassociatedwitheachgrammarconstructwhichareinvokedwhentheparserreachesandleavesthecorrespondingnodeintheparsetree.AmethodcalledvisitTerminaliscalledforparsingalloccurrencesofaTerminalNode.Clearly,thisparadigmmightendupproducingtoomanymethodstoimplement.Antlrtherefore,producesabaselistenerclassle,whichprovidesemptydenitionsforallthesemethods.Itonlyleavesusthen,toextendthisclass,andoverrideonlythosemethods,thatwewish.ThedemointerpretermakesuseofAWSFreeTierservicesforshowingtheProofofConcept.TheresourcesthatcanbecreatedintheFreeTierarelimited,butsucetoexplainsimpleuse-cases.Wenowsummarizetheimplementationdetailsofthedemoparser:(1)Performingtasksbehindthescene:Thedemointerpreterattemptstocoverasimpleuse-caseforanewuseroncloudplatforms,i.e.creatingaVirtualMachinewithsomecom-monparameters.Asdiscussedinsection2,weusedthedemointerpretertoshowcasesomemeritsthatsuchalayercanexhibit.Onesuchmeritwasthatsuchalayercanimple-mentsomedefaultmundaneoperationsonbehalfoftheuser,withouttheusercomingtoknowaboutthem.Forin-stance,whenacreatestatementforaproject(similartothepreviousexample),isparsedbythelayer,thedemoNubointerpreter:createsaVPCorVirtualPrivateCloudinAWScreatesasubnetwithintheVPCcreatesanInternetGatewayandattachesittotheVPCcreatesaRoutingTableandassociatesittotheVPCcreatesaRoutethatroutesalltracoriginatingorendinginthecreatedsubnettotheattachedInternetgatewayconguresthesubnetsuchthatitattachesaPublicIPautomaticallytoanyVMscreatedonit.TheinterpretermakesHTTPRequestsusingtheAWSJavaSDKtoperformeachoneofthesesteps,transparentlyfromtheuser.PleasenotethatweneedtheInternetgatewayandtheroutingsystem,sothatthenewlycreatedVMisaccessibletotheuseratthestart.Similarly,whenaskedtocreateaVM,theinterpreterquietlycreatesadefaultKey-pairandaSecurityGroupthatallowsSSHcommunicationtogothrough.(2)Makingsmartdecisionsonbehalfofuser:DierentcloudplatformshavedierentwaystoinitializeaVM.Inanycase,almosteveryplatformexpectstheusertoselectanimagetemplateandaninstancetypebeforetheVMcanbecreated.Thedemointerpreter:keepsanoinearchivalofinstancesmeta-dataandimages(permittedundertheFreeTier)availableforusetakesupagenericuserquerytondanimage,e.g.aquerylikeUbuntu14makesakeywordsearchoverthename,descriptionandotherinformationavailableintheimages'meta-data,andtriestondasuitablematchfortheuser'srequirementstriestondaninstancetypewithspecicationsclosest(higherorsame)totheuserrequirements.Thescopeofthedemointerpreterisfairlyrestrictive(intermsofavailableresources),buttheideacanstillbegleanedfromtheimplementationoftheinterpreter.Anothersmartparadigmthattheinterpreterdeploysislazyexecution.Ingeneral,cloudplatformsmergetheoperationsofcreatingandlaunchingaVM.Thisisduetothefactthatinmostcases,arsttimeboot-upofthemachineisnecessary,tobakeincertainuserspecicinformationintheVM(e.g.theRSAKeyforaccesstothemachine)

5 .Nubodecouplesthesetwooperations.However
.Nubodecouplesthesetwooperations.However,thecloudplatformstillonlyallowsthecombinedprocessoflaucnhingaVM.4 statementcreateany_entityCREATEmy_projPROJECT ; enterStatement ( StatementContext ) exitStatement ( StatementContext ) enterCreate ( CreateContext ) exitCreate ( CreateContext ) visitTerminal ( TerminalNode ) enterAny_Entity ( Any_EntityContext ) visitTerminal ( TerminalNode ) exitAny_Entity ( Any_EntityContex ) visitTerminal ( TerminalNode ) visitTerminal ( TerminalNode Sample Callbacks generated by ANTLR for Nubo Figure2:AnexampleParseTreeforaNuboStatement Figure3:ParsercallbacksforNubostatementsToimitatethisasatwo-stepprocess,Nubocreatesatemplate,createdfromtheuserspecicationsasdescribedabove.Itwillalsoperformthebackgroundmundanetasks,likecreationofkeysandgroups,butwillnotissueacalltolaunchtheVM.TheactuallaunchisissuedwhentheuserswitchesontheVMforthersttime.Thismeansnoresourcesareoccupiedonthecloudatstart,untiltheuserwishestousethem.(3)SupportingusersfromnonEnglishbackground:An-otherusefulaspectofsuchaMiddlewarecouldberemovinghurdlesinfrontofthosewhoarenotnativespeakersofEng-lishlanguage.TheadvancedfeaturessuchasaCommandLineInterface(CLI)stillexpecttheuserstoknowEnglishlanguage.ToshowthatNubocanbenaturallanguageinde-pendent,weattemptedtosupportFrenchlocale,inadditiontoEnglishinthedemointerpreter.Atthekeywordlevelitrequiredpracticallynochangeinthecode.Weonlyprovidedalternatelexicaltokenslikebelow:KEYS:[Kk][Ee][Yy][Ss]|//English[Cc][Ll][Éé][Ss];//FrenchThismeansthatwereceivedthesamesequenceofcall-backswhethertheusertypesKEYSorCLÉS.Eventhoughthismaybeasimplewaytohintusersaboutoperationsthatastatementperforms,abetterinterpreterwouldneedtoconsiderchangesinlanguagesatthesen-tencestructureaswell.Inthedemointerpreter,wemadeonesuchchangeinthegrammar:turn:(TURN(ON|OFF))|COMMENCÉ|ARRÊT)switchable_entityNAME`;';Thismeans,thattheturncommandcannowtakefourprobableshapes,TURNONisequivalenttoCOMMENCÉ,whereasTURNOFFisequivalenttoARRÊT.Thisdidrequireasmallifconditiontobeaddedtothecode,sincethedecisionmakingincaseofEnglishandFrenchnowdiersslightly.PrintingmessagesinFrenchrequiredimplementingastan-dardprocedureofkeepinglocalespecicles,withmes-sagesinrespectivelanguages:cmd_success=Commandsucceeded//Englishcmd_success=Commandementréussi//FrenchHerearetheoutputsproducedbytheinterpreterforEng-lish,aswellasFrenchlocalesforsimilarcommands.English createvmvm1havingimage=ubuntu14,memory=2g,storage=20g;ChosenaVMtypewith2.0GBmemoryand1cores.French créervmvm1ayantimage=ubuntu14,memory=2g,storage=20g;ChoisiuntypeVMavec2.0Godemémoireetde1pro-cesseurs.ThedemointerpreterhasbeenbuiltinJavaoverOpenJDK8(althoughitshouldworkwithJava7withminorchanges).5RELATEDWORKAnumberofattemptshavebeenmadeinpasttobuildlanguagesspecictotheclouddomain[12][8][17][7][18].Cloud#wasprob-ablytherstdetailedattempttomodelresourcesonacloud.AnotablefeatureoftheCloud#[19]model,wastosegregatecom-putationalentitiesfromtheactionsthatcanbeperformedoverthem.CloudML[11]isadescriptionlanguagewhichcanbeusedbyvendorsanddeveloperstodescribetheiroeringsandrequire-mentsrespectively.TheaspectofCloudMLthatisworthnotingisthattheyusedXMLastheunderlyingtechnologytobuildtheiridea,attemptingtoprovideauniformityacrossdierentvendors,5 takingastepfurthertowardsplatformindependentMiddleware.CloudDSL[25]isanothersolutionworthmentioningwithrespecttoNubo,sinceitinspirestobuildacommonvocabularyoftermstocoverawiderangeofIaaSoerings.Theyalsotriedbuildingasystemmoreusablethanthepreviousattempts,byprovidingagraphicalviewoftheentitiesandtheirrelationships.Inourwork,westressmoreonbuildingasolutionovertime,whichcanprovideplatformindependentconstructstotheuser,keepingscopealiveforvendorspeciccustombehaviour.Were-iteratethattheNubolayerisaMiddleware,whereastheNuboimplementationwepresentedisanearlyattempttobuildsuchalayer.Also,insteadofdeningarigidsetoflanguageconstructs,Nuboexpectsgradualadditionandrenementsoveraperiodoftime,drivenbyuse-cases.Also,theNubolayerisintendedtoen-couragedevelopmentofnewinnovativeimplementationpatternsandinclusionofmoreheuristicsbaseddecisionmakingsothattheoverallloadattheITteamsintheorganisationsarereduced.Lastly,Nuboimplementationstressesmoreonasyntaxthatisintuitiveandclosetonaturallanguages,sothattheoveralllearningcurveforanewuserisnotsteep.6CONCLUSIONANDFUTUREWORKInthispaper,wepresentedtheideaofalayerthatactslikeaMid-dlewarebetweenusersandcloudplatforms.Thelayer,thatwecallNuboaimstorelievethecomplexitiesassociatedwithheterogeneityofcloudsolutionsoeredbydierentvendors,inPublicaswellasPrivateCloudmodels.Wediscussedthemeritsofbuildingsuchalanguage,whichincludesperformingmundaneandrepetitivetasks,makinginformeddecisionsonpartofusers,andimplementingsmartstrategiestooptimizeoveralldeploymentexperienceforITteamsinenterprises.Wethenwentontodiscussaplausiblesetofstepstoimplementsuchalayer,includingasetofgrammarrulesinEBNFtocapt

6 urecommonconstructsinthelanguage,andbuil
urecommonconstructsinthelanguage,andbuildingaparseroverthemusingAntlr.Inthispaper,wepresentedabasicsketchofNubo,alongwithatoyapplicationtoseehowthelanguagemaylooklike.SomeofthefutureopportunitiesthatNuboputsforwardare:NuboScript:Wementionedthatoneofthemajorinspi-rationforNubowasSQL.Theanalogycanbefurtherex-tendedtobuildsomethingcalledNuboScriptonthelinesofPL/SQL[6]byaddingbasicprogramminglanguagecon-structslikeconditionals(IF-ELSE,SWITCH-CASEetc.)anditerators(FOR,WHILE,FOR-EACHetc.)tothelanguage,enablinguserstone-tunetheirresourcedeploymentsce-narios.Supportingserver-lesscomputing:ThepopularityofAWSLambdashowsagrowingrealisationofprovidingfunctionlevelabstractionstousersforimplementingbusinesslogic.Nubocanbeextendedtoprovideagenericabstractionofserver-lesscomputing,overplatformsthatdonotsupportitimplicitly.TheMiddlewarewillcreateandmanageanyun-derlyingresourcestransparently,whiletheuseronlycaresaboutafunctionbeingperformedsomewhereinthecloud.BuildingapplicationsoverNubolayer:Vendor-lockingoftenputsconstraintsondeveloperstochoosesub-parop-tionsforcertainservicesfromthesamevendor,eventhoughbetteralternativeexistsbeingoeredbyadierentvendor.Nubocanevolveasago-tooptiontoooaddeploymentchallenges,allowingdevelopertobuildapplicationsoverit,withoutbeingpinchedbytheITteamoverchoosingplat-forms.REFERENCES[1]AmazonEC2SpotInstances.https://aws.amazon.com/ec2/spot/.[2]ApacheMavenProject.https://maven.apache.org/.Accessed:2018-01-28.[3]AWSEducate.https://aws.amazon.com/education/awseducate/.Accessed:2018-04-07.[4]AWSFreeTier.https://aws.amazon.com/free/.Accessed:2018-04-07.[5]NuboDemoInterpreter.https://bitbucket.org/ssri5/nubodemointerpreter.Ac-cessed:2018-08-18.[6]OracleDatabase12cPL/SQL.http://www.oracle.com/technetwork/database/features/plsql/index.html.[7]D.Ardagna,E.DiNitto,G.Casale,D.Petcu,P.Mohagheghi,S.Mosser,P.Matthews,A.Gericke,C.Ballagny,F.D'Andria,etal.Modaclouds:Amodel-drivenapproachforthedesignandexecutionofapplicationsonmultipleclouds.InProceedingsofthe4thInternationalWorkshoponModelinginSoftwareEngi-neering,pages5056.IEEEPress,2012.[8]T.Binz,U.Breitenbücher,O.Kopp,andF.Leymann.Tosca:Portableautomateddeploymentandmanagementofcloudapplications.InAdvancedWebServices,pages527549.Springer,2014.[9]M.Blasgen,M.Astrahan,D.Chamberlin,J.Gray,W.King,B.Lindsay,R.Lorie,J.Mehl,T.Price,G.Putzolu,M.Schkolnick,P.Selinger,D.Slutz,H.Strong,I.Traiger,B.Wade,andR.Yost.Systemr:Anarchitecturaloverview.IBMSystemsJournal,38(2.3):375396,1999.[10]E.F.Codd.TheRelationalModelforDatabaseManagement:Version2.Addison-WesleyLongmanPublishingCo.,Inc.,Boston,MA,USA,1990.[11]G.Goncalves,P.Endo,M.Santos,D.Sadok,J.Kelner,B.Melander,andJ.-E.Mangs.CloudML:AnIntegratedLanguageforResource,ServiceandRequestDescriptionforD-Clouds.InCloudComputingTechnologyandScience(CloudCom),2011IEEEThirdInternationalConferenceon,pages399406,Nov2011.[12]I.Houidi,W.Louati,D.Zeghlache,andS.Baucke.Virtualresourcedescriptionandclusteringforvirtualnetworkdiscovery.InProceedingsofICC,2009.[13]A.Inc.AmazonElasticComputeCloud(AmazonEC2).AmazonInc.,http://aws.amazon.com/ec2/,2008.[14]A.Inc.WhatIsAWSLambda?AmazonInc.,http://aws.amazon.com/lambda/,2015.[15]O.S.Initiativeetal.TheMITlicense,2006.[16]ISO/IEC.ISO/IEC25010-Systemsandsoftwareengineering-SystemsandsoftwareQualityRequirementsandEvaluation(SQuaRE)-Systemandsoftwarequalitymodels.Technicalreport,2010.[17]G.P.Koslovski,P.V.-B.Primet,andA.S.Charao.Vxdl:Virtualresourcesandinterconnectionnetworksdescriptionlanguage.InNetworksforGridApplications,pages138154.Springer,2009.[18]P.Leitner,B.Satzger,W.Hummer,C.Inzinger,andS.Dustdar.Cloudscale:anovelmiddlewareforbuildingtransparentlyscalingcloudapplications.InProceedingsofthe27thAnnualACMSymposiumonAppliedComputing,pages434440.ACM,2012.[19]D.LiuandJ.Zic.Cloud#:ASpecicationLanguageforModelingCloud.InCloudComputing(CLOUD),2011IEEEInternationalConferenceon,pages533540,July2011.[20]C.Low,Y.Chen,andM.Wu.Understandingthedeterminantsofcloudcomputingadoption.IndustrialManagement&DataSystems,111(7):10061023,082011.[21]S.K.Nair,S.Porwal,T.Dimitrakos,A.J.Ferrer,J.Tordsson,T.Sharif,C.Sheridan,M.Rajarajan,andA.U.Khan.Towardssecurecloudbursting,brokerageandaggregation.InWebservices(ecows),2010ieee8theuropeanconferenceon,pages189196.IEEE,2010.[22]J.Opara-Martins,R.Sahandi,andF.Tian.Criticalanalysisofvendorlock-inanditsimpactoncloudcomputingmigration:abusinessperspective.JournalofCloudComputing,5(1):118,2016.[23]T.Parr.TheDenitiveANTLR4Reference.PragmaticBookshelf,2ndedition,2013.[24]D.Radez.OpenStackEssentials.PacktPublishingLtd,2015.[25]G.C.Silva,L.M.Rose,andR.Calinescu.CloudDSL:ALanguageforSupportingCloudPortabilitybyDescribingCloudEntities.CloudMDE2014,page36,2014.[26]SynergyResearchGroup.Amazonleads;Microsoft,IBM&Googlechase;otherstrail.https://www.srgresearch.com/articles/amazon-leads-microsoft-ibm-google-chase-others-trail,Aug2016.[27]H.Tonkin.Esperanto,interlinguistics,andplannedlanguage,volume5.UniversityPressofAmerica,1997.

Related Contents


Next Show more