spring data and in-memory data management in action
TRANSCRIPT
![Page 1: Spring Data and In-Memory Data Management in Action](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/1.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/2.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/3.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/4.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/5.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/6.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/7.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/9.jpg)
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 10: Spring Data and In-Memory Data Management in Action](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/10.jpg)
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/12
Spring Data GemFireSpring Integration
+
Using Pivotal GemFire with Spring Integration For Inbound (Cache Events & CQ) and Outbound Channel
Adapters, Message Store, Lock Registry, Metadata Store
![Page 11: Spring Data and In-Memory Data Management in Action](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/11.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/12.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/13.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/14.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/15.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/16.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/17.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/18.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/19.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/20.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/21.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/22.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/23.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/24.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/25.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/26.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062400/58ae5ef81a28ab57678b6667/html5/thumbnails/27.jpg)
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.