Loading...
Please wait, while we are loading the content...
Similar Documents
A relational calculus for the design of distributed algorithms
| Content Provider | Semantic Scholar |
|---|---|
| Author | Rietman, F. J. |
| Copyright Year | 1995 |
| Abstract | In deze moderne tijd wordt het kunnen localiseren en verkrijgen van de juiste informatie steeds belangrijker. Wil je goede service leveren of de concurrent aftroeven, dan zul je slimmer moeten zijn, en zorgen dat je de belangrijkste informatie (snel) tot je beschik- king hebt. Met name de elektronische informatieverwerking neemt een belangrijke plaats in; denk hierbij aan reserveringssystemen voor vliegtuigen en aan nieuwsnetwerken. Dit zijn grote, vaak wereldwijde netwerken waar honderden of zelfs duizenden computers aan gekoppeld zijn. Deze computers verzenden, ontvangen en presenteren boodschappen. Om het informatieverkeer over zo'n netwerk ordelijk te laten verlopen zijn er regels nodig: het schaarse produkt (toegang tot de diensten van het netwerk) moet `eerlijk' verdeeld worden. Het mag bijvoorbeeld niet mogelijk zijn dat dezelfde vliegtuigstoel gelijktijdig vanuit twee plaatsen wordt gereserveerd. Maar er mag ook geen \na u { na u" situatie ontstaan waarbij twee klanten van het netwerk eindeloos op elkaar blijven wachten. Verder zal er gezorgd moeten worden voor adequate oplossingen wanneer er problemen optreden in het netwerk, zoals het uitvallen van een verbinding. Daarom zal een netwerk, ongeacht de grootte, moeten werken volgens regels welke zijn vastgelegd in computerprogramma's: zogenaamde netwerkprotocollen. Omdat we te maken hebben met meerdere computers in een netwerk, zijn deze protocollen verdeeld (gedistribueerd) over de verschillende compu- ters, en spreken we van gedistribueerde protocollen. De doelstelling van het onderzoek dat in dit proefschrift wordt gepresenteerd is het ontwikkelen van een rekenmethode (calculus) om dit soort gedistribueerde protocollen op elegante en correcte wijze te kunnen ontwerpen. Waarom een formele rekenmethode? Het menselijk verstand is in het algemeen niet in staat om de complexiteit die ontstaat bij het ontwerpen van programma's te overzien. Daarom moeten er hulpmiddelen geleverd worden om programma's te kunnen ontwerpen; in het bijzonder als het gedistribueerde programma's betreft. Deze hulpmiddelen kunnen de vorm krijgen van een verzameling rekenregels om uit een formele beschrijving (specicatie) een programma af te kunnen leiden. Een complete verzameling van rekenregels en heuristieken vormt de uiteindelijke calculus. Een groot probleem is dat voor het berekenen van een gedistribueerd programma vaak rekening moet worden gehouden met veel verschillende situaties. De reden is simpel: een groot systeem van computers die met elkaar willen communiceren kent vele verschillende toestanden. Om het hoofd te kunnen bieden aan al die situaties is het belangrijk dat irrelevante details van het systeem achterwege gelaten worden. Daarom willen we niet redeneren over het ontvangen of verzenden van een boodschap, zelfs niet over het ontvangen of verzenden van een complete stroom boodschappen, maar over het complete gedrag van een programma in elke willekeurige omgeving. De omgeving wordt bepaald door de andere programma's in het netwerk. Vaak kan het gedrag van een programma vastgelegd worden in een verzameling rekenregels door de interactie met andere (bekende) programma's te geven. Een simpel voorbeeld daarvan is het karakteriseren van het programma I dat iedere boodschap a binnengekomen op tijdstip t meteen weer doorstuurt: Voor alle boodschappen a en tijdstippen t: I:at =at Hier worden dus afzonderlijke boodschappen genoemd. Beter zou het zijn (maar nog niet goed genoeg) om I te karakteriseren door te zeggen dat iedere complete invoerstroom f van boodschappen ook de uitvoer is: Voor alle stromen van boodschappen f: I:f =f In dit proefschrift wordt I vastgelegd door het gedrag te geven in iedere willekeurige om- geving: Voor alle programma's P: I P = P en P = P I Deze laatste formulering geeft aan dat I het gedrag van ieder ander willekeurig programma P ongemoeid laat. Omdat het gedrag van een groot computernetwerk niet volledig te controleren is (bijvoor- beeld onvoorspelbaar menselijk gedrag kan een grote rol spelen), moeten we in de calculus rekening kunnen houden met onbepaald gedrag (non-determinisme). Een van de belang- rijkste onbepaalde factoren is de tijdsduur: vaak is wel duidelijk welke boodschap verstuurd is over een verbinding, maar is het onbepaald hoe lang die boodschap er over zal doen. Een andere onbepaalde factor is dat op de meest willekeurige momenten plotseling een fout ergens in het systeem kan optreden. Om over dit soort onbepaald gedrag te kunnen rede- neren, is de calculus in dit proefschrift gebouwd op een zogenaamde relationele calculus. Deze relationele calculus kan goed overweg met non-determinisme. Kort overzicht Het proefschrift bestaat uit vijf delen. Elk deel breidt de calculus verder uit. Tot slot wordt de calculus gebruikt voor het ontwerpen van een simpel, gedistribueerd protocol voor het correct verzenden door een zender van boodschappen over onbetrouwbare verbindingen naar een ontvanger. In Deel I wordt eerst aangegeven hoe we gedistribueerde systemen willen beschrijven als invoer/uitvoer-relaties. Vervolgens wordt de relationele calculus gepresenteerd. In deze relationele calculus wordt, ter verkrijging van een relationele calculus voor het ontwer- pen van gedistribueerde systemen, meer structuur aangebracht door de constructie van de feedback loop te deni?eren. Er wordt aangetoond dat feedback een aantal `ongezonde' eigenschappen heeft. Een groot deel van het proefschrift (in het bijzonder Deel III) zal zich wijden aan het oplossen van deze problemen. Tenslotte wordt het model van de relationele calculus, waarin veel voorbereidende berekeningen zullen worden uitgevoerd, vastgelegd. De elementen van dit model, de zogenaamde chronicles, beschrijven complete stromen boodschappen. Deel II introduceert twee constructies om chronicles te kunnen manipuleren. De functie postcompose kan worden gebruikt om functies die werken op afzonderlijke boodschappen om te zetten in processen die werken op complete stromen van boodschappen. Zo kunnen we met de optelling + voor natuurlijke getallen een eenvoudig proces beschrijven dat een complete stroom van paren van natuurlijke getallen omzet in de stroom van sommen van de paren. Enkele basisprocessen worden met behulp van postcompose gedenieerd en onderzocht. De functie precompose kan veranderingen aanbrengen in de tijd. Omdat we in de calculus niet willen redeneren over exacte tijd of tijdsduur, is de functie precompose geen onderdeel van de uiteindelijke calculus, maar slechts een hulpmiddel om bijvoorbeeld een (onbepaalde) vertraging te beschrijven. In Deel I zijn verschillende ongezonde eigenschappen van met name de feedback gesig- naleerd. Deel III presenteert daarom een nieuwe eigenschap, genaamd causaliteit. Een proces dat deze eigenschap heeft is gezond in de zin dat er geen boodschappen (van een bepaald type) geweigerd kunnen worden, en dat huidige uitvoer niet afhangt van huidige of toekomstige invoer. Dit zijn realistische eigenschappen die niet noodzakelijk gelden voor ieder proces dat uitgedrukt kan worden in de calculus. Causale processen worden uitvoerig onderzocht, met name in combinatie met feedback. Het blijkt dat causale processen in een feedback loop weer een causaal proces opleveren. Deel IV denieert en onderzoekt, in het model, drie basisprocessen die verschuivingen kunnen aanbrengen in de tijd. Twee processen drukken de vertraging van een verbinding uit. Een derde proces heeft de mogelijkheid om de doorvoer van boodschappen af te kap- pen. Daarna volgen denities van nieuwe processen in termen van de drie basisprocessen. Het belangrijkste nieuwe proces is de buer, welke gebruikt kan worden voor asynchrone communicatie. Tenslotte wordt al het werk van de eerste vier delen samengebracht in de a eiding van een eenvoudig communicatieprotocol. Daartoe wordt in Deel V eerst getoond hoe de alge- mene theorie kan worden ge?nstantieerd tot een meer gespecialiseerde theorie. De daarop volgende a eiding van het communicatieprotocol kenmerkt zich door het abstracte niveau waarop de verschillende bewijsverplichtingen worden afgehandeld: er wordt slechts gerede- neerd over processen, niet over (stromen van) boodschappen. |
| File Format | PDF HTM / HTML |
| Alternate Webpage(s) | http://exordio.qfb.umich.mx/archivos%20PDF%20de%20trabajo%20UMSNH/Aphilosofia/biomecanica/tesis/Distributed%20Algorithms.pdf |
| Language | English |
| Access Restriction | Open |
| Content Type | Text |
| Resource Type | Article |