As you note, WSDL has miserable answers for these sorts of questions. Another way to approach the problem is through the use of UDDI. Put your endpoints in a UDDI directory and have the clients pick a random endpoint. Axis has a proprietary API for dynamically specifying the endpoint from the client. See org.apache.axis.client.Service.getPort(URL, Class). Hopefully JAX-RPC 1.1 will standardize something similar but all of this requires the client participate in the load balancing. HTTP load balancing seems to be the best way right now to get client-transparent load balancing. You might also want to look into XML firewalls - they might provide some load balancing functionality.
-----Original Message----- From: Shantanu Sen [mailto:[EMAIL PROTECTED] Sent: Thursday, August 14, 2003 1:43 PM To: axis-user Subject: load balancing question If I want to expose a web service in wsdl, I will need to publish a WSDL to all potential clients describing my service. This wsdl will also contain the service uri. Now if I want to run my service in a clustered environment for load balancing, how to I publish this service uri in the wsdl? Do I publish the url of the http load balancer that I will use? But what happens if I do not use an http load balancer and still deploy my service in a clustered environment? In this case do I publish multiple wsdls with different service uri (pointing to each cluster) for multiple sets of clients? Clearly, from the client's perspective, there should be a single service uri - the client does not care how the service is balancing it's load. How is this done in the real world? How does websphere/weblogic handle similar situation? What type of uri do they emit in the wsdl? Any pointers regarding this will be of great help. Thanks, Shantanu
