27
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Softw licensed under a Creative Commons Attribution-NonCommercia http://creativecommons.org/licenses/by- Spring Data and In-Memory Data Management in Action John Blum • Luke Shannon @john_blum • @lukewshannon

Spring Data and In-Memory Data Management in Action

Embed Size (px)

Citation preview

Page 1: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/

Spring Data and In-Memory Data Management in Action

John Blum • Luke Shannon@john_blum • @lukewshannon

Page 2: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/3

Agenda• Brief Apache Geode Overview• Apache Geode in Spring• Spring with Apache Geode in Action:

• Caching in [Pivotal] CloudFoundry• Events with Continuous Query• Data Access with Repositories

• New Improvements• Roadmap

• *Bonus Feature• QA

Page 3: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/4

Apache Geode Pivotal GemFire

~

Page 4: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/5

DistributedLinearly Scalable

High ThroughputLow/Predictable Latency

Highly Available

Consistent

Durable

In-Memory

Resilient/Fault TolerantShared Nothing Architecture

Partitioned

Real-Time Big/Fast Data

Events/Continuous Query

FunctionsTransactions

Queries/Indexes

Multi-Cluster

Client/Server

P2P

Persistent

Replication

CloudSecure

Serialization

Page 5: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/7

Spring Data GemFire / Geode

1. Use the Spring Framework’s powerful, non-invasive programming model and concepts to simplify the configuration and development of highly-scalable, distributed Spring applications based on Pivotal GemFire or Apache Geode.

2. Integration with the Spring portfolio…

Purpose

Page 6: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/8

Spring Data GemFire / Geode

+ +Using Pivotal GemFire or Apache Geode

With Spring’s Transaction Management and Spring Data GemFire/Geode

To support both Local (Cache) & Global (JTA) Transactions

Spring Framework

Page 7: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/9

Spring Data GemFire / Geode

+ +Using Pivotal GemFire or Apache Geode

With Spring’s Cache Abstraction and Spring Data GemFire/Geode

To serve as a JCache (JSR-107) caching provider

Spring Framework

Page 8: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/10

Spring Data GemFire / GeodeSpring Data Commons

+

Using Pivotal GemFire or Apache Geode With SD Commons Repository Infrastructure and

SD GemFire/Geode To rapidly build Data Access Objects (CRUD + Mapping +

Querying)

|

Page 9: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/11

Spring Data GemFire / GeodeSpring Data REST & Spring HATEOAS

+

Using Pivotal GemFire or Apache Geode With SDC Repositories, Spring Data REST and Spring HATEAOS

To easily create mature, hypermedia-driven REST web services

| +

Page 11: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/13

Spring Data GemFireSpring XD

+

Using Pivotal GemFire with Spring XD (CQ, source & sink) To simplify Big Data applications

Performing Ingest, Analytics, Batch Jobs and Data Export

Page 12: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/14

Spring Data GemFireSpring Session

+

Using Pivotal GemFire with Spring Session (Data GemFire)To simplify (HTTP) Session State Management

+

Page 13: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/15

Spring Data GemFireSpring Boot

+

Using Pivotal GemFire with Spring BootTo get up and running as quickly as possible

+

Page 14: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/16

Spring Data GemFireSpring Cloud

+

Use Spring Cloud (Connectors)To build Cloud Native Applications and Microservices

Using Pivotal GemFire

Page 15: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/17

Examples

Page 16: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/18

Spring Data GemFire / Geode

Spring Data GemFire<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-gemfire</artifactId> <version>1.8.2.RELEASE</version></dependency>

Spring Data Geode<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-geode</artifactId> <version>1.0.0.APACHE-GEODE-INCUBATING-M2</version></dependency>

Pivotal GemFire

Maven Artifacts

http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data-gemfire%7C1.8.2.RELEASE%7Cjar

http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data-geode%7C1.0.0.APACHE-GEODE-INCUBATING-M2%7Cjar

Page 17: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/19

Spring Data GemFire / Geode

Spring Data GemFire<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-gemfire</artifactId> <version>1.4.0.RELEASE</version></dependency>

Pivotal GemFire

Spring Boot Maven Artifact

http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data-gemfire%7C1.8.2.RELEASE%7Cjar

Page 18: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/20

Roadmap – Annotation Support for Callbacks

@Componentpublic class ExampleApplicationCallbacks {

@CacheListener(region = “EventSource”) public void afterCreate(EntryEvent<K, V> event) { .. }

@CacheLoader(region = “DataSink”) public void load(LoaderHelper<K, V> helper) { .. }

@CacheWriter(region = “DataSource”) public void beforeUpdate(EntryEvent<K, V> event) { .. }}

Page 19: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/21

Spring Data GemFire / Geode

Spring Data GemFire 2.0 Java 8 Spring Framework 5.0 GemFire 9.0

Projections; Java 8 Types (Optional<T>, Stream<T>); Reactive Support (?)

Codebase re-organization Test Framework support

Just around the corner…

Page 20: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/22

Spring Boot PR #6224 – Auto-configuration support for SDG Repositories

interface CustomerRepository extends Repository<Customer, Long> {}

@Region(“Customers”)class Customer {}

compile “org.springframework.boot:spring-boot-starter-data-gemfire:1.5.0.M1”

No longer necessary…@SpringBootApplication@EnableGemfireRepositoriesclass ExampleSpringBootApplication {}

Page 21: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/23

Spring Boot PR #5445 – Spring Boot Starter Data Geode

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-geode</artifactId> <version>???</version></dependency>`

Page 22: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/24

Spring Session PR #366 – Spring Session Data Geode

<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-geode</artifactId> <version>???</version></dependency>`

Page 23: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/25

References Spring Data GemFire (SDG) project page SDG GitHub source code SDG Reference Guide SDG API SDG Wiki page SDG Examples SDG JIRA Issue Tracking SDG StackOverflow spring-data-gemfire tag spring-data Gitter IM Channel

Page 24: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/

Learn More. Stay Connected.

Oliver GierkeAdvanced Spring Data REST

11:00 – 12:15 PM

@springcentralspring.io/blog

@pivotalpivotal.io/blog

@pivotalcfhttp://engineering.pivotal.io

Page 25: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/27

QuestionsAnswers

Page 26: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/28

Thank You

Page 27: Spring Data and In-Memory Data Management in Action

Unless otherwise indicated, these s l ides are © 2013-2016 Pivota l Software , Inc . and l icensed under a Creative Commons Attr ibution-NonCommerc ia l l i cense:

http:/ /c reativecommons .org/ l icenses/by-nc/3.0/29

Safe Harbor Statement• The following is intended to outline the general direction of Pivotal's

offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation.