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

  • 3,570 views
Uploaded on

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 …

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?

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Excellent presentation which compare multiple styles of architecture.
    It is synthetic and well explained.
    Good job !
    Are you sure you want to
    Your message goes here
  • Slide 15 shows the most important SOA concept, but at the same time the one that is most violated! Good presentation.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
3,570
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
152
Comments
2
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 14. Principles of Service-Orientation 14 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
  • 32. Thank You! BASEL 32 BERN LAUSANNE ZÜRICH DÜSSELDORF Trivadis AG Guido Schmutz
 guido.schmutz@trivadis.com 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