SlideShare a Scribd company logo
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
The next development
generation
with Artem Bilan
by Pivotal
Spring & Messaging:
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Artem Bilan
abilan@gopivotal.com
Spring Integration Team
Spring Framework
Spring AMQP
Spring XD
Reactor
https://github.com/artembilanhttp://www.linkedin.com/in/cleric
https://spring.io/team/artembilan http://stackoverflow.com/users/2756547
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Messaging and why do I care?
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Messaging is very simple
Headers
Payload
public static void main(String[] args) {
...
}
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
WEB
Controllers, REST,
WebSocket
INTEGRATION
Channels, Adapters,
Filters, Transforms
BATCH
Jobs, Steps,
Readers, Writers
BIG DATA
Ingestion, Export,
Orchestration, Hadoop
DATA
NON-RELATIONALRELATIONAL
CORE
GROOVYFRAMEWORK SECURITY REACTOR
GRAILS
Full-stack, Web
XD
Stream, Taps, Jobs
BOOT
Bootable, Minimal, Ops-Ready
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Messaging in Spring IO
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Spring Integration
Meet IoC!
Uses
Written
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
The heart of Spring Integration
– Endpoints (Filters) connected through
– Channels (Pipes) exchanging
– Message
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
How does it work?
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
• SpEL, SpEL, SpEL …
• Scripting (Groovy, JSR223)
• Request Handler Advice
• Transaction Synchronization
• Error Handling
• Channel Adapters Correlation
• Lifecycle and Control Bus
• Message Store Serialization
• JMX Exposing
Spring Integration: Advanced
• Adapter, Adapter, Adapter …
• SecurityContext Propagation
• Payload Cloning
• IMAP SearchTermStrategy
• FileLocker
• Scatter-Gather
• Routing Slip
• Message Broker
• Process Manager
• Multitenancy
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Retry -> tx; tx - > Retry
inbound-adapter->poller->http-gateway1->http-gateway2->jdbc-outbound-adapter
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Cache Advice
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Transaction Synchronization
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
HTTP Proxy
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
• 1000 & 1 bug fix
• 256 refactoring
• 125 improvement
• 1 new feature
• Spring 4 compatibility
• Jackson 2 support
• Syslog adapters
• TCP/IP Events
• HTTP RequestMapping
• SpEL customization
• ‘id’ for chain black box
• …
Spring Integration 3.0: What’s New?
Joke!
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
@RequestMapping
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
@RequestMapping by Spring Integration
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Spring Expression Language
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
SpEL: EvaluationContext
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
SpEL Customization: high-level API
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
SpEL Customization: high-level API
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Spring XD
• Unified Platform
• Developer Productivity
• Modular Extensibility
• Distributed Architecture
• Portable Runtime
• Hadoop Distribution Agnostic
• Proven Foundation
• XD = ‘eXtreme Data’
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Taps
Compute
HDFS
Workflow
Export
Spring XD Runtime
Ingest
Jobs
Export
Files Sensors Mobile Social
RDBMS
NoSQL
R, SAS
Spring XD Shell
Streams
Redis
Gemfire
Predictive modeling
Spring XD
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Stream Processing Model
How can we make this easier?http | filter | file
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
XD Runtimes
http | filter | file
Rabbit, Redis, (Pluggable)
XD Admin
CLUSTERED NODE
Filter
Module
CLUSTERED NODE
HTTP
Module
CLUSTERED NODE
File
Module
In Memory
Transport
http | filter | file
SINGLE
NODE
All
Modules
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Spring Integration 4.0: What Next?
• Spring 4 Platform
• Java DSL
• New EIP Patterns
• New Adapters
• Concurrency Improvement
• Clustering Features
• ???
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Spring Framework 4.0: Websockets
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Spring Framework 4.0: Websockets
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
• Foundation
• Distillation best-practices
• Lightweight
• Event routing
• Fully asynchronous
• Pattern based
• Clear API
Reactor
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Dispatchers, Events, Selectors, Streams, Promises, etc.
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Reactor – Landscape
Spring Integration
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Spring Integration + Reactor
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
Learn More. Stay Connected.
• Spring IO: https://spring.io/platform
• GitHub: https://github.com/spring-projects
• Spring Integration: http://projects.spring.io/spring-integration
• Spring XD: http://projects.spring.io/spring-xd
• Reactor: https://github.com/reactor
• Spring WebSockets: http://assets.spring.io/wp/WebSocketBlogPost.html
• EIP: http://www.eaipatterns.com
• Spring Batch: http://projects.spring.io/spring-batch
• Spring for Hadoop: http://projects.spring.io/spring-hadoop
• Groovy: http://groovy.codehaus.org
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
ありがとう

More Related Content

What's hot

Using AREL to refactor big queries
Using AREL to refactor big queriesUsing AREL to refactor big queries
Using AREL to refactor big queries
Hieu Nguyen Trung
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
Mike North
 
Always On - Zero Downtime releases
Always On - Zero Downtime releasesAlways On - Zero Downtime releases
Always On - Zero Downtime releases
Anders Lundsgård
 
Novmeber 2015 WordPress News 'n' Stuff
Novmeber 2015 WordPress News 'n' StuffNovmeber 2015 WordPress News 'n' Stuff
Novmeber 2015 WordPress News 'n' Stuff
WordPress Sydney
 
Design for scale
Design for scaleDesign for scale
Design for scale
Doug Lampe
 
Apache Zeppelin & Cluster
Apache Zeppelin & ClusterApache Zeppelin & Cluster
Apache Zeppelin & Cluster
Jongyoul Lee
 
Zero downtime deployments with laravel envoy
Zero downtime deployments with laravel envoyZero downtime deployments with laravel envoy
Zero downtime deployments with laravel envoy
Tung Nguyen
 
Angular animation
Angular animationAngular animation
Angular animation
Merchu Liang
 
E2E Data Pipeline - Apache Spark/Airflow/Livy
E2E Data Pipeline - Apache Spark/Airflow/LivyE2E Data Pipeline - Apache Spark/Airflow/Livy
E2E Data Pipeline - Apache Spark/Airflow/Livy
Rikin Tanna
 
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemandAtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemandcolleenfry
 
Big Retail Goes Reactive at Walmart
Big Retail Goes Reactive at WalmartBig Retail Goes Reactive at Walmart
Big Retail Goes Reactive at Walmart
Nurun
 
Livy: A REST Web Service For Apache Spark
Livy: A REST Web Service For Apache SparkLivy: A REST Web Service For Apache Spark
Livy: A REST Web Service For Apache Spark
Jen Aman
 
From Heroku to Amazon AWS
From Heroku to Amazon AWSFrom Heroku to Amazon AWS
From Heroku to Amazon AWS
Sebastian Schleicher
 
Serverless
ServerlessServerless
Serverless
Young Yang
 
Zeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridZeppelin meetup 2016 madrid
Zeppelin meetup 2016 madrid
Jongyoul Lee
 
Atagg2015 Continuous delivery by building environment using docker
Atagg2015 Continuous delivery by building environment using dockerAtagg2015 Continuous delivery by building environment using docker
Atagg2015 Continuous delivery by building environment using docker
Agile Testing Alliance
 
Rapid application development with spring roo j-fall 2010 - baris dere
Rapid application development with spring roo   j-fall 2010 - baris dereRapid application development with spring roo   j-fall 2010 - baris dere
Rapid application development with spring roo j-fall 2010 - baris dereBaris Dere
 
Write Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js MunichWrite Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js Munich
Mike North
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
Ioan Eugen Stan
 
JIRA Data Center Implementation at Pitney Bowes - Peter Strickland
JIRA Data Center Implementation at Pitney Bowes - Peter StricklandJIRA Data Center Implementation at Pitney Bowes - Peter Strickland
JIRA Data Center Implementation at Pitney Bowes - Peter Strickland
Atlassian
 

What's hot (20)

Using AREL to refactor big queries
Using AREL to refactor big queriesUsing AREL to refactor big queries
Using AREL to refactor big queries
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
 
Always On - Zero Downtime releases
Always On - Zero Downtime releasesAlways On - Zero Downtime releases
Always On - Zero Downtime releases
 
Novmeber 2015 WordPress News 'n' Stuff
Novmeber 2015 WordPress News 'n' StuffNovmeber 2015 WordPress News 'n' Stuff
Novmeber 2015 WordPress News 'n' Stuff
 
Design for scale
Design for scaleDesign for scale
Design for scale
 
Apache Zeppelin & Cluster
Apache Zeppelin & ClusterApache Zeppelin & Cluster
Apache Zeppelin & Cluster
 
Zero downtime deployments with laravel envoy
Zero downtime deployments with laravel envoyZero downtime deployments with laravel envoy
Zero downtime deployments with laravel envoy
 
Angular animation
Angular animationAngular animation
Angular animation
 
E2E Data Pipeline - Apache Spark/Airflow/Livy
E2E Data Pipeline - Apache Spark/Airflow/LivyE2E Data Pipeline - Apache Spark/Airflow/Livy
E2E Data Pipeline - Apache Spark/Airflow/Livy
 
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemandAtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
AtlasCamp 2013: A Re-Intriduction to Atlassian Connect: Add-ons for OnDemand
 
Big Retail Goes Reactive at Walmart
Big Retail Goes Reactive at WalmartBig Retail Goes Reactive at Walmart
Big Retail Goes Reactive at Walmart
 
Livy: A REST Web Service For Apache Spark
Livy: A REST Web Service For Apache SparkLivy: A REST Web Service For Apache Spark
Livy: A REST Web Service For Apache Spark
 
From Heroku to Amazon AWS
From Heroku to Amazon AWSFrom Heroku to Amazon AWS
From Heroku to Amazon AWS
 
Serverless
ServerlessServerless
Serverless
 
Zeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridZeppelin meetup 2016 madrid
Zeppelin meetup 2016 madrid
 
Atagg2015 Continuous delivery by building environment using docker
Atagg2015 Continuous delivery by building environment using dockerAtagg2015 Continuous delivery by building environment using docker
Atagg2015 Continuous delivery by building environment using docker
 
Rapid application development with spring roo j-fall 2010 - baris dere
Rapid application development with spring roo   j-fall 2010 - baris dereRapid application development with spring roo   j-fall 2010 - baris dere
Rapid application development with spring roo j-fall 2010 - baris dere
 
Write Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js MunichWrite Once, Run Everywhere - Ember.js Munich
Write Once, Run Everywhere - Ember.js Munich
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
 
JIRA Data Center Implementation at Pitney Bowes - Peter Strickland
JIRA Data Center Implementation at Pitney Bowes - Peter StricklandJIRA Data Center Implementation at Pitney Bowes - Peter Strickland
JIRA Data Center Implementation at Pitney Bowes - Peter Strickland
 

Similar to Spring & messaging

Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
Daniel Woods
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
Akana
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?Akana
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
Bruno Borges
 
Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018
Christopher Co
 
Building a Stock Prediction system with Machine Learning using Geode, SpringX...
Building a Stock Prediction system with Machine Learning using Geode, SpringX...Building a Stock Prediction system with Machine Learning using Geode, SpringX...
Building a Stock Prediction system with Machine Learning using Geode, SpringX...
William Markito Oliveira
 
Implementing a highly scalable stock prediction system with R, Geode, SpringX...
Implementing a highly scalable stock prediction system with R, Geode, SpringX...Implementing a highly scalable stock prediction system with R, Geode, SpringX...
Implementing a highly scalable stock prediction system with R, Geode, SpringX...
William Markito Oliveira
 
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
OpenStack Korea Community
 
API Description Languages: Which Is The Right One For Me?
 API Description Languages: Which Is The Right One For Me?  API Description Languages: Which Is The Right One For Me?
API Description Languages: Which Is The Right One For Me?
ProgrammableWeb
 
IIMB presentation
IIMB presentationIIMB presentation
IIMB presentation
Aveekshith Bushan
 
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
Lari Hotari
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description Languages
Akana
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description LanguagesAkana
 
Building Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsBuilding Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data Grids
John Blum
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
MySQL Brasil
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIs
Apigee | Google Cloud
 
Automating and Orchestrating Cloud Computing
Automating and Orchestrating Cloud ComputingAutomating and Orchestrating Cloud Computing
Automating and Orchestrating Cloud ComputingOstrato
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
Ted Wennmark
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle Cloud
Juan Carlos Ruiz Rico
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
 

Similar to Spring & messaging (20)

Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018
 
Building a Stock Prediction system with Machine Learning using Geode, SpringX...
Building a Stock Prediction system with Machine Learning using Geode, SpringX...Building a Stock Prediction system with Machine Learning using Geode, SpringX...
Building a Stock Prediction system with Machine Learning using Geode, SpringX...
 
Implementing a highly scalable stock prediction system with R, Geode, SpringX...
Implementing a highly scalable stock prediction system with R, Geode, SpringX...Implementing a highly scalable stock prediction system with R, Geode, SpringX...
Implementing a highly scalable stock prediction system with R, Geode, SpringX...
 
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
[2015-11월 정기 세미나] Cloud Native Platform - Pivotal
 
API Description Languages: Which Is The Right One For Me?
 API Description Languages: Which Is The Right One For Me?  API Description Languages: Which Is The Right One For Me?
API Description Languages: Which Is The Right One For Me?
 
IIMB presentation
IIMB presentationIIMB presentation
IIMB presentation
 
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description Languages
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description Languages
 
Building Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsBuilding Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data Grids
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIs
 
Automating and Orchestrating Cloud Computing
Automating and Orchestrating Cloud ComputingAutomating and Orchestrating Cloud Computing
Automating and Orchestrating Cloud Computing
 
MySQL as a Document Store
MySQL as a Document StoreMySQL as a Document Store
MySQL as a Document Store
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle Cloud
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 

Recently uploaded

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

Spring & messaging

  • 1. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. The next development generation with Artem Bilan by Pivotal Spring & Messaging:
  • 2. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Artem Bilan abilan@gopivotal.com Spring Integration Team Spring Framework Spring AMQP Spring XD Reactor https://github.com/artembilanhttp://www.linkedin.com/in/cleric https://spring.io/team/artembilan http://stackoverflow.com/users/2756547
  • 3. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Messaging and why do I care?
  • 4. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Messaging is very simple Headers Payload public static void main(String[] args) { ... }
  • 5. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. WEB Controllers, REST, WebSocket INTEGRATION Channels, Adapters, Filters, Transforms BATCH Jobs, Steps, Readers, Writers BIG DATA Ingestion, Export, Orchestration, Hadoop DATA NON-RELATIONALRELATIONAL CORE GROOVYFRAMEWORK SECURITY REACTOR GRAILS Full-stack, Web XD Stream, Taps, Jobs BOOT Bootable, Minimal, Ops-Ready
  • 6. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Messaging in Spring IO
  • 7. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Spring Integration Meet IoC! Uses Written
  • 8. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. The heart of Spring Integration – Endpoints (Filters) connected through – Channels (Pipes) exchanging – Message
  • 9. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. How does it work?
  • 10. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. • SpEL, SpEL, SpEL … • Scripting (Groovy, JSR223) • Request Handler Advice • Transaction Synchronization • Error Handling • Channel Adapters Correlation • Lifecycle and Control Bus • Message Store Serialization • JMX Exposing Spring Integration: Advanced • Adapter, Adapter, Adapter … • SecurityContext Propagation • Payload Cloning • IMAP SearchTermStrategy • FileLocker • Scatter-Gather • Routing Slip • Message Broker • Process Manager • Multitenancy
  • 11. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Retry -> tx; tx - > Retry inbound-adapter->poller->http-gateway1->http-gateway2->jdbc-outbound-adapter
  • 12. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Cache Advice
  • 13. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Transaction Synchronization
  • 14. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. HTTP Proxy
  • 15. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. • 1000 & 1 bug fix • 256 refactoring • 125 improvement • 1 new feature • Spring 4 compatibility • Jackson 2 support • Syslog adapters • TCP/IP Events • HTTP RequestMapping • SpEL customization • ‘id’ for chain black box • … Spring Integration 3.0: What’s New? Joke!
  • 16. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. @RequestMapping
  • 17. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. @RequestMapping by Spring Integration
  • 18. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Spring Expression Language
  • 19. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. SpEL: EvaluationContext
  • 20. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. SpEL Customization: high-level API
  • 21. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. SpEL Customization: high-level API
  • 22. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Spring XD • Unified Platform • Developer Productivity • Modular Extensibility • Distributed Architecture • Portable Runtime • Hadoop Distribution Agnostic • Proven Foundation • XD = ‘eXtreme Data’
  • 23. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Taps Compute HDFS Workflow Export Spring XD Runtime Ingest Jobs Export Files Sensors Mobile Social RDBMS NoSQL R, SAS Spring XD Shell Streams Redis Gemfire Predictive modeling Spring XD
  • 24. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Stream Processing Model How can we make this easier?http | filter | file
  • 25. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. XD Runtimes http | filter | file Rabbit, Redis, (Pluggable) XD Admin CLUSTERED NODE Filter Module CLUSTERED NODE HTTP Module CLUSTERED NODE File Module In Memory Transport http | filter | file SINGLE NODE All Modules
  • 26. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Spring Integration 4.0: What Next? • Spring 4 Platform • Java DSL • New EIP Patterns • New Adapters • Concurrency Improvement • Clustering Features • ???
  • 27. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.
  • 28. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Spring Framework 4.0: Websockets
  • 29. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Spring Framework 4.0: Websockets
  • 30. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. • Foundation • Distillation best-practices • Lightweight • Event routing • Fully asynchronous • Pattern based • Clear API Reactor
  • 31. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Dispatchers, Events, Selectors, Streams, Promises, etc.
  • 32. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Reactor – Landscape Spring Integration
  • 33. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Spring Integration + Reactor
  • 34. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. Learn More. Stay Connected. • Spring IO: https://spring.io/platform • GitHub: https://github.com/spring-projects • Spring Integration: http://projects.spring.io/spring-integration • Spring XD: http://projects.spring.io/spring-xd • Reactor: https://github.com/reactor • Spring WebSockets: http://assets.spring.io/wp/WebSocketBlogPost.html • EIP: http://www.eaipatterns.com • Spring Batch: http://projects.spring.io/spring-batch • Spring for Hadoop: http://projects.spring.io/spring-hadoop • Groovy: http://groovy.codehaus.org
  • 35. © 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. ありがとう

Editor's Notes

  1. Unified platform across big data domainsStream processing: ingestion & analyticsBatch processing workflow orchestration & exportProductivityHigh level DSL for managing streams and jobsProven foundation Built on existing assets: Spring Batch, Integration, DataExtensibleDI, Test friendly…DistributedA | B | C - Pluggable transports: Rabbit, Redis, …Portable Runtime Standalone – Simplicity and testabilityYARN –Fault Tolerance and ScalabilityIn-memory data grids – co-location of reference data.PAASHadoop Distribution Agnostic
  2. Now have a unified platform that handle the whole thing.TODO – get rid of mobile?....XD runtime address both stream and batch processing in a unfired manner.XD runtime address both stream and batch processing in a unfired manner.
  3. Distributed mode, process boundaries