On Mon, 2009-05-18 at 22:39 +0300, Stefan Kost wrote: > Now that apple has closed the whole bonjour stack, I would prefer to build on > upnp. We have gupnp, which is actively developed and fitting nicely here. I'm very curious as to what this "closing" of the bonjour stack is: even if they closed their Bonjour implementation the specifications are public (interestingly the Internet Draft expired yesterday): http://files.dns-sd.org/draft-cheshire-dnsext-nbp.txt Whilst I'm a maintainer of GUPnP and think it's the best solution we have for interoperating with other UPnP devices (of which they are many in the wild), I really do think it's an ugly specification which hasn't had any recent development. I also notice that Windows Vista includes something I've forgotten the name of which they basically call the successor to UPnP... The two technologies are pretty different. mDNS gives you name resolution and by extension (via cunning use of DNS) service lookups, i.e. "what printers are here". At this point it stops caring and you use application-specific protocols: XMPP for link-local chat, IPP/HTTP for printing, and so on. Generally mDNS is used to announce an existing service, such as the location of an existing IPP print queue, or SSH server, or HTTP server. Because mDNS doesn't care what you do after discovery, security is not it's problem. UPnP doesn't do name resolution, but does do service discovery. Introspection of services and invocation of remote method calls is also part of UPnP, invocation is done via everyone's favorite RPC protocol, SOAP. The UPnP specifications cover a large number of services (internet gateway devices, media servers, scanners, printers, security cameras, lighting and so on) but I've only ever seen IGDs and media servers in the wild. Security is non-existent, any process (including Flash in a web page) can make UPnP calls and (say) open ports on your router. Personally speaking, if you want to do basic service announcement/discovery and you already have a good protocol which works (say HTTP or XMPP) then I'd recommend starting with mDNS. If you want to interoperate with existing devices (such as routers and media servers) then using UPnP is the only solution, because I don't know of a mDNS equivalent for the IGD magic and Apple are working very hard at stopping you from using DAAP/DPAP on a Mac. This mail turned out to be a bit longer and rambling than I was hoping, but the executive summary is this: at present, both are required, depending on the situation. Ross -- Ross Burton mail: ross burtonini com jabber: ross burtonini com www: http://burtonini.com
Attachment:
signature.asc
Description: This is a digitally signed message part