Upload
john-blum
View
268
Download
1
Embed Size (px)
Citation preview
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
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
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
~
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
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
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
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
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)
|
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
| +
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
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
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
+
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
+
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
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
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
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
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) { .. }}
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…
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 {}
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>`
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>`
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
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
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
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
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.