IMC legger stor vekt på å bygge robuste
løsninger med gode teknologier. Uansett størrelse på web tjenesten, er det
viktig at det gjøres noen valg av teknologier og arkitekturer. Det finnes
ikke "riktige" teknologier, men det er forskjell på gode og dårlige.
IMC har valg en lagdelt arkitektur, med følgende hovedteknologier:
DATALAGET
På datalaget har IMC valgt å bruke standard teknologier. De viktigste
teknologiene er:
- SQL databaser
- LDAP katalogserver
- Filer
Som SQL database benytter IMC hovedsaklig MySQL.
MySQL er en enkel relasjonsdatabase, som støtter de basale sql egenskapene.
Sql er den dominerende standarden for databaser, og dersom en skriver
applikasjoner på en god måte, har det lite betydning hvilken relasjonsdatabase
som velges.
For lagring av katalogdata benytter IMC OpenLDAP,
en open source database for Unix baserte operativsystemer. OpenLDAP følger
LDAP standarden, og kan kommunisere med klienter som følger LDAP standarden.
LDAP er en ledende standarden for internett kataloger. Netscape har vært
en av de ledende kreftene for å utvikle LDAP løsninger, og LDAP har fått
bred støtte fra internett verdenen, og benyttes også mye for intranett.
LDAP egner seg godt for lagring om organisasjoner, personer, nettverksutstyr
og annen lignende informasjon som lagres i kataloger. En av fortrinnene
med LDAP er at det gir lynraske oppslag, mye raskere enn for sql databaser.
Men ingenting er gratis, og det er også tilfelle i denne sammenheng. Kostnaden
for å få lynraske oppslag, er at det tar lengre tid å legge inn data.
LDAP passer derfor godt for data som hentes ofte men oppdateres sjelden.
For noen tilfeller lagres også informasjon i filer. Noen eksempler på
dette kan være konfigurasjonsfiler for enkelte programmer, dokumenter
etc. Og selvfølgelig web sider, gitt at de ikke er lagret i et databasebasert
publiseringssystem.
FORRETNINGSLOGIKK
Mange utviklere skiller ikke forretningslogikk og presentasjonslogikk.
Eller for å si det på en enkel måte, enkle script brukes både for logikk
og presentasjon. IMC benytter i stor grad applikasjonsserver mellom
presentasjonslaget og datalaget. De siste årene har SUN, og resten av
java miljøet utviklet en standard for java baserte applikasjonsservere,
kalt Entity Java Beans (EJB). IMC benytter denne i de tilfellene hvor
det er behov for applikasjonsserver. EJB har tre hovedkomponenter:
- Entitets bønner
- Sesjons bønner
- Meldingsbønner
Entitets bønner er dataobjekter som gjenspeiler data som ligger i databasen.
Ved bruk av en EJB server er det ikke nødvendig å skrive noe kode for
å lagre data i sql databasen. Dette håndterer sql serveren helt på egen
hånd. Men dersom du ønsker mer kontroll med lagringen, er det mulig å
overta skriving av sql kommandoer på egen hånd.
Sesjonsbønner er forretningslogikk, og dette er kanskje den viktigste
grunnen til å benytte en applikasjonsserver. Ved å bruke sesjonsbønner
på en applikasjonsserver, kan presentasjonslaget holdes helt rent for
forretningslogikk. Ved å gjøre det på denne måten, blir det også mulig
å tilknytte flere klienter til den samme forretningslogikken. For eksempel
vil det være enkelt å gjøre noen av administrasjonsfunksjonene for IMC
sine web sider tilgjengelig for mobile klienter.
Den siste typen bønner er meldingsbønner. Denne er forholdsvis ny i ejb.
Meldingsbønner gjør blant annet at applikasjonsserveren kan håndtere køsituasjoner.
Dersom det er behov for å sende meldinger mellom asynkrone systemer, vil
meldingsbønner være en god mekanisme. Klienter kan da legge en melding
i innkøen til en meldingsbønne, og så fortsette med å gjøre noe annet,
mens meldingsbønnen vil prosessere alle meldingene i tur og orden.
Meldingsbønnen kan også håndtere situasjoner hvor kommunikasjonen med
andre systemer er nede i begrensede tidsrom, ved at meldinger ligger i
en meldingskø.
IMC benytter JBoss, en open source
applikasjonsserver, som plattform.
PRESENTASJONSLAGET
På presentasjonslaget benytter IMC stort sett java servlets og java
server pages for sin egen utvikling. På presentasjonslaget finnes det
ulike scripting språk som kan benyttes. IMC har altså falt ned på
java servlets og java server pages. Som server benyttes Apache
for statiske filer, og Tomcat
for java servlets og java server pages.
Med teknologiene ovenfor kan det lages dynamiske grensesnitt. Men det
er fortsatt ett problem som gjenstår. Ved å bruke scripting språk direkte,
blir det fort uoversiktlig kode. Grunnen til det er at når f.eks et skjema
blir postet til en server, skal følgende skje:
- En skal finne ut hvordan requesten skal håndteres
- Datamodeller skal oppdateres
- En ny side skal vises, og det kan være forskjellige sider som skal
vises avhengig av hvordan data ble prosessert
Det er vanskelig å implementere dette på en god måte uten en god front-end
arkitektur. IMC har falt ned på Struts
som teknologi for å lage godt strukturerte frontends. Struts er et MVC
rammeverk (Model View Controller). Struts gjør at en vil ha god oversikt
selv for store løsninger.
OPERATIVSYSTEM
Teknologiene ovenfor er basert på åpne standarder, og kjører på de fleste
plattformer. IMC har valgt Linux som plattform for egne tjenester.
Men på grunn av at alle applikasjoner er basert på åpne standarder, kan
tjenestene enkelt overføres til andre plattformer inklusive Microsoft
og Sun plattformer. Årsaken til at IMC har valg Linux, er at Linux
gir god pris/funksjonalitet. Linux utvikles av et stort antall av programmerere,
og det kommer kontinuerlig ny programvare. Linux har oppnådd tilsvarende
effekt som Microsoft har gjort. Forskjellen er at for Linux deltar programmererne
både på å videreutvikle selve operativsystemet og programvare basert på
den, mens Microsoft har et partnerprogram for selskaper som utvikler applikasjoner
på toppen av operativsystemet. Ved å bruke standard teknologier, er IMC
lite bundet til Linux som plattform, siden alle applikasjoner enkelt kan
portes til andre operativsystem. Dermed blir ikke valget av operativsystem
så viktig, IMC kan nårsomhelst gå over til et annet operativsystem,
uten at vi ser noen grunn til å gjøre det.
MODELLERING
IMC utvikler interaktive applikasjoner for web og andre ip baserte
teknologier, hvor funksjonaliteten er i fokus. Et eksempel på en slik
applikasjon er isp tjenestene til IMC. For slike applikasjoner er
det viktig å ha god kontroll over hva som skal utvikles før utviklingen
starter. For å sikre god modellering benytter IMC en utviklingsmodell
kalt Unified Modelling Language (UML). UML er et modellverktøy som har
tatt inn i seg det beste fra flere tidligere modelleringsmetoder. UML
fokuserer på grafisk modellering, og gir en god sporbarhet fra funksjonelle
krav til implementering. De første fasene av UML benyttes til å avdekke
behovene til et system. Dersom løsningen utvikles sammen med kunder, benyttes
"use case" i UML til å diskutere hvilke funksjoner systemet
skal implementere. Når det er enighet om de overordnede funksjonene i
systemet, benytter IMC andre modelleringsmetoder i UML til å beskrive
de tekniske delene av systemet. Og deretter kan vi starte implementering,
ved bruk av teknologiene ovenfor.
|