How to setup a separate Orchestration for Web Services only?

355 views Asked by At

I have created an Orchestration that has declared a web service for Managing Sales Orders. This works fine, However I want to move the Web service out and into it's own orchestration and be able to call the orchestration when needed by other orchestrations. Each web method has a multi-part message assigned.

Expectation is that I will have to re-use all the Web Service methods in other Orchestrations and any future needs.

  • How do I go about setting up the ports correctly?
  • What is the correct method and guidelines I should use when creating a special Orchestration or Application for this purpose?
  • What would the Orchestration look like?
  • Do I set up the Ports in the Orchestration by 'specify now'

The Web Methods for the Web Service in question has

  1. getCustomerItemPrice (request/response)
  2. getitemListPrice (request/response)
  3. getItemPriceAndAvalability (request/response)
  4. getSalesOrder (request/response)
  5. getSalesOrderHistory (request/response)
  6. processSalesOrder (request/response)
  7. processSalesPriceAdjustment (request/response)

Tip 'Hold the shift key down while clicking on the hyperlink to view the current setup of my Orchestration & Web Service.

https://skydrive.live.com/redir.aspx?cid=533fd5a521c8c878&resid=533FD5A521C8C878!1857&parid=533FD5A521C8C878!1856

1

There are 1 answers

0
tom redfern On

The problem you have is that your web service port is tightly coupled to your existing orchestration because different operations on the port are called at different steps during the orchestration execution. So it may not be possible to move the entire web service port out of this orchestration and into a single other orchestration.

If you really want to abstract this web service call out of this orchestration then you are faced with a large refactoring exercise. You will probably need to perform at least some of the following steps:

  • Split the web port out into separate ports for each of the service operations you want to call
  • Create an orchestration to wrap each of the service calls.
  • Migrate the service operation request and response messages over to their respective orchestrations
  • Define new messages to pass into the called orchestrations, effectively decoupling your calling orchestration from your new orchestrations.

To be honest I am not sure I can see huge value in doing this unless you are expecting a lot of re-use of these components.