Re: SOAP-over-UDP

Eric VERGNAUD <[email protected]> Tue, 31 May 2005 12:04:48 +0200
Newsgroups gmane.text.xml.soap.user
Message-ID <[email protected]>
Have your server regularly broadcast its address on a port.
Have your client act as a server on startup and listen on the same port.
When the real server broadcasts its address, the client will receive  
a connection request.
One you have the server address, ask the server for the information  
you need (what you call the context).

Le 31 mai 05 à 11:41, Francesco Munari a écrit :

> Hi, Eric.
>
> Ok, but how can I do this? I think I'm a newbie in this kind of
> operation, sorry. How can I look to a port of servers in a LAN without
> knowing their IP? And in this way may I keep the context-awareness of
> the communication?
>
> thank you for you reply
>
> Cheers
>
> francesco
>
> 2005/5/31, Eric VERGNAUD <[email protected]>:
>
>> I'm afraid that is a very verbose way of doing things. The typical
>> way to do this is determine a port, have your server broadcast its IP
>> address on that port, and your clients look on that port to grab the
>> address.
>>
>> Once the address is found, you can safely interact with the server
>> using SOAP over HTTP.
>>
>> Le 30 mai 05 à 22:19, Francesco Munari a écrit :
>>
>>
>>> I'm alredy using UDDI4j. The idea is that I don't know where the  
>>> UDDI
>>> registry can be in the LAN.
>>> I assume that the client knows only two things:
>>> 1) the network (of course)
>>> 2) a "search key" for a particular tipe of service
>>>
>>> and that's all.
>>> The client should send a broadcast SOAP (or XML-RPC) request
>>> containing the search method to call on the server with the "key"
>>> passed as a parameter and somewhere into the LAN should be a server
>>> (or more) with its private UDDI registry that should reply with a
>>> response containing the result of the invoking of the method  
>>> contained
>>> in the sender's RPC request. The response should contain just the  
>>> URL
>>> of the WSDL file related to the service found.
>>>
>>> The need of the broadcast message is that the client don't know  
>>> where
>>> (or if) there could be any UDDI registry in the network. With this
>>> framework a client can change network configuration (for example,
>>> going from a floor to another with a Palm in a wireless LAN) and,
>>> after leaving the service provided in the first network, find anothe
>>> one similar on the other network only by pressing the button  
>>> "Refresh"
>>> :)
>>>
>>> Francesco
>>>
>>> 2005/5/30, Martin Gainty <[email protected]>:
>>>
>>>
>>>> The side effect of a broadcast without authentication is  
>>>> flooding the
>>>> network with unwanted disovery packets
>>>> I guess this is OK if you're utilising a high datarate
>>>> transmission i guess
>>>>
>>>> In your case your SOAP Request should look like
>>>>
>>>> <?xml version="1.0"?>
>>>> <SOAP-ENV:Envelope
>>>> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" >
>>>>  <SOAP-ENV:Body>
>>>>    <getTest>
>>>>      <Test>Test</Test>
>>>>    </getTest>
>>>>  </SOAP-ENV:Body>
>>>> </SOAP-ENV:Envelope>
>>>>
>>>> If you want to discover a "SOAP based" web-service based on some
>>>> characteristic such as Business Service Category why not use  
>>>> UDDI4J?
>>>> Take a look at
>>>> http://sourceforge.net/projects/uddi4j
>>>>
>>>> Martin-
>>>>
>>>> ----- Original Message -----
>>>> From: "Francesco Munari" <[email protected]>
>>>> To: "Martin Gainty" <[email protected]>
>>>> Cc: <[email protected]>
>>>> Sent: Monday, May 30, 2005 12:44 PM
>>>> Subject: Re: SOAP-over-UDP
>>>>
>>>> Martins,
>>>>
>>>> It is for this reason that I'd like to broadcast a SOAP request
>>>> instead of a simple XML-RPC message. The goal of my framework is to
>>>> keep the "context awareness" offered by XML language.
>>>> If you are sure that there is no way to send a broadcast SOAP
>>>> request,
>>>> the last solution, I think, it could be XML-RPC.
>>>>
>>>> So, two questions:
>>>>
>>>> 1) are you sure ther's no way to send a broadcast SOAP request?
>>>> 2) In order to send a broadcast XML-RPC message I've to cerate a
>>>> StringWriter like this (for example)?
>>>>
>>>> <?xml version="1.0" ?>
>>>>   <methodCall>
>>>>       <methodName>getTest</methodName>
>>>>       <params>
>>>>           <param>
>>>>               <value>
>>>>                  <string>Test</string>
>>>>               </value>
>>>>           </param>
>>>>       </params>
>>>> </methodCall>
>>>>
>>>> Thank's Martin.
>>>>
>>>> Francesco
>>>>
>>>> 2005/5/30, Martin Gainty <[email protected]>:
>>>>
>>>>
>>>>> Francesco-
>>>>> You can Broadcast XML-RPC assuming you dont mind flooding your
>>>>> network
>>>>> The question is can you confine your application to using the
>>>>> more basic
>>>>> datatypes supported by XML-RPC
>>>>> vs implementing SOAP features (user-defined datatypes, namespace
>>>>> URI)?
>>>>> Anyone else?
>>>>> Martin-
>>>>> ----- Original Message -----
>>>>> From: "Francesco Munari" <[email protected]>
>>>>> To: "Martin Gainty" <[email protected]>
>>>>> Cc: <[email protected]>
>>>>> Sent: Monday, May 30, 2005 6:45 AM
>>>>> Subject: Re: SOAP-over-UDP
>>>>>
>>>>> Grazie! :)
>>>>>
>>>>> Could someone tell me if a simple XML-RPC message may be sent to a
>>>>> broadcast address? A simple message with the medthod to be
>>>>> invoked. In
>>>>> this way I should be able to send a broadcast XML-RPC request
>>>>> with the
>>>>> appropriate UDDI inquiry method; a server (containing a UDDI
>>>>> registry)
>>>>> should receive it, invoke that method and send a reply in XML  
>>>>> format
>>>>> to the sender.
>>>>>
>>>>> It could be a good idea?
>>>>>
>>>>> thank you again!
>>>>>
>>>>> Francesco
>>>>>
>>>>> 2005/5/29, Martin Gainty <[email protected]>:
>>>>>
>>>>>
>>>>>> benvenuto!
>>>>>> Martin-
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> From: "Francesco Munari" <[email protected]>
>>>>>> To: <[email protected]>
>>>>>> Sent: Saturday, May 28, 2005 5:41 PM
>>>>>> Subject: Re: SOAP-over-UDP
>>>>>>
>>>>>> Thank you all for your very quick reply!
>>>>>>
>>>>>> I've heard about this SOAP-over-UDP spec
>>>>>> (http://msdn.microsoft.com/library/default.asp?url=/library/en-
>>>>>> us/dnglobspec/html/soap-over-udp.asp).
>>>>>> So, Martin, you say that it could not be a solution? Perhaps it
>>>>>> should
>>>>>> be an idea using Mark's solution (with DNS).
>>>>>>
>>>>>> I thought to resolve the problem putting a SOAP envelope into  
>>>>>> a UDP
>>>>>> datagram, send the datagram to a broadcast ip and that's all
>>>>>> folks...but I don't know how and, as you, Martins, wrote, I  
>>>>>> was not
>>>>>> able to find anybody who has implemented this yet.
>>>>>>
>>>>>> Can you suggest me another solutions?
>>>>>>
>>>>>> Thank you very much again!!
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Francesco
>>>>>>
>>>>>> 2005/5/28, Martin Gainty <[email protected]>:
>>>>>>
>>>>>>
>>>>>>> Mark/Francesco
>>>>>>> I would caution on use of UDP as the SOAP Portocols (e.g. HTTP)
>>>>>>> is/are
>>>>>>> decidely not UDP but instead a connection-oriented TCP
>>>>>>> To date I have not seen UDP Ports used for SOAP transmission
>>>>>>> although
>>>>>>> since
>>>>>>> there is no requirement for verifiable connection and or
>>>>>>> handshakes
>>>>>>> I would venture to guess UDP is available as the transmission
>>>>>>> medium
>>>>>>> but
>>>>>>> I
>>>>>>> have not seen any UDP Ports used for SOAP thus far
>>>>>>> Anyone else ???
>>>>>>> Ciao-
>>>>>>> Martin-
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> From: "mdonaghue" <[email protected]>
>>>>>>> To: <[email protected]>; "'Francesco Munari'"
>>>>>>> <[email protected]>
>>>>>>> Sent: Saturday, May 28, 2005 3:14 PM
>>>>>>> Subject: RE: SOAP-over-UDP
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Hi Franceso,
>>>>>>>>
>>>>>>>> I've worked briefly with the apache soap api, not that
>>>>>>>> familiar with
>>>>>>>> it.
>>>>>>>> Typically a soap message is sent to a single soap server  
>>>>>>>> address,
>>>>>>>> which
>>>>>>>> is
>>>>>>>> specified by a url or an ip address, as well as a port. So your
>>>>>>>> server
>>>>>>>> address on the LAN might be something like 192.168.100.2:8080.
>>>>>>>> (I'm
>>>>>>>> not
>>>>>>>> sure
>>>>>>>> what the port is for UDDI, so just using standard TomCat Web
>>>>>>>> Server
>>>>>>>> port).
>>>>>>>>
>>>>>>>> IIRC, you there's a point at which you specify that address in
>>>>>>>> the
>>>>>>>> setup
>>>>>>>> for
>>>>>>>> your soap call. One thing you could try is to change the
>>>>>>>> address to
>>>>>>>> the
>>>>>>>> subnet's broadcast address, 255.255.255.0:8080, assuming a
>>>>>>>> class c
>>>>>>>> network
>>>>>>>> where the first 3 quads specify the network portion of the
>>>>>>>> submask.
>>>>>>>>
>>>>>>>> However, this may not a scalable solution, since the broadcast
>>>>>>>> wouldn't
>>>>>>>> carry beyond the physical subnet on which you are located.  
>>>>>>>> Using
>>>>>>>> UDDI
>>>>>>>> to
>>>>>>>> discover services is one thing, but dynamically discovering  
>>>>>>>> UDDI
>>>>>>>> servers
>>>>>>>> is
>>>>>>>> obviously a different problem. It also doesn't address the
>>>>>>>> issue of
>>>>>>>> more
>>>>>>>> than one UDDI server running on the same subnet.
>>>>>>>>
>>>>>>>> A more generalized solution might involve a distributed ip  
>>>>>>>> lookup
>>>>>>>> service,
>>>>>>>> namely DNS. For example when DNS looks up the ip address of
>>>>>>>> Yahoo.com,
>>>>>>>> at
>>>>>>>> some point the actual ip address that serves the request is
>>>>>>>> dynamically
>>>>>>>> assigned to one of dozens (or hundreds) of servers based on a
>>>>>>>> scheduling
>>>>>>>> scheme.  You could locally enable DNS lookup, and create an  
>>>>>>>> entry
>>>>>>>> based
>>>>>>>> on
>>>>>>>> some url like "myuddpsever.com", and give it your local UDDI
>>>>>>>> server's
>>>>>>>> ip
>>>>>>>> address, and the rest would be handled within the network. The
>>>>>>>> advantage
>>>>>>>> to
>>>>>>>> this is your UDDP server could be anywhere and your message  
>>>>>>>> would
>>>>>>>> still
>>>>>>>> reach it.
>>>>>>>>
>>>>>>>> hth,
>>>>>>>> Mark
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> -----Original Message-----
>>>>>>>> From: Francesco Munari [mailto:[email protected]]
>>>>>>>> Sent: Saturday, May 28, 2005 4:58 AM
>>>>>>>> To: [email protected]
>>>>>>>> Subject: SOAP-over-UDP
>>>>>>>>
>>>>>>>> Hi, I'm desperate!
>>>>>>>> I'm trying to find out how to send a broadcast SOAP request  
>>>>>>>> to a
>>>>>>>> UDDI
>>>>>>>> registry in a LAN, but I'm not able to do this. I've looked
>>>>>>>> for some
>>>>>>>> example but I've not found anithing.
>>>>>>>>
>>>>>>>> Please...could anybody help me?
>>>>>>>> I'm making a thesis for the University of Florence (Italy)  
>>>>>>>> and I
>>>>>>>> have
>>>>>>>> to discovery dinamically web service published in some UDDI
>>>>>>>> registry
>>>>>>>> somewhere in a LAN. I have to send a broadcast SOAP request to
>>>>>>>> these
>>>>>>>> UDDI registry (as I wrote few lines above).
>>>>>>>> Of course I'm using Java language.
>>>>>>>>
>>>>>>>> Thank you very much for your help...I'm in a great  
>>>>>>>> hurry...thanks
>>>>>>>> very
>>>>>>>> very much to everyone could help me!
>>>>>>>>
>>>>>>>> Best reguards,
>>>>>>>>
>>>>>>>> Francesco
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>