Distribuerte objekter og objekt-basert mellomvare

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

Download "Distribuerte objekter og objekt-basert mellomvare"

Transkript

1 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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF5040 foreleser: Olav Lysne Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare 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

Detaljer

CORBA Objektmodell (Java RMI)

CORBA Objektmodell (Java RMI) CORBA Objektmodell (Java RMI) IN-ODP høst 2002 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 OMG & CORBA Object Mangement Group (OMG): non-profit organisasjon med over 800 medlemsorganisasjoner

Detaljer

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

CORBA & Java RMI & J2EE & CORBA CCM OMG & CORBA CORBA & Java RMI & J2EE & CORBA CCM IN-ODP høst 2001 foreleser: Frank Eliassen Frank Eliassen, Simula RL &Ifi/UiO 1 OMG & CORBA Object Mangement Group (OMG): non-profit organisasjon med over 800 medlemsorganisasjoner

Detaljer

RM-ODP og Multimedia middleware (M3W):

RM-ODP og Multimedia middleware (M3W): RM-ODP og Multimedia middleware (M3W): INF 5040 høst 2003 foreleser: Frank Eliassen SRL & Ifi/UiO 1 Litteratur Gordon Blair, Jean-Bernard Stefani, Distributed Processing and Multimedia, Addison-Wesley

Detaljer

Objekt-interaksjon i objektbasert mellomvare:

Objekt-interaksjon i objektbasert mellomvare: Objekt-interaksjon i objektbasert mellomvare: Fjerne metodekall (RMI) Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan CORBA objektmodell Java RMI Prinsipper for realisering av fjernmetodekall

Detaljer

Objekt-interaksjon. INF 5040 høst 2006

Objekt-interaksjon. INF 5040 høst 2006 Objekt-interaksjon Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan Prinsipper for realisering av fjernmetodekall (RMI) Objekt-tjenere CORBA RMI Java RMI Fler-trådede objekt-tjenere Frank

Detaljer

Objekt-interaksjon i objektbasert mellomvare:

Objekt-interaksjon i objektbasert mellomvare: Objekt-interaksjon i objektbasert mellomvare: Fjerne metodekall (RMI) Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan!CORBA objektmodell!java RMI!Prinsipper for realisering av fjernmetodekall

Detaljer

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

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:

Detaljer

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

Objekt-interaksjon. Plan. INF 5040 høst 2005 Objekt-interaksjon Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan!Prinsipper for realisering av fjernmetodekall (RMI)!Objekt-tjenere!CORBA RMI!Java RMI!Fler-trådede objekt-tjenere Frank

Detaljer

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

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Antagelser og forutsetninger Implementasjonseksemplet kompileres og kjøres på Java SDK 1.4.2 Dokumentasjon

Detaljer

Time-Independent Invocation(TII) and Interoperable Routing

Time-Independent Invocation(TII) and Interoperable Routing Time-Independent Invocation(TII) and Interoperable Routing Presentert av: Henning Kulander Eivind Mork Erlend Garberg Introduksjon TII er en teknikk som muliggjør at forespørsler kan leve i nettet uten

Detaljer

Kapittel 7: Mer om arv

Kapittel 7: Mer om arv Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,

Detaljer

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold Java RMI Markus Foss Hans-Gunnar Vold Introduksjon Java Remote Method Invocation Tillater metodekall mellom Java virituelle maskiner Introdusert i Java 1.02 Javas svar på RPC, men er objekt orientert,

Detaljer

CORBA Component Model (CCM)

CORBA Component Model (CCM) CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva

Detaljer

Utfordringer til mellomvare: Multimedia

Utfordringer til mellomvare: Multimedia Utfordringer til mellomvare: Multimedia INF 5040 høst 2003 foreleser: Frank Eliassen SRL & Ifi/UiO 1 Utfording fra multimedia til middleware Støtte for multimedia Programmeringsmodell og systemstøtte for

Detaljer

Introduksjon til Distribuerte System (DS)

Introduksjon til Distribuerte System (DS) 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

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive

Detaljer

Gruppe 11. Frank Petter Larsen Vegard Dehlen

Gruppe 11. Frank Petter Larsen Vegard Dehlen qoskets Gruppe 11 Frank Petter Larsen Vegard Dehlen Problematikk Dagens mellomvare for objektbaserte distribuerte systemer har ikke innebygget støtte for å spesifisere, overvåke og kontrollere tjenestekvalitet

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Abstrakte klasser og grensesnitt, redefinering av metoder Java-programmering Arv og bruk av abstrakte klasser Eclipse Undersøke instanser i Eclipse 1 Dagens

Detaljer

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

DCOM. 21. oktober Mai et al. Hva er egentlig en komponent? DCOM 21. oktober 2004 Mai et al. Komponent Hva er egentlig en komponent? En komponent er et programvareobjekt, ment å samvirke med andre komponenter, og tilbyr en gitt funksjonalitet. En komponent har

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

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

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

Utfordringer til mellomvare: Multimedia

Utfordringer til mellomvare: Multimedia Utfordringer til mellomvare: Multimedia IN-ODP høst 2001 foreleser: Frank Eliassen SRL & Ifi/UiO 1 Utfording fra multimedia til middleware ÿ Støtte for multimedia ÿ Programmeringsmodell og systemstøtte

Detaljer

Web Services. Olav Lysne

Web Services. Olav Lysne Web Services Olav Lysne Til nå har dere hørt om Mellomvare for objektbasert kommunikasjon brukes vanligvis i anvendelser som er innen én organisasjon, eller innen et tett konsortium av samarbeidende organisasjoner

Detaljer

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

Oppsummering og pensumkommentarer. INF5040 høst forelesere: Frank Eliassen, Olav Lysne. Innhold og mål Oppsummering og pensumkommentarer INF5040 høst 2006 forelesere: Frank Eliassen, Olav Lysne INF-5040 H06 1 Innhold og mål q Innsikt i og kunnskap om prinsipper og praksis for konstruksjon av distribuerte

Detaljer

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

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter DCOM Distributed Component Object Model Almir Delkic og Frank Jensen Institutt for Informatikk, Universitetet i Oslo, oktober 2003 Introduksjon Utvikling av distribuerte applikasjoner Utvidelse av COM

Detaljer

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

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

Komponentbasert Systemutvikling - Hva, Hvorfor, Hvordan

Komponentbasert Systemutvikling - Hva, Hvorfor, Hvordan Komponentbasert Systemutvikling - Hva, Hvorfor, Hvordan Øyvind Matheson Wergeland Master student 23. 1. 2004 Typiske bruksområder for komponenter Sammensatte dokumenter Microsoft OLE og ActiveX (COM) Distribuerte

Detaljer

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

Presentasjon av: Erling Ringen Elvsrud Nils Fredrik Gjerull Håkon Torjus Bommen SUMO Presentasjon av: Erling Ringen Elvsrud Nils Fredrik Gjerull Håkon Torjus Bommen Innhold Hva er SUMO Programmeringsmodellen Anvendelser Sammenligning med CORBA Systemstøtte Oppsummering Hva er SUMO

Detaljer

2. HVA ER EN KOMPONENT?

2. HVA ER EN KOMPONENT? Innholdsfortegnelse 1. INTRODUKSJON 3 2. HVA ER EN KOMPONENT? 3 2.1. Litt av historien 3 2.2. UML og komponenter 5 2.3. Noen definisjoner 5 REFERANSER 7 1. Introduksjon Komponenter og komponentbasert systemutvikling

Detaljer

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

Jini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon Jini Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong Definisjon Et distribuert system bygd opp som et forbund av brukergrupper og ressurser som brukerne trenger, der ressursene tilbyr brukere

Detaljer

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

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

Introduksjon til Distribuerte System (DS)

Introduksjon til Distribuerte System (DS) Introduksjon til Distribuerte System (DS) IN-ODP høst 2001 foreleser: Frank Eliassen Ifi/UiO 1 Hva er et distribuert system? Definisjon [Coulouris] Et distribuert system består av maskinvare- og programvarekomponenter

Detaljer

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

INF3110 Programmeringsspråk. Velkommen til kurset INF 3110/4110. Programmeringsspråk 1/24 Velkommen til kurset INF 3110/4110 Programmeringsspråk 1/24 Forelesning 1 20.8.2003 Først det praktiske Foreleser: Roger Antonsen E-post: rantonse@ifi.uio.no Kontor: rom 3403 Treffetid: etter avtale Undervisning

Detaljer

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

INF 3110/4110. Velkommen til kurset. Programmeringsspråk. Først det praktiske Velkommen til kurset INF 3110/4110 Programmeringsspråk 1/24 Først det praktiske Foreleser: Roger Antonsen E-post: rantonse@ifi.uio.no Kontor: rom 3403 Treffetid: etter avtale Undervisning Forelesninger:

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I 5/22/2006 1 Framgangsmåte for automatisk å lage en scanner Beskriv de forskjellige token-klassene som regulære uttrykk Eller litt mer fleksibelt, som regulære definisjoner

Detaljer

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

Oppsummering og pensumkommentarer. INF5040 høst forelesere: Frank Eliassen, Olav Lysne. Innhold og mål Oppsummering og pensumkommentarer INF5040 høst 2005 forelesere: Frank Eliassen, Olav Lysne INF-5040 H05 1 Innhold og mål! Innsikt i og kunnskap om prinsipper og praksis for konstruksjon av distribuerte

Detaljer

Anatomien til en kompilator - I

Anatomien til en kompilator - I Anatomien til en kompilator - I program Symboltabell tekst tokens syntaks-tre beriket syntaks-tre Finne struktur i programmet OK i henhold til grammatikk? Preprocessor Makroer Betinget kompilering Filer

Detaljer

INF1010 - Seminaroppgaver til uke 3

INF1010 - Seminaroppgaver til uke 3 INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar

Detaljer

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

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015 Beskrivelse av programmeringsspråket Compila15 INF5110 - Kompilatorteknikk Våren 2015 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Compila15. Den

Detaljer

Distributed object architecture

Distributed object architecture Forelesning IMT2243 6. April 2010 Tema: forts. arkitektur og design av programvare Prosjektstatus Programvarearkitektur Oppsummering fra før påske Distribuerte objektarkitektur MDA - Model Driven Architecture

Detaljer

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

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 Objektorienterte databaser Trond Aalberg 1 Introduksjon Dette essayet tar for seg objektorienterte databaser. Innledningsvis gies en beskrivelse av objektorientering generelt (kap. 2), og deretter diskuteres

Detaljer

Velkommen til. INF våren 2016

Velkommen til. INF våren 2016 Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Tirsdag 2. juni 2009, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under

Detaljer

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

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

INF Obligatorisk innlevering 5

INF Obligatorisk innlevering 5 INF1000 - Obligatorisk innlevering 5 Frist: 2. Oktober kl 22:00 Temaer denne uka: Klasser og objekter. I denne obligen skal du som nytt tema jobbe med klasser og objekter, i tillegg til å bruke det du

Detaljer

Kapittel 5: Objektkommunikasjon

Kapittel 5: Objektkommunikasjon Kapittel 5: Objektkommunikasjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

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

Etter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering Etter uke 6 skal du Kjenne til motivasjonen for objektorientert programmering Introduksjon til objektorientert programmering INF1001 Høst 2016 Forstå hva en klasse er, og forskjellen på klasse og objekt

Detaljer

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

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4» < T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

INF1000: Forelesning 7. Konstruktører Static

INF1000: Forelesning 7. Konstruktører Static INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter

Detaljer

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

Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO Objektdatabaser ODMGs objektmodell og ODL (Object Definition Language) g Institutt for Informatikk INF3100 24.2.2009 Ellen Munthe-Kaas 1 Databaser vs objektorientering Det er en inherent

Detaljer

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret

Detaljer

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

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider

Detaljer

Deling av data Transaksjoner

Deling av data Transaksjoner Deling av data Transaksjoner INF5040 Foreleser: Olav Lysne SRL & Ifi/UiO 1 Introduksjon Tjenere kan tilby samtidig aksess fra klienter til de objekter/data tjenerne innkapsler o fler-trådede tjenere =>

Detaljer

Deling av data Transaksjoner

Deling av data Transaksjoner Deling av data Transaksjoner INF5040 Foreleser: Olav Lysne SRL & Ifi/UiO 1 Introduksjon Tjenere kan tilby samtidig aksess fra klienter til de objekter/data tjenerne innkapsler o fler-trådede tjenere =>

Detaljer

Runtime-omgivelser Kap 7 - I

Runtime-omgivelser Kap 7 - I Runtime-omgivelser Kap 7 - I Generelt Språk som bare trenger statiske omgivelser Språk som trenger stakk-orienterte omgivelser Språk som trenger mer generelle omgivelser Vel så riktig å si at forskjellige

Detaljer

Modelerings-prinsipper SOSI Ledning

Modelerings-prinsipper SOSI Ledning Modelerings-prinsipper SOSI Ledning Skrevet av Steinar Høseggen og Erling Onstein, august 2012 Hensikt 2 Oversikt over SOSI Ledning 2 Kortbeskrivelse av Kjernemodellen 2 Innledning 2 Objekttyper 3 Egenskaper

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

Runtimesystemer Kap 7 - I

Runtimesystemer Kap 7 - I Runtimesystemer Kap 7 - I Språk som bare trenger statisk allokering Språk som trenger stakk-orientert allokering Språk som trenger mer generell allokering Forskjellige slags begreper i et gitt språk krever

Detaljer

INF2810: Funksjonell Programmering. Tilstand og verditilordning

INF2810: Funksjonell Programmering. Tilstand og verditilordning INF2810: Funksjonell Programmering Tilstand og verditilordning Stephan Oepen Universitetet i Oslo 8. mars 2016 Forrige gang 2 I dag 3 Vi blar om til kapittel 3 i SICP. Tilstand og verditilordning. Destruktive

Detaljer

INF Innleveringsoppgave 6

INF Innleveringsoppgave 6 INF1010 - Innleveringsoppgave 6 Frist: Onsdag 16. mars, 10:00 Maks 6 poeng Om obligatorisk oppgave 4, 6 og 7 i INF1010, våren 2016: "Leger og resepter" Du skal jobbe med en problemstilling omkring leger

Detaljer

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

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Objektorientert modellering

Detaljer

INF2810: Funksjonell Programmering. Tilstand og verditilordning

INF2810: Funksjonell Programmering. Tilstand og verditilordning INF2810: Funksjonell Programmering Tilstand og verditilordning Stephan Oepen Universitetet i Oslo 2. mars 2017 Forrige gang 2 I dag 3 Vi blar om til kapittel 3 i SICP. Tilstand og verditilordning. Destruktive

Detaljer

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

UNIVERSITETET I OSLO. Objektdatabaser. ODMGs objektmodell og ODL (Object Definition Language) UNIVERSITETET I OSLO Objektdatabaser ODMGs objektmodell og ODL (Object Definition Language) INF3100 19.2.2008 Ragnar Normann Institutt for Informatikk 1 Databaser vs objektorientering Det er en inherent

Detaljer

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

Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars Dagens tema: Typer og typesjekking Kap 6.4: Typesjekking Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 19. og 23. mars 2015 Dagens tema: Typer og typesjekking Hva er nå egentlig en «type» i et programmeringsspråk? Hvordan

Detaljer

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

Naming og trading INF5040. Foreleser: Olav Lysne. Ifi/UiO 1 Naming og trading INF5040 Foreleser: Olav Lysne Ifi/UiO 1 To design spørsmål Navngiving ressursdeling krever globale lokasjonsuavhengige navn på ressurser og objekter hvordan konstruere navngivingsskjema

Detaljer

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

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

Mer om programmering av aggregeringer

Mer om programmering av aggregeringer Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering og søking LC9D Videregående programmering Semesterplan:

Detaljer

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

Objekt med Java. Harald Yndestad Høgskolen i Ålesund Objekt med Java Harald Yndestad Høgskolen i Ålesund Dagens tema Objektorientert programmering Abstraksjon Modul-konseptet Arv Livssyklus 26.10.2002 HiÅ/KBS2001/Yndetad/JavaObjekt 2 26.10.2002 HiÅ/KBS2001/Yndetad/JavaObjekt

Detaljer

INF våren 2017

INF våren 2017 INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer

Detaljer

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

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

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

Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet Slide 2 v Factory Method Pattern Class creational

Detaljer

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

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten Interface, Abstract Class... i-120 : H-98 2a. Abstraksjon i JAVA: 1 Det finnes ingenting som kan gjøres med interface i-120 : H-98 2a. Abstraksjon i JAVA: 2 som kan gjøres med bruk av unntak i-120 : H-98

Detaljer

INF1010 våren 2014. Arv og subklasser - del 2

INF1010 våren 2014. Arv og subklasser - del 2 INF1010 våren 2014 Onsdag 19. februar Arv og subklasser - del 2 Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi Mer om arv / interface Mer om pekertilordninger

Detaljer

JAVA Oppsummering for IS-102. Even Åby Larsen

JAVA Oppsummering for IS-102. Even Åby Larsen JAVA Oppsummering for IS-102 Even Åby Larsen even.larsen@hia.no 26. april 2010 Innhold 1 Innledning 3 2 Hva er et Java program 4 2.1 Kjøring av java programmer................. 4 3 Grammatikk for Java

Detaljer

Scientific applications in distributed systems

Scientific applications in distributed systems Scientific applications in distributed systems Kenneth Pedersen Kjetil Pedersen 11. desember 2001 http://faerun.dhs.org/project/ Vårt fokus Løyse numeriske problem ved hjelp av distribuerte system. Numeriske

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

INF2810: Funksjonell Programmering. Tilstand og verditilordning

INF2810: Funksjonell Programmering. Tilstand og verditilordning INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Tilstand og verditilordning Erik Velldal Universitetet i Oslo 26. februar 2015 Forrige gang 2 I dag Vi blar om til kapittel 3 i SICP.

Detaljer

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

Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009 Generiske mekanismer i statisk typede programmeringsspråk INF5110 April, 2009 Torsdag 30. april (skattedagen!): Mer om generering av maskinkode (Ferdig oppkopiert hefte deles ut) Tirsdag 5. mai: Mer av

Detaljer

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Bruk av grensesnitt og implementasjoner i Collection-klasser Java-prog, kap. 14-16 i Big Java Og side 990-997 i Appendix D Collection-rammeverket og iterasjon

Detaljer

IN våren 2018 Tirsdag 16. januar

IN våren 2018 Tirsdag 16. januar IN1010 - våren 2018 Tirsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel

Detaljer

Programvarekomponenter og distribuerte system. INF 5040 høst foreleser: Frank Eliassen

Programvarekomponenter og distribuerte system. INF 5040 høst foreleser: Frank Eliassen Programvarekomponenter og distribuerte system INF 5040 høst 2006 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Litteratur Szyperski, C., Gruntz, D., Murer, S., Component Software eyond Object-

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Stein Krogdahl INF-5110, 28 april 2005 Temaer: Hva er generiske mekanismer, og hvorfor har vi dem? Hovedtyper av generiske mekanismer Hovedstrategier

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 9. juni 2011 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

Detaljer

Eksamen. Objektorientert Programmering IGR 1372

Eksamen. Objektorientert Programmering IGR 1372 + JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV

Detaljer

INF Oblig 2 semantikksjekk og kodegenerering

INF Oblig 2 semantikksjekk og kodegenerering INF5110 - Oblig 2 semantikksjekk og kodegenerering Magnus Haugom Christensen Instituttet for Informatikk Universitetet i Oslo 27. Mars - 2012 Oversikt Informasjon Oppgaven Semantikksjekk Kodegenerering

Detaljer

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

Forelesningsnotat. Kapittel 9 Designing and Constructing Software Code related Issues. Design og utvikling av programvare Forelesningsnotat Kapittel 9 Designing and Constructing Software Code related Issues 1 Design og utvikling av programvare Grunnleggende metoder (Kap 9.1) Utvikling av kode (Kap 9.2) Programmeringsspråk

Detaljer

Kap3: Klassemodellering

Kap3: Klassemodellering Kap3: Klassemodellering I dag: Litt repetisjon fra sist (innledende om klassemodellen) Deretter egentlig litt mer repetisjon, men nå fra intro- Felt-/Instansvariabler og kurset i Java: Klasser og Objekt,

Detaljer

Jini. Overblikk. Gruppe 1: Odd-Wiking Rahlff, Arnor Solberg og Finn Haukebøe

Jini. Overblikk. Gruppe 1: Odd-Wiking Rahlff, Arnor Solberg og Finn Haukebøe Jini Gruppe 1: Odd-Wiking Rahlff, Arnor Solberg og Finn Haukebøe Overblikk Hvorfor Jini? (Motivasjon) Kort historikk Hva er Jini? Arkitektur Essensielle Egenskaper Styrker & Svakheter Jini vs. CORBA Jini

Detaljer

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

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00 Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG

Detaljer

Klasser. Webprogrammering høsten 2015. Objekter. Eksempelklasser og -objekter. 2 of 11 14.10.2015 07:56. 1 of 11 14.10.2015 07:56

Klasser. Webprogrammering høsten 2015. Objekter. Eksempelklasser og -objekter. 2 of 11 14.10.2015 07:56. 1 of 11 14.10.2015 07:56 [Kurssidene] [ ABI - fagsider bibin ] Objekter Webprogrammering høsten 2015 Et objekt er en "ting" som representeres i et program. Representasjonen tar for seg attributter og oppførsel Attributter (egenskaper)

Detaljer

Introduksjon til fagfeltet

Introduksjon til fagfeltet LC238D http://www.aitel.hist.no/fag/_dmdb/ Introduksjon til fagfeltet Datafiler side 2 Databasesystemer side 3-5 Databasearkitektur ANSI/SPARC side 6-7 Datamodeller side 8 Flerbruker databasesystem side

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Omgivelsesmodeller og destruktive listeoperasjoner Stephan Oepen & Erik Velldal Universitetet i Oslo 15. mars 2013 Tema 2 Forrige uke Representasjon av mengder Sorterte

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 6. juni 2013 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

Runtimesystemer Kap 7 - I

Runtimesystemer Kap 7 - I Runtimesystemer Kap 7 - I Generell lagerorganisering (7.1) Språk som bare trenger statisk allokering (7.2) Språk som trenger stakk-orientert allokering (7.3) Språk som trenger mer generell allokering (7.4)

Detaljer