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]