GeoWebCache används för att snabba upp visningen av kartor från exempelvis WMS tjänster.
GeoWebCache finns inbyggt i många lösningar med exempelvis GeoServer.
WMS servrar sitter i princip och väntar på att få en fråga om geodata från en klient i nätverket. När frågan kommer så analyseras den och svaret ”renderas” till en bild, eller i vissa fall flera bilder i ett rutnät, som sedan skickas som svar till klienten.
Den här processen kan ta en liten stund och om det blir många frågor som genererar samma renderade bilder, så kan man tycka att servern får arbeta i onödan.
Det är här cachen kommer in. I stället för att ställa frågan om geodata direkt till WMS servern, så ställs i stället samma fråga till GeoWebCache, som kontrollerar om det redan finns en renderad bild klar för den fråga som ställs. Om så är fallet så skickas den direkt till klienten. Om inte så frågar GeoWebCache WMS servern efter den, skickar den till klienten, och lagrar den tillsammans med övriga sparade bilder.
Nya ”frågor” tar därmed lite längre tid, men upprepade frågor går betydligt snabbare, och frigör processorkraft på servern.
Har man nu data som ändras regelbundet så skulle denna princip kunna ställa till med problem. Cachade bilder kanske är renderade med gamla data, och därmed så får klienterna gammal information. Detta går delvis att komma till rätta med genom att sätta en tidsgräns för hur gamla bilder som får lagras. Är en bild i cachen för gammal så kommer en ny att genereras från nya data.
Det går att göra massor av flera optimeringar av cachen och ett exempel man kan tänka sig är att använda processorkraft när den normalt inte efterfrågas till att i förväg rendera om bilder som brukar efterfrågas mest.
I just version 1.7.0 så kan jag inte hitta något som säger mig att det hänt något revolutionerande. Den är bättre, snabbare, har rättade fel, men kanske också några nya. Det är svårt att läsa sig till något speciellt i ändringsloggar och liknande, men något nytt kan vara att man försöker anpassa till Open Layers 3… Men jag är inte säker.
Om någon vet mer så kan ni lägga till en kommentar nedan.