SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
© 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.
ありがとう

Mais conteúdo relacionado

Mais procurados

Using AREL to refactor big queries
Using AREL to refactor big queriesUsing AREL to refactor big queries
Using AREL to refactor big queriesHieu 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 AppsMike North
 
Always On - Zero Downtime releases
Always On - Zero Downtime releasesAlways On - Zero Downtime releases
Always On - Zero Downtime releasesAnders Lundsgård
 
Novmeber 2015 WordPress News 'n' Stuff
Novmeber 2015 WordPress News 'n' StuffNovmeber 2015 WordPress News 'n' Stuff
Novmeber 2015 WordPress News 'n' StuffWordPress Sydney
 
Design for scale
Design for scaleDesign for scale
Design for scaleDoug Lampe
 
Apache Zeppelin & Cluster
Apache Zeppelin & ClusterApache Zeppelin & Cluster
Apache Zeppelin & ClusterJongyoul Lee
 
Zero downtime deployments with laravel envoy
Zero downtime deployments with laravel envoyZero downtime deployments with laravel envoy
Zero downtime deployments with laravel envoyTung Nguyen
 
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/LivyRikin 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 WalmartNurun
 
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 SparkJen Aman
 
Zeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridZeppelin meetup 2016 madrid
Zeppelin meetup 2016 madridJongyoul 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 dockerAgile 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 MunichMike North
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelIoan 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 StricklandAtlassian
 

Mais procurados (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
 

Semelhante a Spring & messaging

Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Daniel 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 CloudBruno Borges
 
Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018Manila MuleSoft Meetup #3 December 2018
Manila MuleSoft Meetup #3 December 2018Christopher 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 - PivotalOpenStack 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
 
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 3Lari Hotari
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description LanguagesAkana
 
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 GridsJohn 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 MySQLMySQL 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 APIsApigee | 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 StoreTed Wennmark
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle CloudJuan 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 LessEd Burns
 

Semelhante a 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
 

Último

Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdfPaige Cruz
 
UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
The Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementThe Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementNuwan Dias
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"DianaGray10
 

Último (20)

Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
 
UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5UiPath Studio Web workshop series - Day 5
UiPath Studio Web workshop series - Day 5
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
The Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementThe Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API Management
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
 

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. ありがとう

Notas do Editor

  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