GRUPPEMEDLEMMER FOR BACHELOROPPGAVE 5E Mikael Brevik (22 år) Greger Lervik (21 år) Marius Krakeli (21 år)
OPPGAVESTILLER SINTEF TEKNOLOGI OG SAMFUNN «SINTEF Teknologi og samfunn utvikler teknologi og kunnskap for å øke verdiskapingen i samfunnet. Konsernområdet er organisert som et tverrfaglig forskningsinstitutt med fagavdelinger innenfor områdene helse, samferdsel, teknologiledelse, økonomi og sikkerhet.» - SINTEFs nettsider (http://www.sintef.no/teknologi-og-samfunn/) I tillegg til SINTEF har dekan Per Borgesen fra HiST AITeL vært en aktiv aktør som til dels oppgavestiller. Dette stammer fra «Høstprosjektet 2010».
OPPGAVE BESKRIVELSE I denne oppgaven skulle det utvikles et verktøy som skulle effektivisere prosessen med å studere faktorer som hemmer og fremmer læring i organisasjoner. Oppdragsgiver har i lengre tid ønsket et slikt verktøy da det er tungtvindt å lage slike profiler i PowerPoint som har vært tilfelle tidligere. Løsningen skal ha søtte for revisjonshistorie og ha en sanntidsklient.
HVORFOR DENNE OPPGAVEN? I utgangspunktet ble avgjørelsen om oppgave tatt til høstprosjektet i 2010. Da var det muligheten til å bruke ny teknologi som HTML5, sanntidskommunikasjon og grafikktegning som appellerte til interessen. Etter de første møtene med SINTEF og Per Borgesen fant vi fort ut at dette var et prosjekt med omfang nok til et bachelorprosjekt. Det virket som det var et system som kunne bli tatt i bruk, noe som alltid gjør motivasjon til å utvikle større. Det at SINTEF er en anerkjent bedrift og Nordens største uavhengige forskningsinstitusjon var også et trekkplaster.
PROBLEMER OG LØSNING PÅ DISSE Database/Problemdomene kompleksitet Logistikken i forhold til revisjonhistorie ble raskt veldig komplekst. Dette løste vi ved å følge en evolusjonær utviklingsmetodikk. Slik kunne vi ta ett skritt om gangen og bygge opp gradvis til en komplett løsning. Støtte på tvers av nettlesere og plattformer Med alle nettapplikasjoner og nettsider i en større skala, vil det oppstå problemer med at nettlesere tolker kode og markup forskjellig. Dette løste vi med å basere oss på erfaringer fra tidligere prosjekt og bruke teknologier med godt etablerte standarder. Siden vi hadde utviklet en prototype under høstprosjektet, hadde vi alt fått avdekket mange av de problemene som kunne oppstå underveis. Dette gjorde oss oppmerksomme og varsom under utviklingen.
HVORDAN BLE OPPGAVEN LØST?1
HVORDAN BLE OPPGAVEN LØST?2 LAMP (Linux, Apache, MySQL og PHP) Mest brukte teknologien på nett og det er godt støttet. MySQL med InnoDB støtter transaksjoner, noe som systemet krevde på sikt. SVG & RaphaëlJS Alternativene var Canvas eller SVG. SVG er litt eldre teknologi og har derfor støtte i de fleste nettlesere. I tillegg ga rammeverket RaphaëlJS et godt abstraksjonslag for håndtering av SVGtegningene.
HVORDAN BLE OPPGAVEN LØST?3 jquery jquery er et veldig kraftig, og utbredt, rammeverk til JavaScript som vi har hatt erfaringer med før. Det finnes mange tilleggspakker til rammeverket og er veldig godt dokumentert. «Long Polling» Til sanntidskommunikasjon ble det vurdert Sockets, Comet-tjenere og «Long Polling»- teknologien. Med tanke på kompleksitet for installering og drifting av systemet, valgte vi å gå for «Long Polling». Med «Long Polling» holder vi en tilkobling til ressursen åpen så lenge vi har bruk for den og heller henter det oppdaterte innholdet. Slik blir ytelsen på systemet ivaretatt.
HVORDAN BLE OPPGAVEN LØST?4 CodeIgniter CodeIgniter er et rammeverk til PHP som følger MVC-arkitekturen. Dette hjalp oss med å holde en fin og oversiktlig kode, samtidig som den er skalerbar. CodeIgniter har i tillegg et godt dokumentert bibliotek som reduserer utviklingstiden. Revisjonshistorie Systemet skulle kunne avdekke utviklingen til en CCP over tid. Dette løste vi med å lagre alle endringer av profilen og tilknytte disse endringene til et gitt tidspunkt og revisjonsnummer.
RESULTAT AV ARBEIDET Det ble laget en interaktiv sanntidsløsning for å kartlegge kompleksiteten i faktorer for samarbeid i grupper (CCP - Collaboration Complexity Profile). Systemet inneholder en komplett brukerdatabase med kommentarer, tilhørende foretak, og rettighetskontroll. Essensen i systemet består av en interaktiv grafisk fremstilling av en CCP. Hver gang det blir gjort en endring i CCP-en vil endringen lagres i en revisjonshistorie. All interaksjon med CCP-en vil kunne observeres i sanntid med en vilkårlig klient.
ARBEIDET V I D E R E Vi har laget et komplett produkt for SINTEF. Dette produktet vil driftes av AITeL i form av at systemet vil være på en av tjenerne til HiST. Det finnes også en veldig enkel installeringsveiviser dersom det skulle være et behov for å flytte systemet til en alternativ tjener i fremtiden. Dersom vi finner nytte i systemet, eller en av modulene, som er lagd, er det mulig det blir videreutviklet og forbedret over tid. Dette må bli etter avtale med SINTEF.