Q:

Server/Service Discovery in Windows environment?

UDDI is for locating services on the Internet. Is there anything similar for locating services in a corporate or enterprise environment? For example I might want my program to be able to find a central reporting or policy server without configuration. Is this something I can do with Active Directory? Or do I need to do something else?

A:

The best approach is to use DNS; Microsoft uses it itself in Windows. For example, _ldap._tcp. will provide you with all the LDAP servers (i.e. all domain controllers) in the domain. If the service is guaranteed to be provided only on a single host, use A records. If the service is replicated, use SRV records, explicitly choice of service to clients (indeed, _ldap._tcp and _kerberos._tcp are stored as SRV records).
For selected kinds of services, there is also AD/LDAP support. For example, COM/RPC servers can be located in AD through the rpc-server and related AD classes; the API is RpcNS (RPC Naming Service)
Winsock has a "Registration and Resolution" (RnR) API, which uses the Service-Instance AD class.
Whether any of this is useful partially depends on whether you can establish a company policy for how services should be located. There are various technologies, many of them useful, and it's more important that there is a single choice (or few alternatives), than that the "best" technology gets used.

