Informatietechnologie
nog eens goed uitgelegd
infrastructuur | ontwerp | laatst bijgewerkt op 2022-11-04

servicesmodel

Een conceptuele, schematische weergave van hoe de diensten in een netwerk met elkaar samenwerken.

Een servicesmodel is een schematische weergave van hoe de diensten in een netwerk met elkaar samenwerken. Het gaat hier niet om technische oplossingen maar om conceptuele oplossingen voor het gehele idee van de bedachte toepassing. Het servicesmodel biedt vlug een overzicht en bakent je probleemdomein af. De focus van het servicesmodel ligt op de communicatie tussen de diensten (de pijltjes) waardoor deze relatief veel details krijgen, en niet op de diensten zelf, die uitsluitend een naam hebben.

Voorbeeld

Stel je voor dat we een toepassing verzinnen waarin een sensor de huidige temperatuur en het CO2-gehalte in een serverruimte moet meten. Deze gegevens worden door een centraal aanstuursysteem in een database opgeslagen. Tevens, wanneer de temperatuur boven een ingestelde waarde komt is het de bedoeling dat de verlichting in de serverruimte rood wordt.

De diensten die tezamen de toepassing voor deze serverruimte vormen zijn:

  • Dienst "Het verkrijgen van de temperatuur en CO2 gegevens" wordt voorzien door Sensor.
  • Dienst "Het regelen van de verlichting in de kamer" wordt voorzien door Light Controller.
  • Dienst "Het opslaan van de meetgegevens" wordt voorzien door Database.
  • Dienst "Het aanturen van de toepassing" wordt voorzien door MyApp (centraal aanstuursysteem, dat ik zelf ga maken en waarvoor ik nog een betere naam moet verzinnen)

Je kunt hiervoor een servicesmodel tekenen, hieronder een mogelijk uitwerking daarvan.

full fig 1: Servicesmodel voor de serverruimte

Toelichting

In het servicesmodel wordt een dienst weergegeven als een rechthoek. Let op dat een dienst niet per se ook automatisch een eigen apparaat is, want het is mogelijk om meerdere diensten op hetzelfde apparaat te plaatsen. Denk bijvoorbeeld aan de Database die samen met MyApp op hetzelfde apparaat zou kunnen staan, maar dit hoeft niet. Communicatie tussen diensten wordt aangegeven met een pijl. De punt van de pijl geeft de richting van de datastroom aan. In het voorbeeld hierboven gaan de gegevens van de Sensor naar MyApp. Vervolgens stuurt MyApp de gegevens door naar Database. Het bolletje aan het begin van de pijl geeft aan dat dit push-communicatie is. Dit wil zeggen dat in dit voorbeeld MyApp beslist wanneer de gegevens naar Database te sturen want het bolletje staat aan de kant van MyApp. Bij de communicatie tussen Sensor en MyApp staat geen bolletje, want het is niet Sensor die beslist wanneer de gegevens naar MyApp te sturen, maar MyApp die beslist wanneer de gegevens bij Sensor op te vragen (pull-communicatie). Tevens stuurt MyApp een bericht naar de Light Controller om de verlichting aan te sturen. Boven elke pijl staat het gebruikte protocol van de verbinding (bijvoorbeeld REST, protobuf, SQL, enz.), en onder elke pijl staat een omschrijving van de informatie die over de verbinding gaat.

Conclusie

Met een servicesmodel kun je in 1 oogopslag heel veel overzicht creƫren en duidelijk maken wat de toepassing is die je bedacht hebt. Hierdoor kun je al vroeg in je ontwikkelproces eventuele denkfouten uit je idee halen en daarmee voor jezelf een boel ellende in een latere fase voorkomen. Daarnaast helpt het servicesmodel in het afbakenen van je probleemdomein en het opstellen van benodigdheden. Elke dienst wordt namelijk gedragen door een hardwareoplossing, al dan niet virtueel, zodat je met het servicesmodel dus kunt bepalen welke hardwareoplossingen je nodig zult hebben.