Web Services
  Home arrow Web Services arrow Page 2 - Web Services Reengineering: Finishing Touc...
Dev Articles Forums 
ADO.NET  
Apache  
ASP  
ASP.NET  
C#  
C++  
ColdFusion  
COM/COM+  
Delphi-Kylix  
Design Usability  
Development Cycles  
DHTML  
Embedded Tools  
Flash  
Graphic Design  
HTML  
IIS  
Interviews  
Java  
JavaScript  
MySQL  
Oracle  
Photoshop  
PHP  
Reviews  
Ruby-on-Rails  
SQL  
SQL Server  
Style Sheets  
VB.Net  
Visual Basic  
Web Authoring  
Web Services  
Web Standards  
XML  
Mobile Linux 
App Generation ROI 
IBM® developerWorks 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
WEB SERVICES

Web Services Reengineering: Finishing Touches
By: Sams Publishing
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 5 stars5 stars5 stars5 stars5 stars / 3
    2006-09-07

    Table of Contents:
  • Web Services Reengineering: Finishing Touches
  • Listing 12.8 The Complete SkatesTown Business Process
  • Advanced Considerations
  • Summary

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
    ADVERTISEMENT


    Web Services Reengineering: Finishing Touches - Listing 12.8 The Complete SkatesTown Business Process


    (Page 2 of 4 )

    <?xml version="1.0" encoding="UTF-8"?>
    <process name="purchaseOrderProcess" 
    targetNamespace="http://www.skatestown.com/
    processes/purchaseOrderProcess" xmlns:pos="http://www.skatestown.com/services/
    interfaces/poSubmission.wsdl" xmlns:skt="http://www.skatestown.com/services/
    interfaces/skatestown.wsdl" xmlns:sup="http://www.wheelsandboards.com/
    services/interfaces/ orderSupplies.wsdl" xmlns:plt="http://www.skatestown.com/processes/
    poSubmissionPLT" xmlns:ppa="http://www.skatestown.com/processes/
    poSubmissionPPA" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/ws/2003/03/
    business-process/"> <!-- PartnerLink definitions --> <partnerLinks> <partnerLink name="buyer" partnerLinkType=
    "plt:purchaseOrderPartnerLinkType" myRole="seller"/> <partnerLink name="local"
    partnerLinkType="plt:localPartnerLinkType" partnerRole="sellerLocal"/> <partnerLink name="supplier" partnerLinkType=
    "plt:orderSuppliesPartnerLinkType" myRole="seller" partnerRole="supplier"/> </partnerLinks> <!-- Partner definitions --> <partners> <partner name="skatestownCustomer"> <partnerLink name="buyer"/> </partner> <partner name="skatestown"> <partnerLink name="local"/> </partner> <partner name="skatestownSupplier"> <partnerLink name="supplier"/> </partner> </partners> <!-- Variable definitions --> <variables> <variable name="poSubmissionRequest" messageType="pos:poSubmissionRequest"/> <variable name="poSubmissionResponse" messageType="pos:poSubmissionResponse"/> <variable name="poSubmissionFaultInvalidPO" messageType=
    "pos:poSubmissionFaultInvalidPO"/> <variable name="poSubmissionFaultOutOfStock" messageType=
    "pos:poSubmissionFaultOutOfStock"/> <variable name="cancelPurchaseOrderRequest" messageType=
    "pos:cancelPurchaseOrderRequest"/> <variable name="validatePurchaseOrderResponse" messageType=
    "skt:validatePurchaseOrderResponse"/> <variable name="checkLocalStockResponse" messageType="skt:checkLocalStockResponse"/> <variable name="orderSuppliesRequest" messageType="sup:orderSuppliesRequest"/> <variable name="orderSuppliesResponse" messageType="sup:orderSuppliesResponse"/> <variable name="orderSuppliesFault" messageType="sup:orderSuppliesFault"/> </variables> <!-- Correlation set definitions --> <correlationSets> <correlationSet name="orderCorrelationSet" properties="ppa:customerID
    ppa:orderNumber"/> </correlationSets> <!-- Fault handler definitions --> <faultHandlers> <catch faultName="pos:invalidPO"> <sequence> <assign> <copy> <from variable="poSubmissionRequest" part="purchaseOrder"
    query="/billTo/id"/> <to variable=
    "poSubmissionFaultInvalidPO" part="customerID"/> </copy> <copy> <from variable="poSubmissionRequest" part="purchaseOrder" query="/id"/> <to
    variable="poSubmissionFaultInvalidPO" part="orderNumber"/> </copy> </assign> <reply partnerLink="buyer"
    portType="pos:poSubmissionPortType" operation="poSubmission" faultName="pos:invalidPO" variable="poSubmissionFaultInvalidPO"> <correlations> <correlation set="orderCorrelationSet"
    initiate="no"/> </correlations> </reply> </sequence> </catch> <catch faultName="pos:outOfStock"> <sequence> <assign> <copy> <from variable="poSubmissionRequest" part="purchaseOrder"
    query="/billTo/id"/> <to
    variable="poSubmissionFaultInvalidPO" part="customerID"/> </copy> <copy> <from variable="poSubmissionRequest" part="purchaseOrder" query="/id"/> <to
    variable="poSubmissionFaultInvalidPO" part="orderNumber"/> </copy> </assign> <reply partnerLink="buyer"
    portType="pos:poSubmissionPortType" operation="poSubmission" faultName="pos:outOfStock" variable="poSubmissionFaultOutOfStock"> <correlations> <correlation set="orderCorrelationSet"
    initiate="no"/> </correlations> </reply> </sequence> </catch> </faultHandlers> <!-- Event handler definitions --> <eventHandlers> <onMessage partnerLink="buyer"
    portType="pos:poSubmissionPortType" operation="cancelPurchaseOrder" variable="cancelPurchaseOrderRequest"> <correlations> <correlation set="orderCorrelationSet"
    initiate="no"/> </correlations> <terminate/> </onMessage> </eventHandlers> <!-- Activity definitions --> <sequence> <receive partnerLink="buyer"
    portType="pos:poSubmissionPortType" operation="poSubmission"
    createInstance="yes" variable="poSubmissionRequest"> <correlations> <correlation set="orderCorrelationSet"
    initiate="yes"/> </correlations> </receive> <flow> <links> <link name="validPurchaseOrder"/> <link name="invalidPurchaseOrder"/> <link name="inLocalStock_initiateDelivery"/> <link name="inLocalStock_createInvoice"/> <link name="notInLocalStock"/> <link
    name="stockReplenished_initiateDelivery"/> <link
    name="stockReplenished_createInvoice"/> </links> <invoke partnerLink="local"
    portType="skt:skatestownPortType" operation="validatePurchaseOrder" inputVariable="poSubmissionRequest" outputVariable=
    "validatePurchaseOrderResponse"> <source linkName="validPurchaseOrder" transitionCondition=
    "bpws:getVariableData( 'validatePurchaseOrderResponse',
    'valid')=true"/> <source linkName="invalidPurchaseOrder" transitionCondition=
    "bpws:getVariableData( 'validatePurchaseOrderResponse',
    'valid')=false"/> </invoke> <throw faultName="pos:invalidPO"> <target linkName="invalidPurchaseOrder"/> </throw> <invoke partnerLink="local"
    portType="skt:skatestownPortType" operation="checkLocalStock" inputVariable="poSubmissionRequest" outputVariable="checkLocalStockResponse"> <target linkName="validPurchaseOrder"/> <source linkName=
    "inLocalStock_initiateDelivery" transitionCondition=
    "bpws:getVariableData( 'checkLocalStockResponse','available')
    =true"/> <source
    linkName="inLocalStock_createInvoice" transitionCondition=
    "bpws:getVariableData( 'checkLocalStockResponse','available')
    =true"/> <source linkName="notInLocalStock" transitionCondition=
    "bpws:getVariableData( 'checkLocalStockResponse','available')
    =false"/> </invoke> <sequence name="replenishStock"> <target linkName="notInLocalStock"/> <source
    linkName="stockReplenished_initiateDelivery"/> <source
    linkName="stockReplenished_createInvoice"/> <assign> <copy> <from variable="poSubmissionRequest" part="purchaseOrder"/> <to variable="orderSuppliesRequest" part="orderSupplies"/> </copy> <copy> <from partnerLink="supplier"
    endpointReference="myRole"/> <to variable="orderSuppliesRequest" part="endpointReferenceOfSeller"/> </copy> </assign> <while condition="bpws:getVariableData( 'checkLocalStockResponse','available')=
    false"> <sequence> <invoke partnerLink="supplier" portType=
    "sup:orderSuppliesPortType" operation="orderSupplies" inputVariable=
    "orderSuppliesRequest"> <correlations> <correlation
    set="orderCorrelationSet" initiate="no"/> </correlations> </invoke> <pick> <onMessage partnerLink="supplier" portType=
    "sup:orderSuppliesCallbackPortType" operation="orderSuppliesOk"
    createInstance="no" variable=
    "orderSuppliesResponse"> <correlations> <correlation
    set="orderCorrelationSet" initiate="no"/> </correlations> <empty/> </onMessage> <onMessage partnerLink="supplier" portType=
    "sup:orderSuppliesCallbackPortType" operation="orderSuppliesFailed" createInstance="no" variable="orderSuppliesFault"> <correlations> <correlation
    set="orderCorrelationSet" initiate="no"/> </correlations> <throw faultName="pos:outOfStock"/> </onMessage> <onAlarm for="P1M"> <throw faultName="pos:outOfStock"/> </onAlarm> </pick> <invoke partnerLink="local" portType="skt:skatestownPortType" operation="checkLocalStock" inputVariable="poSubmissionRequest" outputVariable=
    "checkLocalStockResponse"/> </sequence> </while> </sequence> <invoke partnerLink="local"
    portType="skt:skatestownPortType" operation="initiateDelivery" inputVariable="poSubmissionRequest"> <target linkName=
    "inLocalStock_initiateDelivery"/> <target
    linkName="stockReplenished_initiateDelivery"/> </invoke> <invoke partnerLink="local"
    portType="skt:skatestownPortType" operation="createInvoice" inputVariable="poSubmissionRequest" outputVariable="poSubmissionResponse"> <target
    linkName="inLocalStock_createInvoice"/> <target
    linkName="stockReplenished_createInvoice"/> </invoke> </flow> <reply partnerLink="buyer"
    portType="pos:poSubmissionPortType" operation="poSubmission" variable="poSubmissionResponse"> <correlations> <correlation set="orderCorrelationSet"
    initiate="no"/> </correlations> </reply>
    </sequence> </process>

     

    More Web Services Articles
    More By Sams Publishing


       · This article is an excerpt from the book "Building Web Services with Java: Making...
       · The old data processing phrase "garbage in, garbage out" has never implied that the...
     

    Buy this book now. This article is excerpted from chapter 12 of Building Web Services with Java: Making sense of XML, SOAP, WSDL, and UDDI, written by Steve Graham et al. (Sams; ISBN: 0672326418). Check it out today at your favorite bookstore. Buy this book now.

    WEB SERVICES ARTICLES

    - Safety, Idempotence, and the Resource-Orient...
    - The Resource-Oriented Architecture in Action
    - Features of the Resource-Oriented Architectu...
    - The Resource-Oriented Architecture
    - Getting Started with Flex
    - Automated Billing and Faxing for the Web
    - An Introduction to Web Services
    - The Foundations of Web Services: From Novice...
    - Web Services Reengineering: Finishing Touches
    - Fault Handling with Web Services
    - Flow and Web Services
    - Process Lifecycles and Web Services
    - Business Processes and Web Services
    - Orchestrating Web Services
    - Notifications and Resources in the WS-Resour...







    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 4 Hosted by Hostway
    For more Enterprise Application Development news, visit eWeek