BizTalk Server General - Sending multiple messages in parallel

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server General > July 2004 > Sending multiple messages in parallel





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 Sending multiple messages in parallel
Oll

2004-07-09, 3:31 pm

Hi, I'm totally new to BTS and am struggling to get started.

The Problem:
Basically I'm trying to create a 'quote engine'. It receives a request message from a client, sends out messages to several providers (needs to be easy to add/remove when needed without interfering with current providers) and, once all providers have resp
onded, collate the results and return to the client.

The sending of messages to providers needs to happen in parallel as it could involve sending 10s of messages each taking up to a couple of seconds to reply.

If someone could give me advice on how best to achieve this it would be much appreciate.

Thanks
Oliver
Matt Milner

2004-07-09, 3:31 pm

It sounds like at a high level what you need is something like the
following, though I'm not sure if it will totally work or meet your needs:

Orchestration with a request response port to receive the requests from
client
A send port set to direct which sends out your request to the providers.
you'll need send ports or a send port group that are subscribed to this
message type and need to initialize a correlation on some property in the
message. This property will need to come back from all providers.
A looping receive that you setup to last for some duration or count of
received responses that continues to receive and aggregate the correlated
response messages into your client response.
Then send the response to the client.

The key issues here that I am uncertain about are 1) you have to figure out
how to know when you are done receiving responses since you won't know how
many providers you are waiting to responsd and 2) I'm not sure if the
solicit-response send ports will actually work outside of the orchestration
in this way with correlation. They are intended to work with a standard
request and response in the orchestration.

HTH,
Matt


"Oll" <Oll@discussions.microsoft.com> wrote in message
news:3797C58A-CA3A-409F-BA33-9BEB688FAA70@microsoft.com...
> Hi, I'm totally new to BTS and am struggling to get started.
>
> The Problem:
> Basically I'm trying to create a 'quote engine'. It receives a request

message from a client, sends out messages to several providers (needs to be
easy to add/remove when needed without interfering with current providers)
and, once all providers have responded, collate the results and return to
the client.
>
> The sending of messages to providers needs to happen in parallel as it

could involve sending 10s of messages each taking up to a couple of seconds
to reply.
>
> If someone could give me advice on how best to achieve this it would be

much appreciate.
>
> Thanks
> Oliver



Christof [MVP]

2004-07-09, 3:31 pm

Like Matt points out, your scenario will mainly depend on what kind of
providers you will be sending messages at. If they use request/response
(like SOAP/HTTP), you will not need any correlation. This is done
automagically for you by the engine. If your providers use protocols like
FTP, FILE or queuing, you need two ports: a send and a receive. You'll need
to correlate them using a corrset.

Best regards,
Christof

--
Christof [Microsoft BizTalk Server MVP]

"Matt Milner" <matt.milner@m3technologypartners dot com> wrote in message
news:eTylDVQZEHA.2544@TK2MSFTNGP10.phx.gbl...
> It sounds like at a high level what you need is something like the
> following, though I'm not sure if it will totally work or meet your needs:
>
> Orchestration with a request response port to receive the requests from
> client
> A send port set to direct which sends out your request to the providers.
> you'll need send ports or a send port group that are subscribed to this
> message type and need to initialize a correlation on some property in the
> message. This property will need to come back from all providers.
> A looping receive that you setup to last for some duration or count of
> received responses that continues to receive and aggregate the correlated
> response messages into your client response.
> Then send the response to the client.
>
> The key issues here that I am uncertain about are 1) you have to figure

out
> how to know when you are done receiving responses since you won't know how
> many providers you are waiting to responsd and 2) I'm not sure if the
> solicit-response send ports will actually work outside of the

orchestration
> in this way with correlation. They are intended to work with a standard
> request and response in the orchestration.
>
> HTH,
> Matt
>
>
> "Oll" <Oll@discussions.microsoft.com> wrote in message
> news:3797C58A-CA3A-409F-BA33-9BEB688FAA70@microsoft.com...
> message from a client, sends out messages to several providers (needs to

be
> easy to add/remove when needed without interfering with current providers)
> and, once all providers have responded, collate the results and return to
> the client.
> could involve sending 10s of messages each taking up to a couple of

seconds
> to reply.
> much appreciate.
>
>



Oll

2004-07-09, 3:31 pm

Thanks for your responses.

The providers are synchronous request/responses over http.

Is all of this possible from within an orchestration or will I need to set up the ports through BizTalk Explorer?

As Matt pointed out earlier, if I have provider send ports subscribed to the incoming request message, how will I be able to keep track of all those messages and the group them into one message to send back to the original client?

Kind Regards,
Oliver

"Christof [MVP]" wrote:

> Like Matt points out, your scenario will mainly depend on what kind of
> providers you will be sending messages at. If they use request/response
> (like SOAP/HTTP), you will not need any correlation. This is done
> automagically for you by the engine. If your providers use protocols like
> FTP, FILE or queuing, you need two ports: a send and a receive. You'll need
> to correlate them using a corrset.
>
> Best regards,
> Christof
>
> --
> Christof [Microsoft BizTalk Server MVP]
>
> "Matt Milner" <matt.milner@m3technologypartners dot com> wrote in message
> news:eTylDVQZEHA.2544@TK2MSFTNGP10.phx.gbl...
> out
> orchestration
> be
> seconds
>
>
>

Oll

2004-07-09, 3:31 pm

Does anyone know of any examples with a similar scenario?

Oliver

"Oll" wrote:

> Hi, I'm totally new to BTS and am struggling to get started.
>
> The Problem:
> Basically I'm trying to create a 'quote engine'. It receives a request message from a client, sends out messages to several providers (needs to be easy to add/remove when needed without interfering with current providers) and, once all providers have re

sponded, collate the results and return to the client.
>
> The sending of messages to providers needs to happen in parallel as it could involve sending 10s of messages each taking up to a couple of seconds to reply.
>
> If someone could give me advice on how best to achieve this it would be much appreciate.
>
> Thanks
> Oliver

Christof [MVP]

2004-07-11, 7:47 am

Oll,

do you use direct binding please?
In that case, your only option is to correlate them all back together...
(Since the answers get published on the MBox as well, the only way to
retreive them back is to have a subscription picking them up... which you
will need to correlate on.)

Best regards,
Christof
--
Christof [Microsoft BizTalk Server MVP]


"Oll" <Oll@discussions.microsoft.com> wrote in message
news:BC64CB85-C9D5-4DB7-8478-99D284E7AFCF@microsoft.com...
> Thanks for your responses.
>
> The providers are synchronous request/responses over http.
>
> Is all of this possible from within an orchestration or will I need to set

up the ports through BizTalk Explorer?
>
> As Matt pointed out earlier, if I have provider send ports subscribed to

the incoming request message, how will I be able to keep track of all those
messages and the group them into one message to send back to the original
client?[vbcol=seagreen]
>
> Kind Regards,
> Oliver
>
> "Christof [MVP]" wrote:
>
like[vbcol=seagreen]
need[vbcol=seagreen]
message[vbcol=seagreen]
needs:[vbcol=seagreen]
from[vbcol=seagreen]
providers.[vbcol=seagreen]
this[vbcol=seagreen]
the[vbcol=seagreen]
correlated[vbcol=seagreen]
figure[vbcol=seagreen]
how[vbcol=seagreen]
standard[vbcol=seagreen]
request[vbcol=seagreen]
to[vbcol=seagreen]
providers)[vbcol=seagreen]
to[vbcol=seagreen]
it[vbcol=seagreen]
be[vbcol=seagreen]


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com