TweetFollow Us on Twitter

Network Services Location Tech

Volume Number: 14 (1998)
Issue Number: 7
Column Tag: Emerging Technologies

Network Services Location Technology

by by the Apple Network Services Location Project Team
Edited by Peter N Lewis

How the NSL Technology Can Benefit Your Application


When Apple introduced the Chooser and AppleTalk, they allowed users unprecedented ease-of-use in browsing for network services such as printers and file servers. With the introduction of the Network Services Location (NSL) Technology, Apple is bringing that same ease-of-use to the Internet. With NSL users have the ability to browse through Internet services such as FTP and HTTP via TCP/IP in the same way they have traditionally browsed for AppleTalk services using the Chooser. By adopting this technology, applications can provide a more intuitive and convenient method for users to access network services.

The NSL Technology is composed of a Manager and a set of plug-ins that gather data via particular network protocols (such as DNS). The NSL Manager provides a single API across any number of resource discovery protocols, and by developing additional plug-ins, new methods for resource discovery can be added with no additional work on the part of the application developer. In this article we will present the NSL technology and show you, the developer, how to incorporate it into your next project.

What is NSL?

The Network Services Location Manager provides a protocol-independent way for applications to discover available network services with minimal network traffic. The NSL Manager provides:

  • AppleTalk-like ease-of-use for the dynamic discovery of traditional and non-traditional network services.
  • Support for accepted and proposed industry standards, including Domain Name Service (DNS) and Service Location Protocol (SLP). SLP is an emerging standard (see RFC 2165) for registering and finding Internet services dynamically.
  • A flexible, expandable architecture that can be easily leveraged by client and server applications.

A variety of applications can benefit from NSL technology. Calls to the NSL Manager can make these applications more intuitive and easier to use. For example:

  • Instead of requiring the user to type a URL to locate a web server, a browser application that calls the NSL Manager could have an "Open Location" command that polls a network for HTTP servers and returns a list of URLs in the browser window from which a particular URL can be selected.
  • Collaboration software, such as a video conferencing server could register itself as an available service on the corporate Intranet. The users of client video conferencing software could then search the Intranet for available conferences and join a particular conference without having to remember a cryptic URL or IP address.

Using NSL

The NSL Manager acts as an intermediary between the providers of network services and applications that want information about those services. Service applications register themselves with the NSL Manager and which then acts through NSL plug-ins to perform the actual searches. The NSL Manager can pass requests from applications to any plug-in that implements the NSL Manager API.

An NSL plug-in is an extension that makes itself available to the NSL Manager when the NSL Manager is initialized, but resides in memory only when it is responding to an application's lookup request. The Extensions Manager can be used to enable and disable individual NSL plug-ins. When the NSL Manager is initialized, each NSL plug-in provides the following information to the NSL Manager:

  • The types of services the plug-in can search for, such as HTTP and FTP.
  • The protocol the plug-in uses to conduct searches, such as DNS.

The NSL Manager will be available on all PowerPC-based computers that run the Mac OS release code-named Allegro or later. The first release will be accompanied by two NSL plug-ins: DNS and SLP. Additional NSL plug-ins may also become available from Apple Computer or third-party developers.

Figure 1 illustrates the relationship between applications, the NSL Manager, and NSL plug-ins.

Figure 1. The relationship between the NSL Manager, NSL plug-ins, and Applications.

To search for network services, an application opens a session with the NSL Manager using NSLOpenNavigationAPI:

	status = NSLOpenNavigationAPI( &gOurClientRef );

Then it must prepare three data values that are used as parameters to the NSLStartServicesLookup function:

  • A request parameter block that describes the services you want to look for.
  • A lookup request that describes how you want results to be returned to you.
  • A neighborhood that describes the virtual "geographic" scope of the search.

Creating the Request Parameter Block

To create a request parameter block, your application first makes a service list that specifies the services to be searched for using NSLMakeNewServicesList and then pass the service list and any attributes to NSLMakeRequestPB. For example, to search for HTTP and FTP services, you would do something like this:

serviceList = NSLMakeNewServicesList( "http,ftp" );
iErr.theErr = NSLMakeRequestPB( serviceList, "",&newDataPtr);

In the call to NSLMakeRequestPB, your application can use the attribute parameter to specify a string that is to be used to narrow the scope of the search. For example, if the attribute parameter is "Web Sharing," the search results will include only those Personal Web Sharing HTTP services that have registered with "Web Sharing" as an attribute.

Creating the Lookup Request

To create a synchronous lookup request, your application calls NSLPrepareRequest like this:

iErr = NSLPrepareRequest( NULL, NULL, gOurClientRef, &ourRequestRef, buffer, bufLen, &ourAsyncInfo );

To create an asynchronous lookup request, your application calls NSLPrepareRequest like this:

iErr = NSLPrepareRequest( notifierPtr, NULL, gOurClientRef, &ourRequestRef,buffer, bufLen, &ourAsyncInfo );

When you call NSLPrepareRequest, you can specify NULL as the value for the notifier parameter (the first parameter in the first call above), if you want to wait for search results to be returned (synchronous mode). If instead, you want the NSL Manager to call your notification routine when search results are ready to be returned (asynchronous mode), specify a pointer to your notification routine. In the second call above notifierPtr is a procedure pointer to the client's asynchronous notifier.

The other parameters to the NSLPrepareRequest function are:

  • contextPtr, which you can use to specify contextual information about this lookup.
  • theClient, which is a value that your application received when it opened a with the NSL Manager.
  • ref, which on output is a pointer to the search request that NSLPrepareRequest will create.
  • bufPtr, which is a pointer to the buffer in which search results are to be placed.
  • bufLen, which is the length of bufPtr.
  • infoPtr, which is a structure that contains values, such as a maximum search time and the interval at which NSL Manager is to return search results, that control how the search will be conducted. Your application can change the default values before it starts the search.

Creating the Neighborhood

To define the virtual "geographic" boundary of the search, your application calls NSLMakeNewNeighborhood. You can explicitly specify which a neighborhood, for example In the following example, the application creates a neighborhood whose boundary is

neighborhood = NSLMakeNewNeighborhood("", NULL );

Or, you can use the default neighborhood:

neighborhood = NSLMakeNewNeighborhood( "", NULL );

Starting the Lookup

Once your application has created the request parameter block, the lookup request, and the neighborhood, it calls NSLStartServicesLookup to start the search:

iErr = NSLStartServicesLookup( ourRequestRef, neighborhood, newDataPtr, ourAsyncInfo );

The parameters to the NSLStartServices function are:

  • ref, which is the search request created when your application called NSLPrepareRequest.
  • neighborhood, which is the neighborhood value created earlier by calling NSLMakeNewNeighborhood.
  • requestData, which is the request parameter block created by calling NSLMakeRequestPB.
  • asyncInfo, which is the structure that contains values that control the way the NSL Manager returns search results, obtained by previously calling NSLPrepareRequest.

Continuing the Lookup

If the NSLStartServicesLookup was called synchronously, NSLStartServicesLookup returns after having placed the first lookup results in the results buffer field of asyncInfo. If NSLStartServicesLookup was called asynchronously, the NSL Manager places the first lookup results in the results buffer and calls your application's notification routine. Your application copies the results and calls NSLContinueLookup, which continues the lookup and returns more lookup results in the results buffer. Your application continues to call NSLContinueLookup until all of the results have been returned.


This article has provided a brief overview of NSL. For more detailed information on the NSL technology, API and sample User Interface recommendations, please refer to the Network Services Location Manager Developer's Kit Documentation located in the July issue of the Mac OS SDK CD distributed by Apple Computer, Inc.

The authors of this article are members of the Network Services Location Project Team at Apple Computer, Inc.


Community Search:
MacTech Search:

Software Updates via MacUpdate

Spotify - Stream music, creat...
Spotify is a streaming music service that gives you on-demand access to millions of songs. Whether you like driving rock, silky R&B, or grandiose classical music, Spotify's massive catalogue puts... Read more
Google Chrome 54.0.2840.71 - Modern and...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more
HoudahSpot 4.2.6 - Advanced file-search...
HoudahSpot is a powerful file search tool. Use HoudahSpot to locate hard-to-find files and keep frequently used files within reach. HoudahSpot will immediately feel familiar. It works just the way... Read more
Yummy FTP Pro 1.11.11 - $29.99
Yummy FTP Pro is an advanced Mac file transfer app which provides a full-featured professional toolkit combined with blazing speeds and impeccable reliability, so whether you want to transfer a few... Read more
Shimo - VPN client – for everyon...
Shimo is the most versatile VPN client for OS X and it enables really everybody to master secure network. It supports more protocols than any other VPN application out there! CiscoVPN, AnyConnect,... Read more
Dash 3.4.0 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
AirRadar 3.1.9 - $9.95
With AirRadar, scanning for wireless networks is now easier and more personalized! It allows you to scan for open networks and tag them as favourites or filter them out. View detailed network... Read more
Printopia 2.1.22 - Share Mac printers wi...
Run Printopia on your Mac to share its printers to any capable iPhone, iPad or iPod Touch. Printopia will also add virtual printers, allowing you to save print-outs to your Mac and send to apps.... Read more
SteerMouse 5.0 - Powerful third-party mo...
SteerMouse is an advanced driver for USB and Bluetooth mice. It also supports Apple Mighty Mouse very well. SteerMouse can assign various functions to buttons that Apple's software does not allow,... Read more
Alarm Clock Pro 10.2.5 - $19.95
Alarm Clock Pro isn't just an ordinary alarm clock. Use it to wake you up in the morning, send and compose e-mails, remind you of appointments, randomize the iTunes selection, control an internet... Read more

Latest Forum Discussions

See All

Game of Dice is now available on Faceboo...
After celebrating its anniversary in style with a brand new update, there’s even more excitement in store for Game of Dice has after just being launched on Facebook Gameroom. A relatively new platform, Facebook Gameroom has been designed for PC... | Read more »
4 addictive clicker games like Best Fien...
Clickers are passive games that take advantage of basic human psychology to suck you in, and they're totally unashamed of that. As long as you're aware that this game has been created to take hold of your brain and leave you perfectly content to... | Read more »
Smile Inc. Guide: How not to die on the...
As if Mondays weren't bad enough, at Smile Inc. you have to deal with giant killer donuts, massive hungry staplers, and blasting zones. It's not exactly a happy, thriving work environment. In fact, you'll be lucky to survive the nine to five.... | Read more »
Oh...Sir! The Insult Simulator (Games)
Oh...Sir! The Insult Simulator 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: | Read more »
WitchSpring2 (Games)
WitchSpring2 1.27 Device: iOS Universal Category: Games Price: $3.99, Version: 1.27 (iTunes) Description: This is the story of Luna, the Moonlight Witch as she sets out into the world. This is a sequel to Witch Spring. Witch Spring 2... | Read more »
4 popular apps getting a Halloween makeo...
'Tis the season for all things spooky. So much, so, in fact, that even apps are getting into the spirt of things, dressing up in costume and spreading jack o' lanterns all about the place. These updates bring frightening new character skins, scary... | Read more »
Pokémon GO celebrates Halloween with can...
The folks behind Pokémon GO have some exciting things planned for their Halloween celebration, the first in-game event since it launched back in July. Starting October 26 and ending on November 1, trainers will be running into large numbers of... | Read more »
Best Fiends Forever Guide: How to collec...
The fiendship in Seriously's hit Best Fiends has been upgraded this time around in Best Fiends Forever. It’s a fast-paced clicker with lots of color and style--kind of reminiscent of a ‘90s animal mascot game like Crash Bandicoot. The game... | Read more »
5 apps for the budding mixologist
Creating your own cocktails is something of an art form, requiring a knack for unique tastes and devising interesting combinations. It's easy to get started right in your own kitchen, though, even if you're a complete beginner. Try using one of... | Read more »
5 mobile strategy games to try when you...
Strategy enthusiasts everywhere are celebrating the release of Civilization VI this week, and so far everyone seems pretty satisfied with the first full release in the series since 2010. The series has always been about ultra-addictive gameplay... | Read more »

Price Scanner via

Macs’ Superior Enterprise Deployment Cost Eco...
IBM’s debunking of conventional wisdom and popular mythology about the relative cost of using Apple Mac computers as opposed to PCs running Microsoft Windows at the sixth annual Jamf Nation User... Read more
12-inch WiFi Apple iPad Pros on sale for $50-...
B&H Photo has 12″ WiFi Apple iPad Pros on sale for $50-$70 off MSRP, each including free shipping. B&H charges sales tax in NY only: - 12″ Space Gray 32GB WiFi iPad Pro: $749 $50 off MSRP -... Read more
Apple refurbished 12-inch 128GB iPad Pros ava...
Apple has Certified Refurbished 12″ Apple iPad Pros available for up to $160 off the cost of new iPads. An Apple one-year warranty is included with each model, and shipping is free: - 32GB 12″ iPad... Read more
Apple refurbished iPad minis and iPad Air 2s...
Apple recently dropped prices on several Certified Refurbished iPad mini 4s and 2s as well as iPad Air 2s. An Apple one-year warranty is included with each model, and shipping is free: - 16GB iPad... Read more
MacHTTP-js Preview Full-featured Web Server f...
MacHTTP.Org has released MacHTTP-js Preview for macOS, a full-featured Web server for 21st Century desktops and servers. MacHTTP-js is a modern take on the classic stand-alone, desktop computer Web... Read more
Samsung Galaxy Tab A 10.1 with S Pen Makes US...
Samsung Electronics America, Inc. has announced the release of the Galaxy Tab A 10.1 with S Pen in a highly mobile, lightweight tablet. “With an embedded S Pen, consumers can discover more ways to... Read more
13-inch 2.5GHz MacBook Pro (Apple refurbished...
Apple has Certified Refurbished 13″ 2.5GHz MacBook Pros available for $829, or $270 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free: - 13″ 2.5GHz MacBook Pros... Read more
27-inch iMacs on sale for up to $220 off MSRP
B&H Photo has 27″ Apple iMacs on sale for up to $200 off MSRP including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2099 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $1899.99 $... Read more
13-inch 2.5GHz MacBook Pro available for $927...
Overstock has the 13″ 2.5GHz MacBook Pro available for $926.99 including free shipping. Their price is $172 off MSRP. Read more
Apple refurbished 2015 13-inch MacBook Airs a...
Apple has Certified Refurbished 2015 13″ MacBook Airs available starting at $759. An Apple one-year warranty is included with each MacBook, and shipping is free: - 2015 13″ 1.6GHz/4GB/128GB MacBook... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Software Engineering Intern: UI Applications...
Job Summary Apple is currently seeking enthusiastic interns who can work full-time for a minimum of 12-weeks between Fall 2015 and Summer 2016. Our software Read more
Security Data Analyst - *Apple* Information...
…data sources need to be collected to allow Information Security to better protect Apple employees and customers from a wide range of threats.Act as the subject Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 52812872 Houston, Texas, United States Posted: Oct. 18, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Solutions Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.