Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: wwdc2001-600
$eventId
ID of event: wwdc2001
$eventContentId
ID of session without event part: 600
$eventShortId
Shortened ID of event: wwdc01
$year
Year of session: 2001
$extension
Extension of original filename: mov
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: ...

WWDC01 • Session 600

WebObjects: State of the Union

WebObjects • 45:53

WebObjects 5 is the most significant release in the history of Apple's award-winning web application server software. With fully integrated Java support, WebObjects becomes available to a wider audience of developers and users worldwide. Find out about the WebObjects sessions at WWDC and get a sneak peak into the future of WebObjects and Enterprise Objects technologies. Meet the key players and discover what Apple has planned for the year ahead.

Speakers: Ernest Prabhakar, Ernest Kim, Tom Naughton, Ron Lue-Sang, Matt Rollefson, Timothy Joransen, James Dempsey, Roshanak Afsarifard

Unlisted on Apple Developer site

Transcript

This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.

Thank you all very much for coming. Some of you are just scooting in at the last second. How many of you, for you, is this your first developers conference? Wow, thank you all so much. How many of you have been more, how many of you have been to more than two developer conferences? Wow. So all of you people who are newbies, check out the old folks so you know who to bug for questions.

All of you who have been around for a very long time, please welcome all these new people who are helping us expand the community. It is great to see you all here. I'm glad we have the civic auditorium this year. Those of you who have been here for the last two years know that we have always overflowed the room that we have been in. That doesn't seem to be a problem today. At the rate we're growing, though, it could be a problem another year or two, in which case we'll try and rent out the San Jose Arena for the next WebObjects overview session.

It is great to be here. We are so excited to have you here. We got a lot of great stuff to talk about and a lot of great speakers and people I want to bring up on stage, so I'll go ahead and get started. Just to start out with, I want to welcome you to the world of WebObjects, for those of you who are here for the first time. We've got a lot of things to cover. This is really a whole new beginning. This is the beginning of my talk.

It's the beginning of lots of cheesy animations. More importantly, it's a week full of learning. There are so many sessions that people have been working like crazy for the last few weeks to get ready for you. We have some brilliant people, some fantastic speakers. You're going to learn so much here on the WebObjects track, as well as in the other tracks that you may have a chance to sample. It's also the beginning of a whole new era for WebObjects.

WebObjects, as you know, really created the app server market five years ago. We've been working very hard to try and bring it up into the modern internet age with the emergence of Java and internet standards, as well as being part of the Apple community. And we really think we've done something pretty fantastic. It's a work in progress like everything else in this world, but we're very excited about what we've done and really want to help you get involved in what we're doing. There's several things we'll be learning this week.

First of all, we want to help you get to know the people behind WebObjects, get to know the people that you've been seeing email from or code samples from over the years. We want to give you the inside scoop on WebObjects, as you've probably heard about this morning.

I want to talk to you a little bit towards the end about some of the things we're doing with documentation, some of the training and consulting services available for my services, some information about the different sessions you'll want to attend this week, as well as a few surprises. So to start with, I want to invite out the engineering team behind WebObjects. These are the people who have built WebObjects 5.

Tony Triovane is the new director of WebObjects, recently promoted to director in charge of WebObjects engineering. I've got you to hold your applause to the end or we'll never get finished with this. Genevieve Perugina in charge of the quality and sustaining engineering. Andreas Wenker, Jeff Glasson, Francois Jouault, and Stan German. Big hand for WebObjects Engineering.

Of course, all of you know that getting a product out the door and building the software is only a small piece of the puzzle, so I also wanted to give you a chance to meet the rest of the team behind WebObjects. Bob, if you could lead out the troops, please. This is the WebObjects support team.

Bob and I are in marketing. We lead. Other people follow eventually. Please announce Bob Frazier, the new WebObjects product manager. John Gavish, and David Koehn, and James Trenum. This is a position that many of you know I've been trying to fill. My job is to be in charge of all the developer stuff we do at Apple.

And I wanted someone who could really focus on WebObjects, who really understood the technology, to really focus 100% on building and selling WebObjects. So very pleased to have Bob Frazier on board. Many of you know Tavares Ford. He's at the end of the DTS email address that many of you have to deal with.

Matt Rollefson, of course, is in charge of documentation for WebObjects. He'll be sharing more shortly. And then, Robert Esquire is in charge of all the service and support for WebObjects and Mac OS X Server in the AppleCare organization. And then, Tim Joernsen and James Dempsey from Apple iServices, who many of you know. Thank you guys very much.

and of course the star of our show, WebObjects 5. WebObjects 5 is shipping today. We are very excited to have WebObjects 5 out here. I was just telling a number of people this is the first time I've ever had all GM software sitting on my computer. Mac OS X is GM, WebObjects 5 is GM, Mac OS X Server is GM, and not only is it all GM software, I can hold it all in one hand and carry it around for a full day without getting tired, thanks to the new Titanium PowerBook G4.

It's a wonderful time to be an Apple developer. We are very excited that the original web application server is now available in Java. We really want the world to know that this is the incredibly powerful way to create Java server applications. There's a lot of people building server applications in Java, a lot of them putting an awful lot of effort into it. We want to say, you know, hey, we want people who are smart but lazy to do it the WebObjects way.

There's really two things we're focusing on with WebObjects 5. We really see this as the engine for powering the Internet, because the most exciting thing on the Internet today is rich, dynamic content. And this is a great way for large organizations who have a lot of content, whether that's digital multimedia, whether it's large corporate databases, or it's enterprise integration systems, they need to be able to interact with that data across the Internet.

This is also a great way for web developers to bring their applications to the Internet. We have desktop applications, client server applications, legacy web applications. They need something really flexible, scalable, and maintainable. We want people to see that WebObjects really is the smart way to bring their applications to the Internet.

Now some of you may be new to WebObjects, so I just want to step real quickly through the architecture that we use in WebObjects. Now all of you are familiar with static websites where you have a basic HTML file delivered through a web server to a browser client.

What an application server does is it makes that much more dynamic. This way you don't have all the same people saying the same content all the time. We introduce an application server into the mix, which allows you to put dynamic logic in the middle of your application. And then rather than having to hand code the HTML, you have templates, which allow you to easily interject the appropriate formatting and presentation for your application.

And then you have an object model you pull your information from. Now a lot of these times you will have the same file. People try to put their application logic and their object model and their templates all together. Some scripting languages, which will remain unnamed, are notorious for this sort of thing.

With WebObjects we have a nice strict separation between our object model and our templates and our business logic. And our object model also isolates you directly from the databases. Your HTML file does not know what database you are using. It doesn't know the scheme of your database. All you know is that there's an object model which can talk to mainframes, databases, ERP systems, directories, or XML files. data streams.

The other great thing about this, because of this modular architecture, you can use that same logic and the same backends to deliver extremely rich clients using Java, not just HTML. And also you can use your application server technology that runs on the server to really scale up the power and flexibility of your system to meet increased load.

So with WebObjects 5, there's really five key benefits we're talking about. Since we have so many new people here, I really wanted to stress some of the things that many of you in the WebObjects community may have taken for granted. And what people have failed to realize is that WebObjects, even though a lot of other people have appeared in the last five years, there's still several powerful advantages that WebObjects has over competing technologies. These five key technologies that I want to spend some time on are automated data access, streamlined page generation, incredibly powerful rich desktop application support, of very scalable Java deployment and integrated developer tools.

So to start with, I want to talk a little bit more about automated data access. The big thing about WebObjects is you don't need to write SQL or JDBC code in order to talk to a database. We automate all that hard work for you. This makes a couple of benefits. One, it means you're independent of your database. You can change databases, you can modify the schema, you can use several databases at once.

Your application code doesn't have to know the intimate details of your database. Much more flexibility. It also means your application programmers don't have to be very sophisticated database programmers. We handle all the fetching, all the caching, all the updating of your database objects automatically via this transparent persistence layer known as Enterprise Objects.

To help demonstrate this, I want to invite up Ernest Kim of the WebObjects engineering team to do a quick demo of how we do data modeling in WebObjects. Ernest? And can we please switch to the demo machine? So we have here WebObjects 5 running on Mac OS X, taking advantage of the gorgeous Aqua user interface, and we'll go ahead and create a new data model.

So we just go through and you notice that JDBC is the preferred database access mechanism for WebObjects 5. You just access it via a standard URL going over the network or to the local host for a database. For this example, we'll use OpenBase, which is available as part of the developer tools to support our examples.

There are a number of other databases available for WebObjects, as we'll be talking about shortly. And we just find a database table, we choose some of the information that we want to walk through, and it automatically goes and reverse engineers a data model. And we'll actually, for simplicity, we'll skip over the relationships, but you'll see there's a whole host of tables, and it goes through and it figures out what the tables are and generates objects that correspond to that and defines a model file, which can optionally include all the referential integrity checks.

That means that you get a table that says you get an object model that you can work with in your application, which is mapped to the database, but it actually knows about all the relationships associated within that table. So this tool, just by talking to the database, knows all the relationships, the primary keys, the foreign keys, 2, 1, too many relationships.

Incredibly sophisticated model that is being figured out automatically by the tools. And this is all work that you do not have to do. The tool does it for you. This means you can get started writing your application logic and working at the high-level object model using the power of the WebObjects tools. Thank you very much, Ernest.

So you've got your data model, so you know what your data is. Now the next challenge is doing something interesting with it. WebObjects provides a couple of different ways that you can really take advantage of that. One is we handle a lot of the hard work of page generation.

With WebObjects, we try to really separate out the information needed to generate a page into three key pieces, the HTML template, the business logic, and the enterprise object containing the data persistence. And we use a technology called Web Components to really encapsulate these things while isolating the HTML templates and the logic from the data.

The Web Component architecture manages all the hard work of doing HTML request response to manage the sessions, the users, the security, all the things that become very complicated when you're doing three tier web applications. This technology is also very flexible and can be used to generate HTML, XML, or even Smile for multimedia applications.

It also makes it very easy to embed rich client side scripting and other controls into your data templates without having to corrupt your business logic or your database with any of that information. It also has the ability to be fully multilingual. So you can create multilingual sites using WebObjects technology. So we're very excited about the potential this offers to streamline page generation and make it easier for people to keep really rich, visually compelling websites very quickly and easily. So to demonstrate that, I'm providing up Tom Naughton from the WebObjects engineering team. Tom, push the demo, please.

There's a lot of different ways that you can create WebObjects applications from scratch or using various tools and assistance. We're going to create a type of application known as a display group application. A very common way to view a database is to look at a certain field and then find other tables or fields that are related to that piece of information.

[Transcript missing]

So we'll go ahead and just finish, and this will go ahead and create just a very simple web component. So let's go into the web components directory and actually see the components that's created. If we just double click on the WoW file, that should launch WebObjects Builder, and maybe you can maximize that a little bit larger. So you can see it creates some interesting elements, including a repeating element within the area.

And these are just very simple tags added into an HTML file that say, when you get to this tag, instead of just returning HTML, talk to a WebObjects component and return dynamic data. Okay, so a very simple file, a very simple HTML file, very little piece of Java code. And you can actually go and run this application.

And when you do, it launches WebObjects application. It'll actually be smart enough to launch your browser of choice and bring up the URL for your web application. And we'll be turning along, compiling Java. on Mac OS X, taking advantage of the project builder. First time we're launching Internet Explorer here. And you see, we will bring up in seconds a full, complete, sophisticated web application. Go ahead and type in some data.

Go ahead and select an entry, and it's there. So we have a full, sophisticated web application created from scratch using WebObjects in a matter of seconds. Thank you very much, Tom. And these are full-featured applications. You can edit, browse, delete, add rows, etc. And you can easily take this simple application and customize it.

These are things that usually take a couple of weeks to get up to speed, to get your data model, to get your page generation, to get your session management all taken care of. WebObjects does the hard work for you, and it does it all using frameworks rather than generated code for the bulk of the logic that's going on.

And because it's framework-based, you know it's our code that we have built, that we have tested, that is reused across all your applications. So you don't have this huge mass of generated code to maintain as you sometimes get with other development environments. The other great thing about this, because it uses frameworks, we can substitute in other frameworks for the viewing of your data.

And one particular way to do this is using rich desktop applications. HTML is great for a lot of browsing and for the greatest possible reach, but often you want to have a much richer, highly interactive user experience, which has client-side caching for great responsiveness, very live, active controls, and very sophisticated and complex widgets.

So through that, we've found a number of tools for integrating both Java and Cocoa technology with WebObjects 5. And to demonstrate that, I'd like to invite up Ron Lusong from WebObjects Engineering. Ron? Ron will get rid of the browser because he doesn't need that for his kind of apps. And we'll go in to the project builder, again, the heart of the Mac OS X development experience. We will create a Cocoa application.

And we'll just go ahead and create the project using Project Builder. And again, the important thing is choosing the model. The model defines the data access and persistence of your application and provides a strong typing that you can use to define the other heuristics. So we'll create a fairly simple table here using Cocoa.

And again, we just specify the entity that we want to look at as well as some of the key attributes. And again, we can use the model to go ahead and traverse different entities and relationships to walk through the data model. and then add a few forms in there for a more richer and complicated user interface.

And again, add a query field for what we want to look at. And that brings us into Project Builder. And instead of a web component, we now have resources, in particular an interface builder file, or a Nib. And the Nib uses the technology known as EO Palette, which provides the ability to drag and drop connections. So if you bring up a connection inspector, you can see how one of the tables Those things are actually, those forms are actually connected into the database using the connection mechanism in Interface Builder.

Little troubles. Okay. You cleaned up the Nib file the way you wanted it, Ron? Okay, so Ron rearranged some widgets in the Nib file. Now we go ahead and build the application. And it's compiling the Java down to JAR files, wrapping it in a shell application, conforming to the Mac OS X packaging guidelines so you get a nice full double-clickable application. It'll automatically launch it for you. And we have live in Java a complete Cocoa application created using WebObjects and Enterprise Objects. It's all live, very quick series. You don't have to deal with page refreshes or page resizing. Everything just works. Great. Thank you very much, Ron.

Those are three of the really key powerful advantages in WebObjects and WebObjects 5 in particular. The other thing is scalable Java deployment. We have a nice Aqua compliant monitor application that you can use to browse all the different WebObjects application servers on your network, manage instances, controls. And with WebObjects, it's really easy to add new machines and extend the reach of your application. We support multiple instances, multiple threads, multiple processors, all running on one or multiple machines to make it really to create very sophisticated and powerful web applications.

The other thing that's really exciting about this that I wanted to just talk to you about, a lot of people were concerned when they heard about the move to Java, wondering about, wasn't Java slow? Would it hurt performance? So we got some very interesting results back as we've been testing performance. We did a simple test where we insert, search for, and delete three movies. The basic database access loop that is common in these kinds of applications. We ran it for basically three server days, six machines, three runs, four hours each. The results were very impressive.

On Mac OS X, Server Vision 10, testing it against 4.5.1, we found that we were 22% faster than we were with WebObjects 4.5.1. On Windows 2000 Pro, we were over 50% faster than we were. And of course you think, okay, well that's for certain platforms. What if I want to do some really heavy-duty deployment on Solaris? With Solaris, we were 187% faster.

So, I mean, there's several things you can take away from this. Obviously, every application is different. Every application has its own performance characteristics. This is a very simple test, but it's the test that we've been using to monitor the performance of our runtime. And one of the things this tells you is the Objective-C stack was highly optimized on Mac OS X. It's been very optimized on Mac OS X. The Java stack has also been optimized on Mac OS X. And you can see that we got a benefit even just using Java versus a highly tuned Objective-C stack.

On other platforms, such as Solaris, where there's a lot of people working on the Java stack and relatively few people working on the Objective-C stack, performance is even more impressive. So this is the fact that we're able to take advantage of all the work that all the industry is doing on Java performance, on their database drivers, on their runtime stack, on their threading model. It makes it very easy to deliver very powerful, scalable Java applications using WebObjects 5.

But last but certainly not least is the fantastic suite of tools that make WebObjects such a joy to use. Most people think of web application development as this incredibly tedious, painful, grungy thing. With WebObjects, it's fun. How many of you are addicted to WebObjects development? Those of you who have been using it for a while, there's a sense of which, if I can't, I mean, some of you may know my history. I started out doing next step development while I was in college. And when I graduated, I ended up going into management consulting. Because if I could not use the tools that I was used to using on my desktop, there's no point in being a programmer.

And with Apple acquiring next in the WebObjects technology and making it available in the mainstream in the mass market, you know, in gorgeous places like the Apple retail stores, you know, there's a chance for this technology to really become mainstream and it actually gets fun to program again. I'm very excited, as you probably guessed.

So there's five key technologies that are part of WebObjects in the application tool space. WebObjects Builder for HTML layout and design, Interface Builder for laying out Java and Cocoa applications, the Project Builder, of course, the heart of our development experience, the fantastic Enterprise Object Modeling tool, and of course, Rule Editor. Some people may not be as familiar with that, which is used for the direct-to-Java client and direct-to-web applications to manage these automatically generated applications.

And there's really four key advantages we're stressing to people as we go and talk to the press, talk to analysts, talk to customers about why they really should want to consider WebObjects. The first one is rapid time to market. WebObjects is really designed to support very sophisticated modular development.

In fact, you can build things in parallel with very good isolation where the frameworks do the hard work for you of application design and partitioning, as well as some of the really painful grunt work of session management, page generation, and data access. As well as a really comprehensive suite of smart tools to streamline the way you build your application.

This is really a dream environment for a lot of people who don't really believe the web development can be this easy and can be this fast. And I've talked to someone at lunch today who is in a business, an industry, where they have projects that are six months long, and they can't afford to spend six months doing the design of their application server. They want something where they can turn on an application that's robust and tested in three months so they can get their job done that much quicker. And this is the tool for people like that.

In addition, there are the very powerful assistants. They allow you to create fully functional prototypes in just seconds using the direct-to-web and direct-to-Java client functionality. They allow you to browse your database, access your data from anywhere, and then iterate on the important pieces to create more sophisticated and complicated web applications. The second one is quality.

A lot of people, you know, they rush things to market and they have to sacrifice quality. With WebObjects, we try to reduce the problems there. One is that we have a very mature set of frameworks. Again, WebObjects 5 is the first with a version entirely in Java, but a lot of the technology has been part of Java client WebObjects for several generations.

And the frameworks themselves were designed by people who really understand WebObjects, who understand object technology and object orientation, and are able to really design things that simplify the way that you develop your application and be able to refine that over the five generations and five years that WebObjects has been in existence.

Also, the way to get around Murphy's Law is to have fewer things that can go wrong, because we all know that anything that can go wrong will. But if you're running a small amount of application-specific code, anything that can go wrong with your application is much smaller, and therefore you're much more likely to get a fully functional application much quicker. And because the same frameworks are leveraged by so many people over so much time, they have much greater ability to ensure the quality of those things.

WebObjects really tries hard to isolate pieces of the application one from another. Your data access, your HTML, your business logic are all isolated from one another. When you see the kind of programming models where you have web designers working on pages which have scripting code embedded inside the web page, which talk directly to a database, that means if your beautiful, creative graphic designer puts a wrong comma in their code, they could corrupt your corporate database.

This is not a good idea! We really want people to understand the importance of properly architecting their applications to ensure scalability and security of your application. Things like Java Client, where with WebObjects you have three-tiered Java clients where the sensitive code is on the server rather than on the client. So if someone decompiles your Java client, they don't have access to all your sensitive business logic, where they can talk directly to your data center.

Very powerful partitioning technologies that really improve the security and reliability of your application. And last but certainly not least, having all the referential integrity constraints embedded declaratively in the data model. I mean, we all know what it's like to work on a long project in the wee hours of the morning, trying to beat a deadline.

And it's very hard to make sure that you remember all the little things that are the dependencies between different pieces of your database and your application. And WebObjects handles all the hard work remembering those tedious details for you to make sure your data stays safe, no matter how tired you may be.

And certainly the big thing for WebObjects 5 is full accessibility to Java. WebObjects runs pretty much anywhere with Java 2 platform, standard edition 1.3. Obviously, in order to be qualified and supported, you need to run one of the configurations we've actually tested it against, such as Solaris 2.8, Windows 2000, or Mac OS X Server.

But the fact that it's in Java makes it much easier to run in a bunch of different places, makes it more familiar to Java programmers, and also makes it easy to interoperate with other Java solutions. There are already people who started working with the beta or early releases of WebObjects to integrate it in with servlets or EGB containers or other Java technologies out there, web services, etc.

One of the more exciting things is we integrate the latest Xerxes XML parser from the Apache Software Foundation based on some very important IBM technology. And it allows you to import and export XML data into your WebObjects application, integrate it into your Enterprise Object models, to make it very easy for you to create things like web services, create things like XML SOAP on top of WebObjects. There are some very exciting things we've done with WebObjects.

People are doing WebObjects today. There are some even more exciting things that we expect to be able to do with WebObjects 5, with the Java interoperability. We're looking at some really interesting technologies like Enterprise Java Beans and web services, and how to make it even easier for you to create those kinds of great solutions with WebObjects.

But even today, because of the power of Java, because you can run on standard Java virtual machines, it is very easy for you today to go out and integrate these things with standards-based technologies wherever you need to, to get your job done in the environments that you're working in. in your networks.

And last, and this can't be stressed enough, Avi mentioned this in the keynote, WebObjects is a proven solution. Some of the best brands on the internet have deployed very sophisticated mission-critical web applications using WebObjects. Whether it's customers doing consumer-oriented websites, higher education sites like the University of Michigan Portal, creative solutions like Adobe InScope or the BBC News site, or business solutions like the MCI WorldCom or AT&T Wireless Billing Solutions.

These are mission-critical applications serving many customers. And of course, that doesn't even mention some of the incredible Apple solutions available like the Apple Store and iTools that service millions of our customers. Of course, the greatest thing about WebObjects 5, especially for those of you like me who have been around for a while, is that it's available today, here, it's shipping. Feel free to applaud.

As you know, Apple decided this was just way too powerful a technology to just leave in the hands of a few very large corporations with deep pockets. So we've priced it at $699. We put it in retail outlets like the Apple Store, so you can walk down to Glendale and McLean, Virginia, or soon any of the other 25 Apple Stores, and pick up a copy of WebObjects, start building sophisticated enterprise-scale web applications today. It's available worldwide via the Apple Store and authorized resellers. There's evaluation copies available.

How many of you have already installed your developer tools CD you got in your backpack? Okay, some of you have started. For those of you who didn't notice, the developer key that's associated with it expires at the end of September, and that is located in the PDF file at the top level there.

So make sure you read through the README. I know all of you read through the README before you install, but in case you don't, be sure to do it this time so you can get the license key that you'll need in order to install WebObjects. I'm also pleased to announce that we will be providing very steep discounts to ADC members. Premier members will get WebObjects 5 for free. Select members will be able to purchase it for $399, almost half the price. We think this is fantastic technology.

We want to get it out to all our developers. The other thing which isn't mentioned here is that WebObjects 5 deployment, the full unlimited deployment, will be available as part of Mac OS X Server version 10. So if you buy Mac OS X Server version 10, you can deploy your WebObjects application for free as part of that very high-performance Java 2 implementation.

WebObjects 5 will be available as a single product. It will be a single box containing the developer tools for both Mac OS X and Windows 2000, as well as deployments for Mac OS X Server, Windows 2000, and for Unix. A single box, if you buy it from anywhere, has all the pieces you need to develop applications on the leading desktop operating systems, as well as deploy on virtually any Java platform.

So that's the product of WebObjects 5. Of course, there's more to it than that. Just to give you a quick roadmap, of course, WebObjects 4.5 was the version released last year, really bringing it to Mac OS X server. The last release of the WebObjects 4.5 train, 4.5.1, was released in May, which supports Objective-C applications on Mac OS X. It provides a number of important bug fixes for other environments. And WebObjects 5, of course, was released this week. WebObjects 4.5 will be end of life.

In order to support WebObjects 5, it will be in the channel. WebObjects 4.5.1 will continue to be available via phone order from the Apple Store for quite some time to come to enable our legacy customers in the transition. We definitely want to see all of you moving to Java. This is the future of database development on the Internet. And we're working very closely to make sure that we have a good transition story for our customers. The Java converter provided in both 4.5 and 5.5 is a great way to get started.

WebObjects 4.5.1 and WebObjects 5 will convert your Java code, as well as having a lot of the grunt work of Objective-C to Java translation. Obviously, there's semantic differences, which requires some effort. WebObjects 4.5.1 is also available for those who have existing applications, whether those are WebObjects applications or legacy Cocoa EUF applications, to enable you to run those applications on Mac OS X. However, I do want to stress the future of WebObjects and of database development on Mac OS X is Java.

At that point, that's all I had to say about the product. At this point, I'd like to welcome up Matt Rollefson, the Documentation Manager for Technical Publications, to share a few words about the documentation strategy. Raleigh? Thanks Ernie. So WebObjects is a pretty large and complex product. It makes it really easy to do a lot of things but it also lets you do a lot of different things. And we have documentation to cover these different areas of the product. There's reference documentation for the APIs in multiple different frameworks, some of which you use everyday, some of which you might only use when you're doing some very specialized type of custom configuration.

There's tutorial and overview information to get you started so that you can get a nice gentle introduction to the product and figure out how do I approach this. There is deployment information which is something that's sort of unique to WebObjects because it is not only a sophisticated development environment but it also has a very sophisticated deployment story where you're going to integrate multiple different servers, potentially several machines, running different instances of your application. . So there's a lot of information there. Dynamic load balancing, talking to different web servers that may be running on completely different operating systems. And there's a lot of technology built into WebObjects to help you get that done.

And then we also have information about specific focus tasks. We've got a sales force that has been working with large customers and also small customers for a long time. They've encountered specific scenarios that seem to come up again and again. Everybody wants to do this one thing. And if only it were described in just this way, we could in fact get it done quickly. So those are available as part of the documentation that's online on your CDs, gets installed on the system when you install the developer tools. You can also find that type of information in the tech notes from the website developer.apple.com.

Now, as part of Apple rolling this out to a wider audience, tutorial and introductory information has been really important. And we know that people like to access things online for quick access, but they don't necessarily like to read lots of documentation online. You know, sitting down and reading through a 30-page PDF is about as much as I can handle, at least, on a screen, let alone a 200-page book that is going to give me a complete overview. So, Technical Publications has a deal with Fatbrain to publish documentation online and also make it available print-on-demand from Fatbrain. So, the first book for WebObjects that we released in this is called Inside WebObjects, and it came out this past winter.

I believe we released it last year. We released it in January. It is an overview of WebObjects 5, gives you information about what are some of the new technologies in here, what are the four major development approaches that I might take when I'm looking at WebObjects and my problem and whatever I want to solve, and gives you some guidance as to what are the tradeoffs, what are some of the performance implications of taking one approach or another, what are some of the flexibilities that I might get from a very high level, where I might be able to get some of the information that I need. So, that's the first part. And then the second part is, if I'm looking at a high level, why should I choose one or the other of these different approaches? Very shortly, we will have another book available from FatBrain called Inside Web Objects: Discovering Web Objects for HTML.

So this is the first of what is going to be a series of books examining the different approaches to development on web objects, taking you through a fairly complex tutorial application, teaching as you go, so that you can figure out exactly how do I write a web objects application that presents a nice HTML interface to users through a standard browser that is highly scalable, available, and gives them access to all the information they need from your database. So look for that on our website coming very shortly, and more coming up in the next six months or more. All right. Thank you very much, Raleigh.

Ron Lee's had an amazing job because he's had two basically completely new versions of fairly mature applications coming out, both Mac OS X and WebObjects 5, in the space of about two months. And having to then, of course, everyone who's used to the older versions wants to have complete, comprehensive information about everything on day one, the way they're used to after ten years of development in other places. So he's got a major challenge. We're staffing up very hard to try and really keep up with the demand for information about this.

And it's going to take a little while for us to catch up with all the great work our engineers have done. But we're very excited about the plan we have in place to really try and address that and get this information more out to you sooner and more comprehensively. Of course, having information is great. Having people is even better. We're proud to have some of the best people in the business working with Apple Professional Services. At this point, I'd like to welcome up Tim Joernsen and James Dempsey from Apple iServices.

Hi, James and I are going to take a few minutes to talk about Apple iServices and what we've been up to. About a year ago we were chartered with delivering professional services around Apple and Apple's technology, WebObjects being a fundamental cornerstone to that plan. We also offer integration services around Mac OS X and Mac OS X networks, technical training, which is really what James is going to spend some time on, as well as technical support.

On the consulting side, we offer a full range of professional services from project management to software development to integration and migration planning with WebObjects and third-party solutions. I just want to throw out some synergies that you might think about. For example, WebObjects could be used to develop applications to help manage Mac OS X networks and the information in directory services like LDAP to help manage that. So there's a lot of exciting things that can be done around Apple technologies and how they can be leveraged together.

We continue to offer technical support for WebObjects development and deployment, and we offer that in two levels, the silver and gold. We do this through support personnel who are not only expert in their field, they also strive to deliver that information in a personalized fashion with the goal of delivering, of establishing a relationship between Apple and you. And as you would expect with any professional, any technical support organization, they deliver that in a timely and quick fashion.

Thanks, Tim. So, I wanted to talk just a little bit about technical training in Apple iServices. As Tim mentioned, last year we were given the task to bring what has historically been, in the three years I've been with the department, a web objects training organization, and deal more with all of the core technologies of Apple computer. We've been very, very busy.

In the next four weeks, we are going to be rolling one a week for brand new or revised courses. We are going to be revising web objects development one and two. Those will be shipping in about two weeks. And we are also working on revising web objects deployment for five. In addition, we are very happy to announce today two new system administration courses for Mac.

We are also working on revising web objects deployment for Mac OS X and Mac OS X server, as well as certification programs around that. Finally, we are also currently shipping a Cocoa development course that we've been working very hard on that we've also been using internally to train over 200 of Apple's own software engineers.

I guess the final thing I'd like to say is that in your bag that you received today when you registered, you'll find a card that entitles you to the program. It entitles you to 25% off any of our developer training courses. That is a deal that is good as long as you sign up for the training while you are here at the show by visiting our booth. After the show, it's a 10% discount that lasts for a few months.

The details are in the fine print on the card. So we're very, very excited about being able to support Web Objects 5 with training that's been time tested over years. We're planning it, updating it for the new Java, pure Java version of Web Objects. Thank you very much.

Just to throw out, for more information, you can go to our website at apple.com/iServices. But again, I would encourage you to visit the exhibit fair where you can get the extra discount on the training and in addition answer any questions. Thanks a lot. All right. Thank you, Tim and James.

So as I mentioned before, we have a little surprise for you. One of the questions that people have asked is, why is Apple doing WebObjects? And there's a couple of answers to that. One is that it's just so cool. How could we not? But... But the other thing is that, you know, as you heard this morning, we are now the largest reseller of Unix systems. The people who build the internet run on Unix.

And we are committed to making sure that we can really live up to that legacy. I come from a long time using BSD 4.2 way back in the Unix community. I'm a card-carrying Usenix member. I really like the culture and the community of Unix and the power and the mindset. I've always been sort of appalled by the graphical interfaces that we've had in the Unix world, which is why I fell in love with Next Step and Open Step and so forth.

And the great thing about Mac OS X, we really bring the power of Unix with the simplicity of the Mac. And we're really able to really try and marry some of these things. And one of my goals in development platforms is to really make Mac OS X the best platform for web development. And so we're really trying very hard to make sure that we work with the Java, the Unix, the WebObjects, the other technologies we have to really create a very powerful and compelling solution for Unix users.

And so we're really trying to make sure that we work with the Java, the Unix, the WebObjects, and Java developers doing web development, as well as helping all of you people who've been maybe involved with the WebObjects or the Apple community for years really take advantage of some of the great things and opportunities available in web development.

We have a lot of sessions going on this week, starting with the technical overview. This is sort of just the real broad brush of the WebObjects community. Some of the key features to really start digging into the technology and how to start building stuff. There's the overview. We're also trying to make sure that we allow you to overlap with some of the key sessions from the Mac OS X track, like the project builder introduction, to allow you to understand the tools that you're using on Mac OS X.

There's sort of a break point. The first couple of days are really focused on introductions to WebObjects and the key technologies for all the people who are new to the community, for some of the old hands who've been through this a couple of times. You might want to start checking in on some of the advanced sessions available later on in the week, starting around Wednesday afternoon. So we're trying to make sure there's something in here for everyone.

There's a lot of content in here. The WebObjects team not only shipped a product at the developer conference, they shipped 17 sessions in partnership with iServices, which is just a fantastic job. And I want to give them another round of appreciation for all the work that went into that.

And of course, although we all believe that WebObjects 5 is wonderful and it's a great way to develop your apps, it's still a work in progress. We know there's going to be a few things that we missed that may have annoyed you or certain things that you want to do with this product we may not have considered. And we want to hear that.

I'm here. Bob Frazier, my product manager, is here. We are here to listen to you, to understand what it is you need, what you want to do with WebObjects, how we can make your life better, how we can help you get WebObjects in even more places, how we can really help make Mac OS X the best platform for web development, how we can make Mac OS X Server the best platform for deploying rich Internet content using WebObjects, Apache, and QuickTime streaming. That's what we're here for. If you don't catch us during the week, you can catch us at the feedback forum and lend us your ears.

So for more information, we have a couple of different places to go. Actually, a lot of different places to go. The WebObjects at Apple.com is the best single e-mail address to use. That will go to both marketing and engineering to make sure that we track feedback and information that you may have for us.

For things that may require communication, our code snippets are more lengthy examples than we can jot down. It's a great place to send us information about what you need. For iServices, for consulting, integration, training, and support, there's an 800 number as well as websites. There's several different websites. There's an Apple.com WebObjects page, which has been recently updated by Bob, to cover all the great new features in WebObjects 5. There's a developer.apple.com website, which will be updated soon, to cover developer resources for WebObjects.

There's the iServices website. There's also an Apple.com website. There's a mobile support site maintained by Robert and his team, which has discussion boards, tech info library articles, lists of updates, and other information. We've also just recently created a WebObjects announce mailing list, which I need to go finish and send an e-mail out to as soon as I get out of here, to provide people information about new releases of WebObjects, as well as other important information affecting the WebObjects community.