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

Introduction

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 apple.com. In the following example, the application creates a neighborhood whose boundary is apple.com.

neighborhood = NSLMakeNewNeighborhood("apple.com", 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.

Conclusion

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

VOX 2.8.6 - Music player that supports m...
VOX just sounds better! The beauty is in its simplicity, yet behind the minimal exterior lies a powerful music player with a ton of features and support for all audio formats you should ever need.... Read more
MacUpdate Desktop 6.1.3 - Search and ins...
MacUpdate Desktop 6 brings seamless 1-click app installs and version updates to your Mac. With a free MacUpdate account and MacUpdate Desktop 6, Mac users can now install almost any Mac app on... Read more
ExpanDrive 5.4.1 - Access cloud storage...
ExpanDrive builds cloud storage in every application, acts just like a USB drive plugged into your Mac. With ExpanDrive, you can securely access any remote file server directly from the Finder or... Read more
Espionage 3.6.6 - Simple, state-of-the-a...
Espionage offers state-of-the-art encryption and plausible deniability for your confidential data. Sometimes, encrypting your data isn't enough to protect it. That's why Espionage 3 goes beyond data... Read more
Pinegrow Web Designer 2.94 - Mockup and...
Pinegrow Web Designer is desktop app that lets you mockup and design webpages faster with multi-page editing, CSS and LESS styling, and smart components for Bootstrap, Foundation, Angular JS, and... Read more
1Password 6.3.3 - Powerful password mana...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
Sublime Text 3126 - Sophisticated text e...
Sublime Text is a sophisticated text editor for code, markup, and prose. You'll love the slick user interface, extraordinary features, and amazing performance. Features Goto Anything. Use Goto... Read more
ForkLift 3.0 Beta 2 - Powerful file mana...
ForkLift is a powerful file manager and ferociously fast FTP client clothed in a clean and versatile UI that offers the combination of absolute simplicity and raw power expected from a well-executed... Read more
OmniFocus 2.7.1 - GTD task manager with...
OmniFocus helps you manage your tasks the way that you want, freeing you to focus your attention on the things that matter to you most. Capturing tasks and ideas is always a keyboard shortcut away in... Read more
CleanApp 5.1.1 - Application deinstaller...
CleanApp is an application deinstaller and archiver.... Your hard drive gets fuller day by day, but do you know why? CleanApp 5 provides you with insights how to reclaim disk space. There are... Read more

Leaf for Twitter (Social Networking)
Leaf for Twitter 1.0.1 Device: iOS iPhone Category: Social Networking Price: $4.99, Version: 1.0.1 (iTunes) Description: | Read more »
Banner Saga 2 (Games)
Banner Saga 2 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: The epic award winning story-based role-playing game continues its emotional journey across a breaking world. Lead your Viking... | Read more »
Concrete Jungle (Games)
Concrete Jungle 1.16 Device: iOS Universal Category: Games Price: $4.99, Version: 1.16 (iTunes) Description: A follow up to the puzzle hit 'MegaCity'! Concrete Jungle is a new take on the city building genre that swaps micro-... | Read more »
5 great apps for the budget traveller
Travelling abroad, or even within your home country, has never been easier thanks to our handy smartphone companions. There are hundreds of apps on the market that promise to make your world journeys hassle-free, but we've selected five of the... | Read more »
Zip—Zap (Games)
Zip—Zap 1.01 Device: iOS Universal Category: Games Price: $1.99, Version: 1.01 (iTunes) Description: Touch to contract.Release to let go.Bring the clumsy mechanical beings home. · · · over 100 levelsno adsno in-app-purchases Zip—... | Read more »
Paperback: The Game (Games)
Paperback: The Game 1.0 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0 (iTunes) Description: You are an author trying to finish kitschy paperback novels. Complete Westerns, Science Fiction, Romance or even a Crime... | Read more »
How to Rule With a Firm Hand in My Majes...
My Majesty is a kingdom management sim not unlike August’s magisterial hit, Reigns. It’s essentially a reskin of developer Tigrido’s previous management sim, Dictator. As supreme ruler of the land, you must consult with a number of subjects to... | Read more »
Our 5 Favorite iMessage Sticker Packs
At long last, iMessage joins the ranks of messaging apps the likes of LINE and Whatsapp, adding an impressive collection of stickers. They’re a great way to add a little something extra to your daily conversations. [Read more] | Read more »
How to get past Vulture Island's tr...
Vulture Island is a colorful and quirky mish-mash of platforming and puzzles. It’s creative and fresh, but sometimes the game can throw a curveball at you, leaving you stuck as to how you should progress. These tips will help you explore smoothly... | Read more »
The new Clash of Kings is just for Weste...
If you’ve played the original Clash of Kings, you’ll probably recognise the city building, alliance forging and strategic battles in Clash of Kings: The West. What sets this version apart is that it’s tailor made for a Western audience and the... | Read more »

Price Scanner via MacPrices.net

Apple refurbished Mac minis available startin...
Apple has Certified Refurbished Mac minis available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz Mac mini: $419 $80 off MSRP - 2.6GHz Mac... Read more
13-inch 2.5GHz MacBook Pro available for $928...
Overstock has the 13″ 2.5GHz MacBook Pro available for $927.99 including free shipping. Their price is $171 off MSRP. Read more
Buying McLaren Would Give Apple Instant Car C...
Apple “iCar” rumors have waxed and waned over the years, piquing interest and speculation as to whether Apple is seriously interested in getting into the automotobile business, either in a joint... Read more
Aetna to Transform Members’ Consumer Health E...
Health care benefits company Aetna, which has an estimated 46.3 million clients, today announced a new initiative to revolutionize members consumer health experience by combining the power of iOS... Read more
USB-IF Announces USB Audio Device Class 3.0 S...
USB Implementers Forum (USB-IF), the support organization for the advancement and adoption of USB technology, today announced the USB Audio Device Class 3.0 specification to establish USB Audio over... Read more
Clearance 12-inch 1.2GHz Retina MacBooks, App...
Apple has Certified Refurbished 2015 12″ 1.2GHz Retina MacBooks available for $1189, or $410 off original MSRP. Apple will include a standard one-year warranty with each MacBook, and shipping is free... Read more
Logitech SmartDock and Skype For Business Com...
Logitech has announced Logitech SmartDock, an AV meeting room solution designed in collaboration with Microsoft. Logitech SmartDock works with Skype for Business and qualified devices, including... 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
Apple Macs and iPads available for up to $300...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free, and... Read more
Save up to $600 with Apple refurbished Mac Pr...
Apple has Certified Refurbished Mac Pros available for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The following... Read more

Jobs Board

*Apple* Retail - Multiple Positions- Chicago...
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* Retail - Multiple Positions- Raleigh...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
User Support Specialist *Apple* Product Spe...
…Description:Ciber, Inc. is seeking a User Support Specialist - Apple Product Support in Nashville, TN!Responsibilities:Support, implementation, and upgrade of Read more
Restaurant Manager (Neighborhood Captain) - A...
…in every aspect of daily operation. WHY YOU'LL LIKE IT: You'll be the Big Apple . You'll solve problems. You'll get to show your ability to handle the stress and Read more
US- *Apple* Store Leader Program - Apple (Un...
…Summary Learn and grow as you explore the art of leadership at the Apple Store. You'll master our retail business inside and out through training, hands-on Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.