2014 BSc-BIT-BPM-Service Oriented Architectures in a BPM Context

2014 BSc-BIT-BPM-Service Oriented Architectures in a BPM Context

Programme: Bachelor of Science in Business Information Technology FHNW
Course: Business Process Management
Topic: Service Oriented Architectures in a BPM Context

A431c87236a21a7bebf38de6bd12a67b?s=128

andreasmartin

May 01, 2014
Tweet

Transcript

  1. 1.

    Andreas Martin - Page 1 Bachelor of Science in Wirtschaftsinformatik

    FHNW Business Process Management Service Oriented Architectures in a BPM Context Andreas Martin Service Oriented Architectures in a BPM Context http://www.flickr.com/photos/dirk_hofmann/4200450207
  2. 2.

    Andreas Martin - Page 2 What is the problem? “We

    gotta find a way to make this fit into the hole for this[…]” - Walter von Huene (NASA technician, Apollo 13) Service Oriented Architectures in a BPM Context
  3. 3.

    Andreas Martin - Page 3 Example – Loan Approval: Use

    Case & Context … a very simple and suboptimal example indeed.  This is what we have:  a manual loan approval process.  and two legacy system is an extremely suboptimal situation. Service Oriented Architectures in a BPM Context 1.1. Process Graph  This is how the approver uses the systems:
  4. 4.

    Andreas Martin - Page 4 Example – Loan Approval: Goal

    … a very simple and suboptimal example indeed.  This is what we want to have:  So we have at least three options:  Complete Restart  Data Integration  SOA-based Integration (sometimes called Application Integration, SOA is only one way to do that) Service Oriented Architectures in a BPM Context 1.2. Workflow Graph
  5. 5.

    Andreas Martin - Page 5 Example – Loan Approval: 1.

    Complete Restart … well optimal but often not feasible.  The all in one nicely designed new system:  Integrated DB schema  Nicely designed services Service Oriented Architectures in a BPM Context
  6. 6.

    Andreas Martin - Page 6 Example – Loan Approval: 2.

    Data Integration … well but what happened with the logic?  Data integration using a data integration middleware like OLAP, data transformation systems or data warehouses.  Drawback: we have to re-implement the logic. Service Oriented Architectures in a BPM Context
  7. 7.

    Andreas Martin - Page 7 Example – Loan Approval: 3.

    SOA-based Integration … we have two common options:  Direct service access:  Enterprise Service Bus access: Service Oriented Architectures in a BPM Context Enterprise Service Bus (ESB)
  8. 8.

    So we need an INTERFACE …luckily we have more than

    this (and time) to build an interface. http://speak-for-yourself.com/2012/10/08/houston-we-have-a-problem/ http://mimg.ugo.com/201003/39307/apollo13-1.jpg - © Universal Pictures “We gotta find a way to make this…” “…fit into the hole for this…” “using nothing but that.”
  9. 9.

    Andreas Martin - Page 9 What are the essential elements?

    INTERFACES and COMPONENTS Service Oriented Architectures in a BPM Context
  10. 10.

    Andreas Martin - Page 10 Rationale: It is all about

    INTERFACES and COMPONENTS Service Oriented Architectures in a BPM Context
  11. 11.

    Andreas Martin - Page 11 Component & Interfaces Example Service

    Oriented Architectures in a BPM Context
  12. 12.

    Andreas Martin - Page 12 Component & Interfaces Example Blackbox

    Service Oriented Architectures in a BPM Context
  13. 13.

    Andreas Martin - Page 13 What is a component? 

    Definition: “A component represents a modular part of a system that encapsulates its contents […]”. “A component defines its behavior in terms of provided and required interfaces”.  From a developer perspective: A component can consists of several classes.  From a general perspective: A component can be a place where certain computations can be made. Or it can even represent a server, databases or entire systems. Service Oriented Architectures in a BPM Context Source: OMG Unified Modeling Language (OMG UML), Superstructure Version 2.4.1
  14. 14.

    Andreas Martin - Page 14 What is an interface? 

    Definition: “An interface is a kind of classifier that represents a declaration of a set of coherent public features and obligations. An interface specifies a contract; any instance of a classifier that realizes the interface must fulfill that contract”.  From a developer perspective:  An interface can serve as a contract for certain implementations.  The implementing class must contain the operations of the interface.  From a general perspective: An interface is something where component (e.g. other system) can access certain features of another component. An interface is rigorously defined concerning parameters and result. Service Oriented Architectures in a BPM Context Source: OMG Unified Modeling Language (OMG UML), Superstructure Version 2.4.1
  15. 16.

    Andreas Martin - Page 16 Deployment View of the Example

    Service Oriented Architectures in a BPM Context
  16. 17.

    Andreas Martin - Page 17 What are Service Oriented Architectures?

    … and what does it have to do with Business Process Management? Service Oriented Architectures in a BPM Context
  17. 18.

    Andreas Martin - Page 18 What are Service Oriented Architectures

    (SOA)?  A Service Oriented Architecture, as the name it says, is basically a description of an architecture using the service concept.  SOA is technology-independent.  In essence: There is a SERVICE and may be a CONSUMER.  And they are maybe embedded in different systems: Service Oriented Architectures in a BPM Context
  18. 19.

    Andreas Martin - Page 19 Some SOA definitions from “The

    Open Group”  “Service-Oriented Architecture (SOA) is an architectural style that supports service-orientation”.  “Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services.”  “A service:  Is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit, provide weather data, consolidate drilling reports)  Is self-contained  May be composed of other services  Is a “black box” to consumers of the service” Service Oriented Architectures in a BPM Context Source: http://www.opengroup.org/soa/source-book/soa/soa.htm
  19. 20.

    Andreas Martin - Page 20 What are Service Oriented Architectures

    (SOA)?  In practice: SOA is implemented using Web Services.  Goal of SOA: is the integration of heterogenic and distributed systems.  Core concepts:  Service-Provider  Service-Consumer  (Enterprise) Service Bus, Registry  SOA relies on best practices and is more an evolution than a revolution. Service Oriented Architectures in a BPM Context
  20. 21.

    Andreas Martin - Page 21 Logic (Business Logic Layer) Data

    (Persistence Layer) … and what does SOA have to do with BPM? “BPM is SOA's killer application, and SOA is BPM's enabling infrastructure” (BPM pioneer, Ismael Ghalimi).  Parts of the system will be made available as services.  A business process can be represented using different service calls.  A business process itself can be again a service.  SOA provides the technological basis of an integration. Service Oriented Architectures in a BPM Context Service (Service Layer) Presentation (Presentation Layer) Service Consumer Process (Process Layer) Database User Service Provider SOA Adapted from: H. Wache, FHNW
  21. 22.

    Andreas Martin - Page 22 What do we need to

    make this work? 1. Service discovery: Where can we find the right services and where do I get it? 2. Service description: What does the service offer and how can I make use of the service (methods, attributes, etc.)? 3. Service transport and messaging: How can the communication (transport) between service and consumer be realized and is there a specific message format? 4. Service and consumer implementation: Is there a standardized way to implement services and consumers? Service Oriented Architectures in a BPM Context
  22. 23.

    Andreas Martin - Page 23 SOA implementation using Web Services

    SOAP & REST Web Services Service Oriented Architectures in a BPM Context
  23. 24.

    Andreas Martin - Page 24 What is a Web Service?

     A web service encapsulates well defined functionalities of a information system component.  It is a technological framework for implementing and integrate distributed information systems.  It is known since year 2000.  Web services are only one possibility to implement a SOA.  SOA is not equal to Web Services.  Today two de-facto standards to implement web services:  SOAP (Web) Services: the originally implementation and still more relevant in a BPM context.  REST (Web) Services: sometimes classified to web oriented architectures (WOA) and not to SOA. But in practice it can be classified as web service. Service Oriented Architectures in a BPM Context
  24. 25.

    Andreas Martin - Page 25 SOAP Web Services - Technologies

     WSDL - Service description: Web Services Description Language (WSDL) describes the operations, parameters and return values of a service.  SOAP - Service messaging: Simple Object Access Protocol (SOAP) is messaging protocol based on XML. The messages are exchanges using a transport protocol like HTTP, SMTP or JMS.  UDDI - Service discovery: Universal Description Discovery, and Integration (UDDI) is an optional discovery mechanism for soap web services descriptions. UDDI is not widely adopted. Service Oriented Architectures in a BPM Context Adapted from: Goncalves: Code and Models licensed under a CC BY-SA 3.0 License from https://github.com/agoncal/agoncal-book-javaee7
  25. 26.

    Andreas Martin - Page 26 SOAP Web Service – Implementation

    Example Service Oriented Architectures in a BPM Context import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.WebParam; @WebService(serviceName = "CustomerService") public class CustomerService { @WebMethod(operationName = "isAlreadyACustomer") public boolean isAlreadyACustomer(@WebParam(name = "firstName") String firstName, @WebParam(name = "lastName") String lastName) { //service logic return result; } } Adapted from: Goncalves: Code and Models licensed under a CC BY-SA 3.0 License from https://github.com/agoncal/agoncal-book-javaee7
  26. 27.

    Andreas Martin - Page 27 Web Services Description Language (WSDL)

    Service Oriented Architectures in a BPM Context Adapted from: Goncalves: Code and Models licensed under a CC BY-SA 3.0 License from https://github.com/agoncal/agoncal-book-javaee7 <!--Published by JAX-WS RI at http://jax-ws.dev.java.net.--> <definitions <!--definitions--> > <types> <xsd:schema> <xsd:import <!--imports--> /> </xsd:schema> </types> <message name="isAlreadyACustomer"> <part name="parameters" element="tns:isAlreadyACustomer"/> </message> <message name="isAlreadyACustomerResponse"> <part name="parameters" element="tns:isAlreadyACustomerResponse"/> </message> <portType name="CustomerService"> <operation name="isAlreadyACustomer"> <input message="tns:isAlreadyACustomer"/> <output message="tns:isAlreadyACustomerResponse"/> </operation> </portType> <binding name="CustomerServicePortBinding" type="tns:CustomerService"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="isAlreadyACustomer"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="CustomerService"> <port name="CustomerServicePort" binding="tns:CustomerServicePortBinding"> <soap:address location="http://localhost:8080/SimpleCustomerService/CustomerService"/> </port> </service> </definitions> <types> Data type definitions </types> <message> Definition of the data being transmitted. </message> <portType> Set of operations including corresponding message </portType>
  27. 28.

    Andreas Martin - Page 28 <!--Published by JAX-WS RI at

    http://jax-ws.dev.java.net.--> <definitions <!--definitions--> > <types> <xsd:schema> <xsd:import <!--imports--> /> </xsd:schema> </types> <message name="isAlreadyACustomer"> <part name="parameters" element="tns:isAlreadyACustomer"/> </message> <message name="isAlreadyACustomerResponse"> <part name="parameters" element="tns:isAlreadyACustomerResponse"/> </message> <portType name="CustomerService"> <operation name="isAlreadyACustomer"> <input message="tns:isAlreadyACustomer"/> <output message="tns:isAlreadyACustomerResponse"/> </operation> </portType> <binding name="CustomerServicePortBinding" type="tns:CustomerService"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="isAlreadyACustomer"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="CustomerService"> <port name="CustomerServicePort" binding="tns:CustomerServicePortBinding"> <soap:address location="http://localhost:8080/SimpleCustomerService/CustomerService"/> </port> </service> </definitions> Web Services Description Language (WSDL) Service Oriented Architectures in a BPM Context Adapted from: Goncalves: Code and Models licensed under a CC BY-SA 3.0 License from https://github.com/agoncal/agoncal-book-javaee7 <binding> Protocol and data format specification </binding> <service> A collection of port elements including endpoint location. </service> <port> Specifies an address for a binding. </port>
  28. 29.

    Andreas Martin - Page 29 Simple Object Access Protocol (SOAP)

    Service Oriented Architectures in a BPM Context <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.simplecustomerservice.gpm.bscwi.fhnw.ch/"> <soapenv:Header/> <soapenv:Body> <ser:isAlreadyACustomer> <firstName>Andreas</firstName> <lastName>Martin</lastName> </ser:isAlreadyACustomer> </soapenv:Body> </soapenv:Envelope> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:isAlreadyACustomerResponse xmlns:ns2="http://service.simplecustomerservice.gpm.bscwi.fhnw.ch/"> <return>true</return> </ns2:isAlreadyACustomerResponse> </S:Body> </S:Envelope>
  29. 30.

    Andreas Martin - Page 30 SOAP Web Service - Implementation

     With the right container (application server or even a servlet container) and right development tools (e.g. NetBeans or Eclipse with JBoss Tools) it is extremely straight forward to create SOAP web service.  Choose the right specifications:  JAX-WS (2.2a): This is a set of API’s for building and consuming Web Services in Java.  JSR 181 (Metadata 2.3): This specification defines certain @Annotations for developing SOAP web services. The annotations act as a mapping between the WSDL and a Java interface. Service Oriented Architectures in a BPM Context
  30. 31.

    DEMO SOAP Web Service - Java EE 7 / JAX-WS

    style IDE: NetBeans 8 Application Server: GlassFish 4 Framework: Java EE 7 http://www.flickr.com/photos/jurvetson/489257240
  31. 32.

    Andreas Martin - Page 34 REST Web Services … sometimes

    called RESTful Web Services REST stands for REpresentational State Transfer and it is based on the hypermedia architecture style.  The concept is based on RESOURCES, which will be addressed using ID’s.  REST uses a limited range of standard methods.  Resources are interlinked with other resources.  Every resource can have different REPRESENTATIONS.  It is a stateless communication. Service Oriented Architectures in a BPM Context Adapted from: R. Telesko, FHNW
  32. 33.

    Andreas Martin - Page 35 REST Web Services … sometimes

    called RESTful Web Services Service Oriented Architectures in a BPM Context Adapted from: http://wink.apache.org/documentation/1.0/html/1%20Introduction%20to%20Apache%20Wink.html Resource Representation 1 (text/xml) Representation 2 (text/html) Representation 3 (image/jpeg) Representation 4 (application/json) GET PUT POST DELTE URI (base URI, such as http://example.com/resources/) HTTP- Methods REST Web Service Representation (every Internet media type for the data possible)
  33. 34.

    Andreas Martin - Page 36 REST Web Services … sometimes

    called RESTful Web Services Service Oriented Architectures in a BPM Context Adapted from: http://www.oio.de/public/xml/rest-webservices.htm & http://www.opentone.co.jp/news/release/article04/article0401.html REST Web Service REST Consumer Java Client JavaScript Client PHP Client … Client Request GET /basket/6 Response 200 OK <?xml version=“1.0” encoding=“UTF-8”?> <response> <basket> <product>item</product> </basket> </response> /basket/* Business Logic Basket getBasket() … /article/* Article getDetails() … /customer/* Customer getDetails() … Request GET /article/155 Response 200 OK… Request GET /customer/600 Response 200 OK…
  34. 35.

    Andreas Martin - Page 37 REST Web Service – Implementation

    Example  REST web service needs more code (or annotations) compared to SOAP web services.  The interface design is more complicated, because it has to be consistent to the HTTP- style.  The main specification in the Java world is:  JAX-RS (2.0): This is a set of API’s for building and consuming REST Web Services in Java. Service Oriented Architectures in a BPM Context import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; @Path("CustomerService") public class CustomerService { @GET @Path("{lastName}/{firstName}") @Produces("text/plain") public String isAlreadyACustomer(@PathParam("firstName") String firstName, @PathParam("lastName") String lastName) { Boolean result = firstName.equals("Andreas")&&lastName.equals("Martin"); return result.toString(); } }
  35. 36.

    DEMO REST Web Service - Java EE 7 / JAX-RS

    style IDE: NetBeans 8 Application Server: GlassFish 4 Framework: Java EE 7 http://www.flickr.com/photos/jurvetson/489257240
  36. 37.

    Andreas Martin - Page 41 REST vs. SOAP REST: 

    Resource- oriented  Different representations  HTTP- Protocol  Interface description (WADL, but not widely accepted) SOAP:  Service- oriented  XML-based representation  Different protocols  Interface description (WSDL) Service Oriented Architectures in a BPM Context Sample REST SOAP Create an article PUT /article/{id} CreateArticleltem(int id, string title) Update an article PUT /article/{id} UpdateArticleltem(int id) Get an article GET /article/{id} GetArticle(int id) Get all articles GET /article/ GetAllArticles() Delete an article DELETE /article/{id} DeleteArticleltem(int id)
  37. 38.

    Andreas Martin - Page 42 Business Process Execution Language (BPEL)

    SOAP Services in a BPEL context. Service Oriented Architectures in a BPM Context
  38. 39.

    Andreas Martin - Page 43 Business Process Execution Language (BPEL)

     The idea is to describe business processes on a technical level.  Basic idea is to support developers to develop business processes.  This means that the activities are implemented as SOAP Web Services.  BPEL is  based on XML.  block-oriented / structured (BPMN is graph-oriented).  A BPEL process can be easily published as SOAP web service. Service Oriented Architectures in a BPM Context http://docs.jboss.org/savara/releases/1.1.x/userguide/html/bpel.html Adapted from: D. Wolff, FHNW
  39. 40.

    Andreas Martin - Page 44 Business Process Execution Language (BPEL)

    - Editors  Most BPEL editors are graphical.  The basic idea is to focus on the process modelling.  But the process representation is not adequate for end-users.  Technical details are encapsulated.  Example - JBoss BPEL Editor: Service Oriented Architectures in a BPM Context Adapted from: D. Wolff, FHNW
  40. 41.

    Andreas Martin - Page 45 Business Process Execution Language (BPEL)

    Service Oriented Architectures in a BPM Context <bpel:process name="SayHello" targetNamespace="http://www.jboss.org/bpel/examples" suppressJoinFailure="yes" xmlns:tns="http://www.jboss.org/bpel/examples" xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"> <bpel:import location="SayHelloArtifacts.wsdl" namespace="http://www.jboss.org/bpel/examples" importType="http://schemas.xmlsoap.org/wsdl/" /> <bpel:partnerLinks> <bpel:partnerLink name="client" partnerLinkType="tns:SayHello" myRole="SayHelloProvider" /> </bpel:partnerLinks> <bpel:variables> <!-- Reference to the message passed as input during initiation --> <bpel:variable name="ReceiveSayHelloVar" messageType="tns:SayHelloRequestMessage" /> <!-- Reference to the message that will be returned to the requester --> <bpel:variable name="ReplySayHelloVar" messageType="tns:SayHelloResponseMessage" /> </bpel:variables> <bpel:sequence name="main"> <!-- Receive input from requester. Note: This maps to operation defined in SayHelloArtifacts.wsdl --> <bpel:receive name="ReceiveSayHello" partnerLink="client" portType="tns:SayHello" operation="sayHello" variable="ReceiveSayHelloVar" createInstance="yes" /> <bpel:assign validate="no" name="AssignName"> <!-- LOGIC --> </bpel:assign> <!-- Generate reply to synchronous request --> <bpel:reply name="ReplySayHello" partnerLink="client" portType="tns:SayHello" operation="sayHello" variable="ReplySayHelloVar" /> </bpel:sequence> </bpel:process> Import of the client WSDL. Partner links List of services participating in this BPEL process. Variables List of messages and XML documents used within this BPEL process. Orchestration Logic Set of activities coordinating the flow of messages across the services integrated within this business process. https://github.com/jboss-switchyard/quickstarts
  41. 42.

    DEMO BPEL Model & SOAP Service IDE: Eclipse & JBoss

    Tools & SwitchYard Application Server: JBoss EAP 6.1 Framework: SwitchYard (BPEL & SOAP) http://www.flickr.com/photos/jurvetson/489257240
  42. 43.

    Andreas Martin - Page 48 SOA-based Integration (Direct service access)

    Example – Loan Approval using camunda BPM Service Oriented Architectures in a BPM Context
  43. 44.

    Andreas Martin - Page 49 Example – Loan Approval: SOA-based

    Integration  Direct service access: Service Oriented Architectures in a BPM Context
  44. 45.

    Andreas Martin - Page 50 camunda BPM – Java EE

    service invoking Web Service Client Service Oriented Architectures in a BPM Context @Named @Stateless public class CustomerService { @Inject @ProcessVariable public Object customerId; @Inject private BusinessProcess businessProcess; @WebServiceRef(type=CustomerWebService_Service.class) private CustomerWebService customerWebService; public void loadCustomer() { Customer customer = customerWebService.findCustomerById(Long.valueOf((String) customerId)); if (customer != null) { businessProcess.setVariable("customerFirstName", customer.getFirstName()); businessProcess.setVariable("customerLastName", customer.getLastName()); } } }
  45. 46.

    DEMO BPMN Model & SOAP Service IDE: Eclipse & Camunda

    Modeller Application Server: JBoss AS 7.2 Framework: Java EE 7 & Camunda BPM http://www.flickr.com/photos/jurvetson/489257240
  46. 47.

    Andreas Martin - Page 54 Enterprise Service Bus Concept Service

    Oriented Architectures in a BPM Context
  47. 48.

    Andreas Martin - Page 55 No Enterprise Service Bus –

    Conceptual Example  The basic idea is to avoid proprietary cross- connections over different applications: Service Oriented Architectures in a BPM Context Partner Systems HTTP Partner Systems FTP Inventory System JMS SAP JCA Mail System SMTP Java EE Application SOAP/HTTP .NET Application SOAP/HTTP File System File- Endpoint
  48. 49.

    Andreas Martin - Page 56 Enterprise Service Bus – Conceptual

    Example  The basic idea is to have one central bus with all necessary applications connected: Service Oriented Architectures in a BPM Context Enterprise Service Bus (ESB) (Messaging, Routing, Transformation) Partner Systems HTTP Partner Systems FTP Inventory System JMS SAP JCA Mail System SMTP Java EE Application SOAP/HTTP .NET Application SOAP/HTTP File System File- Endpoint
  49. 50.

    Andreas Martin - Page 57 Enterprise Service Bus – Features

     Send and receive messages  synchronous and asynchronous communication possible  Routing  e.g. (1) first authentication, (2) then invoke a service.  Mediation  Translation of different protocols and formats.  Security  Management Service Oriented Architectures in a BPM Context Adapted from: D. Wolff, FHNW
  50. 51.

    Andreas Martin - Page 58 Enterprise Service Bus Example: JBoss

    SwitchYard & Fuse Service Oriented Architectures in a BPM Context
  51. 52.

    Andreas Martin - Page 59 ESB - Commercial and Open

    Source Products Commercial  Oracle Service Bus  IBM WebSphere ESB  Microsoft BizTalk Server  Windows Azure Service Bus  Red Hat JBoss Fuse Service Works  … Open Source  Mule ESB  Talend ESB  Apache ServiceMix  Red Hat JBoss Fuse  JBoss SwitchYard  … Service Oriented Architectures in a BPM Context
  52. 53.

    Andreas Martin - Page 60 ESB – Example: JBoss Fuse

    Service Works Service Oriented Architectures in a BPM Context https://de.redhat.com/resourcelibrary/whitepapers/red-hat-jboss-fuse-service-works-technology-overview
  53. 54.

    Andreas Martin - Page 61 ESB Showcase using the SwitchYard

    view. 1. To get a feeling what an Enterprise Service Bus offers and how it works, the JBoss SwitchYard framework will be chosen as a starting point. 2. Using SwitchYard it is possible to create and configure Web Services – that is a core feature of an ESB. 3. Another core feature of an ESB is transformation and mediation based on Enterprise Integration Patterns. Service Oriented Architectures in a BPM Context https://de.redhat.com/resourcelibrary/whitepapers/red-hat-jboss-fuse-service-works-technology-overview
  54. 55.

    Andreas Martin - Page 62 What is SwitchYard?  “SwitchYard

    is an open source Enterprise Service Bus (ESB) from JBoss”.  JBoss calls it the “next-generation ESB”.  Actually it is a service development framework and tooling.  It is 100 % open source and is built on open standards and established technologies – no commercial product specific interface. Service Oriented Architectures in a BPM Context http://design.jboss.org/jbossorg/branding/datasheets/pdf/datasheet_switchyard.pdf http://www.puzzle.ch/assets/632/Erfahrungsbericht_zu_JBoss_Enterprise_SOA_Platform_6.pdf
  55. 56.

    Andreas Martin - Page 63 What is SwitchYard? Service Oriented

    Architectures in a BPM Context http://www.redhat.com/summit/2011/presentations/jbossworld/whats_new/wednesday/babo_w_1400_esb_reloaded.pdf
  56. 57.

    Andreas Martin - Page 64 Reality is complex…. Service Oriented

    Architectures in a BPM Context http://rhsummit.files.wordpress.com/2013/06/babo_red_hat_jboss_soa6_quick_start.pdf
  57. 58.

    Andreas Martin - Page 65 SwitchYard offers a visual model

    Service Oriented Architectures in a BPM Context http://rhsummit.files.wordpress.com/2013/06/babo_red_hat_jboss_soa6_quick_start.pdf
  58. 59.

    Andreas Martin - Page 66 …and ease of use: Service

    Oriented Architectures in a BPM Context http://rhsummit.files.wordpress.com/2013/06/babo_red_hat_jboss_soa6_quick_start.pdf
  59. 60.

    Andreas Martin - Page 67 Elements of SwitchYard - Implementations

    Service Oriented Architectures in a BPM Context http://rhsummit.files.wordpress.com/2013/06/babo_red_hat_jboss_soa6_quick_start.pdf
  60. 61.

    Andreas Martin - Page 68 Elements of SwitchYard – Gateways

    Service Oriented Architectures in a BPM Context http://rhsummit.files.wordpress.com/2013/06/babo_red_hat_jboss_soa6_quick_start.pdf
  61. 62.

    Andreas Martin - Page 69 Apache Camel  Apache Camel

    is an integration framework based on known Enterprise Integration Patterns. e.g.: Service Oriented Architectures in a BPM Context
  62. 63.

    Andreas Martin - Page 70 Elements of SwitchYard – Camel

    Routing Service Oriented Architectures in a BPM Context http://www.redhat.com/summit/2011/presentations/jbossworld/whats_new/wednesday/babo_w_1400_esb_reloaded.pdf
  63. 64.

    Andreas Martin - Page 71 Elements of SwitchYard – Camel

    Routing Service Oriented Architectures in a BPM Context http://rhsummit.files.wordpress.com/2013/07/babo_loosely_coupled_reusable_and_interoperable.pdf
  64. 65.

    Andreas Martin - Page 72 Elements of Fuse – Camel

    Visual Development Service Oriented Architectures in a BPM Context http://rhsummit.files.wordpress.com/2013/07/babo_loosely_coupled_reusable_and_interoperable.pdf
  65. 66.

    Andreas Martin - Page 73 SOA-based Integration (ESB access) Example

    – Loan Approval using camunda BPM Service Oriented Architectures in a BPM Context
  66. 67.

    Andreas Martin - Page 74 Example – Loan Approval: SOA-based

    Integration  Enterprise Service Bus access: Service Oriented Architectures in a BPM Context Enterprise Service Bus (ESB)
  67. 68.

    Andreas Martin - Page 75 camunda BPM – Java EE

    service invoking Web Service Client Service Oriented Architectures in a BPM Context @Named @Stateless public class CustomerService { @Inject @ProcessVariable public Object customerId; @Inject private BusinessProcess businessProcess; @WebServiceRef(type=LoanApprovalESBService_Service.class) private LoanApprovalESBService approvalESBService; public void loadCustomer() { Customer customer = approvalESBService.findCustomerById(Long.valueOf((String) customerId)); if (customer != null) { businessProcess.setVariable("customerFirstName", customer.getFirstName()); businessProcess.setVariable("customerLastName", customer.getLastName()); } } }
  68. 69.

    DEMO BPMN Model & Enterprise Service Bus IDE: Eclipse &

    JBoss Tools & SwitchYard Application Server: JBoss EAP 6.1 Framework: SwitchYard & Camel http://www.flickr.com/photos/jurvetson/489257240