Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

Størrelse: px
Starte visningen fra side:

Download "Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben"

Transkript

1 GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben

2 Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor distribueredeapplikationerogdatacentre. StorevirksomhedersomGoogleogAmazonharåbnetopforatudefrakommende kanbenyttederescloudcomputinginfrastruktur. RapportenfokuserepåudviklingafJavaapplikationerpåGoogleAppEngine. Ligeledesserdenpåomudviklingietcloudcomputingmiljøkræverenanden tilgangtilarkitekturen,setiforholdtiltraditionellehostedeapplikationer. Dererudvikletenonlinenetbutiksomdanneretpraktiskerfaringsgrundlagtil underbyggelseafvoreskonklusioner.ligeledeserderpådetteoretiskeplan, perspektiveretiforholdtilfølgendealternativer:amazonec2,stax,aptana CloudConnectogegenhosting. RapportenviserhvaddertekniskskaltilforatudvikleenapplikationpåGoogle AppEngine,beståendeafteknologistakken:Wicket,Spring,JPA. Ligeledesviserrapportenatcloudcomputingkræverenandentilgangsvinkeltil specieltpersisteringafdata. GoogleAppEngineerengratisognemplatformatstarteoppå.Platformen skalerernemtogervelegnettilapplikationstypermedspidsbelastningsperioder. Enrækkekritiskebegrænsningeromkringlagerpladsogenøvregrænsepå processeringstidforetrequest,gøratmanbørovervejealternativecloud computingimplementationer.

3 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret Indledning Motivation Formål Problemformulering Aspekter Forretningen Platformen Integration Baggrund CloudComputing GoogleAppEngine Prismodelogkvoter BigtableogGAEDatastore Udviklingogafviklingafwebapplikation KendtebegrænsningeriGAE GoogleAppEngineservices Case Valgafteknologier JPA Spring Wicket Caseerfaringer Prismodelogkvoter Administrationogovervågning Backup Portering Versionering Persisteringafdata Transaktionsstyring Adgangtilfilsystemet Fejlsøgning Unittest Sockethåndtering HTTP/HTTPS FTP Webservices AlternativertilGoogleAppEngine AmazonElasticComputerCloud Stax AptanaCloudConnect Egenhosting Opsummering Konklusion Litteraturliste Process AfClausMyglegaardVagnerogJacobvonEyben Side1af44

4 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret Indledning Googlelanceredei2008GoogleAppEngine(fremoverbetegnetGAE)oggjorde hermedplatformen,sommangeafderesegneapplikationerbyggerpå, tilgængeligforatandrekunneudnytteden. GAEgivermulighedforgratisatafviklewebapplikationerpåGooglesIT infrastrukturogdenvejigennemmulighedfornemtatskaleresinapplikationtil atkunnehåndteremangesamtidigebrugere. MedGAEtilbyderGoogledogikkebaregodeskaleringsmulighederfor webapplikationer,menenhelstøbtplatformsomskalhjælpeudviklernemed helelivscyklussenforenapplikation.manuploadersinkodetilgooglesom sørgerfor,atafvikleden,atopgradereplatformen,atviselogfiler,ogidethele tagetaltvedligeholdelsesomliggerudoverselveapplikationskoden. Dettebetyder,atmansomudviklerkankoncentreresigomdetatudvikleselve applikationenogikkeominstallation/opsætningafmiljøetdenskalafviklesi. Platformenunderstøttertoprogrammeringssprog.DetfortolkedesprogPython ogdetkompileredesprogjava.tilbeggesprogerderlavetetsoftware DevelopmentKitsomgørdetmuligt,atudviklesinapplikationlokaltfor efterfølgendeatuploadedentilgae.administrationafapplikationenforegår gennemenwebbaseretkonsol. IdennerapportvilviudelukkendefokuserepådendelafGAEderkanafvikle Javawebapplikationer.Viviludvikleenlillenetbutik,somvibenyttersomcase, tilatkommerundtomgaeplatformenogdenvejigennembesvare problemformuleringen. 1.1 Motivation MotivationenbagdetteprojektbyggerpåatundersøgeomGAEkunneværeen muligplatformforfremtidigeapplikationervimåtteudvikle. Hvismanvælgerselvattagesigafheleafviklingsplatformen,kandetvære omstændigtatfådeploy etenwebapplikation.derskalindkøbeshardware, opsættesnetværkoginstalleressoftwareogaltsammenskalløbende vedligeholdes. Etwebhoteludeibyen,medunderstøttelseafJava,erogsåenmulighed,som krævernogetmindreforatkommeigang,mendetvilaltidværeenløsningsom kosterogtypiskikkeskalerernemt. DaGAEløserovenståendeproblemervedgratisattilbydeafviklingafJava webapplikationerietnæstenvedligeholdelsesfritskalerbartmiljø,åbnerdet mulighedersomgørvejenfraidétilrealitetmegetkortere. 1.2 Formål Voresforhåbningogdetviønskeratundersøgeer,hvorvidtGAEkanværemed tilatdrivenyeideergennemafviklingafprototypersommåskeenddakunne udviklesigtilfærdigeapplikationerogstadigforblivepågaeplatformen. AfClausMyglegaardVagnerogJacobvonEyben Side2af44

5 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 VivilhaveafklaretomvimedGAEkanafvikleenapplikationudvikletsomvi ellersvillehavegjortdet,ietmiljømedfuldkontrol.oghvisikkedetkanladesig gøre,hvorstorebegrænsningernesåer. 1.3 Problemformulering MedudgangspunktiGAEsomplatformforenJavawebapplikationvilvi forklare/besvarefølgende: forklarehvilkeprincippermanskalbenytteforatafviklewebapplikationerpå GAE. sammenlignegaemedandrealternativerogudpegedevæsentligefordeleog ulemperiforholdtildisse. beskrivehvordandenunderliggendeimplementationafgaeindvirkerpå programmørensmuligheder. vurdererelevanteforholdomkringafviklingafprogrammerpågae,såsom skalerbarhed,robusthed,sikkerhedogportabilitet. forklarehvordanenjavawebapplikationkanmigreresfragaetiletandet servermiljøinklusivapplikationsdata. 1.4 Aspekter EnvurderingafenplatformsomGAEkansesfraforskelligesider. Viharvalgtatopdelebelysningeni3kategorier: Figur1:AspektersomvivilbrugeianalysenafGAE. Tilhverkategoriharvivalgtenrækkerelevanteaspekterdererværdattagei betragtningnårenplatformskalanalyseres Forretningen Setfraetforretningsmæssigtsynspunkterfølgendeaspekterinteressante. Prismodel HvilkenprismodeltilbyderGAE? Administrationogovervågning Erderhjælptiladministrationafapplikationen? Portering AfClausMyglegaardVagnerogJacobvonEyben Side3af44

6 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 Hvilkeudfordringererderiforbindelsemedatportereenapplikation vækfragaeplatformen? Backup Erderdatasikkerhed? Platformen Kiggervipåselveplatformenerderrenttekniskenrækkeinteressanteaspekter derbørkiggespå. Persisteringafdata Hvilkemulighedererderforatfåpersisteretdataoghvordanlaverman forespørgslermoddepersisterededata? Transaktionsstyring Hvilkemulighedererderforatstyretransaktioner? Adgangtilfilsystemet Erdetmuligtatskriveoglæsetilogfrafilsystemet? Fejlsøgning KanmanprofileogdebuggeenGAEdeployetapplikation? Unittest Hvadermulighederneforatafvikleunittest? Versionering Hvilkekraverdertilreleaseafnyeversioner? Integration HerservipåmulighederneforatkommunikeretilogfraenGAEhostet applikation. Sockethåndtering Hvorvidtderkanlavesdirektesocketforbindelsertilogfra applikationen? HTTP/HTTPS HvilkemulighederharmanforatforetageGETogPOSTforbindelserbåde medogudenbrugafssl? FTP ErdetmuligtatbenytteFTPprotokollen? Webservices Kanderforetageswebservicekaldtilogfraapplikationen? 2 Baggrund Ifølgendeafsnitvilvibeskrivehvadcloudcomputingteknologienerogkomme nærmereindpåhvadgaeplatformenbeståraf. 2.1 CloudComputing MedGAEmelderGooglesigpåbanenblandtudbydereafdetsåkaldteCloud Computing.Idetfølgendevilvigiveenkortindsigtihvaddererkarakteristisk vedcloudcomputingogenredegørelsefortermertypiskbrugtomkringemnet. CloudComputing(CC)handleromatfåleveretnogleservicesfraenleverandør overinternettet.detkanværebådeinfrastrukturogsoftware. AfClausMyglegaardVagnerogJacobvonEyben Side4af44

7 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 FølgendeerkarakteristiskforCC(Reese, 2009): Elastisk MedCCskalmanhurtigtkunnefåstilletekstraressourcertilrådighedog ligeledesfrigøreressourcersomikkelængereernødvendige. Udgifter PrisenforCCafregnesefterforbrug.Detgiverenlangtmindreudgifttil indkøbafhardware.nogleafdisseudgifterrykkesdogoveriden efterfølgendeoperationelledelogudgiftenvilafhængeafhvilkenformfor CCderbenyttes.LidtsenerevilvikommeindpåprismodellernefordeCC platformeviharvalgtattageibetragtning. Klienter Enapplikationskalkunnetilgåsuafhængigtaflokalitet.Detvilsige,at manmedenbrowsermedeninternetforbindelseskalkunnenå applikationenoveraltiverden. Pålidelighed Pålidelighedvilværestørreiogmedatmantypiskharredundante lokationermedserveresomallebidragertildensamme cloud. Skalerbarhed SkalerbarhedernogetmansombrugernemtskalkunneskruepåietCC miljø.detkunneentenskeautomatiskellergennemetwebinterfacehvor manefterbehovkanskrueopforressourcer.dettekanværemeget anvendeligtforapplikationersomsvingermegetiantalletafsamtidige brugere. IforbindelsemedCCbliverderoftenævntfleretyperafservices: InfrastrutureasaService IaaS PlatformasaService PaaS SoftwareasaService SaaS AfClausMyglegaardVagnerogJacobvonEyben Side5af44

8 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 Følgendefigurviserhvordandisseformeroverlapperhinanden: Figur2:ViserhvordanIaaS,PaasogSaaSoverlapperhinanden. IaaShenvendersigprimærttilnetværksarkitekterogerleverancenafIT infrastruktur.detteskeroftegennemenvirtualiseringsteknologi.manfåraltså ikkeandetendcomputerestillettilrådighedogmanskalselvsørgefor installationafsoftware.nogleudbyderehardoglavetværktøjersomletterdette. Mereunderafsnit4.2. PaaShenvendersigtilapplikationsudviklereogerleverancenafenhelplatform medapi ertilatudvikleapplikationerpå.manhartypiskmindrefleksibilitetend vediaasdamanerunderlagtenprædefineretplatform.derimodkanman udelukkendekoncentreresigomatudviklesinapplikation.gaeerenpaas. SaaShenvendersigtilslutbrugerneogerleverancenafnogetsoftwaresomer hostetgennemcc.eksemplerpådetteergmailoggoogledocs. 2.2 GoogleAppEngine Vivilidetteafsnitbelyseplatformenudfradendokumentationderfindesom GoogleAppEngine.Detvilværedokumentationskrevetomselveplatformen ellerrelateredeemnersomf.eks.bigtable Prismodelogkvoter GAEersomtidligerenævntgratisatkommeigangmed.Googlehardogsatnogle kvoterpåforbrugsomdetkosteratoverskride.manskalaktivtslåtil,gennem administrationen,atmanforventeratskullebetaleforforbrugudoverkvoterne medsinaktuelleapplikation.detbetyder,atmanikkeligepludseligfåren regningfragooglefordimanharoverskrevetenkvote.harmanikkeaktiveret AfClausMyglegaardVagnerogJacobvonEyben Side6af44

9 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 betalingforapplikationenogmanoverskriderenkvotevilderopståenfejlsom viltagesigforskelligtudaltefterhvilkenkvotederoverskrides 1. OverordnetsetkanmanopdeleGAEkvoteri2kategorier: fakturerbarekvoter fastekvoter Defakturerbarekvoterkanforøgesgennembetalinghvorimoddefastekvoter ikkekan,dadeermedtilatsikreatgae,somplatform,kanydeogskaleresom detloves. Enkvoteblivernulstilleténgangidøgnet. Fakturerbarekvoter Defakturerbarekvotererpålagtfølgenderessourcer: Båndbredde CPU Lagerplads E mail NårkvoternefordisseressourceroverskridesharGoogleenprismodelhvor manbetalerfordetmangåroverkvoten. Ressource Kvote Prispr.enhed Enhed Udgåendebåndbredde 1 $0,12 Gigabyte Indgåendebåndbredde 1 $0,10 Gigabyte CPUtid 6,5 $0,10 CPUtimer Lagerplads 1 $0,15 Gigabyteommåneden Sendtee mails 2000 $0,0001 Modtager Tabel1:Kvoterogpriserpåforbrugudoverkvoterne 2 anno12/2009. Mådenhvorpåmanadministrereomkostningerneer,atmanopsætteret dagsbudgetforhvadensapplikationmåbrugeafpenge.gårensapplikationud overkvoternefortilsidstatrammeomkostningsgrænsenvildersomtidligere nævntreturneresenfejlfraapplikationen. Googleharydermerelaveten pr.minutkvote forbådefakturerbaresomikke fakturerbarekvoter.dennekvotesikreapplikationenmodikkeatforbrugeen kvotemegethurtigthvisf.eks.enandenapplikationkørerrovdriftpåenspecifik ressource.eksempelvisfordenindgåendebåndbreddehvorkvotenpr.dager1 gigabyte,såmådermaksimaltkomme56megabyteiminuttet. Fastekvoter Dererressourcer/servicessomGoogleikketilladeratmanbarekøbermereaf. DeenkelteGAEservicessomvibeskriversenerevilallehaveetsætaffaste 1Enmeredetaljeretbeskrivelseafhvilkenfejlsomkommerhvornårerbeskrevether: 2Priseroplystgennemhttp://code.google.com/appengine/docs/billing.html AfClausMyglegaardVagnerogJacobvonEyben Side7af44

10 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 kvotertilknyttet 3.BortsetfraMailservicenhardeandreserviceskvoteraltefter omdeterenbetalendeapplikation. Vivurdereratmangeafdefastekvotererhøjeogvilideflestetilfældevære tilstrækkeligeihvertfaldhvismanharopsatbetalingforsinapplikation.idet øjeblikmanopsætterbetalingøgesdissefasterkvoter.foreksempelkanen gratisapplikationmodtage1,3millionforespørgsleromdagenhvorimoden betalendeapplikationkanmodtage43millioner.kvoterneergenereltmeget højereforbetalendeapplikationer,menmankommerdogogsålangtmedet maksimumpå1,3millionforespørgsleromdagen. Derkanværeforskelligeårsagertil,atmanikkekankøbesigtilmere,meni bundoggrundmådetbyggepå,atgaesomplatformsætternogleydrerammer foralleapplikationernesomermedtilatsikreydeevne,stabilitetog skalerbarhedforheleplatformen BigtableogGAEDatastore BigTable(Fay Chang, 2006)erenproprietærdatabaseudvikletafGoogle.Google benytterselvbigtabletilenrækkeafderesegneapplikationersomf.eks: YouTube,GoogleMaps,GoogleEarthogblogger.com. Databasetype GoogleharunderudviklingenafBigTablehaftfokuspåatdistribueredataud overenlangrækkefysiskemaskiner. DetharværetmedtilatBigTableikkeerenrelationeldatabasesomkendesfra f.eks.oracle,ms SqlogMySql.Dvs.dererikkeernogettraditioneltdatabase skema. Istedeterdataorganiserethierarkisk.Entiteteridatabasengrupperesi træstrukturerhvorhverentiteterennodeiettræ.entræstrukturbetegnessom enentitygroup,hvordenøversteentitetbetegnessomtræetsroot entity. ForskellenimellemBigTableogentraditionelrelationeldatabasekanudtrykkes igennemfølgendelilleeksempel: Ienrelationeldatabasemodelleresforholdetmellemenbogogetkapitelveden en til mangerelation,hvorimoddetibigtablemodeleresvedatenboger forældreentitetentiletkapitelienhierarkiskstruktur. Denmanglendeskemadefinitiongøratconstraintskunkanadministreresi applikationslaget.denneformforløstskemabetegnessoftscheme.etframework somf.eks.javapersistinceapi(jpa) somviharvalgtatbenytteivorescase kanhjælpemedtilathåndteredetteigennemdetsrelationsannoteringer. 3Enoversigtoverallekvoternekanlæsesher: AfClausMyglegaardVagnerogJacobvonEyben Side8af44

11 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 EntityGroup EntiteterbetegnessomværendeisammeEntityGrouphvisdetilhørersamme root entity.heltkonkretvildetsigeatderesnøgleerprefix etdetsamme. Eksemplerpånøglerkansesher: butik(1)/customer("003307f4-bc60-483c-b87d-ddc5738cdbc0") butik(1)/customer("42dba cbe-9ec3-b8707ba7de58") Kodeeksempel1:TonøglerforCustomerentiteterderbeggefigurererunderdensammeroot entityderhedder butik(1). Transaktionshåndtering BigTableindeholderikkeisigselvtransaktionsstyring,mendennesupporter byggetindidetpersistenslagderbenyttespågae somerenudvidelseaf BigTable.ViharvalgtatbetegnepersistenslagetGAEDatastore,mendereri skrivendestundikkemeldtnogetofficieltnavnudfragooglesside.detrygtesat navnetpådettedatastorebetegnesmegastore 4. TransaktionsstyringiGoogleDatastore,kankunforetagesindenforentiteteri sammeentitygroup. QueryLanguage ForespørgslerimodBigTabledatabasenskerigennemGooglesegetquerysprog GQL(GoogleQueryLanguage).GQLerisyntaksmegetligSQLsomkendesfra relationelledatabaser. BigTableharfrastarthaftfokuspåhastighedvedforespørgslerogharderfor committetsigtilatforespørgslerskalererlinærtiforholdtilresultatsættet(ross, 2009).DethargjortatderendnuikkeersupportforjoinsiBigTable,daGoogle ikkeharløstproblemstillingen,atundgåatlaveetkrydsproduktvedjoinafto ellerfleretabeller(ross, 2009) Udviklingogafviklingafwebapplikation GAEplatformenharsupportforkodekompileretmedJava5eller6. ForatkunneafvikleenwebapplikationpåGAEplatformenskalderbenytteset GAESoftwareDevelopmentKit(SDK)dergratiskandownloadesfraGoogle. DeterigennemdenneSDK,atapplikationeruploadestilGAEplatformen. GAESDK etgørdetogsåmuligtatafvikleenapplikationlokaltigennemen stubbetgaeplatform.unittestafklasser,samtdownloadingaflogfilerskerogså igennemdettesdk. MedGAESDK enfølgeretant 5 script,dergørdetnemtatkompilereoguploade applikationertilgaeplatformen.ivoresudviklingharvidogvalgtprimærtat 4IfølgedenneblogkandetværeMegaStorederbenyttes: 5Anteretxmlscriptingsprog,derividudstrækningbrugestilkompileringogautomatisktestaf kode AfClausMyglegaardVagnerogJacobvonEyben Side9af44

12 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 brugeetpluginudvikletafjetbrains 6,derpasserspecifikttilIntellijIDEA,somer denide(udviklingsmiljø)viharvalgtatbenytteunderudviklingenafvorescase. ForatafvikleenwebapplikationpåGAEplatformenskalapplikationen udover densædvanligeweb.xmlfil,ogsåindeholdeenspecielappengine web.xml. Denneappengine web.xmlindeholderspecifikkegaeparametre.deterf.eks. versionenafdensoftwarederuploades,miljøvariablebrugtiapplikationenog omapplikationenunderstøtterssl.indholdetafdenneappengine web.xmlfil fortolkesafgaeplaformennårapplikationenuploades KendtebegrænsningeriGAE ApplikationerpåGAEplatformenhostesiensandbox,forståetpådenmådeaten rækkespecifikkejavaapi erikkekanbenyttespågae.mådengaeharvalgtat implementeredettepåervedatarbejdemedetmodificeretjavaruntime Environment(JRE).DetteJREindeholderenwhitelist 7 afalledeklasserfrajava DevelopmentKit et(jdk)somkanbrugesunderafviklingenafetprogram. PådennemådeharGAEforhindretfølgendeoperationerderallevillebinde afviklingenafenwebapplikationtilenspecifikfysiskmaskineogdermed besværliggøredistribuering: Ingenadgangtilfilsystemet o Skriveoglæsetildiskbinderafviklingentildenfysiskemaskine Ingenoprettelseaftråde o Implementationenafhvorledestrådeafviklesbindersigkraftigttil enspecifikjvm,somigenknyttersigtildenmaskineapplikationen afviklespå. Ingendirektesocketadgang o Direktesocketadgangerento vejskommunikationimellemto netværksadresserogdetviligenbindeapplikationentilenspecifik maskineitidsrummethvordennesocketeråben. VedatforhindreadgangentildissenævntetingbevarerGooglekontrollenover hvordeønskeratafvikleapplikationen. DerernogleandrevæsentligebegrænsningerforapplikationenpåGAE.En forespørgseltilapplikationkanmaksimaltkørei30sekunderhvilketbetyderat hvismanharstoredatamængderellerlaverandentungprocesseringvildenne begrænsningværeenhindring. Ydermeremåetsvarfraapplikationenikkeoverstige10MBoghverenkelt datastoreentitysomgemmeskanikkefyldemereend1mb.1mbgrænsenkan hurtigtbliveoverstegethvismanvilgemmebilleder,pdffileroglign. 6FirmaetbagIDE enintellijidea 7http://code.google.com/appengine/docs/java/jrewhitelist.html AfClausMyglegaardVagnerogJacobvonEyben Side10af44

13 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 Kvote Maksimum App.pr.udvikler 10 Tidpr.forespørgsel 30sekunder Filerpr.app httpsvarstørrelse 10MB Entitetstørrelse 1MB Kodestørrelsepr.app. 150MB Tabel2:TabelovernoglefastebegrænsningermedGAE GoogleAppEngineservices GAEtilbyderenrækkeservices,somensapplikationerfritkanbenytte,mensom ogsåermedtilatimødekommeenrækkeafdebegrænsningerderfindespågae platformen.vivilhergennemgådeforskelligeservices. Cronjobs Atmanikkekanoprettetrådegørdetumiddelbartumuligtatforetage asynkroneoperationer.foratimødekommedetteproblem,hargaeudstilletet proprietærtapitilnetopathåndterecronoperationer 8.IgennemdetteAPIer detmuligtatschedulereretjobtilatblivekørtpåfastlagtetidspunkter.deter specieltnyttigtnårf.eks.etopensourceapisomquartz 9 ikkeunderstøttes. TaskQueue IgennemdetteAPIerdetmuligtlæggeopgaverienkø,hvorfradesåvilblive udført.detteapieriskrivendestundstadigunderudviklingogbetegnesderfor ikkestabilt. URLFetching Detersomsagtikkemuligtatoprettedirektesocketstilandremaskinerpå forskelligeporte.mendetermuligtatbenyttejava.net.urlconnectionog relateredeklasser.deerimplementerettilatbenyttegae segenurlfetch 10 service,fornetopatforhindredendirektesocketforbindelse. DetteURLFetchAPIbenyttesogsåtilattilgåHTTPSadresser.DenGoogle specifikkeproxyderbenyttesunderhttp/httpsforbindelsergiverikke mulighedforatauthenticatedenhostderforbindestil.resultateter,atalle certifikateraccepteresinklusivself signedcertificater.dennemangelpå authenticationgørdetumuligtatforhindrehvadderiit terminologierbetegnes man in the middle 11 angreb.denneurlfetchservicegørdetkunmuligtat forbindetilport80og443,somerstandardporteforhttp/httpsforbindelser. Memcache MemcacheerencachederkanbrugespåGAEplatformen.Deterendistribueret 8http://code.google.com/appengine/docs/java/config/cron.html 9http:// scheduler.org/ 10http://code.google.com/appengine/docs/java/urlfetch/overview.html 11Enbetegnelsehvordereren3.partsomlyttermedpåendataudveksling: in the middle_attack AfClausMyglegaardVagnerogJacobvonEyben Side11af44

14 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 hukommelsesbaseretcachesomkanbrugesforandatastore etellerhelterstatte detafhængigtafapplikationen. MemcacheerenimplementationafenJavastandard 12 somgiveretinterfaceder svarertildatastrukturenforetjavamap.detvilsige,atmangennemennøgle kanhenteoggemmeværdierforalleklassersomerserializable. Mail MedGAEplatformenharmanmulighedforatsendeogmodtagee mails. InterfaceterJavaMail(javax.mail).DererikkebehovforatkonfigurereenSMTP server,dadetergivetgennemimplementationenafmailservicen. Nårenapplikationskalmodtageene mailskerdetgennemenforespørgsel initieretafplatformentilapplikation,somsåskalhaveimplementeretnoget kodetilattageimoddisse,somf.eks.enservlet. XMPP EnGAEapplikationkansendeogmodtagechatbeskedertilogfraenhver XMPP 13 kompatibelservice.dettekunneværegoogletalk.indkommende beskederbliverlavetomtilenhttppostmodenbestemturlsomapplikationen kanlaveenservlettilattageimod. Billeder Udviklermanenapplikationsomkræverbilledbehandling,erdettemuligtpå GAE.Derfindesenbilledeservicesomkanhjælpemedf.eks.atskalere,rotere ellerbeskæreetbillede. Mankanogsåsætteflerebilledersammenogkonverteremellemforskellige formater.servicenharenalgoritmesomkanværemedtilatforbedrekvaliteten afbilleder.harmanbehovformetainformationombilledet,såsomhøjdeog breddekandetteogsåladesiggøre. GoogleAccounts EnhverapplikationpåGAEkanbrugeGoogleAccountssomlogin.Viharivores casevalgtatgøredette.nårmanskalloggeindblivermansendtvideretilen loginsidesomikkedirekteerendelafensapplikation.detteskalmanvære opmærksompåmht.applikationsdesignet,dadennesidefølgergooglesstandard logindesign. Nårenbrugererloggetinderderadgangtilmailadressen.Ermanudviklerpåen applikationvilmanværemarkeretsomadministrator.denneadministrator informationerogsåtilgængeligforapplikationenefterbrugerenerloggetind. GoogleAccountsservicenerikkenødvendigatbruge,meneretalternativtilselv atskriveenbrugerhåndtering. 12JSR107(javax.cache) 13ExtensibleMessagingandPresenceProtocol AfClausMyglegaardVagnerogJacobvonEyben Side12af44

15 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret Case Dererblevetudvikletenbutikmedbegrænsetfunktionalitetforståetpåden mådeatfokuserrettetmodateksercereapplikationensåledes,atvifårbelystde deleafgaedetkræverforatbesvareproblemformuleringensåfyldestgørende sommuligt. Casenertilgængeligpåfølgendeurl: Netbutikkenvilbeståaftobrugergrænseflader. Admininistrationsgrænseflade Enadministrationsgrænseflade,hvordetermuligtatopretteprodukterderkan sælgesibutikken. Dennegrænsefladevilkræveautorisationforatfåadgangtil. Dererlavetenfiktivordrebehandlerdermedjævnemellemrumvilsøgealle ikkebehandledeordreigennemogbehandledem.ipraksisvildetikkesige andetendatmarkererdemsombehandlet. Offentliggrænseflade Ensidehvorallekanvælgeiblandtdeprodukterderkankøbesibutikken. Dervilværemulighedforatfyldevarerien'indkøbskurv'. ForatgennemføreetkøbskalbrugerenloggeindviaenGoogleAccount.Første gangenbrugerkøbeributikkenskalvedkommendeindtastenogle brugerspecifikkeoplysninger dissevilblivegemttilfremtidigekøb. Selvebetalingenvilbliveudeladtdavibegrænserosfraatintegreremedsikker internetbetaling. Detvilogsåværemuligtatseenlisteoverhistoriskeordre. Følgendefigurviseretkøbs flowibutikken: Figur3:Diagramderviserhvorledesenordregennemføres. AfClausMyglegaardVagnerogJacobvonEyben Side13af44

16 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret Valgafteknologier Ivoresvalgafteknologiertiludviklingafcasen,harvilagtvægtpåatbenytte teknologiervivederanerkendteiopensourcemiljøetogsamtidigvilvære seriøsekandidaternårder,ienvirksomhed,skalvælgesteknologiidag. Derudoverharvilagtvægtpåatdeterteknologiervierbekendtmedfravores hverdagsomprofessionellesoftwareudviklere JPA JavaPersistenceAPI(JPA)eretpersistensAPIudvikletafSun. Dennetypeframework ogsåbetegnetobject Relational Mapping(ORM)API gørdetmuligtatmappejavaobjektertilrelationelledatabaser. Normaltnårmanmapperjavaobjekterimodrelationelledatabaserkanman vælgeimellemenrækkeforskelligeimplementationerafjpa,mendagoogle DatastoresomnævntikkeerenrelationeldatabaseerdetkunDatanucleus 14 der endnuharenimplementationafjpaopimodgoogledatastore.datanucleuser implementeretvedatdenskalpostprocessererdenkompileredebytekodefor dejpaannoteredeklasser,indendekanafviklespågae. ForespørgsleriJPAskerigennemJPQL(JavaPersistenceQueryLanguage). DatanucleusimplementationenafJPAsørgerforatoversættedetteJPQLtilGQL somerforespørgselssprogetimodgoogledatastore. Etalternativtvalghavdeværetdetandetpersisteringsframeworkunderstøttet pågaejavadataobjects(jdo).jdotagerikkeudgangspunktienrelationel datastruktur,menerenmeregenerelabstraktionoverpersisteretdata. ViharvalgtatholdefastiJPA,davigernevilleprøveatudvikleenapplikationtil GAE,somviellersvillehavegjortdet,hvorvinormaltvillevælgeJPA Spring Springeretframeworkderharvundetfremisoftwareindustrienikølvandetpå detopgørderharværetmedde tunge EJB2containererogJ2EE.Springbliver afmangebetegnetsomen"lightweightcontainer.enletvægtscontainerder håndtererenrækkecrosscutting concernssåsomf.eks.transaktioner,loggingog authentication/autorization desammetingejb2containerevaretog nubare udenatstillekravomatkodenafviklesietspecifiktcontainermiljø. DerudovertilbyderSpringogsåbegrebetDependencyInjection.Kortfortalt,er dependendcyinjectionenformforinversionofcontrol,hvormådenhvorpåen afhængighedfraenklassetilenandenikkelængereopfyldesvedopslag,men istedet gives (injectes)indviaentenset ermetoderellersomparametretil konstruktørenforjavaklassen.hervedlavesderenløskobling,dadeninject ede klasseførstafgørespåruntimetidspunktet Wicket DerfindeenlangrækkeforskelligewebframeworkspåJavaplatformen.Enstor delafdemestbenyttedeopensourceframeworksderidagbenyttesiindustrien, 14DatanucleuseretJPA1.0kombatibeltframeworktilprocesseringafjavaklasser mappesnedtilbigtabletabeller AfClausMyglegaardVagnerogJacobvonEyben Side14af44

17 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 erhostethoswww.apache.org.viharvalgtatbenyttewicketdaviharerfaring meddettefratidligere. KortfortalterWicketetkomponentbaseretwebframeworkdergiverenren opdelingimellempræsentationslagetogdetlogiskelag. 3.2 Caseerfaringer Udviklingenafdensimplenetbutikviharstilletopsomcase,hargivetenrække erfaringersomviharvalgtatbeskriveienopdelingdersvaretildeaspektervi vilbelysevedgaeplatformen Prismodelogkvoter Prismodellerogkvotererberørtiafsnit2.2.1.Vierivorescaseikkekommet yderligereindpådetteemne. AfClausMyglegaardVagnerogJacobvonEyben Side15af44

18 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret Administrationogovervågning GAEkommermedenadministrationskonsolsomstillerforskelligefunktionertil rådighedsomgøradministrationogovervågningnemmere. Administration Billede1:ScreenshotafDashboardfraGAEadministrationskonsollen Viharigennemudviklingenafvorescaseværettopersonersomhverisærhar kunnelæggenyeversionerafapplikationenoppågae.denneadministrationaf hvemsomerudviklerpåapplikationenereteksempelpåhvadmankanstyrefra konsollen.nårdererfrigivetennyversionvildetteogsåfremgåunder Versions skærmbilledethvormanogsåharmulighedforatskifteversionen. LigeledesbliverderogsåvedligeholdtenAdminLogsomviserhvilkenudvikler somhargjorthvad,somf.eks.athavelagtennyversionpå. ManharogsåmulighedforattilgåDatastore etoglaveforespørgsler,menogså opretteogredigeredatastoreentiteter. AfClausMyglegaardVagnerogJacobvonEyben Side16af44

19 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 AfClausMyglegaardVagnerogJacobvonEyben Side17af44 Overvågning GAEovervågningstarterpåforsidenafkonsollen.Herharmanmulighedforatfå diversegraferoverf.eks.forespørgslerpr.sekund,menogsåhvormangegange applikationenharreturneretenfejlpågrundafatenkvoteeroverskredet. MankansehvilkenURIsomindenfordesidste24timerhargenereretflestfejl ogderleveresetøjebliksbilledeafbelastningenpåapplikationen,samthvadder bliverbrugtafcputidfordeforskelligeuris. Dererogsåadgangtillogfiler,somkanpålæggesfiltre.Viharfleregangehaft behovforattilgådisselogfilergennemudviklingenafcasennårviharoplevet problemerpågae,somviikkegjordelokalt. Overvågningengiverselvfølgeligogsåetfuldstændigtoverblikoverforbrugi forholdtilkvoterneforapplikationen Backup DerfindesingenværktøjerellerhjælptilatforetagebackupafdatapåGAE platformen,såbackupermanselvansvarligfor.dadetkunerdenenkelte applikationderkantilgådetgoogledatastoredererallokerettilapplikationen, skalenegenudvikletbackupprocedureogsåkørepåplatformen.skaldette styresafencronmekaniskeskalbackupkunneinitieresafeturlkald Portering Vivilherkommeindpåhvilkemulighederdererforatportereenapplikationtil ogfragae. Porteringafdata Ligesomforbackupafdata,findesderingenværktøjerderkanhjælpemed dette. Deterderforoptilapplikationsudviklerneselvatsørgeforatskriveden nødvendigekodedergørdettemuligt.eksportenskalværemuligatforetage igennemetalmindeligthttprequest,forsomvikommernærmereindpåer detteenesteintegrationsmulighed. Nårdennesoftwareskriveserdetvigtigtatværeopmærksompåbegrænsningen forhvorlængeetrequestertilladtatkørepågae,samtbegrænsningenpå10mb forresultatetpåenforespørgsel(seafsnit2.2.4),dadetkanværeenhindringfor atskrivestørrebatchoperationertileksportafdata. Detmestsandsynligevilleværeatmanerinteresseretiateksporteretilen relationeldatabase.detvillederforværenaturligtatforsøgeateksporteredata direktetilsqlinsertstatements.dadataigoogledatastoreergemthierarkiskog ikkeharetschematilatsikredatakonsistens,såkanopgavenhurtigtvisesig ikkeatværetriviel.ligeledesskalbinærtdataenteneksporteresseparateller base64encode sforatværemuligtateksporterersomtekst. Vedeksporteringtilenrelationeldatabasevilledetværenaturligtfremoverat gørebrugafenrelationeldatabasesmulighederforatgenererid erautomatisk. IdkonverteringfraGoogle skeyformat,derrepræsentererenhierarkisk struktur,tilintegerbaseretid,erderforhellerikkehelttriviel.

20 GoogleAppEnginesomplatform Vejleder:ArneJohnGlenstrup IT Universitet,Efteråret2009 Ateksportererdirektetilsqlinsertstatementsermåskeikkedenoptimale løsning.eneksporttilf.eks.xmlellerjsonkanogsåværeenløsning,daman derigennemikkeharlagtsigfastpåetdestinationsformat.omvendtskalder skrivesenparserimodtagerenden,derkanforståudvekslingsformatet. Porteringafapplikationen Somudviklerbindermanuundgåeligtapplikationenoppåenrækkeproprietære API er,derskaltagesibetragtningvedmigreringafenapplikation.detværesig tilsigtetsomnårvif.eks.vælgeratgørebrugafgoogleaccountlogin,menogså utilsigtet,nårvi tvinges tilatbrugekeyfactoryogkeyobjektetsomnøglefor ensentiteter,ibestræbelsenpåatsikretransaktionsstyringpåtværsafalle entiteter(seafsnit3.2.7). HvortætbundetenapplikationerpåGoogleAPI erermegetindividuel,men voreserfaringfortælleratjolængereenapplikationhareksisteretpåengiven platform,jostørreersandsynlighedenforatdererdeleafapplikationender benytterproprietæreapi er. DetypiskeeksemplereratenapplikationbenytterdatabasespecifikkeSQL statements,ellercontainerspecifikkej2eefeatures. Vierderforoverbevistom,athvismanikkedesignermedenfremtidigmigrering itankernefrastart,vilapplikationenpåsigtblivetætbundettilplatformen, hvorforenporteringikkevilværetriviel. ViharkonkretkiggetpåhvormegetvorescaseharbenyttetproprietæreAPI er ogkanse,atviharbundetapplikationeniforbindelsemedfølgende: IdgenereringerbundettilKeyFactoryogKeyklasserne. GoogleAccountloginsomnøgletilkundedata,samttilbeskyttelseaf administrativesider(kræveradministrationsrettigheder) UnittestsætteretspecieltGAEmiljøop. VibenytterGoogleCron.Vedenmigreringvilviskulleimplementereen lignendefunktionalitetpådennyeplatform. VoresperfomancemålingerbenytterGoogle sdelegateapi Versionering IadministrationsværktøjetderstillestilrådighedpåGAEplatformenerdetnemt atstyrehvilkenversionafenapplikationderskalværetilgængeligpådomænet. Opgraderingafselvesoftware enerderforennemoperation.ennyversion skrivesindiappengine web.xmlognårapplikationeneruploadettilgae platformen,kandennyeversionvælgesfraadministrationskonsollen. Anderledesforholderdetsigforselvedatagrundlaget. Nårenapplikationstadigerunderudviklingogendnuikkeoffentliggjort,er datagrundlagetofteikkeetessentieltproblem.detersandsynligvisiordenat manfratidtilandensletteraltdataforigenatindlæsetestdata. Nårenapplikationertagetibrugerdatakerneniapplikationenogdatabliver pludseligtetcentraltbegrebvedreleaseafnyeversioner.detersandsynligtat ennyversionafapplikationenpåettidspunktbærernyedatastrukturermedsig. AfClausMyglegaardVagnerogJacobvonEyben Side18af44

Tredjepart webservices

Tredjepart webservices Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output

Læs mere

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank 03-10-2018 Rune Ibsen Softwareudvikling Seniorkonsulent Mentoring 10 konsulenter F# Programmeringssprog som oversættes til.net Functional-first,

Læs mere

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk OIOSAML.NET og Umbraco ved Thomas Ravnholt ravnholt @ silverbullet.dk Silverbullet, stiftet 2003 Silverbullet A/S IT- rådgivning, projektledelse og implementering Officiel SKI-leverandør Kontorer i Århus

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

Indhold. Senest opdateret:03. september 2013. Side 1 af 8

Indhold. Senest opdateret:03. september 2013. Side 1 af 8 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3

Læs mere

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004 Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),

Læs mere

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 Webshop2 API Model... 3 Brugen af API et... 4

Læs mere

Hvilket sprog er hurtigst

Hvilket sprog er hurtigst Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Denne guide er oprindeligt udgivet på Eksperten.dk XML parsning i Java Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Den forudsætter kendskab til Java og XML.

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan vælger jeg dokumentprofilen? Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel

Læs mere

Digitaliseringsstyrelsen

Digitaliseringsstyrelsen NemLog-in 29-05-2018 INTERNAL USE Indholdsfortegnelse 1 NEMLOG-IN-LØSNINGER GØRES SIKRERE... 3 1.1 TJENESTEUDBYDERE SKAL FORBEREDE DERES LØSNINGER... 3 1.2 HVIS LØSNINGEN IKKE FORBEREDES... 3 2 VEJLEDNING

Læs mere

Navision Stat (NS 9.2)

Navision Stat (NS 9.2) Side 1 af 7 Navision Stat 9.1.002 (NS 9.2) ØSY/NS/RASEG Dato 21.06.2018 Installationsvejledning til NS Web API Invoker Overblik Introduktion Installationsvejledningen beskriver, hvordan man installerer

Læs mere

4 sekunder. 20 sekunder. 1-3 timer. 14% hurtigere. 5-6% bagud. 30/70 split. Vejen til succes med Hybrid Cloud v/cso, Poul Bærentsen, Atea

4 sekunder. 20 sekunder. 1-3 timer. 14% hurtigere. 5-6% bagud. 30/70 split. Vejen til succes med Hybrid Cloud v/cso, Poul Bærentsen, Atea 4 sekunder 1-3 timer 20 sekunder 14% hurtigere 5-6% bagud 30/70 split Vejen til succes med Hybrid Cloud v/cso, Poul Bærentsen, Atea Emnerne jeg vil tale om Brændende platforme versus brændende ambitioner

Læs mere

Assignment #5 Toolbox Contract

Assignment #5 Toolbox Contract Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal

Læs mere

Fra idé til virkelig med Azure Mobile Services

Fra idé til virkelig med Azure Mobile Services Fra idé til virkelig med Azure Mobile Services Niels Ladegaard Beck Holion nlb@holion.dk @nielslbeck Windows Developers in Denmark Azure App Service Mobile App Introduktion til Azure Mobile Services Platform

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance)

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance) Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic

Læs mere

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design

Læs mere

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007

RMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 RMI med BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 Hvad er RMI? Når man arbejder med Distribuerede Systemer, som igen vil sige at man ønsker at flere end én komputer

Læs mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11 DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2. 2 Klassediagran 5

1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2. 2 Klassediagran 5 INDHOLD 1 Domæne 2 1.1 Design valg.................................... 2 1.1.1 User.................................... 2 2 Klassediagran 5 3 Serbio 7 3.1 Kommunikation..................................

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Perspektiverende Datalogi Internetalgoritmer. MapReduce. Gerth Stølting Brodal

Perspektiverende Datalogi Internetalgoritmer. MapReduce. Gerth Stølting Brodal Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal MapReduce Implementationer Dean, F. and Ghemawat, S. (2004) MapReduce: Simplified Data Processing on Large Clusters. In: Sixth

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Small Business Server 2003 Certifikat administration Følgende vejledning beskriver hvordan man vælger hvilke adresser der skal være i ens SBS 2003 SSL certifikat. For support og hjælp til anvendelsen af

Læs mere

SigmaT.

SigmaT. Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

IT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S

IT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S IT-Basecamp 2013 Real World Java EE Patterns Adam Bien 1 Indhold Lidt om mig Baggrund for valg af emnet Bogens opbygning Fra J2EE til JEE 5/6 Overflødiggjorte patterns Fremhæve et par patterns 2 Kenneth

Læs mere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere Integrationsmanual Anvendelse af webservice til kursusoversigt i Campus Brugervejledning til udviklere Moderniseringsstyrelsen Webservice manual til udviklere 2016 1 1. Indholdsfortegnelse Nyt kapitel

Læs mere

Webservice kald. System-til-system integration. Ny Easy. ATP 1. februar 2017

Webservice kald. System-til-system integration. Ny Easy. ATP 1. februar 2017 Webservice kald System-til-system integration Ny Easy ATP 1. februar 2017 Side 1 of 9 Dokumenthistorik Revisionshistorik Dato for denne revision: 01.02.2017 Dato for næste revision ukendt Revisions Revisions

Læs mere

EDH-dokumenter. - på eksterne hjemmesider der ikke hostes af C&B Systemer

EDH-dokumenter. - på eksterne hjemmesider der ikke hostes af C&B Systemer EDH-dokumenter - på eksterne hjemmesider der ikke hostes af C&B Systemer Opbygning EDH-dokumenter For at præsentere EDH dokumenter på en hjemmeside, skal der konstrueres et system til hjemmesiden, der

Læs mere

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen Sekvensafstand DM34 - Eksamensopgave Jacob Aae Mikkelsen 19 10 76 kokken@grydeske.dk 27. maj 2005 Resumé Rapporten her beskriver tre forskellige rekursive metoder til at sammenligne tekst strenge med.

Læs mere

Integrated Total Facility Management for Real Estate, Infrastructure & Facility Management

Integrated Total Facility Management for Real Estate, Infrastructure & Facility Management Integrated Total Facility Management for Real Estate, Infrastructure & Facility Management Udfordringen Top down Lederskab visioner Buttom up Fakta om Informi GIS 90 medarbejdere Full-size IT hus; salg/rådgivning/

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær. EfterUddannelse.dk FraværService - systemdokumentation BRUGERDOKUMENTATION: WEB-SERVICE Af: Logica Indhold 1. Indledning... 1 1.1 Formål... 1 1.2 Webservice version... 1 1.3 Historik... 1 2. Absence Webservice...

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Microsoft IIS 6 Certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en IIS 6 For support og hjælp til anvendelsen af denne vejledning kan du kontakte FairSSL

Læs mere

Skærmbilled 1: 2 Når man vil oprettet et emne kan man ikke uploade et billed. Skærmbilled 1:

Skærmbilled 1: 2 Når man vil oprettet et emne kan man ikke uploade et billed. Skærmbilled 1: 1 Log ind med da1@forum.dk Pass=1711Dahl Beskeder, gå ind på Bruger=DA3 Andersen Klik på Dokumentarkiv ( 1 ) og downloade PDF så fremkommer følgende fejl: Fatal error: Uncaught exception 'Zend_Controller_Action_Exception'

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

Læs mere

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11

DM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11 DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2 DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld

Læs mere

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter

Læs mere

Singleton pattern i Java

Singleton pattern i Java Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.

Læs mere

Computer netværk og TCP/IP protokoller. dcomnet 1

Computer netværk og TCP/IP protokoller. dcomnet 1 Computer netværk og TCP/IP protokoller dcomnet 1 Maskinarkitektur.. fokus på intern organisation af en enkelt computer: dcomnet 2 Computer netværk.. kommunikation mellem maskiner forbindet i et netværk:

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter

Læs mere

Tree klassen fra sidste forelæsning

Tree klassen fra sidste forelæsning Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation). Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

Læs mere

Database programmerings tips

Database programmerings tips Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler

Læs mere

ODIN-webservice ændringer release 2010 v2.0

ODIN-webservice ændringer release 2010 v2.0 DOKUMENTATION OG VEJLEDNING ODIN-webservice ændringer release 2010 v2.0 Indholdsfortegnelse 1. Nye webservice metoder... 2 1.1 Anvendelse af køretøjer og personel fra fremmede beredskaber ifm. indberetning

Læs mere

Test af Cloud-baserede løsninger DSTB Ole Chr. Hansen Managing Consultant

Test af Cloud-baserede løsninger DSTB Ole Chr. Hansen Managing Consultant Test af Cloud-baserede løsninger DSTB - 2016 Ole Chr. Hansen Managing Consultant Præsentation Ole Chr. Hansen Managing Consultant Fellow SogetiLABS Global Innovation Team Blog - http://ochansen.blogspot.com

Læs mere

Security as a Service hvorfor, hvornår og hvordan. Gorm Mandsberg, gma@dubex.dk Aarhus, 13.06.2013

Security as a Service hvorfor, hvornår og hvordan. Gorm Mandsberg, gma@dubex.dk Aarhus, 13.06.2013 Security as a Service hvorfor, hvornår og hvordan Gorm Mandsberg, gma@dubex.dk Aarhus, 13.06.2013 SecaaS hvorfor, hvornår og hvordan hvad Hvorfor.. Hvornår.. Hvordan.. Disclamer: Dubex er MSSP og leverer

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4 DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens

Læs mere

Model Drevet Design i Praksis

Model Drevet Design i Praksis Model Drevet Design i Praksis Dansk IT - På Vej Hjem møde d. 8/9-2009 Jeppe Cramon - TigerTeam ApS Lidt om mig 15 års erfaring som software udvikler Partner i TigerTeam Første erfaring med model drevet

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring

Læs mere

Microservices. Hvad er det og hvordan kommer du i gang?

Microservices. Hvad er det og hvordan kommer du i gang? Microservices Hvad er det og hvordan kommer du i gang? Introduktion til Microservices Softwareudvikling Historie Softwarearkitektur Mentoring 10 konsulenter Bezos befaling All teams will henceforth expose

Læs mere

Nye features i Java 1.7/7.0

Nye features i Java 1.7/7.0 Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.7/7.0 Denne artikel beskriver nye features i Java 1.7/7.0, som blev releaset 28. juli 2011. Den forudsætter et vist kendskab til

Læs mere

SKI årsmøde 2017 Outsourcing i praksis Cloud cases. Gorm Priem, 2. marts 2017

SKI årsmøde 2017 Outsourcing i praksis Cloud cases. Gorm Priem, 2. marts 2017 SKI årsmøde 2017 Outsourcing i praksis Cloud cases Gorm Priem, 2. marts 2017 Agenda Kort om ProActive Intro til cases it outsourcing med fokus på skyen Greve Kommune Hjemmeværnet Erfaringer Gartner 2016

Læs mere

HVORDAN VI DOWNLOADEDE INTERNETTET. Man skal crawle før man kan gå

HVORDAN VI DOWNLOADEDE INTERNETTET. Man skal crawle før man kan gå HVORDAN VI DOWNLOADEDE INTERNETTET Man skal crawle før man kan gå DAGSORDEN Hvem jeg er Behovet for en crawler Arkitektur Nutch og Hadoop MongoDB Udfordringer Tak for i dag JACOB AVLUND Partner i Siblingsoft

Læs mere

D INTEGRATIONSDESIGN FOR DATAAFTAGERE

D INTEGRATIONSDESIGN FOR DATAAFTAGERE DIGST ORKESTRERINGSKOMPONENT D0180 - INTEGRATIONSDESIGN FOR DATAAFTAGERE Version: 1.3 Status: Endelig Godkender: Forfatter: Copyright 2019 Netcompany. Alle rettigheder forbeholdes. Dokumenthistorik Version

Læs mere

Driftsudkast. OS2faktor

Driftsudkast. OS2faktor Driftsudkast OS2faktor 1 Terminologi I dette aftaledokument har nedenstående ord følgende betydning. Leverandøren Kunden Løsningen betegner Digital Identity betegner OS2 fællesskabet omkring OS2faktor

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

Servlets, Tomcat & BlueJ

Servlets, Tomcat & BlueJ Servlets, Tomcat & BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 05.october 2007 Hvad er Servlets: For at forstå det, må vi først få styr på to begreber, nemlig statiske og dynamiske hjemmesider

Læs mere

Opgaven fortsat. Opfølgning på Opgave 2 og Use Cases. Opgaven. Trin 1: Væsentlige begreber. Resultatliste: 100 bryst, herrer

Opgaven fortsat. Opfølgning på Opgave 2 og Use Cases. Opgaven. Trin 1: Væsentlige begreber. Resultatliste: 100 bryst, herrer Opfølgning på Opgave 2 og Use Cases originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University of Denmark Opgaven fortsat Efter

Læs mere

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Kim Harding Christensen EOS A/S Margrethepladsen 3 8000 Århus TLF: 8732 8787

Læs mere

Geografisk lokalisering i JSP

Geografisk lokalisering i JSP Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler

Læs mere

Grænseflade til afhentning og indberetning af prøvekarakterer i dansk og matematik på Optagelse.dk

Grænseflade til afhentning og indberetning af prøvekarakterer i dansk og matematik på Optagelse.dk Grænseflade til afhentning og indberetning af prøvekarakterer i dansk og matematik på Optagelse.dk Dato 16-09-2015 Version Status 1.0 Gældende Ansvarlig Tobias Thisted Side 2 af 11 Ændringshistorik Version

Læs mere

DOtAB. Teknisk rapport

DOtAB. Teknisk rapport DOtAB Teknisk rapport Indholdsfortegnelse Introduktion... 1 Systemarkitektur... 1 Teknologier... 1 Platforme for mobile enheder... 1 Kommunikations interfacet... 2 Udviklingsmiljø... 2 IDOtAB (service

Læs mere

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University

Læs mere

DSB s egen rejse med ny DSB App. Rubathas Thirumathyam Principal Architect Mobile

DSB s egen rejse med ny DSB App. Rubathas Thirumathyam Principal Architect Mobile DSB s egen rejse med ny DSB App Rubathas Thirumathyam Principal Architect Mobile Marts 2018 AGENDA 1. Ny App? Ny Silo? 2. Kunden => Kunderne i centrum 1 Ny app? Ny silo? 3 Mødetitel Velkommen til Danske

Læs mere

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;

PROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections; PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;

Læs mere

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

Læs mere

.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#.

.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.0 og C# 4.0 Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 14.

Læs mere

Webserverprogrammering

Webserverprogrammering Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),

Læs mere

Java Klasse nedarvninger

Java Klasse nedarvninger Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering

Læs mere

Dag 10 Flertrådet programmering

Dag 10 Flertrådet programmering Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,

Læs mere

Zapier-integration mellem MailChimp og webcrm hos Azalea IT

Zapier-integration mellem MailChimp og webcrm hos Azalea IT Case: Zapier-integration mellem MailChimp og webcrm hos Azalea IT Zapier er en integrationsplatform, hvor man kan forbinde over 1500 apps uden at skrive en eneste bid kode. Du kan se, hvilke apps du kan

Læs mere

Eksempel på en database: studenter, kurser, eksamener

Eksempel på en database: studenter, kurser, eksamener Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser

Læs mere

Note om RMI af Peter Kjærsgaard

Note om RMI af Peter Kjærsgaard Note om RMI af Peter Kjærsgaard 1. Filosofi Filosofien i RMI er, at et objekt på en server skal kunne kaldes fra en klient, som om server-objektet lå på klienten. RMI er dermed på et højere niveau end

Læs mere

dmasark Aflevering - Uge 50

dmasark Aflevering - Uge 50 dmasark Aflevering - Uge 50 Michael Lind Mortensen, 20071202, DAT4 Michael Dahl, 20073943, DAT4 Katalog: http://www.daimi.au.dk/ u073943/dmasark/uge6/ 13. december 2007 Indhold 1 PingClient implementation

Læs mere

Send fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.

Send  fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende  fra Java. Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt

Læs mere

Konference om Cloud Computing 18. maj 2011. Proof of Concept for transition til Cloud Lars Ravndrup Thomsen, Solutions Architect, KMD

Konference om Cloud Computing 18. maj 2011. Proof of Concept for transition til Cloud Lars Ravndrup Thomsen, Solutions Architect, KMD Konference om Cloud Computing 18. maj 2011 Proof of Concept for transition til Cloud Lars Ravndrup Thomsen, Solutions Architect, KMD POC, hvad er det? En søgning på internettet viser, at de fleste sites

Læs mere

En Kort Introduktion til Oracle

En Kort Introduktion til Oracle En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 bulskov@ruc.dk 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering

Læs mere

FLIS PORTAL GENNEMGANG OG STIKPRØVER (SEPTEMBER 2015)

FLIS PORTAL GENNEMGANG OG STIKPRØVER (SEPTEMBER 2015) FLIS PORTAL GENNEMGANG OG STIKPRØVER (SEPTEMBER 2015) INDHOLD 1. FORMÅL OG SCOPE... 1 1.1. TEKNOLOGIER OG RAMMEVÆRKER... 1 2. ARKITEKTUR... 2 2.1. KOMBIT.FLIS.PORTAL... 3 2.2. SCRIPTS... 3 2.3. SHAREPOINT

Læs mere

Microsoft Dynamics CRM 2011 (CRM2011) From a Technical point of view

Microsoft Dynamics CRM 2011 (CRM2011) From a Technical point of view Microsoft Dynamics CRM 2011 (CRM2011) From a Technical point of view Table of Contents Intro Ramón Soto Mathiesen CRM2011 Architectural Overview From a development point of view SharePoint 2010 integration

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

Objektorienteret Programmering

Objektorienteret Programmering Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:

Læs mere

FMK-online's brug af SmartFraming

FMK-online's brug af SmartFraming Side 1 af 9 FMK-online's brug af SmartFraming Version 1.1 2011-11-01 Side 2 af 9 Indholdsfortegnelse Indledning...3 Initialisering og login...3 Kontekst Properties...4 user.id.authorizationid...4 userorganization.id.number...4

Læs mere

Denne installationsvejledning beskriver hvordan man installerer EFI webservices til kommunikation mellem Navision Stat og Skat.

Denne installationsvejledning beskriver hvordan man installerer EFI webservices til kommunikation mellem Navision Stat og Skat. Side 1 af 9 Navision Stat 7.1 ØSY/TJO/CPS/ CRA Dato 31.08.2016 Installationsvejledning til EFI integration Overblik Introduktion Denne installationsvejledning beskriver hvordan man installerer EFI webservices

Læs mere

public Set(int size) { this.listelement = new LinkedList<Integer>(); }

public Set(int size) { this.listelement = new LinkedList<Integer>(); } // Henri AYCARD import java.util.linkedlist; public class Set { private LinkedList listelement; public Set(int size) { this.listelement = new LinkedList(); public boolean contains(int

Læs mere