35
© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission. The next development generation with Artem Bilan by Pivotal Spring & Messaging:

Spring & messaging

  • View
    852

  • Download
    2

Embed Size (px)

DESCRIPTION

Show how messaging is involved in the Spring projects. Demonstrate Spring Integration advanced topics, What's New, What Next. Introduction to Spring XD, Web Sockets and Reactor

Citation preview

Page 1: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

The next developmentgeneration

with Artem Bilan

by Pivotal

Spring & Messaging:

Page 2: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Artem Bilan

[email protected]

Spring Integration Team

Spring FrameworkSpring AMQP

Spring XDReactor

https://github.com/artembilanhttp://www.linkedin.com/in/cleric

https://spring.io/team/artembilan http://stackoverflow.com/users/2756547

Page 3: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Messaging and why do I care?

Page 4: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Messaging is very simple

Headers

Payload

public static void main(String[] args) {...}

Page 5: Spring & messaging

© 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

Page 6: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Messaging in Spring IO

Page 7: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Spring Integration

Meet IoC!

Uses

Written

Page 8: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

The heart of Spring Integration

– Endpoints (Filters) connected through– Channels (Pipes) exchanging– Message

Page 9: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

How does it work?

Page 10: Spring & messaging

© 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

Page 11: Spring & messaging

© 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

Page 12: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Cache Advice

Page 13: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Transaction Synchronization

Page 14: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

HTTP Proxy

Page 15: Spring & messaging

© 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!

Page 16: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

@RequestMapping

Page 17: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

@RequestMapping by Spring Integration

Page 18: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Spring Expression Language

Page 19: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

SpEL: EvaluationContext

Page 20: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

SpEL Customization: high-level API

Page 21: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

SpEL Customization: high-level API

Page 22: Spring & messaging

© 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’

Page 23: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

TapsCompute

HDFS

Wor

kflow

Export

Spring XD Runtime

Inge

st

Jobs

Export

Files Sensors Mobile Social

RDBMS

NoSQL

R, SAS

Spring XD Shell

Streams

Redis

Gemfire

Predictive modeling

Spring XD

Page 24: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Stream Processing Model

How can we make this easier?http | filter | file

Page 25: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

XD Runtimes

http | filter | file

Rabbit, Redis, (Pluggable)

XD Admin

CLUSTERED NODE

FilterModule

CLUSTERED NODE

HTTPModule

CLUSTERED NODE

FileModule

In MemoryTransport

http | filter | file

SINGLENODE

AllModules

Page 26: Spring & messaging

© 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• ???

Page 27: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Page 28: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Spring Framework 4.0: Websockets

Page 29: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Spring Framework 4.0: Websockets

Page 30: Spring & messaging

© 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

Page 31: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Dispatchers, Events, Selectors, Streams, Promises, etc.

Page 32: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Reactor – Landscape

Spring Integration

Page 33: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

Spring Integration + Reactor

Page 34: Spring & messaging

© 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

Page 35: Spring & messaging

© 2013 Pivotal Inc. All rights reserved. Do not distribute without permission.

ありがとう