Distribuerte objekter og objekt-basert mellomvare

Like dokumenter
Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare

CORBA Objektmodell (Java RMI)

CORBA & Java RMI & J2EE & CORBA CCM OMG & CORBA

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

RM-ODP og Multimedia middleware (M3W):

Objekt-interaksjon. INF 5040 høst 2006

Introduksjon til Distribuerte System (DS)

Objekt-interaksjon i objektbasert mellomvare:

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

Kapittel 7: Mer om arv

Time-Independent Invocation(TII) and Interoperable Routing

Objekt-interaksjon i objektbasert mellomvare:

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

CORBA Component Model (CCM)

Generiske mekanismer i statisk typede programmeringsspråk

Gruppe 11. Frank Petter Larsen Vegard Dehlen

2 Om statiske variable/konstanter og statiske metoder.

Objekt-interaksjon. Plan. INF 5040 høst 2005

Læringsmål for forelesningen

DCOM. 21. oktober Mai et al. Hva er egentlig en komponent?

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

Introduksjon til Distribuerte System (DS)

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; }

Utfordringer til mellomvare: Multimedia

2. HVA ER EN KOMPONENT?

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

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

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

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

Komponentbasert Systemutvikling - Hva, Hvorfor, Hvordan

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

Anatomien til en kompilator - I

I objektorientering er det mange elementer som inngår og et av problemene er mangelen på et formelt fundament. Det finnes ingen omforent og formell mo

Repitisjonskurs. Arv, Subklasser og Grensesnitt

INF1000: Forelesning 7

Anatomien til en kompilator - I

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

INF Seminaroppgaver til uke 3

Velkommen til. INF våren 2016

Utfordringer til mellomvare: Multimedia

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

Introduksjon til Distribuerte System (DS)

Distributed object architecture

INF Obligatorisk innlevering 5

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

TDT4100 Objektorientert programmering

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

Kapittel 5: Objektkommunikasjon

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

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

Obligatorisk oppgave 4: Lege/Resept

Runtime-omgivelser Kap 7 - I

Introduksjon til objektorientert programmering

Modelerings-prinsipper SOSI Ledning

INF Innleveringsoppgave 6

Runtimesystemer Kap 7 - I

INF2810: Funksjonell Programmering. Tilstand og verditilordning

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

INF våren 2017

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking

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

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

Mer om programmering av aggregeringer

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

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten

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

INF2810: Funksjonell Programmering. Tilstand og verditilordning

INF1010 våren Arv og subklasser - del 2

INF2810: Funksjonell Programmering. Tilstand og verditilordning

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

UNIVERSITETET I OSLO

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

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

JAVA Oppsummering for IS-102. Even Åby Larsen

Løsningsforslag Test 2

Scientific applications in distributed systems

Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

INF Oblig 2 semantikksjekk og kodegenerering

UNIVERSITETET I OSLO

IN våren 2019 Onsdag 16. januar

Læringsmål for forelesningen

IN våren 2018 Tirsdag 16. januar

Generiske mekanismer i statisk typede programmeringsspråk

Operativsystemer og grensesnitt

Objektorientert programmering i Python

Runtimesystemer Kap 7 - I

Kap3: Klassemodellering

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL

Forelesningsnotat. Kapittel 9 Designing and Constructing Software Code related Issues. Design og utvikling av programvare

UNIVERSITETET I OSLO

Transkript:

Distribuerte objekter og objekt-basert mellomvare INF 5040 H2006 foreleser: Frank Eliassen INF5040 Frank Eliassen 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 Arv av implementasjon og grensesnitt støtter gjenbruk av kode og grensesnitt Subtyping muliggjør fleksibel utvelgelse av tjenester i en distribuert omgivelse INF5040 Frank Eliassen 2 INF5040 H2006 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 INF5040 Frank Eliassen 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 INF5040 Frank Eliassen 4 INF5040 H2006 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) INF5040 Frank Eliassen 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 tilsvarer en eller to metoder (set/get) INF5040 Frank Eliassen 6 INF5040 H2006 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 INF5040 Frank Eliassen 7 Metoder Metoder har en signatur som består av et navn en liste avin, out, oginout parametere en returverditype en liste av exceptions som operasjonen kan utstede INF5040 Frank Eliassen 8 INF5040 H2006 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); INF5040 Frank Eliassen 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 INF5040 Frank Eliassen 10 INF5040 H2006 5

Fjernobjekt med fjerngrensesnitt fjern gr.snitt m1 m2 m3 data impl. Av metoder lokalt gr.snitt m4 m5 m6 INF5040 Frank Eliassen 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 {... }; INF5040 Frank Eliassen 12 INF5040 H2006 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?? INF5040 Frank Eliassen 13 Polymorfi: Eksempel klubber:sequence<klubb> 898:FotballKlubb navn = Rosenborg adr = Lerkendal 897:FotballKlubb navn = Tromsø adr = Alfheim 890:HandballKlubb navn= Larvik adr = Larvikhallen INF5040 Frank Eliassen 14 INF5040 H2006 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 INF5040 Frank Eliassen 15 Felles objektmodell Smalltalk Java IDL C++ Ada-95 Felles objekt modell C Cobol INF5040 Frank Eliassen 16 INF5040 H2006 8

Hensikten med felles objektmodell Metanivåmodell 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 INF5040 Frank Eliassen 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 INF5040 Frank Eliassen 18 INF5040 H2006 9

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 INF5040 Frank Eliassen 19 INF5040 H2006 10