arkitektur for distribuerte systemer
DESCRIPTION
Arkitektur for distribuerte systemer. In 140 Sommerville kap 11. Mål. Forstå fordeler og ulemper med distribuerte arkitekturer Forstå forskjellige tilnærminger til utvikling av klient-tjenerarkitektur Forstå forskjellen mellom klient-tjener og distribuert objektarkitektur - PowerPoint PPT PresentationTRANSCRIPT
Arkitektur for distribuerte systemer
In 140 Sommerville kap 11
Mål
Forstå fordeler og ulemper med distribuerte arkitekturer
Forstå forskjellige tilnærminger til utvikling av klient-tjenerarkitektur
Forstå forskjellen mellom klient-tjener og distribuert objektarkitektur
Forstå ideen med Object Request Broker og prinsippene for CORBA-standarden
Introduksjon
Nesten alle større databaserte systemer er distribuerte
Et distribuert system fordeler databehandlingen på flere maskiner
Før sentraliserte stormaskiner med mange dumme terminaler
Nå tre hovedtyper– Personlige systemer som ikke er distribuerte– Innebygde systemer som kjører på en prosessor eller en
integrert gruppe av systemer– Distribuerte systemer som kjører på løst koblede
prosessorer over nettverk.
Karakteristiske egenskaper ved distribuerte systemer. (Coulouris1994)
Ressursdeling Åpenhet Parallelle prosesser Skalerbarhet Feiltoleranse Transparens
Ulemper ved distribuerte systemer
Kompleksitet– Vanskelig å forstå– Vanskelig å teste
Sikkerhet– Mange maskiner– Avlytting
Drifting Uforutsigbarhet
Emner i distribuert systemutforming Ressursidentifikasjon
– Gjør ressursene tilgjengelige– Navnesystem eks:URL
Kommunikasjon– TCP/IP er pålitelig og effektiv– Alternativer kan være aktuelt
Tjenestekvalitet– Ytelse, tilgjengelighet, pålitelighet
Programvarearkitektur– Fordeling av funksjonalitet på komponenter og
komponenter på prosessorer
Klassifisering av distribuerte systemer
To hovedtyper arkitektur– Klient-tjener arkitektur
• Tjenester leveres av tjenere og brukes av klienter
– Distribuert objektarkitektur• Systemet er samarbeidende objekter der plassering er
irrelevant
Komponentene kan lages med forskjellig programmeringsspråk og kjøres på forskjellig prosessortype
Mellomvare (middleware)
Kan være– Programvare for kommunikasjon med databaser– Transaksjonsmanagere– Datakonvertere– Kommunikasjonskontrollere
Multiprosessorarkitekturer
Systemet består av prosesser som kan kjøres på forskjellige prosessorer
Vanlig i store sanntidssystemer Kan også kjøres på en prosessor (styrt av
scheduler) Flere prosessorer gir større ytelse og
motstandsdyktighet Fast prosessortildeling eller dispatcher styrt
Multiprosessor-trafikkontrollsystem
Traffic lights
Lightcontrolprocess
Traffic light controlprocessor
Traffic flowprocessor
Operator consolesTraffic flow sensors
and cameras
Sensorprocessor
Sensorcontrolprocess
Displayprocess
Klient-tjenerarkitektur
Tjenere leverer tjenester til klienter Klientene må vite om tjenere, men ikke
nødvendigvis om hverandre Klient og tjenerprosesser vs.
prosessorer
Et klient-tjener system
s1
s2 s3
s4c1
c2 c3 c4
c5
c6c7 c8
c9
c10
c11
c12
Client process
Server process
Datamaskiner i et K/T-nettverk
Network
SC1SC2
CC1 CC2 CC3
CC5 CC6CC4
Servercomputer
Clientcomputer
s1, s2 s3, s4
c5, c6, c7
c1 c2 c3, c4
c8, c9 c10, c11, c12
s1
s2 s3
s4c1
c2 c3 c4
c5
c6c7 c8
c9
c10
c11
c12
Client process
Server process
Network
SC1SC2
CC1 CC2 CC3
CC5 CC6CC4
Servercomputer
Clientcomputer
s1, s2 s3, s4
c5, c6, c7
c1 c2 c3, c4
c8, c9 c10, c11, c12
Lagdelt programarkitektur
Vanlig utformingsarkitektur Presentasjonslag Behandlingslag Datalagringslag Disse lagene kan fordeles mellom klient
og tjener. Fordelingen kan gjøres forskjellig
Applikasjonslag
Presentation layer
Application processinglayer
Data managementlayer
Tykke og tynne klienter
Tynne klienter– Har bare presentasjonslag– Behandling og lagring skjer på server
Tykke klienter– Har både presentasjon og behandling– Lagring skjer på server
Tolags arkitektur (Two tier) er den enkleste K/T-arkitektur
Tynne og tykke klienter
Thin-clientmodel
Fat-clientmodel Client
Client
Server
Data managementApplicationprocessing
Presentation
Server
Datamanagement
PresentationApplication processing
Tynne klienter
Enklest når gamle sentraliserte systemer skal omarbeides til K/T
Systemer som bygger på nettleser er tynnklientsystemer
Stor arbeidsbelastning på server og nettverk, mens det er ledig kapasitet hos klienten
Tykke klienter
Bruker kapasitetsreserven i klienten Serveren er da en transaksjonsserver, som
ordner alle databasetransaksjoner Også her mulighet for stor nettverkstrafikk Minibanker er eksempel på tykk klient Mer komplisert systemadministrasjon
– Funksjonalitet spredt på mange maskiner– Komplisert oppgradering
Eller en mellomting..
Java-appletter Kompatibilitetsproblemer Trelags (Three-tier)
– Presentasjon, behandling og datalagring på hver sin maskin
– Behandling og datalagring kan starte som separate prosesser på samme maskin og senere skilles for å skalere systemet
Trelags K/T arkitektur
Client
Server
Datamanagement
PresentationServer
Applicationprocessing
Nettbank
Trelagsløsning– Tynn klient – nettleser– Webserver gir tilgang til tjenester– Databaseserver har ansvar for lagring
• SQL• Lavnivåprotokoller
Mangelagsløsning– Forskjellige databaser– Integrasjonsserver– Skalerbare løsninger
Nettbanksystem
Database server
Customeraccountdatabase
Web server
Client
Client
Client
Client
Account serviceprovision
SQLSQL query
HTTP interaction
Bruk av klient/tjener-arkitekturerArkitektur Anvendelse Tolags klient/tjener med tynne klienter
Gamle systemer hvor det er upraktisk å skille behandlingslag og datalagring. Anvendelser med tunge beregninger slik som kompilatorer med likte eller ingen datahåndtering. Anvendelser med mye datahåndtering og lite beregning
Tolags klient/tjener med tykke klienter
Applikasjoner der bearbeidinga utføres av COTS på klienter Applikasjoner som krever mye bearbeiding for visualisering (animasjoner, visualisering)) Applikasjoner med stabil sluttbrukerfunksjonalitet i miljø med veletablert systemadministrasjon.
Trelags eller mange-lags klient/tjener
Storskala applikasjoner med hundrevis eller tusenvis av klienter Anvendelser hvor både data og applikasjoner er flyktige Anvendelser som setter sammen data fra flere kilder.
Distribuerte objektarkitekturer
Problemer med K/T– Lite fleksibel– Plassering av tjenester må bestemmer på
forhånd– Lastfordeling og skalering må planlegges
Løsning:– Fjern skillet mellom K og T– Bygg systemet med distribuerte objekter– Objektene gir tilgang til tjenester for andre
objekter – intet skille mellom K og T
Distribuerte objektarkitekturer
Objektene kan spres på forskjellige datamaskiner
Kommunikasjon skjer gjennom mellomvare Programvarebuss (Software Bus)
– Kommunikasjonsmuligheter– Tilkopling og frakopling– Sømløs sammenkobling
Sammenkoblingsprogramvaren kalles Object Request Broker
Fordeler med distribuert objektarkitektur Avgjørelse om plassering av tjenester
kan utsettes Svært åpen systemarkitektur Fleksibelt og skalerbart Dynamisk omkonfigurering av systemet
– behovstyrt objektmigrering over nett
To anvendelsesområder for distribuert objektarkitektur i utforming Logisk modell for systemstrukturering
– Store tjenesteobjekter leverer alt innenfor et område: Lagerstyring, kundekommunikasjon, vareinnkjøp
Fleksibel tilnærming til K/T– Både K og T utformes som distribuerte
objekter på software-buss– Lett å omkonfigurere
Et data mining system
Database 1
Database 2
Database 3
Integrator 1
Integrator 2
Visualiser
Display
Report gen.
Eksempel - Datamining
Logisk sett: Ikke tjenesteyting Nye databaser kan legges til uten å
avbryte systemet Nye sammenhenger kan undersøkes
ved å legge til nye integratorer.
Ulemper ved distribuert objektarkitektur Mer komplisert å utforme enn K/T
– K/T er mer intuitivt – likner mellommenneskelige forhold
Lite erfaring med større forretningsobjekter
CORBA Mellomvare skal sikre sømløs
kommunikasjon mellom objekter skrevet i ulike språk, på ulike plattformer
To hovedstandarder CORBA (Common Object Request Broker
Architecture) definert av OMG. – Mange implementeringer av standarden– UNIX og Microsoft OS
DCOM (Distributed Component Object Model). Definert og implementert av Microsoft– Mindre generell enn CORBA– Bare på Microsoft-systemer
CORBA
Sannsynlig konvergens mellom CORBA, DCOM, Java-RMI (Remote Method Invocation) til CORBA
OMG (Object Management Group) består av over 500 selskaper– CORBA– UML– Common Business Objects
Komponenter i en distribuert applikasjon Applikasjonsobjekter skrevet for denne
applikasjonen Standardobjekter for anvendelsesområder Fundamentale CORBA-tjenester f.eks
katalogtjeneste, sikkerhetstjeneste Horisontale CORBA støttetjenester for
brukergrensesnitt, systemadministrasjon osv. Horisontal står for at tjenestene er felles for mange applikasjoner
Elementer i CORBA-standarden Objektmodell for applikasjonsobjekter. Innkapslet
tilstand og språknøytralt grensesnitt beskrevet i IDL ORB - Object Request Broker - håndterer
forespørsler etter objekttjenester– Finne objektet– Klargjøre objektet– Sende tjenesteforespørslene– Returnere resultatet
Felles objekttjenester– katalogtjenester– transaksjonstjenester– Persistenstjenester
Felles komponenter som det kan bli bruk for– Vertikale eller horisontale
CORBA applikasjonsstruktur
CORBA services
Object request broker
Domainfacilities
HorizontalCORBA facilities
Applicationobjects
CORBA Objektet er en innkapsling av attributter og
tjenester CORBA objekter har separat grensesnitt-
definisjon av public attributter og operasjoner Språkuavhengig grensedefinisjonsspråk IDL Objektet må ha en IDL stub for hvert objekt
man ønsker tilgang til Objektet må ha et IDL skeleton for grensesnitt
man vil vise Unik IOR (Interoperable Object Reference)
ORB – Object Request Broker
IDL isolerer objektene fra ORB. Med ORB er objektenes plassering
uinteressant En ORB per prosessor ORB til ORB kommunikasjon
– Tilgang til IDL-definisjoner– GIOP (Generic Inter Orb Protocol)– Kan fungere over TCP/IP
ORB-basert objektkommunikasjon
o1 o2
S (o1) S (o2)
IDLstub
IDLskeleton
Object Request Broker
Inter-ORB kommunikasjon
o1 o2
S (o1) S (o2)
IDL IDL
Object Request Broker
o3 o4
S (o3) S (o4)
IDL IDL
Object Request Broker
Network
CORBA-tjenester
Siden åttitallet, stadig i utvikling Navnetjenester (Hvite sider) Trading services (Gule sider) med
spesifikasjoner. Meldingstjenester og abonnement på
meldinger Transaksjonstjenester
Oppsummering
Forstå fordeler og ulemper med distribuerte arkitekturer
Forstå forskjellige tilnærminger til utvikling av klient-tjenerarkitektur
Forstå forskjellen mellom klient-tjener og distribuert objektarkitektur
Forstå ideen med Object Request Broker og prinsippene for CORBA-standarden