SOA Overview Session-2

download SOA Overview Session-2

of 27

Transcript of SOA Overview Session-2

  • 7/31/2019 SOA Overview Session-2

    1/27

    Click to edit Master subtitle style

    5/26/12

    BPM, ESB,Adapters

  • 7/31/2019 SOA Overview Session-2

    2/27

    5/26/12 22

    Introduction to BPM

    BPM:

    Is a technology to create a program that can invokeweb services but presents a very intuitive flow-charttype representation that can be easily understoodand modified

    More technically, it is a markup language forcomposing a set of discrete services into an end-to-end process flow

    BPEL Process is a web service, hence has a WSDLdocument that describes its operation

    invokes operations described in interfaces in theWSDL of other services.

  • 7/31/2019 SOA Overview Session-2

    3/27

    Copyright -http://soatraining.hpag 33

  • 7/31/2019 SOA Overview Session-2

    4/27

    5/26/12 44

    Orchestration Requirements

    Process orchestration coordinates services in a process from asingle run-time environment

    Orchestration should enable us to create:

    Business processes from services and human activities

    Coarse grained business services from fine grained services Integration flows to integrate various applications

    Orchestration requirements include:

    Execution sequencing including serial, parallel, or other kinds ofcontrol flow dependency patterns

    Exception handling including transactions and compensations

    Data flow and manipulation

    Event handling including timers and other out-of-band events

  • 7/31/2019 SOA Overview Session-2

    5/27

    Copyright -http://soatraining.hpag 55

    BPEL Process Manager

    Oracle BPEL Process Manager is implementation ofthe BPEL standard.

    The Oracle BPEL Process Manager consists of thethree components. Each component enables you to

    perform a specific set of tasks: The design environment (Oracle JDeveloper) enables

    you to design and deploy BPEL processes.

    The BPEL Server is where the process is deployed

    BPEL Control can be used to run and monitor the BPELprocess

  • 7/31/2019 SOA Overview Session-2

    6/27

    5/26/12 66

    ESB

    Just like BPEL, ESB is a technology tocreate SOA Applications

    An ESB project is deployed onto theESB server, just like BPEL

    There are lot of similarities and some

    differences between the capabilitiesof BPEL and ESB

  • 7/31/2019 SOA Overview Session-2

    7/27

    5/26/12 77

    ESB and BPELwhen to usewhich

    Basic points

    ESB is useful in typical integration scenarios integrate file to DB, queue to file, Queue to DB, Appsto file, Apps to mainframe etc

    BPEL is useful for orchestration scenarios bringtogether finer services into an application

    Everything that ESB can do, BPEL can do too.However, ESB is faster to build and faster to execute

    compared to similar integration built using BPEL.But BPEL can help develop services that may simplybe impossible to create in ESB.

    BPEL has rich features like OBR, Human task, Flow,pick etc. If you require any of these, you need to use

    BPEL

  • 7/31/2019 SOA Overview Session-2

    8/27

    5/26/12 Copyright - 88

    Getting Customer Datausing BPEL

  • 7/31/2019 SOA Overview Session-2

    9/27

    5/26/12 99

    ESB Capabilities

  • 7/31/2019 SOA Overview Session-2

    10/27

    5/26/12 1010

    TransformConvert data as it flows through

    the bus Canonical or point-to-

    point transformations

    Standard XSLT forexpressingtransformations

    Drag-and-drop

    graphical mapping tool

    Smart mapping tool,dictionary-based

  • 7/31/2019 SOA Overview Session-2

    11/27

    5/26/12 1111

    ESB Capabilities

  • 7/31/2019 SOA Overview Session-2

    12/27

    5/26/12 1212

    RouteReliably transport and route data over

    a variety of protocols

    Reliable messaging and guaranteed deliveryare keyin highly-distributed, asynchronous, fire-and-forget SOAwhere senders do not wait for a response.

    Internally: uses JMS for asynchronous flows

    On the edges: wide support of transportsSOAP,JMS, legacy messaging

    Hot-pluggable transport: 3rd Party JMS, DB, J2EE

  • 7/31/2019 SOA Overview Session-2

    13/27

    5/26/12 1313

    Route: Taking Decisions

    Content-based:if total_price > 500, route toFedEx

    Header-based:if message_type = order, route tofulfillment

    Standard XPath to definerouting expressions

    Graphical expression builder

  • 7/31/2019 SOA Overview Session-2

    14/27

    5/26/12 1414

    ESB Capabilities

  • 7/31/2019 SOA Overview Session-2

    15/27

    5/26/12 1515

    Security

    Main security challenges in distributed environments

    Islands of security lead to security gaps

    No end-to-end visibility

    Developers are not necessarily security experts Modifying policies is extremely complex

    ESB leverages the Oracle SOA infrastructure for security

    J2EE Container (OC4J) at service level

    Oracle Web Services Manager to configure global policies

    No security hard-coded in endpoints

    Deployment options: gateway or agent modes ESB sets and ro a ates securit headers WS-Securit

  • 7/31/2019 SOA Overview Session-2

    16/27

    5/26/12 1616

    ESB Capabilities

  • 7/31/2019 SOA Overview Session-2

    17/27

    5/26/12 1717

    Transactions & ExceptionsHandling

    Submitter is in charge:

    Persists messages

    Resubmit

    SYNCHRONOUS FLOW ASYNCHRONOUS FLOW

    ESB is in charge:

    Persists messages

    Retries, resubmit

    End-to-end transaction/XA support via JTA

    Ability to set transaction boundaries

    Built-in error hospital to persist and resubmit failedmessages

  • 7/31/2019 SOA Overview Session-2

    18/27

    5/26/12 1818

    ESB Capabilities

  • 7/31/2019 SOA Overview Session-2

    19/27

    5/26/12 1919

    ESB can call otherservices

    ESB can call other services like BPELvia direct invocation or SOAPbindings

    Direct invocation can work only whenthe ESB and BPEL servers are on sameapplication server

    Direct invocation is faster BPEL can be used for process

    orchestration

  • 7/31/2019 SOA Overview Session-2

    20/27

    5/26/12 Copyright - 2020

    ESB Capabilities

  • 7/31/2019 SOA Overview Session-2

    21/27

    5/26/12 2121

    ESB Control Overview

    RoutingServices

    Transformation

    FilterExpression

    JMSAdapter

    DB

    Adapter

    FlowInstance

    s

    OverviewNavigator

    BPELProcess

    Manage&

    Search

    FlexibleErrorRetry

  • 7/31/2019 SOA Overview Session-2

    22/27

    5/26/12 2222

    ESB Server Overview

    Is the runtime environment for ESBapplications (called ESB Systems)

    ESB Systems are composed of a setof one or more services or adapters

    The definition of ESB system iscreated in Jdeveloper and stored in

    DB by ESB Metadata server At runtime, ESB Metadata server

    reads these from database to create

    the ESB instance in the ESB Servermemor to rocess re uests

  • 7/31/2019 SOA Overview Session-2

    23/27

    5/26/12 2323

    ESB Designer Overview

    RoutingServices

    Transformation

    Filters

    FileAdapt

    erJMSAdapt

    er

    DBAdapt

    er

    JDevApplicati

    on

    ComponentPalette

    Metadat

    a WSDL XSD XSL

    JDevProjec

    t

    Adapter

    Services

    Operation

  • 7/31/2019 SOA Overview Session-2

    24/27

    5/26/12 2424

    Use ESB when

    Use ESB: The payload has everything needed for transforminginto the output format

    Use ESB: Transformations and invocations are simple, saysequential

    Use ESB: When you dont require a long running process

    Use ESB: When you dont need to store data temporarily invariables

    Use ESB: Memory footprint - smaller for ESB for similar project(say developing a program that reads a DB and writes a file)

    Use ESB: When you want to use DVM (BPEL does support DVMsvia lookup-dvm, but its easier to use them in ESB)

    Use ESB: When same or similar data needs to be sent forward.ESB is ideal for this kind of usage pattern

    Use ESB: When you are not too concerned about error handlingand dont need a very tight control

    Use ESB: When you need to be able to resubmit messages

  • 7/31/2019 SOA Overview Session-2

    25/27

    5/26/12 2525

    Use BPEL when

    Use BPEL: Orchestration required

    Use BPEL: When you need to call an asynchronous service

    Use BPEL: Long-lived or chatty application

    Use BPEL: Need to send notification

    Use BPEL: Need to use business rules

    Use BPEL: Require to split or join payloads

    Use BPEL: Want to iterate over data, run a loop

    Use BPEL: content validation required based on business rules

    (and not necessarily xsd based) Use BPEL: when participating apps support only HTTP/XML

    Use BPEL: WSDL operations having multipart in messages

    Use BPEL: Need to send binary attachments

    Use BPEL: Monitoring using BAM etc. BPEL offers sensors

  • 7/31/2019 SOA Overview Session-2

    26/27

    5/26/12 2626

    Whats an Adapter

    An adapter provides an interface thatexposes a non Web-based applicationas Web service endpoint.

    This enables the BPEL process tointeract with the service usingstandard BPEL Invoke, Receive, andReply activities

    The adapters enable customers andpartners to leverage investments inexisting custom or otherwise unique

    applications, and to integrate them

  • 7/31/2019 SOA Overview Session-2

    27/27

    5/26/12 2727

    Taxonomy of Adapters

    Technology Adapters

    Used to integrate with transport protocols, data stores,and messaging middleware

    Examples file, FTP, database, JMS, AQ adapters

    Packaged-Applications Adapter

    Integration with packaged applications

    Examples Oracle Applications adapter, Siebel adapter,Peoplesoft adapter, SAP adapter

    Legacy Adapters

    Integration with legacy and mainframe systems

    Examples: Tuxedo adapter, CICS adapter, VSAM adapter,IMS/TM adapter, IMS/DB adapter

    It is possible to create your own adapters too (custom