Utforming av arkitektur In 140 Sommerville kap 10

  • Slides: 33
Download presentation
Utforming av arkitektur In 140 Sommerville kap 10

Utforming av arkitektur In 140 Sommerville kap 10

Mål n n n Forstå hvorfor arkitektur er viktig Forstå at arkitektur kan dokumenteres

Mål n n n Forstå hvorfor arkitektur er viktig Forstå at arkitektur kan dokumenteres med forskjellige modeller Bli introdusert til noen arkitekturtyper både for systemstruktur, kontroll og modulær dekomponering Forstå hvordan anvendelsesspesifikk arkitektur kan danne grunnlag for arkitekturen til en produktlinje Sammenligne arkitekturutforminger

Systemarkitektur - Introduksjon n Det finnes forskjellige modeller for arkitektur n Delsystemer av store

Systemarkitektur - Introduksjon n Det finnes forskjellige modeller for arkitektur n Delsystemer av store systemer kan godt ha forskjellig arkitektur n Vi må velge en eller sette sammen flere n Arkitekturen påvirker – Ytelse – Robusthet – Distribuerbarhet – Vedlikeholdbarhet

Systemarkitektur og ikke-funksjonelle krav n n n Ytelse – Bruk få moduler med lite

Systemarkitektur og ikke-funksjonelle krav n n n Ytelse – Bruk få moduler med lite innbyrdes kommunikasjon Sikkerhet – Bruk lagdelt arkitektur der kritiske data lever trygt i et sikkerhetsvalidert indre lag Trygghet – Plasser kritiske funksjoner samlet, slik at trygghetsvalidering blir mulig. Tilgjengelighet – Bruk redundans og gjør det mulig å skifte ut moduler uten å stoppe systemet. Vedlikeholdbarhet – Bruk mange små og innkapslede moduler. Unngå avhengigheter

Strukturering av systemer n Dette er første aktivitet i arkitekturutforming n Blokkdiagram med en

Strukturering av systemer n Dette er første aktivitet i arkitekturutforming n Blokkdiagram med en boks per delsystem. Delsystemer kan deles igjen. n Blokkdiagrammet er lett å forstå

Blokkdiagram - eksempel

Blokkdiagram - eksempel

Blokkdiagrammer – ikke nok Viser oppbygging, men mangler detaljer n Nyttig for kommunikasjon med

Blokkdiagrammer – ikke nok Viser oppbygging, men mangler detaljer n Nyttig for kommunikasjon med interessenter n Nyttig for å planlegge videre arbeid n Trenger i tillegg informasjon om n – Interaksjon – Datautveksling – Grensesnitt n Tre modeller kan brukes til dette formålet – Repository – Klient-tjener – Abstrakt maskin

Repository-arkitektur n Brukes i systemer som håndterer store datamengder n Systemet organiseres rundt en

Repository-arkitektur n Brukes i systemer som håndterer store datamengder n Systemet organiseres rundt en felles database(repository) n Passer data produseres av et delsystem og brukes av et annet.

Fordeler og ulemper med repositoryarkitektur n n n n Enkel deling av store mengder

Fordeler og ulemper med repositoryarkitektur n n n n Enkel deling av store mengder data Delsystemene må tilpasses en felles datamodell Dataproduserende delsystem trenger ikke å kjenne detaljene i datakonsummerende delsystem Tungt å endre systemet fordi datamodellen blir en tvangstrøye Backup, sikkerhet, gjenstart løses sentralt Dermed samme løsning for alle Integrasjon av nye verktøy mulig hvis de kan tilpasses til datamodellen Vanskelig å fordele på flere maskiner

Klient – Tjener modell n n n n Frittstående servere Klienter som benytter tjenester

Klient – Tjener modell n n n n Frittstående servere Klienter som benytter tjenester hos serverne Nettverk som tillater forbindelse mellom klient og tjener Kan kombineres med repository Ytelsesproblemer ved større datamengder Distribuert arkitektur er fleksibel Backup og datastruktur på hver server

Film and picture library

Film and picture library

Abstrakt-maskin modell n n n n Også kalt lagdelt arkitektur Hvert lag en abstrakt

Abstrakt-maskin modell n n n n Også kalt lagdelt arkitektur Hvert lag en abstrakt maskin som leverer tjenester til neste lag OSI-modellen for nettverksarkitektur Støtter inkrementell utvikling Kan skifte ut et lag hvis grensesnittet er uendret Bare nabolag påvirkes av grensesnittendringer Maskinavhengighet kan avgrenses til indre lag Lagdeling kan gi ytelsesproblemer

Kontrollmodeller n Undersystemer må styres for å levere rette tjenester til rett tid. n

Kontrollmodeller n Undersystemer må styres for å levere rette tjenester til rett tid. n Strukturell modell vs kontrollmodell n Kontrollmodeller på arkitekturnivå beskriver kontrollflyten mellom delsystemer – Sentralisert kontroll – Hendelsesbasert kontroll

Sentralisert kontroll n Et av undersystemet er systemkontroller – Sekvensiell modell=call- returnmodell. – Parallell

Sentralisert kontroll n Et av undersystemet er systemkontroller – Sekvensiell modell=call- returnmodell. – Parallell modell = manager model.

Sekvensiell modell call- returnmodell. n Top down subrutinehierarki. n Subrutinen som har kontrollen kan

Sekvensiell modell call- returnmodell. n Top down subrutinehierarki. n Subrutinen som har kontrollen kan n – kalle andre lavere nivå subrutiner – returnere til kallende rutine Ada, Pascal, C n Rigid og begrenset modell – Lett å analysere kontrollflyt og systemreaksjon – Vanskelig å håndtere unntak

Call-return modell

Call-return modell

Parallell modell manager model n System med flere prosesser n Systemkontrolleren n – starter,

Parallell modell manager model n System med flere prosesser n Systemkontrolleren n – starter, – stopper – koordinerer andre systemprosesser. n Kan også implementeres sekvensielt. – Case fra tilstand Kontrollprosessen går i evig sløyfe - event loop model n

Parallell modell

Parallell modell

Hendelsesdrevne systemer n Eksterne n To hendelser typer – Kringkasting til alle undersystemer som

Hendelsesdrevne systemer n Eksterne n To hendelser typer – Kringkasting til alle undersystemer som har erklært interesse – Interrupt-drevne modeller

Kringkastingssystemer n Brukes der delsystem er på nett n Kan også befordre meldinger Event

Kringkastingssystemer n Brukes der delsystem er på nett n Kan også befordre meldinger Event and message handler n Selektive og ikke-selektive n Lett å utvide n Synkroniseringsproblemer

Selective broadcasting

Selective broadcasting

Interrupt-drevne modeller n Intterrupt handler og Interrrupt servicerutine n Brukes i sanntidssystemer n Eneste

Interrupt-drevne modeller n Intterrupt handler og Interrrupt servicerutine n Brukes i sanntidssystemer n Eneste som garanterer responstid n Kan være komplisert å programmere og validere. n Mangel på interruptmuligheter

Interrupt-dreven control

Interrupt-dreven control

Modulær dekomponering n Når vi er ferdig med strukturell arkitektur – Objektorientert modell –

Modulær dekomponering n Når vi er ferdig med strukturell arkitektur – Objektorientert modell – Dataflyt-modell

Objektmodeller Dele inn systemet i objekter som er løst koblet via veldefinerte grensesnitt n

Objektmodeller Dele inn systemet i objekter som er løst koblet via veldefinerte grensesnitt n Objekter bruker tjenester fra andre objekter n UML-notasjon n – Tredelte bokser – Stiplede piler viser tjenestebruk n Fordeler – Løs kobling gir frihet til endringer i objektimplementeringen – Objektene svarer til ting, personer og begreper i virkelighetens verden – Samme objekt kan brukes i forskjellige systemer n Begrensninger – Mange interaksjoner å vurdere ved endret grensesnitt – Hårete begreper kan være vanskelige.

Fakturabehandlingssystem

Fakturabehandlingssystem

Dataflytmodeller Behandlingsprosesser transformerer data n Data som kommer inn ender til slutt som utdata

Dataflytmodeller Behandlingsprosesser transformerer data n Data som kommer inn ender til slutt som utdata n Pipes and filters n Batch-modeller n – Brukes når store mengder data konverteres til store mengder rapporter i en behandling

Invoice processing system

Invoice processing system

Fordeler og ulemper med dataflytmodellen n n n Støtter ombruk av transformasjoner Intuitivt -

Fordeler og ulemper med dataflytmodellen n n n Støtter ombruk av transformasjoner Intuitivt - ligner på eget arbeid Lett å legge inn nye transformasjoner Kan lett utformes som parallelt eller sekvensielt system Setter krav til felles standard for dataformater Vanskelig å bruke på interaktive systemer. – Musklikk – Skjermbilder

Arkitektur spesielt tilpasset anvendelsesområdet Kompilator n Referansearkitekturen ISO OSI n

Arkitektur spesielt tilpasset anvendelsesområdet Kompilator n Referansearkitekturen ISO OSI n

Compiler model

Compiler model

Language processing system

Language processing system

OSI reference model Application

OSI reference model Application