Vriendennetwerken als Facebook en LinkedIn weten het al jaren: Het leggen van relaties doe je niet heel rigide en onderhoudsintensief in een relationele database, maar met behulp van een graph database. Wat kunnen we hier nog meer mee?
Graphs zijn data structuren die zowel de data als de relaties beschrijven, waarbij het logische datamodel gelijk is aan het fysieke datamodel. Netwerken en hiërarchieën zijn de meest bekende vormen van graphs. Bij graphs spreekt men over nodes en relaties tussen deze nodes. Zowel de nodes als de relaties kunnen eigenschappen hebben. Nodes kunnen ook labels hebben. Het leuke van een graph is dat nodes van verschillende typen kunnen zijn en dat niet elke node of relatie de zelfde typen eigenschappen hoeven te hebben. En dat de eigenschappen ook later aangevuld en gewijzigd kunnen worden. Je hoeft dit niet vooraf te modelleren. Als we op deze manier bijvoorbeeld een organigram vastleggen, kunnen we niet alleen de ‘echte’ hiërarchische organisatie registeren, maar ook nog eens ‘matrixen’ er overheen leggen, zodat inhoudelijke aansturing, of projectmatige aansturing gedurende een project ook duidelijk worden. Lekker flexibel dus! Relaties zullen op verschillende manieren gelegd kunnen worden, veelal automatisch. Door bijvoorbeeld klikgedrag of door het herleiden van relaties op basis van samenwerkingsvormen.
Microsoft Office Delve
Microsoft heeft met Office Delve een mooie implementatie bovenop de Office Graph ontwikkeld, die helpt om informatie jou te laten vinden. En als je dan toch gaat zoeken, krijg je alleen de echt relevante resultaten te zien. En dat werkt erg goed!
De graph is onontbeerlijk geworden in tijden van big (office) data. Met de huidige variëteit, snelheid en volumes van data is het gewoon niet meer mogelijk om met ouderwetste technieken op het juiste tijdstip toegang te hebben tot de juiste informatie. We worden overladen met data, events en andere prikkels, en door de ruis kunnen we de écht relevante informatie niet meer herkennen.
Daarnaast was het tot op heden erg veel ambachtelijk handwerk om relaties te leggen. De graph is hier echt de redding. Zijn er nog meer bekende it-uitdagingen die we beter kunnen oplossen met behulp van de graph?
Graph voor master data, applicatielandschap en identity & access
Een crm- of erp-systeem is leuk en kan veel voor je automatiseren, maar wát een werk is het om alles te configureren en de relaties op orde te houden. Om over de kwaliteit van al de operationele en master data maar niet te spreken! Bij master data hebben we de neiging om te denken aan de kwaliteit van elk losstaand item, zoals bijvoorbeeld een klantrecord of een artikel. Maar wat als we nu eens ook de relatie van deze master data items met andere items kunnen vastleggen? En op die manier een veel betere kijk op het gebruik van de data kunnen krijgen? En ook snel tot de conclusie kunnen komen dat Wim Pietersen waarschijnlijk dezelfde persoon is als Willem Pieterssen?
Het in kaart brengen van je applicatielandschap en de geboden applicatiefuncties is een behoorlijke uitdaging in de meeste organisaties. Dit is ook een typische kandidaat voor de graph. Waarbij allerlei kruisverbanden tussen de applicatiefuncties kunnen worden gelegd (onder andere door de informatiestromen te volgen), en er snel kan worden gezien wat de impact is van het wijzigen of verwijderen van een functie. Dit soort functionaliteiten zijn onmogelijk om met een relationele database te realiseren.
Tot slot is een identity & access oplossing op basis van een graph ook een interessante. Met name het autorisatie gedeelte. Als Piet in Team X in een zelfde rol samenwerkt met Jan, dan is de autorisatie op de objecten die gecreëerd worden in de teamsite van Team X voor Piet en Jan identiek. Dit leidt tot een autorisatiestructuur die vele malen gemakkelijker te beheren is dan op de traditionele manier!
Ik denk dat het beheren van relaties in een landschap dat steeds meer op big data gebaseerd is niet meer te doen is door middel van oude technieken zoals de relationele database. De graph gaat ongekende mogelijkheden bieden op veel gebieden, alleen al in de harde it gerelateerde zaken. Ik ben benieuwd hoe snel dit zich verder gaat ontwikkelen en in hoeverre de nieuwe SaaS diensten zoals Microsoft Dynamics 365 zich meer en meer deze richting op gaan bewegen. Interessante tijden!
Een boeiend en inspirerend opiniestuk, zoals we inmiddels gewend zijn van deze auteur, maar zou je in dit hele verhaal niet “big data” kunnen vervangen door “services”?
Dat levert dan formuleringen op als:
“De graph is onontbeerlijk geworden in tijden van (office) services.” en
“Ik denk dat het beheren van relaties in een landschap dat steeds meer op services gebaseerd is niet meer te doen is door middel van oude technieken zoals de relationele database. “
Als de auteur stelt dat “nodes van verschillende typen kunnen zijn en niet elke node of relatie de zelfde typen eigenschappen hoeven te hebben”, dan roept dat direkt de vraag op waar je de code onderbrengt voor het opvragen of wijzigen van (de voorkomens van) deze eigenschappen en tegelijk de vraag waarom van nodes wordt gesproken en niet – veel meer voor de hand liggend – van objecten.
Moet de opvolger van het relationele model dus niet veel eerder gezocht worden in OO-databases (ook wel semantische databases genoemd), waar SOA in feite op voortborduurt?
Waarom nog spreken van masterdata of metadata als je het gewoon over objecten hebt (wat in het tijdperk van “internet of things” veel meer voor de hand ligt)?
Het in kaart brengen van je applicatielandschap en de geboden applicatieservices kan met één druk op de knop als deze services zowel technisch als functioneel in een netwerk zijn opgenomen volgens een doel-middel-hiërarchie.
Gijs, bij het schrijven van dit mooie stuk heb je wellicht ook wat white papers e.d. gelezen, of wat MS documenten met use cases. Ik heb nog niet ge-googled, maar als je een lijstje hebt…
Op zoek naar de Holy Graph, de data der wijzen.
Net als belofte van 5GL, toen we nog in het relational DB tijdperk leefden.
De kruisverbanden waar Gijs het over heeft …
Dikke kus ? Bedoelde u soms dikke kont ? Computers helpen ons vandaag de dag veel beter.
Klagen dat je vrouw je niet begrijpt, maar je computer ook niet.
“Ongekende mogelijkheden op veel gebieden”, volgens Gijs
Het antwoord op alles.
Hangt er ook van af wie je vraagt, he.
Gijs : graph
Jack : semantiek
Computer zelf : 42
Numpie : zijn one-size-fits-all matrix
Kerk : Zondag zit ik er weer. Stil maar wacht maar, alles wordt nieuw. De hemel en de aaaaaaarde.