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 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> >