43
Arkitektur for distribuerte systemer In 140 Sommerville kap 11

Arkitektur for distribuerte systemer

  • Upload
    aida

  • View
    45

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Arkitektur for distribuerte systemer

Arkitektur for distribuerte systemer

In 140 Sommerville kap 11

Page 2: Arkitektur for distribuerte systemer

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

Page 3: Arkitektur for distribuerte systemer

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.

Page 4: Arkitektur for distribuerte systemer

Karakteristiske egenskaper ved distribuerte systemer. (Coulouris1994)

Ressursdeling Åpenhet Parallelle prosesser Skalerbarhet Feiltoleranse Transparens

Page 5: Arkitektur for distribuerte systemer

Ulemper ved distribuerte systemer

Kompleksitet– Vanskelig å forstå– Vanskelig å teste

Sikkerhet– Mange maskiner– Avlytting

Drifting Uforutsigbarhet

Page 6: Arkitektur for distribuerte systemer

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

Page 7: Arkitektur for distribuerte systemer

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

Page 8: Arkitektur for distribuerte systemer

Mellomvare (middleware)

Kan være– Programvare for kommunikasjon med databaser– Transaksjonsmanagere– Datakonvertere– Kommunikasjonskontrollere

Page 9: Arkitektur for distribuerte systemer

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

Page 10: Arkitektur for distribuerte systemer

Multiprosessor-trafikkontrollsystem

Traffic lights

Lightcontrolprocess

Traffic light controlprocessor

Traffic flowprocessor

Operator consolesTraffic flow sensors

and cameras

Sensorprocessor

Sensorcontrolprocess

Displayprocess

Page 11: Arkitektur for distribuerte systemer

Klient-tjenerarkitektur

Tjenere leverer tjenester til klienter Klientene må vite om tjenere, men ikke

nødvendigvis om hverandre Klient og tjenerprosesser vs.

prosessorer

Page 12: Arkitektur for distribuerte systemer

Et klient-tjener system

s1

s2 s3

s4c1

c2 c3 c4

c5

c6c7 c8

c9

c10

c11

c12

Client process

Server process

Page 13: Arkitektur for distribuerte systemer

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

Page 14: Arkitektur for distribuerte systemer

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

Page 15: Arkitektur for distribuerte systemer

Lagdelt programarkitektur

Vanlig utformingsarkitektur Presentasjonslag Behandlingslag Datalagringslag Disse lagene kan fordeles mellom klient

og tjener. Fordelingen kan gjøres forskjellig

Page 16: Arkitektur for distribuerte systemer

Applikasjonslag

Presentation layer

Application processinglayer

Data managementlayer

Page 17: Arkitektur for distribuerte systemer

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

Page 18: Arkitektur for distribuerte systemer

Tynne og tykke klienter

Thin-clientmodel

Fat-clientmodel Client

Client

Server

Data managementApplicationprocessing

Presentation

Server

Datamanagement

PresentationApplication processing

Page 19: Arkitektur for distribuerte systemer

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

Page 20: Arkitektur for distribuerte systemer

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

Page 21: Arkitektur for distribuerte systemer

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

Page 22: Arkitektur for distribuerte systemer

Trelags K/T arkitektur

Client

Server

Datamanagement

PresentationServer

Applicationprocessing

Page 23: Arkitektur for distribuerte systemer

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

Page 24: Arkitektur for distribuerte systemer

Nettbanksystem

Database server

Customeraccountdatabase

Web server

Client

Client

Client

Client

Account serviceprovision

SQLSQL query

HTTP interaction

Page 25: Arkitektur for distribuerte systemer

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.

Page 26: Arkitektur for distribuerte systemer

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

Page 27: Arkitektur for distribuerte systemer

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

Page 28: Arkitektur for distribuerte systemer

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

Page 29: Arkitektur for distribuerte systemer

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

Page 30: Arkitektur for distribuerte systemer

Et data mining system

Database 1

Database 2

Database 3

Integrator 1

Integrator 2

Visualiser

Display

Report gen.

Page 31: Arkitektur for distribuerte systemer

Eksempel - Datamining

Logisk sett: Ikke tjenesteyting Nye databaser kan legges til uten å

avbryte systemet Nye sammenhenger kan undersøkes

ved å legge til nye integratorer.

Page 32: Arkitektur for distribuerte systemer

Ulemper ved distribuert objektarkitektur Mer komplisert å utforme enn K/T

– K/T er mer intuitivt – likner mellommenneskelige forhold

Lite erfaring med større forretningsobjekter

Page 33: Arkitektur for distribuerte systemer

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

Page 34: Arkitektur for distribuerte 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

Page 35: Arkitektur for distribuerte systemer

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

Page 36: Arkitektur for distribuerte systemer

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

Page 37: Arkitektur for distribuerte systemer

CORBA applikasjonsstruktur

CORBA services

Object request broker

Domainfacilities

HorizontalCORBA facilities

Applicationobjects

Page 38: Arkitektur for distribuerte systemer

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)

Page 39: Arkitektur for distribuerte systemer

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

Page 40: Arkitektur for distribuerte systemer

ORB-basert objektkommunikasjon

o1 o2

S (o1) S (o2)

IDLstub

IDLskeleton

Object Request Broker

Page 41: Arkitektur for distribuerte systemer

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

Page 42: Arkitektur for distribuerte systemer

CORBA-tjenester

Siden åttitallet, stadig i utvikling Navnetjenester (Hvite sider) Trading services (Gule sider) med

spesifikasjoner. Meldingstjenester og abonnement på

meldinger Transaksjonstjenester

Page 43: Arkitektur for distribuerte systemer

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