bpmn, bpel, esb or maybe java? what should i use to implement my project?

32
2013 © Trivadis BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN WELCOME BPMN, BPEL, ESB or maybe Java? What should I use to implement my project? Guido Schmutz UKOUG Tech 2013 3.12.2013 3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project? 1

Upload: guido-schmutz

Post on 15-Jan-2015

3.749 views

Category:

Technology


0 download

DESCRIPTION

Have you already asked yourself at the beginning of a SOA or Integration project about the technology you want to use? 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 benefits to get closer to the often proposed IT flexibility and agility?

TRANSCRIPT

Page 1: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

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

WELCOME BPMN, BPEL, ESB or maybe Java? What should I use to implement my project? Guido Schmutz

UKOUG Tech 2013

3.12.2013

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

1

Page 2: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

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

3.12.2013

2 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

Page 3: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Trivadis is a market leader in IT consulting, system integration, solution engineering and the provision of IT services focusing on and technologies in Switzerland, Germany and Austria.

We offer our services in the following strategic business fields: Trivadis Services takes over the interacting operation of your IT systems.

Our company

O P E R A T I O N

03/12/13 Trivadis – the company

Page 4: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

With over 600 specialists and IT experts in your region

4

12 Trivadis branches and more than 600 employees   200 Service Level Agreements   Over 4,000 training participants   Research and development budget: CHF 5.0 / EUR 4 million   Financially self-supporting and sustainably profitable   Experience from more than 1,900 projects per year at over 800 customers

Trivadis – the company 03/12/13

Hamburg

Düsseldorf

Frankfurt

Freiburg München

Wien

Basel Zurich Bern

Lausanne

Stuttgart

Brugg

Page 5: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Agenda

1.  Java Application Architectures

2.  Integration Applications – different integration styles

3.  Summary

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

5

Page 6: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Classical Java Web Application Architecture

•  MVC Pattern on Client

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

•  Proven, often used

•  Silo based systems

•  Communicate with proprietary protocols

•  Optional separate tier for presentation logic (P-MT)

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

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, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Classical Java Web Application Architecture

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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

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

NoSQL

RDBMS

EJB3

/JPA

Page 8: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

•  Java Meta-Frameworks in Backend Middle Tier •  Java EE, ADF, Spring

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

•  Communicate with •  REST, SOAP (is it SOA?) •  Web Sockets (bi-directional)

•  Preferred Data Model in client tier is JSON

Java RIA Applications / Java Mobile Applications

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

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

ADF Mobile

Page 9: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

SOAP vs. RESTful Web Services

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

9

•  RESTful has a reputation for being simple and lightweight

•  no formal contract language to define message formats

•  Security is a major challenge due to lack of standardization

•  Supports multiple datatypes (JSON, Text, XML, Binary)

•  Preferred bymodern Web and Mobiledevelopment

•  SOAP has reputation for being complex and heavyweight

•  formal contract language to define message formats available

•  Supports standardized security approaches and tools

•  Supports XML and Binary

•  Preferred by todays SOA platforms

Page 10: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

XML vs. JSON

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

10

•  JSON is the “Native” format for modern web and mobile applications

•  No formal structure

•  Content cannot be validated

•  Easy to change

•  Text only

•  XML is the “Native” format for enterprise data exchange

•  Highly formal structure

•  Content CAN be validated

•  Formats can change only when all parties agree

•  Supports multiple data types (Text, Binary)

Page 11: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Implementing SOAP and/or RESTFul Services in Java

•  JAX-WS •  SOAP-based Web Services •  aka. „Big“ Web Services (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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

11

Page 12: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

JAX-WS – SOAP based Web services

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

12

Page 13: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

JAX-RS - RESTful Services

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

13

Page 14: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Principles of Service-Orientation

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

14

Page 15: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Contract-First Web Service Design

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

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

tools

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

15

Source: Thomas Erl, Principles of Service Design

Page 16: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Agenda

1.  Java Application Architectures

2.  Integration Applications – different integration styles

3.  Summary

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

16

Page 17: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Ad-hoc Batch Data Integration

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

17

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

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

•  Hard to monitor, maintain, track

JMS

DB

Link

FT

P G

olde

nGat

e

Page 18: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Batch Data Integration Architecture

•  Classical, traditional integration style •  Oracle Data Integrator •  Oracle Warehouse Builder (OWB) •  Talend •  Spring Batch •  Kettle •  ….

•  Big Data Integration •  Oracle Big Data Connectors

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

•  Mostly require additional middle tier server

•  ETL, ELT

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

18

OD

I

INT-MT = Integration Middletier, RT = Resource Tier

Ora

cle

Big

Dat

a Co

nnec

tors

OW

B

Page 19: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Ad-hoc Real-Time Data IntegrationArchitecture

•  More-up-to-date information needed

•  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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

19

JDBC

SOAP

JAX-

WS

JAX-

WS

Gol

den

Gat

e

SOAP

SOAP

Page 20: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Real-Time Data Integration Architecture

•  Efficiently transport data directly between databases and JMS queues •  Real-Time •  Transactional integrity •  Replication style

•  Invasive on both target and source •  Transactional change data capture

•  Tight Coupling

•  Integration with ODI for complex transformations

•  Integration with Service-Oriented Integration through JMS possible

•  No Extra middle-tier server needed

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

20

INT-MT = Integration Middletier, RT = Resource Tier

Gol

den

Gat

e

Page 21: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Real-Time Service-Oriented DataIntegration Architecture

•  Add an Enterprise Service Bus (ESB) as extra tier (INT-MT) •  Oracle Service Bus (OSB), SOA Suite 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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

21

INT-MT = Integration Middletier, RT = Resource Tier

ESB

SQL

WS

Adap

ter

Page 22: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Real-Time Service-Oriented Data Integration ArchitectureImplementing with Oracle Service Bus

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

22

Proxy Service

XQuery Transformation

Business Service HTTP Transport

Transformation

Page 23: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Real-Time Service-Oriented Data Integration ArchitectureEasy Service Enablement with Adapters

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

23

Page 24: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Real-Time & (Business) Process Integration Architecture

•  Add a SOA Middle Tier 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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

24

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

BPEL

BPMN

ESB

Adap

ter

Page 25: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

25

Page 26: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Real-Time & (Business) Process Integration Architecture

•  BPEL/BPMN runs in onetier

•  ESB runs in one tier

•  Why •  Scalability •  Security •  Separation of Control •  Tuning

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

26

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

BPEL

BPMN

ESB

Adap

ter

Page 27: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Service Categorization can help to choose the right technology

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

27

Page 28: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

28

Java

Java

Java

Java BPEL ESB (OSB)

BPEL BPEL BPMN

BPEL Golden Gate

Page 29: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Agenda

1.  Java Application Architectures

2.  Integration Applications – different integration styles

3.  Summary

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

29

Page 30: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

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 *** *** *** *

Positive learning curve ** *** *** *

Acceptance by business analyst *** - - -

Stateless Orchestration / 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 * * ** ***

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

30

Page 31: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

2013 © Trivadis

Summary

•  It‘s not really a question of Java or BPMN or BPEL or ESB •  It’s about how to combine them

•  Think about integration styles •  Batch, Real-Time and/or Process •  This 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

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

31

Page 32: BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

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]

3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?

32