Distribuerte objekter og objekt-basert mellomvare

Like dokumenter
RM-ODP og Multimedia middleware (M3W):

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

Kapittel 7: Mer om arv

CORBA Component Model (CCM)

Introduksjon til Distribuerte System (DS)

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder.

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

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Web Services. Olav Lysne

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

Komponentbasert Systemutvikling - Hva, Hvorfor, Hvordan

Introduksjon til Distribuerte System (DS)

2. HVA ER EN KOMPONENT?

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

Presentasjon av: Erling Ringen Elvsrud Nils Fredrik Gjerull Håkon Torjus Bommen

INF3110 Programmeringsspråk. Velkommen til kurset INF 3110/4110. Programmeringsspråk 1/24

INF 3110/4110. Velkommen til kurset. Programmeringsspråk. Først det praktiske

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Anatomien til en kompilator - I

INF1000: Forelesning 7

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Distributed object architecture

Velkommen til. INF våren 2016

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF Obligatorisk innlevering 5

TDT4100 Objektorientert programmering

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

INF Notater. Veronika Heimsbakk 10. juni 2012

INF1000: Forelesning 7. Konstruktører Static

UNIVERSITETET I OSLO. Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language)

Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

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

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

Modelerings-prinsipper SOSI Ledning

Obligatorisk oppgave 4: Lege/Resept

Introduksjon til objektorientert programmering

INF Innleveringsoppgave 6

Objekt med Java. Harald Yndestad Høgskolen i Ålesund

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

Mer om programmering av aggregeringer

INF våren 2017

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

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Object interaction. Innhold. Abstraksjon Grunnleggende programmering i Java Monica Strand 3. september 2007.

JAVA Oppsummering for IS-102. Even Åby Larsen

INF1010 våren Arv og subklasser - del 2

Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet

Scientific applications in distributed systems

Løsningsforslag Test 2

UNIVERSITETET I OSLO

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Operativsystemer og grensesnitt

Objektorientert programmering i Python

Objekt-tjenere og deres implementasjon

Transkript:

Distribuerte objekter og objekt-basert mellomvare INF 5040 H2004 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare?! Innkapsling " naturlig tilnærming til utvikling av distribuerte applikasjoner! Data abstraksjon " klart skille mellom implementasjon (klasse) og spesifikasjon (grensesnitt)! Inkrementell utvikling " et objekt kan erstattes med en alternativ implementasjon! Utvidbarhet " kan legge til nye klasser og objekter! Arvavimplementasjonoggrensesnitt " støtter gjenbruk av kode og grensesnitt! Subtyping " muliggjør fleksibel utvelgelse av tjenester i en distribuert omgivelse Frank Eliassen, SRL & Ifi/UiO 2 IN-DOMS EVU vår 2002 1

Distribuerte objekter - I! Objekter i et distribuert program eksekverer i forskjellige prosesser. " Hvert objekt har et grensesnitt for å kontrollere aksess til det metoder og attributter som kan aksesseres fra andre objekter erklæres vha et Interface Definition Language (IDL) " fjerngrensesnitt (remote interface) kan aksesseres fra objekter i andre prosesser lokalisert på samme eller andre maskiner " fjernobjekt (remote object) objekt som implementerer fjerngrensesnitt " fjernt metodeanrop (Remote Method Invocation (RMI)) metodeanrop fra et objekt i én prosess til et fjernobjekt i en annen prosess Frank Eliassen, SRL & Ifi/UiO 3 Distribuerte objekter - II! Fjernobjekt har en entydig identitet: Remote Object Reference (ROR)! Andre objekter som ønsker å anrope metoder til et fjernobjekt må ha adgang til dets ROR! RORer er første klasses verdier " kan forekomme som argument og resultat i metodeanrop " kan tilordnes variable! Fjernobjekt er innkapslet av et grensesnitt! Fjernobjekt har en mengde attributter som betegner verdier! Kan utstede exceptions som resultat av metodeanrop Frank Eliassen, SRL & Ifi/UiO 4 IN-DOMS EVU vår 2002 2

Typer og distribuerte objekter! Attributter, metoder og exceptions er egenskaper objekter kan eksportere til andre objekter! Flere objekter kan eksportere de samme egenskapene! Definerer egenskapene kun en gang! Attributter, metoder og exceptions er definert i objekt-typene (grensesnittspesifikasjon) Frank Eliassen, SRL & Ifi/UiO 5 Attributter! Attributter har navn og type! Type kan være en objekt-type eller en ikkeobjekt-type! Attributter kan leses av andre komponenter! Attributter kan eller kan ikke være modifiserbare av andre komponenter! Attributter ofte realisert som en eller to metoder (set/get) i objektes grensesnitt Frank Eliassen, SRL & Ifi/UiO 6 IN-DOMS EVU vår 2002 3

Exceptions! Fjerne metodeanrop i et distribuert system kan feile! Exceptions brukes til å forklare årsaken til feilen til objektet som utstedte anropet! Feiling av fjerne metodeanrop kan være " generisk " spesifikk (applikasjonsspesifikk)! Spesifikk feiling kan forklares i spesifikke exceptions Frank Eliassen, SRL & Ifi/UiO 7 Metoder! Metoder har en signatur som består av " et navn " en liste av in, out, og inout parametere " en returverditype " en liste av exceptions som operasjonen kan utstede Frank Eliassen, SRL & Ifi/UiO 8 IN-DOMS EVU vår 2002 4

Eksempel: CORBA/IDL typedef enum { Målvakt, Forsvarer, Midtbane, Spiss } Posisjon interface Spiller { readonly string fornavn; readonly string etternavn; readonly short Alder; Posisjon Rolle; Exception AlleredePlassert{ }; }; void plasser (in Dato d) raises (AlleredePlassert); Frank Eliassen, SRL & Ifi/UiO 9 Fjerne metodeanrop! Et klientobjekt kan forespørre utførelse av en metode hos et fjernobjekt (metodeanrop)! Fjerne metodeanrop uttrykkes ved å sende en melding (metodenavn) til fjernobjektet! Fjernobjektet er identifisert ved en objektreferanse (Remote Object Reference - ROR)! Klienter må kunne handtere exceptions som metoden kan utstede Frank Eliassen, SRL & Ifi/UiO 10 IN-DOMS EVU vår 2002 5

Fjernobjekt med fjerngrensesnitt fjern gr.snitt m1 m2 m3 data impl. Av metoder lokalt gr.snitt m4 m5 m6 Frank Eliassen, SRL & Ifi/UiO 11 Subtyping! objekttyper organiseres i et typehieraraki! subtyper arver attributter, exceptions, og metoder fra deres supertyper interface Klubb { readonly string navn; readonly string gateadr;... }; interface FotballKlubb : Klubb {... }; interface HandballKlubb : Klubb {... }; Frank Eliassen, SRL & Ifi/UiO 12 IN-DOMS EVU vår 2002 6

Polymorfi! Polymorfi betegner muligheten for tilordning av objekter som er instanser av variabelens statiske type og alle dens subtyper " x : T := v " hvilken type må v ha for at tilordningen skal være lovlig?? Frank Eliassen, SRL & Ifi/UiO 13 Polymorfi: Eksempel klubber:sequence<klubb> 898:FotballKlubb navn = Rosenborg adr = Lerkendal 897:FotballKlubb navn = Tromsø adr = Alfheim 890:HandballKlubb navn= Larvik adr = Larvikhallen Frank Eliassen, SRL & Ifi/UiO 14 IN-DOMS EVU vår 2002 7

Språkheterogenitet! Objektbasert distribuert mellomvare har behov for en felles objektmodell " objekter i distribuerte systemer er skrevet i forskjellige programmeringsspråk " objekter må være interoperasjonelle (samhandling) " programmeringsspråk har eller har ikke sine egne objektmodeller " ulike objektmodeller kan være svært forskjellige " forskjellene må overvinnes for å sikre interoperabilitet! Mellomvarens objektmodell tjener som en felles basis for heterogene objekter Frank Eliassen, SRL & Ifi/UiO 15 Felles objektmodell Smalltalk Java IDL C++ Ada-95 Felles objekt modell C Cobol Frank Eliassen, SRL & Ifi/UiO 16 IN-DOMS EVU vår 2002 8

Hensikten med felles objektmodell! Metamodell for mellomvarens typesystem! Definerer meningen med f.eks. " objektidentifikasjon " objekttype (grensesnitt) " operasjon " attributt " metodeanrop " exception " subtyping/arv! Må defineres generelt nok til å kunne avbildes til de fleste programmeringsspråk Frank Eliassen, SRL & Ifi/UiO 17 Interface Definition Language (IDL)! Språk for å uttrykke alle begreper i mellomvareplattformens objektmodell! Krav " må være uavhengig av programmeringsspråk " trenger ikke være beregningsmessig fullstendig! Behov for bindinger til forskjellige programmeringsspråk! Eksempel: " CORBA objekt modell og CORBA/IDL Frank Eliassen, SRL & Ifi/UiO 18 IN-DOMS EVU vår 2002 9

Bruks av felles objektmodell X anrop Z s metode foo() Y Z foo() Ulike programmeringsspråk IDL IDL Mellomvare IDL Felles objektmodell Frank Eliassen, SRL & Ifi/UiO 19 Oppsummering! Distribuerte objekter eksekverer i forskjellige prosesser. " fjerngrensesnitt tillater at et objekt i én prosess kan aksesseres objekter i andre prosesser lokalisert på samme eller andre maskiner! Objekt-basert distribuert mellomvare: " mellomvare som modellerer en distribuert applikasjon som en samling interagerede distribuerte objekter (f.eks. CORBA, Java RMI) " noen mellomvare (som CORBA) tillater at objekter i samme applikasjon er implementert i forskjellige programmeringsspråk Frank Eliassen, SRL & Ifi/UiO 20 IN-DOMS EVU vår 2002 10