Distribuerte Objekter Våren 2011 Professor II Eric Jul Forelesning F2 –
Velkommen • Eric Jul, Professor II, til daglig: Bell Labs, Dublin, Ireland • Tor Ivar Johansen, hjelpelærer Hvem var her IKKE første gang?
Kontakt • • Haster? SMS til • Skypeid: ericbjul – efter aftale. • Tor Ivar: kan hjelpe med det praktiske • Tor Ivar e-post:
Hvad • Kurs om Distribuerete Objekter
Hvornår Starter i dag og er på følgende mandage: • 24/1 – 2011 • 7/2 – 2011 • 21/2 – 2011 • 21/3 – 2011 • 18/4 – 2011 Klokken 9.15 – 12 og 13 – 16 I alt 5 x 2 x 3 timer = 30 timer
Hvor? Her!?!? Men se websiderne. Øvelsestimer: hver onsdag med Tor Ivar
Hvad Principper om distribuerete objekter. Anvender et gennemgående språk: Emerald. VIGTIGT: Emerald er et værktøj, et eksempel – Emerald er i sig selv IKKE formålet med kurs.
Materiale • Rapporter • Artikler
Kontakt Eric: Haster det, så: SMS til Skype: ericbjul
Kurs opbygning VIGTIGT: learning-by-doing Fem moduler: • forelæsninger • øvelser • en større opgave
Eksamen Nogle obligatoriske opgaver, de sidste to med karakter, som tæller 1/3. Sidste 1/3 er skriftlig eksamen
Modul 1: Emerald basics • Emeralds objektbegreb • constructors, classes • Interfaces/types • Immutable types Assignment: Install Emerald from SourceForge
Modul 1: Opgaver • Installer Emerald på din maskine • get language report and Emerald article “General Purpose Lanuage” • Skriv og kør “Hello, world” i Emerald • Skriv et Sieve program: Et objekt som accepterer det første tal, som det får, herefter vil det videresende til en kopi af sig selv, de tal, der IKKE har det første tal som divisor. Send tallene fra 2 til 100 igennem sien!
Modul 1: Opgaver Hvor mange har: – installeret Emerald på egen maskine? – kørt Hello World? – gennemført alle opgaverne? – været til øvelserne onsdag?
Modul 2: Concurrency, distribution • Concurrency • Monitors • Distribution model • Distribution primitives Obligatorisk opgave: Små programmeringsopgaver om concurrency
Modul 3: Distribution Grundliggende principper for distribution : • Remote References • RPC – remote procedure call • Implementation of RPC • Location concept • Simple mobility • Asynchronous operations in Emerald • Immutability and its uses
Modul 4: Advanced distribution Avancerede distribution: • Call-back concept: Node State Changes • Emerald Virtual Machine • Secure hash functions • Peer-to-peer • Napster/Nopester • Implementation of process mobility • Distributed Garbage Collection En større programmeringsopgave
Modul 5: Større opgave • Heterogeneous mobility • Design Patterns: Proxy, Observer • Keys • Replication • Take-home exam • Planetlab En større programmeringsopgave
Denne gang: • Concurrency in Emerald • Principles for concurrency • Distribution
Opgavesæt II • Kør hi – ho • Programmer en barrier i Emerald, test med program der har 4 processer, som venter på barrieren gentagne gange, skrive ud hver gang de prøver at passerer og igen når de passerer. Endnu en process som udløser barrieren 3 gange. Kør programmet. • Programmer en producer-consumer-med-buffer i Emerald. Send tallene 1-30 igennem bufferen, hvor producer og consumer hhv. hver 3. og 5. gang venter i 100 ms (brug delay). Lad bufferen udskrive, når den indsætter/fjerner et element. Brug array. Max 2 elementer. Afleveringsfrist, kl norsk tid (22.59 UTC) Sendes til Tor Ivar.