3-rd option is interesting. Just that there will be alot of opposition from people worrying about 1 ping an hour should some multicast group announcement and subscription messages appear on the network...
No, it would work the other way around! Someone sets up a service on amprnet where services can announce themselves to be in the global directory of services. Anyone running a service who would want to be in that directory sends regular announcements to the central server, and those who do not want traffic simply don't annouce themselves and won't have any unwanted traffic.
It can be really simple, any capable PHP or ASP programmer can write this in "one rainy sunday afternoon" as the saying is here. Of course to get it universally accepted is another matter.
Design would be like this:
Anyone who wants to announce their service makes a cron job that once per day posts a file to the central server (XML, JSON, whatever) using a simple call to wget or curl. The file contains the specification of the local services. It can be called manually whenever the file has been edited for quick update.
The central server receives the posts (simple HTTP POST) and parses the data, if valid it creates one or more database records with services and sets the time it (last) received this announcement.
The same central server provides an overview page (with search and/or selection options) that just dumps the contents of the database as a table. There is some expiration interval (a small multiple of the post interval, e.g. 3 days) after which records are deleted or no longer shown. This can also be a parameter in the selection.
Bottleneck: convince everyone who provides some service on amprnet to write the corresponding XML/JSON file and setting up the cron job. Providing a working script callable by cron (i.e. the wget call with the proper parameters) will help. An indication how to write a properly formatted file and/or a tool to do this will also help.
It can be made a part of www.ampr.org, for example. Then we can direct anyone there to lookup the service directory.
Rob