1 / 43

Arkitektur for distribuerte systemer

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

aida
Download Presentation

Arkitektur for distribuerte systemer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arkitektur for distribuerte systemer In 140 Sommerville kap 11

  2. 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

  3. 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.

  4. Karakteristiske egenskaper ved distribuerte systemer. (Coulouris1994) • Ressursdeling • Åpenhet • Parallelle prosesser • Skalerbarhet • Feiltoleranse • Transparens

  5. Ulemper ved distribuerte systemer • Kompleksitet • Vanskelig å forstå • Vanskelig å teste • Sikkerhet • Mange maskiner • Avlytting • Drifting • Uforutsigbarhet

  6. 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

  7. 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

  8. Mellomvare (middleware) • Kan være • Programvare for kommunikasjon med databaser • Transaksjonsmanagere • Datakonvertere • Kommunikasjonskontrollere

  9. 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

  10. Multiprosessor-trafikkontrollsystem

  11. Klient-tjenerarkitektur • Tjenere leverer tjenester til klienter • Klientene må vite om tjenere, men ikke nødvendigvis om hverandre • Klient og tjenerprosesser vs. prosessorer

  12. Et klient-tjener system

  13. Datamaskineri et K/T-nettverk

  14. Lagdelt programarkitektur • Vanlig utformingsarkitektur • Presentasjonslag • Behandlingslag • Datalagringslag • Disse lagene kan fordeles mellom klient og tjener. Fordelingen kan gjøres forskjellig

  15. Applikasjonslag

  16. 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

  17. Tynne og tykke klienter

  18. 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

  19. 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

  20. 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

  21. Trelags K/T arkitektur

  22. 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

  23. Nettbanksystem

  24. Bruk av klient/tjener-arkitekturer

  25. 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

  26. 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

  27. 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

  28. 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

  29. Et data mining system

  30. Eksempel - Datamining • Logisk sett: Ikke tjenesteyting • Nye databaser kan legges til uten å avbryte systemet • Nye sammenhenger kan undersøkes ved å legge til nye integratorer.

  31. Ulemper ved distribuert objektarkitektur • Mer komplisert å utforme enn K/T • K/T er mer intuitivt – likner mellommenneskelige forhold • Lite erfaring med større forretningsobjekter

  32. 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

  33. 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

  34. 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

  35. 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

  36. CORBA applikasjonsstruktur

  37. 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)

  38. 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

  39. ORB-basert objektkommunikasjon

  40. Inter-ORB kommunikasjon

  41. CORBA-tjenester • Siden åttitallet, stadig i utvikling • Navnetjenester (Hvite sider) • Trading services (Gule sider) med spesifikasjoner. • Meldingstjenester og abonnement på meldinger • Transaksjonstjenester

  42. 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

More Related