Re: SOAP-over-UDP
Eric VERGNAUD <[email protected]> Tue, 31 May 2005 13:58:18 +0200
| Newsgroups | gmane.text.xml.soap.user |
|---|---|
| Message-ID | <[email protected]> |
It depends on what you mean by continuous. a 16 bytes packet every 5 seconds certainly won't. If you need a higher reactivity, you can do the following: - have the client broadcast a message on a port - have the server listen on that port - when the server receives a connection, have it broadcast as suggested in my previous email Le 31 mai 05 à 13:17, Francesco Munari a écrit : > But there isn't the risk of flooding the LAN with these continuous > broadcast messages? > > 2005/5/31, Eric VERGNAUD <[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 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >> >> >