RTP slide 1Programmatuur voor real-time controleYolande Berbers oefenzittingen n enkel voor de studenten die dit vak als keuzevak kiezen n nu donderdag,

Slides:



Advertisements
Verwante presentaties
De elektronische verzamelaanvraag Ruben Fontaine Markt- en Inkomensbeheer – dienst Aangiftes.
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
28 juni 2009 Paëllanamiddag 1 Paëllanamiddag 28 juni 2009 Voorbereiding vrijdagavond (Loopt automatisch - 7 seconden)
Personalisatie van de Archis website Naam: Sing Hsu Student nr: Datum: 24 Juni 2004.
Deltion College Engels C1 Gesprekken voeren [Edu/002]/ subvaardigheid lezen thema: Order, order…. can-do : kan een bijeenkomst voorzitten © Anne Beeker.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Ronde (Sport & Spel) Quiz Night !
Copyright © 2008 Tele Atlas. All rights reserved. Zet uw Business Data op de kaart: Locaties in eTOM ®
Een optimale benutting van vierkante meters Breda, 6 juni 2007.
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
F. Rubben NI Lookout 1 06/RIS/05 - NI Lookout VTI Brugge F. Rubben, ing.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Slide 1Systeem-geïntegreerde programmatuurYolande Berbers SGP Systeem-geïntegreerde Programmatuur Marc Gobin (&Yolande Berbers) Departement Computerwetenschappen.
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Oefeningen F-toetsen ANOVA.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
Verdieping Programmeren in Java - deel 1 college 6 mei 2001.
TUDelft Knowledge Based Systems Group Zuidplantsoen BZ Delft, The Netherlands Caspar Treijtel Multi-agent Stratego.
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
Frank Stalpers en Ad Baars
Real-Time Systems (RTSYST) Week IPC inter process communication Shared variabele based (H5) Message based (H6) Kan ook gebruikt worden in systemen.
Real-Time Systems (RTSYST) Week Priority inheritance voorbeeld taakprioexecutionrelease time d4EEQVE4 c3EVVE2 b2EE2 a1EQQQQE0.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur laag-niveau programmeren uit hoofdstuk 15 van Alan Burns, Andy Wellings,
13 maart 2014 Bodegraven 1. 1Korinthe Want gelijk het lichaam één is en vele leden heeft, en al de leden van het lichaam, hoe vele ook, een lichaam.
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Geometrie en topologie Rob Kromwijk, 26 juli 2012.
De eerste presentatie voor Nederlands
User management voor ondernemingen en organisaties
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
Event Handling in Embedded Systems.  Wat is een event?  Welke events zijn het meest “time-critical”?  Welke toestand wordt door de CPU opgeslagen?
CSA, week 31 CSA week 3. CSA, week 32 Terugblik opdracht (client)  Stub creëren uitgaande van IOR ( string_to_object ) of stub creëren uitgaande van.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 5.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 10: atomaire acties, gelijktijdige processen en betrouwbaarheid.
Logistics: a driver for innovation Low costs High value Flexibility now and later Superior technology Timwood - T > No transport - I > No Inventory - M.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 6: uitzonderingen en de behandeling van uitzonderingen.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 11: controle van de hulpmiddelen.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 4: het beheersen van complexiteit: programming in the.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 12: mogelijkheden om met tijd om te gaan.
45 levenslessen Klikken voor vervolg Muziek: snowdream.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Hoofdstuk 6 – Objectgeoriënteerd Programmeren: Overerving
CONTROLESTRUCTUREN (DEEL 1)
Hoofdstuk 3 - Conditionele logica
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 7: concurrent programming.
tircms02-p les 1 Operating Systems practicum
1 XSLT processing & control Datamodellering 2006.
Deltion College Engels B1 En Spreken/Presentaties [Edu/006] Thema: “The radio station“ can-do : kan een publiek toespreken, kan verzonnen gebeurtenissen.
Deltion College Engels C1 Schrijven [Edu/006] thema: Dear editor,
Deltion College Engels B2 Lezen [Edu/003] thema: Topical News Lessons: The Onestop Magazine can-do: kan artikelen en rapporten begrijpen die gaan over.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 8: synchronisatie en communicatie met gedeelde variabelen.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Deltion College Engels B1 Spreken [Edu/001] thema: song texts can-do : kan een onderwerp dat mij interesseert op een redelijk vlotte manier beschrijven.
The Research Process: the first steps to start your reseach project. Graduation Preparation
Today: Chapter 2 Discuss SO 2 What to study for your test?
Wat gaan we doen? Herhaling ARM assembler instructies
Software Development fundamentals
Transcript van de presentatie:

RTP slide 1Programmatuur voor real-time controleYolande Berbers oefenzittingen n enkel voor de studenten die dit vak als keuzevak kiezen n nu donderdag, 14 maart, 14-16u30, 200S n donderdag 21 maart, 14-16u30, 200S n donderdag 18 april, 14-16u30, 200S.01.05

slide 2Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 9: synchronisatie en communicatie met behulp van boodschappen

RTP slide 3Programmatuur voor real-time controleYolande Berbers overzicht n boodschappen-systemen variëren volgens u synchronisatiemodel u procesbenoeming u structuur van boodschappen n het boodschappenmodel in Ada u rendez-vous u selectief wachten n boodschappen in POSIX n Remote Procedure Call u uitgebreider dan in het boek u Java: RMI (Remote Method Invocation)

RTP slide 4Programmatuur voor real-time controleYolande Berbers synchronisatiemodel n impliciete synchronisatie u ontvanger kan niets ontvangen voordat zender iets stuurt u bij communicatie via gedeeld geheugen is dat niet zo l lezer weet niet wanneer schrijver iets geschreven heeft l hier is expliciete synchronisatie nodig n verschillende semantieken mogelijk voor ontvangen u blokkerend als geen boodschap klaar staat (meest voorkomend) u niet blokkerend als er geen boodschap klaar staat (óf wordt niet aangeboden, óf enkel als speciaal geval)

RTP slide 5Programmatuur voor real-time controleYolande Berbers synchronisatiemodel n verschillende semantieken mogelijk voor zenden u asynchroon l zend keert terug direct nadat opdracht geregistreerd is l zend keert terug nadat opdracht geregistreerd is en de inhoud van de boodschap gekopieerd is naar een interne buffer in het systeem (komt meest voor bij asynchroon) l zend keert terug na boodschap ontvangen is op andere machine u synchroon (rendez-vous) l zend keert terug nadat de boodschap ontvangen is door het ontvangend proces l zend keert terug nadat de boodschap verwerkt is door het ontvangend proces u niet-locale invocatie (wordt door sommigen ook synchroon genoemd) l zend keer terug met het antwoord van de ontvanger

RTP slide 6Programmatuur voor real-time controleYolande Berbers synchronisatiemodel n zowel een synchrone als een asynchrone boodschap kan een antwoord verwachten: u bij niet-locale invocatie is het antwoord beschikbaar bij het terugkeren van het verzendingsprimitief u bij asynchrone communicatie kan men extra primitieven voorzien waarbij men kan testen (en eventueel blokkeren) op de aankomst van een antwoord n synchrone comm: gemakkelijker te programmeren dan asynchrone n asynchrone is soms noodzakelijk (denk aan dienstverleners) n asynchrone werking wordt soms bekomen door voor een (serie van) boodschap-versturen/antwoord-ontvangen combinatie een aparte controledraad op te starten dat onafhankelijk van andere controledraden kan uitvoeren

RTP slide 7Programmatuur voor real-time controleYolande Berbers synchronisatiemodel n vergelijking u asynchrone communicatie: versturen van een brief met de post (of met ) u synchrone communicatie: telefoneren

RTP slide 8Programmatuur voor real-time controleYolande Berbers synchronisatiemodel n gebruik van asynchrone communicatie om synchrone communicatie na te bootsend P1P2 asyn_send (message)wait (message) wait (acknowledgement)asyn_send (acknowledgement) n gebruik van asynchrone communicatie om niet-locale invocatie na te bootsend P1P2 asyn_send (message)wait (message) wait (reply)..... construct reply..... asyn_send (reply)

RTP slide 9Programmatuur voor real-time controleYolande Berbers synchronisatiemodel n asynchrone communicatie u voordelen l flexibeler (men kan er synchrone communicatie mee nabootsen, dus lijkt synchrone communicatie niet echt nodig) u nadelen l veel systeembuffers zijn nodig om nog niet gelezen boodschappen bij te houden (ideaal oneindig veel) l meestal wordt een asynchrone boodschap toch gecombineerd met een ontvangst van een ack l bij synchrone communicatie nagebootst met asynchrone primitieven zijn in totaal meer primitieven nodig: programma wordt complexer l moeilijk om correctheid van een volledig systeem te bewijzen

RTP slide 10Programmatuur voor real-time controleYolande Berbers synchronisatiemodel n gebruik van synchrone communicatie om asynchrone communicatie na te bootsend u dit is ook mogelijk u vraagt het creëren van bufferprocessen u kan kostelijk zijn

RTP slide 11Programmatuur voor real-time controleYolande Berbers procesbenoeming n directe benoeming u proces dat zendt bepaalt naar welk proces gezonden wordt u gebruikt hiervoor een of andere procesidentificatie n indirecte benoeming u proces dat zendt bepaalt een tussenliggende entiteit (poort, kanaal, mailbox) u is algemener dan procesidentificatie l een proces kan ontvangen van meerdere mailboxen (zonder dat de zender daarvan bewust is) l een mailbox kan verhuizen van proces zonder dat zender dat hoeft te merken l een mailbox is een soort interface naar een deel van een programma send to

RTP slide 12Programmatuur voor real-time controleYolande Berbers procesbenoeming n symmetrische benoeming u ontvangend proces aangeeft van wie/wat ze een boodschap wenst te ontvangen n asymmetrische benoeming u ontvangend proces wenst te ontvangen van om het even wie/wat send to wait from wait

RTP slide 13Programmatuur voor real-time controleYolande Berbers procesbenoeming n verdere mogelijkheden bij indirecte benoeming u meerdere-naar-één verzendingsmodel l past goed bij cliënt/server model l kan eigenlijk ook bij directe benoeming u één-naar-meerdere verzendingsmodel l multicast en broadcast l interessant als meerdere servers gelijke diensten aanbieden u meerdere-naar-meerdere verzendingsmodel l meerdere cliënten en meerdere servers

RTP slide 14Programmatuur voor real-time controleYolande Berbers structuur van boodschappen n veel variatie n soms mogen pointers niet doorgegeven worden (die hebben uiteindelijk maar zin binnen een adresruimte) u maar dit wordt momenteel meer en meer opgelost door een tussenliggende laag (zie Remote Procedure Call) n altijd nodig: u conversie van gegevens naar de voorstelling van het ontvangend proces (en dus de ontvangende machine) u getallen (integer, real, …: niet op dezelfde manier voorgesteld) u little-endian (2143) en big-endian (1234) architecturen 1 234

RTP slide 15Programmatuur voor real-time controleYolande Berbers het boodschappenmodel in Ada n belangrijkste characteristieken u synchronisatiemodel:niet-locale invocatie u procesbenoeming:direct, asymmetrisch u structuur van boodschappen:vrij, zoals parameters n terminologie u boodschap ontvangen l declaratie via entry l ontvangen via accept u boodschap versturen l geen nieuwe term of constructie l analoog aan oproepen van procedure of protected entry

RTP slide 16Programmatuur voor real-time controleYolande Berbers het boodschappenmodel in Ada Task Time_Server is entry Read_Time (Now: out Time); entry Set_Time (New_Time: Time); end Time_Server ; n declaratie van ontvangst van boodschap: entry n parameters = inhoud boodschappen (aanvraag & antwoord) Time_Server.Read_Time(T) -- met T van type Time n zenden van een boodschap = oproepen van een taak = vragen om een rendez-vous (dit is blokkerend) l opgeroepen taak wordt benoemd: directe benoeming l oproepende taak zal wachten op resultaat: niet-locale invocatie

RTP slide 17Programmatuur voor real-time controleYolande Berbers het boodschappenmodel in Ada accept Read_Time (Now: out Time) do Now := Clock; end Read_Time; n ontvangen van boodschap = aanvaarden van rendez-vous (dit is blokkerend) n accept-bevel l moet in body van taak voorkomen (niet in opgeroepen proc.) l mag om het even waar in body van taak staan (bv midden in lus) n accept geeft niet aan met wie men een rendez-vous aanvaardt: benoeming is dus asymmetrisch n antwoord vertrekt bij het einde van accept-blok (invocatie)

procedure Test; N: constant Integer := 1000; Task T1 is entry Exchange (I: Integer; J: out Integer) end T1; Task body T1 is A, B: Integer; begin for K in 1.. N loop -- produce A accept Exchange (I: Integer; J: out Integer) do J := A;B := I; end Exchange; -- consume B end loop; end T1; rendez-vous: voorbeeld Task body T2 is C, D: Integer; begin for K in 1.. N loop -- produce C T1.Exchange (C, D); -- consume D end loop; end T2; begin null; end Test;

RTP slide 19Programmatuur voor real-time controleYolande Berbers uitzonderingen tijdens rendez-vous n opvangen van uitzondering in blok van de accept-code u uitzondering wordt opgevangen: geen probleem u uitzondering wordt niet opgevangen: l accept eindigt onmiddellijk l de uitzondering propageert s in de omsluitende blok van de accept-code s in het blok van de zender

-- bij ontvanger (server) task File_Handler is entry Open (F: File_Type);..... end File_Handler ; Task body File_Handler is..... begin -- zie rechts end File_Handler ; -- bij zender (client) begin File_Handler.Open(File); exception when File_Not_Exist => File_Handler.Create(File); File_Handler.Open(File); end; loop begin..... accept Open(F: File_Type) do loop begin Device_Open(F); return; exception when Off_Line => Boot_Device; end; end loop; end Open;.... exception when File_Not_Exist => null; end; end loop; rendez-vous en exceptions: vb

RTP slide 21Programmatuur voor real-time controleYolande Berbers selectief wachten n situatie: ontvanger wenst te wachten op een boodschap uit een groep van mogelijkheden u elke mogelijkheid kan voorafgegaan worden door wachter-test l sleutelwoord when u wanneer meerdere mogelijkheden open zijn (hetzij omdat de wachter-test true is, hetzij omdat er geen wachter test is) l run-time systeem kiest één uit op niet-deterministisch manier l vgl: if x = y then m := y (dit is wel deterministisch)

RTP slide 22Programmatuur voor real-time controleYolande Berbers selectief wachten n constructie in Ada: u sleutelwoord select (te vergelijken met een case) u 4 mogelijkheden: l accept l else-alternatief s wordt gekozen alleen indien geen enkel ander alternatief onmiddellijk uitvoerbaar is l delay-alternatief s hierbij wordt een tijdje gewacht (zie hoofdstuk 12) l terminate s wordt gekozen alleen indien geen enkele andere taak nog een rendez-vous kan doen s in dat geval wordt de taak van de select geëindigd

selectief wachten: voorbeeld task Telephone_Operator is entry Directory_Enq (P : in Name; Num: out Number); entry Report_Fault (Num: Number); private entry Allocate_Repair_Worker (Num: out Number); end Telephone_Operator ; Task body Telephone_Operator is Workers : constant Integer := 10; Failed : Number; task type Repair_Worker; Work_Force : array (1.. Workers) of Repair_Workers; task body Repair_Worker is.....;..... begin -- zie volgende slide end Telephone_Operator ;

loop-- prepare to accept next request select accept Directory_Enq (P : in Name; Num: out Number) do..... end Directory_Enquiry; or accept Report_Fault (Num: Number) do..... end Report_Fault; -- change Unallocated_Faults or when Unallocated_Faults => accept Allocate_Repair_Worker (Num: out Number) do..... end Allocate_Repair_Worker ; or terminate; end select; end loop; selectief wachten: voorbeeld

RTP slide 25Programmatuur voor real-time controleYolande Berbers boodschappenmodel bij POSIX n belangrijkste characteristieken u synchronisatiemodel:asynchroon u procesbenoeming:indirect, symmetrisch u structuur van boodschappen:vrij n terminologie u boodschap wordt verstuurd en ontvangen van message queue l kan vele lezers en vele schrijvers hebben l bij de creatie kan men o.a. ook opgeven: lengte queue, maximale grootte van een individuele boodschap, protectie l in het normaal geval zal een proces wachten als de message queue vol is (bij zenden) of leeg is (bij ontvangen) l proces kan ook verwittigd worden van boodschap via signal

RTP slide 26Programmatuur voor real-time controleYolande Berbers boodschappenmodel bij POSIX n een queue krijgt een naam bij creatie (analoog aan bestandsnaam) n een queue heeft vele attributen (zoals lengte queue, maximale grootte van individuele boodschap, protectie) mqd_t mq_open (const char *mq_name, int oflags, mode_t mode, struct mq_attr *mq_attr); /* open/create the named message queue */ int mq_setattr (mqd_t mq, const struct mq_attr *new_attrs, struct mq_attr *old_attrs); /* set the current attributes associated with mq */ int mq_close (mqd_t mq); int mq_unlink (const char *mq_name);

RTP slide 27Programmatuur voor real-time controleYolande Berbers boodschappenmodel bij POSIX n zenden en ontvangen van boodschappen ssize_t mq_receive (mad_t mq, char *msq_buffer, size_t buflen, unsigned int *msgprio); /* get the next message in the queue and store it in the area pointed at by msq_buffer; the actual size of the message is returned */ int mq_send (mqd_t mq, const char *msq, size_t msglen, unsigned int msgprio); /* send the message pointed at by msq */

RTP slide 28Programmatuur voor real-time controleYolande Berbers Remote procedure call (RPC) n mechanisme aangeboden door bibliotheken u meestal niet door een taal ondersteund u wordt gebruikt in Java RMI (Remote Method Invocation) n biedt de semantiek van niet-locale invocatie n boodschappen zijn niet echt zichtbaar (zoals in Ada) n er bestaan meerdere RPC pakketten in combinatie met een taal, o.a. u DCE: distributed computing environment (met taal C) u DCOM van Microsoft (gebaseerd op DCE, met meerdere talen)

RTP slide 29Programmatuur voor real-time controleYolande Berbers Remote procedure call (RPC) n explicit messages through send and receive primitives u low level communication u far from centralized programming paradigm u involves many details, difficult to program correctly n alternative: remote procedure call u idea is simple u allows a process on machine A to call a procedure on machine B u information is transported in parameters u no message transport is visible

RTP slide 30Programmatuur voor real-time controleYolande Berbers Remote procedure call (RPC) n problems to be solved u calling and called procedure execute in different address spaces u machines may not be identical: implications for the passing of parameters and results u both machines can crash u....

RTP slide 31Programmatuur voor real-time controleYolande Berbers Conventional procedure calling n scenario of conventional procedure calling u caller pushes parameters onto the stack u return address is put onto stack u called procedure gets control u called procedure performs work u return value is put in register or on stack u control is transferred to caller (return address is popped from stack) u caller removes the parameters from the stack

RTP slide 32Programmatuur voor real-time controleYolande Berbers Conventional procedure calling local variables for main parameter 1 parameter 2 return addr local var. for procedure local variables for main sp

RTP slide 33Programmatuur voor real-time controleYolande Berbers Conventional procedure calling n types of parameters u by value l a simple copy of the variable is put on the stack l the called procedure may modify is, but changes do not affect original value u by reference l reference (address) to variable is put on the stack l if the called procedure changes the parameter, the original value changes n code of called procedure u at compile time: linker inserts all necessary procedure (possibly from libraries) in object module

RTP slide 34Programmatuur voor real-time controleYolande Berbers RPC: scenario n client does not call server procedure, but client stub u client stub uses the conventional calling sequence u packs the parameters into a message u sends the message to the server u waits for the result client call return pack param. unpack result stub system server call return unpack param. pack result stub system

RTP slide 35Programmatuur voor real-time controleYolande Berbers RPC: scenario n on server side a server stub receives the message u server stub is part of the server u is usually blocked, waiting for incoming messages u unpacks the parameters from the message u calls the server procedure in the conventional way client call return pack param. unpack result stub system server call return unpack param. pack result stub system

RTP slide 36Programmatuur voor real-time controleYolande Berbers RPC: scenario n server procedure gets control u feels like being called directly by the client u performs its work u returns the result to the caller (the server stub) in the conventional way client call return pack param. unpack result stub system server call return unpack param. pack result stub system

RTP slide 37Programmatuur voor real-time controleYolande Berbers RPC: scenario n server stub gets control back u packs the results in a message u sends the message to the client stub u calls receive, waiting for next messages from a client stub client call return pack param. unpack result stub system server call return unpack param. pack result stub system

RTP slide 38Programmatuur voor real-time controleYolande Berbers RPC: scenario n client stub receives the message u unpacks the message u makes necessary copies to the caller u returns in the usual way client call return pack param. unpack result stub system server call return unpack param. pack result stub system

RTP slide 39Programmatuur voor real-time controleYolande Berbers RPC: scenario n caller gets control u feels like a return from a conventional procedure call client call return pack param. unpack result stub system server call return unpack param. pack result stub system

RTP slide 40Programmatuur voor real-time controleYolande Berbers RPC: scenario n RPC is transparent u the calling procedure is not aware that the called procedure is executing on a different machine u and vice versa n client and server can be designed in the traditional way n parts of existing programs can be used n ‘easy’ reconversion of programmers

RTP slide 41Programmatuur voor real-time controleYolande Berbers Java RMI: Architecture overview Transport Layer Stub generated by rmic implements java.rmi.Remote extends java.rmi.UnicastRemoteObject ClientServer Skeleton Remote Reference Layer

RTP slide 42Programmatuur voor real-time controleYolande Berbers Java RMI: Naming and Registry n How to obtain a remote reference to a server ? u Name service: registry l Maintains Name-Reference bindings Can be started by rmiregistry command or in application n java.rmi.Naming u Remote Server objects can bind a name to a reference u Client objects can retrieve a reference by giving the name

RTP slide 43Programmatuur voor real-time controleYolande Berbers Java RMI: Client/Server objects n How to create a remote server object u Create a remote interface must inherit from java.rmi.Remote every method: throw java.rmi.RemoteException u Create an implementation u Generate stubs and skeletons u Generate a server l Start a remote object l Register the object with the Registry n Create a Client u Obtain a reference to a remote object

RTP slide 44Programmatuur voor real-time controleYolande Berbers Java RMI: Parameter Handling n Non remote calls u primitive data types: by value u Object data types: by reference n Remote calls u primitive data types: by value u Object data types: by value (must be serializable)

RTP slide 45Programmatuur voor real-time controleYolande Berbers RPC: problemen n zie hoofdstuk 14