April 16, 2004 | Although the line between "bio" and "IT" has become fuzzy, these two groups still have vastly different perspectives. IT seeks to provide a guaranteed level of service and cautious transition from the status quo. Scientists have no use for the status quo and require rapid change.

So why can't we have reliable IT services under conditions of rapid change? The answer is largely because our hardware and software have no inherent "awareness" of other devices and services on the network, and require considerable manual effort to configure and maintain. Zeroconf, an open protocol embraced and branded as "Rendezvous" by Apple Computer, promises to solve this problem.

Zeroconf is an Internet Engineering Task Force (IETF) working group chartered to enable the automatic configuration and discovery of computers, devices, and services on IP networks. It seeks to automate four fundamental tasks:

IP address assignment (without a DHCP server)

Multicast address allocation (without a MADCAP server)

Host name to IP address translation (without a DNS server)

Network service registration and discovery

All these tasks would be accomplished automatically, without user intervention and without IT support. Equally important to application developers, the open-source and cross-platform programming model permits consistent coding to LANs and WANs on Windows, Mac, and other Unix platforms. So what does that mean to me, you ask?

It means when you turn on your computer in the absence of a managed network and IT support, you automatically join the local network and can discover and use any network devices available to you.

More interesting cases involve the auto-discovery and use of network services and applications. Apple uses this method for the auto-discovery of commonly shared devices (computers, printers, faxes, and file servers), and for less commonly shared services such as the automatic clustering of many computers into a "single computer" for large BLAST jobs.

Here's how it works.

IP address assignment. Zeroconf enables computers (or any other network devices) to automatically assign themselves a unique "link-local" IP address within the reserved 169.254.1.0 to 169.254.254.255 range in the instance that routable addresses have not been provided through normal means.

Multicast address allocation. Zeroconf enables multicast-based applications to automatically allocate themselves a unique multicast address within the reserved range of 239.255.1.0 to 239.255.254.255, and manages their friendly persistence over time.

Name/address translation. When you browse www.bio-itworld.com, a hierarchical chain of DNS servers is consulted until one returns the DNS record pointing the fully qualified domain name "bio-itworld.com" to the IP address 64.28.79.92, which at some point had to be entered by an IT person into a root DNS server. Zeroconf uses Multicast DNS (mDNS) to do this and resolves names in the ".local." domain. Say you need to talk to "Bob." Unicast DNS is like asking your boss, who might ask his or her boss, and so on up to the CEO if necessary, until someone puts you in contact with Bob. Multicast DNS is like announcing over the public address system, "Could Bob meet me in the lobby, please?"

Service discovery. Zeroconf again uses mDNS broadcast system, but instead of looking for devices, it seeks capabilities. It's like announcing, "Anyone know how to ... ?" and waiting for a response. Zeroconf leverages the seldom-utilized SRV record within the DNS protocol to register/discover this information in the form service.protocol.domain. A client word-processing application would query the network for available LPR printers with "_lpr._tcp.local." and the printer would respond with its name, IP address, and perhaps its capabilities.

Apple's Xgrid software enables Zeroconf but runs only on the Mac. Therefore, as a prize for finishing this month's column, The BioTeam offers its Zeroconf-enabled Sun Grid-Engine at www.bioteam.net/zeroconf.

Bill Van Etten is a consultant for The BioTeam and can be reached at bill@bioteam.net.