Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Deployment on Windows client



On May 20, 2005, at 5:35 AM, Krzys wrote:

I need to deploy dnssd.NET.dll and dnssd.dll on users workstations (Windows 2K/XP), in order for my client app to autodetect the server on the network and connect to it (easy deployment)

The setup must be pretty simple (only drop the .exe and .dlls in a folder and launch the .exe). The problem i'm seeing is that is i don't redist the Bonjour setup (BonjourSetup.exe) or if the service is not running, i can't browser for services on the net... I'm guessing it is because the dnssd[.NET].dll don't really do the work for service discovery ?

The clients apps need only to do service discovery, they don't register services themselves. What must be deployed on the client workstations in order to do just that? Needing the Bonjour service installed and running on each workstations is a big no-no (it's fine on the server but would be rejected by uninformed IT staffs).

The dnssd.net.dll uses the dnssd.dll to communicate with the mDNSResponder.exe system service. You need to have the mDNSResponder running in order to do service discovery.


  

Is it possible to embed the service part of Bonjour in a dll and run it from within the app ?

Yes, this is possible but not recommended. You would need to download the mDNSResponder source code from Darwin and embed it in your application.



I would like to second Krzys' concerns here. In our case, having a system service be installed on client workstations would be near impossible to justify with our customers. In some cases, the client machines are running Terminal Server sessions, and the hoops we have to jump through to get anything installed is, well...

And yet, since clients desktops running our software need to find our server(s) (we have a multi-tiered solution), and we would prefer to do this with zero configuration, it would make total sense to be able to *fully* embed service discovery into the client application. I gather, but don't know for sure, that one of the benefits of using the service is that is quietly listens for all mDNS lookups on the network and gives immediate responses if you request something that it has already seen the answer too (a "non-chatty" optimization). But then again, if the embedded "service" is only started when the client application starts, then I suppose it is unlikely to be seeing any requests over the wire before it makes its own request, so linking the discovery code into the client would net out to be a chatty solution. Hmmm.

Nonetheless, when you say it is "possible but not recommended", are we looking at a whole lot of pain to make it happen because that was a configuration you had not considered? Or will it be rather straightforward? It looks like the dnssd DLL uses sockets to talk to the local service -- would there be major code hacking involved to short-circuit all this in a self-contained binary?

--
-- Tom Otvos

"Don't think you are. Know you are." - Morpheus
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Bonjour-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/bonjour-dev/email@hidden

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.