Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

GraphDb in XPages

547 Aufrufe

Veröffentlicht am

EntwicklerCamp 2016 Edition

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

GraphDb in XPages

  1. 1. Where is my data? Implementing GraphDB capabilities in XPages Oliver Busse We4IT GmbH, Germany April 13, 2016
  2. 2. 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 curious @zeromancer1972 www.oliverbusse.com
  3. 3. „Graphs“ http://whatis.techtarget.com/definition/graph-database
  4. 4. 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
  5. 5. Some Graph DBs & Frameworks • Neo4J • OrientDB • DEX • Tinkerpop • Apache Lucene / Solr
  6. 6. 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“ • …
  7. 7. 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)
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. Let‘s see the demo & some code
  13. 13. 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
  14. 14. Q & A

×