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