Wat is het en wat kan ik ermee als developer?
SAP heeft sinds een aantal jaar een nieuwe techniek voor het bouwen van maatwerk-applicaties beschikbaar gemaakt. Naast dat wij als developers Fiori applicaties kunnen bouwen op bestaande technieken middels SEGW-services en RAP, kunnen we dat nu ook met CAP. In het vorige artikel over CAP, lees je in de basis wat het is en wat het qua voordelen biedt binnen jouw organisatie. In dit artikel zoomen wij iets meer in op de techniek en leer je meer over wat je er als developer nou echt mee kunt.
Wat is CAP?
Voor het geval dat je deel 1 niet hebt gelezen, even een korte samenvatting: CAP is niets meer en niets minder dan een raamwerk van programmeertalen, code-bibliotheken en gereedschappen waarmee grootschalige applicaties gebouwd kunnen worden. Hierbij wordt impliciet gebruik gemaakt van bewezen best-practices en veel out-of-the-box oplossingen voor veelvoorkomende taken. Deze vrij abstracte definitie geeft al een belangrijk aspect van CAP prijs; het is een combinatie van bouwblokken waarmee een applicatie gebouwd kan worden.
Met het gebruik van CAP ligt de focus op het probleemdomein en niet zo zeer op de techniek. Een developer hoeft zich niet druk te maken over de precieze technische implementatie van bijvoorbeeld de fysieke tabellen in de database, dit gebeurt allemaal impliciet door de definitie van het datamodel in een vrij eenvoudige notatie. Hierdoor zal de developer samen met de functioneel experts dit domeinmodel zorgvuldig moeten opstellen, waardoor automatisch de focus op de functionaliteit komt te liggen, niet zo zeer op de techniek. CAP ontmoedigt de handmatige implementatie van het opslaan van technische velden zoals unieke identifiers, waarden in verschillende talen en meta-data. Hiervoor zijn standaardoplossingen beschikbaar in CAP.
CAP wordt het meest overzichtelijk samengevat in onderstaande afbeelding.
Zonder al te diep in te gaan op de techniek, zullen we de verschillende componenten die we in de afbeelding zien toelichten.
Platformen en infrastructuren
We beginnen onderaan bij het licht grijze blokje ‘Platformen en infrastructuren’. Op de bovenstaande afbeelding is te zien dat CAP te gebruiken is op, en met, verschillende platformen en infrastructuren. CAP applicaties kunnen gedeployed worden op platformen als Cloud Foundry en kunnen gebruikmaken van de data uit on-premise systemen.
Runtimes
Het blokje erboven ‘Runtimes’ geeft aan dat de daadwerkelijke technische implementatie kan geschieden in meerdere programmeertalen. Vooralsnog kan een ontwikkelaar kiezen om de CAP applicatie in Java (Spring framework) of in JavaScript (Node.js framework) te bouwen.
CAP als spin in het web
Vervolgens komen we uit bij de core, het blokje ‘CAP’. Hierbinnen zien we 4 verschillende blokjes. ‘Core data services’ zijn de definities van onze data-modellen, ofwel een weerspiegeling van ons probleemdomein. ‘Enterprise services’ zijn de definitie van de dataservices en onderliggende logica. Dit kun je zien als een projectie van ons datamodel. Hier geven we aan welke data uit het model zichtbaar wordt, op welke manier dat gebeurt, wat je met die data kan doen en welke maatwerk logica er ingebouwd wordt. ‘Connectors’ houdt in dat we verschillende services van het BTP, of van buiten af (denk aan third-party en open source producten), kunnen incorporeren in onze applicatie. Hierbij is de ‘Identity & Auth’ service een belangrijke mogelijkheid; deze service kan de authenticatie van gebruikers binnen onze applicatie regelen. Daarmee hebben we ook het hele blok ‘Platform services’ aan de rechterkant belicht. Als laatste hebben we in het midden dan nog het blokje ‘Adaptors’. Dit blokje geeft aan dat we onze services, die gemaakt zijn op ons datamodel, beschikbaar kunnen stellen aan een front-end applicatie middels verschillende technieken. Denk hierbij aan de bekende servicedefinitie OData waar veel SAP developers mee overweg kunnen. Wederom is de ontwikkelaar vrij om te kiezen wat het beste bij de use-case past. Hiermee is het blokje ‘Protocols’ ook uitgelicht.
Front-end
Dan houden we nog 1 blok over; de bovenste ‘Front ends’. Dit blok geeft aan dat er verschillende UI’s gebouwd kunnen worden binnen een CAP applicatie. Hiermee kunnen fysiek verschillende applicaties op 1 service gebouwd worden, maar kan je kunt ook voor verschillende UI technieken kiezen. Er kan gebruik gemaakt worden van de bekende technieken van SAP zoals SAP Fiori Elements en SAPUI5, maar je kan er ook voor kiezen om andere bekende UI raamwerken zoals React of Vue.js te gebruiken.
Samengevat is een CAP applicatie opgebouwd uit verschillende bouwblokken waarmee een fullstack applicatie gemaakt kan worden voor een groot bereik aan verschillende use-cases.
Voordelen CAP
We kunnen concluderen dat SAP CAP de mogelijkheid biedt aan de ontwikkelaar om zelf de bouwblokken, van SAP en andere partijen, bij elkaar te zoeken die benodigd zijn voor het bouwen van een applicatie in de specifieke use-case. Door het gebruik van deze bouwblokken is de ontwikkeling van een CAP applicatie relatief flexibel; het datamodel kan makkelijk worden aangepast of uitgebreid bij groei of wijzigingen. SAP noemt dit het grow-as-you-go concept. SAP CAP biedt automatisch veel mogelijkheden out-of-the-box waardoor de ontwikkelaar relatief snel een werkende applicatie draaiend heeft met veel voorkomende functionaliteiten die anders veel tijd hadden gekost om te implementeren. Omdat CAP gebruik maakt van een wereldwijde variatie aan bekende technieken ben je niet afhankelijk van één leverancier, maar zijn er altijd alternatieven (proprietary én open source!). Dit voorkomt vendor lock-ins.
In de praktijk
Wil je graag CAP in jouw organisatie inzetten of ben je benieuwd hoe CAP gebruikt kan worden? Lees dan deze blog over de inzet mogelijkheden van CAP binnen jouw organisatie.
Kansen voor jou als developer
Lijkt het jou interessant om deze techniek aan de slag te gaan? Voel je vrij om contact met ons op te nemen. Vanuit INNOV8iON geven wij ook trainingen in het maken van CAP applicaties, kijk eens op onze informatiepagina over de CAP-training.