WWDC2000 Session 166

Transcript

Kind: captions
Language: en
good afternoon everybody my name's Rob
Neville and I'm the engineering
your network service location for both
Macintosh 9 and Macintosh 10 today we're
going to be talking a little bit about
both primarily we're going to be talking
about where we're going with network
service location on 10 but will also
take questions if you have them on Mac
OS 9 as well and that implementation as
I said my name is Rob Nevel we're going
to be joined by kevin arnold and al
Begley for QA and for a demo which will
have later so network service location
this is the third year WWDC where we've
had a session on NSL and basically nsl
started as a way for my group which at
the time was responsible for developing
personal web sharing on mac OS 9 to
allow users to actually find a web
server the initial feedback we got when
we when we put out personal web sharing
was that people couldn't find the server
and in addition what we what we found as
a corporate is the corporation was that
people were trying starting to move away
from traditional appletalk services and
one of the same type of services or over
TCP IP networks so our group came up
with a solution and that solution turned
into nsl NS ellison shipping on mac OS 9
and it was shipping on mac OS 8 it's
also shipping as part of mac OS 10 it's
on the CD the sdk is in the developers
kit and you can make calls to it both
from carbon and from the lower
foundation levels it's not called from
the finder though we will be demoing it
from the finder today and why we're
having this particular session as
opposed to you know just what you heard
last year is that nsl as we move forward
into 10 it's going to be the way for you
to find your services on a network the
chooser as such or the legacy mac OS 9
implementations of how you find services
changes in mac OS 10 as services move on
to and there are more services available
on tcp/ip how you locate those services
on a dynamic network such as
dhcp nsl plays a much more critical role
in how you're going to locate those
services so nsl is the way that you as
service providers as people writing
services or people writing solutions
which contact servers and services on a
net can use to find those services in
addition if there are those of you who
are from corporate infrastructures it
will assist you perhaps in this
presentation to think about how you want
to structure your network because today
what we'll talk about is not only mac OS
9 and mac OS 10 and nsl in those
particular environments but what we've
learned in the last two years from using
and developing nsl briefly NSL is part
of mac OS 9 you don't really see the nsl
user interface that often in Mac OS 9
but the primary part of Mac OS 9 where
NSL is called as a network browser nsl
is not the network browser the network
browser is an application which makes
low-level nsl calls to get the raw data
that it then presents in a user
interface in addition in Mac OS 9 we
have a user interface library which puts
up a UI which which allows applications
you all to call for your specific
service an example of this if you if you
wish to use it in Mac OS 9 is in Apple
script and you can call choose URL from
inside an applescript and you'll see
what Apple script does to access nsl and
you'll see a long list of a variety of
services that applescript knows about
and where we're going with this is we
wanted nsl to be sort of like the
standard file the same analogy as
standard file for finding your services
on the network and so an application can
call our user interface which was the
feedback we got after the first year for
a particular service remote
administration which is part of apple's
share IP
6.3 is one of the services which uses
nsl to find its its remote
administration servers on the network
we're also part of Mac OS 10 and as mac
OS 10 matures over the next months and
years we've structured some changes in
to nsl that will facilitate a lower
level functionality and a lower level
system-wide calling of NSL so what we've
learned well as I said one of the first
things that we've learned is that
network browser is not nsl and that
though the user experience is very
similar there are some dip there are
some significant differences for example
as well and will show in the demo in
that work browser you get all the
services that network browser knows
about you get file you get browsing
services you get FTP and you get a
pretty long list in our user interface
the data type that you're looking for
actually the URL type that you're
looking for is how we sort that data you
can choose to show all the data all at
once or you can choose to segment it and
one of the things that we've found is
that when we rolled out mac OS 9
internal to Apple and we had nsl and
people started using the network browser
without a network infrastructure what
you have is pretty much a flat list of
every server on your network if people
put all of their services in one
particular what we call neighborhood
then what you have is all the servers in
one area this is sort of like what it
would be if all of the addresses for the
Santa Clara Valley were El Camino that
was the only street name you had so that
every particular business would have an
El Camino address well that would
perhaps make it very difficult to find a
particular service but if you divide up
the network infrastructure you separate
out various neighborhoods much much
analogous to appletalk zone
what you can find is that users are able
to utilize your services and to navigate
to find your service is much more much
more easily another thing we found and
we found this from customers is that
though we provide in Mac OS 9 for
plugins for different ways for finding
URLs in the network appletalk DNS ldap
and SLP your customers may not need to
use all of those for example your
customers may have an LDAP
infrastructure and may be easier for
them as we did at Apple to set up a web
front-end for users to register a
service in an LDAP directory associated
with their name so that then when I want
to look up somebody's web server or
their file server that person goes on to
a web page for your corporation loads
that data into an LDAP directory and
then they could find it that way they
may not need appletalk they may want to
turn appletalk off you can't be
guaranteed that any of the particular
plugins will be available the other
thing that we found as we made the
transition for mac OS 9 a mac OS 10 is
that you all didn't write any plugins on
mac OS 9 spend two years maybe you've
been doing other things maybe you've had
it right there on the top of your list
to write a plug-in for NSL we don't
think so for mac OS 10 we have a new
technology that's coming out and that's
the direct directory services API so as
a team what we did was we looked at how
are people going to find services how is
that data going to be stored out there
in the network well we have our legacy
appletalk data so we needed an MVP
plugin people still wanted to be able to
find apple share servers out their
personal file sharing things like that
we had SLP and SLP is very very good
currently for small businesses and
workgroups they want to just turn off
appletalk there was a hole there and
that was the fact that there aren't a
lot of directory service directory agent
servers out there
as we talked about in an earlier session
on the mac OS 10 server software that's
coming out in about the same time frame
as mac OS 10 we're going to be providing
an SLP directory agent which will
facilitate your customers in setting up
an SLP network then there was DNS and a
lot of people aren't using dns as a data
store but it's a more traditional
mechanism by which people resolve urls
in addition as part of mac OS 10 with a
bind 8.2 server that will be providing
the ability to do registration to that
server comes to fruition so with the
traditional bind for servers you didn't
have the capability of doing
registrations it was a static list and
we were finding that not a lot of people
were adopting that with 8.2 you can have
registration take place whether or not
you're used the users of the bind 88.2
are going to allow that is going to be
up to the systems administrators so
that's those are the three traditionals
and then a mac OS 10 we had l doubt we
had an LDAP library that was part of mac
OS 9 we wrote an LDAP plug-in to utilize
that sort of a proof of concept but Mac
os10 we have the directory services API
so now if the data is not stored in ldap
directory stored an Oracle database or
it's stored in the novell netware server
or stored on a Windows 2000 machine
using Active Directory we don't care and
we don't have to write a plug-in for
each individual type of directories
store that's out there using directory
services plug-in when you write a a
plug-in for directory services you're
giving functionality to nsl right off
the bat so we'll be providing in Mac OS
10 an nbp plug in an SLP plug in a DNS
plug-in and a directory services API
plugin we have also taken the api's that
allow you to write plugins and may
dem private so there will not be in the
sdk anything in Mac OS 10 which will
facilitate you writing a plug-in if you
have a particular need for a plug-in to
be written that can't be handled in
those four categories you need to let us
know because as of right now we don't
see the need for writing any more
plugins for this particular interface so
what you're hopefully going to take out
of this is why you should use NSL in
your applications why you should use nsl
in your servers and register with nsl
because nsl is going to be d way in mac
OS 10 for your services and your servers
to be found on the network if you don't
register services that come along to
take advantage of you up that may want
to connect to your services won't be
able to find them on a tcp/ip network
people are making the transition from
Apple talk to tcp/ip Macintosh users are
making that transition in Mac OS 9 when
they took personal file sharing they
allowed you to do that over tcp/ip they
register with nsl so that you can find
this tcp/ip server without having to
know the address now if that address
happens to be something that's
changeable every time you boot your
machine on a network such as dhcp then
nsl becomes even more useful as we move
away from static IP addresses if I have
a server or a service that doesn't have
a static IP address the URL for that
address may change every time i boot
that server if i have distributed
applications on desktops and i want to
be able to find those distributed
applications and the IP address is
dynamic i'm going to need NSL to be able
to find those nsl however is just a
mechanism for finding the address it's
not ldap it's not SLP it's not directory
services if you have
big data stored in those forms if you
want to write an ldap application you
want to be able to find a remote ldap
server currently on Mac OS 9 you you can
internet config you you put your ldap
server if I want to go out and find
other ldap servers that are out there
and I have an ldap specific application
I can find those servers using nsl but
then I want to move and talk to the ldap
library to be able to do ldap kinds of
things the same thing with SLP that's
they'll be for example at some point in
the future the trend is to put SLP into
the firmware of printers that would
allow print architecture to talk SLP
directly to the printers out there in
the network well nsl will give you the
address of that particular printer but
it won't give you any more information
than that this is it this is a way to
find the services on the network it's
the same way that nvp in the appletalk
stack is just one layer it's just a way
to locate those services on the network
nsl takes that to a level where it's
appletalk its tcp/ip you don't care you
don't care where the data is stored you
just want the address of the service
that you're connecting to but to do that
you as servers writers and US service
and application providers need to use
nsl to find those services on the
network the desktop in Mac OS 10 and
will be demoing this in a little bit has
a menu item that is connected to server
that interface may or may not change
between now and the final release I was
up here last year we had a connect to
mechanism and that changed over the
period of time that may change but
ostensibly what's happening in the
Macintosh the mac OS 10 specifically is
those services that allow you to
navigate through a network and define
your services we're going to be calling
in a cell and as those things get down
lower and lower and more invisible to
the user the ability to find those
services is going to be
through calling nsl once the service the
finder for example locates a file system
it will have to know what to do so where
we are today we've got an SDK that's out
there there are a few applications
outside of Apple that that call NSL but
we've got an SDK and it's an NSL and Mac
OS 9 and going forward is fully
supported some of the functionality in
mac OS 9 specifically the SLP plugin and
some of the new user interface is nine
specific so that if you have Macintosh
users who are using 8.0 they also get
nsl but they may not be able to see all
of the SLP services out there this is
because the spec has transitioned and
changed over time in addition we put in
a user interface that the users can call
we added support into applescript going
forward in Mac OS 9 they'll be support
using Macintosh manager to be able to
locate client machines on the network
those client machines will be
registering using nsl so that if you
you're gearing a solution be aware that
we're supporting back to mac to mac OS 9
only don't think you're going to get all
the functionality all the way back to
eight even though we shipped with eight
that's an important distinction to make
we have file-sharing over tcp/ip and in
a future release what we'll be having is
USB printer sharing will be using nsl to
find those computers that are sharing
their USB printers part of Mac OS 10
when we move made the transition to Mac
os10 we had a carbon live inside of Mac
OS 9 we made the transition over mac OS
10 the system people came to us and they
said this is a neat way to find services
on the network we may want to drop this
down to
core of the OS so having all of this API
up here in carbon may preclude us from
being able to do some of the lowest
level services and finding some of those
services on the network so what we
decided to do in meeting with with those
teams is the user interface the standard
file analogy for getting a URL using the
UI we provide is in carbon the manager
is in the core foundation library so if
you need access to the data that we use
to put up in our user interface then you
need to call the manager itself if all
you need is the data that we put up in
the in the debug interface and trust me
we went through a long period of
debugging with the user interface so
that we're stripping out duplicates and
doing a lot of things inside the UI if
you call our UI you don't have to debug
that that user interface hopefully it'll
be as bug free as we can make it you may
however still need access to the raw
data we understand that you may want to
put up something totally different as
far as your user interface that data is
available to what you're going to have
to link to the core foundation instead
and as I said we're providing MBP DNS
SLP and a directory services plugin and
if you need anything more let us know so
as I said NSL doesn't provide the
network infrastructure and itself
probably and it as it did did at Apple
will show a lack of a network
infrastructure especially on tcp/ip and
a lot of companies keep the tcp/ip
network is relatively flat and when you
get a lot of services out there that are
registering in your company com because
that's their domain name for SLP
suddenly you're going to get back to the
situation that Apple talk was in back in
the mid 80s where you've got one
ostensibly one big zone and that may may
may may make it difficult you as
application and service developers can't
do anything really about that other than
perhaps evangelize to your customers
that's setting up a logical division of
their network would be useful you also
can tell your customers that they don't
all need all the plugins particular
customers that we've talked to have made
a transition off of Apple talk on to
ldap people are waiting with bated
breath to be able to implement our SLP
directory agent and use SLP as a
mechanism for finding their services on
the network we're going to be providing
an SLP directory agent in the mac OS x
server the functionality for registering
and creating a distributed SLP network
and networking infrastructure will be
will be available with a very nice user
interface in the mac OS 10 server and as
i said before we're providing all the
plugins we think you'll need this is the
only way you're going to be able to find
your services on the network other than
hard coding in addresses or having your
servers do multi casting to all your
clients one of the other things that
we've we found is that traditionally
what happened was networking folks
thought that Apple talk was a very
chatting Network and when you start
putting hundreds of machines tcp/ip
machines on the network doing multi
casting Wow suddenly tcp/ip is a very
noisy protocol
so here's an example of the nsl
architecture this isn't a typical
architecture slide you'll see what we
want you to get away from this is in mac
OS 9 you're just linking to one library
and Mac os10 you may need to link to two
and why would you linked to two you'd
linked to two if you're doing a front of
a front end of two point-to-point kind
of solution if you just want to get the
URL all you need to do is link to carbon
log and and use the standard get URL
call that will return you a URL if you
wish to register a server or a service
chances are you're going to be linking
into the core foundation already at some
point but to register and deregister
you're going to not link link to carbon
for nsl services but you're going to
link to link to the core foundation for
the nsl manager to do a register and
addie register in addition though it
wasn't shown here if you want to get
access to the data that we use to put up
our user interface that data all comes
through the NSL manager so if you want
that data yourself link to the nsl
manager and don't call our UI so here's
some of the services that are going to
be using Mac OS are using in SL and Mac
os10 Mac os10 server administration this
is similar to the Apple share 63 server
administration if you want to be able to
find an apple share server or fine or
remotely administer a mail server
running on top of Mac OS 10 you're going
to be using nsl to find that service
Mac os10 server is going to be used to
set up and configure SLP kinds of
networks list services apache and
personal file sharing a mac OS 10 will
also be registering with NSL and apple
script will as well so we understand
here that we're the last session of the
day and following this session there's a
beer bust and there there are buses to
take you over to to cupertino where you
can meet face-to-face with more of the
engineers and and share the camaraderie
that only comes with imbibing in the
good will of others so we'd like to get
into the demo and to assist me in the
demo at kevin arnold does the SLP and
NFL engineer hi so we're going to show
you today is a post DP for finder that's
calling in to nsl and to show you what
the UI looks like in nsl today if you
were to call it that you is probably
going to change before we ship right now
it's an aqua fide version of our
platinum interface that we did on nine
but we're going to do more things to
make it even more aqua savvy so
basically go to this connect to server
that you may have seen great out bring
it up so we basically we see a list of
network or neighborhoods and we still
have appletalk neighborhood that will
show either a list of zones or your
appletalk servers and then we also have
other neighborhoods that show up now you
might notice that there's some kind of
weird neighborhood names that show up
and this is part of what Rob was talking
about with SLP and the kind of chaos
that can happen in your net in your
network if it's not really structured
right and that's something we're working
on in 10 with the
in conjunction with the server to make
it more administrator a specific way to
set this up and then it all looks nice
and clean so if we go into a
neighborhood that we're interested in
looking at you can see up here we have a
pop-up button that shows what kind of
services that the calling application is
interested in seeing and the finder note
wants to know about web servers or Apple
share servers so we can switch between
those and see which ones are there and
this will change depending on the
calling application so if your
application is out looking for a service
type of something you desire then that's
going to show up here and you're only
going to see those types of things in a
neighborhood and not other stuff so they
think the I'll user needs to do is
select the computer that they want and
the URL of the computer they select it
shows up in this URL field and this is
the actual data that we're going to send
back to the client so one of the
shortcuts that user may want to use
instead of browsing if they know already
the IP address they can just type it in
and then hit connect and immediately
return to the application or if they
have some path information on the URL as
they know about maybe they know that
okay i want to go to Joe's web server
and the information is in you know a
subdirectory they know about but his web
server is on dhcp so I have to find the
address and then I can type in the path
to connect and go straight there kind of
thing basically connect once you hit
connect the UI basically returns to the
application the return that URL and nsl
is all done and at that point the it's
up to the calling application to handle
that URL and in this case what the
finder does is goes to mount
my volume or my network and I can go
ahead and select what volume I want and
you'll show up right there on the
desktop so that's basically it thank you
so the demo you saw is real similar to
what we've got in mac OS 9 if you call
applescript for mac OS 9 you'll see that
list is fairly long as kevin was
alluding to what shows up there and the
names that you wish to put there AFP
servers may not make any sense to
anybody file servers night so you pass
in the string that you want to have
displayed in the pop-up menu so we've
got a couple of from we've got a
feedback forum tomorrow we're sort of PE
backing off the server services feedback
form rather than having a separate nsl
feedback forum that's tomorrow at nine
Mac os10 directory services was held
this afternoon at two hopefully those of
you interested in that will will have
gone to that so what I want you to take
away from here is that the chooser is no
more if you if you start Mac OS 10 and
you start I believe classic real fast
you can see it briefly under the apple
menu but and you can go double click on
it no guarantees the way to find your
services under mac OS 10 going forward
on both appletalk and tcp IP networks is
going to be with nsl and then the cell
will give you the address of the service
that you're looking for you need to know
what to do with that you need to know
whether or not it's a telephone number a
street address a file server web server
we don't know we'll just tell you where
it is and that we're providing the
plugins that we think you will all need
and if you if you need more you need to
let us know
so with that I'd like to take questions
[Applause]