Introduksjon til Distribuerte System (DS)



Like dokumenter
Introduksjon til Distribuerte System (DS)

Distribuerte objekter og objekt-basert mellomvare

Generelt om operativsystemer

Naming og trading INF5040. Foreleser: Olav Lysne. Ifi/UiO 1

Replikering. Olav Lysne

Systemmodeller for distribuerte system

Systemmodeller for distribuerte system

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Tid og koordinering. Foreleser: Olav Lysne

Oppsummering og pensumkommentarer. INF5040 høst forelesere: Frank Eliassen, Olav Lysne. Innhold og mål

Generelt om operativsystemer

Generelt om permanent lagring og filsystemer

INF1300 Introduksjon til databaser

Tildeling av minne til prosesser

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

INF2270. Input / Output (I/O)

Peer-to-Peer systemer

Web Services. Olav Lysne

RM-ODP og Multimedia middleware (M3W):

Introduksjon til fagfeltet

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

Distributed object architecture

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Jini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon

IT-sikkerhet på autopilot

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

AlgDat 12. Forelesning 2. Gunnar Misund

Løsningsforslag for Eksamen i TDT4190 Distribuerte systemer. Onsdag 23. mai

Kjenn din PC (Windows7)

AlgDat 10. Forelesning 2. Gunnar Misund

Tildeling av minne til prosesser

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering

CORBA Component Model (CCM)

HP Easy Tools. Administratorhåndbok

Operativsystemer og grensesnitt

Overordnet beskrivelse

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

1. Introduksjon til operativsystemer

Forelesning 9 mandag den 15. september

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

STE6221 Sanntidssystemer Løsningsforslag

Innledende Analyse Del 1: Prosjektbeskrivelse (versjon 2)

Oppsummering. Thomas Lohne Aanes Thomas Amble

Kap 3: Anvendelser av Internett

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Innledende Analyse Del 1.2

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

INF1300 Introduksjon til databaser

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

BlackBox, WhiteBox og andre testmetoder. Etter ønske fra studentene 26. november 2009

UNIVERSITETET I OSLO

Klientadministrasjon og mobil utskrift

PRODUKTBESKRIVELSE TJENESTE. NRDB Nummerportabilitet

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 3 KRAVHÅNDTERING

INF2270. Input / Output (I/O)

Håndtering av minne i et OS

Arkitekturprinsipper i spesialisthelsetjenesten. Versjon 1.0 Sist oppdatert: 27. nov 2014

Hva består Internett av?

INF oktober Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

TDT4110 IT Grunnkurs: Kommunikasjon og Nettverk. Læringsmål og pensum. Hva er et nettverk? Mål. Pensum

Kapittel 1: Datamaskiner og programmeringsspråk

Abaris-notat Teknisk beskrivelse av kodeverkskomponent for ICPC-2

MAT1030 Diskret matematikk. Kompleksitetsteori. Forelesning 29: Kompleksitetsteori. Dag Normann KAPITTEL 13: Kompleksitetsteori. 7.

Litt om Javas class-filer og byte-kode

Programvare arkitekturer

6105 Windows Server og datanett Jon Kvisli, HSN Skriveradministrasjon - 1. Utskrift i nettverk

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund

TTM4175 Hva er kommunikasjonsteknologi?

Transkript:

Introduksjon til Distribuerte System (DS) INF5040 høst 2003 foreleser: Olav Lysne Olav Lysne, SRL & Ifi/UiO 1 Hva er et distribuert system? Definisjon [Coulouris & Emmerich] Et distribuert system består av maskinvare- og programvare-komponenter lokalisert i et nettverk av datamaskiner som kommuniserer og koordinerer sine aksjoner kun ved å sende meldinger. Definisjon [Lamport] Et distribuert system er et system som hindrer deg i å få gjort noe arbeid når en maskin du aldri har hørt om før, feiler. Olav Lysne, SRL & Ifi/UiO 2

Konsekvenser av distribuerte system Komponenter feiler uavhengig av hverandre delvis feiling & ufullstendig informasjon Upålitelig kommunikasjon Tap av forbindelse og meldinger. Bitfeil i meldinger. Usikker kommunikasjon Mulighet for uautorisert avlytting og modifikasjon av meldinger Kostbar kommunikasjon Kommunikasjon mellom datamaskiner har vanligvis lavere båndbredde, høyere latenstid, og koster mer, enn mellom uavhengige prosesser i samme maskin. Samtidighet komponenter eksekverer i samtidige prosesser som leser og oppdaterer delte ressurser. Krever koordinering (samtidighetskontroll) Ingen global klokke vanskeliggjør tett koordinering Olav Lysne, SRL & Ifi/UiO 3 Krav som leder til distribuerte system ressurs deling muligheten til å benytte tilgjengelig ressurser hvor som helst åpenhet et åpent system kan utvides og forbedres inkrementelt skalerbarhet betjene flere brukere, gi kortere svartider feiltoleranse opprettholde tilgjengelighet selv i tilfeller der komponenter har liten pålitelighet heterogenitet nettverk og maskinvare, operativsystem, programmeringsspråk, implementasjon av forskjellige utviklere Olav Lysne, SRL & Ifi/UiO 4

Ressursdeling Muligheten til å benytte tilgjengelig maskinvare, programvare eller data hvor som helst i systemet Ressursforvaltere (managers) kontrollerer aksess, tilbyr skjema for navngiving, og kontrollerer samtidighet En ressursforvalter er en programvaremodul som forvalter en ressurs av en bestemt type. Ressursdelingsmodell beskriver hvordan ressurser gjøres tilgjengelig ressurser kan brukes tjenesteyter og bruker interagerer med hverandre Olav Lysne, SRL & Ifi/UiO 5 Ressursdelingsmodeller Klient-tjener ressursmodell Tjenerprosesser opptrer som ressursforvaltere, og tilbyr tjenester (samling prosedyrer). Klientprosesser sender forespørsler til tjenere Objekt-basert ressursmodell Enhver entitet innen en prosess modelleres som et objekt med et meldingsbasert grensesnitt som gir adgang til dets operasjoner. Enhver delt ressurs modelleres som et objekt Olav Lysne, SRL & Ifi/UiO 6

Åpenhet Et åpent DS kan utvides og forbedres inkrementelt Krever en uniform interprosessmekanisme og at komponentgrensesnitt offentliggjøres (f.eks. gjenstand for standardisering) IETF RFC: Protokollspesifikasjon (www.ietf.org) OMG: grensesnittspesifikasjoner m.m. (www.omg.org) Nye komponenter må kunne integreres med (virke sammen med) eksisterende komponenter Olav Lysne, SRL & Ifi/UiO 7 Samtidighet Komponenter i DS eksekverer i samtidige prosesser Komponenter aksesserer og oppdaterer delte ressurser (f.eks. variable, databaser, device drivere) Integriteten til systemet kan brytes hvis samtidig oppdatering ikke koordineres tapte oppdateringer inkonsistent analyse Bevaring av integritet krever samtidighetskontroll hvor samtidig aksess til samme ressurs synkroniseres Olav Lysne, SRL & Ifi/UiO 8

Skalerbarhet Et system er skalerbart hvis det forblir effektivt når det er en betydelig økning i mengden ressurser og antall brukere. Internett: antall brukere og tjenester har vokst enormt Skalerbarhet betegner altså et systems egnethet til å handtere en økende last i fremtiden Krav om skalerbarhet leder ofte til en distribuert systemarkitektur (flere maskiner) Olav Lysne, SRL & Ifi/UiO 9 Skalerbarhet : utfordringer Kontrollere kostnader (ressurser) Et system med n brukere er ressurs-skalerbarhet dersom antall ressurser som kreves for å underholde dem er høyst O(n) Kontrollere ytelsestap (når mengden data øker) Et system er ytelses-skalerbart dersom tiden det tar å aksessere hierarkisk ordnede data er høyst O(log n) der n er mengden data Hindre at systemet slipper opp for programvareressurser: Dimensjonere datastrukturer o.l. slik at systemet kan handtere fremtidige krav (vanskelig - jfr IP adresser) Unngå ytelsesflaskehalser krever desentraliserte algoritmer (partisjonering, caching og replikering) Olav Lysne, SRL & Ifi/UiO 10

Feilhandtering Maskinvare, programvare og nettverk feiler!! DS må opprettholde tilgjengelighet selv i tilfeller der maskinvare/programvare/nettverk har liten pålitelighet Feil i distributerte system er partiell gjør feilhandtering spesielt vanskelig Mange teknikker for å handtere feil Deteksjon av feil (sjekksum o.l) Maskering av feil (retransmisjon i protokoller, replikering ) Tolerere feil (som i web-lesere) Gjenoppretting ( recovery ) Redundans (replikere tjenester på feil-uavhengige måter) Olav Lysne, SRL & Ifi/UiO 11 Heterogenitet Variasjon og forskjeller som må handteres nettverk Internett-protokollen er implementert over mange ulike nettverk maskinvare forskjeller i data representasjon til datatyper på forskjellige prosessorer operativsystem API til samme protokoll og tjeneste varierer programmeringsspråk forskjellig representasjon av tegnsett og datastrukturer implementasjon av forskjellige utviklere sikre at ulike programmer kan kommunisere krever enighet om en rekke ting (jfr standarder) Olav Lysne, SRL & Ifi/UiO 12

Transparens Transparens skjuler konsekvensene av distribusjon Transparens har forskjellige dimensjoner [ODP] Disse representerer ulike egenskaper et distribuert system kan ha (målestokk for å vurdere design av et system) Olav Lysne, SRL & Ifi/UiO 13 Aksesstransparens Muliggjør at lokale og fjerne ressurser/komponenter kan aksesseres ved bruk av identiske operasjoner Eksempel: Filsystem-operasjoner i NFS Eksempel: Navigering i www Eksempel: SQL-spørringer i distribuerte databaser Komponenter som ikke har transparent aksess kan ikke enkelt flyttes fra en maskin til en annen. Olav Lysne, SRL & Ifi/UiO 14

Lokasjonstransparens Muliggjør at ressurser/komponenter kan aksesseres uten kunnskap om deres lokasjon Eksempel: Filsystem-operasjoner i NFS Eksempel: Websider (URLer) i www Eksempel: Tabeller i distribuerte databaser Olav Lysne, SRL & Ifi/UiO 15 Andre transparensdimensjoner Samtidighetstransparens Replikeringstransparens Feiltransparens Migreringstransparens Ytelsestransparens Skaleringstransparens Olav Lysne, SRL & Ifi/UiO 16

Distribusjonstransparens Skalerbarhets transparens Ytelses Ytelses transparens Feil Feil transparens Migrerings transparens Replikerings transparens Samtidighets transparens Aksess Aksess transparens Lokasjons transparens Olav Lysne, SRL & Ifi/UiO 17 Mål for distribuert mellomvare Høste fordelene ved distribuerte system Skjule konsekvenser av distribusjon (transparens) Realisere portabilitet og interoperabilitet Distribuerte applikasjoner og tjenester PlattformUavhengig grensensitt - transaksjonsorientert (ODTP XA) DISTRIBUERT MELLOMVARE - meldingsorientert (IBM MQSeries) - fjerne prosedyrekall (X/Open DCE) PlattformAvhengig grensensitt - objekt-basert (CORBA, COM, Java) Plattform Plattform Plattform... 1 2 n Olav Lysne, SRL & Ifi/UiO 18

Oppsummering Distribuert system: maskinvare- og programvare-komponenter lokalisert i et nettverk av datamaskiner som kommuniserer og koordinerer sine aksjoner kun ved å sende meldinger Konsekvenser av distribuerte system Komponenter feiler uavhengig av hverandre Usikker kommunikasjon (sikkerhet) Ingen global klokke Krav som ressursdeling, åpenhet, skalerbarhet, feiltoleranse og heterogenitet kan tilfredstilles av distribuerte system Mål for distribuert mellomvare Høste potensielle fordeler av distribuerte system uten å måtte betale for alle dens utfordringer og problemer (transparens) Olav Lysne, SRL & Ifi/UiO 19 Design av distribuerte objekter INF5040 høst 2003 foreleser: Olav Lysne Olav Lysne, SRL & Ifi/UiO 20

Design av distribuerte objekter Mange har erfaring med design av lokale objekter som alle er lokalisert i kjøretidsomgivelsen til et OO programmeringsspråk Design av distribuerte objekter er forskjellig! I det følgende: Diskutere de viktigste forskjellene Olav Lysne, SRL & Ifi/UiO 21 Design av distribuerte objekter Olav Lysne, SRL & Ifi/UiO 22

Lokale vs distribuerte objekter Referanser Aktivisering/deaktivisering Migrering Persistens Latenstid for metodeanrop Samtidighet Kommunikasjon Sikkerhet Mange fallgruber lurer her!! Olav Lysne, SRL & Ifi/UiO 23 Objektreferanser Referanser til objekter i OOPS er vanligvis pekere til primærlageradresser noen ganger kan de endres til referanser (C++) andre ganger ikke (Smalltalk, Java) Referanser til distribuerte objekter er mer kompleks lokasjonsinformasjon sikkerhetsinformasjon referanse til objekttype Referanse til distribuerte objekt er større (f.eks. 350 byte i Orbix) Olav Lysne, SRL & Ifi/UiO 24

Aktivisering/deaktivisering Objekter i OOPS er i primærlageret i tiden fra de opprettes til de slettes Dette passer ikke alltid like bra for distribuerte objekter antall objekter objekter kan brukes over lang tid noen tjenermaskiner må tas ned av og til uten at applikasjonene stoppes Distribuerte objektimplementasjoner blir lest inn i primærlageret (aktivisering) fjernet fra primærlageret (deaktivisering) Olav Lysne, SRL & Ifi/UiO 25 Aktivisering/deaktivisering Hareide:Trener RBK:FotballKlubb plassermålvakt objekt aktivisering objekt deaktivisering Olav Lysne, SRL & Ifi/UiO 26

Aktivisering/deaktivisering Spørsmål som oppstår: oppbevaringssted for implementasjoner ( repository ) assosiasjon mellom objekter og prosesser eksplisitt vs implisitt aktivisering når deaktivisere objekter? hvordan handtere samtidige anrop Hvem bestemmer svarene på spørsmålene over? Designer? Programmerer? Administrator? Olav Lysne, SRL & Ifi/UiO 27 Persistens Tilstandsløse vs tilstandsfulle objekter Tilstandsfulle objekter må lagre sin tilstand mellom objekt-deaktivisering og objekt-aktivisering i et persistent lager Kan oppnås bl.a. ved lage ekstern representasjon for filsystem avbilde til relasjonsdatabase objekt database Avgjøres ved objekt design Olav Lysne, SRL & Ifi/UiO 28

Objekters livsløp Objekter i OOPS lever i én virtuell maskin Distribuerte objekter kan opprettes på forskjellige maskiner Distributerte objekter kan kopieres eller flyttes (migreres) fra en maskin til en annen Fjerning av objekter ved søppelsamling er vanskelig i en distribuert omgivelse Java RMI: reference counting Jini: leases Livsløp må vurderes ved design av distribuerte objekter Olav Lysne, SRL & Ifi/UiO 29 Latenstid til anrop Å utføre et lokalt metodeanrop krever noen hundre nanosekunder Et fjernt metodeanrop krever mellom 0.1 og 10 millisekunder, eller mer grensesnitt til distribuerte objekter må konstrueres på en slik måte at metoder utfører større prosesseringsoppgaver de ikke krever svært hyppige anrop Olav Lysne, SRL & Ifi/UiO 30

Parallellitet Utførelse av objekter i OOPS sekvensiell samtidig (concurrent) m/flere tråder Distribuerte objekter eksekverer i parallell Kan brukes til å akselerere beregningene Olav Lysne, SRL & Ifi/UiO 31 Kommunikasjon Metodekall i OOPS er synkrone Alternativer for distribuerte objekter: synkrone kall ( synchronous requests) enveis-kall ( oneway requests ) utsatt synkrone kall ( deferred synchronous requests asynkrone kall ( asynchronous requests ) Hvem avgjør for hvert kall? designer av tjeneren? designer av klienten? Hvordan dokumentere? Olav Lysne, SRL & Ifi/UiO 32

Sikkerhet Sikkerhet i OO applikasjoner kan handteres på sesjonsnivå Objekter i OOPS trenger ikke skrives på en bestemt måte For distribuerte objekter Hvem utsteder metodekallet? Hvordan kan vi vite at klienten er den han hevder å være? Hvordan kan vi avgjøre om vi skal innvilge klienten retten til å bruke tjenesten? Hvordan kan vi bevise at vi har levert tjenesten for seinereå kunnekrevebetaling for bruk av tjenesten? Olav Lysne, SRL & Ifi/UiO 33 Oppsummering Design av distribuerte objekter er forskjellig fra design av program der alle objekter er i samme prosess Mange fallgruber!! Olav Lysne, SRL & Ifi/UiO 34