views:

35

answers:

1

Good morning guys

We are maintaining a C# Web application.

This application sends a XML message to BizTalk, but somehow the development team haven't produced yet a feedback message to tell our application something like:

<Response>
    <Request>1</Request>
    <Message>BizTalk has successfully processed your request.</Message>
    <Date>2010-10-20</Date>
</Response>

The question is, can BizTalk send to our C# web application a XML response?

Which approach can I use? Create a listener to wait the response, consume a webservice to know the response or another thing?

Thank you

+3  A: 

It depends a lot on what kind of processing you're doing and how you're communicating with BizTalk. There are at two big ways you could do this:

  1. A synchronous response: For example, if you're sending the XML message over HTTP or SOAP, you could ask the BizTalk devs to send you an HTTP/SOAP reply confirming receipt of the message. Notice that this wouldn't necessarily mean all processing is done (BizTalk allows you to send a response and continue processing later), just an acknowledge that the message was received.

  2. An asynchronous response: You could, for example, expose a web service from your web application and have BizTalk send a message to it when your request has finished processing. It would then be up to you to correlate the reply from BizTalk with your original request in your web application (this could be as simple as marking something in the DB as done, or whatever). (You could also do this over an MSMQ queue or some other asynch mechanism).

Either way, this is something you have to decide with the BizTalk dev team on what architecture you want to use for acknowledgements, and will require changes on both ends of the solutions.

tomasr
+1 absolutely - and would try and favour asynchronous if at all possible. @Junior just note that Biztalk will call your C# app - you can't / shouldn't "poll" BizTalk to see if your orchestration has completed.
nonnb