Sobes.tech
Middle

Welke soorten webservice-architecturen bestaan er?

sobes.tech AI

Antwoord van AI

  1. Monolithische architectuur:

    • Eendrachtige, zelfstandige code die alle componenten (UI, bedrijfslogica, gegevens toegang) combineert.
    • Eenvoudige ontwikkeling en implementatie in de beginfase.
    • Moeilijkheden met schaalbaarheid, onderhoud en het doorvoeren van wijzigingen naarmate het project groeit.
  2. Microservices-architectuur:

    • De applicatie is verdeeld in een reeks kleine, onafhankelijke services die via het netwerk (vaak via API) communiceren.
    • Elke service is verantwoordelijk voor een specifieke functionaliteit en kan onafhankelijk worden ontwikkeld, getest en uitgerold.
    • Verbeterde schaalbaarheid, veerkracht tegen storingen (uitval van één service beïnvloedt de anderen niet), mogelijkheid om verschillende technologieën te gebruiken.
    • Complexiteit in het beheer van een groot aantal services, behoefte aan gedistribueerde logging en monitoring.
  3. Servicegeoriënteerde architectuur (SOA):

    • Bestaat uit services die via een bedrijfsbus (ESB - Enterprise Service Bus) communiceren.
    • Services kunnen groot zijn en verschillende protocollen gebruiken.
    • Doel: meer flexibiliteit en hergebruik van services binnen de organisatie.
    • Verschil met microservices: grotere services, centrale communicatiebus.
  4. Serverless architectuur:

    • Ontwikkelaars richten zich op het schrijven van code, terwijl server- en infrastructuurbeheer wordt gedaan door de cloudprovider (bijvoorbeeld AWS Lambda, Azure Functions).
    • Betaling op basis van gebruik, automatische schaalvergroting.
    • Verlaging van operationele kosten en administratieve inspanningen.
    • Beperkingen qua uitvoeringstijd en bronnen, afhankelijkheid van cloudprovider.
  5. N-laagse architectuur:

    • De applicatie is verdeeld in logische lagen of niveaus, elk met een bepaalde rol en die alleen communiceren met aangrenzende lagen.
    • Typische lagen: presentatie laag (UI), bedrijfslogica laag, gegevens toegang laag.
    • Verbetert modulariteit en vergemakkelijkt scheiding van verantwoordelijkheden.
graph TD
    A[Gebruiker] --> B{Webservice};
    B --> C[Architectuur];
    C --> D[Monolithisch];
    C --> E[Mikroservices];
    C --> F[SOA];
    C --> G[Serverless];
    C --> H[N-laagse];