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