Uitpakparty Oracle ADWC: een kennismaking

Mijn werkgever Caesar is door Oracle gevraagd om een pilot te gaan doen met een nieuw product, de Oracle Autonomous Datawarehouse Cloud (dat inmiddels al weer ongeveer een half jaar oud is) . Het lijkt me leuk om hier kennis van op te doen, dus ik mag het product “uitpakken”. Dit uitpakken is in dit geval het aanmaken van een database in de cloud , wat eigenlijk binnen 10 minuten wel is gebeurd. Het omvat het invullen van een schermpje met een aantal parameters (zie figuur1 voor een gedeelte ervan) en de database is “up and running”

Even een stapje terug.. Oracle is bezig om een nieuwe generatie cloud producten uit te rollen , nu zoveel mogelijk “autonomous”. Dit slaat niet alleen op het beheer van de database zelf , want nu een stuk minder nodig is, maar ook op automatisch patchen en bijwerken van alle software. Je levert hiervoor wat in, je kunt namelijk het moment van bijpatchen niet zelf kiezen, maar je krijgt er ook iets voor terug, je hoeft je er namelijk helemaal niet mee bezig te houden.

READ MY LIPS, NO MORE INDEXES

Bush verloor de verkiezingen van Clinton omdat hij in de periode daarvoor niet waar kon maken dat er geen nieuwe belastingen kwamen. (Read my lips, no new taxes). Oracle claimt met de komst van de ADWC dat er geen indexen meer nodig zijn om de queries te laten performen. Dat is nogal een statement. Zou men dit waar kunnen maken of zou hier later ook op terug gekomen moeten worden ? Een paar eerste grote queries performen in ieder geval wel goed “out of the box”. De database heeft zelf allerlei slimme opties die op de achtergrond werken om een query zo snel mogelijk terug te laten komen met resultaat, zonder dat een ontwikkelaar daar iets van meekrijgt.

AAN DE SLAG

Het eerste waar mijn oog op valt in de documentatie zijn de verschillende “Consumer Groups”. Het is mogelijk om bij het aanmaken van een connectie aan te geven hoeveel resources een gebruiker mag afnemen. Dit is onderverdeeld in 3 groepen : high, medium en low. (zie voor de kenmerken figuur 2).

Nou dat gaan we dan maar eens uitproberen, ik maak een drietal connecties aan met dezelfde user in de database, met ieder een andere consumer group. Ik kan hiervoor gebruik maken van sql developer waarmee ik via een wallet kan inloggen op de ADWC database in de cloud. Hierover is genoeg documentatie te vinden op internet, dus dat ga ik niet allemaal uitschrijven. Mocht je er toch nog vragen over hebben dan moet je maar even mailen…

Ik pak een redelijk zware query en voer hem uit via alle drie de connecties (enkele malen achter elkaar om rekening te houden met de effecten van caching). Tot mijn verbazing zie ik uiteindelijk geen verschil in doorlooptijd van de query. Na enig fronsen en nadenken blijkt dit eigenlijk precies wat ik zou moeten verwachten. Ik draai de database met 1 CPU, dus het is niet mogelijk om queries in parallelle modus uit te laten voeren. Er zijn op dit moment ook geen andere collega’s die gebruik maken van de ADWC, dus er zijn geen effecten van concurrency. Hmm, dan maar iets anders proberen om de verschillen te zien tussen de consumer groups. Het is mogelijk om, terwijl de database draait, het aantal CPU’s op te hogen. Dat gaan we dan maar eens doen..

Binnen een paar seconden is de database opgeschaald van 1 naar 2 CPU’s en ja hoor, nu zie ik dat de query dubbel zo snel is in de “high” consumer group vergeleken met de “low” consumer group. Test geslaagd.

Oracle APEX World 2018

Peter Ribbers was voor Caesar Experts aanwezig op de Oracle Apex World 2018. Hieronder zijn verslag.

Keynote David Peake – Oracle

“Collaboration, not confrontation “ , dat is de houding die je volgens David Peake van Oracle moet hebben tegenover de zogenaamde “shadow-IT”. In veel organisaties is een niet aflatende strijd tegen de excelsheets , access-applicaties en door de eindgebruiker aangekochte softwarepakketten. Veelal ontstaan door een goed gevulde portfolio bij de IT-afdeling, waardoor business-collega’s in de verleiding komen om dan maar snel zelf even wat in elkaar te knutselen. Met als gevolg een stammenstrijd tussen de business en de IT-afdeling die zich gepasseerd voelt en vreest voor een data-wildgroei die ze misschien ooit zelf eens zullen moeten structureren of van support moeten voorzien.

Apex World als vanouds op de SS Rotterdam

“Faciliteer ze”, is wellicht een benadering om uit deze impasse te komen. David maakt duidelijk dat Apex een oplossing is die simpel genoeg is om uit te leggen aan een eindgebruiker en uitgebreid genoeg is om een ontwikkelaar te voorzien van een goede toolkit. Als de IT-afdeling een goede structuur neerzet met bv standaard autorisatie en koppelingen met enterprise data, dan kan een “citizen developer” applicaties neerzetten die een grotere kwaliteit hebben dan de gemiddelde Excel sheet. Beide partijen winnen. De business wordt gefaciliteerd, terwijl IT niet de controle verliest of overladen wordt met werk.

Uiteraard moet het doel van de applicatie in de gaten gehouden worden en kan een snel ontwikkelde “business-applicatie” doorgroeien tot een serieus idee voor een door de IT-afdeling onderhouden oplossing. Maar dan zit het in ieder geval in dezelfde technische omgeving.

Het belang van de dikke database

Na de opening van David heeft Alex Nuijten ons (nogmaals) gewezen op het belang van de dikke database: beschouw Apex als een dunne ontwikkel-laag en stop de logica in de database. Database-objecten raken “invalid” bij wijzigingen en geven zo direct feedback op je impactanalyse, terwijl Apex-pagina’s tijdens runtime fouten kunnen veroorzaken. Alex promoot hiervoor een systeem waarbij je per Apex-pagina views en packages aanmaakt met daarin de naam van de pagina, zodat alles snel terug te vinden is.

De stand van Caesar Experts

Golden nuggets

Na de (overigens voortreffelijke) lunch leidde Dietmar Aust ons in razend tempo door de “golden nuggets” van Apex 5.2. Het viel me op dat er voor een subrelease nog vrij veel extra functionaliteiten in zitten. Een greep uit de “nuggets” :

  • Spotlight search (verbeterde zoekmogelijkheden)
  • Compatibility mode om pagina’s te renderen met de engine van vorige versies
  • Een nieuw authorisation schema, namelijk social login, waarbij je bv op basis van een Google account kunt inloggen.
  • Een application access control (met api’s), waarbij je de uitgegeven autorisatie per pagina inzichtelijk hebt en zelfs ook kunt aanpassen.
  • De introductie van application settings die binnen een OTAP straat opgeleverd kunnen worden om op die manier omgevingen gelijk te houden.
  • E-mail templates.

Dat van tevoren duidelijk was dat Dietmar wist te boeien bleek wel uit het feit dat het balkon in de zaal ook gebruikt moest worden om iedereen een plek te geven. Een waardevolle sessie!

Daarna was het de beurt aan het Oracle team om ons in te wijden in nieuwe features van Apex 5.2 (overigens zonder al te veel overlap met de sessie van Dietmar). Persoonlijk vond ik deze presentaties wat minder. Ietwat langdradig en over features (zoals nieuwe grafieksoorten) die je in de praktijk toch niet snel zult toepassen.

Voorafgaand aan de sessies wist David de hele zaal wel in beweging te krijgen (zie foto).

Al met al een geslaagde dag. Of de Apex-community mee kan liften op de low-code hype is voor mij nog steeds de vraag, maar een zaal vol enthousiaste developers bewijst in ieder geval dat ze springlevend is!

De zaal in beweging

Apex API’s door Moritz Klein

Op sommige momenten tijdens Apex World voel ik me ongeveer als onze kinderen : eens in de zoveel tijd mogen ze naar een oud-hollandse snoepwinkel in de buurt. Eigenlijk willen ze alles wat ze zien, maar met de 50 cent die ze meekrijgen moeten ze toch lastige keuzes maken. Na de keynote van de ochtend moet ik de keuze maken of ik ga voor de uitleg van de Apex API’s van Moritz Klein of de verhandeling van Aljaz Mali over security binnen applicaties.

Beiden lijken interessant, uiteindelijk worden het toch de API’s. Het stelt niet teleur : na een vrij lange inleiding geeft Moritz interessante voorbeelden van wat er mogelijk is : van vasthouden van de scrollbar positie tot een robuuste implementatie van dynamic fields waarbij de definitie van de velden wordt opgeslagen in de database. Dit zijn zeker dingen waarin ik me nog eens verder ga verdiepen.

Moritz Klein in de sfeervolle Odyssee Room

Tijdens de pauze weer bekenden spreken : het lijkt soms wel een reünie van oud-collega’s. Als ik om me heen kijk is dat bij veel meer mensen het geval. Het is duidelijk dat Apex World naast een technische, ook een sociale functie heeft.

Vervolgens weer het “kind-in-de-snoepwinkel-effect” , het worden de sessies van Roel Hartman en Alan Arentsen. Roel stort ladingen code over ons uit over het aanpassen van het interactive grid, gelukkig zijn er ook plugin’s voor de meeste gevallen. Alan slaat een brug tussen Apex en JET, zeker interessant om te zien wat er mogelijk is als je JET-componenten gaat gebruiken. JET wordt meegeleverd binnen APEX (in de nieuwe 18.1 release zit ook de recente JET 4.2 versie). Als toegift komen alle uitwerkingen beschikbaar op Github.

Forms2AEX

David sloot de dag af met een presentatie over Forms2AEX. Het APEX team is een tijd geleden al afgestapt van automatische conversie. “The way to go” is nu gebaseerd op het omzetten van Forms naar XML en het importeren hiervan in een Forms conversie applicatie binnen APEX. In deze applicatie kunnen alle Forms-componenten onderzocht worden op functionaliteit en de wenselijkheid om deze over te nemen in de nieuwe applicatie. Een gestructureerde benadering, die helaas veel werk vereist. Iets waar Caesar Experts ook goed mee van dienst kan zijn, vanwege hun uitgebreide Forms en Apex ervaring.

Caesar-Experts-Oracle-Apex-David-Peake

Over het allerlaatste onderdeel hoef ik niets meer te vertellen, dat spreekt voor zich!

Business Rules Management, één centrale waarheid, onafhankelijk van IT!

Innovatie is een belangrijk aspect voor het verbeteren van je product of dienstverlening. Maar wat doe jij als je jouw eigen aanpassingen niet snel zelf kunt doorvoeren, de IT te complex is en er zo vertragingen ontstaan? Jij draagt de verantwoordelijkheid, maar je bent niet meer ‘in control’. Jij wilt verbeteren, jij wilt verder, echter ben je afhankelijk van de interne IT-afdeling of van externe systeem consultants. Je verliest kostbare tijd die nodig is om de concurrentie voor te blijven. Gelukkig is er Business Rules Management: De aanpak waarmee je één centrale waarheid krijgt, onafhankelijk van de IT.

Wat is Business Rules Management?

Bedrijven die hun processen willen verbeteren of hun klanten optimaal van dienst willen zijn moeten steeds sneller beslissingen kunnen nemen. Veel van deze beslissingen kunnen worden vastgelegd in bedrijfsregels. Business Rules Management (BRM) wordt toegepast om de flexibiliteit, het overzicht en de consistentie van je bedrijfsregels te verhogen. Dit doe je door het centraal vastleggen en beheren van alle bedrijfsregels binnen jouw organisatie. Hiermee is het mogelijk om deze bedrijfsregels te beheren en te automatiseren over verschillende afdelingen en systemen heen, zonder dat de IT-architectuur of applicatiecode moet worden aangepast. Business Rules Management verhoogt de flexibiliteit en de efficiëntie van bedrijfsprocessen. Dit wordt gedaan door te modelleren i.p.v. te programmeren, wat ervoor zorgt dat de business weer zelf regie krijgt over haar processen.

Wanneer kan Business Rules Management jouw ondersteunen?

De business draait op het continu nemen van diverse beslissingen (contractafspraken, prijsberekeningen, kortingen, wet- en regelgeving), oftewel Business Rules. Al deze beslissingen zijn vaak niet centraal vastgelegd. Deze zitten in de hoofden van medewerkers of diep verstopt in programmacode. Daardoor zijn deze onbereikbaar voor de business. De beslissingen zijn vaak niet consistent of zelfs tegenstrijdig tussen de verschillende systemen of afdelingen.

Wat is de toegevoegde waarde van Business Rules Management?

Bedrijfsregels worden centraal vastgelegd en beschikbaar gesteld aan alle systemen. Dit gebeurt door de business zélf en op een begrijpelijke en leesbare manier. Wijzigingen kunnen snel op één plek worden doorgevoerd, wat maximale business agility stimuleert. Het IT-landschap maakt gebruik van centraal vastgelegde beslissingen, wat zorgt voor consistentie over de gehele organisatie heen. Centraal vastgelegde beslissingen kunnen gemakkelijk en snel worden aangepast of worden uitgebreid op basis van nieuwe inzichten. Efficiëntie, controle, flexibiliteit en consistentie zijn hierbij de belangrijke pijlers van BRM. Tevreden met het proces en het resultaat? Dan wordt het tijd om de vastgelegde beslissingen te automatiseren. Lees hier meer over in de volgende blog, waar we dieper ingaan op BRM-beheer tooling (de Business Rules Engine).