integration architecture with java ee and spring

46
Integration architecture with Java EE and Spring Markus Eisele (Lightbend) Josh Long (Pivotal)

Upload: markus-eisele

Post on 15-Apr-2017

7.668 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Integration architecture with Java EE and Spring

Integration architecture with Java EE and Spring

Markus Eisele (Lightbend)  Josh Long (Pivotal)

Page 2: Integration architecture with Java EE and Spring

@myfear

Page 3: Integration architecture with Java EE and Spring

Josh Long ( ) the Spring Developer Advocate

• http://cloudnativejava.io • @starbuxman • [email protected] • Java Champion • open-source contributor

(Spring Boot, Spring Cloud, Spring Integration, Vaadin, Activiti, etc etc)

Page 4: Integration architecture with Java EE and Spring

Hands-onGet your

environment ready

Page 5: Integration architecture with Java EE and Spring

http://bit.ly/1MpEaS5

Page 6: Integration architecture with Java EE and Spring

Where We’ve Been

Page 7: Integration architecture with Java EE and Spring

Motivations for Java EE / J2EE• Centralized Infrastructures • Shared baseline• Centralized governance and management• Innovation through implementation• Convention over configuration

Page 8: Integration architecture with Java EE and Spring

Today’s reality for Java EE• Shared baseline installs no longer relevant• Customized and distributed fat-jars.• Innovation can’t be standardized • Centralized governance vs. DevOps• Interesting for commodity (e.g. JDBC)

Page 9: Integration architecture with Java EE and Spring

Motivations for Spring• Spring was born to simplify J2EE

APIs• Spring was born to promote

testing, faster feedback loops• to provide patterns and best

practices• provide flexibility through

configuration (over convention)

Page 10: Integration architecture with Java EE and Spring

Today’s reality for Spring• Java EE (vs J2EE) is very concise, powerful• continuous improvement and delivery still key to the power of

Spring• Best practices evolve, and Spring has tried to keep up.

Meanwhile, old best practices.. aren’t• Spring has tried to learn from Java EE and Rails by

accommodating smart conventions.

Page 11: Integration architecture with Java EE and Spring

And now?

Page 12: Integration architecture with Java EE and Spring

SpringJava EE><

==?

Page 13: Integration architecture with Java EE and Spring
Page 14: Integration architecture with Java EE and Spring

Why this talk?

Page 15: Integration architecture with Java EE and Spring

Use Spring APIs from Java EE

Page 16: Integration architecture with Java EE and Spring

Motivation• Features that Java EE doesn’t provide out-of-the-box

• Spring Security • Social login • the `JdbcTemplate` • MVC • NoSQL • Enterprise Application Integration • big data • RabbitMQ • NoSQL • Kafka • …. maybe it’s better to show!

Page 17: Integration architecture with Java EE and Spring

Motivationstart.spring.io

Page 18: Integration architecture with Java EE and Spring

Motivationstart.spring.io

Page 19: Integration architecture with Java EE and Spring

Motivationstart.spring.io

Page 20: Integration architecture with Java EE and Spring

Motivation• Backwards Compatibility

• Spring framework has a very long tail: Spring framework 4 runs on Servlet 2.5+ (2006!!), Java EE 6 (2009) and Java 6+.

• Websphere 7 and WebLogic 10.3.4 require JPA 2 feature packs

Page 21: Integration architecture with Java EE and Spring

demo

Page 22: Integration architecture with Java EE and Spring

Coffee Break

Page 23: Integration architecture with Java EE and Spring

Use Java EE APIs from Spring

Page 24: Integration architecture with Java EE and Spring

Motivation• Want to or have to migrate• Your team already has the knowledge• You want to use standards where standards make sense

because they’re commoditized or invasive: • JTA, JPA, JSR303, JSR 330, JCA, JDBC, JMS, Servlets, etc.

etc.

Page 25: Integration architecture with Java EE and Spring

demo

Page 26: Integration architecture with Java EE and Spring

Option 3

Page 27: Integration architecture with Java EE and Spring

Integrate both worlds

Page 28: Integration architecture with Java EE and Spring

Motivation• Today’s world is growing more and more polyglot and

heterogeneous. • Open Source is driving innovation. • Closed source stays platform decision.• Parts move over. Others don’t.

Page 29: Integration architecture with Java EE and Spring

Spring Application

Java EE Application

JMS

Page 30: Integration architecture with Java EE and Spring

Spring Application

Java EE Application

REST Calls

Page 31: Integration architecture with Java EE and Spring

Spring Application

Java EE Application

SOAP

Page 32: Integration architecture with Java EE and Spring

Spring Application

Java EE Application

Websocket

Page 33: Integration architecture with Java EE and Spring

Spring Application

Java EE Application

RMI

Page 34: Integration architecture with Java EE and Spring

Spring Application

Java EE Application

DB1DB2

Page 35: Integration architecture with Java EE and Spring

Java EE Application

Spring Application CDI

Page 36: Integration architecture with Java EE and Spring

micro services/ˈmʌɪkrəʊ/noun

Page 37: Integration architecture with Java EE and Spring
Page 38: Integration architecture with Java EE and Spring

Software DesignOuter Architecture

Methodology and Organization

Distributed Systems

Platform As A Service

Page 39: Integration architecture with Java EE and Spring
Page 40: Integration architecture with Java EE and Spring

Migration Approaches

Page 41: Integration architecture with Java EE and Spring
Page 42: Integration architecture with Java EE and Spring
Page 43: Integration architecture with Java EE and Spring
Page 44: Integration architecture with Java EE and Spring

• evolve or die• build software that survives, scales and

evolves on a dynamic cloud environment

http://cloudnativejava.io/about/

Page 45: Integration architecture with Java EE and Spring

http://bit.ly/ModernJavaEE

• Understand the challenges of starting a greenfield development vs tearing apart an existing brownfield application into services

• Examine your business domain to see if microservices would be a good fit

• Explore best practices for automation, high availability, data separation, and performance

• Align your development teams around business capabilities and responsibilities

• Inspect design patterns such as aggregator, proxy, pipeline, or shared resources to model service interactions

Page 46: Integration architecture with Java EE and Spring

Thank you.

@myfear @starbuxman