Skip to content

WS-Discovery enabled runtime, parties and endpoints

Neuron ESB 3.5 now supports Web Services Dynamic Discovery (WS-Discovery) for its own Discovery service, Neuron ESB runtime instances, Client Connectors (Neuron ESB hosted services) and remotely hosted Neuron ESB Parties (i.e. client API). WS-Discovery is a powerful management standard and technical specification that defines a multicast discovery protocol to locate services on a local network. It operates over TCP and UDP port 3702 and uses IP multicast address 239.255.255.250. As the name suggests, the actual communication between nodes is done using web services standards, notably SOAP-over-UDP.

By default, the WS-Discovery protocol is enabled for the Discovery service, Neuron ESB runtime instances, Client Connectors (Neuron ESB hosted services), whereas remotely hosted Neuron ESB Parties must be specifically enabled through an app.config setting (see tables below).

Neuron ESB Discovery API – App.config

KeyValueDescription
WSDiscoveryManagedPort9021Represents the TCP port used for Managed probe requests using the Neuron ESB Discovery API
WSDiscoveryEnabledtrue/false (default true)Determines if a job will run to clean up stale endpoint registrations
WSDiscoveryApplicationScopedefaultDefines scope of all queries.

Client API – App.config (affects remotely hosted Neuron ESB Parties)

KeyValueDescription
WSDiscoveryRemoteEndpointtrue/false (default false)Determines whether the remote party can accept and respond to probe requests. Must be true if WSDiscoveryEnabled is set to true
WSDiscoveryEnabledtrue/false (default true)Determines whether or not the remotely hosted API will broadcast WS-Discovery “hello”/”goodbye” messages
WSDiscoveryApplicationScopedefaultDefines scope of all queries.
WSDiscoveryAnnouncementInterval00:02:00Only effective if WSDiscoveryEnabled = true. Determines broadcast interval

Client API – App.config (affects remotely hosted Neuron ESB Parties)

KeyValueDescription
WSDiscoveryBroadcasttrue/false (default true)Determines whether or not the remotely hosted API will broadcast WS-Discovery “hello”/”goodbye” messages
WSDiscoveryEnabledtrue/false (default true)Determines whether the services can accept and respond to probe requests.
WSDiscoveryApplicationScopedefaultDefines scope of all queries.
WSDiscoveryAnnouncementInterval00:00:10Only effective if WSDiscoveryEnabled = true. Determines broadcast interval

Neuron ESB Discovery Service – DiscoveryService.exe.config

KeyValueDescription
WSDiscoveryManagedPort9021Represents the TCP port used for Managed probe requests using the Neuron ESB Discovery API
WSDiscoveryEnabledtrue/false (default true)Determines whether the discovery service will broadcasts and receive unicast probe requests
WSDiscoveryApplicationScopedefaultDefines scope of all queries.
WSDiscoveryAnnouncementInterval00:00:10Only effective if WSDiscoveryEnabled = true. Determines broadcast interval
WSDiscoveryManagedIpAddress“”Allows user to provide an IP address that will be broadcast to discovery clients to be used as unicast address for probes. A way to override the default use of netbios names.
WSDiscoveryManagedUseHostNametrue/false (default false)Determines whether the DNS host name or local host name will be used as the address for WS-Discovery proxy. Default is local host name.

Neuron ESB implements Ad Hoc and Managed Mode WS-Discovery and provides an API that allows users to query (probe) for endpoint information as well as monitor WS-Discovery broadcast events. Managed mode probe requests are sent locally to the Neuron ESB Discovery Service which also serves as a WS-Discovery proxy for Neuron ESB enabled services and endpoints. Managed mode requests are made over TCP port 9021 by default. This port can be changed by modifying the “WSDiscoveryManagedPort” setting in both the application (that is using the Neuron ESB Discovery API) app.config file as well as the Neuron ESB Discovery Service app.config (i.e. DiscoveryService.exe.config).

WS-Discovery broadcasts and probe results have additional metadata associated with them, specific to the endpoint. This metadata is exposed as typed information and can be retrieved using the Neuron ESB Discovery API. The Neuron ESB Discovery API namespace is Neuron.Esb.Discovery and is represented by the DiscoveryClient class. The Neuron ESB Discovery API sample below demonstrates several ways to interact with Neuron ESB services using the WS-Discovery protocol. This same API is built into the Neuron ESB Test Client and the Neuron ESB Explorer, allowing users to auto discover Neuron ESB runtime instances on the network in which to connect to.

Code_1.png
Code_2.png
Code_3.png
Was this article helpful?
Dislike 0
Previous: REST and WMI enabled Endpoint Health Monitoring
Next: Composition using Adapter and Service Endpoints