Enterprise IT • 33:47
This session provides an overview and a roadmap for the WebObjects sessions in this year's WWDC. You will also get a peek into what's coming for WebObjects technologies. Meet the key players and discover what Apple has planned for WebObjects in the year ahead.
Speaker: Wiley Hodges
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. I need my clicker, don't I? Aha. I'm very pleased to be here this morning. I will say first of all I want to apologize for Mr. Bob Fraser who is the senior product manager for WebObjects. He decided foolishly to plan a vacation in Costa Rica well after the Worldwide Developer Conference so that he would not miss anything important.
So Bob is in Costa Rica this week. And I'm very pleased to come here and talk to you about the State of the Union with WebObjects. As some of you may have heard me say in the developer technology track overview yesterday, I've been back at Apple now for about 12 weeks or actually about 11 weeks. This is my 12th week back. And in my previous life at Apple actually I dealt extensively with WebObjects. In fact, I was one of the product managers for WebObjects at Next back in 1996.
So I want to tell you today first of all some things that you're going to learn from this session. We have a WebObjects overview which basically talks about web analytics. We have a web analytics overview which basically talks about web analytics. We have a web analytics overview which basically talks about web analytics. We have a web analytics overview which basically talks about web analytics. We have a web analytics overview which basically talks about web analytics.
We have a web analytics overview which basically talks about web analytics. We have a web analytics overview which basically talks about web analytics. We have a web analytics overview which basically talks about web analytics. We're going to talk about the direction for the WebObjects product and we're going to also bring up Catherine Wentz to talk about the documentation state of the union.
. First, the overview of WebObjects. For those of you who are not familiar with WebObjects, it is really the easiest way to build J2EE compatible solutions. And for those of you who are familiar with WebObjects, this is still the easiest way to build J2EE compatible solutions. That's actually the good news. It's not just a marketing claim. We have fantastic technology for building Java enterprise applications at Apple.
WebObjects contains really everything you need to build these enterprise class applications. There's an IDE. Actually, I like to joke there's like two or three IDEs right now, but we're working on getting to one. You get database mapping. You get code-free rapid prototyping. You get the ability to provide web services, which of course are very important today. And you get tools for HTML page layout.
The advantages of what we provide with WebObjects over other development tools for Java Enterprise applications are, first of all, that we actually can accelerate time to market. And we do that in a number of ways. We do that partly because we enable very rapid prototyping of your applications. We can actually get you to a functional prototype, data-driven application extremely quickly with the WebObjects technology.
And we then allow developers to do more because we give you so much out of the box with very little effort. Developers can focus on the code that specifically adds value for their application. I also like to say, jokingly, they can focus on their core competency if they have one. And overall, what you get from this is a reduced cost of ownership. You get the ability to write an application that does more.
You get to write less code. Because you write less code, you test less code. You maintain less code. And you have to make fewer changes. As your business evolves. And all of this has a net result of much lower cost of ownership for an application during its lifecycle.
So we like to think of WebObjects as a kind of a server-side digital hub. It's an application server that can generate web services as a presentation, HTML web pages as a presentation. It can connect to Java client applications. And of course, on the back end, it can be driven by our business systems, driven by our databases.
The architecture then is a three-tier architecture where we start with our data, which could be inside a database connected through JDBC or a directory through JNDI. We have Java code that represents our business logic. Effectively, we capture our business policy in the form of Java code in a business objects layer. Then we present it to our clients or customers through web applications, through web services, and through Java applications.
The development workflow is actually quite nice. You can start with the database and basically work your way from left to right in the diagram. So you, from the database, run our EO Modeler tool. The EO Modeler tool will actually reverse engineer the schema of your database and it will generate for you business objects and generate Java stub code, which you then put into the Project Builder environment. And in Project Builder, that's where you actually can write the Java code that captures your business rules. So this is where you're going to get the data.
You're going to get the business or enterprise objects that are that middle layer, the objects that will encapsulate data and policy for your enterprise application. You can then go through the WebObjects Builder to create a web-based presentation. You can go through our Web Services Assistant to create a web service from those enterprise objects. Or you can go through Interface Builder to create a Java application for the desktop.
So first, building the model. As you can probably guess from this representation of three tiers, building the enterprise object model is an essential step in building a WebObjects application. And the EO Modeler tool lets you reverse engineer a database. So it can go in and find all the tables, all the relationships, and represent that in the object model as entities and relationships.
Or you can actually start with the ideal model for your database and generate the schema in the database using the EO Modeler tool. So EO Modeler can actually go and drop tables in your database as well. And EO Modeler then generates the Java class files to represent your enterprise objects. So it really does capture the entire process of encapsulating your data and your business logic in these nice Java objects, these enterprise objects.
And this is a screenshot of the EO Modeler tool at work where we actually see a movie database and we can see some entities like movies. Talent, directors, et cetera, and the relationships between them and their representatives, very traditional, you know, one-to-one, one-to-many, many-to-many, et cetera, in the visual environment of EO Modeler. Now, the key to our enterprise objects framework is really providing for automated data access. Really, really important point.
There is no need to write SQL. You can actually be a very, very lazy programmer of database applications and not have to learn how to write SQL to do extremely powerful enterprise objects. This gives you not only the ability to be extremely lazy but also the ability to have some database independence. And being able to switch databases is important in a couple of different ways. One is you may be, for instance, evaluating today migrating from Oracle to running on, you know, Sybase on XServe as a really great solution. Look at these beautiful things.
Or more commonly, you're probably going to be developing on something like OpenBase, FrontBase, MySQL on your desktop machine, and you can actually very easily with no code migrate that to your deployment database that might be Sybase or Oracle or another database system. The other thing that you get out of our automated data access in the Enterprise Objects framework is essentially transparent persistence. So you get the ability to very easily make your Enterprise Objects persist, and they persist in the form of transactions to the back-end data system.
What you get then is a better development process. You get a process in which you can start, very quickly get a prototype application. You can then flow into refining the business logic, refining the presentation. You can go to customize the specific areas of the functionality of the application that need to be customized to meet your business needs, and then you can polish the application. And as a result, you're going to get more feedback.
You're going to get, excuse me, you're going to get more opportunities to improve the application and serve your customers better and get something closer to what, you know, people working in competing environments might get with their 2.0 product and your 1.0 product because of the time that you're given and the tools that you're given up front with the, you know, tremendous prototyping capabilities.
Building web applications, we provide a graphical HTML editor. It's called WebObjects Builder. What WebObjects Builder allows you to do is to very easily marry the business logic and data in your enterprise objects to a web-based presentation. We have palettes of reusable components. In this screen shot, you can see such a palette over here on the right side of your window. And on the bottom of this main window, what you see is, in fact, a browser or column view in which you are navigating the entities inside an enterprise object and then associating those with presentation elements in the HTML in your web application.
So the idea here is we generate dynamic pages. In effect, the WebObjects builder and the WebObjects architecture allow you to isolate your HTML, the layout that describes your beautiful presentation, from the logic and obviously from the data. Well, what's important about this? We provide, first of all, all of the session management security and everything else on the back end, and we take care of multiple forms of presentation for you, so you can very easily lay out something that is XML or another type of layout, and the WebObjects elements generate the parts that are data-driven inside there.
It's interoperable with JSPs. It's got excellent localization support, in fact, very, very strong localization support. But I actually think one of the more important things is that fundamentally you don't have this problem of some guy with 19 body piercings up in San Francisco going and blowing away some important piece of the logic of the application because he was messing around with the layout and the beauty pages that were there.
Wiley Hodges And you're not, in turn, destroying the beautiful layout that the marketing people worked for 15 years on in order to get some new piece of logic in the application. So separating those two makes the application much more maintainable, gives you much more flexibility in terms of having the best possible presentation and the right business logic for the flow of your application -- or the right user interface logic for the flow of your application.
dynamic web services. So you probably by now heard something about web services if you're doing web development. They are the new hype thing in the web world. Standards-based web services really help to drive application integration today. Server-to-server application integration, client-to-server application integration. And one of the great things about web services is we see that web services are interoperable with many different environments, many different programming languages, and they're empowering a new class of programmers to build these highly integrated network-driven applications.
So there's some very exciting stuff happening in the world of web services. And we at Apple are providing some really powerful tools for enabling web services. You can basically be a client or a vendor of web services using the WebObjects environment. We provide that. We provide the tools for configuration and testing of the web services, for code-free generation of web services from your existing enterprise objects. And, you know, I think the key point is there's no need for you to worry about all of the alphabet soup of web services.
Just like we take care of generating the SQL behind the scenes with Enterprise Objects Framework, we can take care of generating what you need for web services using our web services assistant and the tools in WebObjects. So we make it very easy to build very powerful web services within the WebObjects product.
And this is a screenshot of our web services assistant showing specifically how we can actually take, in this case, an enterprise object and edit the representation of the, you know, internal API versus what we are vending externally. And then what's nice is not only can you edit that representation, generate the appropriate files, but in addition, the web services assistant enables you to test that so that you can actually interact with that web service and see how it's going to function.
So not only can you be a vendor of Web services by taking your EOs and actually vending them out using our tools, but in fact you can be a client of Web services. Mac OS X provides some really powerful Web services capability. We've already got the tools to automatically generate code from WSDL. So there's a lot of real power for Web services built into WebObjects, and I would encourage you to explore this at more length, and we'll have some sessions later on to cover this in detail.
[Transcript missing]
Another nice thing about deployment in the WebObjects environment is that you can start simple and then make your life more complicated as demands may make that necessary. So basically you can start with, particularly in the development environment, your database, your application server, and your web server all sitting on the same machine.
And as the user community for the application grows, you can add instances of your WebObjects application and you can serve the requests from your users much more readily with multiple instances of your application than with one. And scale your application that way even on a single machine. Now, hopefully you've written the world's best application for whatever your competency might be. And you're going to get serious demand for this. And when that happens, you actually are able to very easily partition the WebObjects.
You can start with your web server from the application instances from the database server. So you can now run those on multiple machines. It doesn't have to be three at first. You could partition this in other ways. And still scale application instances horizontally. And in fact, also begin to scale horizontally with your web servers. So you can very easily scale the application effectively just by putting multiple machines running application instances, multiple machines running web servers, load balancers in front of this stuff. And grow web applications to enormous size.
And that's what we're going to do. And we have some great examples of that at Apple. Obviously things like our Apple store and some other examples I'll discuss later. Now, after hearing all of this from me, the marketing guy, you are desperate to get your hands on WebObjects.
And the good news is we provide a free trial version. So you can actually go right now, those of you who are sitting on PowerBooks in the audience, to the URL on your screen and get a free 30-day trial version for Mac OS X. We actually encourage you to read the Web Services with WebObjects article that we have up at the developer.com. dot apple dot com website. And then once the 30 days is up, you're hooked. And you get this fantastic package for $699, which includes the development and deployment licenses. And we encourage you to check out the WebObjects website if you want to learn more about the product.
Another great way to get WebObjects, as it turns out, is to buy an XServe. This attractive carrying case for WebObjects basically is a one-U rack mountable enclosure. It's got a great server operating system which vaguely resembles Mac OS X server. And it bundles a WebObjects deployment license so you can actually do unlimited deployment from one of these.
[Transcript missing]
So that's a little update on what WebObjects is, some of the things that have happened recently with WebObjects. Where are we going? So I want to talk about three areas of things that surround WebObjects and what exactly is going to be happening in these areas over the next few months.
First of all, developer tools. So we're going to start from the assumption that since this is a 600 track, you guys are enterprise developers. I want to emphasize that we've been working hard to not destabilize the enterprise development environment we provide. So today we are supporting development of WebObjects applications in the December 2002 developer tools release. This is a very, very early release.
This is a very good, very solid, stable development release for you. We are actually supporting WebObjects development in Xcode in Panther. So when we get to the GM of Xcode, that will completely support Java and WebObjects development. And I can't emphasize that enough for those of you who may be interested in moving to Xcode in the near future. Excuse me? You can't hear me very well. I can't speak up a lot more than I am.
I said I can't. So, excuse me. WebObjects will be completely supported in Xcode in Panther. So when we ship the Xcode development tool as a GM, we will support WebObjects in Java development. That's not something that's complete today. And so what I would say is that right now there are some of the features that you can actually experiment with in Xcode, but it's not something that's fully compatible today. So if you are using tools today to develop WebObjects applications for production, we strongly encourage you to stick with the December 2002 development tools.
If you want to explore some of the future directions that we've got with Java and WebObjects development, we would strongly encourage you to take a look in that exploratory mode at what we're doing in Xcode, but understand that we're not yet to having the full feature set and the full support in Xcode for WebObjects development. : Today, WebObjects applications are supported under Java 1.3.1. Our WebObjects 5.2.1 release improves WebObjects compatibility with Java 1.4.1. And in Panther, WebObjects applications will be supported under Java 1.4.1.
: So, today, as a part of Mac OS X Server, we ship the WebObjects application server. . We ship Tomcat as a part of Mac OS X server. You can deploy a WebObjects application on top of the WebObjects application server or you can deploy it on top of Tomcat. As a part of Panther Server, we're adding to the mix JBoss.
And I'll talk more in a second about why we think JBoss is a fantastic addition to what we're doing with WebObjects and Mac OS X Panther Server. But the key point is that you can deploy WebObjects applications on JBoss. So JBoss. Today, JBoss is in fact the number one application server for J2EE development. And it is that for a lot of reasons.
But it's got the point of 2 million downloads a year and growing. And we're seeing that the key thing about JBoss is it supports a lot of the key J2EE and...
[Transcript missing]
So what are we doing with JBoss and Panther Server? Well, in effect, we're taking the JBoss environment and we're addressing a couple of critical areas where JBoss has been a little bit weak.
As I mentioned, it's the number one development server for J2EE applications, but it's not the number one deployment server. And it's had a few weaknesses in terms of the management of deployment and the management of the applications as they run. And so what we're doing at Apple is, in fact, doing what we do best. We're providing some tools to help graphically manage the configuration and deployment of J2EE applications in JBoss.
We're also working on WebObjects 5.2.2. And as I mentioned earlier, one key element of what we're doing there is going to be Java 1.4.1 qualification. Another key element, as you can suspect from what I've just said, is JBoss on Panther Server qualification. And we're working on things to provide much better J2EE integration.
What does that mean? Well, first of all, we're going to be supporting JAR bundles. And what I mean by this is that, in fact, we're going to use Java native way of calling resources, which is going to make it much easier to deploy in a pure Java environment. So you're not going to have to deal with NSBundle issues for calling resources. We're going to support log4j logging, which is a much more standard Java logging mechanism. And we're going to support JNDI for both properties configuration and data source mapping.
And the key point here is that data source configuration doesn't have to be file driven now. It can be JNDI driven, which can make it much more dynamic in terms of managing the deployment of an application in a J2EE environment. How does this affect WebObjects development workflow? I talked earlier about this process of going and reverse engineering your data source and then working on your business logic in the project builder environment to do your Java coding. And what we're going to be doing is basically providing the tools through some new capabilities with xDocklet and Ant to enhance this process and make it much easier to build J2EE applications.
XDocklet is basically a tool for aspect-oriented programming, and effectively what you can do is use some special Java doc tags in your code to add metadata. I think the key thing here is that you'll be able to maintain one file instead of five, 10, 12 files to represent one of these enterprise objects.
And it's going to handle all of the code and file generation, the wars, EJBs, ears, and XML deployment descriptors. The EO Bean Assistant provides the ability to create entity-based code. We have a lot of EO Bean from EO model files, and we provide a command line version for automated builds.
And so what this does, the capability with xDocklet and the new features in EO Bean Assistant is basically to improve this J2EE development workflow so that now basically out of project builder you'll be able to generate all of the elements you need to deploy a J2EE application very easily. So that covers basically the WebObjects State of the Union. And at this point, I'd like to invite Katherine Wentz, the Documentation Manager, on the stage to talk about the Documentation State of the Union. Katherine? Thanks, Wiley.
Hi, this morning I'd like to talk about two things. The new documentation we delivered for the 5.2 release and I'd like to introduce you to the new developer documentation website. For the 5.2.2 release, we delivered over 500 new pages of content. We added new documents to accompany the new features of 5.2. We enhanced existing documentation and published new documentation in response to customer feedback.
At this time, I'd like to express my appreciation for the feedback that we get on the documentation. First of all, it shows us that developers are reading the documentation and getting the information they need. Secondly, the WebObjects audience is fairly sophisticated and savvy. And so the feedback that we get is very detailed, focused, and specific.
This slide and the next list the new documents we delivered for the 5.2 release. I'll just highlight a few of them. Web services. It explains the sample projects that are available both on the product CD and on the new website downloadable from inside the HTML version of the document. Web services.
It explains the sample projects that are available both on the product CD and on the new website downloadable from inside the HTML version of the document. EnterpriseObjects. It's back after a long absence. It's very comprehensive. It covers information for all levels of developers, but it's primarily intended for the intermediate and advanced developers. It includes a roadmap so you can decide which sections of the document you need to read.
Also, the old EnterpriseObjects related programming topics have been revamped and incorporated into this document. On the subject of programming topics, like I said, some of the old ones have been updated and incorporated into EnterpriseObjects, web applications, and other books. Other topics no longer apply. There are a handful left that we're planning to update to coincide with the 5.22 release date. police.
Project Builder for WebObjects developers. It supplements the main Project Builder documentation with WebObjects specifics. WebApplications, formerly known as Discovering WebObjects for HTML, gets you started with WebApplication development using WebObjects. It has a short series of exercises that get you started building your own WebObjects applications. And for a glimpse into the future, for 5.22, we're planning on publishing the API diffs between 5.2 and 5.22.
Now that I've talked about the documentation, I'd like to explain how to access it using the new developer documentation website. The new site is based on developer input. It aims for more consistent design and organization.
[Transcript missing]
Farther down the page, you see a complete list of the WebObjects documents available on the site. You can sort by either title or publication date.
Have any of you had a chance to see the new site? Please do. Over the course of this week from 1:00 to 4:00 p.m., there will be TechPub staff people at the ADC booth downstairs to show you the new site, answer your questions, and get your feedback. In closing, I hope that you've gained more knowledge about the WebObjects documentation set and how to access it using the new site. Again, thanks for your feedback. Keep it coming. And now back to you, Wiley, to close the session.
Thanks, Catherine. So hopefully you've got a taste for what WebObjects is, what the capabilities are, and what some of the directions are. I do want to emphasize that there's been a lot of work going on in WebObjects in the last year, and we would encourage all of you to actually take a hard look at the sessions, even if you're familiar with WebObjects.
We have, first of all, some fairly good introductory sessions in terms of the WebObjects technical overview, session 603, WebObjects and J2EE, session 605, and rapid application development with WebObjects. I think this is a good track if you want to get an overview and a start in understanding WebObjects as an application development environment. We also have, for people who are more sysadmin deployment-oriented, have their applications finished, 612, Enterprise Application Deployment, and encourage you to check out that session.
We have some more advanced sessions as well on WebObjects, 614, WebObjects Reusable Components. It's going to talk about reuse. 616, Advanced Topics in EOF, and 624, Creating Web Services, which I think is going to be a very exciting session for those of you interested in that area. We also encourage you, of course, to come to the feedback forum for WebObjects. That's FF007. will be in North Beach Thursday at 9:00 a.m. That's a quick overview of the session roadmap. We have, of course, our who to contact slide. I encourage you to talk to these people if you have feedback and questions on the WebObjects product.