WWDC2001 Session 301
Transcript
Kind: captions Language: en my name is Tom wire I'm the networking communications technology manager in developer relations and I have the privilege of introducing session 301 Mac OS 10 server overview as many of you have heard from the keynote yesterday in some of the other sessions we've got a new 10 server and to talk about that I'm going to invite up Eric Zelenka product marketing manager for Mac OS 10 server [Applause] thank you thank you for coming this afternoon a lot has changed since the introduction of the Macintosh I think most of us in this room realized that our computers are more interconnected now than they've ever been in the past we use our networks we use servers to share and exchange information there the resources that we use to a git or email to watch a live video stream to interact with the dynamic websites or to share files with other clients so at Apple our strategy behind servers is to build the best desktop our strategy is to build the best server and networking infrastructure to support our best desktop operating system that we have Mac OS 10 so today we're going to be discussing a little bit we're going to be updating you on Mac OS 10 server you'll hear a little bit more about the details and the features of Mac OS and server will give you an update as to the technologies that are included in Mac OS 10 server and we'll also discuss some developer opportunities that are that are afforded to you by developing products and solutions for Mac OS 10 server so specifically will will educate you on what is Mac OS 10 server how Mac OS 10 server relates to Mac OS 10 again the the developer opportunities and then will point you to some additional sessions some breakout sessions where you can learn more about developing for specific technologies so our server strategy and Apple is simple our goal is to deliver innovative scalable solutions that are built upon internet in industry industry standards we want our server platform to be the premier platform for high-performance networking whether that's work group or internet server solutions our servers should be very easy to use they should be easy to manage and administer they should offer a full range of services they should be able to integrate easily into existing networks and existing infrastructures and again they should embrace and support open standards so what is Mac OS 10 server avi introduced it yesterday in his presentation but Mac OS and Server is really a combination of a couple things Mac OS and sir were build upon the innovation and the power of UNIX and everything that we delivered with Mac OS 10 Mac OS 10 server also includes a suite of Internet and networking services includes a lot of open source solutions and includes a similar interface to our Apple sure IP products so it's very easy to use very comfortable a teacher or workgroup administrator can easily adopt Mac OS 10 server and learn it without a lot of technical knowledge so Mac OS 10 server again it builds upon the industrial-strength server platform that we have in Mac OS 10 and Darwin and a lot of the open source solutions that are out there on the network on the Internet it integrates a lot of server solutions for file and print we'll go into more these later internet and web networking and security desktop management and directory services and again Mac OS and server offers a superior ease of use with its secure remote administration interface so this is basically the architecture of Mac OS 10 Mac OS and server Mac OS and server again sits on top of Mac OS 10 it supports the directory services architecture and you can see that the services that we provide are layered on top of the directory services so are so all of the services whether it's our file services or networking services or desktop management solutions all support directory services and then on top of that we provide the nice clean easy to use elegant interface for remote administration so how does Mac listen server differ for Mac os10 well they're very similar in some ways there's the both based upon the great darwin operating system foundation they both feature the reliable high performance bsd networking stack and tools and they both feature the aqua user interface they differ in that Mac OS 10 server is a server platform it's not the operating system Mac OS 10 is the operating system this is our server platform it builds upon Mac OS 10 Mac OS 10 server also features a full range of services for we discussed earlier like file sharing and networking solutions we have integrated management for an integrated remote administration management and logging so a server should produce reports it should allow you to remotely administer it Mac OS 10 server also features a series of fault-tolerant systems to recover from failures if one of the services crashes it'll automatically restart it and we have some hardware integration there as well Mac OS 10 server also builds upon some additional open source solutions which are not not included in Mac OS 10 and also some some Apple design solutions like macintosh manager 2 in netboot 2 and again Mac OS 10 server is a complete solution out-of-the-box everything that you need to set up your server to integrate your clients on your network is provided in Mac OS and server so now I'd like to invite up Greg burns he's the director of internet server software and he'll go into more about Mac OS and server platform and the services it provides ok all right thanks Eric let's talk more about knack Western server and some of the technologies that we provide and that we've delivered in Mac OS 10 server with the new release Eric's provided a good overview of Mac OS 10 server but I want to talk in a bit more detail about some of the things you should know and then towards the end of the presentation and a few areas we're going to go into some more depth in particular areas that you as developers should know about developing for Mac OS 10 server so first of all one of the key things you should know about Mac OS 10 server is that it truly provides an industrial-strength platform for servers it's based on Darwin the same core foundations of FreeBSD and mock that are used in Mac OS 10 desktop and because these are open source we've leveraged the years of development that have gone into making these a mature server platform of course these provide features that exist in Mac OS 10 in both desktop and server of pre-emptive multitasking protected memory that are really necessary to have a scalable and secure server environment we've leveraged the networking foundations and the file system foundations of these operating systems the the networking in Mac OS 10 server is very high-performance and can provide great response even up to hundreds or thousands of connections and in addition to the UNIX base file systems that people are familiar with in a UNIX environment we've added HFS+ and AF P to support the Mac world as well and the services on the server side can share and take advantage of these across the board for any file system and there's more as well obviously we can share ISO CDs and others so in addition to all this scalability and performance benefits another thing that's new of Mac OS 10 server with the new release is that we can take full advantage of symmetric multiprocessing this is something that unlike Apple share IP in the past we're now fully able to take advantage of the multiprocessor hardware that we deliver in the server product for great performance and as Eric mentioned we've added fault-tolerant systems as well so we have a few things that we've added to the server product one is a watchdog process that will look over the services that are running and make sure they continue to stay running and if one should quit unexpectedly it will start it up again and makes the services stay online another is a combination of hardware and software that basically will monitor the overall system and make sure that it's alive and if the system should hang for some unexpected reason it will restart it so even if your server is located you know 20 miles away in a remote office and it goes down in the middle of the night you don't have to worry because it will automatically restart itself and stay running and stay online so now let's go into some of the services and and the capabilities that are provided in that quest and server so key to Mac OS 10 server is the directory services layer that is used by all the services in Mac OS 10 server okay so directory services provides basically an integrated set of services an API and a back-end database that can be used to share information about users and resources on the network so client applications on the desktop and server applications can use the API to access directory information and then in addition we provide the backend database in the form of net info a distributed replicated directory server this is utilized by all the services in Mac OS 10 server so whether it's file web print mail all of them access the network directory information and access the shared accounts and in addition we realize that there are people they have existing directory infrastructures primarily using LDAP that are going to want to be able to integrate Mac OS 10 server into those environments so in the directory we've provided LDAP support to allow a mecca host and server to integrate into these environments so if you have an eye planet LDAP server or a Windows Active Directory server you can take a Mac os10 server and and basically deployed in that environment and any service that you have up and running will be have access to new user accounts that are added into these servers as soon as they're at it so it's a fully dynamic and fully integrate it so this picture shows you how it's all put together and the green there in the middle you have the API which is the key piece that anybody writing an application needs to be aware of that's available on both the client and the server and that allows you to access the directory so you see the apple software there are cost and services that take advantage of the directory through this API as well as developer software that can use it as well in order to access the various directories you have the choice of going through the existing directories that we provide plug-ins for net info and LDAP or as a developer you can write your own plugin for an existing directory and other people as well IT organizations can do this as well for proprietary directories so to summarize the the API is included with every Mac os10 product desktop and server allows access to any directory the API is provided central point to access network resources in the directory and also to authenticate user accounts to the directory it's extensible so new directory support can be added via the plug-in architecture and we've added an nfo and LDAP support included in the core server OS ok looking at our menu of services here that are provided in Mac OS 10 server the first is file and print services and obviously these are very important in the education and graphics markets very highly used in the land environment and in addition to all the reliability things that we talked about that we've improved in Mac OS 10 server we've also focused a lot on performance so we have a truly high performance solution here that we're delivering we've been doing benchmarks against Windows 2000 and we've found that this is Mac OS 10 server is truly the fastest server for both Mac OS and Windows clients and so we're really happy about that another thing Thanks another thing that's that's important is that we need to be able to support all clients so we've added support for obviously we had AFP and windows support in Apple shocky we've added NFS as well with Mac quests and servers in UNIX underpinnings and of course FTP so no matter what client you're coming from you're fully able to access the server and of course with AFP we've enhanced that with AF d3o to take full advantage of the new Mac OS 10 file system layout so things like Unicode file names long file names privileges have all been enhanced in AF d3o in addition all these file services can use both HFS+ and ufs so unlike previous live release of Mac OS 10 server you truly are independent of the underlying file system storage and finally our windows support comes from samba which I'm sure many of you are familiar with and in addition to adding Samba into the product itself we made sure that it's really well integrated with Mac OS 10 server so in terms of integrating with the unicode file system layout of Mac OS 10 and the directory API as well as the management utilities we made sure that that all fits together well and provides a truly integrated and easy to manage set of file services on the print side we support Windows and Mac printing and that integrates into the Mac OS 10 printing environment for PostScript printers and this picture kind of gives you an idea of how all this fits together and makes it really easy to set up and manage all of the configuration for shared directories and privileges is shared by all of the file services they all can access the underlying file services whether it be ufs or HFS+ and they all use the directory services to access the account information you know shared directory moving on Internet services is obviously another key part of a server environment to be able to do comprehensive web hosting and Mac OS 10 server provides a great deal of support here in addition to the basic web services we also have a mail server product that we provide as well as in Mac OS 10 server we have media streaming with the QuickTime streaming server and we have an application server environment with the web objects 5 deployment the mail server is a server that has been brought over and improved from Apple share IP we've removed some of the limitations that existed in the Apple sharipb products such as improving the ability of the database to scale I increase the size limitations there we've continued to maintain some of the key features though like the high performance message store and the fact that it's fully integrated with the directory the IMAP administration port makes it easy to access the database locally or remotely from IMAP through the protocol or from any IMAP client one of the key things they wanted to improve in the mail server 410 is to really make it more flexible the mail server is really easy to setup it's really easy to use it's fully integrated but with that integration came some some inability to modify it and so we want to do a prove on that and so what we've done with 10 is we've we've allowed you to use it the way it exists would be integrated SMTP router but we've also allowed people to set it up so that you can use it a send mail as your back-end SMTP router and so that allows people that really want to customize the server or if developers want to add additional capabilities on top of the mail server platform they're able to do that through send they own so we've really increased the flexibility in the mail server with Mac OS 10 another product on the internet side is the QuickTime streaming services which provides both support for live media and on-demand media of QuickTime being streamed across the Internet you can stream any hinted QuickTime media placed on the server as well as stream live events from a broadcast application by reflecting them through the server in addition you can take servers that are reflecting and basically build up multiple and chains of basically servers reflecting the servers to build very large distribution environments for a really truly scalable architecture it's fully standards based on RTP and rtcp so it's fully compatible with other servers and clients and it's fully open source and it runs on a variety of platforms and we're now in our third release and I'll talk about that in a minute and overall this product has been really popular we've had over 135,000 down it's now of quicktime streaming server and that a huge a number of those have been on Mac OS 10 server itself and we just have recently released cute QuickTime streaming server 3 oh that's new we've added a number of new features to the product that are all included in Mac OS 10 server as well the first is easy web administration of the core features of QuickTime streaming server and we've also added broadcast automation in the past when you wanted to do a live event you had to setup configuration files on the server and it was a fairly complex process now all of that's automated so that broadcaster will tell the server that it's got a broadcast event and everything is set up for you automatically so that combined with the web and administration it really makes it easier to set up the streaming server and to set up live events and it makes the whole process much simpler and smoother skip protection I'm sure you've heard a lot about if you went to the keynote yesterday I'm sure you saw the demo there and of course that's something we've been talking a lot about that allows the server to really recover from congestion or interruption in traffic on the internet while still presenting of smooth media stream and we've improved the authentication for more robust authentication support for secure streams the performance is the best it's ever been and together with the features in 300 along with a new server platform and the new hardware we're now serving over 3,000 media streams from one server and for developers you all should know there's a powerful plugin API that's modeled after the Apache plug-in API so it's very easy to add capabilities to the server without going in and modifying the core server so even if you don't want to get involved in working with the open source and then being involved with a server on that part you can still develop additional functionality for the server through the plug-in API of course core part of web services is the web server itself and all that goes around it and I'm sure many of you are familiar or know that we include Apache as the core web server foundation in Mac OS 10 server and so we wanted to talk a bit more in depth about what we've done with the path and some of the additional facilities we provide around that so for that I'm gonna bring up rusty Tucker from the tensor engineering group hi thanks we've got a really interesting story to tell around Apache and Mac os10 server I think it's really good news for third-party developers and there's a lot of new opportunities there a short story I guess as a developer when I first took a look at Mac OS 10 server it it's really unique because you've got the best graphic interface the ease of use that Macintosh has always had and Unix under the hood and those combined to make this a really unique web server development environment so of course we started off with Apache and it comes with impressive qualifications millions of sites served a very large and active development community it's very stable and and have a very secure and it's important to know that the version of Apache that we ship on Mac OS 10 server is very standard but we've added to it some of the best and most sought-after tools from the open-source community including PHP MySQL mod Perl and Tomcat the Apple additions to to Apache integrate integrate Apache with the Mac OS 10 environment improve its performance and add the very ease the easy remote management Apache is typically really all about being the most flexible web server and it hasn't always been notice known as the speediest web server and so we've tried to improve that by adding speed to the flexibility with the front-end performance cache in addition we've added configuration for Secure Sockets Layer and configuring Apache to be utilized as a caching proxy when we talk about Mac OS 10 server is a great web application development platform what really stands out is web objects which is a consistent award winner in a deep and rich environment in its own right you'll be hearing a lot about that in different sessions here this week and also more in this presentation we've also included MySQL which is a multi-user structured query language database most interesting dynamic web applications require an SQL back in and now you've got one in Mac OS 10 server PHP provides portable scripting language for patchy and it's highly integrated with MySQL Perl is really great at tech manipulation and also provides database access and Tomcat provides java servlets and Java server pages so that you can use the java programming language to extend Apache with greater performance at CGI moron be the app of additions to Mac os10 server and the web server we've integrated Apple technologies Sherlock for full-text searching of your website directory services so you can take advantage of the directory service a architecture and provide a great way to authenticate and control access so you don't need to muck around with htaccess files or roll your own access control using a database back-end it's taken care of automatically and integrated through directory services to ease the transition from mac os9 we've included legacy support for Mac OS AC guys including those running under classic of course you want to move to a native technology to take advantage of the performance and reliability that 10 server provides and we've also included a custom Mac binary module that allows for the transfer of classic files that include a resource fork one area that Mac OS 10 has broad support for is in the web distributed authoring versioning protocol known as web dev you'll find it's a set of extensions that allows HTTP to easily manage the content of a website in OS 10 server you can control the use of web dab through the user interface and you'll also find WebDAV client support in some of the best authoring tools and what's very surprising is that you find web dev support built into Mac OS 10 as a client file system API so websites can appear on your desktop just like any other remote server volume which means that finder cocoa apps Carbon apps and any other any command line application can access and edit the contents of a web site just using standard filesystem API and we talked before Apache is a very popular web server serving 17 point nine million sites by one recent count and Apache has achieve this with providing full support of HTTP reliability flexibility as evidenced by the modules and capabilities that we had include of Mac OS 10 server and we work closely with the kernel team to optimize for our Apache and the result is really great performance on hunter base T and Gigabit Ethernet networks we thought we could do even better and as a result created the performance cache the performance cache is tightly integrated with Apache so that Apache is responsibility for filling the the backend of the request it generates the HTML either from static pages or through its modules or CGI's where the performance cache takes here are the front-end of the request and serves from memory the results of that generation and the results are pretty pretty astounding we were able to more than double Apaches performance on Mac OS 10 server you know in static page performance while maintaining all the flexibility and reliability that's built into Apache module and content developers can also take advantage of this run and performance cache just by adding expiration and cache ability headers to the responses that you normally generate so if your module is already friendly towards caching proxies on the Internet it will already automatically exploit the advantages of the front-end performance cache so to summarize the Mac os10 server is a deep and rich development environment for web applications you can take advantage of the performance cache for higher performance at basically no costume in your development and it represents a lot of a number of developer opportunities including the porting of additional Apache modules to Mac OS 10 or plugins for Mac OS 9 innovations that extend Apache and exploit this unique server operating system development of web-based tools that ease the management of Mac OS 10 server itself and of course killer web applications built with web objects Perl PHP or tomcat so I thank you and give you back to Greg alright thanks rusty finally the last and most there we go the last and most comprehensive web development environment we have that is included with Mac OS 10 server is the web objects 5 application server development development environment now Mac OS 10 server itself includes the web objects 5 deployment platform and for those of you that are not familiar with web objects web object is an application server environment it supports the rapid development of web application servers it's truly cross-platform new would love objects 5 is a Java runtime environment and it can also on the desktop run in both browser window as well as dedicated Java applications it allows you to take database content from any JDBC to a compliant database and to dynamically and automatically access that data and present it to your client application and there's a lot of development tools for web objects 5 that are included in the development version that allow you to quickly and rapidly develop this out these applications and all of the content is displayed through a very streamlined process that allows you to take HTML templates and generate pages or to generate Java applications to display this information the clients so again in Mac OS 10 server we have the deployment version of what objects 5 and we have a picture here kind of shows you how it all fits together over on the left area you can see your data that can come from any JDBC 2 database and basically the object model capabilities move objects allow you to automatically access this data and combine it with the views defined in the Java and HTML templates and your web app web application server will manage that in conjunction with your web server to present it to to web browsers or to Java applications so it's a really robust full-featured and easy to develop for web application environment and not really going to go into much about it here there's a lot to say but we have about 10,000 sessions on web objects so if you're not familiar with lob with web objects you probably want to check one of those out while you're here this week so so that's it for web services of course another key feature of Mac os10 server and something that really differentiates that from a lot of the other UNIX servers that some of the core technology is derived from is the administration capabilities of course we have Mac OS 10 and aqua itself obviously provides a very strong and easy-to-use platform and we have full aqua UI for managing all the key services in Mac OS 10 so again we have a very easy to use server product it's the administration's secure can be used you can manage it remotely or locally multiple services the key here is that you have all of the key features of the services that can be managed from this application and of course the services like Apache are apache under the hood so if someone needed to they could go under there and access the unix services themselves and configure them themselves you know underneath the hood but but again you don't need to because all the administration takes care of this for you and you can easily do things like setting up complex multi hosted websites in minutes with the UI and the administration tools the last thing about some of the core services in Mac OS 10 is the network services if you're setting up a sophisticated networking environment you may need to take on some additional work for TCP like setting up DNS servers or setting up DHCP servers and Mac os10 provides a set of networking services it'll allow you to do this so yeah it's fully standards-based so all the relevant standards dhcp bootp dns SLP are all supported by Mac OS 10 server we have DHCP which provides support for dynamic TCP address management and can also be used to set up netboot clients included in Mac OS 10 server Mac OS 10 itself includes a technology like Mac West 9 did called SLP that allows you to dynamically register resources on the network it is TCP equivalent of name registration like MVP for those of you that are familiar with appletalk and it really allows a plug-and-play of resources and services on a tcp network like apple talk but without all the chattiness of apple talk and the basic registration and lookup is included in the clients but what Mac OS 10 server adds is a more sophisticated server and administration capability that allows you to set up scopes which are sort of like zones in Apple talk to really manage a network an SLP network for a large number of clients and of course those of you that want to do dns there's a DNS server in there as well and we'll be adding more sophisticated UI to that in the future and of course with the UNIX underpinnings as well we have the UNIX networking stack and the IP filtering that goes with that for protection for firewall protection so that sort of covers the core foundation services in Mac OS 10 server the next area of course that's key to a lot of our customers is the desktop management that includes macintosh manager or netboot and for that i'm going to bring up Rob devil who's going to talk to you more about desktop management in Mac OS 10 server [Applause] there we go oops hi I'm here today to talk to you about desktop management with Mac OS 10 server software desktop management comes in basically two different flavors with Mac OS 10 server you have your basic Mac manager which is a cert the server controls your client software in a variety of different environments however we also have netboot and we're releasing a netboot 2.0 server and this release which enhances and increases the performance and the capabilities of the net move for Mac manager basically what we wanted to do is we have a certain set of goals we wanted to make a simple administration experience we wanted to work in an integrated environment with industry standards and we wanted to allow you to administer the server for Mac OS 10 and Mac OS 9 we wanted to make sure that as we move Macintosh manager forward that we maintain compatibility with the thousands of Mac manager clients that are out there and we wanted to make the experience that Macintosh manager users have more integrated into the Mac OS 10 server server environment so that what we're doing is we're no longer using a separate users and groups database to manage Mac manager users the users and groups you set up on your Mac OS 10 server and the users that are your Mac manager users are the same users [Applause] what does that mean well you have a single username and a single password for all of your services the users use the same users and groups database because the users and groups database can access directory services and accesses directory services on Mac os10 server that also means that you can store your users and groups data not necessarily on the Mac os10 server they can be back ended on an LDAP server or an ActiveX an Active Directory server this is the place where your Macintosh user will have his home directories and the experience will be very similar to what you get under Mac os10 with their user home directories our admin for bakit OSH manager isn't carbon that means that you can run it on a Macintosh 10 client or you can run it from a Mac 9 client as well the client support runs from Macintosh operating system 8.1 to 9 point X this version also contains Kerberos support and the last item is we're planning to do a technical article in the coming weeks hopefully to discuss what you would do to have your applications fit inside a Macintosh manager environment [Applause] this is basically the Macintosh manager architecture Macintosh manager server sits on the same machine as your Apple share server your Mac OS 10 Apple share server which both sit on top of directory services as I discussed your user profiles are stored through directory services your users and groups database can be stored can be stored locally on the Mac os10 server or they can be stored remotely since their access through directory services and your clients sit out on the network wherever they will as does your administration netboot we've made a few changes to netboot we wanted to simplify the workgroup administration we wanted to have multiple desktops share the same server hosted boot image we wanted to be able to protect that image from user modification and we wanted to make desktop OS upgrades trivial we want we work currently with a standard unmodified Mac OS 9 system and currently we work with Mac OS 9 system only the boot performance that we've experienced in this server is comparable believe it or not to a local disk we have some improvements some of these are in the product now we interoperate with standard DHCP servers in a previous version you had to have a hard-coded IP address for each individual Mac netboot client with a current release of 200 the client gets its IP address from DHCP this allows for you to be able to add a new client dynamically to your net boot environment this also we've also added some scalability in the previous release you could have one server per subnet in the current release you could have multiple servers per subnet however since there are two different types of clients we have a1o compatibility version that's running in this current server you can only have one Oh server per subnet but if your clients are newer and you have you can have multiple servers that offer the two Oh functionality per subnet you can also talk across routers so what do you need to what how does this impact you other than as users of the product well you have to assume that the Mac OS that you're going to be talking to or that your users are going to be using is not persistent and what does that mean well that means that the operating system is existing on a hard drive and could go away not on hard to do me on the network and could go away so this is a brief graphic of the way the server currently is working basically what you have is you can have your own existing network you can plug a Mac os10 server anyplace on that network on either side of the router and your clients will can get their DHCP services from that server and they can also netboot from that particular server and we've built in some load balancing so that if you have a certain number of clients coming in talking to server a in this particular example and it's fairly busy serving pages it'll automatically route over to server B and or server C next we're going to have Greg Vaughn talk about developing for Mac OS 10 server Greg [Applause] hey basically I've been working doing server development at Apple for like over 12 years we've talked about a couple developer opportunities here in conjunction with our product what I'm going to focus on is actually developing variety reporting servers to complement the ones we provide in Mac OS 10 server it's a short presentation I'm just going to point out a couple things to watch out for and some things in 10 server that you can use to take advantage of and customize services so porting UNIX servers to 10 server I mean basically it's Unix shouldn't be any more difficult to port to than any other UNIX platform there are a couple things to watch out for probably the biggest thing is the fact that HFS is a case-insensitive file system definitely UNIX servers may or may not rely on case sensitivity but it's something to really watch out for because it can cause really subtle bugs when we're reporting Apache over did we had a problem with the security stuff because the URLs you enter in to restrict access Apache would match case sensitive and if the user used a different case Pachi would say oh this is fine it's for something else then the file system would find the file you were trying to restrict so basically that was something we ran into late and had to figure out a way to work around it's it's subtle bugs that you really need to watch out for if you have a server that basically you can't get to work any other way you can always run it on you FS and get the case sensitivity but it's not as nice another thing is in slash Etsy files like Etsy password or Etsy EFS tab generally you're not supposed to really access those directly anyway they're api's to access them definitely on 10 those files are redirected to through the api's to go to net info and other directory services so you should use the api's if you're porting a UNIX server it's probably already talking to you know standard UNIX api's and for a server that's generally a good thing there are some api's you can use on 10 that will help you add value directory services is certainly one the directory services presentations right after this one so you might want to stick around for that corefoundation provides a lot of different utilities that can be very useful things for dealing with Unicode or parsing XML files and stuff like that and if you want to gain access to the HFS+ information resource Forks type and creator the carbon file system stuff is what you want to use you do have to be really careful though on 10 a lot of the api's outside in the core services require a logged in user and for a server generally you'd like your service to be able to start at boot time and not have somebody logged in so certainly want to separate out any UI related things and you want to watch for api's that require user to be logged in on the server couple random little things [Music] starting the server most things in 10 desktop are started through bundles in startup items basically it contains a script that starts your server usually based on a parameter and host config and then there's a P list to determine start order you can add your stuff to startup items to start a server on 10 server we also provide the watchdog process this is the thing that provides reliability I'll talk more about that in a second admin user vs. route basically servers often will run as root and that's fine but when you actually log into the machine physically the users are gonna log in as an administrator and UNIX won't treat them as root so you do have to be aware of the thing that administrators can and can't do and and how they're gonna interact with the server running is rude as far as file system layout if you've got a UNIX server probably it's gonna have files in the normal UNIX directories and that's fine you do need to be aware of if you have files that you want the user to interact with log files or config files since the UNIX directories aren't visible from the finder unless you want the user to have to like go into the terminal and use VI you may want to either move them or one of the things we do is provide a symlink in a place like slash library that points into the normal UNIX place for the file to live that way user can use you know TextEdit and other GUI apps to deal with those files directory permissions again because the administrator isn't going to be logging in his route if he's gonna write to a file you need to make sure it lives in a place where the admin users have right access to other services the watchdog service we've sort of referred to in in the other sessions it's the thing that provides the reliability of restarting servers it's got a config file that you can add your own service to that will start it at boot time and if your service crashes it'll get automatically restarted it also you don't really need to directly deal with this but it also will work with the hardware on the system so that the whole servers for some reason you know gets hosed it'll basically restart the whole machine if you have 10 server installed it's got a man page that fully describes it so you can just do man watchdog and it'll say how to use the config file servers basically if it uses crypt authentication that's you can continue to use that if you want to provide other authentication methods again directory services is the way we do that you can go to the presentation after this and find it we we use that with samba to provide NT style authentication and it's also extensible so you can pride other authentication methods as far as development tools if you you know if you have a UNIX app that has you know scripts and make files it's usually easiest to continue to use those you can use project builder to you know edit your source code and create a project for that if you're writing something from scratch yeah I prefer using the GUI tools you can always use VI if you like if you're writing something that specifically is for 10 server versus 10 desktop and you want to check to make sure you're running on a 10 server system there is a file basically server version dot P list that only exists on 10 server in system library core services and can just check for the existence of that file one final thing is want to make a plea if you're writing a normal desktop app the most important thing you're usually testing for is functionality with the server app most important thing is you want the server to be able to run for like months and so you really need to watch out for things like memory leaks that will affect system performance over time there's a couple other sessions you can go to in terms of debugging tools and performance tools but you really want to pay attention to that when you're debugging your apps malloc debug is an example of a good tool to look for memory leaks and that's covered in other sessions so basically here's some other sessions that you want to go to I don't obviously have time to really go into detail on this and it's well covered in other sessions first couple have already happened the network services location if you want to provide browse ability for for a server is very nice and the performance tools and debugging tools are very good sessions I highly recommend then also the directory services line right after this and Eric come back up thank you Greg so why develop for Mac OS and server well at Mac OS and server is Apple's server platform for the next generation just like Apple is committed to Mac OS 10 as the future of our operating system Apple is committed to Mac OS and server as our future for our server platform we've designed Mac OS 10 server to specifically be a server it's not a desktop platform this is a server platform and by developing for Mac OS and server you can take advantage of that you can take advantage of some of the server specific features that we've provided like default tolerant systems and the access to some of the net other services and by building for Mac OS 10 server you can take full advantage of UNIX and the open source development community and open source projects as whether they're projects that are out on the internet today or they're code that's apples kickin back to those open source projects so some key developer opportunities for you obviously one of them which will be discussed more in the session that follows is directory services integration you there's a lot of different directory services plugins that could be developed for integration with Kerberos native active directory novell and is NIS plus there's server management administration opportunities for us developer to build web based management systems or some log analysis log analysis or reporting software server monitoring backup and restore so a lot of different opportunities are available to you on the web side we discussed some of these earlier but you could build other web interfaces and other applications for the web services whether it's taking advantage of the Apache module integration that we have web objects java servlets or even building a database middleware solution on the hardware side there's raid solutions that could be developed or storage arrays power management systems and in the design and publishing community there are professional high-end printing solutions that could be developed and deployed on Mac OS 10 server so this is more of a roadmap for some of the sessions that will follow notice the directory services one following here we will have a session on QuickTime streaming server on Wednesday there's a Mac OS 10 server feedback session on Friday network service location for registering services on the network security and Kerberos on Thursday and how to take advantage of AFP 3.0 and the Apple share client that's in Mac OS 10 on Thursday as well we've got some file system open source bsd services and of course web objects so if you have any information if you have any questions about developing for Mac OS 10 or taking advantage of some of the networking services that we provide a macro sense server feel free to contact Tom wire and hopefully all of you in this room know him like right now there's an email address you