+ All Categories
Home > Software > GraphDb in XPages

GraphDb in XPages

Date post: 22-Jan-2018
Category:
Upload: oliver-busse
View: 494 times
Download: 3 times
Share this document with a friend
15
Where is my data? Implementing GraphDB capabilities in XPages Oliver Busse We4IT GmbH, Germany April 13, 2016
Transcript
Page 1: GraphDb in XPages

Where is my data?Implementing GraphDB capabilities

in XPages

Oliver Busse

We4IT GmbH, Germany

April 13, 2016

Page 2: GraphDb in XPages

Oliver Busse• „Bleeding Yellow“ since R4.5

• Software Architect at We4IT• Member of the development team of

Aveedo® Application Framework

• IBM Champion for ICS in 2015 + 2016

• OpenNTF Member Director

• XPages Advocate

• IBM Bluemix [email protected]

Page 3: GraphDb in XPages

„Graphs“

http://whatis.techtarget.com/definition/graph-database

Page 4: GraphDb in XPages

Graph DB

A 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 nodes and edges. Each node represents an entity (such as a person or business) and each edge represents a connection or

relationship between two nodes.

http://whatis.techtarget.com/definition/graph-database

Page 5: GraphDb in XPages

Some Graph DBs & Frameworks

• Neo4J

• OrientDB

• DEX

• Tinkerpop

• Apache Lucene / Solr

Page 6: GraphDb in XPages

Who is using Graph DBs?

• Amazon

• Google

• Facebook

• …almost every application that offers something like• „related posts“ (blogs)

• „others also bought this“ (shops)

• collect relations and „likes“

• …

Page 7: GraphDb in XPages

Graphs – terminology

• Vertices (Nodes)• Properties (Key-Value pairs)

• Edges• Connections, Relations between Vertices

• ElementStores• for us: NSF databases

• MetaverseIDs• Replica + UNID (hashed)

• internal use only (don‘t care about them)

Page 8: GraphDb in XPages

Graph DB – in Domino?

• Vertices and Edges are stored as Documents

• The data container is a NSF

• The ElementStore defines the filepath to the NSF

• An ElementStore can hold different types of Vertices

• Usually you create one ElementStore for each Vertice type

Page 9: GraphDb in XPages

Data Modelling & Implementation

• Nodes are defined as Interfaces

• 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 Vertice

Page 10: GraphDb in XPages

Init the Graph

• Define the Element Store(s)

• Add Element Store(s) to the Graph Configuration

• Define the DFramedTransactionalGraph object with the Graph Configuration

• Work with the Graph object

Page 11: GraphDb in XPages

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 12: GraphDb in XPages

Let‘s see the demo &some code

Page 13: GraphDb in XPages

Resources• The XPages demo application

• https://bitbucket.org/zeromancer1972/sutol-2015-oda-graph-demo

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

• 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

• Xots

• http://www.intec.co.uk/xots-background-and-multithreaded-tasks-the-openntf-domino-api-way-part-one/

• http://www.intec.co.uk/xots-background-and-multithreaded-tasks-the-openntf-domino-api-way-part-two/

• http://www.intec.co.uk/xots-background-and-multithreaded-tasks-the-openntf-domino-api-way-part-three/

• Graphs

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

Page 14: GraphDb in XPages

Q & A

Page 15: GraphDb in XPages

Recommended