Re: Platform



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]