Transcript
Page 1: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

How to Use NoSQLin Enterprise Java Applications

Patrick Baumgartner

NoSQL Roadshow | Zürich | 26.04.2012

Page 2: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

2

Agenda

• Speaker Profile• New Demands on Data Access• New Types of Data Stores• Integrating NoSQL Data Stores• Spring Data Overview • Example with MongoDB• Q & A

Page 3: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

3

Speaker Profile

Patrick Baumgartner• Senior Software Consultant | Partner• VMware/SpringSource Certified Instructor (Spring Trainer)• Spring Framework, OSGi & agile engineering practices• Co-author of „OSGi für Praktiker“ (Hanser)

Swiftmind GmbH http://www.swiftmind.com

• Enterprise Java, Spring & OSGi consulting• Spring & OSGi workshops & trainings• Agile engineering practices workshops

Page 4: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

4

New Demands on Data Access

• Structured and unstructured data

• Massive amounts of data • Inexpensive horizontal

scaling• Apps and data in the

cloud• Social network features• …

Page 5: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

5

New Types of Data Stores

Page 6: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

6

We are not architects!

Integrating NoSQL Data Stores #1

http://www.flickr.com/photos/sakeeb/4087246274

Page 7: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

7

Don’t re-invent the wheel!

Integrating NoSQL Data Stores #2

http://www.flickr.com/photos/dmott9/5921728819

Page 8: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

8

There is some Spring!

Integrating NoSQL Data Stores #3

http://www.springsource.org/spring-data

Page 9: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

9

Spring Data

• Same goals as the Spring Framework– Productivity improvement– Programming model consistency– Portability

• Umbrella for subprojects, specific to a given database• Mapping support for Java domain objects

• http://www.springsource.org/spring-data• http://github.com/SpringSource/spring-data-XXX

Page 10: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

10

Spring Data – Overview #1

• JPA• JDBC Extensions

Relational Databases

• Apache Hadoop

Big Data

• GemFire

Data Grid

• REST

HTTP

• Redis• Riak

Key Value Stores

Page 11: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

11

Spring Data – Overview #2

• Mongo DB• Couch DB (planned)

Document Stores

• Neo4J

Graph Databases

• HBase (planned)• Cassandra (planned)

Column Stores

• Amazon S3

Blob Stores

• Commons

Common Infrastructure

Page 12: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

12

Spring Data – Key Features

• Low level data access API abstraction– MongoTemplate, RiakTemplate, Neo4jTemplate– Exception translation– Transaction management

• Object Mapping (Java to data store)• Generic Repository Support

– Basic CRUD, dynamic finders, pagination and sorting • Spring namespaces• Cross Store Persistence Programming Model

– @Entity, @Document, @NodeEntity

Page 13: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

13

Spring Data MongoDB – Example

Page 14: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

14

Spring Data MongoDB – Entity

Stored JSON:{ "_id" : ObjectId("4f9886290364b533b3acd4ce"), "_class" : "com.acme.hello.domain.Person", "name" : "Bob", "age" : 33 }

Page 15: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

15

Spring Data MongoDB – Configuration

Page 16: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

16

Spring Data MongoDB – Repository

Page 17: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

17

Use a data model which really matches to your data …

Give it a try!

http://www.flickr.com/photos/juniorvelo/3267647833

Page 18: How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Zurich

18

Q & A

Patrick Baumgartnerpatrick.baumgartner [at] swiftmind [dot] comhttp://www.swiftmind.com http://www.twitter.com/patbaumgartner


Top Related