20
Find your data Use GraphDB capabilities in XPages applications

Find your data

Embed Size (px)

Citation preview

Find your data

Use GraphDB capabilities in XPages applications

8th Sutol Conference, November 2016

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

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

8th Sutol Conference, November 2016

The Graph Principle

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

8th Sutol Conference, November 2016

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

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" • …

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)

8th Sutol Conference, November 2016

Introducing:

GraphNSF

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

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

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

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

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

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)

8th Sutol Conference, November 2016

DEMO TIME!

DEMO TIME!

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

8th Sutol Conference, November 2016

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