Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen
Architectural styles and strategies Prosessen deles inn i 3 deler: Arkitektur Kode design Algoritmer og datastrukturer Arrays Filer Prosedyrer Eksekverbar design Minneallokasjon Dataformater I arkitektur fasen Beskriver 7 ofte brukte modeller (Shaw og Garlan, 1996): Pipes and filters Objects Implicit Invocation Layering Repositories Interpreters Process Control
Pipes and filters Pipe = input og output Filter = transformasjon av data Filtrene er uavhengige av hverandre Fordeler: Sammensetningen av filtrene gjør det lettere å forstå effekten av input og output på systemet. Lett å oppdatere og utvide Tillater eksekvering av flere filtre samtidig. Ulemper Dårlig på interaktive applikasjoner. Vanskelig å synkronisere to rør (pipes) Uavhengigheten mellom filtre kan forårsake duplisering av kode, f.eks feilsjekking. Pipe Filter
Objects (Objektorientert design) Hver komponent er en instans av en abstrakt data type. Arkitekturen krever: Integritet av data Skjule data fra andre objekter (innkapsling) Fordeler: Enkelt å endre implementasjon uten å affektere resten av systemet Arv Polymorfi Ulemper: Kommunisering Avhengigheten mellom objektene
Implicit invocation Hendelsesorientert Komponenter annonserer hendelser (kall) Eks. pakkesvitsja nettverk, databaser, brukergrensesnitt mm. Fordeler: Gjenbruk av komponenter Enkelt å oppdatere, fjerne og slette komponenter Ulemper: Komponenten som annonserer hendelsen vet ikke hvilke komponenter som blir berørt av hendelsen Ikke sikkert en komponent får svar
Layering Organisert hierarkisk Inneholder protokoller Brukertilgang til lagene Lag kan byttes Eks. TCP/IP eller et filsystem. Fordeler: Enkelt å legge til og endre lag Gjenbruk av lag ikke et stort problem Ulemper: Vanskelig å strukturere et slikt system Kan påvirke systemytelsen
Repositories En sentral ”lagringsenhet” som ulike moduler kan hente informasjon fra En søkemotor kan gi informasjon til mange typer applikasjoner Flere kilder samarbeider om samme sentrale enhet I hovedsak to typer repositories: Tradisjonell database Blackboard Eks. Google Knowledge1 Knowledge 6 Knowledge 4 Knowledge 2Knowledge 3 Knowledge 5 Repository
Interpreters Oppretter en virtuell maskin Tolker informasjon til et annet format som så blir brukt eller kjørt Består av fire deler: Koden som skal tolkes Tolkeren Tilstanden til tolkeren Tilstanden til programmet Scriptspråk som python og perl er avhengige av en interpreter for å bli kjørt Program being interpreted Data (program state) Internal interpreter state Simulated interpretation enigine Input Output Selected intstruction Selected data
Process control En prosess som overvåker et gitt sett med egenskaper og handler ut fra hva som skjer med disse To former: Analysere data og handle før en gitt situasjon inntreffer Handle først når hendelsen har inntruffet Overvåker og kontrollerer spesielle egenskaper. F.eks kontroll av Halden reaktorens kjølesystem, strålenivå osv.