IRM Model informatie
Inleiding

Tijdens het ontwikkelen van software, zorgen interfaces meestal voor grote problemen. Is het niet de communicatie met een andere bedrijfsapplicatie, dan is het wel de communicatie met een externe partij waarbij men tegen onverwachte problemen aanloopt. Vaak blijkt pas tijdens het testtraject dat er onvoorziene situaties zijn of komen interpretatieverschillen aan het licht.
Een voorbeeld: de agendafunctionaliteit als in een Personal Digital Assistent is relatief eenvoudig te programmeren. Wat het complex maakt zijn de interfaces om deze gegevens met andere agendaprogramma's te synchroniseren, zo mogelijk via Bluetooth, infrarood, USB of WiFi. Het Interface Referentiemodel kan hierbij helpen.

Dat geldt ook voor het volgende voorbeeld: de beschrijving c.q. definitie van het applicatieprotocol tussen een bank en een pinautomaat kan ook prima met het Interface Referentiemodel beschreven worden.

Samengevat: het doel van het Interface referentiemodel is om alle aspecten van een interface in kaart te brengen zodat men tijdens de implementatie niet voor verrassingen komt te staan.

 
Samenhang Interface Referentiemodel, modelleringstool en codegenerator
 

Bovenstaand figuur toont de verschillende lagen van het Interface Referentiemodel (in het grijze vlak). Met de IRM modelleringstool kan men een interface ontwerpen op basis van het Interface Referentiemodel waarna de "Interface generator" de code hiervoor kan genereren in de gewenste programmeertaal.

 
Het Interface Referentiemodel
Het interface referentiemodel (IRM) bestaat uit vijf lagen:
  • Transportlaag
  • Berichtlaag
  • Applicatie Protocol laag
  • Applicatielaag
  • Systeemlaag
 
Transportlaag
De transportlaag draagt zorg voor het daadwerkelijk versturen en ontvangen van berichten. Het subsysteem maakt gebruik van een bestaande transportmethode en de daarbij behorende Application Programming Interface (API) om te communiceren. De transportmethode bepaalt ook de gebruikte overdrachtsmethode: real-time of store-and-forward. Voorbeelden van transportmethoden zijn: Websphere MQ, sockets en RPCs.
De transportlaag zorgt voor eventuele conversie. Denk hierbij aan ASCII, EBCDIC, unicode en big- versus little-endian codering. Andere taken kunnen zijn compressie/decompressie en encryptie/decryptie.

 
Berichtlaag

De berichtlaag beschrijft de syntax en enkele semantische aspecten van elk bericht. De notatie combineert de eenvoud van een tabulaire notatie met de kracht van de Backus Naur Form (BNF). Zo is herhaling van (een combinatie van) attributen eenvoudig aan te geven. Het is ook mogelijk om attributen te specificeren die alleen geldig zijn bij een bepaalde waarde van een ander attribuut. Bijvoorbeeld: het attribuut "commandocode" met daarbij voor elke waarde van dit attribuut een specifieke reeks van geldige attributen.
Een bericht bestaat uit één of meerdere attributen. Elk attribuut heeft o.a. de volgende eigenschappen:

  • Attribuutnaam;
  • Formaat (o.a. tekst, numeriek, enumerated, speciaal: b.v. postcode);
  • Aantal characters (bytes, bits);
  • Vaste of variabele lengte;
  • Eenheid attribuut (gram/ounce, oC/oF/K);
  • Eventuele minimale en maximale waarde;
  • Indien optioneel, is er een default waarde?
  • Eventueel opvullen niet gebruikte karakters bij vaste lengte, b.v. spaties bij tekstformaat, of voorloopnullen bij numeriek formaat.

De berichtlaag bevat ook semantische tabellen voor attributen met een gecodeerde betekenis. Hierin staat bijvoorbeeld dat de betekenis van de waarde '31' bij het attribuut landcode "Nederland" is.

 
Applicatieprotocollaag

De applicatieprotocollaag beschrijft de onderlinge samenhang tussen de berichten gespecificeerd in de berichtlaag. Niet de inhoud, maar het proces staat centraal in deze laag. Onderdelen van dit proces zijn:

  • Welke subsystemen nemen deel aan de communicatie?
  • Welke berichten worden verstuurd en naar wie;
  • Wat is de berichtenvolgorde;
  • Binnen welke termijn moet een bericht ontvangen zijn (time-outs)?
  • Beëindiging van de communicatie.
 
Applicatielaag
In het interface referentiemodel definieert de applicatielaag de API van de relationele functies. De lokale functies van het subsysteem maken gebruik van deze API om te communiceren met de andere subsystemen. De lokale functies zelf maken geen deel uit van de applicatielaag.
Daarnaast specificeert de applicatielaag het programmamodel: is het een serverapplicatie die verzoeken van meerdere clients gelijktijdig af moet handelen of vormt het een onderdeel in een store-and-forward model.
 
Systeemlaag

De systeemlaag geeft een overzicht van het gehele bedrijfsproces. Het legt vast welke subsystemen met elkaar communiceren en wie de initiator van de communicatie is.
Kwaliteitseisen die op de systeemlaag een rol spelen zijn:

  • Beschikbaarheid (contingency)
  • Compleetheid
  • Juistheid
  • Beveiligbaarheid
Dit was slechts het theoretisch model. Lees verder over het programma waarmee u een interface kunt modelleren.
 
 
© 2004 Computer Interface Solutions