|
Project Information
Members
Featured
Downloads
|
A cross platform Java implementation of WS-Discovery as described in the specification draft from 04/2005 (http://schemas.xmlsoap.org/ws/2005/04/discovery/). For compliance with the WS-Discovery standard 1.1, please use the latest beta (available in Downloads). NEW 04. nov. 2011: Beta of new release available in downloads. WS-Discovery is a Web Service discovery protocol that uses UDP multicast and SOAP/XML to discover new services. It is one of several technologies used in Microsofts WSDAPI and Windows Rally Technologies. The source code is released under LGPL. Code examples
About the modules
Adding matching algorithmsMatching algorithms are used in WS-Discovery when probing for new services. The sender of the probe specifies which matching algorithm should be used when the receiver is looking for matching services. If the matching algorithm is unsupported the receiver will simply discard the probe. The WS-Discovery specification defaults to the matching algorithm specified in RFC2396, which matches the elements in the URI one element at a time (http://a.b.c/Service/ will match http://a.b.c/Service/MyService, but http://a.b.c/Serv will not). New matching algorithms can be added to the implementation by writing new classes that implement the IMatchType interface and adding them to the com.ms.wsdiscovery.servicedirectory.MatchBy enumerator. Adding transport protocolsCurrently only SOAP-over-UDP and a variant of SOAP-over-UDP using gzip-compression is implemented. Other transport protocols can be added by creating a class that implements the ITransportType interface. The new class must be added to the com.ms.wsdiscovery.transport.TransportType enumerator. To activate the new transport protocol, change WsDiscoveryConstants.transportType. com.ms.wsdiscovery.network.transport.soapudp.zlib.SOAPOverUDPzlib is an example of how SOAP-over-UDP can be extended to support compression. It should be relatively easy to add other compression-methods, like Efx. When compression is enabled the implementation is not compatible with the WS-Discovery specification draft. Problems with IPv6 and multicastSun Java will by default use IPv6 multicast if the network interface has an IPv6 address. In a mixed network with IPv6 and IPv4 nodes, this leads to problems, as the IPv4-nodes will not be able to see WS-Discovery multicast messages sent by the IPv6-enabled nodes. This problem typically occurs when combining Linux or OS X clients (IPv6 enabled by default) with Windows clients (often IPv4-only). To force Java to only use IPv4 on all hosts, the system parameter java.net.preferIPv4Stack can be set to true. I.e.: java -Djava.net.preferIPv4Stack=true [class name] RequirementsAs of version 0.2, WS-Discovery must be built using Maven. This release has been tested on Maven 2.0.9, but earlier versions may work as well. The built-in Maven included in Netbeans 6.7 on Windows does not always work. We recommend that Netbeans-users configure their IDE to use an external Maven installation. The Web Services and the examples interacting with them, need a Java 1.6 environment to compile properly. More verbose logging in the WS-Discovery library can be enabled by adjusting com.ms.wsdiscovery.WsDiscoveryConstants.loggerLevel, e.g. by setting it to FINEST. Known limitations
ChangesIn 0.2.0:
In 0.1.1:
In 0.1:
|