BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

30
2013 © Trivadis BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN WELCOME BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB? Guido Schmutz DOAG Development 2013 – Bonn 19.6.2013 18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB? 1

description

Have you already asked yourself at the beginning of a SOA or Integration project about the technology you want to use? How and by which protocols do the systems to be integrated communicate? Is it a proprietary protocol or should a standard such as SOAP or RESTful web services be used? What are the disadvantages of one or the other? Is it feasible to implement the integration layer completely in Java or do modern integration platforms such as Oracle Service Bus or Oracle SOA Suite provide the important benefits to get closer to the often proposed IT flexibility and agility? Apart from answering other important questions we will also discuss service categorization and virtualization and present the advantages/disadvantages of a pure and programmatic Java-based approach compared to more declarative approach using languages such as BPEL and/or BPMN.

Transcript of BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

Page 1: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN

WELCOME BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB? Guido Schmutz

DOAG Development 2013 – Bonn

19.6.2013

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

1

Page 2: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Guido Schmutz

•  Working for Trivadis for more than 16 years

•  Oracle ACE Director for Fusion Middleware and SOA •  Co-Author of different books •  Consultant, Trainer Software Architect for Java, Oracle, SOA

and EDA •  Member of Trivadis Architecture Board •  Technology Manager @ Trivadis

•  More than 20 years of software development experience

•  Contact: [email protected] •  Blog: http://guidoschmutz.wordpress.com •  Twitter: gschmutz

18.6.2013

2 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

Page 3: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Trivadis ist führend bei der IT-Beratung, der Systemintegration, dem Solution-Engineering und der Erbringung von IT-Services mit Fokussierung auf und Technologien im D-A-CH-Raum.

Unsere Leistungen erbringen wir aus den strategischen Geschäftsfeldern: Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme.

Unser Unternehmen

Datum Trivadis – das Unternehmen

B E T R I E B

Page 4: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Mit über 600 IT- und Fachexperten bei Ihnen vor Ort

4

11 Trivadis Niederlassungen mitüber 600 Mitarbeitenden

200 Service Level Agreements

Mehr als 4'000 Trainingsteilnehmer

Forschungs- und Entwicklungs-budget: CHF 5.0 / EUR 4 Mio.

Finanziell unabhängig und nachhaltig profitabel

Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden

Stand 12/2012

Hamburg

Düsseldorf

Frankfurt

Freiburg München

Wien

Basel

Zürich Bern Lausanne

4

Stuttgart

Datum Trivadis – das Unternehmen

Page 5: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Agenda

1.  Java Application Architectures

2.  Integration Applications – different integration styles

3.  Summary

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

5

Page 6: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Classical Java Web Application Architecture

•  MVC Pattern on Client

•  „Meta“ Frameworks •  Java EE •  Spring Framework •  ADF

•  Prooven, often used

•  Silo based systems

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

6

Spring Framework or Java EE or ADF

EJB3

/JPA

ADF

JSF

Spring Framework or Java EE or ADF

Spring Framework or Java EE

or ADF

EJB3

/JPA

Sess

ion

Bean

ADF

JSF

CT = Client Tier, P-MT = Presentation-Middletier, B-MT = Backend Middletier, RT = Resource Tier

Page 7: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Classical Java Web Application Architecture

•  Optionally hold some data in the presentation middle-tier for performance reasons •  NoSQL database as an option

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

7

CT = Client Tier, P-MT = Presentation-Middletier, B-MT = Backend Middletier, RT = Resource Tier

Spring Framework or Java EE or ADF

EJB3

/JPA

Sess

ion

Bean

ADF

JSF Spring Framework or Java EE or ADF

Page 8: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

•  Java Meta-Frameworks in Backend Middle Tier

•  Java Script Frameworks in Client Tier •  HTML 5 •  Flex •  Java FX

Java RIA Applications

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

8

Spring Framework or Java EE or ADF

EJB3

/JPA

Java Script Frameworks (*.js)

HTM

L 5

REST

, SO

AP,

Web

Sock

ets

JSO

N

CT = Client Tier, B-MT = Backend Middletier, RT = Resource Tier

Page 9: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Service Enablement in Java

•  JAX-WS •  SOAP-based Web Services •  aka. „Big“ Web Servcies (Java EE 6 Tutorial) •  Since Java EE 5, JAX-WS (JSR 224) the preferred technology to write SOAP

web services •  defines a set of APIs and annotations that allow to build and consume web

services with Java

•  JAX-RS •  RESTful Web Services •  Relies on annotations, similar to JAX-WS to specify URI mappings, HTTP

headers, content-types and resources

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

9

Page 10: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

SOAP-based vs. RESTful Web Services

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

10

SOAP-based Services

REST Service

Page 11: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

JAX-WS – SOAP based Web services

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

11

Determines XSD

Determines WSDL

Page 12: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

JAX-RS - RESTful Services

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

12

Page 13: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Agenda

1.  Java Application Architectures

2.  Integration Applications – different integration styles

3.  Summary

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

13

Page 14: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Ad-hoc Batch Data Integration

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

14

•  integrate data sources of diverse systems in an often ad-hoc manner

•  It‘s not really clear who is the master for a transfer •  responsibility

•  Hard to monitor, maintain, track

JMS

DB

Link

FT

P

Page 15: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Batch Data Integration Architecture

•  Classical, traditional integration style •  Oracle Data Integrator •  Talend •  Spring Batch •  Kettle •  ….

•  Mostly batch-oriented: goal is to transport batches of data efficiently

•  ETL, ELT

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

15

ODI

INT-MT = Integration Middletier, RT = Resource Tier

Page 16: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Ad-hoc Real-Time Data IntegrationArchitecture

•  More-up-to-date information available

•  Point-to-Point Integration •  Leads to „Spaghetti architecture“ •  Leads to strong coupling •  Difficult to version services •  Hard to maintain

•  Difficult to keep the overview

•  Often no governance •  No clear road-map of service enablement

•  Use of services but not really SOA

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

16

JDBC

SOAP

JAX-

WS

JAX-

WS

Page 17: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Principles of Service-Orientation

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

17

Page 18: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Contract-First Web Service Design

1.  Important for service-orientation is the standardizing and decoupling of the technical contract of each service

2.  Service-oriented design therefore should be based on a contract first approach §  avoid the use of auto-

generation tools

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

18

Source: Thomas Erl, Principles of Service Design

Page 19: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Real-Time Data Integration Architecture

•  Add an Enterprise Service Bus (ESB) as extra tier (INT-MT) •  Oracle Service Bus (OSB), Mediator •  JBoss ESB, Camel, Spring Integration, …

•  ESB offers service virtualization •  Connectivity Adapters (easy service enablement) •  Protocol mapping (interoperable) •  Transformation, Filter, Routing, Enrichment, … •  Monitoring •  …

•  Properties •  Message-oriented, service-oriented •  Declarative instead of programmatic •  May invoke service enabled java applications

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

19

INT-MT = Integration Middletier, RT = Resource Tier

ESB

SQL

WS

Adap

ter

Page 20: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Real-Time Data Integration ArchitectureImplementing with Oracle Service Bus

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

20

Proxy Service

XQuery Transformation

Business Service HTTP Transport

Transformation

Page 21: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Real-Time Data Integration ArchitectureEasy Service Enablement with Adapters

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

21

Page 22: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Real-Time & (Business) Process Integration Architecture

•  Add a SOA MiddleTier style product (SOAINT-MT) to the picture •  Oracle SOA Suite / BPM Suite •  Activiti, JBoss jBPM, …

•  Long-running, stateful orchestration of services •  BPMN for business processes •  BPEL for technical integration

processes •  Undo management

•  Properties •  Declarative instead of programmatic •  Involve business analysts (BPMN) •  Message- and Service-Oriented,

Event-Driven

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

22

SOAINT-MT = SOA-Integration-Middletier, B-MT = Backend-Middletier, RT = Resource Tier

BPEL

BPMN

ESB

Adap

ter

Page 23: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Real-Time & (Business) Process Integration ArchitectureImplementing in BPEL or BPMN

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

23

Page 24: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Real-Time & (Business) Process Integration Architecture

•  BPEL/BPMN separate from ESB

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

24

SOABPM-MT = SOABPM-Middletier, INT-MT = Integration Middle-Tier, B-MT = Backend-Middletier, RT = Resource Tier

Page 25: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Service Categorization can help to choose the right technology

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

25

Page 26: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Service Categorization can help to choose the right technology – mapped on Trivadis SOA blueprint

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

26

Java

Java

Java

Java BPEL ESB

BPEL

BPEL BPMN

BPEL

Page 27: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Agenda

1.  Java Application Architectures

2.  Integration Applications – different integration styles

3.  Summary

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

27

Page 28: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

BPMN vs. BPEL vs. ESB vs. Java BPMN BPEL ESB Java

3 GL Programming style * (xpath expr) * (xpath expr) * ***

Implement complex (business) logic ** * - ***

General Purpose Language * * ** ***

Reusability (OO-syle) * * * ***

Declarative style *** *** *** *

Positiv learning curve ** *** *** *

Acceptance by business analyst *** - - -

Stateless Orchstration / Service composition ** ** *** *

Stateful Orchestration (efficient, undo, …) *** *** - * (using JMS)

Workflow (with human interaction) *** *** - -

Service Integration (transform, route, …) ** ** *** *

Contract-First Service Design *** *** ** *

Rapid Service Enablement - *** *** ** (only java)

(Unit) Testability * * ** ***

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

28

Page 29: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

Summary

•  It‘s not really a question of Java or BPMN or BPEL or ESB

•  Think about integration styles •  Batch, Data and/or Process •  Helps to choose the right technology

•  Architecture matters! •  Separation of Concerns •  Clear Responsibilities •  Lose Coupling

•  Service Categorization can help choose the right technology

•  Know the strengths and weaknesses of each technology and use appropriately

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

29

Page 30: BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

2013 © Trivadis

BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN

Thank You! Trivadis AG

Guido Schmutz [email protected]

18.6.2013 BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?

30