none
CSF Services compliance with non-CSF services RRS feed

  • Question

  • Hi,

    I have a basic question: Can CSF accept and rout messages from Non-CSF webservices?

    Scenario:

    We have a lot of asmx web services, java web services. They communicate with each other and also communicate with some internet based third party services .

    If we are introducing CSF, do we need to convert all the exisiting services to CSF services? what can be done to communicate between a CSF participant and an exisiting 'non-CSF' service? How can we add a participant which is known to us just by its wsdl and url?

    I do not want to 'add reference'  or do design-time changes to any of the exisiting web services. Is it possible to 'Send Messages'  to non-CSF Services from a newly created CSF-Service?

    Thanks.


    Thursday, June 26, 2008 11:06 AM

All replies

  • Non CSF services can participate in CSF Session. http://search.live.com/results.aspx?q=CSF+Integrating+existing+services&form=QBLH can be a quick start. If the non csf service can return only synchronous response, InChannelResponse property needs to be set to true when creating participant for this non csf service.

     

    Thursday, June 26, 2008 10:15 PM
  • Thanks Manesh!

     

    I went through the link you gave. Successfully created a participant whose url pointed to asmx web service.

    The default routes created for webmethods are of the format :

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     CRITERIA : ACTION EQ "http://tempuri.org/HelloWorld"   DESTINATION : ServiceName[http://tempuri.org/HelloWorld]

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Now I am able to send message to a webmethod-HelloWorld whose return type was void ,  with SendAsync technique with InChannelResponse= false.

     

    Further,

    1. When I used the same trick with webmethod returning string, I was not able to collect the response as SendAsync returns just a URI.
    2. I was not able to use SendSync  to send message to any webmethods of the asmx service (with void or any other return types)
    3. If  InChannelResponse=true for a participant, & we use SendSync for a method.. it throws error -->

      • Message Dispatch Failure: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlnsTongue Tiedoap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><HelloWorldResponse xmlns="http://tempuri.org/"><HelloWorldResult>Hello World</HelloWorldResult></HelloWorldResponse></soap:Body></soap:Envelope>

    4. How to send message to an asmx webmethod which accepts multiple arguments?
    5. Can 2 asmx services use CSF to communicate to each other?
    Please help me on this. I am trying to grasp a request-response scenario using both sync/async methods..
    If you could also a give some sample code it will be great.


    Thanks,

    Ameya

    Tuesday, July 1, 2008 3:23 PM
  • 3. For routing messages through CSF Session, you can not use SendSync. Only SendAsync is supported for routing messages. So you need to use InChannelResponse=true for the participant and SendAsync to send routing request to Session. What this means that your end application will still communicate with Session in an asynchronous fashion. But session when communicating your asmx web service, will use a synchronous channel.

     

    4. Usually CSF Services support only one argument. I need to check on some samples to see if it can support multiple arguments.

     

    5. Yes. Two asmx can communicate using CSF Session. But this will be in an asynchronous fashion.

     

    Please note: There is no SendSync for Session component when you send routing requests.

     

    I will try to work on some samples and share it with you. But this could take a day or two.

    Tuesday, July 1, 2008 5:25 PM