Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06.

Slides:



Advertisements
Liknende presentasjoner
Webbasert administrasjonssystem for fondsforvaltere Martin Lie 20. april 2006.
Advertisements

Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Tabeller av objekter Klassen ArrayList
Tilpasset opplæring Seniorrådgiver/spesialpedagog Kirsten Skram
Android-Programmering Våren Google Maps • Installere Google Play Services SDK (må kanskje oppdatere ADT) • Legg til bibliotek som library dependency.
So you think you can scale? Oracle Coherence i praksis OUGN vårseminar, april 2010, Øyvind Brusevold.
Ringvirkningsanalyse av petroleumsrelatert virksomhet i Kristiansundsregionen Presentasjon Kristiansund, 9. juni 2006 Forskningsleder Oddmund.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Organisering av arbeid Samarbeid Klient Tjenesteyter.
Introduksjon til objektorientert programmering i PHP
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Testene koster mer enn de smaker? Ole Morten Amundsen
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Beslektede algoritmer. Isolere klient fra algoritme  Klienter trenger av og til helt forskjellige måter å gjøre det samme på  Men klienten selv kan.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Hovedavtalen i staten –
UML & object models av gruppe 8
Side 1 Hibernate utvikling i praksis JavaZone 2004 Eivind Waaler, Bekk – Versjon 1.0.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Objektorientert programmering i PHP del 2
DELPROSJEKT 2 HELSEFORETAK
Visuell programmering
Hvem er jeg Tormod Fjeldberg – sjefskonsulent Roller
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
C# for javaprogrammerere
En gang til!? .
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
Gruppe 9 Design evaluering og validering.
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser.
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
Konstruksjonsseminar Vurdering av eksisterende innretninger Hendelser og skader på konstruksjoner på norsk sokkel 2000 – 2005, trender og utvikling Roger.
Introduksjon til Java 5.0. Hva er nytt i 5.0? Generiske typer For-løkke med iterator (for-hver løkke) Automatisk innpakking av primitive typer Metadata.
Løsning hos RSH Norge En gjennomgang av løsning hos Reitan Servicehandel Norge Edvard Gundersen – ProfitBase AS Løsningsarkitekt.
Kap 05 Abstrakte datastrukturer. Arv - Implementering Interface / Abstrakte klasser / Konkrete klasser Concrete classAbstract class Interface extends.
Design Patterns Iterator & Mediator. Gruppe 8 Presentasjonsgruppe:Resten av gruppen: Marianne AtesAndrè Johansen Tom Vidar LundeHege-Kristin Johansen.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering
Bruk av videokonferanse i forkant av gruppeopphold
JavaOne oppsumering tobias k torrissen
Innkapsling av request. Køing, logging, angre Command tilhører gruppen av ”behavioral patterns” Instanser av mønsteret leder til instanser av forespørsler.
Fitnesse i PDMT 05. mai 2008 Finn-Robert Kristensen Systemarkitekt.
OOT Seminar H-97 CORBA Praktisk del. Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger.
Bergen, juni Paradigmestruktur: En kognitiv analyse av suffiksskifte i russiske verb Tore Nesset Universitetet i Tromsø.
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Praktiske erfaringer med Objektorientert Progress og.NET Jan Kolstad PUG Norway, Lillehammer 2005.
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Redusere kompleksitet i Entity Framework spørringer Skrevet av Tore Aurstad,
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Objektorientert utforming In 140 Sommerville kap. 12.
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
Kari Berget Studentsamskipnaden i Trondheim.
INF-1400 Obligatorisk Oppgave 2
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
HPR 56 - Cross Platform Gaming Server Av Bjørn Haugen, og Hans Kristian Hovland.
Objektorientert design
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Kapittel 4 Skriving av klasser. 4.1 Anatomien til ein klasse Så langt har vi brukt ferdige klasser frå klassebiblioteket i Java Vi lagar objekt og brukar.
Kapittel 9 Polymorfi. 9.1 Sein binding Ofte er det perfekt match mellom typen til ein variabel og objektet han refererer til ChessPiece bishop;... bishop.
Objektorientert design In 140 Sommerville kap 12 – del 1.
Bjørn Ove Pedersen og Stian Dalviken
EPiServer Connect for CRM
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Implementering av caching ved hjelp av Spring Christian Vestøl

April Caching med Spring, Christian Vestøl  Kort introduksjon til Spring  Caching med Spring  Praktiske eksempler  Forskjellige rammeverk for caching Agenda

April Caching med Spring, Christian Vestøl Kort om Spring  Inversion of Control (IoC) Opprette og konfigurere objekter  Holder javakoden fri for klassespesifik konfigurasjon Dependency Injection  Knytter sammen objekter  Støtter Aspekt Orientert Programmering Gjør det mulig å legge til logikk før/etter ordinære metodekall

April Caching med Spring, Christian Vestøl Hva betyr egentlig dette? Konfigurasjon av objekter DEMO.

April Caching med Spring, Christian Vestøl Hva betyr egentlig dette? Kobling av objekter DEMO scott.

April Caching med Spring, Christian Vestøl  Kort introduksjon til Spring  Caching med Spring  Praktiske eksempler  Forskjellige rammeverk for caching Agenda

April Caching med Spring, Christian Vestøl Hvorfor cache?  Ytelse, ytelse, ytelse!  Man har ofte en god del statiske data  Mange databasekall tar kun 10-50ms  Mange bekker små gjør en stor å  Skalering  Memory er ”gratis”

April Caching med Spring, Christian Vestøl Spring og Caching  Spring benyttes for å opprette og konfigurere objekter  Cache benyttes for å forbedre ytelsen  Hvordan benytter man Spring for å implementere caching?  Aspekt Orientert Programmering (AOP)

April Caching med Spring, Christian Vestøl Hva er egentlig Aspekt Orientert Programmering? Ser dette kjent ut? long start = System.currentTimeMillis(); List l = myService.getDataFromDatabase(); log.debug(”getDataFromDatabase() used ”+(System.currentTimeMillis()-start)+”ms.”);

April Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Vi konfigurerer klassen i Spring

April Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Vi instansierer et BeanFactory i vår kode ApplicationContext context; context = new ClassPathXmlApplicationContext("spring_configuration.xml"); MyService myService = (MyService)context.getBean(”myService”);

April Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Vi oppretter en klasse som tar seg av loggingen package com.capgemini; import org.aopalliance.intercept.*; public class LogResponseTime implements MethodInterceptor { public Object invoke(MethodInvocation mi) throws Throwable { long start = System.currentTimeMillis(); Object result = mi.proceed(); log.debug(mi.getMethod()+” used ”+(System.currentTimeMillis()- start)+”ms.”); return result; }

April Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Og konfigurerer denne i Spring <bean id=”myServiceProxyCreator" class="org.springframework.aop.framework.autoproxy. BeanNameAutoProxyCreator"> myService logger

April Caching med Spring, Christian Vestøl Hva om i stedet benytter oss av Spring AOP?  Vi konfigurerer klassen som inneholder databasekallet i xml  Vi instansierer et BeanFactory i vår kode  Vi lager en klasse som tar seg av loggingen (interceptor)  Vi kobler denne på ”rundt” det ordinære kallet i Spring

April Caching med Spring, Christian Vestøl JCS –Java Caching System  Apache prosjekt  Enkelt å konfigurere (enkelt å komme i gang)  Memory cache (flere varianter)  Disk cache / Database cache (JDBC)  Distribuert caching (kan brukes i cluster) TCP Lateral cache (distribuerte noder) RMI Remote cache server (distribuerte noder med masterserver)  Egen webside for administrasjon av cachen

April Caching med Spring, Christian Vestøl JCS – konfigurasjon # Default cache region jcs.default= jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes jcs.default.cacheattributes.MaxObjects=10000 jcs.default.cacheattributes.MemoryCacheName= org.apache.jcs.engine.memory.lru.LRUMemoryCache # Memory shrinking attributes jcs.default.cacheattributes.UseMemoryShrinker=true jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=36000 jcs.default.cacheattributes.ShrinkerIntervalSeconds=300 jcs.default.cacheattributes.MaxSpoolPerRun=500 jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes jcs.default.elementattributes.IsEternal=false

April Caching med Spring, Christian Vestøl JCS – implementasjon i javakoden import org.apache.jcs.JCS; import org.apache.jcs.access.exception.CacheException; JCS jcs = JCS.getInstance(”regionName”); //get object from cache Serializable ret = (Serializable)jcs.get(”key”); //put object in cache jcs.put(”key”, object);

April Caching med Spring, Christian Vestøl JCS implementert med Spring  Definerer beans i XML (Springkonfigurasjonen)  Lager en Interceptorklasse som håndterer caching  Koble Beans sammen i XML  Instansiere et BeanFactory som oppretter klassene for oss

April Caching med Spring, Christian Vestøl JCS implementert med Spring Hva om man ikke ønsker å cache alle metodekall på en klasse? Spring støtter det ved at man legger til en advisor i konfigurasjonen. Dette kan typisk være en RegexpMethodPointcutAdvisor. Denne kan konfigureres slik at den kun slår til ved enkelte metodekall:.*get.*.*lookup.*

April Caching med Spring, Christian Vestøl  Kort introduksjon til Spring  Caching med Spring  Praktiske eksempler  Forskjellige rammeverk for caching Agenda

April Caching med Spring, Christian Vestøl Eksempler  Dropdown med postnr. og poststed  Dropdown med land/landkoder  Lookup metoder for validering av input  I applikasjoner hvor man har regelmessig dataoverføring fra andre datakilder.

April Caching med Spring, Christian Vestøl  Kort introduksjon til Spring  Caching med Spring  Praktiske eksempler  Forskjellige rammeverk for caching Agenda

April Caching med Spring, Christian Vestøl Rammeverk for caching  JCS -  EHCache - Ny versjon denne uka  OSCache - Inkluderer tag library  JBossCache - Håndterer transaksjoner

The end Spørsmål? Contact: Christian Vestøl, no.capgemini.com