Vergelijkbare documenten
Inhoud 1 Inleiding Achtergrond : : : : : : : : : : : : : : : : : : : : : : : : : : : : Probleemstelling : : : : : : : : : : : : : : : : :

Het besturingssysteem of operating system, vaak afgekort tot OS is verantwoordelijk voor de communicatie van de software met de hardware.

Er zijn verschillende OS bv: Microsoft Windows Apple Macintosh Linux-versies/distributies zoals Ubuntu en Knoppix

Hoofdstuk 2. - is verantwoordelijk voor de communicatie van de software met de hardware.

Nederlandse samenvatting (Dutch summary)

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Belangrijkste ideeën/concepten uit OS, incl. proces

TALIS. Basis systeemeisen. Versie 3 Approved CREATED WITH

Multi-user module 5.5

In deze les staan we stil bij verschillende soorten software:

Module 4 Hoofdstuk 1. Programmeertalen

Voltijdse dagopleiding PC technicus

Software Mobiliteit. UAMS - 6 maart Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel

The OSI Reference Model

BiSL Scenario s. Informatiebeleid. Bijlage I Best practice Beoordelen exploitatiekwaliteit. Hans van der Linden, Remko van der Pols

Betekent SOA het einde van BI?

Industrial Internet of Things

ECDL. Module 1. Basisbegrippen en informatietechnologie. ECDL, Versie 4.0 (NL) Nummer: 312 ( ) The Courseware Company

Tim Mallezie Architectuur van besturingssystemen: Vraag A2.

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder

HOOFDSTUK Systeembeheerprogramma s Werking en functies van besturingssystemen. Module 3 Software. Informatie

MODULE I. Informatica. Inhoudsopgave. Inhoudsopgave. Hoofdstuk 3 De andere kant van ICT 50. Hoofdstuk 1 Het belang van informatie 18

Docentenhandleiding Blok I3+I4 (H5+H6) Besturen en Regelen met de PC Reinder Jongsma

OnGuard ICMS Credit Management Software

CTI Installatie & Configuratie

1 Inleiding probleembeschrijving

Flex_Rooster WERKBOEK. INTRODUCTIE iseries. Dit werkboek is eigendom van ICS opleidingen en mag niet worden meegenomen.

Programmeren in C++ (deel 1)

Zelftest Informatica-terminologie

Hoe zet u virtualisatie slim in bij forensische onderzoeksomgevingen?

From High-Level Language to language of the hardware

Beginnen met businessdesk

TALIS. Systeemeisen Basis. Versie 3.0 Approved CREATED WITH

Software. Opdrachten - Deel 1. Naam: Klas: 2015 versie:concept-3.4.2

Module I - Informatica

Beknopte dienstbeschrijving beveiligen van Webapplicaties m.b.v. digitale certificaten en PKI

High Performance Computing

Databases - Inleiding

TALIS. Basis systeemeisen. Versie 3.4 Approved CREATED WITH

Rijkspas: veiligheid en flexibiliteit. ID-ware, C. Borgmann, MSc Heerhugowaard 24 november 2011

De ontwikkelaar heeft het recht om af te zien van verdere ontwikkeling en/of ondersteuning van dit pakket.

28 september 2017 PON Outsourcing Kenniscongres

TALIS. Systeemeisen. Versie 2.0 CREATED WITH

LESBRIEF HARDWARE. OPDRACHTEN Hierin vind je alle opdrachten die bij de module Hardware horen. Klas 2

BeCloud. Belgacom. Cloud. Services.

DS Software Security Solution R

Met een snelkoppeling kun je een map of bestand openen of een programma opstarten.

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

Computerarchitectuur en netwerken Toets 1 4 okt

Software kan worden ingedeeld in verschillende manieren. Bijvoorbeeld:

Linux voor S/390 (IBM z-series)


Het juiste moment, de juiste mensen,

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

BiSL Scenario s. Informatiebeleid. Bijlage E Best practice Verzamelen objectieve gegevens. Hans van der Linden, Remko van der Pols

Webwinkel in het D-cluster van de opleiding Logistiek

Je kunt de presentatie na afloop van elke les downloaden. Ga naar : Kies voor de map Systeemontwikkeling

Functieomschrijving: hoofd systeemanalist/programmeur

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/

Waarmaken van Leibniz s droom

MBO ICT Opleidingen. Producten en prijzen Voor kwalificaties en keuzedelen. MBO ICT Opleidingen

Windows Xp professional op de werkstations en Windows 2000 op de Server

Voorkennis: C, basiskennis microprocessoren (bij voorkeur ARM7 processor)

Voordat er optimaal gebruik gemaakt kan worden gemaakt van Magister 5 via het web, kan deze FAQ mogelijk van pas komen.

Easy Business Tools - Multi-user module

Client Management en Mobile Printing Solutions

CV CygnusZ Pagina ${page}

Windows XP Migratie opties. Bart van Dijk

BELANGRIJK! LEES DEZE OVEREENKOMST ALVORENS DE SOFTWARE TE INSTALLEREN!

ITP 3 VOORBEELDEN PROBLEEMSTELLING HOOFD-CENTRALEVRAAG DEELVRAGEN ONDERZOEKSOPZET METHODEN

Vraag Ondersteuning door Virtuele Experts

Voorlopig onderzoeksplan Bachelorscriptie CleanDoc-

Ronde Tafel Hergebruik en uitwisseling van software bij het Rijk'

PVGE presentatie. Van XP naar Windows 7

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

Samenvatting Hoofdstuk 1

Software Reverse Engineering. Jacco Krijnen

tot oplevering (thuis e maken met ondersteuning via forum) Cursus Moodle, boek, internet

PC-Club Okra Regio Gent


UBC op Microsoft Windows 64-bits

Niveau 2 Medewerker ICT

SCYLLATIME D O C U M E N T A T I E. Hassinkweg BV Hengelo tel. (074) fax (074) info@mic-o-data.nl

Projectorganisatie Marc Martojo Esther krijnen Rodger Buyvoets Danilo Meulens

Decentraliseer en Beheers? Dick Epema

Nachtdiensten bij de politie en mogelijke verkeersgevolgen

Client Management en Universal Printing Solutions

Beknopte Installatiehandleiding

Comakerships & praktijkopdrachten Windesheim Flevoland Economie & Management, ICT en Bouwkunde

Opleidingsgebied ICT. 2 e beoordeling: Eindbeoordeling:

Uitstroom + Crebonummer Applicatie- en mediaontwikkelaar; Crebonummer Niveau Niveau 4

SolidWorks QuickStart Algemene informatie

Handleiding. han4me.han.nl m.han.nl/rooster. Datum: 23 september 2011 Versie 1.1

De SolidWorks QuickStart Module

HBO5 Informatica Netwerkbeheer (90 studiepunten) Het schematiseren van probleemstellingen. met zelfgedefinieerde klassen werken.

Academie voor NLP Coachen een Vak De professionele leergang tot coach

TradePoint Systems NCTS Oplossingen

Installatie Remote Backup

Transcriptie:

Vereenvoudigingvangedistribueerde IntegratievanSunRPCenC Applicatieontwikkeling DoctoraalscriptievanAskePlaat 24juni1992 ansic prp? rpcgen? Studienummer53697 FaculteitderEconomischeWetenschappen ErasmusUniversiteitRotterdam Ir.J.vandenBerg VakgroepInformatica Docent:

Inhoud 1Inleiding 1.2Probleemstelling::::::::::::::::::::::::: 1.1Achtergrond:::::::::::::::::::::::::::: 6 1.5Wijzevanaanpak::::::::::::::::::::::::: 1.4Legitimering:::::::::::::::::::::::::::: 1.3Doelstelling:::::::::::::::::::::::::::: 8 7 2Gedistribueerdheid 2.1Ontstaansgeschiedenis::::::::::::::::::::::10 1.6Opbouwscriptie::::::::::::::::::::::::: 109 2.1.4Redenengedistribueerdeapplicaties::::::::::13 2.1.3Gedistribueerd::::::::::::::::::::::13 2.1.2Gedecentraliseerd:::::::::::::::::::::12 2.1.1Gecentraliseerd::::::::::::::::::::::10 2.3Gedistribueerdecomputersystemen:::::::::::::::21 2.2Begrippenkader::::::::::::::::::::::::::16 2.3.1Typologiehardware:::::::::::::::::::21 2.2.2Gerelateerdetermen:::::::::::::::::::18 2.2.1Virtuelemachines::::::::::::::::::::16 2.3.4Beheersenvancomplexiteit:::::::::::::::28 2.3.2Fysiek/logisch::::::::::::::::::::::23 2.3.5Transparantie:::::::::::::::::::::::31 2.3.3Operatingsystem:::::::::::::::::::::24 3Applicatieontwikkeling 3.1Soortentoepassingen:::::::::::::::::::::::34 3.1.2Fouttolerantie:::::::::::::::::::::::36 3.1.1Parallellisme:::::::::::::::::::::::35 34 3.2Programmeertaal:::::::::::::::::::::::::36 3.3Beoordelingscriteria:::::::::::::::::::::::38 3.2.3Gedistribueerdetaal:::::::::::::::::::37 3.2.2Uitgebreidesequentieletaal:::::::::::::::37 3.2.1Standaardsequentieletaal::::::::::::::::36 3.3.2Interproces-communicatie(2)::::::::::::::42 3.3.3Fouttolerantie(3):::::::::::::::::::::49 3.3.1Parallellisme(1):::::::::::::::::::::38 1

Inhoud 3.4RemoteProcedureCall:::::::::::::::::::::56 3.3.4Integratie(4):::::::::::::::::::::::52 3.3.5Beschrijvingaspectenomgeving:::::::::::::52 3.4.3Structuurvaneenimplementatie::::::::::::71 3.4.2Speciekerpccriteria::::::::::::::::::59 3.4.1Algemenekenmerken:::::::::::::::::::56 4BeoordelingSunomgeving 3.4.5Nadelenvanhetrpcmodel:::::::::::::::75 3.4.4Client/server:::::::::::::::::::::::73 4.1Beschrijving::::::::::::::::::::::::::::78 4.1.1Gedistribueerdsysteem:::::::::::::::::78 4.1.2Applicatieontwikkeling::::::::::::::::::79 4.2Beoordelingontwikkelomgeving:::::::::::::::::83 4.2.3Samenvatting:::::::::::::::::::::::92 4.2.2rpc::::::::::::::::::::::::::::87 4.2.1Gedistribueerdheid::::::::::::::::::::84 5Verbeteringen 5.1ProblemenSun::::::::::::::::::::::::::95 5.1.1rpcgen-stubs:::::::::::::::::::::::96 5.1.2Plaatsbepalingvanprp:::::::::::::::::97 5.2Opbouwvanprp:::::::::::::::::::::::::99 5.1.3Outputles::::::::::::::::::::::::98 5.3Ontwerpproblemen::::::::::::::::::::::::104 5.2.1Systeemontwerpprp:::::::::::::::::::99 5.3.1Beperkingentaal:::::::::::::::::::::105 5.2.3Structuurprp::::::::::::::::::::::102 5.2.2Functiesprp-laag::::::::::::::::::::101 5.4Detailsprp::::::::::::::::::::::::::::110 5.4.1Analyseprototypes::::::::::::::::::::110 5.3.3Nieuwetaalelementen::::::::::::::::::109 5.3.2Ontwerpkeuzes::::::::::::::::::::::107 6BeoordelingPRP 5.4.2Parameteroverdracht:::::::::::::::::::111 6.1Kritiek:::::::::::::::::::::::::::::::114 5.4.3rpcgendatatypes::::::::::::::::::::111 6.2Beoordelingmodel::::::::::::::::::::::::116 6.2.1Gedistribueerdheid::::::::::::::::::::116 114 6.3Implementatieprototype:::::::::::::::::::::122 6.3.1Ervaringen::::::::::::::::::::::::123 6.2.2rpc::::::::::::::::::::::::::::118 6.3.2Uitbreidingprp-prototype::::::::::::::::125 6.2.3Samenvatting:::::::::::::::::::::::122 7Bevindingen 2 Vereenvoudigingvangedistribueerdeapplicatieontwikkeling 129

8Samenvatting Inhoud AHandleidingprototype A.1Eenvoorbeeld:::::::::::::::::::::::::::138 138 134 A.1.3prp(2)::::::::::::::::::::::::::139 A.1.4rpcgenendeCcompiler(3&4):::::::::::141 A.1.2Deapplicatie(1):::::::::::::::::::::139 A.1.1Decompileergang:::::::::::::::::::::138 A.2Cextensies::::::::::::::::::::::::::::143 A.1.5Opstartenvandemodules(5)::::::::::::::142 A.3Werkingstubs:::::::::::::::::::::::::::146 A.2.1Verschilprp-CenansiC::::::::::::::::143 A.4Problemen:::::::::::::::::::::::::::::152 A.3.1Schema'sprp-stubs:::::::::::::::::::147 A.2.2Parametertypen:::::::::::::::::::::144 A.4.3Afsluiting:::::::::::::::::::::::::155 A.4.2Tekortkomingenvanhetprp-prototype::::::::154 A.4.1Cineengedistribueerdeomgeving:::::::::::152 CVoorbeeldprogrammaPRP BVoorbeeldprogrammaRPCGEN C.1prp-applicatiecode::::::::::::::::::::::::167 166 157 Literatuur C.2prp-output::::::::::::::::::::::::::::171 183 Vereenvoudigingvangedistribueerdeapplicatieontwikkeling 3

Lijstvanguren 2.1Lagenmodel[Tanenbaum1]:::::::::::::::::::16 2.2Applicatie-versussysteemsoftware[VanRenesse]:::::::19 2.3Programma's,modulesenprocedures::::::::::::::20 3.1Plaatsvanrpc::::::::::::::::::::::::::56 2.4Welofnietgedistribueerd[Coulouris]::::::::::::::22 2.5Complexiteitensemantiekvanprimitieven::::::::::30 3.2Side-eects::::::::::::::::::::::::::::63 4.2rpcgenles:::::::::::::::::::::::::::82 4.1Sunrpcomgeving::::::::::::::::::::::::80 3.3Stubs[Birrell]:::::::::::::::::::::::::::72 5.2prples::::::::::::::::::::::::::::::100 5.4Structuurvanhetprpprogramma:::::::::::::::103 5.3Inputenoutputvanprp:::::::::::::::::::::101 5.1prpinderpcomgeving:::::::::::::::::::::98 C.1prples::::::::::::::::::::::::::::::166 4

Voorwoord gegevenwerkcollege`netwerken'hebbenzijeengedistribueerdprogramma team'(zie[chin]indeliteratuurlijst).voorhetdoorjanvandenberg geschrevenvoordesunomgeving.zijhebbendebetekenisvan`matige Hetonderwerpvandezescriptieisvoortgekomenuithetwerkvanhet`Net- transparantie'zeerconcreetmoetenervaren.metnamededoorrpcgen gegenereerdestubsblekeningewikkeldomtegebruiken,enaanleidingte geventotveelfrustratiesbijhetdebuggen. Ikwilhenhierbedankenvoorhundoorzettingsvermogenenvoorhetmet mijdelenvanhunervaringen. Hunervaringenvormdendeaanzetvoorhetonderwerpvandezescriptie. heletrajectheefthijsteedskritischdevorderingengevolgd.bijdekeuze vanhetonderwerp,hetbesprekenvanhetprogramma,enmetnamebij hettheoretischgedeelteheefthij,metdehemeigenpositieveinstelling,de JanvandenBergwasdebegeleidervanditonderzoek.Tijdenshet telkenshetbelangvanpreciezeformuleringenenduidelijkeonderbouwingen ontwikkelingvanhetwerknauwgezetenmetinteressebegeleid.hijheeft plaatshartelijkbedanken. draad,envooralvoorzijnpositieve,kritischeinstellingwilikhemopdeze vanuitsprakenbenadrukt. Voorzijninzicht,kennisvandetails,hetinhetooghoudenvanderode mantiekvanc.hiervoor envoorzijnenthousiasme wil hetgebiedvanparallellisme,operatingsystemsendese- enkleineverbeteringenindetekstgezorgd,metnameop DoorzijncommentaarheeftAriedeBruinvoorgrote ikhemgraagbedanken. m opmerkingen,enhetonweerlegbarelogischinzichtnevenstaandeguurgraagbedanken. Entenslottewilikvooralleliefde,steun,slimmee b e AskePlaat 24juni1992. 3051RKRotterdam email:plaat@theory.lcs.mit.edu WillemvanHillegaersbergstraat34 5

Hoofdstuk1 Inleiding Indezescriptiewordtonderzochthoehetschrijvenvantoepassingsprogramma'svoorgedistribueerdesystemenzogoedmogelijkondersteundkan deverbeteringvaneenaantalzwakkepunteniseenprogrammageschreven gramma's.vervolgensisdesunomgevingopdezecriteriabeoordeeld.voor worden.hiervooriseenliteratuurstudieverrichtnaardeeisendiemen datbeoogthetschrijvenvangedistribueerdeprogramma'stevereenvoudigenindithoofdstukwordtdestructuurvandescriptiebesproken. kanstellenaaneenapplicatieontwikkelomgevingvoorgedistribueerdepro- naargedistribueerdecomputersystemen.ditzijnsystemendiezijnopgebouwduitmeerdereprocessorenmetgescheidengeheugendiedoormiddel 1.1 Sindsdeopkomstvancomputernetwerkenwordterveelonderzoekgedaan Achtergrond delenoverdebeschikbareprocessoren.doorprogramma'sopverschillende systemsen-talenishetmogelijkdetotalewerklastvaneensysteemtever- soortsystemenvaaktoegepast.metbehulpvangedistribueerdeoperating vaneennetwerkzijnverbonden.declient/server-architectuurwordtbijdit eengroteverwerkingskracht[bal]. processorenmetlokaalgeheugenuittevoerenheefthetsysteemalsgeheel tieprogramma'skunnensnelleren/ofbetrouwbaarderwordendoorzege- distribueerduittevoeren.hiertoemoetenapplicatieontwikkelaarsinstaat trouwbaarheidovermeerdereprocessorenverdeeldworden.voorbeelden hiervan,zoalsleservers,zijnin[coulouris]beschreven.ookveelapplica- Sommigesysteemprogramma'skunnenomredenenvansnelheidenbekelgereedschappenontwikkeldworden.Dezegereedschappenoftoolszijn architecturen.terondersteuninghiervanmoetenadequatesysteemontwik- wordengesteldomhunprogramma'sgeschikttemakenvoorgedistribueerde hetonderwerpvandezescriptie. applicatiesvoorgedistribueerdecomputersystemeninhetalge- Hetonderwerpvandezescriptieishoemendeontwikkelingvan 6

Probleemstelling meenendesunomgevinginhetbijzonderadequaatkanonder-1.gewikkelderdanvoorsequentieleomgevingen(ziex1.4).sunbiedtdeappli- Hetschrijvenvanprogramma'sisvoorgedistribueerdeomgevingenveelin- Probleemstelling 1.2steunen. Indezescriptiewordensterkeenzwakkepuntenvandezehulpmiddelen catieprogrammeurhulpmiddelenomhetontwikkelprocestevereenvoudigen. gedenticeerd,enerwordeneenaantalverbeteringenvoorgesteld. Deprobleemstellingluidtalsvolgt: Aanwelkecriteriamoeteengoedeontwikkelomgevingvoorgedistribueerdeapplicatiesvoldoen? OpwelkewijzekanhetprogrammerenvoordeSunomgevingvereenvoudigdworden? InhoeverrevoldoetdeSunontwikkelomgevingaandezecriteria? Decriteriawordeninhoofdstuk3besproken.DestructuurvandeSun ontwikkelomgevingwordtinx4.1behandeld.opbasisvandebeoordeling vanx4.2bestaatdewensomdesunontwikkelomgevingteverbeteren. antwoordopdelaatstevraagvandeprobleemstellingtevinden. decriteriauitx3.3enx3.4.2.indathoofdstuk,eninhoofdstuk7,ishet hoofdstuk6vindtdebeoordelingvandeverbeteringenplaatsopbasisvan Hoofdstuk5beschrijftdeverbeteringen,endeimplementatieervan.In men.hetdoelvandezescriptieistweeledig:teneerstehetkunnenbeoor- 1.3 Dezescriptieonderzoektapplicatieontwikkelingvoorgedistribueerdesyste- Doelstelling Omtekunnenbeoordelenofditdoelbereiktwordt,wordteenlijstcriteriaaangelegd.Vervolgenswordteenconcreteomgevingbekeken:deSutenvan)deSunomgeving.Hetdoelvanapplicatieontwikkelomgevingenis hetschrijvenvantoepassingsprogramma'szoeenvoudigmogelijktemaken. delenvanontwikkelomgevingen,ententweedehetverbeterenvan(aspec- doelomschrijvingvoordeverbeteringervannaarvoren. callzoveelmogelijkopdievaneenlokaleprocedureaanroeplatenlijken. omgeving.uitdebeoordelingvandezeomgevingkomteengedetailleerde DitisindeSunomgevingdesyntaxvandetaalC.Hetdoelwordtaldus: Dezeomschrijvingis:desyntaxensemantiekvaneenremoteprocedure Vereenvoudigingvangedistribueerdeapplicatieontwikkeling Steleenlijstcriteriaopvoordebeoordelingvangedistribueerdeapplicatieontwikkelomgevingen. 7

1.5BeoordeeldeSunomgeving;steleenlijstmetsterkeenzwakkepunten Inleiding OnderzoekhoedeSunomgevingveranderdzoukunnenwordenzodat op. komenwordteenkadervoordebeoordelingvanapplicatieontwikkelomgevingenaangelegd.ditgebeurtinhoofdstuk2en3. Omtotdezegedetailleerdebeschrijvingvandegewensteverbeteringente standaardcprogramma'salsinputgeaccepteerdworden. 1.4 Nadathetonderzoekophetgebiedvangedistribueerdesystemenzichvoornamelijkopoperatingsystemsgerichtheeftkomtersteedsmeeraandacht Legitimering [Bal].Hetdoelvanditonderzoekishetvereenvoudigenvanapplicatieontwikkelingvooreengedistribueerdcomputersysteem.Erwordencriteria voordeondersteuningvandeontwikkelingvangedistribueerdeapplicaties digen.naaraanleidingvandebeoordelingvandezeveelgebruikteomgeving wordtgeprobeerdhetschrijvenvantoepassingsprogramma'stevereenvou- aangelegdvoordebeoordelingvangedistribueerdeapplicatieontwikkelomgevingeninhetalgemeen,envooreenspeciekvoorbeeld,desunomgeving, wordenmogelijkeverbeteringenvoorgesteldenonderzocht.birrell&nelson schrijvenin[birrell,p.41]: gramswasadiculttask,undertakenonlybymembersofase- lectgroupofcommunicationexperts.[...]ourhopeisthatby providingcommunicationwithalmostasmucheaseaslocalprobutedcomputationeasy.previously,itwasobservedwithinour researchcommunitythattheconstructionofcommunicatingpro- TheprimarypurposeofourRPCprojectwastomakedistri- Gezienhetveleonderzoeknaargedistribueerdesystemenendeverspreiding withdistributedapplications. cedurecalls,peoplewillbeencouragedtobuildandexperiment 1.5 vangedistribueerdeprogramma'sdemoeitewaard. vandezesystemenis,onderzoeknaarhetvereenvoudigenvanhetschrijven lingvooreengedistribueerdcomputersysteem.debasisvanditonderzoek Hetdoelvanhetonderzoekishetvereenvoudigenvanapplicatieontwikke- Wijzevanaanpak wordtgevormddoorbestuderingvanliteratuuroversysteemontwikkeling, bruikbaarmodelwordenteruggebracht.ditwordtinx2.2.1enx2.3.4 operatingsystemsengedistribueerdesystemen.eenvandebelangrijkste conceptendiehiernaarvorenisgekomenis`abstractie'.doorabstractie toegelicht. kandeingewikkeldheid(complexiteit)vangedistribueerdesystementoteen 8 Vereenvoudigingvangedistribueerdeapplicatieontwikkeling

Opbouwscriptie Nadebestuderingvandetheorieishetonderzoeksobject,deSunomgeving,bestudeerd.Opbasisvaneenlijstcriteriauitdeliteratuurzijnsterke enzwakkepuntenvanhetonderzoeksobjectgedenticeerd.hiernazijnver- hetverhogenvandetransparantie centraalgesteld.voorhetverbeteren beteringenvoordezwakkeplekkenvansun'srpc-omgevingvoorgesteld. vandetransparantieiseenmodelontworpen,waarvaneendeelalsprototype isgemplementeerd.ookhetmodelisopbasisvandeliteratuurcriteriabe- IndeprobleemstellingwordthetvereenvoudigenvandeSunomgeving 1.6 1.6 Deonderzoeksbevindingenenaanbevelingenzijninhoofdstuk7beschreven. oordeeld.deresultatenvandezebeoordelingzijninhoofdstuk6beschreven. Hetvolgendehoofdstukbehandelttheorieovergedistribueerdecomputersystemeninhetalgemeen.Allereerstwordtdeevolutiedietotgedistribueerde Opbouwscriptie rantiebijgedistribueerdesystemen. systemengeleidheeftgeschetst.hiernawordteenbegrippenkaderbesproken.daarnawordtingegaanopderelatietussencomplexiteitentranspatieontwikkelomgevingenvoorgedistribueerdesystemenkanbeoordelen.hetemen.indithoofdstukwordencriteriageformuleerdwaarmeemenapplica- laatstedeelvandithoofdstukgaatoverremoteprocedurecalls eenvan Hoofdstuk3behandeltapplicatieontwikkelingvoorgedistribueerdesys- depijlersvangedistribueerdesystemen.rpc'szijndebasisvanhetonderzoeksobject,desunomgeving. besproken. oordelen.puntendievoorverbeteringinaanmerkingkomenwordenhier Decriteriawordeninhoofdstuk4gebruiktomdeSunomgevingtebe- transparantieverhogingzijnindeappendicestweeversiesvaneenvoorbeeldprogrammaopgenomen.eenversievoordeongewijzigdesunomgeving,ementeertwordtbeschreveninx6.3enappendixa.terillustratievande zwakkepunten,hetmodel.hetprototypedatdezeverbeteringenimple- Hoofdstuk5beschrijfteenvoorstelvoordeverbeteringvaneenaantal eenvoordeverbeterde.appendixageefteenhandleidingbijhetprototype. eensamenvatting.eenlijstmetdegeraadpleegdeliteratuurcompleteerthet stuk6gebruiktomtekijkeninhoeverrededoelstellingenzijnbereikt. Tenslottevolgendebevindingenenaanbevelingenvanhetonderzoek,en Decriteria,waarmeedeSunomgevingisbeoordeeld,wordeninhoofd- geheel. Vereenvoudigingvangedistribueerdeapplicatieontwikkeling 9

Hoofdstuk2 Gedistribueerdheid Hetdoelvandithoofdstukiseenkadervoorhetonderwerpvandezescriptie 2.1 teschetsen. Dezeparagraafbehandeltontwikkelingendietothetconcept`gedistribueerdheid'geleidhebben.Aandeenekantisdatdehistorischeontwikkeling Ontstaansgeschiedenis vandeverdelingvanrekencapaciteit.hierwordtnietgetrachteencomplete geschiedenisvandeontwikkelingvangeautomatiseerdesystementegeven. deanderekantwordtinx2.1.4wordtdezeontwikkelingmetverschillende categorieentoepassingen(applicaties)inverbandgebracht. Hetdoelisomeenaantalontwikkelingenuithetverledeninverbandtebrengenmetdehedendaagseproblematiekvangedistribueerdesystemen.Aateem,overdewijzewaaropdeleninhetgeheelsamenhangen.Hetuitgangspuntvandehistorischeontwikkelingisdeverdelingvanrekenkrachtover degebruikers.destructuurveranderingendieindeloopderjarenhebben Determ`gedistribueerd'zegtietsoverdestructuurvaneencomputersys- opgebouwdzijnophetniveauvanhetoperatingsystemduidelijkzichtbaar. plaatsgevondenindeverschillendelagenwaaruiteencomputersysteemis Inonderstaandetabelishetsoortoperatingsysteminverbandgebrachtmet deverdelingvanderekenkracht. singleuser batchverwerking gecentraliseerd Operatingsystemsgedecentraliseerd Hieronderwordtdezetabeluitgewerkt. multiuser multiprogrammingnos/gedistribueerd pc rekenkrachtoverdegebruikerszoecientmogelijktelatenplaatsvinden.de Sindsercomputerszijnwordtergezochtnaarmanierenomdeverdelingvan 2.1.1Gecentraliseerd 10

Ontstaansgeschiedenis durecomputermoetliefsthonderdprocentvandetijdgebruiktwordenen 2.1.1 derekencapaciteitmoetvoorgebruikerseenvoudigtoegankelijkzijn,zonder toegangsbeperkingenofwachttijden. singleuser geschreven.decomputersbestondenuiteenenkelefysiekeprocessormet Rond1955kwamendeeerstecomputersdiemettransistorswerkten.De programma'svoordezecomputerswerdeninassembleertaaloffortran voordeduurvanderunhelemaalvoorzichzelfalleen. ponskaartenoftapesalsin-enuitvoermedium.programma'swerdenin batchesaandecomputeraangeboden.eenprogrammahaddemachine nadeelisdatdeprocessorrelatiefinecientgebruiktwerd.bijeeni/o vandejobenontvangstvandeuitvoer.ditkonurenduren.eenander operatie,bijvoorbeeldeengegevensbestandopeentapeopzoeken,konde Eennadeelvanbatchverwerkingisdelangeperiodetussenaanbieding processornietsandersdoendanwachten.hierbijgingzeerkostbaretijd verloren. multiuser Ditlaatsteprobleemwerdrond1965opgelostdoorhetzogenaamdemultiprogramming.Hierbijwerdhetgeheugenvandecomputerineenaantal partitiesverdeeld.eenvoorelkejob.wanneereenjobwachtteopeeni/o hetoperatingsystemnamtoe. operatie,koneenanderejobdeprocessorbenutten.decomplexiteitvan multiprogrammingoperatingsystemisos/360. teerd.menmoestvaakopdeoutputwachten.eenvoorbeeldvaneen Zo'nmultiprogrammingoperatingsystemwasnogsteedsbatchgeorien- gebruikereenon-lineterminalheeft.bijtime-sharinghoevenprogramma's opzetten.time-sharingiseenvariantvanmultiprogrammingwaarbijelke nietineenbatchwachtrijtestaan.korteopdrachtenkrijgeneensnellerespons.voorbeeldenvanzulkeoperatingsystemszijnvax/vmsenunix. Doorderoepomeensnellereresponskwamentime-sharingsystemen anderegebruikersmagmerken.hetoperatingsystemmoetdegebruikereen stractiedatmendecomputervoorzichalleenheeft.eenontwerpdoelbij dezesystemenisdatdegebruikerszominmogelijkvandeaanwezigheidvan Time-sharingenmultiprogrammingsystemenbiedendegebruikerdeab- alsergebruikerszijn[debruin]. isomdeonderliggendecomputertereplicereninevenzovelevirtuele360's `VirtueleMachine':ibm'svm/360.Deenigetaakvanditoperatingsystem virtuelemachineaanbieden.eenzo'ntime-sharingoperatingsystemheet kernel zijnontworpenalseenproces(eenzogenaamdemonolitischemonitor),zoalsbijunix,neemthetrelatiefveelgeheugeninbeslag.indejaremingsystemen.wanneerdeinternetakenvanhetoperatingsystem de Time-sharingoperatingsystemszijningewikkelderdanmultiprogram- Vereenvoudigingvangedistribueerdeapplicatieontwikkeling zeventigwaszo'nontwerpgebruikelijk.doorhettoevoegenvanfunctionali- 11

2.1.2 teitishetoperatingsystemindeloopdertijdsteedsomvangrijkerworden. Gedistribueerdheid Doordeomvangwerdhetmoeilijkomonderalleomstandighedeneensnelle responstegaranderen.zo'nmonolitischemonitorisdaarominhetalgemeen nietgeschiktvoorreal-timegebruik(procesbesturing). ken,geheugentoewijzing,i/oenbestandsbeheerwordenalsapartgebrui- scheduling(eneventueelvirtueelgeheugenbeheer)verricht.deandereta- operatingsystems.dezezijnopgebouwduiteenkleinekerndiealleende Eenreactieopdemonolitischemonitorzijndezogenaamdemicro-kernel kersprocesbehandeld.metzo'nontwerpwordencomplexiteitengeheugen- gewoneprocedureaanroepenalsbijmonolitischemonitorsnietmogelijk. Eenmogelijkeoplossingismessage-passing.Micro-kerneloperatingsystems schillendedelenvanhetoperatingsysteminaparteprocessendraaienzijn beslagvankernelenoperatingsystemteruggedrongen.doordatdever- temszijnmach[coulouris]enminix[tanenbaum2]. [DeBruin].Voorbeeldenvanmicro-kernelmessage-passingoperatingsys- tussenvragersenaanbiedersvananderetakenvanhetoperatingsystem werkenvaakviahetclient/servermodel:dekleinekernelregeltverzoeken Batch,multiprogrammingentime-sharingsystemengaanuitvaneenprocessordiezijnrekenkrachtaangebruikersaanbiedt.Derekenkrachtstaagramming,minicomputersontwikkeld.Deafdelingenwerdenzovoorhun rekenkrachtminderafhankelijkvaneencentraalrekencentrum. singleuser Doordesteedsverdergaandeminiaturiseringvanelektronischecomponenterwaszogoedkoopdatmeneencomputervooreenenkelpersoonkodendeeerstemicrocomputersontwikkeld.Demicro-ofpersonalcompu- aanschaen.metnamedezogenaamdewerkstations krachtigepersonal tenwerdencomputerssteedskleinerquaomvangenprijs.rond1980wer- 2.1.2Gedecentraliseerd centraalopgesteld.inhetbeginvandejarenzestigwerden,naastmultipro- aaneencomputerdieeenvoudigbediendkonworden.doordeinvoering prijskwamenersteedsmeergebruikers.dezegebruikershaddenbehoefte computers biedenveelverwerkingskrachtvooreengebruiker.doordelage maaktmetbehulpvanpictogrammenenmuisbewegingenmetdecomputertecommuniceren.ditprogrammaschermtdegebruikerafvandetot dantoegebruikelijkeoperatingsystemgebruikersinterfaceindevormvan (GraphicalUserInterface)iseenprogrammadathetdegebruikermogelijk degebruiksvriendelijkheidvancomputersystementevergroten.eengui vangraschegebruikersinterfacesmetwindowsenmuizenprobeertmen bedoeldvooreengebruiker.hetoperatingsystemkanintegenstellingtot vergensnellebeeldschermenenveelverwerkingskrachtvandeprocessor. tekstcommando's.eenguiiseenschilomhetoperatingsystemheen.gui's multiprogrammingoftime-sharingsystemeneenvoudiggehoudenworden. Personalcomputers(pc's)biedendecentraleverwerkingskracht.Zezijn 12 Vereenvoudigingvangedistribueerdeapplicatieontwikkeling

Ontstaansgeschiedenis Eenvoorbeeldvaneensimpelsingleuseroperatingsystemisms-dos. 2.1.4 multiuser opgebouwdrondeenofmeerleservers.dezeleserverregelthetnetwerkverkeerenbevatgemeenschappelijkebestanden.hetoperatingsystemvan zo'nleservermoetzakenalstoegangscontrole,bestandsbeheerenprinterbeheerregelen.doordathetmetmeerderegebruikerstemakenheeftmoet ditnetworkoperatingsystem(nos)metmulti-userzakenalsrecord-enlelockingrekeninghouden.eenvoorbeeldvaneennetworkoperatingsysteputersystementecombineren.degebruikerblijftdebaasoverdeeigenpc1 isnovellnetware. enkantochvandefaciliteitenvaneengrotergeheelproteren. Meteenlanprobeertmendevoordelenvancentraleendecentralecomdenzevaakineenlan(LocalAreaNetwork)gekoppeld.Zo'nlanisvaak vanbestandenenrandapparatuuralslaserprintersmogelijktemakenwor- Inveelorganisatieszijnpc'stotdewerkplekdoorgedrongen.Omhetdelen gleuseroperatingsystemsmogelijk.bijeennosblijvendedelenvanhet systeemalslossecomponentenzichtbaar.eengroterematevanintegratie 2.1.3Gedistribueerd Netwerkoperatingsystemsmakensamenwerkingtussenafzonderlijkesin- operatingsystemdaarentegenlijktvoorzijngebruikersopeentraditioneel wordtmetgedistribueerdeoperatingsystemsnagestreefd[fortier].bijbeide bestaatdehardwareuitcomputersdieineenlanverbondenzijn.bijnos gecentraliseerd-een-processor-time-sharingsysteem.eengedistribueerdoperatingsystembiedtdegebruikerdeabstractievaneenenkelvoudigemachine. weetdegebruikerdaterverschillendecomputerszijn.eengedistribueerd bevindenbehorentransparanttezijnvoordegebruiker. Detailsalswelkeprocessoreenprogrammauitvoertenwaarbestandenzich ontwerpersisdegrotecomplexiteitvanervan.gedistribueerdeoperating vanparallellismeenfouttolerantie(x2.1.4enx2.3.3).eennadeelvoor systemszijningewikkelderdanandereoperatingsystems.voorbeeldenvan Hetvoordeelvangedistribueerdeoperatingsystemsisdemogelijkheid operatingsystemsdieinmeerofminderematehetpredikaat`gedistribueerd' unixkernel[coulouris]. zijnbeidemicro-kerneloperatingsystems.demachkernelemuleerteen beheeruitbreidingenvaneenmonolitischeunixkernel.machenamoeba verdienenzijnsun'snfs,machenamoeba.sunnfsbestaatuitbestands- 2.1.4Redenengedistribueerdeapplicaties computersystemen,ennietopuniprocessors,zouwillenimplementeren.in Erzijnverschillenderedenenwaarommenapplicatiesopgedistribueerde volgtonderwoordengebracht:"thenicestthingaboutworkstationsisthattheydon't runfasteratnight." 1Hetfeitdatmendeprocessornietmetanderenhoefttedelenisin[Coulouris]als Vereenvoudigingvangedistribueerdeapplicatieontwikkeling 13

2.1.4 [Bal]wordendevolgendeviergenoemd. Gedistribueerdheid 3.Demogelijkheidbepaaldedelenvanhetsysteemtegebruikenomspeciekefunctionaliteitecientaantekunnenbieden. 2.Toegenomenbetrouwbaarheidenbeschikbaarheid. 1.Eenkorteredoorlooptijdvooreenenkeleberekening. 4.Demogelijkheidinherentegedistribueerdheidvaneenapplicatietebenutten. Deredenenwordenhierondereenvooreentoegelicht. snelheidswinstdoorparallelleuitvoering(1) Snelheidswinstdoorparallellismeiseenveelvoorkomenderedenomapplicatiesopeengedistribueerdsysteemuittevoeren.Doorverschillendedelen vaneenprogrammategelijkuittevoerenopverschillendeprocessorenzullensommigeprogramma'ssnellerklaarzijn.ditsoortapplicatieskunnenin zijnnaargroteaantallen(duizenden)processoren.gedistribueerdesystemenzijnbeterschaalbaar,alisdecommunicatieviashared-memorysneller (grain)vanhunparallellisme.dezekorrelgrootteisdelengtevandereken- danviaeennetwerk. principenetzogoedopshared-memorymultiprocessorswordenuitgevoerd. Eenprobleemvanshared-memorysystemenisdatzemoeilijkteschalen programma'sbrengenhetgrootstegedeeltevanhuntijddoormetrekenen tijdvoordaterweergecommuniceerdmoetworden.large-grainparallelle Parallelleapplicatieskunnengeclassiceerdwordennaardekorrelgrootte encommunicerenweinig;ne-grainparallelleprogramma'scommuniceren fouttoleranteapplicaties(2) vaker;medium-grainzitertussenin(zieookx2.3.1). uniprocessorwellichtnietbetrouwbaargenoeg.vanwegedepartialfailure eenolieranaderij,eenvliegtuig,ofdeadministratievaneenbank iseen nisatie zogenaamde`missioncriticalapplications'zoalsdebesturingvan Voorapplicatiesdieessentieelzijnvoordebedrijfsvoeringvaneenorga- vandeapplicatieopmeerdereprocessorenteduplicerenkunnen,wanneer processordeandereprocessorenwerken.doornuproceduresengegevens der.omdatdefysiekeprocessorenautonoomzijnblijvenbijeenfoutineen eigenschapzijngedistribueerdecomputersystemenpotentieelbetrouwbaarintegriteitwaarborgen. eenprocessorstopt,anderedoorgaanmethetprogramma,ofdegegevens- eenapplicatieuitvallenvandelenvanhetsysteemoverleven.echter,doordatzenietgeograschverspreidkunnenwordenopgesteldzoalsgedistribueerdesystemen,zijnzenietinstaatrampenalsbrandenaardbevingente 14 morymultiprocessorskunnenimplementeren.ookopdezesystemenkan Menzousommigefouttoleranteapplicatieswellichtookopshared-me- Vereenvoudigingvangedistribueerdeapplicatieontwikkeling

Ontstaansgeschiedenis doorstaan.vooreenbedrijfszekerebankapplicatiezoueenloosely-coupled 2.2.1 kenombetrouwbaarheidenbeschikbaarheidtevergroten.inx3.3.3wordt hierdieperopingegaan. distributedsystemeenverstandigekeuzezijn. Hetonderzoekopditgebiedrichtzichvoornamelijkopsoftwaretechnie- speciekefunctionaliteit(3) inzettendiespeciaalopdezeeisenistoegesneden.inx2.1.3werdreedsover Defunctionaliteitdiecomputersystemenmoetenbiedenkanzeerdiverszijn. leserversgesproken.personalcomputersofwerkstationszijngeschiktvoor guratietelatenuitvoerenkanmenookvoorverschillendeeisenhardware Inplaatsvanalleverschillendeeisendooreenalgemeensoortcomputercongui's.VoorhetuitvoerenvanveelnumeriekeberekeningenkanmeneensueerdeoperatingsystemAmoebadekeuzevoorgespecialiseerdele-,print-percomputer(numbercruncher)inzetten.Databasemachineszijngeschikt voorhetecientuitvoerenvantransacties. warealsvannatureuitdeaardderproblematiekvoortsproot.elkeservice proces-,terminal-,tijd-,boot-engatewayserversopgedistribueerdehard- In[Bal]wordtbeschrevenhoebijdeimplementatievanhetgedistribu- elkaarboodschappenviahetnetwerk.wanneerhetsysteemmetnieuwe functionaliteitwordtuitgebreidkunneneenvoudigwegnieuweprocessoren kaneenofmeergespecialiseerdeprocessorengebruiken.deserverszenden wordentoegevoegd. Sommigeapplicatieszijngedistribueerdvanaard.Hetversturenvane-mail inherentgedistribueerdeapplicaties(4) tussendewerkstationsvangebruikersishiereenvoorbeeldvan.deverzamelingwerkstationskanalseengedistribueerdsysteembeschouwdworden. plaatsenmetelkaartekunnenlatencommuniceren. Eenorganisatiemetverscheidenelialenenfabriekenzoueengedistribueerdsysteemkunnenopzettenommensenenmachinesopverschillende lokatiesafspelen. vanapplicatieswaarvanverschillendedelenzichopgeograschverschillende ToepassingenvanElectronicDataInterchange(edi)zijnookvoorbeelden Vereenvoudigingvangedistribueerdeapplicatieontwikkeling 15

2.2.1 Begrippenkader Gedistribueerdheid Computersystemenzijncomplexesystemen.Omhetontwerpenvancomputerenprogrammahanteerbaartehoudenwordtgebruikgemaaktvanhet conceptvandegelaagdemachine.figuur2.1geefteenmogelijkeindeling vaneencomputerineenaantallagen. oplossenvaneendierentiaalvergelijkinginteprogrammeren.hetlagenmodelbeschrijfteenstapsgewijzevertalingvangebruikerstoepassingnaar hardware-niveau.elkelaagbeschrijfteeninterfacevaneenvirtuelemachine Computerhardwareisongeschiktomhoogniveauproblemenalshet 2.2.1Virtuelemachines wordendeproblemendiehetsysteemmoetoplossengespeciceerd. dieeen`taal'accepteert.hetlaagsteniveaubetreftdehardware,deelektronischeschakelingenvandecomputer.indetaalvanhethoogsteniveau Figuur2.1:Lagenmodel[Tanenbaum1] problem-orientedlang. assemblylanguage operatingsystem microprogramma machinetaal level0 level1 level2 level3 level4 level5 Devertalertussendezelagenkanmenbeschouwenalseenvirtuelemachinediedetaalimplementeert.Eenvirtuelemachineiseenschijnbare vandesimpelere,meermachinegeorienteerdetaalvanzijnvoorgangereen machine.elkevirtuelemachineheeftzijneigentaal.hijbiedtopbasis taalaanzijnopvolgeraandiemeermogelijkhedenbiedt,meerprobleem machine.deechtemachinedoetzichvooralseenandere,aangenamere, digitalelogica 16 georienteerdis[tanenbaum1,p.5]. Vereenvoudigingvangedistribueerdeapplicatieontwikkeling

Begrippenkader Eencentraalbegripbijhetontwerpvangedistribueerdesystemeniscom- 2.2.1 teitisstructureren.doorstructurenineenafbeeldingvandewerkelijkheid snelheidenbedrijfszekerheid behoudenblijven.hetordenenvancomplexiruggebrachtonderdevoorwaardedatdevoordelenvangedistribueerdheidplexiteit indezinvaningewikkeldheid.decomplexiteitmoetwordente- begrijpen.decomplexiteitzoalsdebeschouwerdezeervaartwordtverminderd. aantebrengen dooreenmodeltebouwen wordthetsysteembeterte Elkelaagreduceertdecomplexiteitvanzijnvoorganger. abstractie Hetlagenmodelbeschrijfteenstapsgewijzereductievandecomplexiteit. nandenorpoortentebespreken.bijhetdenkenovereenprobleemmoet eenvergelijkbaarprobleemop.hetheeftgeenzinomdeproblematiekvan hetvindenvandekortsteroutelangsdeprovinciehoofdstedenintermenvan Bijhetredenerenovergedragvancomputersystemenlevertdecomplexiteit menzoveelmogelijkvanbijzakenabstraheren.menmoetzichopdekern vandeproblematiekconcentreren.[watt1]zegthetzo: ideas. ongeneralideasratherthanonspecicmanifestationsofthese Abstractionisamodeofthoughtbywhichweconcentrate eenhogerelaagteformulerenabstraheertmenvandedetailsvandelagere concept`abstractie'heelgoedbruikbaar. Doorabstractieismeninstaattegeneraliseren.Indeinformaticaishet machine.hetiseenvoudigeromhetopvragenvaneenbanksaldoineensql queryteformulerendanincobol[date]. Eenvirtuelemachineiseenabstractie.Dooreenprobleemindetaalvan verwervenomeenvolledigeenondubbelzinnigesysteemspecicatietekunnenopstellen[demarco]. richtlijnenenproceduresmoetmenvoldoendeinzichtindeproblematiek deessentieleaspectenvandepraktijksituatie.doorhetbestuderenvan Bijsysteemanalyseisabstractiedekunstvanhetzichconcentrerenop bruikeruiteindelijkkanabstraherenvanhoehetprogrammawerktenzich kanconcentrerenopwathetdoet.abstractieishierhetverschiltussende interfacebeschrijvingendeimplementatievaneenprobleem.eenprogrammeertaalbestaatuitconstructiesdieeenabstractiezijnvanmachinetaal. Hetdoelvanhetschrijvenvaneencomputerprogrammaisdatdege- imperfectie Elkeprocedureoffunctieiseenabstractie.Elkemoduleiseenabstractie. Eenprogrammaiseenhierarchievanabstracties[Watt1]. guur2.1moetbijhetredenerenovercomputersystemenconsequentworden opeenabstractniveauteblijvenredeneren.gegevenhetmodelvan- Inverhandelingenovercomputersystemenwordtvaakgetrachtconsequent Vereenvoudigingvangedistribueerdeapplicatieontwikkeling 17

2.2.2 aangegevenvanwelkmodelmenuitgaat.somsblijktuitdecontextover Gedistribueerdheid tenoemenvoorkomtmendathetzorgvuldigopgebouwdebegrippenkader vertroebeldraaktdoorverwarringmettermenvaneenanderelaag. welkelaaghetgaat,vaakookniet.doorwaarnodighetniveauexpliciet kunneninhetalgemeendeonderliggendelagennietperfectafschermen. Hierdoorlooptmenhetrisicodatdeverhandelingwordtvertroebelddoor Hierbijkunnenzicheenaantalcomplicatiesvoordoen.Virtuelemachines Vaakredeneertmenophetniveauvaneenprobleemgeorienteerdetaal. dehelderheidvaneenalgoritmebehoorlijkfrustreren. machinenietgoedaf.overowproblemendiehierhetgevolgvanzijnkunnen detailsvanlagereniveaus.veelimplementatiesvanprobleemgeorienteerde talenbijvoorbeeldschermendewoordbreedtevandemachinetaal-virtuelegehaald,ofmetaforenuithetdagelijkslevengebruikt.bepaaldeaspectebeeldenenmetaforenkunneninhetalgemeenmaareendeelvandevirtuele vaneenvirtuelemachinekunnenzoaanschouwelijkgemaaktworden.voor- Terverduidelijkingvaneenverhandelingwordenvaakvoorbeeldenaan- machinebeschrijven.hetkangebeurendaterhierdooronbedoeldverkeerde tersystemenredeneren.computerszijnopgebouwduitvirtuelemachines. Eenvirtuelemachineiseenabstractie.Bijhetredenerenoplogischniveau implicatiesindeverhandelingsluipen[leipoldt]. moetmenzichsteedsrealiserendatmengebruikmaaktvaneenabstractie Doorgebruiktemakenvanabstractieskanmenovercomplexecompu- gebruikenomgedragtebeschrijven.hiervoormoetmenhetgedragvaneen vandewerkelijkheid.eenvirtuelemachineisinwerkelijkheidvaakimperfect.omfoutenofafwijkingentevoorkomenkanmenformelemethoden systeemexactkunnenbeschrijven.somsisdekennisoverhetexactegedrag nietaanwezigofzijndegebruiktemethodenniettoereikend. vastgesteld[vankatwijk,mullender1]. algoritmeskanimperfectzijn.naasteenformeelbewijsvandejuistheidvan eenalgoritmemoetdejuistheidvandeimplementatiemettestenworden Formelebewijzenzijngeldigvooralgoritmes.Deimplementatievandeze zijninguur2.2weergegeven.hetmeestalgemeneonderscheidistussen Voordelagenuitguur2.1wordennogaleensanderetermengebruikt.Deze 2.2.2Gerelateerdetermen hardwareensoftware.binnendesoftwareonderscheidtmensysteemsoftwareenapplicaties.operatingsystemsbehorentotdesysteemsoftwareteemontwikkelsoftwareontwikkeld. eenboekhoudpakketofeentekstverwerker.zewordenmetbehulpvansys- compilerstotdesysteemontwikkelsoftware.voorbeeldenvanapplicatieszijn eengroterevarieteit.omdezeredenisnietgetrachteengeforceerdsimpele toepasbaaralsmodelvoorveelbestaandemachines.bovenlevel5bestaat of`high-levellanguages'genoemd.totenmetlevel5isguur2.1goed Problemorientedlanguages(level5),wordenook`derdegeneratietalen' weergavevandewerkelijkheidtegeven[tanenbaum1].volgensdeindeling vanguur2.1zoudenapplicaties`level6virtuelemachines'genoemdmoeten 18 Vereenvoudigingvangedistribueerdeapplicatieontwikkeling

Begrippenkader 2.2.2 Figuur2.2:Applicatie-versussysteemsoftware[VanRenesse] applicaties gebruiker systeemontwikkeltools dbms HY operatingsystem hardware HH applicatiesoftware systeemsoftware dezescriptie greswordensomstotapplicatiesensomstotsysteemsoftwaregerekend. dietussendeproblem-oriented-languageendegebruikerinligt. worden.ingrotelijnenzoumenapplicatieskunnenbeschouwenalseenlaag caties.gegevensbeheerpakkettenliggengezienvanuitsysteemontwikkeling Dezescriptierichtzichopdesysteemontwikkelingvangedistribueerdeappli- Gegevensbeheerpakkettenofvierdegeneratie-softwarealsOracleenIn- implementatie alsinguur2.2gepositioneerdaandeapplicatiekant. onderliggendevirtuelemachine.detaalvaneenhogerelaagwordtuitgedruktineenlagerelaag.zokanmeneencompilervoorhetvertalenvan Methet`implementeren'vaneenapplicatiebedoeltmenhetrealiserenvan eenproblem-oriented-language(bijvoorbeeldfortran)naarassembleertaal eeninterfacemetdegewenstehighlevelfunctionaliteitmetbehulpvande schrijven.ofmenkaneenboekhoudpakketbouwenineenproblem-orientedlanguage.menspreektsomsvandefortran-implementatiealsmeneen eenlageretaal.eenimplementatieiseenvirtuelemachine.implementeren menhetprogrammazelfbedoelt. speciekevertalerbedoeld,ofvandeimplementatievandeboekhoudingals tweelagen. ishetrealiserenvandegewenstefunctionaliteit vandevertaalslagtussen Eenimplementatiebiedteenhogeretaalaandoordezetevertalenin bepaaldetaalimplementeertaanteduiden.eenprocessorishetactieve gedeeltevaneenvirtuelemachine.deautomaatvoerthetprogrammadat inzijntaalisgeschrevendaadwerkelijkuit. Determ`processor'wordtgebruiktomdeabstracteautomaatdieeen abstractidee wordtook`implementeren'genoemd.zokaneenoperating Vereenvoudigingvangedistribueerdeapplicatieontwikkeling Hetaanbiedenvandegewenstefunctionaliteit vaneenconcept,een 19