Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

Hoffman Business Services

VIEWS: 4 PAGES: 56

Hoffman Business Services document sample

More Info
									Forestay
 Ahead Forever




         Automating Business Processes
             with Apache ODE and
             iWay Service Manager


                 Steve Hoffman
                    Forestay


                                         1
Forestay
 Ahead Forever   Agenda
Introduction

Business process automation
 Service-oriented architecture (SOA)
 Process-driven SOA

Open-source gems
 Apache Orchestration Director Engine (ODE)
 Eclipse BPEL Designer

Use Apache ODE and the Eclipse BPEL Designer
to orchestrate services in iWay Service Manager


                                                  2
Forestay
 Ahead Forever   A Few Definitions
Business process
  Coordinated tasks and activities conducted by systems and people,
   that accomplishes a specific organizational goal
  Examples: Replenish supply, Handle claims request, Order to cash
   (Process PO; Fulfill order; Create invoice; Process payment)

Business process automation (BPA)
  Streamlining and automating an organization’s key business
   processes
  Usually involves linking disparate technology systems and
   applications that don’t already communicate with each other

Business process management (BPM)
  Business practices, techniques and methods for creating and
   improving business processes


                                                                       3
Forestay
 Ahead Forever   About Forestay
Strategic solution provider
  Core competencies: BPM, SOA, BI/EPM, CRM, CMS
  Managed by senior IT practitioners who average nearly 20 years experience
  Industries: Utilities, Non-profit, Public, Finance, Insurance, Media,
   Construction

Clients
  US GSA, National Grid, The Mellon Foundation
  Goldman Sachs, Deutsche Bank, The Hartford, Health Dialog
  Pitney-Bowes, Pilot Pen, Time Interactive, Grolier Interactive

Partners
  Information Builders (since Spring ’06)
  AmberPoint (SOA governance; since July ’08)
  Parasoft (Testing frameworks & tools; since Spring ’06)

Locations
  Headquarters in southwestern CT
  Developers in New York City, Kings Beach, CA and Pakistan
  203-770-8779; info@forestay.com
                                                                               4
Forestay
 Ahead Forever   About Forestay
Provide thought leadership and product expertise

Typically augment client project teams
  Educate on advanced technologies and products
  Mentor through self-reliance
  Can also outsource entire projects

Drive incremental project successes
  PoC  Pilot  Department  Division  Enterprise

Educate & advocate “closed-loop” process-driven IT
  e.g., optimize processes via run-time SOA governance

A forestay is the rope or cable at a sailboat’s leading edge
  Strung from the bow to the top of the forward mast
  Prevents the rig from collapsing under load
  Enables forward motion
                                                               5
Forestay
 Ahead Forever   iWay Service Manager (iSM)
Open-transport enterprise service bus (ESB)
 Comprehensive platform for SOA and event driven
  architecture

Empowers service design & deployment for:
 Business process automation (BPA)
 Business-to-business (B2B)
 Enterprise information management (EIM)

Tooling is based on the open-source Eclipse
integrated development environment


                                                    6
Forestay
 Ahead Forever   iSM Benefits
Simplifies the skill sets required for service design,
deployment and maintenance

Reduces and encapsulates IT complexity
  Developers focus on implementing process-functionality
  Instead of coding to low-level interfaces

Eliminates most custom integration code
  Use a common GUI for codeless component assembly

Decreases TCO for integration projects
  Speeds delivery of cost-savings and new revenue generation
  Eases business process improvements and changes
  Improves management visibility into IT projects

                                                                7
Forestay
 Ahead Forever   iSM for BPA

Enables IT to become more process-centric and
adopt a reuse culture
 Model business’ event-driven nature within graphical
  workflows (independent of underlying technology)
 Rapidly compose automated processes & workflows
 Monitor and manage events




                                                         8
Forestay
 Ahead Forever   Business Benefits of BPA
Increased Efficiency/Productivity
 Operational Cost Reductions
 Faster Time to Market

Reliability
 Enables Business Activity Monitoring (BAM)
       Provides visibility of running process activity states
       Monitors and distributes warning/error conditions
       Facilitates supervisory control


Improved customer satisfaction

Share business processes with suppliers,
customers and partners (BPA now, B2B later)
                                                                 9
Forestay
 Ahead Forever   Technical Benefits of BPA
Service-enable existing “legacy” systems

Rapid composition of business services
 Assemble, don’t code integrations

Integrated monitoring and governance
 Both processes and end systems

Standards-based
 WS-*, BPEL and WS-HumanTask



                                             10
Forestay
 Ahead Forever   Service-oriented Architecture

Standardized distributed computing (via
service interfaces)
Loose coupling is the primary architectural goal
     Send & receive XML message “documents” (doc-literal)
            Versus invoking APIs (i.e., remote procedure calls, or RPC)



Services’ logical interfaces and physical
endpoints are defined in Web Service
Description Language (WSDL)
Defines services as collections of network
 endpoints, or ports
                                                                           11
Forestay
 Ahead Forever   WSDL Overview




                                 12
Forestay
 Ahead Forever   Process-driven SOA
“Top-down” paradigm: Process models drive
service interfaces and interactions

Need standards for orchestrating services to
automate business processes
 Business Process Execution Language (WS-BPEL 2.0)
 Must support us slow and error-prone yet vital “ugly bags
  of mostly water”
       WS-HumanTask
       BPEL4People




                                                              13
Forestay
 Ahead Forever   WS-BPEL
BPEL is the Web Services orchestration standard from OASIS
  An XML-based grammar for describing the logic to coordinate and control
   Web services in a business process
  Created by merging Microsoft's XLang and IBM's WSFL

BPEL processes automate interactions among Web services, supporting:
    Long running business transactions
    Correlation of message exchanges to process instances
    Parallel processing of activities
    Mapping data between partner interactions
    Exception and recovery handling

Benefits
  Industry-wide language for expressing business processes
        – Leverage a common skill set and language
  Designed to fit naturally into the Web services stack
        Expressed entirely in XML
        Extends WSDL 1.1 and uses XML Schema 1.0 for the data model
  Portable across platform and vendor: Will run on any BPEL-compliant engine

                                                                             14
Forestay
 Ahead Forever   Why is BPEL Needed?

WSDL-defined Web services have a stateless
interaction model: Messages are exchanged using
 Synchronous invocation
 Uncorrelated asynchronous invocations


Most “real-world” business processes require a
more robust interaction model
 Messages exchanged in a two-way, peer-to-peer
  conversation lasting minutes, hours, days, etc.


 BPEL provides the ability to express this stateful
interaction model
                                                      15
Forestay
 Ahead Forever   BPEL Builds on WSDL
Extends the WSDL service model
  WSDL defines the specific operations available
  BPEL defines how WSDL operations are orchestrated to fulfill a
   business process
  BPEL specifies extensions to WSDL in support of long-running
   asynchronous business processes

BPEL definitions only reference abstract WSDL constructs
  Types, messages and portType/operations

Concrete WSDL constructs, or “Endpoint References”, are
only used for process deployment and execution
  Bindings/operations and services/ports




                                                                    16
Forestay
 Ahead Forever   BPEL is All About Partners
Defines the interactions among one or more partner
services. Partners may:
 Provide Web services to the process
 Consume Web services from the process
 Interact in a two-way asynchronous conversation with the
  process
       i.e., both provide Web services to the process and consume Web
        services from the process


WSDL definitions are used to represent all partner
services required by the process

BPEL processes are also Web services described
using WSDL

                                                                         17
Forestay
 Ahead Forever   BPEL Tracks Conversations
BPEL defines the partnerLinkType construct to model
service interactions
  Represents a third party viewpoint of the conversational relationship
   between two partner services
        Describes the WSDL portTypes required to be implemented for the
         relationship to succeed
  Uses WSDL’s extensibility mechanism

Each partnerLinkType has one or two roles
  Each role references a WSDL portType
  Two role case implies asynchronous conversation
  Single role case when there is no need to place any requirements on
   the other partner service
  Example:
       <plnk:partnerLinkType name="PurchasingPLT“
        xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
           <plnk:role name="Seller" portType="sell:SellerPT" />
           <plnk:role name="Buyer" portType="buy:BuyerPT" />
       </plnk:partnerLinkType>
                                                                           18
Forestay
 Ahead Forever   BPEL Process Definition

A process description defines
 Variables
 Handlers (for events, faults, termination, and/or
  compensation)
 Partner links (instances of partnerLinkTypes)
 A primary activity (Start Activity) that is executed
  when an instance of the process is created
       Typically a “structured” activity that contains other
        activities
       A process instance is created when the host engine
        receives a message for that process definition

                                                                19
Forestay
 Ahead Forever   BPEL Activities
The actions that the process actually executes

Basic activities are atomic: Can’t be subdivided
  receive, assign, invoke, reply, compensate, compensateScope,
   empty, exit, throw, rethrow, validate, wait

Structured activities contain other activities
  sequence, flow, forEach, switch, pick, repeatUntil, scope, while


Can use both program and graph structures, which can be
mixed as needed
  A program structure executes in a linear fashion defined by
   sequences, loops, and if-elseif branches (derivative of XLang)
  A graph structure’s control flow is defined by links between activities
   and can execute activities in parallel (using flow or parallel forEach)

                                                                             20
  Forestay
    Ahead Forever   BPEL Process Example
<process name="ExampleProcess" targetNamespace="urn:Example" xmlns:c="urn:Calc"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
    <partnerLinks>
         <partnerLink myRole="calculator" name="calcServicePL"
          partnerLinkType="c:calcServicePLT"/>
    </partnerLinks>
    <variables>
         <variable messageType="c:CalcInput" name="CalcInput"/>
         <variable messageType="c:CalcOutput" name="CalcOutput"/>
    </variables>
    <sequence>
         <receive createInstance="yes" operation="CalcOperation"
          partnerLink="calcServicePL" portType="c:CalcPT" variable="CalcInput"/>
         <assign>
             <copy>
                  <from part="Input" query="xpath" variable="CalcInput"/>
                  <to part="Output" query="xpath" variable="CalcOutput"/>
             </copy>
         </assign>
         <reply operation="CalcOperation" partnerLink="calcServicePL"
          portType="c:CalcPT" variable="CalcOutput"/>
    </sequence>
</process>



                                                                                   21
Forestay
 Ahead Forever   Process Instance Termination

Normally
 When the primary activity completes


Abnormally
 When an unhandled fault propagates up to the
  primary activity without being handled; or
 When explicitly terminated using an exit activity,
  which immediately stops the running process



                                                       22
Forestay
 Ahead Forever   Apache ODE
Robust BPEL execution engine
  Two communication layers
        One based on Axis2 (Web Services http transport)
        Another based on the JBI standard (using ServiceMix)
  High level API to the engine
        Allows integrating the core with virtually any communication layer
  HTTP WSDL binding (for invoking REST-style services)
  Mapping process variables to a database table
  Hot-deployment of process definitions
  Compiled approach to BPEL: Provides detailed analysis and
   validation at the command line or at deployment

Management interface for controlling processes, instances,
messages

Deployed as a WAR file (e.g., on Apache Tomcat)

                                                                              23
Forestay
 Ahead Forever   Eclipse BPEL Designer

A GEF-based graphical BPEL editor




                                         24
Forestay
 Ahead Forever      Orchestrate an iSM Service

Using the Eclipse BPEL Designer
 Create a BPEL process that calls an out-of-the-
  box iSM Web service
 Deploy the process to Apache ODE
 Use the Web Services Explorer to execute the
  BPEL process on Apache ODE
       Send an input string and receive the output
                 Both as XML documents



Major “props” to Fateh Naili of iWay

                                                      25
Forestay
 Ahead Forever   Create a BPEL Project

In the Eclipse Platform, select the menu
 File  New  Other  BPEL 2.0  BPEL Project
Click “Next >”




                                                26
Forestay
 Ahead Forever   Create a BPEL Project

In the “Project Facets” window, select “BPEL
2.0 Facet”, click “OK” and then click “Finish”




                                                 27
Forestay
 Ahead Forever   Create a BPEL Project
For “Project Name”, type “InvokeIVP”
For “Target Runtime”, select “Apache Ode 1.x Runtime”
For “Configuration”,
select “<custom>”
and press “Modify...”




                                                        28
Forestay
 Ahead Forever   Creating a BPEL Process
File  New  Other  BPEL 2.0  New BPEL Process File




                                                        29
Forestay
 Ahead Forever   Create a BPEL Process

Type or select these values and click “Next >”
 BPEL Process Name: SimpleProcess
 Namespace:
  http://Simple.com/Simple
 Template: Synchronous
  BPEL Process




                                                 30
Forestay
 Ahead Forever   Create a BPEL Process

Select the project for the BPEL
process, “InvokeIVP”
Click “Finish”




                                         31
Forestay
 Ahead Forever   Create a BPEL Process
The tool creates a skeleton process consisting of a
“main” sequence containing a receive and a reply




                                                      32
Forestay
 Ahead Forever   Import IVP Web Service WSDL
Using a Web browser, visit http://localhost:9000/IVP/iwayivp.ibs?wsdl
Right-click in the browser and select “View source”
Save the WSDL code to a file on the local disk
  In the BPEL project directory with the name iwayivp.wsdl
In the Project Explorer, right-click and select “Refresh”




                                                                        33
Forestay
  Ahead Forever   Create a Partner Link
First, validate the properties of the partner link representing
the service exposed by process
 Select the “client” Partner Link
 Visit the
  Properties
  view and verify
  that the values
  are as shown




                                                                  34
Forestay
 Ahead Forever   Create a Partner Link

In the Partner Links tab, click the “+” icon
Type in the name “IVPLink”




                                               35
Forestay
 Ahead Forever   Create a Partner Link

In the Properties view, click the “Browse” button




                                                    36
Forestay
 Ahead Forever   Create a Partner Link
In the Choose Partner Link
Type window
 Select the “From Project”
  radio button
 Select “iwayivpsoap”
 Click the “OK” button




                                         37
Forestay
 Ahead Forever   Create a Partner Link
In the Create Partner Link Type window
 Type “IVPLinkType”
 Click “Next >”




                                         38
Forestay
 Ahead Forever   Create a Partner Link
 In the Role name, Type “IVPProvider”
 Select the “iwayivpSoap” Port Type
 Click “Finish”




                                         39
Forestay
 Ahead Forever   Create a Partner Link
In the Properties view, click the “IVPProvider” radio
button in the Partner Role panel




                                                        40
Forestay
 Ahead Forever   Build Out the BPEL Process

In the BPEL designer canvas, between
the receive and reply, add an assign,
an invoke and another assign (named
Assign1)




                                              41
Forestay
 Ahead Forever   Build Out the BPEL Process
Right-click the “Invoke” activity & select “Show in properties”
In the Properties view:
  For Partner Link, select “IVPLink”
  For Operation, select “ivp”
  For the quick pick, select “iwayivpSoap”
  The input and output variables should automatically be set to
   IVPLinkRequest and IVPLinkResponse




                                                                   42
Forestay
 Ahead Forever   Build Out the BPEL Process
Right-click the “Assign” activity & select “Show in properties”
In the Properties view, click “New” and set:
        From: “input -> payload -> input”
        To: “iwayIVPLinkRequest -> parameters”




                                                                  43
Forestay
 Ahead Forever   Build Out the BPEL Process
Click “Yes” in the “Initializer” popup dialog
Right-click the “Assign1” activity and select “Show in
properties”
In the Properties view, click “New” and set:
       From: “IVPLinkReponse -> parameters”
       To: “output -> payload -> result”
Click “Yes” in the “Initializer” popup dialog




                                                     44
Forestay
 Ahead Forever   Deploy the BPEL Process

Define the service & binding for the process Endpoint
In the Project Explorer, double-click on the
 “SimpleProcessArtifacts.wsdl” file
The WSDL editor opens:




                                                    45
Forestay
 Ahead Forever   Deploy the BPEL Process
In the WSDL Editor, right-click in the canvas and
select “Add Service”. A new Service appears:


Right-click the new service and select “Show
properties”
Type in these names:
 Service: SimpleProcessService
 Port: SimpleProcessPort
 Address:
  http://localhost:8080/ode/processes/SimpleProcess
 Protocol: SOAP

                                                      46
Forestay
 Ahead Forever   Deploy the BPEL Process

Specify a new binding
 Right-click in the Canvas and select “Add Binding”
       A new Binding element appears on the screen
 Click on it and rename it to “SimpleProcessBinding”
 In the PortType Box, select “SimpleProcess”
 Click the “Generate Binding Content” button
 In the Protocol, select “SOAP” and click the “Finish” button


Right-click the “SimpleProcessProcessPort” and
select “Show properties”
 Select the “SimpleProcessBinding” binding

                                                             47
Forestay
 Ahead Forever   Deploy the BPEL Process

Save the updated
SimpleProcessArtifacts.wsdl




                                           48
Forestay
 Ahead Forever   Deploy the BPEL Process
Create a Deployment Descriptor
 Select the menu File  New  Other  BPEL 2.0 
  Apache ODE Deployment Descriptor
 In the “Select a wizard” window, click the “Next” button




                                                             49
Forestay
 Ahead Forever   Deploy the BPEL Process
In the “Apache ODE Deployment Descriptor” window
Click the “Browse…” button
Select the “InvokeIVP” BPEL project
Click the “Finish” button




                                               50
Forestay
  Ahead Forever   Deploy the BPEL Process
A new deploy.xml file is created in the project

In the Project Explorer, right-click on “deploy.xml” and select
“Open With -> ODE Deployment Descriptor Editor”

In the deployment descriptor
editor:
 For the Inbound Interface,
  select the “client” partner link
 Click in the editor’s white space
       The “Related Service” and
        “Binding Used” columns should
        automatically be filled in
 For the Outbound Interface,
  select the “IVPLink” partner link
 Click in the editor’s white space
       The “Related Service” and
        “Binding Used” columns should
        automatically be filled in
                                                                  51
Forestay
 Ahead Forever   Deploy the BPEL Process
In the Server view, right-click on the ODE server and select
“Add and Remove Project”



In the Add and Remove Projects window
 Select the entry on the left
 Click the “Add >” button
 Click the “Finish” button




                                                               52
Forestay
  Ahead Forever   Deploy the BPEL Process
In the Server view, right-click on the server and select “start”
 If the server is already running, select “publish”




Examine the Console view to ensure that the deployment
succeeded




                                                                   53
Forestay
 Ahead Forever   Run the BPEL Process
Use the Eclipse Web Service Explorer
In the Project Explorer,
 right-click on the
 WSDL file and select
 Web Services 
 Test with Web
 Services Explorer




                                        54
Forestay
 Ahead Forever   Run the BPEL Process
In the Web Service Explorer
Expand the “Navigator” tree and select the “process” node
For the “Input string”, type “Invoke iWay IVP Web Service”
Click the “Go” button




                                                              55
Forestay
 Ahead Forever   Run the BPEL Process
The Web Service Explorer displays the response




                                                 56

								
To top