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: wwdc2002-700
$eventId
ID of event: wwdc2002
$eventContentId
ID of session without event part: 700
$eventShortId
Shortened ID of event: wwdc02
$year
Year of session: 2002
$extension
Extension of original filename: mov
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: ...

WWDC02 • Session 700

WebObjects: State of the Union

WebObjects • 1:02:11

This session serves as an overview and roadmap for the WebObjects track. Meet the key players and discover what Apple has planned for the year ahead. In addition, developers will get a peek into what's coming for WebObjects and Enterprise Objects technologies.

Speakers: Bob Fraser, Katherine Wenc, Joe Keenan, Dirk Johnson

Unlisted on Apple Developer site

Transcript

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

Good morning. I'd like to welcome you all to the WebObjects State of the Union session. We have a full week of sessions for you, and this is the kickoff for the suite of WebObjects sessions. Before getting started, I wanted to thank all of you for getting up so early and joining us. I apologize for the start time of these conference sessions. But we have so much to fit into the week that we have to get a pretty early start. So I'd like to introduce Bob Fraser. He is the WebObjects Product Marketing Manager.

Bob? Morning everybody. I just gave Tony my hat that I tend to wear around here at the conference, making me a little bit of an easier target. I really like interacting with customers and that will make me a little bit easier to find. So WWDC is kind of a special time for me because I joined Apple just before last year's WWDC.

I'm having a ball at Apple and I love WebObjects. So I was never at Next. I was an old list machine hacker. And these were machines that were built from the ground up to run Lisp on hardware. They had an object-oriented layer on there. They had development environment. And what I remember about it is I remember the incredible power of that development environment and how it allowed me to do more. I remember basically how I could--I was amazed at what I could do by writing just a few well-placed lines of code.

And those are exactly the same things that I love about WebObjects today. That same kind of power, that same kind of elegance of object-oriented code, that same of object-oriented design and what you can really do. So welcome to WebObjects: State of the Union. This is, I guess, the intro session for a whole track. And let me grab the clicker here.

So over the course of this, we've had a very full year. Last year at WWDC was the introduction of WebObjects in Java. Since then, we've released WebObjects 5.1, and we have other great things in the works. So over the course of this presentation, you'll get to meet some of the people who are the developers of WebObjects. You'll get to meet some of the people behind the scenes who are supporting WebObjects.

And we'll talk about WebObjects past, present. And one of the great things about this year's WWDC is that the cone of silence has been lifted. And we'll actually be able to talk about future directions. And in quite a number of the sessions that are here at WWDC, you'll be able to see technology demonstrations of the feature sets that we're working on.

We will also have a presentation-- Thank you. Over this year, our documentation team has been working very hard as well. They've written hundreds of pages of new documentation. So we'll get a presentation from them. And we'll also hear from our professional services and our training folks. At the end, because WebObjects is so comprehensive, we'll kind of go over different tracks you may want to follow of the WebObjects sessions, depending on your familiarity with WebObjects. So let's get started. WebObjects is a powerful set of tools, frameworks, and runtimes for developing and delivering Java and web-based applications.

It's an Apple software product, and in it you get everything you need. You get an integrated development environment. We take care of database mapping and getting the data out of a database for you. We take care of the presentation layer and delivering that data to the end user experience. There's graphical design tools for designing user interfaces. There's a visual development environment tools that let you do drag and drop programming. And we even throw in an application server.

The key advantages of WebObjects are faster development, better results at the end of the day, and lower overall costs. and the way we accomplish this: First, we've got great tools. And these tools allow you to get to market quicker. They work in conjunction with frameworks that have been developed over years and have best practices programming and that do a lot of the heavy lifting for you and handle a lot of detail things and perform a lot of really hard tasks so that you don't have to.

and it's all object oriented and the frameworks foster reuse. So this makes incremental development easy. And incremental development is good because your user requirements are constantly changing. And so what you can do is you can do evolutionary programming. You can do rapid turnaround. You can do things like that.

And so that gets things out quicker and makes it easier to design and deliver better. And also, because of these frameworks, the more we do and maintain, the less code that you have to write and the less code you have to the less code you have to maintain. So, the key features that WebObjects is known for: automated database access, page generation. You can also deliver very compelling desktop applications as well. A complete set of integrated tools and your choice of deployment.

Let's look at an application server architecture. The goal here, the name of the game, is to try and get content delivered on the right-hand side of the screen in either a web application or other application interface. And the simplest form of that would be a static HTML page being delivered from a web server.

That's okay, and that definitely serves a good purpose out there, but you know, things are evolving on the web. And so what you really want for a compelling experience is to be able to take user interaction that comes in and have dynamic content. Dynamic content would tend to be delivered from data sources represented on the left-hand side of the screen here. And so the way that's often done in an application server is the application server is kind of a middleman, and it would use templates and business logic, or application logic.

And you mix in the user requirements with the data, and you muddle it around a little bit, and then you figure out how you're going to present it. And WebObjects does all that. And we have what would be considered a classic three-tiered architecture. You have the presentation layer, in this case showing HTML. You've got an application server that would model your business logic. And you have your data sources or your data layer.

Now what makes WebObjects unique is wrapped around all of this, we have a very powerful object model. So we have a very powerful object model. We also have very clean separation of these layers. We also have frameworks for each layer. We also have tools that work with each layer.

In addition, we're not limited to just delivering HTML. We can also deliver full desktop applications and Java swing-based applications. Let's look at the data layer. So here we want to get data out of a database or data source and get that represented as Java objects. So we have a tool called ELModeler and frameworks called Enterprise Objects Frameworks. What they'll do is they'll do object relational mapping.

We can even go so far as to go in and reverse engineer your database, figure out what's inside, understand the schema, figure out all of the tables that are in there. And then for the entities you select, we'll figure out all the attributes that are in the columns, and we'll model that all up, pick the fields that you want us to, put those into Java objects, and we do that without you having to write any SQL.

We also provide a nice high-level interface to it so that you have an abstraction layer that eliminates having to know the intricacies of the particular databases. This makes it easy to use alternative databases and you can switch databases without having to change your application. And another very powerful feature is the ability to do a unified query across multiple databases.

We also handle all of the persistence for you. So we'll take care of the reads, the updates, the deleting of the objects and map all of that for you. So you get a very nice high-level interface. We take care of all the database details. And we're not limited to JDBC databases. We can also work with JNDI data sources such as an LDAP directory.

So now we have our data out of the database into our business logic, so we figure out what we want to do with the data and how we want to present it. So this is page generation or the presentation layer. WebObjects has a very classical design pattern approach, model view controller, very nice clean separation for generating HTML.

But we're not limited to just HTML. We can generate HTML. We can generate XML streams. We can generate SMIL, which is a multimedia interaction language. And we can also interact with JSPs. There's even a Taglib interface because there's a lot of JSP programmers out there. You can actually take the generation streams called "bo" components and you can actually embed those in Java server pages. So you have choices in all of this. And WebObjects is also really great at handling multi-language websites. We'll see an example of that a bit later.

So you can do all of the different streams, HTML, XML, and such. You can also build full desktop applications, distributed desktop applications in there. We have different flavors of these, some that require actually writing, that don't require writing any code at all, that are generated automatically. And then they're all extensible, and we have GUI tools for doing UI layout and things like that. And this is really, really powerful because there's a lot of things that we can do with this. Occasionally, HTML interfaces are great because they're immediate access anywhere you are. All you need is a web browser. They're very universal.

But occasionally, it can be a royal pain to have to click through like 18 web pages to try and get to the thing that you want. And that's where a really nice, interactive, like tabbed user interface like we have here is a very powerful thing to have. There are other advantages in that because it is a distributed client/server architecture, you can actually decide where you want the objects to live.

So you can do processing on the client-side computer as well. You still can maintain security because you get the choice of where your business logic lives. You can keep sensitive things on the server side. So we have, I think, unique in the industry, I think some of our tools are the capabilities that we have, I don't see matched in anything else. So all of this is supported by a suite of tools.

Project Builder on 10. There's the Project Builder and there's sessions that will familiarize you with that. There's also Project Builder on Windows. There's Enterprise Object Modeler, which handles the mapping, the object relational mapping, going from your database to your Java objects. There's a combination HTML editor and binding editor called WebObjects Builder.

Then those are used to get your model, get your layout, get your application up. And then WebObjects Builder would be used for the HTML type of generation or stream type of generation. And then if you're doing our powerful rule-based paradigm, our direct-to-web, our direct-to-Java, and the other one I haven't told you about yet, we have the rule editor and we have interface builder which can let you build for Java client applications, can and let you build user interfaces.

All of this, and it even comes with its own application server. But you don't have to use that application server if you don't want to. You get your choice of deployment. So we provide, with this, a full J2SE application server that is standalone that you can run anywhere you've got JRE. And it also supports Enterprise Java beans. But with WebObjects 5.1, You can actually deploy to other application servers. All you need is a servlet container. And this is all very scalable. and the licensing on this is very flexible and very inexpensive.

So here we have a diagram showing the two different alternatives for deployment. On the right, you would see using a WebObjects application server with Enterprise Java beans being hosted in there. And in the left-hand diagram, you'd see using a J2SE application server and running a WebObjects application as a servlet.

All of this for the low price of $6.99. We have educational pricing available as well and there are also discounts for Select and Premier ADC members. This is available as an Apple retail product through all of our channels. And for more information there's a URL right there. So that's a brief overview of WebObjects. I'd like to mention some of the features that went into WebObjects 5.1.

With 5.1, the more recent features that we've added, first and foremost is Java Server Pages and Serverlet Integration. This feature was heavily influenced by this conference last year, by conversations that I had with you developers and colleagues had. So I just wanted to thank you for engaging us and giving this feedback. This is really important in terms of the direction of the product. And the things that you tell us really do influence the direction of the product. We've also added Enterprise Java Bean support.

We've added the LDAP, or GNDi adapter that gives you LDAP access and other GNDi sources. We've made some enhancements to the Java client technologies. We've qualified a few additional databases. And there's been a lot of stuff that's been going on in the documentation area. We'll get a presentation about that later.

[Transcript missing]

We've also added Enterprise Java Bean support. So this technology is based on OpenEJB. OpenEJB is an open source project, and Apple has contributed back to that open source project. It's an ongoing thing. And not only do we have the EJB container, but we also have the other giblets and gravy you need. You also have the other supporting elements you need, like a transaction manager. And we also have an orb, OpenOrb.

There are also tools and assistance that let you author new beans and we also have the ability to take third party beans and put them into a container and deploy them. So I'd like to ask a question. Is anybody using WebObjects for the development of Java beans? Okay, has anybody deployed third-party Java beans in a WebObjects application? Okay, got one over there. How about servlets? Has anybody deployed a WebObjects application in a servlet container? Got one over there. Okay, thank you.

[Transcript missing]

If you look at EOModeler, you'll find a new option that in addition to a JDBC data source, allows you to make a model with a JNDI data source. So it behaves very similarly in terms of the user experience. You take EOModeler, you create a model, or you can reverse engineer something like an LDAP directory.

And then it'll make a model, and then that'll go through EOF, and EOF will take care of getting all the data in and out of the LDAP database. So we can insert, we can update, we can delete entries, but there's no schema synchronization. And there's a few other minor little caveats because an LDAP database is not a full relational database.

We also made some enhancements to the Java Client technology. Don't want to steal any thunder from documentation, but they wrote a great book, WebObjects Desktop Applications, which has an excellent tutorial on using Direct-to-Java Client and Java Client. We've also made some enhancements to the class loader that's used in Java Client desktop applications. Basically, what you can do is on a class basis, you can decide which pieces would get downloaded on a per-application basis and which pieces would be loaded on the machine one time.

So you could take all the common classes that would be there for any Java Client application and pre-install those on the target machine, on the client side. And then any time you'd invoke a new WebObjects application, Java Client WebObjects application, only the classes that were different would need to be loaded. There's also for the rapid development mode, where you are doing compile and testing, there's a new switch, WoW AutoOpen Client Application, which is fairly self-explanatorily named.

And there's also a new little utility called Java Client Launcher, which assists in launching Java client applications. On Mac OS X, it's a double-clickable app. You give it a URL, it will talk to the WebObjects server and take care of downloading all the class files and launching the application for you. And then there's a command file version of that on Windows.

We've also qualified two new databases for WebObjects 5.1. That is Microsoft SQL Server and MySQL. So if you'd like to try this, for those of you who actually are 5.1 customers, thank you. We really appreciate your support. And the response to WebObjects 5.1 has been very good, and it's been a very popular release.

For those of you who haven't tried it yet, there's a trial download available. If you go to Apple Developer Connection, you need to register, but registration is free. You can go to the Download section, and you go find Download Software, and in the section under WebObjects, you'll find WebObjects for Mac OS X.

And you can download that, and the key for that is included as well, and that'll be good until the end of June. For those of you who need to trial a Windows version, I have a few CDs with me, and I'll be off sort of on that side after the Q&A, and I'm the guy with the hat.

So, some of the sessions you might be interested in. If you'd like to see more about these features, our session numbers are listed here. We have them for EJB, servlet deployment. The JDI stuff will be covered in the modeling and connectivity session 7.11. And we have two Java client sessions, 7.06 and 7.07.

So I'd like to make a couple of announcements. Our sustaining engineering team works very hard and they're kind of unsung heroes. They have put out over the past year four updates to WebObjects 4.5.1 Three updates to WebObjects 5. A software update for WebObjects 5.1. And I'm pleased to announce the availability of software update WebObjects 5.1.2. So, there are fixes.

There are fixes in three main categories: NS-Timestamp-related classes, EOF, and EOModeler and FileMerge integration. If you want to write down 75204, there's a KBase article. and that KBase article will have release notes indicating the different changes, the fixes that are in there. And for Mac OS X, this is available through software update. And for the Windows and Solaris version, when you find the KBase article, it will have instructions on how to download.

So, great job to the team there. I'd also like to mention a little bit about Enterprise Objects, EOF. So, these slides I borrowed from our VP. I'd like to talk a little bit about WebObjects past, present, and future. Because we occasionally get questions about alternate languages and EOF.

So in the past, for people who were programming in Objective-C, WebObjects was in Objective-C and EOF was in Objective-C, so you had really clean integration with Cocoa, with Interface Builder, and it all played nice. The downside to this was it was not easy to get new databases or data sources. Somebody had to write an adapter. And the other drawback now is that this is specifically limited to older versions of WebObjects.

The current situation with WebObjects is now in Java, and there's some real advantages to being in Java. Because it's in Java, we get to play with the rest of the Java community. So we get access to JDBC data sources. We get access to JNDI data sources. So getting access to additional databases is very easy. and we're pleased to announce that for those who are doing Cocoa EOF programming, there is an evaluation distribution license available for Cocoa Java EOF. And the details of that license should be posted this week. So this does require--. Thank you.

This does require that you have to do a little bit of Java programming at the back end in your business logic. Your application logic can still be Objective-C. You have access to Cocoa and all those utilities. So it's sort of Cocoa on the top end and Java on the bottom end. And I wanted to brand it Mocha, but they told me that probably isn't a good idea. So moving forward in the future, This is sort of an interim situation.

Moving forward, the goals are to improve the runtime efficiency, to offer a choice of programming language, including the business logic, Native Objective-C types Better integration of EOF and Interface Builder and Palettes Over the future EOF and various pieces of EOF are going to influence Objective-C and the classes that are associated with it. And that's about all that I'm at liberty to say at this time.

What I can talk about are the directions of WebObjects. so first illegal disclaimer this is the part the auto commercial with a guy talks really fast uh... basically this being apple i can't make any specific promises for any specific feature in any specific release having said all that we are on tell you are our future directions but things that were working on and sessions that shows you'll get the numbers for here we're actually showing technology demonstrations of things that we actually have working and we can demonstrate.

So, Web Services are a big buzz in the industry and we're working on what we think are some really exciting offerings in the Web Services space. And I think this is going to be really key for WebObjects and also WebObjects at Apple. Because you're going to see WebObjects being pervasive in a lot of the technologies here at Apple.

We're going to offer web services utilizing our powerful rule-based programming model and offer direct-to-web services. We've worked a lot on the XML serialization and deserialization of objects as well, so there's some XML serialization classes. We're integrating Java Web Start with Java Client technology. This will be an upgrade installation, and there's a new tool called EO Bean Builder used for developing enterprise Java beans.

So, a little background on web services. There's a session, I'll get the session number later, I think it's the Java one, where they actually go into quite a bit of detail on what the web services are and how they're implemented. Basically, web services are sort of a glorified remote procedure call.

I mean, yeah, there's some subtleties, but at the end of the day, that's kind of what the whole intent was. So why would anybody really care? It really is about application interaction, and at least it's standards-based this time. The other thing that's going on in the industry is that the hype is actually starting to give way to real implementations out there. There are tool sets that are coming up and there are people who are actually doing stuff with web services now.

There are some issues that have been kind of glossed over that haven't been resolved yet. What's the security model? How do you manage a fabric or grid or nodes of web services? What happens if they go away? So I think a lot of what goes on in the media, they're talking about, I don't know, hailstorms and passports and going all over the place with all this big B2B stuff. And someday I do believe that will come about.

But that is sort of, I think, a little more distant. But what is actually real, and sort of, if you could put your finger on it right now, and what people are really doing is application-to-application integration and utilizing existing data sources that they have in new ways. And we're offering very compelling technologies that make this really, really easy to do.

These will probably be inside the firewall. They'll probably be like IT departments or people who control their own domain. You'll probably have the ability to do things that go across departments maybe, but they may still be in the same company. And we're seeing this shift, we're seeing this trend starting to happen right now.

So the offerings. WebObjects will be a web service producer. So we'll be like a server of web services. And we'll be able to deliver RPC-based web services as well as messaging-based services. We'll even take care of generating the WSDL configuration files, or description files, for web services. WebObjects applications will also be able to act as a web service consumer.

And so as a web service consumer, what we'll do is take the WSDL file, generate proxy classes, and call the web service on your behalf. and they get convenient to package and get at the attributes. So you could use this for data aggregation. You could take a little bit of a web service, something out of a database, maybe something from an LDAP source, mix it all together and then present the results that you want, do the aggregation that you want for a user.

To get you really jump started, we'll have direct-to-web services. This will use our powerful rule-based paradigm and the power of EOModeler. Basically what you can do is you take a WebObjects application and From your data source, from your database or LDAP directory or whatever, We can take those EOs and then you have management and configuration tools that allow you to automatically turn those into web services.

There's a powerful assistant that lets you decide what pieces of the data source are going to get vended, what the XML is going to look like, and what things you're not going to vend out into the public world. And this is code free, but it's extensible. You can extend it with the rule system.

You can even freeze pages and actually do code generation and then you can take the Java code and go ahead and continue to modify that and drop that in another application. Some of this technology was previewed in Ted's presentation and we have a session on this as well. So I think this is going to be really, really, really powerful. So code free, database persistence vended through web services.

We're also working on some new XML serialization classes. These would parallel the Java binary serialization classes. So if something is serializable and meets some other criteria, you can make it XML serializable. and you can use these to serialize and deserialize objects into XML streams. We also intend to include Xealin so that you can actually add an XSLT transform downstream from that if you want as well. And there's also some somewhat little bit more specialized cases of that where you can actually turn these into SOAP XML messages as well.

Now this is really handy for taking objects that you may have been binary serializing and then instead archiving them in an XML format, which would foster data interchange. So if you need to take this data and move it around or give it to another application. And then it also makes it easy to turn this into your own protocol, if you need a wire protocol for something.

Java Web Start is becoming the preferred way of deploying and managing distributed Java applications. So we're taking that technology and we are incorporating that in with the Java client technologies. So we'll take care of generating the necessary support files so that you can use either our class loader or you could use Java Web Start when you want to go ahead and deploy a distributed Java client application. So Java Web Start ships with every copy of Mac OS X. So there's no integration or download that needs to happen there. And it's easily available from Sun for the Windows platform.

Some additional features: We intend for future releases to be available, or at least the next release, we intend to have it as an upgrade installation so that you don't have to uninstall the old version of WebObjects or burn down your partition. And a new tool: EO Bean Builder. This also, again, leverages the power of EOF Frameworks and EO Modeler. You basically can take an EO model, your picture of the database, and from that, what you can do is you can generate home and remote interfaces and implementations of a bean.

So, if you would like to be, participate in our beta program, if you'd like to be considered as a candidate, Go to applec.apple.com/webobjects. It's a WebObjects application. And sign up. These are some of the session numbers if you'd like to see some of the technology demonstrations we have for upcoming technologies.

There's also, I put one session on there, 8.04. This is not a WebObjects session, but it immediately follows this session. And it is about the client web services frameworks that are going in in the OS level. And so those of you who are very new to WebObjects might want to stay in this room for the introduction to WebObjects. I think it's a technical overview.

I think it's a technical overview session. Those of you who are already familiar with WebObjects but are keen on web services may want to check out session 804. And then we have the other session, 704 for serialization, 707 WebStart, and Enterprise Java Beans and the Bean Builder in 708.

So I'd like to shift gears a little and talk about WebObjects and Apple and sort of the strategy and how they play together. So, Apple is a business. Apple wants to make money. and how does WebObjects help Apple with its business? I look at three key areas. How does WebObjects help Apple in Apple markets? How does Apple use WebObjects internally to drive our own business? and at the end of the day Apple's a hardware company but at the end of the day Apple's not just a hardware company.

Apple offers hardware that has an incredible wealth of Software, user experience, and stuff that comes around what you buy from Apple. And how does WebObjects play in terms of integration or offering more compelling solutions? Key markets for Apple are education, media, and an emerging market that is coming on strong is the scientific and technical community. So in education, WebObjects is used in student information systems, it's been used in portals, it's been used in the back end of the enterprise doing billing and paperless authorization systems.

In media companies, WebObjects has been used for asset management and for workflow. And with the web services architecture coming together and being able to integrate with things like AppleScript, I think this is going to be a very, very booming area for WebObjects as well. and the whole draw from the scientific community for Mac OS X with its Unix underpinnings and Java on every platform, on every offering. The scientific community is really coming on over to Mac OS X and when they do, they're also drawn to WebObjects as well.

How does Apple use WebObjects? Well, internally, we use it all over the place. We can go look up our paycheck. There's any registration pages for signing up for technical training. We've got lots of applications where we use WebObjects to run our own business. Another example is the Apple Store.

Y vamos a ver que esto no es en ingles, es en espanol. And my apologies to any translators out there. This is actually the store page from Spain. And I put this up here on purpose. The Apple Store, the online store, is really important to Apple. We get a large part of our revenue through the online stores. There are dozens of online presences around the world.

You can actually go and travel the world from the Apple Store. If you just go to the bottom of the page, not shown on the screen here, there's a little pull down that will take you to two dozen different Apple Stores. And you can just switch languages by just hitting the pull down. Managing this and delivering this, 50 different online presence would not be possible without a tool like WebObjects.

and all of these elements on there, know what language they're in, know where to go get the image, know where to get the text that's appropriate, and it all flows through. And you think about how often we have to turn the store and how often we have to add new products and how often we have to update this. It would not be possible without something like WebObjects.

ITools. WebObjects drives ITools. It's in all of the applications there. And, Since recently, there's a new iTool, Mac.com Webmail, and this is a WebObjects 5.1-based application. So I invite you to check that out. Now, putting together solutions. WebObjects is also very powerful in that area as well. And a couple of solution offerings I'll talk about are PowerSchool and Electronic Board Meeting Solution.

PowerSchool is a fairly recent division of Apple. It is award-winning student information system software. Its primary market is K-12. What this allows Apple to do is increase our offerings in the education market. Instead of just putting Macs in classrooms, we actually can get into the enterprise, get into the business of a school. How does it get funded? Attendance, managing records, all those kinds of things.

And PowerSchool is a very powerful application that helps foster communication with the parents, with the teachers, with the administration. It's driven by back-end data, and it's all updated in real time. Everything in here is completely real-time based. It's all WebObjects driven. We have a solutions session that will be later on in the week, and the PowerSchool folks will actually be giving a little presentation.

Apple's also announced another solution, which is an electronic board meeting solution. So many boards, like school boards and such, have a legal requirement that they make their agenda available to people, and that people have access to the information and can add their things to the agenda, stuff like that.

And the old way of doing that is a photocopier and a lot of people running around and making copies and having to deliver them and stuff like that. And the cost of that is actually quite high. And this is a real return on investment because you can go paperless. And when you go paperless with this, it's like a collaboration system. You basically, they can post the agenda, they can have presentations, and people can download these things anywhere that they have a web access.

So that's us. Now how can you guys deliver applications and integration? What are the opportunities? What are some of the things that would be really neat to do here? Well, one thing I look at is, again, this whole web services thing. This is going to be pervasive across Apple technologies. There are Java toolkits that can access web services. AppleScript can access web services. There are frameworks going into--there are classes going into the frameworks that can give you access to web services from Objective-C, from C++. And these are all technologies that are coming together near term.

So this gives you an opportunity to, like for instance, one of the things that I demoed at Java 1 was an InDesign application that was generating a real estate brochure that could go to print. And it was talking to a WebObjects backend. And we passed the data using web services. So AppleScript was driving InDesign and it was getting the data from a WebObjects database on the backend. So there's an example of going after like a media opportunity in workflow or asset management.

Mac OS X Server is another great opportunity. WebObjects deployment is bundled with every copy of Mac OS X Server. And that is all of the hardware, including a picture that was shown earlier, as well as the retail box for OS X Server. And it is our intent to further integrate WebObjects deployment with Mac OS X Server.

and one of the first areas that might be interesting is open directory. Now, Open Directory is a standards-based directory service based on LDAP. You have access layers, you have a directory server, and the directory server will be part of OS X Server, and there's directory tools. So, kind of the net-net is a lot of the same stuff that you would get at through NetInfo, groups and users and stuff like that, as well as things you'd want to put in an LDAP database, like people's email addresses and phone numbers or contact information. They're going to be unified and you'll have your choice of accessing them either through NetInfo interfaces or through LDAP interfaces.

That'll be part of the server architecture. So any LDAP client can get access to anything that OS X server knows about. And that would include WebObjects. So you could take WebObjects, Open up your modeler, go reverse engineer the OS X server schema, take that model, drop it into Java, direct to Java client, and in about 10 or 15 minutes, you could build an administrative tool without writing a line of code that would go in there and have access to like the user contact information that was on 10 server.

All of WebObjects without having to write any code at all. So, you get a lot of stuff with WebObjects. It has a lot of things in there, and we're adding more. and I think that's enough of me rambling. I'd like to turn this over to Katherine Wenc to give a State of the Union on our documentation.

Hi, I'm Katherine Wenc. I'm Technical Publications Manager for WebObjects, and I'm happy to say that the state of WebObjects documentation is fairly good. Over the past year, we've allocated more resources, worked closely with engineering, product marketing, technical publications, and other organizations to create more content, update our existing documentation set, and maintain it on the website.

Over the next five minutes, I'm going to talk about three things: what we achieved for WebObjects 5.1, what our future goals are, and how to access the documentation. We revised the site. We made changes so that you can find information more easily and efficiently. It now has nine areas and it has a search engine powered by Google. Have any of you folks used the ADC search engine powered by Google? It works really well, especially if you click on the WebObjects button to limit your search to WebObjects.

It works really well, but I advise you to walk through the site and understand what it contains, because even though the Google search engine works really well, you can't find legacy documentation with it. But! If you know to go to the Legacy area on the website, you can find the Legacy documentation.

We produced a lot of new books for WebObjects 5.1. With these new additions, we've created over 500 new pages of content for the WebObjects 5.1 documentation set. How many of you folks have read some of the books? At this time, I'd like to thank everyone for all the feedback on both the WebObjects 5.1 documentation and on documentation in general.

This feedback is critical. It helps me provide direction to my staff and helps me with my planning. In addition to all the new books, we updated several. We are deploying WebObjects applications, WebObjects overview, dynamic elements, the release notes, and the installation guides. And we also, as you know, have the API reference in Javadoc format.

For future releases, we plan on making some changes and adding some new documentation. I'm going to steal back the thunder that Bob stole from me. WebObjects desktop applications is now Java client desktop applications. This new book, which is available today on the website, and you can also get print-on-demand copies of it, has enhanced tutorials, more sample code, more information about the benefits of using direct-to-Java client versus Java client, and it has information on the rule system.

We're also adding new documents to cover new features. That would be web services and XML serialization. We're creating a new designing Enterprise Objects book. This will be similar to the Enterprise Objects Framework Developer's Guide that was last released with WebObjects 4.5. We're combining the information in the installation guide and the post-installation guide into one comprehensive installation guide.

We're updating the programming topics. I've received feedback that a lot of you folks miss the programming topics, but we're working hard to make them more complete and accurate. And we're also working to make the API reference searchable in Developer Help Center. We want to make it so that you can search the WebObjects API in the same way you can now search the Cocoa and Carbon API reference.

and if you're interested in this, there's a session at 9:03 that I believe is 5 to 6:30 p.m. on Wednesday that there will be a demo of the new full text search, doc searching capability in Jaguar. So if you'd like to go see that, I advise you do.

You can access the documentation in a variety of ways. For the most up-to-date, go to the website. That's where we keep the latest PDF and HTML copies of the books. On the website, if you go to Related Resources and click on revante.com, you can get print-on-demand copies of some of our books.

On the product CD, you can find the documentation in both the high-level documentation folder and when you install the developer package. In the box, we ship printed versions of printed localized versions of some of our books. Right now, we ship the installation guide, the What's New, and the WebObjects overview. For future releases, we'd also like to ship Java client desktop applications and discovering WebObjects for HTML.

And last but not least, check the Apple Developer Connection newsletter. That's the email that you get each Friday for all the updates on our documentation. This concludes my presentation. Again, I'd like to say how much I appreciate all the feedback and comments that you folks give. Keep it coming. and now I'd like to introduce, well let me switch the slide here, Joe Keenan of Apple Professional Services.

I'm the manager of Apple Professional Services Technical Support. Apple Professional Services is comprised of technical support, consulting engineering, and integration services. We work closely with the engineering departments and also with Apple Training, which is the next presenter up. WebObjects is kind of an unusual product in the Apple catalog, if you will, because it's a commercial developer product. You're all aware most developer tools and products from Apple are no charge. You get it as part of the Apple Developer Connection membership or something like that.

WebObjects is a little unusual in that it is a commercial product with its own pricing and so on. So there's a number of different groups within Apple that are involved in supporting WebObjects, and that's mainly what I want to talk about in a couple of minutes here. On the sort of at the low end, if you will, installation and configuration, the AppleCare phone centers handle calls about installing WebObjects, issues with if the licensing didn't work or something like that, or you have to do a reinstall or it came with your Mac OS X server box.

So that's where that is handled. That's that part of Apple. For the developers in the world, Apple Developer Connection Technical Support, DTS, provides code level support for WebObjects developers. And I mean, if you talk to a lot--there's a number of DTS people that are running this whole thing today.

They have a couple of specialists in WebObjects in their organization. But WebObjects is not just a development tool. WebObjects is, as Bob pointed out, a complete deployment environment of its own or integrates with other deployment environments. And it's somewhat unique at Apple. There's very few products at Apple that are cross-platform.

WebObjects runs not only on Mac hardware, Mac OS X, but Windows, Solaris, and a number of other places. So the deployment piece of it is and can be quite complex. And that's where my organization, Apple Professional Services Technical Support, comes in. Because we provide services all across the development environment, all the way out through the large-scale deployment world.

So when you're looking at your needs for supporting WebObjects, you've got to figure out where in the spectrum you are. For small-scale development, code-level only issues, DTS is your right channel. But if you're developing enterprise websites, big commercial e-commerce, or customer care, or banking, or whatever, you need to be looking at a commercial-grade, enterprise-level technical support organization. And that's what Professional Services Technical Support is all about.

Professional Services, as I said, also does consulting. So you can obtain assistance, actually, either on sort of a mentoring role. Consultants come in from Professional Services to help your development team. They'll do outsourced development. If you want a site completely built by Professional Services, that's what they're there for. Or somewhere in between. So that's what they're there for.

training used to be part of that. Dirk is going to talk about the training part of it. But that's where the technical, the whole professional services spectrum lies for WebObjects and I don't want to take up a lot of your time because I'm not going to talk about any of the technical details. But I will be here for the Q&A afterwards if anybody has any questions about who the right people to go to and where you can get the assistance you need for your WebObjects work. Just come see me then.

And now I'm going to introduce Contact information: www.apple.com/services is the professional services website. There are subsections underneath that for consulting, integration, and technical support with descriptions of the support programs. Email services.apple.com and phone for more information about professional services products and opportunities and so on. WebObjects training, Dirk Johnson.

How are you doing today? My name is Dirk Johnson. I am a curriculum manager with technical training and certification. I don't know about you, but I am very excited about the things that I've heard today about WebObjects. And of course, that's why I'm in training, because I'm so excited about it.

We offer three courses regarding WebObjects. First of all, these courses are instructor-led, hands-on training with labs and lecture. We have very qualified trainers that go pretty much everywhere to do training. The first is WebObjects Development 1, and this provides you the basic foundational skill sets that you need to do a WebObjects application. We take you through the HTTP request, HTTP response, how to pull data from, put data back on the response. We talk about control points, customizing WebObjects. We take you through building an entire WebObjects application from the ground up. That's a five-day course.

The second is WebObjects Development 2. So if you thought the first one was intense, and it will be intense, brain-hurting, heart-pounding type of course, WebObjects Development 2 is the same. Your head's going to hurt at the end. We take you through a lot of advanced application designs, such as handling what I call the bane of WebObject or Web dynamic development, handling the back button, localization, getting down into the deeper depths of EOF, including the access control and control layers, things like that. So very intense. WebObjects is an entire platform, and we do handle multiple platforms in the course: Solaris, Windows, and Mac OS X.

So how do you sign up? Well, you can go to our website, train.apple.com, or you can actually call a telephone number and sign up for the latest courses. Train.apple.com, by the way, is also a WebObjects application. Deployments, the three-day course, the other two are five-day courses. And again, it's both lab and hands-on training. And we do offer on-site training. If you have enough engineers where it would be cost-effective for us to come out to your site, we're happy to do that. All right, I think I'll turn the time back over to Bob. Thank you.

So I'd like to review some of the various tracks that we have here, or sub-tracks of the whole WebObjects track. For those of you who are fairly new to WebObjects, these are some of the sessions that would be good to get an introductory overview. They cover the tools, they cover the frameworks. There's also a solutions session on Friday where you can see what some of the customers have been doing and what their experience has been with WebObjects. and David Walsh will be here to talk about the WebObjects and Enterprise Objects.

We also cover the Java Server pages and the servlet deployment. And there is also a project builder session on Friday that might be of interest as well. and then our more advanced tracks: Data Modeling and Connectivity, and some more depth on EOF and optimizing WebObjects applications and security are also very popular sessions as well.

And then I just kind of wanted to close with what might be the interesting sessions for web services. The session following this will cover client-side web services in the OS frameworks. There's a Java session that goes over like what XMLRPC is and Jaxby in an acronym soup. That'll be kind of where you can find out accessing things from the Java client side. And then you definitely have to check out session 705, WebObjects and Web Services.

and with that, I'd like to have some of our team back up on the stage. So you've met myself and Joe and Dirk and Katherine. I'd also like to take this time to invite some members of the WebObjects team. We have Tony Trujillo-Villan, who is our director. Todd Fernandez, our Quality Manager Andreas Wenker, Rapid Development Manager Jeff Glasson, Framework Manager Francois Jouault, Deployment Manager and Stan German, Tools Manager.

We have a lab that is downstairs in room L. These are the hours. And we are doing a conversion workshop today from 2 to 6. And you can sign up, first come, first serve at the lab downstairs. and we have some URLs and these will be in the URL farm. You can get myself or Tony at [email protected].