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

calibre 2.17 - Complete e-library manage...
Calibre is a complete e-book library manager. Organize your collection, convert your books to multiple formats, and sync with all of your devices. Let Calibre be your multi-tasking digital librarian... Read more
OmniGraffle Pro 6.1.2 - Create diagrams,...
OmniGraffle Pro helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use... Read more
OmniGraffle 6.1.2 - Create diagrams, flo...
OmniGraffle helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use Graffle to... Read more
RoboForm 2.0.2 - Password manager; syncs...
RoboForm is a password manager that offers one-click login, mobile syncing, easy form filling, and reliable security. Password Manager. RoboForm remembers your passwords so you don't have to! Just... Read more
Apple MainStage 3.1 - Live performance t...
Love the sound you got on your recording? MainStage 3 makes it easy to bring all the same instruments and effects to the stage. Everything from the Sound Library and Smart Controls you're familiar... Read more
Freeway Pro 7.0.2 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With its user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
A Better Finder Rename 9.44 - File, phot...
A Better Finder Rename is the most complete renaming solution available on the market today. That's why, since 1996, tens of thousands of hobbyists, professionals and businesses depend on A Better... Read more
Stacks 2.6.9 - New way to create pages i...
Stacks is a new way to create pages in RapidWeaver. It's a plugin designed to combine drag-and-drop simplicity with the power of fluid layout. Features: Fluid Layout: Stacks lets you build pages... Read more
Sid Meier's Civilization: Beyond Ea...
Sid Meier's Civilization: Beyond Earth is a new science-fiction-themed entry into the award-winning Civilization series. Set in the future, global events have destabilized the world leading to a... Read more
Logic Pro X 10.1 - Music creation and au...
Apple Logic Pro X is the most advanced version of Logic ever. Sophisticated new tools for professional songwriting, editing, and mixing are built around a modern interface that's designed to get... Read more

Choice Provisions is Set to Launch Destr...
Choice Provisions is Set to Launch Destructamundo on iOS This Month Posted by Tre Lawrence on January 23rd, 2015 [ permalink ] Choice Provisions – home stable to | Read more »
King of Thieves – An Interview With Zept...
Ahead of the release of ZeptoLab’s King of Thieves, we were able to ask ZeptoLab’s co-founder, Semyon Voinov, a few questions about the inspiration behind the game and what that means for the Cut the Rope franchise. | Read more »
Handle Review
Handle Review By Jennifer Allen on January 23rd, 2015 Our Rating: :: SPEEDY ORGANIZINGUniversal App - Designed for iPhone and iPad Handle is a very convenient way of juggling your emails, To Do list, and Calendar all through one... | Read more »
The New Disney Inquizitive App Offers a...
The New Disney Inquizitive App Offers a Place for Fans to Take Disney Quizzes Posted by Tre Lawrence on January 23rd, 2015 [ permalink ] | Read more »
Hands-On With Cut the Rope Developer Zep...
Marking quite a departure from ZeptoLab’s past successes, namely the Cut The Rope series, King of Thieves is shaping up to be quite promising. Due for release in February, we were lucky enough to have some time with a preview build to see exactly... | Read more »
Fast Fishing Review
Fast Fishing Review By Jennifer Allen on January 23rd, 2015 Our Rating: :: LIVES UP TO ITS NAMEUniversal App - Designed for iPhone and iPad Fishing is far from relaxing in Fast Fishing, but it is fun.   | Read more »
The LEGO Movie Video Game is Available N...
The LEGO Movie Video Game is Available Now for iOS Posted by Ellis Spice on January 23rd, 2015 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Satellina Review
Satellina Review By Jennifer Allen on January 23rd, 2015 Our Rating: :: TWITCHY BUT TACTICALUniversal App - Designed for iPhone and iPad Satellina requires quick thinking and twitchy fingers, and it’s pretty fun.   | Read more »
Tail Drift, the Crazy 360 Degree Flyer,...
Tail Drift, the Crazy 360 Degree Flyer, Has Gone Free-to-Play in a New Update Posted by Jessica Fisher on January 22nd, 2015 [ permalink ] | Read more »
PureSkate 2 Review
PureSkate 2 Review By Tre Lawrence on January 22nd, 2015 Our Rating: :: ALMOST ALL AIRUniversal App - Designed for iPhone and iPad PureSkate 2 lets one’s fingers do the skateboarding.   | Read more »

Price Scanner via MacPrices.net

College Student Deals are back, additional $5...
Take an additional $50 off all MacBooks and iMacs at Best Buy Online with their College Students Deals Savings, valid through April 11, 2015. Anyone with a valid .EDU email address can take advantage... Read more
iPhone 6 and 6 Plus GIve Apple Half Of US Mob...
Chicago-based Consumer Intelligence Research Partners, LLC (CIRP) have released analysis of the results of its research on mobile phone manufacturers for the calendar quarter that ended December 31,... Read more
Save $100 on MacBook Airs with 256GB of stora...
B&H Photo has 256GB MacBook Airs on sale for $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 11″ 1.4GHz/256GB MacBook Air: $999 $100 off MSRP - 13″ 1.4GHz/256GB MacBook... Read more
21-inch 2.7GHz iMac on sale for $1179, save $...
B&H Photo has the 21″ 2.7GHz iMac on sale for $1179 including free shipping plus NY sales tax only. Their price is $120 off MSRP, and it’s the lowest price available for this model from any... Read more
iPhone Usage Rates by State Correlate With Ed...
Chitika Insights notes that despite iPhones being the largest source of smartphone Internet traffic in North America, their latest study finds a relatively high degree of variation of iPhone usage... Read more
ProGearX Extendable Pole “Pov/Selfie Stick” M...
There’s something inescapably narcissistic about the concept of selfies as they’ve developed as a smartphone-driven social (particularly social media) phenomenon that rubs me the wrong way. However,... Read more
iPad Air 2 on sale for up to $100 off MSRP, 2...
 Best Buy has iPad Air 2s on sale for up to $100 off MSRP on their online store for the next two days. Choose free shipping or free local store pickup (if available). Sale prices available for online... Read more
Roundup of Apple refurbished MacBook Pros and...
The Apple Store has Apple Certified Refurbished 2014 MacBook Pros and MacBook Airs available for up to $400 off the cost of new models. An Apple one-year warranty is included with each model, and... Read more
Sale! 13-inch 2.8GHz Retina MacBook Pro for $...
 B&H Photo has the 13″ 2.8GHz Retina MacBook Pro on sale for $1599 including free shipping plus NY sales tax only. Their price is $200 off MSRP, and it’s the lowest price available for this model... Read more
Next OS X/iOS Version Upgrades Should Concent...
On stage at Apple’s World Wide Developers’ Conference in June 2009, Bertrand Serlet, the company’s Senior Vice President of Software Engineering at the time, announced that the forthcoming OS X... Read more

Jobs Board

Business Development Manager - *Apple* Pay...
**Job Summary** Apple Pay is seeking an experienced business development manager to support the identification, recruitment, negotiation and ongoing management of Read more
*Apple* Solutions Consultant (ASC)- Retail S...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
*Apple* Lead Operator, GSOC - Apple (United...
**Job Summary** Apple is seeking an exceptional, customer service oriented and experienced persons to fulfill the role of Apple Lead Operator (ALO) as part of the Read more
Order Support Supervisor- *Apple* Online Sto...
**Job Summary** The Apple Online Store (AOS) Order Administration team is looking for an Order Support Supervisor to manage and lead a team of Specialists through the Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.