SlideShare a Scribd company logo
Using Spring and MongoDB with Cloud Foundry Chris Harris, Architect
Spring Data
Data Access Challenge #1: Scale Horizontally
Data Access Challenge #2: Heterogeneous data access needs
New demands on data access ... until we needed inexpensive horizontal scaling for some large web based applications ... ... and we needed to deploy our apps in the cloud ... image courtesy of Bitcurrent
NoSQL offers several data store categories Column Key-Value Document Graph
Spring Framework built-in data access support Transaction abstractions Common data access exception hierarchy JDBC - JdbcTemplate ORM - Hibernate, JPA support OXM - Object to XML mapping Serializer/Deserializer strategies (Spring 3.0) Cache support (Spring 3.1)
Spring Data Key-value Spring Data Document Spring Data Graph Spring Data Column Spring Data Blob Spring Data JPA Repository / JDBC Extensions Spring Gemfire / Spring Hadoop ... Grails i N c O n S e Q uentia L
Spring Data Building Blocks Low level data access APIs MongoTemplate, RedisTemplate ... Object Mapping (Java and GORM) Cross Store Persistence Programming model Generic Repository support  Productivity support in Roo and Grails
Spring MongoDB
Spring Data Document Mongo MongoTemplate MongoConverter interface for mapping Mongo documents SimpleMongoConverter for basic POJO mapping support Leverage Spring 3.0 TypeConverters and SpEL Exception translation Advanced Mapping Annotation based (@Document, @Id, @DbRef) MongoRepository Built on Hades support for JPA Repositories
Simple Domain Class
Mongo Template Direct Usage of the Mongo Template:
Generic Repository  Interface for generic CRUD operations on a repository for a specific type
Paging and Sorting Repository Extends “ CrudRepository ”   Usage: Paging and Sorting Repository:
Custom Repository  Custom Repository:  Keywords :  Keyword Sample Logical result GreaterThan findByAgeGreaterThan(int age) {"age" : { "$gt"  : age}} LessThan findByAgeLessThan(int age) {"age" : { "$lt"  : age}} Between findByAgeBetween(int from, int to) {"age" : { "$gt"  : from,  "$lt"  : to}} NotNull findByFirstnameNotNull() { ” firstname" : {" $ne"  : null}} Null findByFirstnameNull() { ” firstname" : null} Like findByFirstnameLike(String name) " firstname " :  firstname } ( regex ) etc….
Cross Store
JPA and MongoDB  JPA “Customer” with a “ SurveyInfo ”  Document
Using a Cross-Store Saving a Customer with a SurveryInfo Mongo Document:
Cloud Foundry
Choice of clouds Cloud  Provider Interface Application Service Interface Data Services Private  Clouds  Public Clouds Micro Clouds .js Other Services Msg Services .COM …
Cloud Foundry MongoDB Demo

More Related Content

What's hot (20)

PPT
Webinar: High Performance MongoDB Applications with IBM POWER8
MongoDB
 
PDF
Presto+MySQLで分散SQL
Sadayuki Furuhashi
 
PDF
Project Voldemort: Big data loading
Dan Harvey
 
PDF
There and back_again_oracle_and_big_data_16x9
Gleb Otochkin
 
PDF
Presto as a Service - Tips for operation and monitoring
Taro L. Saito
 
PPTX
Big Data: Guidelines and Examples for the Enterprise Decision Maker
MongoDB
 
KEY
NoSQL Databases: Why, what and when
Lorenzo Alberton
 
KEY
NoSQL databases and managing big data
Steven Francia
 
PDF
Facebook Presto presentation
Cyanny LIANG
 
PPTX
Benefits of Using MongoDB Over RDBMSs
MongoDB
 
PDF
A Day in the Life of a Druid Implementor and Druid's Roadmap
Itai Yaffe
 
PPTX
Introduction To MongoDB
ElieHannouch
 
PPTX
3 scenarios when to use MongoDB!
Edureka!
 
PPTX
MongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes
MongoDB
 
PDF
Enterprise Postgres
Oracle Korea
 
PPTX
HTAP Queries
Atif Shaikh
 
PDF
Presto at Twitter
Bill Graham
 
PDF
Real time processing of trade data with kafka, spark streaming and aerospike ...
Mich Talebzadeh (Ph.D.)
 
PDF
E commerce data migration in moving systems across data centres
Regunath B
 
PPTX
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
Omid Vahdaty
 
Webinar: High Performance MongoDB Applications with IBM POWER8
MongoDB
 
Presto+MySQLで分散SQL
Sadayuki Furuhashi
 
Project Voldemort: Big data loading
Dan Harvey
 
There and back_again_oracle_and_big_data_16x9
Gleb Otochkin
 
Presto as a Service - Tips for operation and monitoring
Taro L. Saito
 
Big Data: Guidelines and Examples for the Enterprise Decision Maker
MongoDB
 
NoSQL Databases: Why, what and when
Lorenzo Alberton
 
NoSQL databases and managing big data
Steven Francia
 
Facebook Presto presentation
Cyanny LIANG
 
Benefits of Using MongoDB Over RDBMSs
MongoDB
 
A Day in the Life of a Druid Implementor and Druid's Roadmap
Itai Yaffe
 
Introduction To MongoDB
ElieHannouch
 
3 scenarios when to use MongoDB!
Edureka!
 
MongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes
MongoDB
 
Enterprise Postgres
Oracle Korea
 
HTAP Queries
Atif Shaikh
 
Presto at Twitter
Bill Graham
 
Real time processing of trade data with kafka, spark streaming and aerospike ...
Mich Talebzadeh (Ph.D.)
 
E commerce data migration in moving systems across data centres
Regunath B
 
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
Omid Vahdaty
 

Viewers also liked (9)

PPTX
moovel aws summit Frankfurt 2016
Oliver Wahlen
 
PPTX
Александр Третьяков: "Spring Data JPA and MongoDB"
Anna Shymchenko
 
PDF
GUJavaSC - Criando Micro-serviços Reativos com Java
Rodrigo Cândido da Silva
 
PPTX
Константин Маркович: "Creating modular application using Spring Boot "
Anna Shymchenko
 
PPTX
Евгений Капинос "Advanced JPA (Java Persistent API)"
Anna Shymchenko
 
PDF
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
Rodrigo Cândido da Silva
 
ODP
Java Persistence API
Carol McDonald
 
PDF
Testdrive AngularJS with Spring 4
Oliver Wahlen
 
ODP
JPA Best Practices
Carol McDonald
 
moovel aws summit Frankfurt 2016
Oliver Wahlen
 
Александр Третьяков: "Spring Data JPA and MongoDB"
Anna Shymchenko
 
GUJavaSC - Criando Micro-serviços Reativos com Java
Rodrigo Cândido da Silva
 
Константин Маркович: "Creating modular application using Spring Boot "
Anna Shymchenko
 
Евгений Капинос "Advanced JPA (Java Persistent API)"
Anna Shymchenko
 
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
Rodrigo Cândido da Silva
 
Java Persistence API
Carol McDonald
 
Testdrive AngularJS with Spring 4
Oliver Wahlen
 
JPA Best Practices
Carol McDonald
 
Ad

Similar to Using Spring Data and MongoDB with Cloud Foundry (20)

PDF
Compass Framework
Lukas Vlcek
 
PPTX
Java Persistence Frameworks for MongoDB
Tobias Trelle
 
PDF
SparkR: The Past, the Present and the Future-(Shivaram Venkataraman and Rui S...
Spark Summit
 
PPTX
NoSQL Endgame DevoxxUA Conference 2020
Thodoris Bais
 
PDF
Build Deep Learning Applications for Big Data Platforms (CVPR 2018 tutorial)
Jason Dai
 
PDF
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital.AI
 
PPT
Java one 2010
scdn
 
PPT
Spring data presentation
Oleksii Usyk
 
PPT
Apache Persistence Layers
Henning Schmiedehausen
 
ODP
Spring Data in 10 minutes
Corneil du Plessis
 
PPT
Mondrian - Geo Mondrian
Simone Campora
 
PDF
GraphGen: Conducting Graph Analytics over Relational Databases
PyData
 
PDF
GraphGen: Conducting Graph Analytics over Relational Databases
Konstantinos Xirogiannopoulos
 
PPT
Allura - an Open Source MongoDB Based Document Oriented SourceForge
Rick Copeland
 
PPT
Rapid, Scalable Web Development with MongoDB, Ming, and Python
Rick Copeland
 
PPTX
Graph RAG Varieties and Their Enterprise Applications
Ontotext
 
PDF
Elephant in the room: A DBA's Guide to Hadoop
Stuart Ainsworth
 
PDF
myEquivalents, aka a new cross-reference service
Rothamsted Research, UK
 
PDF
Data Con LA 2022 - What's new with MongoDB 6.0 and Atlas
Data Con LA
 
PDF
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Big Data Spain
 
Compass Framework
Lukas Vlcek
 
Java Persistence Frameworks for MongoDB
Tobias Trelle
 
SparkR: The Past, the Present and the Future-(Shivaram Venkataraman and Rui S...
Spark Summit
 
NoSQL Endgame DevoxxUA Conference 2020
Thodoris Bais
 
Build Deep Learning Applications for Big Data Platforms (CVPR 2018 tutorial)
Jason Dai
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital.AI
 
Java one 2010
scdn
 
Spring data presentation
Oleksii Usyk
 
Apache Persistence Layers
Henning Schmiedehausen
 
Spring Data in 10 minutes
Corneil du Plessis
 
Mondrian - Geo Mondrian
Simone Campora
 
GraphGen: Conducting Graph Analytics over Relational Databases
PyData
 
GraphGen: Conducting Graph Analytics over Relational Databases
Konstantinos Xirogiannopoulos
 
Allura - an Open Source MongoDB Based Document Oriented SourceForge
Rick Copeland
 
Rapid, Scalable Web Development with MongoDB, Ming, and Python
Rick Copeland
 
Graph RAG Varieties and Their Enterprise Applications
Ontotext
 
Elephant in the room: A DBA's Guide to Hadoop
Stuart Ainsworth
 
myEquivalents, aka a new cross-reference service
Rothamsted Research, UK
 
Data Con LA 2022 - What's new with MongoDB 6.0 and Atlas
Data Con LA
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Big Data Spain
 
Ad

Recently uploaded (20)

PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 

Using Spring Data and MongoDB with Cloud Foundry

  • 1. Using Spring and MongoDB with Cloud Foundry Chris Harris, Architect
  • 3. Data Access Challenge #1: Scale Horizontally
  • 4. Data Access Challenge #2: Heterogeneous data access needs
  • 5. New demands on data access ... until we needed inexpensive horizontal scaling for some large web based applications ... ... and we needed to deploy our apps in the cloud ... image courtesy of Bitcurrent
  • 6. NoSQL offers several data store categories Column Key-Value Document Graph
  • 7. Spring Framework built-in data access support Transaction abstractions Common data access exception hierarchy JDBC - JdbcTemplate ORM - Hibernate, JPA support OXM - Object to XML mapping Serializer/Deserializer strategies (Spring 3.0) Cache support (Spring 3.1)
  • 8. Spring Data Key-value Spring Data Document Spring Data Graph Spring Data Column Spring Data Blob Spring Data JPA Repository / JDBC Extensions Spring Gemfire / Spring Hadoop ... Grails i N c O n S e Q uentia L
  • 9. Spring Data Building Blocks Low level data access APIs MongoTemplate, RedisTemplate ... Object Mapping (Java and GORM) Cross Store Persistence Programming model Generic Repository support Productivity support in Roo and Grails
  • 11. Spring Data Document Mongo MongoTemplate MongoConverter interface for mapping Mongo documents SimpleMongoConverter for basic POJO mapping support Leverage Spring 3.0 TypeConverters and SpEL Exception translation Advanced Mapping Annotation based (@Document, @Id, @DbRef) MongoRepository Built on Hades support for JPA Repositories
  • 13. Mongo Template Direct Usage of the Mongo Template:
  • 14. Generic Repository Interface for generic CRUD operations on a repository for a specific type
  • 15. Paging and Sorting Repository Extends “ CrudRepository ” Usage: Paging and Sorting Repository:
  • 16. Custom Repository Custom Repository: Keywords : Keyword Sample Logical result GreaterThan findByAgeGreaterThan(int age) {"age" : { "$gt" : age}} LessThan findByAgeLessThan(int age) {"age" : { "$lt" : age}} Between findByAgeBetween(int from, int to) {"age" : { "$gt" : from, "$lt" : to}} NotNull findByFirstnameNotNull() { ” firstname" : {" $ne" : null}} Null findByFirstnameNull() { ” firstname" : null} Like findByFirstnameLike(String name) " firstname " : firstname } ( regex ) etc….
  • 18. JPA and MongoDB JPA “Customer” with a “ SurveyInfo ” Document
  • 19. Using a Cross-Store Saving a Customer with a SurveryInfo Mongo Document:
  • 21. Choice of clouds Cloud Provider Interface Application Service Interface Data Services Private Clouds Public Clouds Micro Clouds .js Other Services Msg Services .COM …

Editor's Notes

  • #4: Oracle RAC clustering is very expensive. $70K/CPU according to list. Even at ½ the cost, it’s still really expensive to build out a horizontal data access grid.
  • #5: The amount of log data amassed in Facebook’s operations is staggering. Rothschild said Facebook manages more than 25 terabytes of data per day in logging data, which he said was the equivalent of about 1,000 times the volume of mail delivered daily by the U.S. Postal Service. BASE (basically available, soft state, eventually consistent)