Computable.nl
  • Thema’s
    • Carrière
    • Innovatie & Transformatie
    • Cloud & Infrastructuur
    • Data & AI
    • Governance & Privacy
    • Security & Awareness
    • Software & Development
    • Werkplek & Beheer
  • Sectoren
    • Channel
    • Financiële dienstverlening
    • Logistiek
    • Onderwijs
    • Overheid
    • Zorg
  • Computable Awards
    • Overzicht
    • Nieuws
    • Winnaars
    • Partner worden
  • Vacatures
    • Vacatures bekijken
    • Vacatures plaatsen
  • Bedrijven
    • Profielen
    • Producten & Diensten
  • Kennisbank
  • Nieuwsbrief

Ontwikkelen van componenten

04 december 1997 - 23:005 minuten leestijdOpinieCloud & Infrastructuur
Martin Healey
Martin Healey

Gespreide verwerking is altijd interactief van aard geweest. Berichtendiensten vormen hierop een welkome aanvulling. De client wordt gekoppeld aan de server voor een sessie met conventionele communicatie-subsystemen. In het algemeen moet de client-applicatie weten waar de server is; dit past goed bij veel nieuwe applicaties maar ontbeert de nodige flexibiliteit, vooral naarmate er meer servers bijkomen en schaalbaarheid belangrijk wordt.

Remote procedure call (RPC) is de geëigende manier om een client aan een server te koppelen. De RPC-software biedt een abstract API aan de programmeur, waarbij details over het onderliggende communicatiemechanisme verborgen worden. Met de juiste RPC-middleware kan dezelfde applicatiecode op verschillende platforms en verschillende communicatie-infrastructuren worden gebruikt. Hiervoor moet de programmeur echter een zekere discipline hebben; lokale technieken, zoals het gebruik van gemeenschappelijk geheugen, zijn in een RPC-omgeving niet beschikbaar.
De voor RPC noodzakelijke discipline is zeer welkom. Het komt de prestatie niet ten goede, maar de noodzaak om het interface ‘schoon’ te houden leidt tot beter onderhoudbare code. Eén groep programmeurs ontwikkelt daarbij de procedures, met slechts één entry point; alle argumenten worden meegegeven in cellen, er zijn geen referenties naar externe gegevens en er is geen toegang tot interne variabelen vanuit andere routines. Deze bibliotheek van procedures wordt op een hoger niveau door andere programmeurs gebruikt. Het probleem hierbij is het houden van toezicht op naleving van dit beleid, waarbij whiz-kids in het gareel gehouden moeten worden. Met primitieve talen als C is dit nog moeilijker.
Een ander probleem is de documentatie. De functie van elke software-component moet duidelijk gedefinieerd zijn, net als de regels voor de programmeurs die deze functie gebruiken. Dit betekent ook dat de functie nauw gekoppeld moet zijn aan het ontwerp, zoals bij case-tools, en dat de technische documentatie en de gebruikersdocumentatie ook bij de invoering van nieuwe versies gesynchroniseerd moet blijven. Conventionele documentatietechnieken maken dit moeilijk, maar niet onmogelijk. We zouden dan ook allemaal de lage profilering van en even lage investering in repositories hartgrondig moeten verwensen.
Er zijn geen speciale tools nodig om met bovenstaande methoden tot herbruikbare elementen te komen, maar er is discipline voor nodig, die gedurende een lange tijd moet worden opgebracht. En dit nu is een belangrijk struikelblok geweest bij eerdere pogingen om software-componenten te ontwikkelen.
Een andere functie van componentontwikkeling is fijnkorrelige modularisatie. Het is relatief eenvoudig om een groot aantal kleine functionele componenten te definiëren en te integreren. Dit moet omwille van een maximale flexibiliteit worden gecombineerd met een run-time omgeving. Voor de meeste transactie-applicaties levert een TP-monitor de noodzakelijke ondersteuning. Maar communicatie tussen verschillende taken via een TP-monitor genereert een enorme overhead vergeleken met een lokale procedure-aanroep.
Ontwikkelaars die componenten gebruikten om relatief kleine transactiemodules te bouwen, liepen al snel tegen prestatieproblemen op. Er was niet veel keus: de transactiemodules moesten worden samengevoegd met behulp van procedure-aanroepen. De performance werd hierdoor verbeterd, maar er ontstonden enorm grote transactieprocessen. Dit is op zichzelf niet zo erg, maar deze grote modules hebben per definitie zoveel kruisverwijzingen dat ze alleen door een team van programmeurs kunnen worden onderhouden. Het verdubbelen van de omvang kan de onderhouds- en testproblemen gemakkelijk verviervoudigen. Dit geldt natuurlijk niet alleen voor mainframe TP-applicaties maar ook voor PC-toepassingen.
Tegenwoordig is alles anders. (Of tenminste, dat zou het moeten zijn.) Hardware bedraagt nog maar een klein deel van de kosten van een applicatiesysteem, ongeveer 10 tot 15 procent. Onderhoud is waarschijnlijk de grootste component; denk eens aan de kosten van het opwaarderen van al die monolithische Visualbasic-software!
Case-tools zijn nu volwassen en de ontwerpfuncties kunnen niet alleen van dienst zijn bij het partitioneren van code voor client en server, maar ook bij modularisatie van code. Case-tools kunnen weer worden gekoppeld aan repositories. Men is echter huiverig voor deze strategische investeringen door eerdere slechte ervaringen met onvolwassen case-tools en de moeilijk meetbare kostenbesparing.
Met case-tools gedefinieerde modules kunnen door programmeurs eenvoudig misbruikt worden. Er is daarom veel te zeggen voor codegeneratoren, vooral met kleine code-modules. Hergeneratie van code kost tijd, maar kan met de tools van tegenwoordig eenvoudig worden gerealiseerd, behalve als de code groot en monolithisch is. Codegeneratoren kunnen ook veel verschillende talen aan, zoals Cobol en C. In deze omgevingen geef ik nog steeds de voorkeur aan Cobol op de server en zo’n beetje alles op een dunne client, zoals Java. Verrassend genoeg kiezen veel organisaties nog steeds voor C++ op de server. Veel organisaties hebben in het verleden slechte ervaringen met codegeneratoren opgedaan; de tijd is rijp om het nog eens te proberen.
Tools zijn nuttig om modulaire applicaties met herbruikbare componenten te bouwen, maar er is een groeiende vraag naar pakketten met standaardcomponenten voor applicatie-ontwikkeling. Dit voert ons in de nieuwe wereld van de objecttechnologie. De vraag is nu: moeten we standaardtechnieken gebruiken om herbruikbare componenten te bouwen, of moet het pure object-oriëntatie zijn?

Meer over

Netwerken

Deel

    Inschrijven nieuwsbrief Computable

    Door te klikken op inschrijven geef je toestemming aan Jaarbeurs B.V. om je naam en e-mailadres te verwerken voor het verzenden van een of meer mailings namens Computable. Je kunt je toestemming te allen tijde intrekken via de af­meld­func­tie in de nieuwsbrief.
    Wil je weten hoe Jaarbeurs B.V. omgaat met jouw per­soons­ge­ge­vens? Klik dan hier voor ons privacy statement.

    Whitepapers

    Computable.nl

    Bouw de AI-organisatie niet op los zand

    Wat is de afweging tussen zelf bouwen of het benutten van cloud?

    Computable.nl

    Slimme connectiviteit: de toekomst van bouwen

    Hoe stoom jij jouw organisatie in de bouw en installatie sector klaar voor de digitale toekomst?

    Computable.nl

    De weg van dataverzameling naar impact

    Iedere organisatie heeft data, maar niet iedereen weet hoe je het goed gebruikt. Hoe zet je waardevolle informatie om in actie?

    Meer lezen

    ActueelCloud & Infrastructuur

    Kort: WBSO populair bij ict-bedrijven, 6 cloudtrends Gartner, EU-alternatief voor CVE-database VS

    ActueelCloud & Infrastructuur

    ‘Maak haast met investeringen in digitale infrastructuur’

    Gebouw TU/e
    ActueelCloud & Infrastructuur

    TU/e vervangt vpn en voegt mfa toe na cyberaanval

    ActueelCloud & Infrastructuur

    Kort: Eigen ai-assistent Amsterdam, NIS2-manager Atos, DSA-check ACM en…

    Quantum
    ActueelCloud & Infrastructuur

    Nieuwe Cisco-netwerkchip brengt quantum-internet dichterbij

    kaasschaaf
    ActueelCarrière

    VodafoneZiggo schrapt 400 banen

    Geef een reactie Reactie annuleren

    Je moet ingelogd zijn op om een reactie te plaatsen.

    Populaire berichten

    Meer artikelen

    Footer

    Direct naar

    • Carrièretests
    • Kennisbank
    • Planning
    • Computable Awards
    • Magazine
    • Abonneren Magazine
    • Cybersec e-Magazine

    Producten

    • Adverteren en meer…
    • Jouw Producten en Bedrijfsprofiel
    • Whitepapers & Leads
    • Vacatures & Employer Branding
    • Persberichten

    Contact

    • Colofon
    • Computable en de AVG
    • Service & contact
    • Inschrijven nieuwsbrief
    • Inlog

    Social

    • Facebook
    • X
    • LinkedIn
    • YouTube
    • Instagram
    © 2025 Jaarbeurs
    • Disclaimer
    • Gebruikersvoorwaarden
    • Privacy statement
    Computable.nl is een product van Jaarbeurs