Top Banner
Find your data Use GraphDB capabilities in XPages applications
20

Find your data

Jan 22, 2018

Download

Software

Oliver Busse
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Find your data

Find your data

Use GraphDB capabilities in XPages applications

Page 2: Find your data

8th Sutol Conference, November 2016

Page 3: Find your data

8th Sutol Conference, November 2016

What’s up in the next 45 mins?• Who am I? • What are GraphDBs? • Famous GraphDBs and Use Cases • Terminology • Introduction to GraphNSF in ODA • Implementation & Data Modelling • Demo

Page 4: Find your data

8th Sutol Conference, November 2016

Oliver Busse• Back again! 2nd SUTOL :-) • Bleeding yellow since R4.5 • Software Architect at We4IT

• aveedo® Application Framework • ScanAlyzr® Application Metrics

• OpenNTF Board Member • NotesIn9 Producer • IBM Champion 2015 + 2016 • @zeromancer1972 • www.oliverbusse.com • www.we4it.com

Page 5: Find your data

8th Sutol Conference, November 2016

The Graph Principle

Page 6: Find your data

8th Sutol Conference, November 2016

GraphDB - DefinitionA graph database, also called a graph-oriented

database, is a type of NoSQL database that uses graph theory to store, map and query

relationships.

A graph database is essentially a collection of vertices and edges. Each vertex represents an entity (such as a person or business) and each edge represents a connection or relationship

between two vertices.http://whatis.techtarget.com/definition/graph-database

Page 7: Find your data

8th Sutol Conference, November 2016

Some GraphDBs and Frameworks• Neo4J • OrientDB • Titan/Cassandra • Tinkerpop (used here in ODA) • Apache Lucene / Solr

Page 8: Find your data

8th Sutol Conference, November 2016

Who’s using GraphDBs?• Amazon • Google/Youtube • Facebook, Twitter • IBM Watson Workspace • almost every application that offers something like

• "summarize", "assist" • "related posts" (blogs) • "others also bought this" (shops) • collect relations and "likes" • …

Page 9: Find your data

8th Sutol Conference, November 2016

GraphDB - Terminology• Vertices (singular: Vertex)

• has Properties (Key-Value pairs) • sometimes referred to as Nodes or Elements

• Edges • Connections, Relations between Vertices

• ElementStores • for us: NSF databases

• MetaverseIDs (GraphNSF) • Replica + UNID (hashed) • internal use only (don‘t care about them)

Page 10: Find your data

8th Sutol Conference, November 2016

Introducing:

GraphNSF

Page 11: Find your data

8th Sutol Conference, November 2016

GraphNSF is part of ODA• Introduced and maintained by

• Nathan T. Freeman • Paul S. Withers

• Uses Tinkerpop framework • Under heavy development since ODA 2.0 • Current version is ODA 3.0 • GraphNSF is transactional

Page 12: Find your data

8th Sutol Conference, November 2016

GraphNSF = GraphDB in Domino• Vertices and Edges are stored as Documents • The data container is a NSF • The ElementStore defines the file path to the

NSF • An ElementStore can hold different types of

Vertices • Usually you create one ElementStore for

each Vertex type

Page 13: Find your data

8th Sutol Conference, November 2016

Implementation & Data Modeling• Vertices are defined as Interface classes • Fields are defined as properties with Getter

and Setter • Methods define how the Node can build

Edges to other Vertices • Methods also return all Edges to a certain

Vertex • All inside the NSF using ODA

Page 14: Find your data

8th Sutol Conference, November 2016

Init the Graph• Define the Element Store(s) • Add Element Store(s) to the Graph

Configuration • Define the DFramedTransactionalGraph

object with the Graph Configuration • Add Vertex types to Element store(s) • Work with the Graph object

Page 15: Find your data

8th Sutol Conference, November 2016

Create an Edge• Parameterize Object 1 • Get Object 2 by a unique key • Call one of the „add“ methods of your Node

class • Commit your changes

Page 16: Find your data

8th Sutol Conference, November 2016

A strategy? Add some meta data• a most common use case is to add meta

data to existing data using Graph data • no need to touch the original data :-) • graph data is highly extensible (like NoSQL

is in general)

Page 17: Find your data

8th Sutol Conference, November 2016

DEMO TIME!

DEMO TIME!

Page 18: Find your data

8th Sutol Conference, November 2016

Like what you saw?• It’s IBM Champion nomination time • Nominate YOUR IBM Champions

until Nov 14 • http://www.ibm.com/developerworks/

community/profiles/dw/anonymous.jsp?id=2016

Page 19: Find your data

8th Sutol Conference, November 2016

Page 20: Find your data

8th Sutol Conference, November 2016

Resources• The XPages demo application

• http://notesx.net:8090/obusse/ICONUK_2016_Demo_Database

• A nice glossary • http://www.intec.co.uk/from-xpages-to-web-app-glossary/

• OpenNTF Domino API • http://www.openntf.org/main.nsf/project.xsp?r=project/

OpenNTF%20Domino%20API • http://www.openntf.org/main.nsf/project.xsp?r=project/

OpenNTF%20Domino%20API%20Demo%20Database • Graphs

• http://de.slideshare.net/ktree19/the-graph-revolution