Date post: | 15-Jan-2015 |
Category: |
Technology |
Upload: | guido-schmutz |
View: | 3,747 times |
Download: | 0 times |
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
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?
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
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
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
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
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
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
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
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)
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
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
2013 © Trivadis
JAX-RS - RESTful Services
3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
13
2013 © Trivadis
Principles of Service-Orientation
3.12.2013 BPMN, BPEL, ESB or maybe Java? What should I use to implement my project?
14
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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