|
Home > Archive > BizTalk Server General > March 2006 > best way to dynamically invoke orchestration
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
best way to dynamically invoke orchestration
|
|
| Don Rixtown 2006-03-25, 11:37 am |
| Hi,
I have an orchestration that I want to initiate other orchestrations
dynamically. For example, if the message is from client A, invoke client
A's custom orchestration.
Do you have any recommendations for the best way to accomplish this?
There are really 2 problems.
1. what is the best way to have the master orchestration know what child
orchestration to kick off? (a database lookup? a config file? something
else?)
2. How should I structure/deploy these child orchestrations/assemblies?
(I can see the child orchestrations changing frequently and the master
not so often.)
I hope I'm making sense.
Thanks,
Don
--
Don Rixtown
don[dot]rixtown[at]gmail[dot]com
| |
| Tomas Restrepo \(MVP\) 2006-03-25, 11:37 am |
| Hi Don,
> I have an orchestration that I want to initiate other orchestrations
> dynamically. For example, if the message is from client A, invoke client
> A's custom orchestration.
>
> Do you have any recommendations for the best way to accomplish this?
>
> There are really 2 problems.
> 1. what is the best way to have the master orchestration know what child
> orchestration to kick off? (a database lookup? a config file? something
> else?)
> 2. How should I structure/deploy these child orchestrations/assemblies?
> (I can see the child orchestrations changing frequently and the master
> not so often.)
I've implemented something like this in the past by using direct-bound ports
on the master orchestration and the child orchestration (which decouples
them), and using a custom routing property with the necessary value.
For example, you could define a custom context property called
"CompanyName", and then have the child orchestrations receive an input
message from a direct-bound port with a filter on the receive shape that
says "CompanyName=='CompanyX'". Then the parent orchestration would simply
need to figure out to which company the process belongs, create a new
message with the CompanyName context property set and promoted (you'll need
to initialize a correlation set here) and send it to another direct-bound
port.
That way the standard pub/sub mechanism in biztalk takes care of the heavy
lifting, and it does allow you to more easily version the child
orchestrations independent of the parent one.
You'll find Charles Young's article on Direct Binding
(http://geekswithblogs.net/cyoung/articles/19546.aspx) useful if you're not
familiar with direct bound ports already, btw.
--
Tomas Restrepo
tomasr@mvps.org
http://www.winterdom.com/
|
|
|
|
|