Forprosjektrapport Høgskolen i Oslo Våren 2007-02-02 Dr.Klikk Gruppe 25 Håkon Drange s130167 Lars Hetland s127681
Innholdsfortegnelse PRESENTASJON... 2 SAMMENDRAG... 2 OM BEDRIFTEN... 2 DAGENS SITUASJON... 3 MÅL OG RAMMEBETINGELSER... 3 Mål...3 Rammebetingelser...3 LØSNINGER OG ALTERNATIVER... 4 ANALYSE AV VIRKNINGER PÅ VALGT LØSNING... 6 1
Presentasjon Tittel: Dr. Klikk Oppgave: Konstruere et generelt høylast statistikkaggregeringssystem Prosjektperiode: Januar Mai 2007 Gruppemedlemmer: Lars Hetland, Håkon Drange Oppdragsgiver: Aptoma AS Veileder: Simen Hagen Kontaktperson: Geir Berset Sammendrag Dr.Klikk er et system som skal brukes for å samle inn statistikk fra websider og presentere denne på en enkel og intuitiv måte. I dette prosjektet vil vi benytte PHP5, MySQL5, HTML, CSS og JavaScript. Løsningen er en Webapplikasjon og skal være tilgjengelig i nettleser for brukergruppene. Vi vil få utfordringer med å konstruere en høytpresterende løsning med tanke på de store datamengdene som systemet mottar. Oppdraget utføres for Aptoma og løsningen skal blant annet bli brukt på VG.no. Om bedriften Aptoma er en leverandør av internettapplikasjoner som jobber tett sammen med landets største nettaviser innen alt fra video- og informasjonspublisering til innovative communitytjenester. - Aptoma.no 2
Dagens situasjon Dr. Klikk vil bli et statistikksystem som skal brukes i Aptomas løsninger og eventuelt VG.no, hvor det per dags dato eksisterer et slikt system, men med begrenset funksjonalitet. Det nye systemet skal kunne utvides til å motta data fra flash- og videoobjekter som allerede finnes på målsiden. En av hovedtankene er å kunne analysere og optimalisere brukerflyt og navigering for bedre utnyttelse og oversikt av annonseringstjenester, samt liveoppdatering av statistikk på minuttnivå. Mål og rammebetingelser Mål 1. Å gi timelig oppdatert statistikk til sluttbruker. 2. Ufeilbarlig i bruk; klipp/lim installasjon av linker og nye nettsteder. 3. Å lage et best mulig skalerbart system med hensyn til toleranse for trafikkintensitet (kunne registrere > 500 hendelser i sekundet). 4. Et lett tilgjengelig verktøy med fokus på de mest relevante tallene. 5. Lettleste grafer, statistikker og rapporter; å lage en intuitiv statistikkvisning som ikke krever forståelse for bakenforliggende funksjoner. 6. Installasjonsfritt: Enkelt kunne utvides til å motta data fra nye statistikkilder. 7. Klargjøre for statistikkvisning basert på brukersatte parametre Rammebetingelser 1. Utvikles i PHP5, Javascript, HTML og CSS. 2. Skal kjøres på en Linux plattform med Apache webserver og MySQL5. 3. Kunne kjøre på én dedikert maskin. 4. Benytte Aptoma Framework (AFW). 5. Følge Aptomas programmeringsstandarder. 6. Bruke Subversion kildekodehåndteringssystem. 7. UML skal benyttes i designprosess og dokumentasjon. 3
Løsninger og alternativer Både utviklingsplattform, programmeringsspråk og driftsmiljø er forbestestemt i oppgaven da dette er hva resten av oppdragsgivers systemer kjører på. Siden begge brukergrupper vil bruke en browser mot et websystem er HTML, CSS og Javascript ganske klare valg, men for de bakenforliggende systemene er valgmulighetene veldig brede. Alternativer til PHP i et system som dette inkluderer ASP,.NET, Java, Python, Ruby og Perl hvor de første er mest utbredt. En fordel med PHP er at det er mye brukt i både små og mellomstore prosjekter, som gjør at mye god dokumentasjon er tilgjengelig, spesielt den offisielle manualsiden http://www.php.net Statistikkrapportene vil utformes etter oppdragsgivers forbestemte spesifikasjoner. Alternativet til dette er at vi selv må analysere hvilken statistikk som er mulig, ønskelig og hvordan dette skal presenteres, en oppgave som trolig ville tatt mer tid enn vi har tilgjengelig. Systemet skal utvikles ved å benytte Aptomas allerede eksisterende rammeverk AFW (Aptoma FrameWork). Dette rammeverket, som er skrevet i PHP, vil trolig gjøre utviklingen mer effektiv både med tanke på tidsbruk og kvalitetssikring av det ferdige systemet. Alternativet er å programmere hele systemet fra bunnen, som kan resultere i lengre utviklingstid, større kodebase, mindre kvalitetssikring av kode og vanskeligere utvidbarhet. På grunn av ekstrem belastning med opptil flere hundre forespørsler per sekund må data mellomlagres i systemminne før innsetting til databasen. Til dette formålet brukes Memcached som anbefalt av Aptoma. En normal harddisk har en responstid på ca 12-13 ms som muliggjør omtrent 80 filtilganger i sekundet, mens tallet for systemminnet kan være flere tusen ganger så høyt. Måter for å håndtere en slik last kan være: Mellomlagring i systemminne Veldig høy ytelse Utvidbarhet både i form av datastørrelse og innsamlingstid Ingen ekstra maskinvarekostnad Løsning bundet til spesifikk programvare Deler av løsningen må selv utvikles 4
Lastfordeling over flere maskiner Potensielt utvidbart til veldig stor last Kan kombineres med andre alternativer Tilfører redudans til systemet på maskinnivå Krever potensielt avansert kontroll og styringsystem for forespørslene Gjør dataanalysen mer avansert siden data fra flere databaser må inkluderes Øker maskinvarekostnader og driftskostnader tilknyttet det punktet Intelligent diskkontroller med et raskt DRAM-buffer Mindre programvareavhengighet Potensielt store maskinvarekostnader Ytelse begrenset av kontrollerens effektivitet og styringsprogramvarens konfigurerbarhet Analysering og komprimering av data før innsetting i database Kan kombineres med andre alternativer Datatap når flere forespørsler blir komprimert sammen Krever potensielt avansert analyse- og sorteringsfunksjon For innsamling av data vil blant annet redirect-funksjon og Javascript callback bli benyttet. Fra dette leses statistikk om linkklikk, visning av sider og annonser og kan utvides til blant annet informasjon om brukerens nettleser med mer. Oppdragsgiver har en veldig detaljert kravspesifikasjon og det er ikke muligheter for store alternativer eller endringer i funksjonalitet. Det er derfor ikke hensiktsmessig med en dypere analysere av alternativer og virkninger av de nevnte valgmuligheter. 5
Analyse av virkninger på valgt løsning Ulempen med dagens statistikksystem er at ved stor last kan prosesseringstiden være veldig høy og det kan gjerne ta flere timer før statistikktallene er klare for visning. Det som er ønsket er en oversikt over hva som skjer akkurat i dette øyeblikk, hvor Dr.Klikk skal kunne tilby oppdatert statistikk på minuttintervall. Oslo, 2.februar 2007 Håkon Drange Lars Hetland 6