We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder
We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder

Alle blogs

Leestijd 4 min
8 MEI 2025

OutSystems: een katalysator voor bedrijfsinnovatie In het snelle zakelijke landschap van vandaag de dag moeten organisaties innovatieve oplossingen omarmen om voorop te blijven lopen. Er zijn veel strategische technologische trends die cruciale bedrijfsprioriteiten aanpakken, zoals digitale immuniteit, composability, AI, platform engineering, Low-Code en duurzaamheid. OutSystems , het toonaangevende Low-Code ontwikkelplatform , is een game-changer geworden in het ondersteunen van organisaties om deze trends efficiënt en duurzaam te implementeren. OutSystems verbetert cyberbeveiliging Omdat organisaties steeds meer vertrouwen op digitale systemen, vormen cyberbedreigingen een aanzienlijk risico. Daarnaast speelt de digitale interactie met klanten, medewerkers en partners een vitale rol in het welzijn van een bedrijf. De immuniteit en veerkracht van een organisatie is nu net zo sterk en stabiel als de digitale kernsystemen. Elke onbeschikbaarheid kan leiden tot een slechte gebruikerservaring, inkomstenverlies, veiligheidsproblemen en meer. OutSystems biedt een robuust en veilig platform dat helpt bij het opbouwen van digitale immuunsystemen die bescherming bieden tegen evoluerende cyberbeveiligingsuitdagingen. Met geavanceerde detectie van bedreigingen, continue monitoring, veilige codeerpraktijken en AI-code-scanning zorgt OutSystems ervoor dat applicaties veerkrachtig en beschermd zijn. Bovendien dekt het platform de meeste beveiligingsaspecten voor projectteams, zodat zij zich kunnen richten op het leveren van hoge waarde aan eindklanten, terwijl best practices door het platform worden aanbevolen door middel van codeanalyse met behulp van ingebouwde patronen. OutSystems vereenvoudigt het beheer van cloud-native infrastructuur Cloud-native architectuur is een essentieel onderdeel geworden voor moderne applicatieontwikkeling. Het OutSystems Developer Cloud Platform stelt teams in staat om eenvoudig cloud-native applicaties te maken en in te zetten, waarbij gebruik wordt gemaakt van de schaalbaarheid en flexibiliteit van cloud-infrastructuur via Kubernetes . Het stelt bedrijven in staat om: Het gebruik van resources te optimaliseren Applicatieruntimes automatisch schalen Operationele kosten verlagen Duurzame praktijken toe te passen (serverless computing, automatisch schalen, ...) Dit alles zonder de noodzaak om vooraf te investeren in infrastructuur of de diepgaande technische kennis die nodig is om het te bedienen en de typische lasten die daarmee gepaard gaan. OutSystems: toegangspoort tot AI en automatisering AI en hyperautomatisering zijn essentiële zakelijke hulpmiddelen geworden voor hulp bij het maken van content, virtuele assistenten, snellere codering, documentanalyse en nog veel meer. OutSystems stelt professionele ontwikkelaars in staat productiever te zijn door AI in te bouwen in de gehele levenscyclus van applicaties. Ontwikkelaars profiteren van AI-ondersteunde ontwikkeling, query's in natuurlijke taal en zelfs generatieve AI. Als je eenmaal klaar bent met je ontwikkeling, is het transporteren van een app naar de test- of productieomgeving slechts een kwestie van een paar klikken. Het platform automatiseert het proces in hoge mate en voert zelfs alle noodzakelijke validaties en afhankelijkheidscontroles uit om onbreekbare implementaties te garanderen. OutSystems integreert naadloos met AI-mogelijkheden van grote cloudproviders zoals Amazon, Azure (OpenAI) en Google, waardoor projectteams gebruik kunnen maken van generatieve AI, machine learning, natuurlijke taalverwerking en computervisie . Door geavanceerde technologieën toegankelijker te maken, versnelt OutSystems digitale transformatie en creëert het duurzame concurrentievoordelen. OutSystems maakt samengestelde architectuur voor flexibiliteit mogelijk Composable architectuur en business apps, gekenmerkt door modulaire componenten, maken snelle aanpassing aan veranderende bedrijfsbehoeften mogelijk. OutSystems omarmt deze trend door een cloud-native Low-Code platform te bieden dat dit type architectuur gebruikt en ondersteunt. Het stelt teams in staat om eenvoudig samenstelbare technische en zakelijke componenten te bouwen. Met de visuele modelleerbenadering van Low-Code, een uitgebreide bibliotheek van aanpasbare vooraf gebouwde componenten en een microservice-gebaseerd applicatieleveringsmodel, bevordert OutSystems hoge herbruikbaarheid en flexibiliteit. Deze samengestelde aanpak stelt organisaties in staat om: Snel te reageren op veranderende bedrijfsbehoeften Te experimenteren met nieuwe ideeën Duurzame, schaalbare en veerkrachtige oplossingen te creëren OutSystems maakt de creatie van bedrijfsapps mogelijk die eenvoudig kunnen worden geïntegreerd, vervangen of uitgebreid, en ondersteunt bedrijven op hun reis naar combineerbaarheid en flexibiliteit. OutSystems vergemakkelijkt self-service en nauwe samenwerking Platform engineering, dat de nadruk legt op samenwerking tussen ontwikkelings- en operationele teams, zorgt voor efficiëntie en schaalbaarheid. OutSystems biedt een gecentraliseerd Low-Code platform dat dit concept in de kern omarmt door voortdurend te worden uitgebreid met nieuwe functies, tools en versnellers. Bovendien faciliteert het platform de gehele levenscyclus van applicatieontwikkeling tot aan operations . Inclusief functies zoals Versiebeheer Geautomatiseerde implementatie Continue integratie en levering (CI/CD) Registratie Bewaking Organisaties in staat stellen om agile DevOps-praktijken toe te passen. Met OutSystems kunnen cross-functionele teams naadloos samenwerken, waardoor een snellere time-to-market en een betere softwarekwaliteit mogelijk worden. Door platform engineering principes te ondersteunen, helpt OutSystems organisaties om duurzame softwarelevering en operationele uitmuntendheid te bereiken. OutSystems stimuleert duurzaamheid in IT OutSystems leidt de weg in het stimuleren van duurzaamheid in IT door middel van zijn groene IT Low-Code applicatie-ontwikkelplatform en strategische initiatieven. Door energie-efficiënte ontwikkeling mogelijk te maken , het beheer van de levenscyclus van applicaties te stroomlijnen , gebruik te maken van een cloud-native infrastructuur en herbruikbaarheid te bevorderen, stelt OutSystems een voorbeeld voor de branche. Organisaties kunnen papierloze processen ontwikkelen, taken automatiseren, legacy-systemen moderniseren en IT-landschappen vereenvoudigen met behulp van OutSystems 3 tot 4 keer sneller, waardoor de totale kosten en ecologische voetafdruk afnemen. Door OutSystems te omarmen, kunnen bedrijven hun IT-activiteiten afstemmen op een groenere toekomst, bijdragen aan duurzaamheid en bouwen aan een veerkrachtigere planeet. Inpakken In het tijdperk van digitale transformatie en duurzaamheid is OutSystems een krachtige bondgenoot voor organisaties, die essentiële bedrijfsinnovaties levert, zoals ... High-performance Low-Code ontwikkeling Cloud-native architectuur AI en automatisering Robuuste beveiligingsmaatregelen Samenwerkende DevOps-praktijken Neem de OutSystems-reis om je aan te passen aan IT-trends, uitzonderlijke resultaten te leveren en bij te dragen aan een duurzame en veerkrachtige toekomst. Sta je te popelen om met OutSystems te beginnen? Laat ons helpen

Lees verder
Leestijd 5 min
6 MEI 2025

Wat is Event Storming? Voordat we in detail treden, bespreken we eerst de rol van Event Storming in een agile context. Event Storming is de afgelopen jaren een zeer populaire methodologie geworden en heeft zijn plaats gevonden in de levenscyclus van softwareontwikkeling als techniek voor het verzamelen van vereisten. Event Storming werd in 2012 ontwikkeld door Alberto Brandolini als een alternatief voor nauwkeurige UML-diagrammen. Het is een workshopachtige techniek die projectstakeholders samenbrengt (zowel ontwikkelaars als niet-technische gebruikers) om complexe bedrijfsdomeinen te verkennen in domeingedreven ontwerparchitectuur . Een van de sterke punten van Event Storming is dat het zich kan richten op de zakelijke belanghebbenden en het hoge interactieniveau. De techniek is eenvoudig en vereist geen enkele technische training. Met Event Storming kun je verschillende doelen nastreven: verbeterpunten van een bestaande bedrijfsstroom identificeren; onderzoeken of een nieuw bedrijfsmodel levensvatbaar is; inzicht krijgen in een gedeeld begrip van hoe een bedrijf werkt; schone en onderhoudbare Event-Driven software ontwerpen. Er zijn drie primaire abstractieniveaus voor Event Storming: Big picture: wordt gebruikt voor het verkennen van het huidige begrip van het systeem door belangrijke mensen met verschillende achtergronden samen te brengen en een gedeeld begrip te creëren. Procesmodellering: op dit niveau modelleren we één bedrijfsproces van begin tot eind, verduidelijken we alle bedrijfsregels en zorgen we ervoor dat iedereen op één lijn zit. Softwareontwerp: in deze laatste stap beginnen we met het ontwerpen van de software op basis van bouwstenen uit Domain-Driven Design en een reactief programmeerparadigma. Elke sticky note kan tijdens de implementatiefase een softwareartefact worden. Bij het toepassen van Event Storming moet je eerst de Domain Events in het probleemdomein identificeren op een tijdlijn. De bron van een Domain Event kan het volgende zijn: Een gebruikersinteractie Een gebeurtenis die plaatsvindt Het gevolg van het verstrijken van de tijd Het gevolg van een andere Domain Event. Vervolgens schrijven we deze domeingebeurtenis op een oranje sticky note. Als alle domeingebeurtenissen gedefinieerd zijn, is de tweede stap het vinden van de opdracht die deze domeingebeurtenissen heeft veroorzaakt. Opdrachten worden op blauwe briefjes geschreven en direct voor de bijbehorende domeingebeurtenis geplaatst. Tenslotte moet je de aggregaten identificeren waarbinnen commando's worden uitgevoerd en waar gebeurtenissen plaatsvinden. Deze aggregaten worden op gele plakbriefjes geschreven. De Systeemmodeler gebruiken In de afgelopen jaren hebben we Event Storming omarmd als een techniek voor het verzamelen van vereisten binnen ACA-IT Solutions - zozeer zelfs, dat het nu een geïntegreerd onderdeel is van ons portfolio en de manier waarop we software ontwikkelen voor onze klanten. Als u daar meer over wilt weten of als u meer wilt weten over Event Storming, kunt u hier contact met ons opnemen . De System Modeler gebruikt EventStorming als inspiratie voor het documenteren (modelleren) van de gebeurtenissen die bedrijfsprocessen vertegenwoordigen, het configureren van high-level eigenschappen die aan deze gebeurtenissen zijn gekoppeld en vervolgens het automatisch genereren van Apps en Collaboration Types vanuit het model. Een System Modeler sessie omvat het gebruik van vijf virtuele sticky notes om te representeren: Gebeurtenis: iets dat gebeurt in het bedrijf Reactie: reacties op gebeurtenissen Opdracht: gebruikergestuurde acties die gebeurtenissen produceren Extern systeem: systemen die extern zijn aan het bedrijf Issue: documenteren van potentiële problemen of onbekenden over gebeurtenissen De System Modeler maakt ook gebruik van één container: Bounded Context: bevat notities die een gemeenschappelijk vocabulaire delen Hieronder ziet u het resultaat van een EventStorming-sessie in de System Modeler, die het melding- en volgsysteem voor gaten in het wegdek van een stad voorstelt. Het model vertegenwoordigt: een mobiele app waarmee stadsbewoners een pothole kunnen melden Aanmaken van nieuwe databaserecords om gemelde gaten te documenteren realtime melding van nieuwe meldingen van gaten aan stadsdiensten medewerkers kunnen de status van een gat bijwerken realtime melding aan de meldende bewoner wanneer de status is gewijzigd System Modeler is een geweldige manier om de kloof te overbruggen tussen het verzamelen van requirements voor een event-driven applicatie en de daadwerkelijke implementatie. In dit geval doen we dat elektronisch op het canvas. Bovendien is dit een samenwerkingsomgeving, waardoor meerdere mensen tegelijkertijd aan dit model kunnen werken. Met de System Modeler kunnen gebruikers samenwerken met meerdere personen, niet alleen in een bepaalde ruimte, maar op een willekeurig aantal geografische locaties. Dit is een geweldige manier om echt een soort gedistribueerde requirements gathering sessie te doen. Zeker nu de pandemie veel mensen ervan weerhoudt om naar kantoor te gaan! Van vereisten naar supersnelle POC's Op basis van deze sessie voor het verzamelen van vereisten kunnen we nu dit vereistenmodel gebruiken en een toepassing maken. Het enige wat gebruikers hoeven te doen is overschakelen van de 'modelmodus' naar de 'genereermodus' en de verschillende elementen groeperen. Nadat de onderwerpen en samenwerkingstaken zijn gedefinieerd, hoeft u alleen maar op de knop Genereren te klikken. Deze eenvoudige handeling alleen al genereert ongeveer 70% van de code van deze specifieke applicatie! Dit maakt System Modeler waarschijnlijk de eenvoudigste manier om zeer snel van het ontwerpen van applicatie-eisen over te gaan op de ontwikkeling van de applicatie zelf. Conclusie Moderne applicaties moeten in real-time werken, omdat ze worden aangestuurd door wat er op dat moment in de echte wereld gebeurt. Ze moeten gemakkelijk kunstmatige intelligentie en IoT-technologie integreren en de applicaties zelf moeten worden gedistribueerd bij de bron van de gebeurtenissen. De softwarelogica moet overal kunnen draaien (cloud, edge, on-premises). Voor deze toepassingen is het ook nodig om mensen in het proces te integreren wanneer een hoger niveau van intuïtie en redenering nodig is. Met System Modeler is het eenvoudig om snel een zeer groot deel van zo'n applicatie te genereren. De System Modeler heeft immers de mogelijkheid om requirements te verzamelen van zakelijke gebruikers, domeinexperts en ontwikkelaars en deze requirements zeer snel om te zetten in een draaiende event-driven applicatie. Het maken van deze supersnelle POC's is een koud kunstje! Als u meer wilt weten over hoe ACA Group en event-driven technologie uw digitale transformatie kunnen versnellen, neem dan contact met ons op! Onze diensten

Lees verder
Wat is Low-Code en waarom zou je er iets om geven?
Leestijd 5 min
6 MEI 2025

In deze blog duiken we dieper in 'Low-Code' als concept en hoe je het beste Low-Code platform kiest voor jouw bedrijf. Low-Code als concept Low-Code, visual development application modelling, citizen development, ... Als je een ontwikkelaar bent, zullen deze termen zeker een belletje doen rinkelen. Maar wat is Low-Code precies, waarom is het belangrijk voor jou en wie heeft er baat bij? Het antwoord is eenvoudig: "Dat hangt ervan af". Als we een stap terug doen, is Low-Code een concept dat draait om visuele ontwikkeling of modellering en dat op grote schaal wordt ondersteund door automatisering . Deze definitie maakt het toepasbaar op veel verschillende gebieden in IT en meer. Hoe kies je het beste Low-Code platform? Een snelle blik op de rapporten van Forrest en Gartner levert meer dan 300 verschillende Low-Code platforms en producten op. Zijn deze allemaal gelijkwaardig? Duidelijk niet. Zijn ze allemaal bedoeld voor applicatieontwikkeling? Nogmaals, nee. Dus hoe kun je bepalen welk Low-Code platform, product of oplossing relevant zou kunnen zijn voor jou en je klanten? Als we ons concentreren op de leiders en bekende namen, kunnen we gemakkelijk enkele patronen herkennen om ze te categoriseren (zie het voorbeeld hieronder). Low-Code oplossingen per categorie - Robotische procesautomatisering (RPA) Het gebruik van Low-Code en visuele ontwikkeling/modellering voor het creëren van processen, integraties en automatisering. - Automatisering van levering van software op maat Traditionele ontwikkelingsframeworks versterken met Low-Code accelerators om delen van applicaties of startpunten te genereren. - Aanpassing van pakketten De meeste toonaangevende pakketleveranciers investeren in Low-Code oplossingen binnen hun eigen platform om aanpassingen te vergemakkelijken. - Testautomatisering Iedereen kent Selenium , een zeer krachtige tool om testscripts te maken en te onderhouden. Sommige platformen passen zelfs een no-code benadering toe om de testgevallen te modelleren en de Selenium-scripts te laten genereren, uitvoeren en onderhouden zonder dat codering nodig is. - Citizen ontwikkeling voor team- en afdelingsapps Moe van het werken met Excel of Google Sheets? Zoek je een makkelijk te gebruiken en te leren oplossing om kleine en eenvoudige applicaties voor je team of afdeling te bouwen? Dan zijn Citizen Development platforms de oplossing voor jou. Het is echter niet geschikt voor bedrijfsapplicaties. Gebruik het dus waarvoor het bedoeld is. Je wilt toch ook niet dat je tuinman je nieuwe elektrische auto in elkaar zet? - Enterprise full-stack ontwikkelingsplatformen Een Low-Code enterprise ontwikkelplatform biedt een grafische gebruikersinterface voor programmeren en genereert de onderliggende code automatisch, waardoor ontwikkelaars minder met de hand hoeven te coderen. Deze tools helpen niet alleen met snelle front-end ontwikkeling, maar ook met logica, back-end, integraties en zelfs lifecycle management. In met Low-Code ontwikkeling, uit met traditionele ontwikkeling? Kan Low-Code traditionele ontwikkeling zoals .Net of Java volledig vervangen? Natuurlijk niet! Maar Low-Code ontwikkelingsplatforms kunnen zeker helpen om meer projecten in minder tijd op te leveren met hetzelfde aantal mensen . Het stelt organisaties in staat om sneller te reageren op kansen met een kortere time-to-market. Bovendien kan het helpen om een geldige business case te maken voor projecten die op de lange baan werden geschoven vanwege "andere prioriteiten" en teams die zich voornamelijk richten op bedrijfskritische systemen in uw bedrijf. Waarom we Low-Code gebruiken bij ACA Group Als IT-consultancybedrijf en integrator richten we ons op het leveren van software op maat om aan de specifieke behoeften van onze klanten te voldoen. Low-Code biedt ons een krachtig hulpmiddel om dit te doen. En niet alleen voor de eenvoudige apps! Met het juiste Low-Code platform kunt u zelfs uw legacy moderniseren en klantgerichte web- en mobiele apps bouwen die geïntegreerd zijn met uw ERP, CRM, IAM en brede bestaande landschap. Het kan je ook helpen je IT-landschap te rationaliseren en te vereenvoudigen en de tools van je bedrijf terug te brengen onder IT Governance zonder dat je de business hoeft te vertellen "sorry, we hebben andere prioriteiten". Onze strategische keuze: OutSystems ACA koos voor een strategisch partnerschap met OutSystems , een toonaangevend en veruit het meest productieve, veelzijdige en stabiele Low-Code platform op de markt voor enterprise full-stack ontwikkeling. Ons team van experts werkt al sinds 2016 met OutSystems en heeft ook projecten opgeleverd met andere toonaangevende platforms. We blijven op de hoogte van de laatste aankondigingen, nieuwe functionaliteiten en grote verschillen tussen de 3 toonaangevende Low-Code platforms voor algemene applicatieontwikkeling. Op die manier kunnen we onze klanten adviseren over wat het beste past bij hun behoeften. OutSystems Developer Cloud: de beste oplossing voor full-stack ontwikkeling OutSystems Developer Cloud is het toonaangevende PaaS cloud native high performance Low-Code platform voor full-stack ontwikkeling en integraties. Het dekt de breedste set use cases. Van interne apps tot B2B- en B2C-klantgerichte web- en mobiele applicaties, processen en zelfs kernsystemen. Het gebruik ervan voor legacymoderniserings- en innovatieprojecten is een grote versneller voor uw digitale transformatie. De voordelen van OutSystems Developer Cloud Wat levert OutSystems Developer Cloud op voor bedrijven en de ontwikkelaars en software engineers die het gebruiken om de projecten op te leveren? 3-4x snellere levering Eén uniforme manier voor het ontwikkelen van web, mobiel, front-end, back-end en integraties Gemakkelijk te leren voor software engineers en webontwikkelaars AI-ondersteunde ontwikkeling en ingebouwde generatieve AI Geen extra ontwikkeltools nodig (GitHub, Eclipse, Visual Studio, ...) Ontwikkelteams gericht op het leveren van waarde Beveiligd vanuit de doos Veel minder onderhoud Geen infrastructuur om te beheren Ingebouwd levenscyclusbeheer Automatisch schalen Dit alles terwijl je nog steeds de architectuur en best practices in handen hebt. Wil je aan de slag met Low-Code? {% module_block module "widget_90cf7739-dc28-449d-9a8c-ff948108e163" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Let's do it together"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":null,"href":"","href_with_scheme":"","type":"CONTENT"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}

Lees verder