SlideShare a Scribd company logo
8th Sutol Conference, November 2016
A (XPages) developers
guide to Cloudant
Frank van der Linden
8th Sutol Conference, November 2016
8th Sutol Conference, November 2016
About me
• Freelance Java and web developer, with
XPages experience
• …..and JEE technologies
• Owner of Elstar IT
• Frequent (trail)runner
8th Sutol Conference, November 2016
Roadmap
• Introduction to Cloudant
• Inside Cloudant
• Connect to Cloudant
• Cloudant @ XPages
8th Sutol Conference, November 2016
Why Cloudant
• For HR Assistant wanted to try a new
datastore
8th Sutol Conference, November 2016
Introduction to
Cloudant
8th Sutol Conference, November 2016
What is Cloudant
• It is the cloud version of CouchDb
• It is document based
• CouchDb is created by Damien Katz
• Cloudant is bought by IBM
• Is like MongoDb or NSF a NoSQL
datastore
8th Sutol Conference, November 2016
What is Cloudant
• Data stored as JSON
• View and Search ‘formula’ with
javascript
• Replication
• Tasks
• Build in API
• No annoying limitations
8th Sutol Conference, November 2016
Cloudant as service
• Cloudant can be added as service in
BlueMix
8th Sutol Conference, November 2016
Cloudant standalone
• Via website, https://cloudant.com
cloudant.com
8th Sutol Conference, November 2016
Inside Cloudant
8th Sutol Conference, November 2016
Inside Cloudant
8th Sutol Conference, November 2016
Inside Cloudant
• View mapping
• Search index
8th Sutol Conference, November 2016
Connect to Cloudant
8th Sutol Conference, November 2016
Connect to Cloudant
• Direct via REST
• https://someusername:secret@account.cloudant.com
• Via a OSGi Plugin, uses the
HTTPConnection
• https://bitbucket.org/flinden68/cloudant-connector
8th Sutol Conference, November 2016
Connect to Cloudant
• Credentials
• Account, necessary for the OSGi plugin
8th Sutol Conference, November 2016
Connect to Cloudant
• It is JSON everywhere
• _rev and _id are reserved
parameters
• doc{}, is the actual data
from application
8th Sutol Conference, November 2016
Cloudant connector
• Storing in and retrieving from Cloudant
• Accessed from Java backend.
• Will take out the security issues.
• Do the heavy lifting.
• Don't reinvent the wheel.
8th Sutol Conference, November 2016
Cloudant @ XPages
8th Sutol Conference, November 2016
Cloudant @ XPages
8th Sutol Conference, November 2016
Cloudant @ XPages
8th Sutol Conference, November 2016
Cloudant @ XPages
• Repeat in XPages
• columns - values from Job class
8th Sutol Conference, November 2016
Cloudant @ XPages
• JobController -
getJobs
8th Sutol Conference, November 2016
Cloudant @ XPages
• Job Java Class
8th Sutol Conference, November 2016
Cloudant @ XPages
• CloudantDAO
8th Sutol Conference, November 2016
Cloudant @ XPages
• CloudantService - connect
• Find the data in Cloudant
8th Sutol Conference, November 2016
Cloudant @ XPages
• Job JSON in Cloudant
8th Sutol Conference, November 2016
Attachment @ Cloudant
• Stored as base64 encoded String
• Can be as standalone
• Or as part of Document (we choose this
way)
• Store id as attachmentId, so it can be
retrieved when needed
8th Sutol Conference, November 2016
Attachment @ Cloudant
• AttachmentDAO
8th Sutol Conference, November 2016
Attachment @ Cloudant
• AttachmentController
• Convert upload to
Attachment object
8th Sutol Conference, November 2016
Attachment @ Cloudant
• ControllerBase
• All controllers can
use these methods
8th Sutol Conference, November 2016
Attachment @ Cloudant
• Servlet is called in application for
download
• base64 data for the image tag
8th Sutol Conference, November 2016
RichText @ Cloudant
• Stored as MultiMimePart
8th Sutol Conference, November 2016
RichText @ Cloudant
• Which is nice converted to
JSON ;-)
8th Sutol Conference, November 2016
Search @ Cloudant
• Search example, filter the view
8th Sutol Conference, November 2016
Search @ Cloudant
• Do the search in the Controller, call
DAO
8th Sutol Conference, November 2016
Search @ Cloudant
• Search method calls the
CloudantService
8th Sutol Conference, November 2016
Search @ Cloudant
• CloudantService calls connector to get
the data
8th Sutol Conference, November 2016
Search @ Cloudant
• CloudantService calls connector to get
the data
8th Sutol Conference, November 2016
Search @ Cloudant
• Cloudant job ftSearch index
8th Sutol Conference, November 2016
Resources
• OSGi Cloudant connector
– https://bitbucket.org/flinden68/cloudant-connector
• Cloudant documentation
– https://docs.cloudant.com/
• HR Assistant
– hrassistant.eu-gb.mybluemix.net
– github.com/flinden68/HR-Assistant
8th Sutol Conference, November 2016
8th Sutol Conference, November 2016
Thank you
8th Sutol Conference, November 2016
Ad

More Related Content

What's hot (20)

Flink September 2015 Community Update
Flink September 2015 Community UpdateFlink September 2015 Community Update
Flink September 2015 Community Update
Robert Metzger
 
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Frank van der Linden
 
Collab365 Global Summit Slides
Collab365 Global Summit SlidesCollab365 Global Summit Slides
Collab365 Global Summit Slides
Rick Van Rousselt
 
Kibana + timelion: time series with the elastic stack
Kibana + timelion: time series with the elastic stackKibana + timelion: time series with the elastic stack
Kibana + timelion: time series with the elastic stack
Sylvain Wallez
 
From logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C SchneiderFrom logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C Schneider
mfrancis
 
Kibana overview
Kibana overviewKibana overview
Kibana overview
Rinat Tainov
 
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Edureka!
 
Rootconf 2017 - State of the Open Source monitoring landscape
Rootconf 2017 - State of the Open Source monitoring landscape Rootconf 2017 - State of the Open Source monitoring landscape
Rootconf 2017 - State of the Open Source monitoring landscape
NETWAYS
 
Building an open data platform with apache iceberg
Building an open data platform with apache icebergBuilding an open data platform with apache iceberg
Building an open data platform with apache iceberg
Alluxio, Inc.
 
Bleeding Edge Databases
Bleeding Edge DatabasesBleeding Edge Databases
Bleeding Edge Databases
Lynn Langit
 
Data analytics at a petabyte scale final
Data analytics at a petabyte scale   finalData analytics at a petabyte scale   final
Data analytics at a petabyte scale final
Ori Reshef
 
Atlassian tools at Inventive Designers
Atlassian tools at Inventive DesignersAtlassian tools at Inventive Designers
Atlassian tools at Inventive Designers
Tars Joris
 
Elk meetup
Elk meetupElk meetup
Elk meetup
Asaf Yigal
 
Elk meetup boston - logz.io
Elk meetup boston -  logz.ioElk meetup boston -  logz.io
Elk meetup boston - logz.io
tomerlevy9
 
Node.js server side render in the Age of APIs - Full Stack Toronto 2017
 Node.js server side render in the Age of APIs - Full Stack Toronto 2017 Node.js server side render in the Age of APIs - Full Stack Toronto 2017
Node.js server side render in the Age of APIs - Full Stack Toronto 2017
Ruy Adorno
 
Building real time serverless back ends with aws appsync
Building real time serverless back ends with aws appsyncBuilding real time serverless back ends with aws appsync
Building real time serverless back ends with aws appsync
sterkje
 
Presto for apps deck varada prestoconf
Presto for apps deck varada prestoconfPresto for apps deck varada prestoconf
Presto for apps deck varada prestoconf
Ori Reshef
 
Icinga Camp Bangalore - Icinga and Icinga Director
Icinga Camp Bangalore - Icinga and Icinga Director Icinga Camp Bangalore - Icinga and Icinga Director
Icinga Camp Bangalore - Icinga and Icinga Director
Icinga
 
Icinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the MetricsIcinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the Metrics
Icinga
 
Using ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk Server
Using ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk ServerUsing ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk Server
Using ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk Server
BizTalk360
 
Flink September 2015 Community Update
Flink September 2015 Community UpdateFlink September 2015 Community Update
Flink September 2015 Community Update
Robert Metzger
 
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Frank van der Linden
 
Collab365 Global Summit Slides
Collab365 Global Summit SlidesCollab365 Global Summit Slides
Collab365 Global Summit Slides
Rick Van Rousselt
 
Kibana + timelion: time series with the elastic stack
Kibana + timelion: time series with the elastic stackKibana + timelion: time series with the elastic stack
Kibana + timelion: time series with the elastic stack
Sylvain Wallez
 
From logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C SchneiderFrom logging to monitoring to reactive insights - C Schneider
From logging to monitoring to reactive insights - C Schneider
mfrancis
 
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Kibana Tutorial | Kibana Dashboard Tutorial | Kibana Elasticsearch | ELK Stac...
Edureka!
 
Rootconf 2017 - State of the Open Source monitoring landscape
Rootconf 2017 - State of the Open Source monitoring landscape Rootconf 2017 - State of the Open Source monitoring landscape
Rootconf 2017 - State of the Open Source monitoring landscape
NETWAYS
 
Building an open data platform with apache iceberg
Building an open data platform with apache icebergBuilding an open data platform with apache iceberg
Building an open data platform with apache iceberg
Alluxio, Inc.
 
Bleeding Edge Databases
Bleeding Edge DatabasesBleeding Edge Databases
Bleeding Edge Databases
Lynn Langit
 
Data analytics at a petabyte scale final
Data analytics at a petabyte scale   finalData analytics at a petabyte scale   final
Data analytics at a petabyte scale final
Ori Reshef
 
Atlassian tools at Inventive Designers
Atlassian tools at Inventive DesignersAtlassian tools at Inventive Designers
Atlassian tools at Inventive Designers
Tars Joris
 
Elk meetup boston - logz.io
Elk meetup boston -  logz.ioElk meetup boston -  logz.io
Elk meetup boston - logz.io
tomerlevy9
 
Node.js server side render in the Age of APIs - Full Stack Toronto 2017
 Node.js server side render in the Age of APIs - Full Stack Toronto 2017 Node.js server side render in the Age of APIs - Full Stack Toronto 2017
Node.js server side render in the Age of APIs - Full Stack Toronto 2017
Ruy Adorno
 
Building real time serverless back ends with aws appsync
Building real time serverless back ends with aws appsyncBuilding real time serverless back ends with aws appsync
Building real time serverless back ends with aws appsync
sterkje
 
Presto for apps deck varada prestoconf
Presto for apps deck varada prestoconfPresto for apps deck varada prestoconf
Presto for apps deck varada prestoconf
Ori Reshef
 
Icinga Camp Bangalore - Icinga and Icinga Director
Icinga Camp Bangalore - Icinga and Icinga Director Icinga Camp Bangalore - Icinga and Icinga Director
Icinga Camp Bangalore - Icinga and Icinga Director
Icinga
 
Icinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the MetricsIcinga Camp San Diego 2016 - Enter the Metrics
Icinga Camp San Diego 2016 - Enter the Metrics
Icinga
 
Using ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk Server
Using ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk ServerUsing ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk Server
Using ELK-Stack (Elasticsearch, Logstash and Kibana) with BizTalk Server
BizTalk360
 

Similar to A (XPages) developers guide to Cloudant (20)

Cloudant e XPages
Cloudant e XPagesCloudant e XPages
Cloudant e XPages
Dominopoint - Italian Lotus User Group
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operation
Nelson Calero
 
London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18
Phil Wilkins
 
SUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino APISUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino API
Oliver Busse
 
Xtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conferenceXtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conference
Michael Oryszak
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
SPS Paris
 
Build a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless FrameworkBuild a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless Framework
masahitojp
 
Session 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers ProgramSession 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers Program
FIWARE
 
Oh Crap, My Code is Slow - Madison PHP 2016
Oh Crap, My Code is Slow - Madison PHP 2016Oh Crap, My Code is Slow - Madison PHP 2016
Oh Crap, My Code is Slow - Madison PHP 2016
Chris Tankersley
 
Azure Stream Analytics
Azure Stream AnalyticsAzure Stream Analytics
Azure Stream Analytics
Marco Parenzan
 
An introduction to cloud systems architecture
An introduction to cloud systems architectureAn introduction to cloud systems architecture
An introduction to cloud systems architecture
Neela Muhil Vannan Mayavannan
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019
Bill Doerrfeld
 
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
Frank van der Linden
 
Building Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic AppsBuilding Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic Apps
Prashant G Bhoyar (Microsoft MVP)
 
Google Cloud Dataflow
Google Cloud DataflowGoogle Cloud Dataflow
Google Cloud Dataflow
GirdhareeSaran
 
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis
 
Use Cases for Elastic Search Percolator
Use Cases for Elastic Search PercolatorUse Cases for Elastic Search Percolator
Use Cases for Elastic Search Percolator
Maxim Shelest
 
Going Serverless - an Introduction to AWS Glue
Going Serverless - an Introduction to AWS GlueGoing Serverless - an Introduction to AWS Glue
Going Serverless - an Introduction to AWS Glue
Michael Rainey
 
Day 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers ProgramDay 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers Program
FIWARE
 
Zenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldZenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud World
Scality
 
Automate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operationAutomate your Oracle Cloud Infrastructure operation
Automate your Oracle Cloud Infrastructure operation
Nelson Calero
 
London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18London Oracle Developer Meetup April 18
London Oracle Developer Meetup April 18
Phil Wilkins
 
SUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino APISUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino API
Oliver Busse
 
Xtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conferenceXtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conference
Michael Oryszak
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
SPS Paris
 
Build a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless FrameworkBuild a RESTful API with the Serverless Framework
Build a RESTful API with the Serverless Framework
masahitojp
 
Session 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers ProgramSession 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers Program
FIWARE
 
Oh Crap, My Code is Slow - Madison PHP 2016
Oh Crap, My Code is Slow - Madison PHP 2016Oh Crap, My Code is Slow - Madison PHP 2016
Oh Crap, My Code is Slow - Madison PHP 2016
Chris Tankersley
 
Azure Stream Analytics
Azure Stream AnalyticsAzure Stream Analytics
Azure Stream Analytics
Marco Parenzan
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019
Bill Doerrfeld
 
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
Frank van der Linden
 
Building Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic AppsBuilding Business Applications in Office 365 SharePoint Online Using Logic Apps
Building Business Applications in Office 365 SharePoint Online Using Logic Apps
Prashant G Bhoyar (Microsoft MVP)
 
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis TechEvent 2016 State of the Private Cloud - Oracle Edition by Bernha...
Trivadis
 
Use Cases for Elastic Search Percolator
Use Cases for Elastic Search PercolatorUse Cases for Elastic Search Percolator
Use Cases for Elastic Search Percolator
Maxim Shelest
 
Going Serverless - an Introduction to AWS Glue
Going Serverless - an Introduction to AWS GlueGoing Serverless - an Introduction to AWS Glue
Going Serverless - an Introduction to AWS Glue
Michael Rainey
 
Day 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers ProgramDay 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers Program
FIWARE
 
Zenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldZenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud World
Scality
 
Ad

More from Frank van der Linden (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
Frank van der Linden
 
Engage 2020: Hello are you listening, There is stream for everything
Engage 2020: Hello are you listening, There is stream for everythingEngage 2020: Hello are you listening, There is stream for everything
Engage 2020: Hello are you listening, There is stream for everything
Frank van der Linden
 
NCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsNCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streams
Frank van der Linden
 
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
Frank van der Linden
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Frank van der Linden
 
Social connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streamsSocial connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streams
Frank van der Linden
 
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Frank van der Linden
 
Spring forward: an introduction to Spring boot and Thymeleaf
Spring forward: an introduction to Spring boot and ThymeleafSpring forward: an introduction to Spring boot and Thymeleaf
Spring forward: an introduction to Spring boot and Thymeleaf
Frank van der Linden
 
Let's serve your data
Let's serve your dataLet's serve your data
Let's serve your data
Frank van der Linden
 
Let's server your Data
Let's server your DataLet's server your Data
Let's server your Data
Frank van der Linden
 
Don't worry with bower
Don't worry with bowerDon't worry with bower
Don't worry with bower
Frank van der Linden
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
Frank van der Linden
 
Use notes objects in memory and other useful java tips for xpages development
Use notes objects in memory and other useful java tips for xpages developmentUse notes objects in memory and other useful java tips for xpages development
Use notes objects in memory and other useful java tips for xpages development
Frank van der Linden
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
Frank van der Linden
 
The power of dots
The power of dotsThe power of dots
The power of dots
Frank van der Linden
 
Let me introduce you: DOTS
Let me introduce you: DOTSLet me introduce you: DOTS
Let me introduce you: DOTS
Frank van der Linden
 
Integrate domino designer with cvs source control
Integrate domino designer with cvs source controlIntegrate domino designer with cvs source control
Integrate domino designer with cvs source control
Frank van der Linden
 
how to connect your app to the activity stream with x-pages
how to connect your app to the activity stream with x-pageshow to connect your app to the activity stream with x-pages
how to connect your app to the activity stream with x-pages
Frank van der Linden
 
Uklug2012 yellow and blue stream
Uklug2012 yellow and blue streamUklug2012 yellow and blue stream
Uklug2012 yellow and blue stream
Frank van der Linden
 
Domino point2012 integrate domino designer with cvs source control
Domino point2012 integrate domino designer with cvs source controlDomino point2012 integrate domino designer with cvs source control
Domino point2012 integrate domino designer with cvs source control
Frank van der Linden
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
Frank van der Linden
 
Engage 2020: Hello are you listening, There is stream for everything
Engage 2020: Hello are you listening, There is stream for everythingEngage 2020: Hello are you listening, There is stream for everything
Engage 2020: Hello are you listening, There is stream for everything
Frank van der Linden
 
NCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsNCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streams
Frank van der Linden
 
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
Frank van der Linden
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Frank van der Linden
 
Social connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streamsSocial connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streams
Frank van der Linden
 
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Frank van der Linden
 
Spring forward: an introduction to Spring boot and Thymeleaf
Spring forward: an introduction to Spring boot and ThymeleafSpring forward: an introduction to Spring boot and Thymeleaf
Spring forward: an introduction to Spring boot and Thymeleaf
Frank van der Linden
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
Frank van der Linden
 
Use notes objects in memory and other useful java tips for xpages development
Use notes objects in memory and other useful java tips for xpages developmentUse notes objects in memory and other useful java tips for xpages development
Use notes objects in memory and other useful java tips for xpages development
Frank van der Linden
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
Frank van der Linden
 
Integrate domino designer with cvs source control
Integrate domino designer with cvs source controlIntegrate domino designer with cvs source control
Integrate domino designer with cvs source control
Frank van der Linden
 
how to connect your app to the activity stream with x-pages
how to connect your app to the activity stream with x-pageshow to connect your app to the activity stream with x-pages
how to connect your app to the activity stream with x-pages
Frank van der Linden
 
Domino point2012 integrate domino designer with cvs source control
Domino point2012 integrate domino designer with cvs source controlDomino point2012 integrate domino designer with cvs source control
Domino point2012 integrate domino designer with cvs source control
Frank van der Linden
 
Ad

Recently uploaded (20)

Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 

A (XPages) developers guide to Cloudant

  • 1. 8th Sutol Conference, November 2016 A (XPages) developers guide to Cloudant Frank van der Linden
  • 2. 8th Sutol Conference, November 2016
  • 3. 8th Sutol Conference, November 2016 About me • Freelance Java and web developer, with XPages experience • …..and JEE technologies • Owner of Elstar IT • Frequent (trail)runner
  • 4. 8th Sutol Conference, November 2016 Roadmap • Introduction to Cloudant • Inside Cloudant • Connect to Cloudant • Cloudant @ XPages
  • 5. 8th Sutol Conference, November 2016 Why Cloudant • For HR Assistant wanted to try a new datastore
  • 6. 8th Sutol Conference, November 2016 Introduction to Cloudant
  • 7. 8th Sutol Conference, November 2016 What is Cloudant • It is the cloud version of CouchDb • It is document based • CouchDb is created by Damien Katz • Cloudant is bought by IBM • Is like MongoDb or NSF a NoSQL datastore
  • 8. 8th Sutol Conference, November 2016 What is Cloudant • Data stored as JSON • View and Search ‘formula’ with javascript • Replication • Tasks • Build in API • No annoying limitations
  • 9. 8th Sutol Conference, November 2016 Cloudant as service • Cloudant can be added as service in BlueMix
  • 10. 8th Sutol Conference, November 2016 Cloudant standalone • Via website, https://cloudant.com cloudant.com
  • 11. 8th Sutol Conference, November 2016 Inside Cloudant
  • 12. 8th Sutol Conference, November 2016 Inside Cloudant
  • 13. 8th Sutol Conference, November 2016 Inside Cloudant • View mapping • Search index
  • 14. 8th Sutol Conference, November 2016 Connect to Cloudant
  • 15. 8th Sutol Conference, November 2016 Connect to Cloudant • Direct via REST • https://someusername:[email protected] • Via a OSGi Plugin, uses the HTTPConnection • https://bitbucket.org/flinden68/cloudant-connector
  • 16. 8th Sutol Conference, November 2016 Connect to Cloudant • Credentials • Account, necessary for the OSGi plugin
  • 17. 8th Sutol Conference, November 2016 Connect to Cloudant • It is JSON everywhere • _rev and _id are reserved parameters • doc{}, is the actual data from application
  • 18. 8th Sutol Conference, November 2016 Cloudant connector • Storing in and retrieving from Cloudant • Accessed from Java backend. • Will take out the security issues. • Do the heavy lifting. • Don't reinvent the wheel.
  • 19. 8th Sutol Conference, November 2016 Cloudant @ XPages
  • 20. 8th Sutol Conference, November 2016 Cloudant @ XPages
  • 21. 8th Sutol Conference, November 2016 Cloudant @ XPages
  • 22. 8th Sutol Conference, November 2016 Cloudant @ XPages • Repeat in XPages • columns - values from Job class
  • 23. 8th Sutol Conference, November 2016 Cloudant @ XPages • JobController - getJobs
  • 24. 8th Sutol Conference, November 2016 Cloudant @ XPages • Job Java Class
  • 25. 8th Sutol Conference, November 2016 Cloudant @ XPages • CloudantDAO
  • 26. 8th Sutol Conference, November 2016 Cloudant @ XPages • CloudantService - connect • Find the data in Cloudant
  • 27. 8th Sutol Conference, November 2016 Cloudant @ XPages • Job JSON in Cloudant
  • 28. 8th Sutol Conference, November 2016 Attachment @ Cloudant • Stored as base64 encoded String • Can be as standalone • Or as part of Document (we choose this way) • Store id as attachmentId, so it can be retrieved when needed
  • 29. 8th Sutol Conference, November 2016 Attachment @ Cloudant • AttachmentDAO
  • 30. 8th Sutol Conference, November 2016 Attachment @ Cloudant • AttachmentController • Convert upload to Attachment object
  • 31. 8th Sutol Conference, November 2016 Attachment @ Cloudant • ControllerBase • All controllers can use these methods
  • 32. 8th Sutol Conference, November 2016 Attachment @ Cloudant • Servlet is called in application for download • base64 data for the image tag
  • 33. 8th Sutol Conference, November 2016 RichText @ Cloudant • Stored as MultiMimePart
  • 34. 8th Sutol Conference, November 2016 RichText @ Cloudant • Which is nice converted to JSON ;-)
  • 35. 8th Sutol Conference, November 2016 Search @ Cloudant • Search example, filter the view
  • 36. 8th Sutol Conference, November 2016 Search @ Cloudant • Do the search in the Controller, call DAO
  • 37. 8th Sutol Conference, November 2016 Search @ Cloudant • Search method calls the CloudantService
  • 38. 8th Sutol Conference, November 2016 Search @ Cloudant • CloudantService calls connector to get the data
  • 39. 8th Sutol Conference, November 2016 Search @ Cloudant • CloudantService calls connector to get the data
  • 40. 8th Sutol Conference, November 2016 Search @ Cloudant • Cloudant job ftSearch index
  • 41. 8th Sutol Conference, November 2016 Resources • OSGi Cloudant connector – https://bitbucket.org/flinden68/cloudant-connector • Cloudant documentation – https://docs.cloudant.com/ • HR Assistant – hrassistant.eu-gb.mybluemix.net – github.com/flinden68/HR-Assistant
  • 42. 8th Sutol Conference, November 2016
  • 43. 8th Sutol Conference, November 2016 Thank you
  • 44. 8th Sutol Conference, November 2016