Más contenido relacionado La actualidad más candente (20) Similar a BPMN, BPEL, ESB or maybe Java? What should I use to implement my project? (20) Más de Guido Schmutz (20) BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?1. WELCOME
BPMN, BPEL, ESB or maybe
Java? What should I use to
implement my project?
Guido Schmutz
UKOUG Tech 2013
3.12.2013
BASEL
1
BERN
LAUSANNE
ZÜRICH
DÜSSELDORF
FRANKFURT A.M.
FREIBURG I.BR.
HAMBURG
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
MÜNCHEN
STUTTGART
WIEN
2. 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: guido.schmutz@trivadis.com
•
•
Blog: http://guidoschmutz.wordpress.com
Twitter: gschmutz
2
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
3. Our company
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:
OPERATION
Trivadis Services takes over the interacting operation of your IT systems.
2013 © Trivadis
Trivadis – the company
03/12/13
4. With over 600 specialists and IT experts in your region
Hamburg
Düsseldorf
Frankfurt
Stuttgart
Freiburg
Wien
München
Basel Brugg
Bern
Zurich
Lausanne
2013 © Trivadis
4
Trivadis – the company
03/12/13
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
5. Agenda
1. Java Application Architectures
2. Integration Applications – different integration styles
3. Summary
5
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
6. Classical Java Web
Application Architecture
JSF
ADF
EJB3/JPA
• MVC Pattern on Client
Spring Framework
or Java EE or ADF
• „Meta“ Frameworks
• Java EE
• Spring Framework
• ADF
• Proven, often used
• Optional separate
tier for presentation
logic (P-MT)
6
Spring Framework
or Java EE or ADF
EJB3/JPA
• Communicate with
proprietary
protocols
ADF
Spring
Framework
or Java EE
or ADF
Session Bean
• Silo based systems
JSF
CT = Client Tier, P-MT = Presentation-Middletier, B-MT = Backend Middletier, RT = Resource Tier
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
7. Classical Java Web
Application Architecture
• Optionally hold some data in the presentation middle-tier for
performance reasons
• NoSQL database as an option
Spring Framework
or Java EE or ADF
NoSQL
RDBMS
CT = Client Tier, P-MT = Presentation-Middletier, B-MT = Backend Middletier, RT = Resource Tier
7
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
EJB3/JPA
EJB3/JPA
ADF
Spring Framework
or Java EE or ADF
Session Bean
JSF
8. Java RIA Applications / Java Mobile Applications
• Java Meta-Frameworks
in Backend Middle Tier
Java Script
Frameworks (*.js)
• Java EE, ADF, Spring
• Communicate with
CT = Client Tier, B-MT = Backend Middletier, RT = Resource Tier
• REST, SOAP (is it SOA?)
• Web Sockets (bi-directional)
• Preferred Data Model in client
tier is JSON
8
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
EJB3/JPA
REST, SOAP,
WebSockets
JSON
• HTML 5
• Flex
• Java FX
ADF Mobile
HTML 5
• Java Script Frameworks
in Client Tier
Spring Framework
or Java EE or ADF
9. SOAP vs. RESTful Web Services
• SOAP has reputation for being
complex and heavyweight
• RESTful has a reputation for being
simple and lightweight
• formal contract language to
• no formal contract language to
define message formats available
define message formats
• Supports standardized security
approaches and tools
• Security is a major challenge due
to lack of standardization
• Supports XML and Binary
• Supports multiple data
types (JSON, Text,
XML, Binary)
• Preferred by todays
SOA platforms
9
• Preferred by
modern Web
and Mobile
development
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
10. XML vs. JSON
• 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)
10
• JSON is the “Native” format for
modern web and mobile
applications
• No formal structure
• Content cannot be validated
• Easy to change
• Text only
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
11. 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
11
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
12. JAX-WS – SOAP based Web services
12
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
13. JAX-RS - RESTful Services
13
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
15. 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
Source: Thomas Erl, Principles of Service Design
15
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
16. Agenda
1. Java Application Architectures
2. Integration Applications – different integration styles
3. Summary
16
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
17. Ad-hoc Batch Data Integration
17
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
FTP
• Hard to monitor, maintain,
track
GoldenGate
• responsibility
JMS
• It‘s not really clear who is
the master for a transfer
DB Link
• integrate data sources of
diverse systems in an often
ad-hoc/accidental manner
18. • Classical, traditional integration style
•
•
•
•
•
•
Oracle Data Integrator
Oracle Warehouse Builder (OWB)
Talend
Spring Batch
Kettle
….
ODI
OWB
Oracle Big Data Connectors
Batch Data Integration Architecture
• Big Data Integration
• Oracle Big Data Connectors
• Mostly batch-oriented: goal is to transport batches of
data efficiently
• Mostly require additional middle tier server
INT-MT = Integration Middletier, RT = Resource Tier
• ETL, ELT
18
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
19. Ad-hoc Real-Time Data Integration
Architecture
• Point-to-Point Integration
• No clear road-map of service enablement
• Use of services but not really SOA
19
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
JAX-WS
JAX-WS
• Often no governance
SOAP
• Difficult to keep the overview
SOAP
Leads to „Spaghetti architecture“
Leads to strong coupling
Difficult to version services
Hard to maintain
SOAP
•
•
•
•
Golden Gate
JDBC
• More-up-to-date information needed
20. • Efficiently transport data directly between databases
and JMS queues
Golden Gate
Real-Time Data Integration Architecture
• 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
20
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
INT-MT = Integration Middletier, RT = Resource Tier
21. • Add an Enterprise Service Bus (ESB) as
extra tier (INT-MT)
• Oracle Service Bus (OSB), SOA Suite Mediator
• JBoss ESB, Camel, Spring Integration, …
SQL
ESB
Adapter
Real-Time Service-Oriented Data
Integration Architecture
WS
• 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
21
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
INT-MT = Integration Middletier, RT = Resource Tier
22. Real-Time Service-Oriented Data Integration Architecture
Implementing with Oracle Service Bus
Proxy Service
Business Service HTTP Transport
XQuery Transformation
Transformation
22
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
23. Real-Time Service-Oriented Data Integration Architecture
Easy Service Enablement with Adapters
23
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
24. • Oracle SOA Suite / BPM Suite
• Activiti, JBoss jBPM, …
BPMN
BPEL
ESB
• Add a SOA Middle Tier style
product (SOAINT-MT) to the picture
Adapter
Real-Time & (Business) Process
Integration Architecture
• 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
24
SOAINT-MT = SOA-Integration-Middletier, B-MT = Backend-Middletier,
RT = Resource Tier
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
25. Real-Time & (Business) Process Integration Architecture
Implementing in BPEL or BPMN
25
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
26. Real-Time & (Business) Process
Integration Architecture
BPMN
BPEL
ESB
• ESB runs in one tier
Adapter
• BPEL/BPMN runs in one
tier
• Why
•
•
•
•
26
Scalability
Security
Separation of Control
Tuning
2013 © Trivadis
SOABPM-MT = SOABPM-Middletier, INT-MT = Integration Middle-Tier,
B-MT = Backend-Middletier, RT = Resource Tier
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
27. Service Categorization can help to choose the right
technology
27
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
28. Service Categorization can help to choose the right
technology – mapped on Trivadis SOA blueprint
BPMN
BPEL
BPEL
Java
Java
ESB (OSB)
BPEL
BPEL
Golden Gate
Java
Java
28
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
29. Agenda
1. Java Application Architectures
2. Integration Applications – different integration styles
3. Summary
29
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
30. 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
*
*
**
***
30
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013
31. 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
31
2013 © Trivadis
BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
3.12.2013