SlideShare a Scribd company logo
1 of 19
Download to read offline
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Find your data - using GraphDB capabilities
in XPages applications
Oliver Busse, We4IT GmbH
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
About me
• Working for We4IT
–Aveedo® Application Framework
• „Bleeding Yellow“ since R4.5
• IBM Champion for ICS
2015 + 2016
• OpenNTF Member Director
@zeromancer1972
@we4it
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Agenda
• What is GraphDB?
• Terminology
• Data Modelling & Implementation
• Example
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
„Graphs“
http://whatis.techtarget.com/definition/graph-database
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
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
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Some Graph DBs & Frameworks
• Neo4J
• OrientDB
• DEX
• Tinkerpop
• Apache Lucene / Solr
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
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“
– …
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Graphs – Terminology
• Vertices (Nodes/Elements)
– Properties (Key-Value pairs)
• Edges
– Connections, Relations between Vertices
• ElementStores
– for us: NSF databases
• MetaverseIDs (Domino related only)
– Replica + UNID (hashed)
– internal use only (don‘t care about them)
– sometime refered to as „Coordinate“
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
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
• Graphs are transactional
• Graph are a new part of the OpenNTF Domino API
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
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
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Sample: Webshop, Customer Node
@TypeValue("Customer")
public interface Customer extends DVertexFrame {
@Property("$$Key")
public String getKey();
@Property("name")
public String getName();
@Property("name")
public void setName(String name);
@AdjacencyUnique(label = "basket")
public Iterable<ProductItem> getProducts();
@AdjacencyUnique(label = "basket")
public ProductItem addProductItem(ProductItem item);
@AdjacencyUnique(label = "basket")
public void removeProductItem(ProductItem item);
}
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
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
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Init the Graph: code schema
private DFramedTransactionalGraph<DGraph> initStores() {
// create element store
DElementStore myStore = new DElementStore();
myStore.setStoreKey(“folder/some.nsf”);
myStore.addType(MyType.class);
// register the stores to the graph
DConfiguration config = new DConfiguration();
DGraph graph = new DGraph(config);
config.addElementStore(myStore);
config.setDefaultElementStore(myStore.getStoreKey());
// init the graph
DFramedGraphFactory factory = new DFramedGraphFactory(config);
DFramedTransactionalGraph<DGraph> fg = (DFramedTransactionalGraph<DGraph>)
factory.create(graph);
return fg;
}
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
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
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Create an Edge: code schema
public void addToBasket(ProductItem item) {
String userName = Factory.getSession(SessionType.CURRENT).getEffectiveUserName();
try {
DFramedTransactionalGraph<DGraph> graph = initStores();
Customer customer = graph.getElement(userName, Customer.class);
customer.addProductItem(item);
graph.commit();
} catch (Throwable e) {
XspOpenLogUtil.logError(e);
}
}
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Let‘s see the demo &
some more code
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Resources
• The XPages demo application
– https://bitbucket.org/zeromancer1972/sutol-2015-oda-graph-demo
• 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
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug
Q & A
Find your data - using GraphDB capabilities in XPages applications
www.ics.ug #icsug

More Related Content

What's hot

Options for Data Prep - A Survey of the Current Market
Options for Data Prep - A Survey of the Current MarketOptions for Data Prep - A Survey of the Current Market
Options for Data Prep - A Survey of the Current MarketDremio Corporation
 
AWS Athena vs. Google BigQuery for interactive SQL Queries
AWS Athena vs. Google BigQuery for interactive SQL QueriesAWS Athena vs. Google BigQuery for interactive SQL Queries
AWS Athena vs. Google BigQuery for interactive SQL QueriesDoiT International
 
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...Alluxio, Inc.
 
Lessons from Driverless AI going to Production
Lessons from Driverless AI going to ProductionLessons from Driverless AI going to Production
Lessons from Driverless AI going to ProductionSri Ambati
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2Michael H. Oshita
 
Bigdata antipatterns
Bigdata antipatternsBigdata antipatterns
Bigdata antipatternsAnurag S
 
Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016
Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016
Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016Alluxio, Inc.
 
Presto Fast SQL on Anything
Presto Fast SQL on AnythingPresto Fast SQL on Anything
Presto Fast SQL on AnythingAlluxio, Inc.
 
Hadoop at Yahoo! -- University Talks
Hadoop at Yahoo! -- University TalksHadoop at Yahoo! -- University Talks
Hadoop at Yahoo! -- University Talksyhadoop
 
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...huguk
 
Data-Driven Development Era and Its Technologies
Data-Driven Development Era and Its TechnologiesData-Driven Development Era and Its Technologies
Data-Driven Development Era and Its TechnologiesSATOSHI TAGOMORI
 
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PGPgDay.Seoul
 
Qubole Overview at the Fifth Elephant Conference
Qubole Overview at the Fifth Elephant ConferenceQubole Overview at the Fifth Elephant Conference
Qubole Overview at the Fifth Elephant ConferenceJoydeep Sen Sarma
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?Kenneth Geisshirt
 
Optiq: A dynamic data management framework
Optiq: A dynamic data management frameworkOptiq: A dynamic data management framework
Optiq: A dynamic data management frameworkJulian Hyde
 
Building a Scalable Web Crawler with Hadoop
Building a Scalable Web Crawler with HadoopBuilding a Scalable Web Crawler with Hadoop
Building a Scalable Web Crawler with HadoopHadoop User Group
 
Alluxio+Presto: An Architecture for Fast SQL in the Cloud
Alluxio+Presto: An Architecture for Fast SQL in the CloudAlluxio+Presto: An Architecture for Fast SQL in the Cloud
Alluxio+Presto: An Architecture for Fast SQL in the CloudAlluxio, Inc.
 

What's hot (20)

CouchDB
CouchDBCouchDB
CouchDB
 
Options for Data Prep - A Survey of the Current Market
Options for Data Prep - A Survey of the Current MarketOptions for Data Prep - A Survey of the Current Market
Options for Data Prep - A Survey of the Current Market
 
AWS Athena vs. Google BigQuery for interactive SQL Queries
AWS Athena vs. Google BigQuery for interactive SQL QueriesAWS Athena vs. Google BigQuery for interactive SQL Queries
AWS Athena vs. Google BigQuery for interactive SQL Queries
 
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...
 
Lessons from Driverless AI going to Production
Lessons from Driverless AI going to ProductionLessons from Driverless AI going to Production
Lessons from Driverless AI going to Production
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2
 
Bigdata antipatterns
Bigdata antipatternsBigdata antipatterns
Bigdata antipatterns
 
Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016
Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016
Rise of Intermediate APIs - Beam and Alluxio at Alluxio Meetup 2016
 
Presto Fast SQL on Anything
Presto Fast SQL on AnythingPresto Fast SQL on Anything
Presto Fast SQL on Anything
 
Hadoop at Yahoo! -- University Talks
Hadoop at Yahoo! -- University TalksHadoop at Yahoo! -- University Talks
Hadoop at Yahoo! -- University Talks
 
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
Using Big Data techniques to query and store OpenStreetMap data. Stephen Knox...
 
Data-Driven Development Era and Its Technologies
Data-Driven Development Era and Its TechnologiesData-Driven Development Era and Its Technologies
Data-Driven Development Era and Its Technologies
 
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
 
Qubole Overview at the Fifth Elephant Conference
Qubole Overview at the Fifth Elephant ConferenceQubole Overview at the Fifth Elephant Conference
Qubole Overview at the Fifth Elephant Conference
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?
 
Optiq: A dynamic data management framework
Optiq: A dynamic data management frameworkOptiq: A dynamic data management framework
Optiq: A dynamic data management framework
 
tdtechtalk20160330johan
tdtechtalk20160330johantdtechtalk20160330johan
tdtechtalk20160330johan
 
Building a Scalable Web Crawler with Hadoop
Building a Scalable Web Crawler with HadoopBuilding a Scalable Web Crawler with Hadoop
Building a Scalable Web Crawler with Hadoop
 
Deep Dive on ArangoDB
Deep Dive on ArangoDBDeep Dive on ArangoDB
Deep Dive on ArangoDB
 
Alluxio+Presto: An Architecture for Fast SQL in the Cloud
Alluxio+Presto: An Architecture for Fast SQL in the CloudAlluxio+Presto: An Architecture for Fast SQL in the Cloud
Alluxio+Presto: An Architecture for Fast SQL in the Cloud
 

Similar to Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016

In-Memory Computing - The Big Picture
In-Memory Computing - The Big PictureIn-Memory Computing - The Big Picture
In-Memory Computing - The Big PictureMarkus Kett
 
New Developments in Spark
New Developments in SparkNew Developments in Spark
New Developments in SparkDatabricks
 
Buildingsocialanalyticstoolwithmongodb
BuildingsocialanalyticstoolwithmongodbBuildingsocialanalyticstoolwithmongodb
BuildingsocialanalyticstoolwithmongodbMongoDB APAC
 
Jump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksJump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksDatabricks
 
Getting started with Apache Spark in Python - PyLadies Toronto 2016
Getting started with Apache Spark in Python - PyLadies Toronto 2016Getting started with Apache Spark in Python - PyLadies Toronto 2016
Getting started with Apache Spark in Python - PyLadies Toronto 2016Holden Karau
 
Who's afraid of front end databases
Who's afraid of front end databasesWho's afraid of front end databases
Who's afraid of front end databasesGil Fink
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules Damji
A Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules DamjiA Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules Damji
A Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules DamjiData Con LA
 
Working with Data in Service Workers
Working with Data in Service WorkersWorking with Data in Service Workers
Working with Data in Service WorkersGil Fink
 
Who's afraid of front end databases?
Who's afraid of front end databases?Who's afraid of front end databases?
Who's afraid of front end databases?Gil Fink
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Diego Freniche Brito
 
Webinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data LayerWebinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data LayerIBM Cloud Data Services
 
Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Djamel Zouaoui
 
Scalding: Twitter's Scala DSL for Hadoop/Cascading
Scalding: Twitter's Scala DSL for Hadoop/CascadingScalding: Twitter's Scala DSL for Hadoop/Cascading
Scalding: Twitter's Scala DSL for Hadoop/Cascadingjohnynek
 
Scalding: Twitter's New DSL for Hadoop
Scalding: Twitter's New DSL for HadoopScalding: Twitter's New DSL for Hadoop
Scalding: Twitter's New DSL for HadoopDataWorks Summit
 
Compass Framework
Compass FrameworkCompass Framework
Compass FrameworkLukas Vlcek
 
Building highly scalable data pipelines with Apache Spark
Building highly scalable data pipelines with Apache SparkBuilding highly scalable data pipelines with Apache Spark
Building highly scalable data pipelines with Apache SparkMartin Toshev
 
Hibernate in XPages
Hibernate in XPagesHibernate in XPages
Hibernate in XPagesToby Samples
 

Similar to Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016 (20)

GraphDb in XPages
GraphDb in XPagesGraphDb in XPages
GraphDb in XPages
 
In-Memory Computing - The Big Picture
In-Memory Computing - The Big PictureIn-Memory Computing - The Big Picture
In-Memory Computing - The Big Picture
 
New Developments in Spark
New Developments in SparkNew Developments in Spark
New Developments in Spark
 
Buildingsocialanalyticstoolwithmongodb
BuildingsocialanalyticstoolwithmongodbBuildingsocialanalyticstoolwithmongodb
Buildingsocialanalyticstoolwithmongodb
 
Jump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and DatabricksJump Start into Apache® Spark™ and Databricks
Jump Start into Apache® Spark™ and Databricks
 
Getting started with Apache Spark in Python - PyLadies Toronto 2016
Getting started with Apache Spark in Python - PyLadies Toronto 2016Getting started with Apache Spark in Python - PyLadies Toronto 2016
Getting started with Apache Spark in Python - PyLadies Toronto 2016
 
Brightstar DB
Brightstar DBBrightstar DB
Brightstar DB
 
Who's afraid of front end databases
Who's afraid of front end databasesWho's afraid of front end databases
Who's afraid of front end databases
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules Damji
A Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules DamjiA Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules Damji
A Tale of Three Apache Spark APIs: RDDs, DataFrames and Datasets by Jules Damji
 
Working with Data in Service Workers
Working with Data in Service WorkersWorking with Data in Service Workers
Working with Data in Service Workers
 
Who's afraid of front end databases?
Who's afraid of front end databases?Who's afraid of front end databases?
Who's afraid of front end databases?
 
Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14Core data WIPJam workshop @ MWC'14
Core data WIPJam workshop @ MWC'14
 
Webinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data LayerWebinar: The Anatomy of the Cloudant Data Layer
Webinar: The Anatomy of the Cloudant Data Layer
 
Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming Paris Data Geek - Spark Streaming
Paris Data Geek - Spark Streaming
 
PYSPARK PROGRAMMING.pdf
PYSPARK PROGRAMMING.pdfPYSPARK PROGRAMMING.pdf
PYSPARK PROGRAMMING.pdf
 
Scalding: Twitter's Scala DSL for Hadoop/Cascading
Scalding: Twitter's Scala DSL for Hadoop/CascadingScalding: Twitter's Scala DSL for Hadoop/Cascading
Scalding: Twitter's Scala DSL for Hadoop/Cascading
 
Scalding: Twitter's New DSL for Hadoop
Scalding: Twitter's New DSL for HadoopScalding: Twitter's New DSL for Hadoop
Scalding: Twitter's New DSL for Hadoop
 
Compass Framework
Compass FrameworkCompass Framework
Compass Framework
 
Building highly scalable data pipelines with Apache Spark
Building highly scalable data pipelines with Apache SparkBuilding highly scalable data pipelines with Apache Spark
Building highly scalable data pipelines with Apache Spark
 
Hibernate in XPages
Hibernate in XPagesHibernate in XPages
Hibernate in XPages
 

More from ICS User Group

Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016ICS User Group
 
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016ICS User Group
 
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016ICS User Group
 
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016ICS User Group
 
Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016ICS User Group
 
Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016ICS User Group
 
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016ICS User Group
 
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016ICS User Group
 
OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016ICS User Group
 
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...ICS User Group
 
Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016ICS User Group
 
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016ICS User Group
 
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016ICS User Group
 
IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016ICS User Group
 
Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016ICS User Group
 
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016ICS User Group
 
Beyond XPages ICS.UG 2015
Beyond XPages  ICS.UG 2015Beyond XPages  ICS.UG 2015
Beyond XPages ICS.UG 2015ICS User Group
 
ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015ICS User Group
 
Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes - ICS.UG 2015
Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes -  ICS.UG 2015Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes -  ICS.UG 2015
Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes - ICS.UG 2015ICS User Group
 
ICSUG Keynote IBM Collaboration Strategie 2015 and beyond
ICSUG Keynote IBM Collaboration Strategie 2015 and beyondICSUG Keynote IBM Collaboration Strategie 2015 and beyond
ICSUG Keynote IBM Collaboration Strategie 2015 and beyondICS User Group
 

More from ICS User Group (20)

Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016
 
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
Moving DNUG Usergroup von on-premise in die IBM ConnectionsCloud - ICS.UG 2016
 
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
IBM Notes Traveler & IBM Mobile Connect What's new?, What's next? - ICS.UG 2016
 
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
Warum IBM mit Watson den Büroalltag revolutioniert - ICS.UG 2016
 
Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016Private Cloud Storage - ICS.UG 2016
Private Cloud Storage - ICS.UG 2016
 
Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016Die mobile Herausforderung meistern! - ICS.UG 2016
Die mobile Herausforderung meistern! - ICS.UG 2016
 
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - Verse (&Toscana) - ICS.UG 2016
 
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
Cloud Update 2016 IBM Collaboration Solutions - ConnectionsCloud - ICS.UG 2016
 
OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016OpenNTF - From Donation to Contribution - ICS.UG 2016
OpenNTF - From Donation to Contribution - ICS.UG 2016
 
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
Virtual, Faster, Better! How to Virtualize the Rich Client and Browser Plugin...
 
Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016Die Zukunft spricht Domino! - ICS.UG 2016
Die Zukunft spricht Domino! - ICS.UG 2016
 
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
Smashdocs - Dokumente gemeinsam schreiben - ICS.UG 2016
 
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
Smashdocs - Collaborative authoring & reviewing - ICS.UG 2016
 
IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016IBM Digital Experience Overview - ICS.UG 2016
IBM Digital Experience Overview - ICS.UG 2016
 
Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016Watson - Bitte-helfen-Sie - ICS.UG 2016
Watson - Bitte-helfen-Sie - ICS.UG 2016
 
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
Planung / Terminierung eines Außendienstes mit XPages - ICS.UG 2016
 
Beyond XPages ICS.UG 2015
Beyond XPages  ICS.UG 2015Beyond XPages  ICS.UG 2015
Beyond XPages ICS.UG 2015
 
ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015ATLUG comes to you ICS.UG 2015
ATLUG comes to you ICS.UG 2015
 
Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes - ICS.UG 2015
Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes -  ICS.UG 2015Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes -  ICS.UG 2015
Das interne soziale Netzwerk des Ostdeutschen Sparkassenverbandes - ICS.UG 2015
 
ICSUG Keynote IBM Collaboration Strategie 2015 and beyond
ICSUG Keynote IBM Collaboration Strategie 2015 and beyondICSUG Keynote IBM Collaboration Strategie 2015 and beyond
ICSUG Keynote IBM Collaboration Strategie 2015 and beyond
 

Recently uploaded

Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfkalichargn70th171
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Flutter Agency
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Lisi Hocke
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...Neo4j
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Chirag Panchal
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jNeo4j
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insightsrapidoform
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Clinic
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanNeo4j
 

Recently uploaded (20)

Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insights
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 

Find your data - using GraphDB capabilities in XPages applications - ICS.UG 2016

  • 1. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Find your data - using GraphDB capabilities in XPages applications Oliver Busse, We4IT GmbH
  • 2. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug About me • Working for We4IT –Aveedo® Application Framework • „Bleeding Yellow“ since R4.5 • IBM Champion for ICS 2015 + 2016 • OpenNTF Member Director @zeromancer1972 @we4it
  • 3. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Agenda • What is GraphDB? • Terminology • Data Modelling & Implementation • Example
  • 4. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug „Graphs“ http://whatis.techtarget.com/definition/graph-database
  • 5. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug 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
  • 6. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Some Graph DBs & Frameworks • Neo4J • OrientDB • DEX • Tinkerpop • Apache Lucene / Solr
  • 7. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug 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“ – …
  • 8. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Graphs – Terminology • Vertices (Nodes/Elements) – Properties (Key-Value pairs) • Edges – Connections, Relations between Vertices • ElementStores – for us: NSF databases • MetaverseIDs (Domino related only) – Replica + UNID (hashed) – internal use only (don‘t care about them) – sometime refered to as „Coordinate“
  • 9. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug 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 • Graphs are transactional • Graph are a new part of the OpenNTF Domino API
  • 10. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug 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
  • 11. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Sample: Webshop, Customer Node @TypeValue("Customer") public interface Customer extends DVertexFrame { @Property("$$Key") public String getKey(); @Property("name") public String getName(); @Property("name") public void setName(String name); @AdjacencyUnique(label = "basket") public Iterable<ProductItem> getProducts(); @AdjacencyUnique(label = "basket") public ProductItem addProductItem(ProductItem item); @AdjacencyUnique(label = "basket") public void removeProductItem(ProductItem item); }
  • 12. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug 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
  • 13. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Init the Graph: code schema private DFramedTransactionalGraph<DGraph> initStores() { // create element store DElementStore myStore = new DElementStore(); myStore.setStoreKey(“folder/some.nsf”); myStore.addType(MyType.class); // register the stores to the graph DConfiguration config = new DConfiguration(); DGraph graph = new DGraph(config); config.addElementStore(myStore); config.setDefaultElementStore(myStore.getStoreKey()); // init the graph DFramedGraphFactory factory = new DFramedGraphFactory(config); DFramedTransactionalGraph<DGraph> fg = (DFramedTransactionalGraph<DGraph>) factory.create(graph); return fg; }
  • 14. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug 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
  • 15. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Create an Edge: code schema public void addToBasket(ProductItem item) { String userName = Factory.getSession(SessionType.CURRENT).getEffectiveUserName(); try { DFramedTransactionalGraph<DGraph> graph = initStores(); Customer customer = graph.getElement(userName, Customer.class); customer.addProductItem(item); graph.commit(); } catch (Throwable e) { XspOpenLogUtil.logError(e); } }
  • 16. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Let‘s see the demo & some more code
  • 17. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Resources • The XPages demo application – https://bitbucket.org/zeromancer1972/sutol-2015-oda-graph-demo • 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
  • 18. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug Q & A
  • 19. Find your data - using GraphDB capabilities in XPages applications www.ics.ug #icsug