Prosjekt B

Systemarktitektur 4.0

Endringshistorie

Dato Versjon Beskrivelse Person
23.04.04 1.1 F�rste utkast �yvind �stlund, Arild Soltvedt
27.04.04 1.2 Lagt til brukstilfelle diagram og sekvensdiagram. Fylt inn i kap 1. designmodell Arild Soltvedt
28.04.04 3.0 Lagt til 4.2 , tatt bort litt i 5.1 , lagt til kap 6 og 7 �yvind �stlund, Arild Soltvedt
10.05.04 4.0 Endret 4.2. Endret 5.1. Arild Soltvedt, �shild Nerhus

Innhold

  1. Introduksjon
  2. Hva omfatter arkitektur for Prosjekt B
  3. Arkitekturmessige m�l og begrensninger
  4. Logisk View
  5. Brukstilfelle View
  6. Beskrivelse av brukergrensesnitt
  7. Ytelser og st�rrelser
  8. Kvalitet

1. Introduksjon

1.1 Hensikt

Dette dokumentet skal gi en oversikt over arkitektoriske valg som vi har gjort gjennom utviklingen av systemet v�rt.

1.2 Omfang

Dokumentet beskriver brukstilfeller og realisering av disse, oppbygningen av den logiske strukturen, brukergrensesnittet mot kundene, og antall mulige brukere samtidig.

1.3 Definisjoner og forkortelser

Det er ikke brukt noen forkortelser.

1.4 Referanser

1.5 Oversikt over dokumentet

Vi vil g� gjennom brukstilfeller og realisering av disse, oppbygningen av den logiske strukturen, se p� hvordan brukergrensesnittet mot kundene er lagt opp, og til slutt si noe konkret om antall mulige brukere samtidig.

2. Hva omfatter arkitektur for Prosjekt B

  • I dette dokumentet best�r arkitekturbeskrivelsen av
  • Hvilke faktorer som p�vitrker arkitekturmessige beslutninger (Kap 2)
  • De viktigste brukstilfellene :
    • bestille billett p� nett
    • hente bestilt billett
    • kj�pe billett direkte i luken
    • billettselger loger p� systemet
    • arrang�r loger inn
    • endre bygning/sal/forestilling/arrangement
    • slette bygning/sal/forestilling/arrangement
    • opprette ny bygning/sal/forestilling
    • opprette nytt arrangement

For mer utfyllende informasjon se eget dokument - Spesifikasjon av brukstilfeller

Hvordan brukstilfellene er realisert, se kap 5.1

  • En oversikt over systemets komponenter :
    • Bestille billett p� nett
      • Side
      • Kontroll
      • Mysql
      • Bestilling
    • Hente bestilt billett
      • GUI
      • Kontroll
      • Bestilling
      • Arrangement
    • Kj�pe billett direkte i luken
      • GUI
      • Kontroll
      • Mysql
      • Bestilling
    • Billettselger logger p� systemet
      • GUI
      • Kontroll
      • Mysql

For sekvensdiagram se kap 5.2

En server eller tjener er den eller de maskiner som kj�rer nettverksrelaterte applikasjoner og leverer data til andre datamaskiner i nettverket.

3. Arkitekturmessige m�l og begrensninger

Systemet v�rt er kun web basert, dermed velger vi HTML, CSS, PHP, MySQL som v�re verkt�y for � realisere prosjektet. Systemet trenger en Apache eller IIS server som st�tter PHP og har MySQL installert for � kunne kj�re systemet. Dette er ikke noe problem i starten, siden vi har f�tt utdelt en eple konto hvor alt dette er ordnet p� forh�nd. M� vi flytte prosjektet et annet sted senere, s� m� vi passe p� at serveren(e) har disse minimumskravene. Brukerne selv trenger en datamaskin med kravene som er listet i punkt 7.1 i Visjonsdokumentet.

M�let for applikasjonen er at det skal bli et felles brukergrensesnitt for alle typer billettbestilling. Det skal v�re web basert for b�de billettbestillere og folk som sitter i billettluken. Det skal ikke v�re n�dvendig for en bruker � ha internett for � bestille billetter. De kan komme rett i luken for � bestille, men poenget er at de som ikke har tid eller lyst til � dra til billettluken for � bestille billetter, skal kunne gj�re dette hjemmefra i fred og ro. Det skal v�re mulig for alle arrang�rer som �nsker � ta dette systemet i bruk � f� en konto p� serveren v�r s� de kan legge til saler, arrangementer ogs� videre, s� deres kunder kan bestille over nett.

Vi regner ikke med at alle arrang�rer i hele norge kommer til � ta systemet i bruk med en gang. Derfor n�yer vi oss med en konto p� eple for � starte prosjektet. Dette begrenser bruken en del i f�rste omgang, men vi regner med � kunne ha opp til 2-3000 brukere for dagen er ikke urealstisk at systemet skal takle. Det blir fredags kvelder og romjulen som blir de store flaskehalsene, samt n�r store artister kommer til landet og biletter blir lagt ut for salg. N�r vi f�r mange nok arrang�rer som bruker systemet v�rt og slike hendelser ser ut til � forbig� 2-3000 brukere p� en dag, m� vi invistere i en eller flere servere til, som vi kan flytte systemet over p�. Systemet i seg selv har ingen begrensning i antall brukere samtidig. Det er b�ndbredden og server kapasiteten som n�ye m� overv�kes i fremtiden etter hvert som det blir flere arrang�rer/brukere som tar systemet i bruk.

En vanlig kunde skal ikke kunne g� inn i systemet og endre oppsatte arrangementer, dette er det arrang�rer som skal gj�re. Arrang�rene f�r tilgang til flere funksjoner enn bare � bestille billetter. Endre bygning/sal/forestilling/arrangement og slette bygning/sal/forestilling/arrangement er funksjoner som krever passord for innlogging, og skal ikke kunne n�s av andre personer/kunder. Innlogging for arrang�rer skjer via egen innloggingsside for � opprettholde sikkerheten.

I dette tilfelle kan det ogs� v�re naturlig � ta med teknisk arkitektur her, siden den er gitt: Ta med et diagram som viser hvordan web-server, databaseserver er organisert og samvirker.

4. Logisk View

Kort beskrivelse av hver pakke og dens ansvar
  • Skjermbilder : brukerens grensesnitt for s�king og bestilling av billett, skrevet i html, css og php.
  • Arrang�r : Denne pakken inneholder klasser som kun �arrang�ren� kan og har tilgang til � bruke. Operasjonene i disse klassene manipulerer innholdet i databasen s� det er ikke anbefalt at enhver f�r tilgang til disse. Skrevet i php.
  • Billett og Info : Denne pakken inneholder klasser som kunden trenger for � ha nytte av systemet, dvs operasjoner i forbindelse med bestilling og kj�p av billetter. I tillegg til henting av forskjellig informasjon. Skrevet i php.
  • Sikkerhet : Pakke for � gi systemet et visst niv� av sikkerhet. Den er ogs� n�dvendig for � gi bruker tilgang til de andre pakkene. Skrevet i php.
  • Tid : Pakken inneholder klasser som blir brukt til � hente tidspunkt fra databasen, vise tidspunkt, endre/legge til tid og andre funksjoner som har med tidspunkt � gj�re. Skrevet i php.
  • Arrangement : hente ut informasjon fra tabellen Arrangement i databasen, skrevet i php.
  • Bestilling : hente ut informasjon fra tabellen Bestilling i databasen, skrevet i php.
  • Bygning : hente ut informasjon fra tabellen Bygning i databasen, skrevet i php.
  • Forestilling : hente ut informasjon fra tabellen Forestilling i databasen, skrevet i php.
  • Sal : hente ut informasjon fra tabellen Sal i databasen, skrevet i php.
  • Plass : hente ut informasjon fra tabellen Plass i databasen, skrevet i php.
  • Valider : hente ut informasjon fra tabellen Valider i databasen, skrevet i php.

4.1 Oversikt - designmodell

Bilete av designmodellen

4.2 Arkitekturmessig viktige moduler og pakker

Beskrivelse av systemarkitekturen

5. Brukstilfelle View

5.1 Brukstilfelle diagrammer

5.1.1 Bestille billett

Kunden bestiller billett p� internett.

Brukstilfellediagram for bestilling av billett

5.1.2 Hente bestilt billett

Kunden kommer til luken for � hente bestilt billett. Billettselger logger p� systemet, f�r referansenummeret av kunden og skriver ut bestilt billett.

Brukstilfellediagram for bestilling av billett

5.1.3 Kj�pe billett direkte fra luken

Kunden kommer til luken f�r � kj�pe billett. Billettselger logger p� systemet, selger billett til kunden og skriver ut billetten(e).

Brukstilfellediagram for kj�p av billett direkte fra luken

5.1.4 Billettselger logger p� systemet

N�r billettselger logger p� systemet kan han skrive ut bestilt billett og selge billett til kunder.

Brukstilfellediagram for p�logging av salgspersonale

5.1.5 Arrang�r logger inn

N�r arrang�r logger p� systemet kan han opprette ny sal/forestilling, opprette nytt arrangement og slette sal/forestilling/arrangement.

Brukstilfelle for innlogging av arrang�r

5.2 Realisering av brukstilfeller - Sekvensdiagrammer

5.2.1 Bestille billett p� nett

Sekvensdiagram for bestilling p� nett

5.2.2 Hente bestilt billett

Sekvensdiagram for � hente bestilt billett

5.2.3 Kj�pe billett direkte i luken

Sekvensdiagram for � kj�pe billett direkte i luken

5.2.4 Billettselger logger p� systemet

Sekvensdiagram for innlogging av billettselger

5.2.5 Arrang�r logger p� systemet

Sekvensdiagram for innlogging av arrang�r

6. Beskrivelse av brukergrensesnitt

Brukergrensesnittet er laget med st�rst mulig vekt p� rene linjer og enkel logikk for brukeren, det skal ikke v�re n�dvendig � lete seg i hjel etter noen funksjoner. Funksjonene skal v�re enkle og lettfattelige.

gui

Prosjektet har 2 hoved sider (bold). En side for kunder og en for bilettluker og arrang�rer. Her kan arrang�rene logge seg p�, og komme inn til menyer hvor de kan velge hva de vil gj�re. Legg merke til at bilettluken kommer inn p� kundene sine sider hvis en kunde kommer inn uten � ha bestilt bilett p� internet. Alle navnene p� tekstboksene er navnet p� filene. Alle filene har etternavn .php. Merk at de stiplede linjene er veien tilbake n�r en operasjon er utf�rt.

7. Ytelser og st�rrelser

Serveren som oppgaven ligger p� kan ta 256 henvendelser samtidig. Utenom dette vil den holde i live 100 henvendelser til, som vil slippe til s� fort noen er ferdig med � bestille billett. Det vil si at s� lenge systemet ligger p� Eple, s� kan vi maksimalt ha 122880 henvendelser i d�gnet. Vi m� regne med at i snitt er nesten halvparten av disse henvendelsene billettkontorer og arrang�rer. Det vil si at serveren klarer 61440 bestillinger fra kunder i d�gnet. Men dette er det optimale. Ved slipp av billetter til store forestillinger/arrangementer s� vil p�gangen i perioder v�re mye st�rre, enn andre tider p� d�gnet, sov ved nattetider. S� begrensningen som er viktigst � f� med seg er at det kun kan v�re 256 henvendelser p� samme tid. Dette vil holde i starten, men n�r flere kinoer, teater osv adopterer systemet v�rt er det ikke nok lenger. Ved store slipp av billetter som ved Ringenes Herre forestillinger kan det komme flere tusen henvendelser samtidig. Det er viktig � f� med seg at ikke b�ndbredden er flaskehalsen, men at det er serveren som ikke klarer mer. L�sningen i fremtiden her vil v�re � bruke flere servere. Og spre de st�rst underholdningsarenaene kommer p� forskjellige servere. P� den m�ten kan vi spre henvendelsene likt utover serverne.

Vi regner med at systemet skal klare 2-3000 henvendelser for dagen. Antall treff samtidig skal da ligge p� ca 200 i timen. Er serveren som setter grensene.

8. Kvalitet

Slik som systemet er implementert n�, s� er arrang�rene selv ansvarlig for � slette gamle arrangementer. Dette er ikke optimalt. Det burde v�rt lagt til en �nattkj�rings� funksjon som slettet gamle arrangementer s� det ikke tar opp un�dvendige systemresurser, og forlenger s�k hastigheten p� de forskjellige sidene.

Vi har blitt p�lagt � bruke MySQL for databasen. Dette krever at skal systemet benyttes ved en annen server, s� m� MySQL v�re installert. MySQL finnes dor alle de store operativsystemene s� i utgangspunktet er systemet v�rt plattformuavhengig. Brukerene av systemet trenger kun en maskin med internettilgang, og en grafisk nettleser for � bruke systemet.

Validerende XHTML 1.1 Validerende CSS