430 likes | 634 Views
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
E N D
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
Klient-tjenerarkitektur • Tjenere leverer tjenester til klienter • Klientene må vite om tjenere, men ikke nødvendigvis om hverandre • Klient og tjenerprosesser vs. prosessorer
Lagdelt programarkitektur • Vanlig utformingsarkitektur • Presentasjonslag • Behandlingslag • Datalagringslag • Disse lagene kan fordeles mellom klient og tjener. Fordelingen kan gjøres forskjellig
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 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
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
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
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 • 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
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