8/February/2004

GNOME

Nice article that outlines
some places where GNOME does a better job than Windows and Mac OS. This simply demonstrates
that we can do much better than others!

Networking

I had an interesting talk this morning over IRC with James Cape, of libgtcpsocket/libgnetwork
fame, about how to architect the libgnetwork API. The idea is to provide a very simple
API for all network services, similar to what there is in GNOME-VFS. That is, you would
be able to do stuff like:

      ftp_client = gnetwork_client_new (host, GNETWORK_PROTOCOL_FTP);
      http_client = gnetwork_client_new (host, GNETWORK_PROTOCOL_HTTP);
      

And then use the same set of functions (the one in gnetwork_client_)
for both the FTP and the HTTP clients.

After the talk, I started having a deep look to OpenSLP,
and even managed to install it in all the machines in my home network. I’ve got now several
services registered (SSH, HTTP, HTTPS, LDAP, etc), and can, via the OpenSLP’s command-line
tools, get the list of registered servers for each service:

      $ slptool findsrvs https
      service:https://192.168.0.2,65535

      $ slptool findsrvs http
      service:http://192.168.0.5,65535
      service:http://192.168.0.2,65535
      service:http://192.168.0.3,65535

      $ slptool findsrvs ssh
      service:ssh://192.168.0.5,65535
      service:ssh://192.168.0.2,65535
      service:ssh://192.168.0.3,65535

      $ slptool findsrvs ldap
      service:ldap://192.168.0.5,65535
      

Now we just need to start using the discovery mechanism in client applications, so that they
can let the user choose from a list of discovered servers instead of having to type
(and remember) host names (or, worst, IP addresses).

SLP seems to be much better suited for service discovery than Zeroconf, specially on large
networks (that’s what some network admins have told me), so it seems to be the way to go.
Some work on libgnetwork about this is going to take place soon, as soon as we decide how
to integrate all kind of service discoveries (Microsoft’s, SLP, Novell’s, etc) into a
single entry-point API. Once that is done, we’ll start sending patches for the GNOME applications
to start using the service discovery features.