Streaming is belangrijk voor Performance en Memorygebruik

AUTEUR: GERRIT VAN BRAKEL APPLICATIE ARCHITECT FRANK!FRAMEWORK

Om de titel van dit document te onderbouwen en nader uit te leggen, is het goed om de verschillende fases te doorlopen. Beginnend bij de aspecten die meestal binnen een integratie component plaatshebben in een reguliere omgeving waarbij streaming nog geen onderdeel is.

Ten eerste komt er een bericht binnen dat daarna direct wordt getransformeerd. Dit getransformeerde bericht wordt daarna in zijn geheel verstuurd. De vertraging vindt over het algemeen plaats bij het binnenhalen en ook bij het doorsturen van het volledige bericht. Oorzaak hiervan ligt hem in het feit dat deze berichten worden ontvangen en verzonden middels netwerkverbindingen. Deze netwerkverbindingen hebben een beperkte snelheid en kennen veel verkeer.


Wat er gebeurt;

Het bericht dat wordt binnengehaald wordt opgebouwd in het geheugen en het systeem wacht tot dit volledig is afgerond. Nadat het volledig is opgebouwd zal het bericht worden getransformeerd naar of in een nieuw bericht. Het nieuwe bericht wordt vervolgens verzonden over de netwerkverbinding en het systeem wacht ook nu weer tot het in zijn geheel verzonden is. Na verzenden wordt er antwoord gegeven vanuit het systeem.

De situatie van het versturen en binnenhalen over meerdere netwerkverbindingen is hiermee geschetst. De winst die geboekt kan worden zit hem volledig in de wachttijden die worden opgebouwd.


WAAR ZIT DE WINST BIJ GEBRUIK VAN STREAMING?

In plaats van te wachten tot het hele bericht binnen gehaald is, gaan we in de nieuwe situatie gebruik maken van streaming. Zo gebruiken we de eventuele wachttijden nuttig.

Streaming haalt niet direct het gehele bericht binnen, maar slechts een stukje daarvan. Dit stukje wordt direct getransformeerd naar een nieuw stukje dat ook weer direct wordt verzonden. Nadat dit eerste stukje is getransformeerd wordt het volgende stukje binnengehaald, ook weer getransformeerd en daarna ook weer direct verzonden.

Hiermee ontstaat de situatie waarbij je anders zat te wachten op het binnenhalen van het gehele bericht, nu de verwerking en het versturen van een deel van het bericht gerealiseerd wordt. Tevens maak je wachttijden aan de kant van het verzenden ook efficiënt. In plaats van wachten tot het gehele bericht is verzonden, wordt nu het ophalen en het transformeren van het volgende stukje gerealiseerd.


BIJVANGST VAN GROTE VISSEN!

De situatie die bovenstaand wordt geschetst zal bij grote berichten nog veel duidelijker worden. De workload zal nog veel beter te schalen zijn en de wachttijden zullen naar rato afnemen.

Bij grote berichten is het voor de JVM nog maar de vraag of deze meteen genoeg geheugen beschikbaar heeft om het bericht binnen te halen. Vaak moet de Heap worden opgeruimd om er plaats aan te bieden. Dit kost tijd en dat levert irritatie op bij de gebruiker.

In het geval van de optie om te streamen is ook dit probleem volledig verleden tijd. In deze workload behoeft immers niet het gehele bericht in het geheugen te passen, daar deze slechts delen van het bericht verwerkt in fases. Het geheugen moet plaats bieden aan alleen dat kleine stukje. Wanneer dat stukje verwerkt is, zoals omschreven, en verzonden, dan kan de ruimte gebruikt worden voor het nieuwe stukje van het bericht. Garbage collect om grote stukken geheugen vrij te maken is daarmee ten einde en het zwoegen en wachten wordt omgezet in efficiëntie!

 

Conclusie

Streaming zorgt voor een betere gebruikerservaring en belast de onderliggende hardware minder. Hoe groter de files hoe meer tijd en hardware resources er bespaard worden.


Tot slot

In onze laatste release van het Frank!Framework(7.6) bieden wij standaard streaming aan. Wil je meer informatie? Neem hier contact op voor een adviesgesprek.

 

Benieuwd hoe WeAreFrank! een omvangrijke systeemintegratie succesvol afgerond heeft na de grootste overname in de Nederlandse verzekeringsmarkt?

waf-case-study

Juridisch was de overname in kannen en kruiken, maar op het gebied van systeemintegratie begon het avontuur toen pas. Jeroen Jansen van Rosendaal, vanuit WeAreFrank! nauw betrokken bij de systeemintegratie, neemt ons via case study mee in dit omvangrijke project.

Download case-study

Plan een gratis adviesgesprek in