---
title: WWDC2003 Session 602
framework: wwdc
role: article
path: wwdc/wwdc2003-602
---

# WWDC2003 Session 602

## Transcript

Kind: captions Language: en [Applause] 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's the senior product manager for with objects he decided foolishly to plan a vacation in Costa Rica well after the world wide developer conference so that he would not miss anything important so Bob's in Costa Rica this week and I'm very pleased to to come here and talk to you about the state of the union with web objects as some of you may have heard me say in the developer technology tracker review yesterday I've been back at Apple Mail for about 12 weeks or actually about 11 weeks it's my 12th week back and in my previous life at Apple actually I dealt extensively with web objects in fact I was one of the product managers or what objects that next back in nineteen ninety six so I want to tell you today first of all the things you're going to learn from this session we have a whale out next overview which basically talks about what is what objects what can you do with web objects we're going to talk about the direction for the web objects product and we're going to also bring up Katherine went to talk about the documentation State of the Union so first the overview of what objects for those of you who are not familiar with what objects it is really the easiest way to build j2ee compatible solutions and so those which you are familiar with with objects this is still the easiest way to build jpg you compatible squid ships that's actually the good news is it's not the marketing claim we have fantastic technology for building java enterprise applications at Apple web objects contains really everything you need to build these enterprise-class applications there's an IDE actually like a 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 now the advantages of what we provide with web objects 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 close quickly with the web objects 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 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're right less code you test less code giving pain less code and you have to make fewer changes as your business evolved and all of this has a net result of much lower cost of ownership for an application during its life cycle so we like to think of what objects of the kind of a server-side digital hub it's a application server that can generate web services as a presentation HTML web pages of the presentation it can connect a 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 to through JDBC or directory through jmd I we have Java code that represents our business logic effectively we you know capture our business policy in the form of Java code in a business object layer and then we present it to our clients or customers through web applications through web services and your 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 scheme of your database and it will generate for you business objects and generate Java sub-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 rule so this is where you're going to get the business or enterprise objects there that middle layer the objects will encapsulate data and policy for your enterprise application you can then go through the web objects 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 web objects application and the EO modeler tool lets you reverse engineer 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 your modeler can actually go and drop tables in your database as well and Hume modelers and generates the Java class files to represent your enterprise object so it really does capture the entire process of encapsulating your data and your business logic and these nice Java objects the enterprise objects and this is a screenshot of the EEO modeler tool at work where we actually see a movie database and we can see some entities like movies Callens directors etc and the relationships between them and their representatives very traditional you know one-to-one one-to-many many-to-many etc in the visual environment of yo modeler now the key to our enterprise objects framework is really providing for automated data access a really really important point there is no need to write sequel you can actually be a very very lazy programmer a database applications and not have to learn how to write sequel to do extremely powerful enterprise applications and web 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 sybase on x serve as a really great solution look at these beautiful things or more commonly you're probably going to be developing on something like open base front base my sequel 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 we're finding 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 we'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 computing environments might get with their to da dope roddick in your window 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 so building web applications we provide a graphical HTML editor it's called wet objects builder and what web optics 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 pallets of reusable components and actually in this screenshot you can actually see such a pallet 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 web objects builder and the web onyx architecture allow you to isolate your HTML the you know layout that describes your beautiful presentation from the logic and obviously from the data well what's important about this you know we provide first of all all of the session management security and everything else on the backend 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 web Abhi's elements generate the parts that are data-driven inside there it's interoperable with jsps it's got excellent localization support very very strong mobilization support but I actually think one of the more important things is that fundamental you don't have this problem of you know some guy with 19 body piercings up in San Francisco going and blowing away some important piece of the logically application because he was messing around with the layout and the beauty pages that were there and you're not in turn destroying the beautiful layouts that the marketing people work for 15 years on in order to get you know 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 but 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 helped to drive application integration today server to server application integration client-server application integration and one of the great things about Web Services is we see that web services are interoperable with many different environments and many different programming languages and they're empowering a new class of programmers to build these highly integrated network Jordan application 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 web objects environment 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 sequel behind the scenes Enterprise objects framework we can take care of generating what you need for web services using our web services assistant and the tools and with objects so we make it very easy to build very powerful web services within the web objects product and this is a screenshot of our web services assistant showing specifically how we can actually take in this casing and enterprise object and edit the representation of the you know internal API versus what we are bending externally and then what's nice is not only can you edit that representation generate the appropriate files but in addition web services 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 bending them out using our tools but in fact you can be a client of web services Mac OS 10 provides some really powerful web services capability we've already got the tool to automatically generate code from listal so there's a lot of real power for web services built into web objects and I would encourage you to explore this at more length and we'll have some sessions later on to cover this in detail finally as I mentioned you can build desktop applications from what objects and we have a fantastic capability called the director Java client which enables you to basically very easily build a prototype database application with all of the key functionality of a data-driven application and you do this with no code we also provide tools within the interface builder environment for easily creating complex Java widgets and swing and we provide java web stardom integration for the deployment of your application so it's actually very easy to deploy and here's a screenshot of the interface builder showing you how we can associate an entity and an enterprise object with a UI element here in this case a table view and then this can all be translated into swing widgets which cans and fun in your java application so you get rich java applications you can deliver a dynamic interactive desktop user experience the kind of thing people are accustomed to in desktop applications and one of the nice things about being able to use Java in this fashion is that you can actually reach a good trade-off between performance and security and what I mean by that is that in web-based applications are typically forced to you know have your presentation on the client and almost all of your logic back on the server and that means that for certain types of calculations are always going to have to make a round trip to the server good news is that actually is quite secure it completely you know hide your business policy from your end user but it also means that you have this round trip coming every time you want to do something with Java applications is extremely easy to push certain elements of that logic out to the client where it's appropriate and where there's not a security risk associated with that so you can actually get more optimal performance and more interactivity in the end user experience but you can still keep the elements back on the server's it might represent your crown jewels you know the stuff you don't want to give away in your business policy so you get that flexibility with Java clients and that's actually really nice when you're constructing enterprise applications we provide for flexible deployment of applications in the web objects environment so you can actually deploy all about this application through a j2ee application server like beas live logic or ibm's websphere or you can deploy it on our or what objects application server so our web object application server is a pure java application server it's got built in clustering support it has some really great remote configuration and monitoring tools and I think one of the best elements of our application server is we have an unlimited deployment license as a part of our 699 dollar price so that's I think a phenomenal all-you-can-eat deal for java application servers today and something you should seriously think about another nice thing about deployment in the optics 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 oriole objects 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 competence you 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 web server from the application instances from the database server so you can now run those on multiple machines doesn't have to be free at first you could you know partition this in other ways and still scale application instances horizontally and in fact also begins at 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 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 for me the marketing guy you are desperate to get your hands and web objects 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 tower books in the audience to the URL on your screen and get a 333 free 30-day trial version for mac OS 10 we actually encourage you to read the web services with wet objects article that we have up at the developer.apple.com website and then once the 30 days is up your hook and you get this fantastic package for 699 dollars which includes the development and deployment licenses and we encourage you to check out the web objects website if you want to learn more about the product another great way to get web objects as it turns out is to buy the next serve and this attractive carrying case for web objects basically is a a 1u rack-mountable enclosure it's got a great server operating system which vaguely resembles mac OS x server and it bundles with optics deployment license so you can actually do unlimited deployment from one of these so that was a quick overview of what objects hopefully answers the basic question what is love objects what can I do with what objects I wanted to briefly cover a few items about web objects in the news and then also talk about directions for the product so some of you may already know that we announced to what objects 52 in November of 2002 and the key new features we provided in that release were web services some improved deployment of j2ee applications and for web applications trimming file upload capability and we actually got some ink on this release which was great eweek infa world leading at and others actually did some real coverage about how Apple is focusing on the enterprise and providing more enterprise capabilities with with objects product so 52 was a great release from that respect now at Apple we are extensively using web objects for internal applications as well as for some of our internet offering and any of you who r dot max members are already familiar with the dot X web mail application this is a great web mail application built on top of web objects and some of you may be vaguely familiar with this thing called the itunes music store this of course is the new scheme for driving Apple employees into bankruptcy it's fantastic fantastic application as you heard yesterday in the keynote sold 5 million songs in the first eight weeks and what's great you know makes my heart swell with pride is that this is of course entirely jojomo objects 5 a to X serve an xserve raid and so it is a fantastic example of how you can use some of the capabilities and web objects to do in this case a very interesting thing I don't actually zoom back you notice that this doesn't look exactly like a web browser the way the store actually works as it bends XML to iTunes as a client application and so they basically have used web objects is the back end for this proprietary front end and it's a very clever use some of the very flexible presentation capabilities and web objects with the product so that's a little update on wow thats web alex is some of the things that have happened recently with web objects where are we going so i want to talk about three areas of things that surround web objects and what exactly is going to be happening in these areas over the next few months first of all developer tools so you we're going to start from the assumption that since this is a 600 track you guys r 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 and web objects applications in the december 2002 developer tools released this is a very good very solid stable development released for you we are actually supporting web objects development in xcode in panther so when we get to the GM of xcode that will completely support java and with objects development 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 web objects will be completely supported in Xcode in Panther so when we ship the Xcode development tool as a GM we will support with objects and 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 of objects 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 what objects development we would strongly encourage you to take a look in that exploit party mode at what we're doing in xcode but understand that we're not yet having the full feature set in the full support in xcode four five objects development Java VM today what about except locations are supported under Java 131 our web of five q1 release improves what I'll just can't alikat compatibility with Java 141 and in cancer web objects applications will be supported under Java 141 java application servers so today as a part of mac OS x server we shift the web objects application server we ship tomcat as a part of mac OS x server and you can deploy out with objects application on top of the lab objects 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 web objects and Mac os10 Panther server but the key point is that you can deploy web obvious applications on jboss the 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 two 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 excuse me ejb technologies and so in particular some things like container manage persistence and container manage relationships are inside what you get with jboss it also supports application hot deployment so you can literally just drop a nap into a key holder and immediately deploy it on your web server and it does have clustering support so what are we doing with jboss and cancer 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 with objects 522 and as I mentioned earlier one key element of what we're doing there is going to be Java 141 qualification another key element is 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 job at environment so you're not going to have to deal with in s bundle 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 filed 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 web development workflow I talked earlier about this process of going in 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 ex soxhlet an ant to enhance this process and make it much easier to build j2ee applications ex doclet is basically a tool for aspect-oriented programming and effectively what you can do is use some special javadoc 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 5 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 ii jb's ears and xml deployment descriptors the EO beam assistant provides the ability to create entity beans from Pio model files and we provide a command line version for automated build and so what this does the capability with ex doclet and the new features in EO beam assistant is basically to improve this j2ee development workflow so that now basically out of project builder you'll be able to generate all the elements you need to deploy a j2ee application very easily so that covers basically the web object State of the Union and at this point I'd like to invite Kathryn went the documentation manager on the stage to talk about the documentation State of the Union yeah thanks hi this morning I'd like to talk about two things the new documentation we delivered through the 5.2 release and I'd like to introduce you to the new developer documentation website for the 5.2 to release we delivered over 500 new pages of content we add a 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 is that developers are reading the documentation and getting to information they need secondly the web objects audience is fairly sophisticated and savvy and so the feedback that we get is very detailed focused and specific this slide in the next lift the new documents we deliver it 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 a new website downloadable from inside the HTML version of the document Enterprise objects it's back after a long absence it's very comprehensive it covers information for all levels of development developers that's primarily intended for their intermediate and advanced developers it includes the roadmap you can decide which sections of the document you need to read also the old enterprise objects related programming 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 enterprise objects web applications and other books other topics no longer apply there handful left that we're planning to update to coincide with 5.2 to release project builder for web objects developers it's tough limits the main project builder documentation with webobjects specifics web applications formerly known as discovering web objects for HTML get you started with web application development using web objects it has a short series of exercises to get you started building your own web objects application and for a glimpse into the future for 5.22 we're planning on publishing the API discs between 52 and 5.2 too 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 and use your navigation and for developers who are new to Apple terminology clear category naming what you see our static HTML pages created with a web objects application as you can see the categories are listed alphabetically so you scroll down to the bottom to get to web objects and this brings up the web objects documentation homepage there's a short explanation of web objects and on the right-hand side of the page are three boxes two of which the slide partially shows new and updated documentation lists the new documents we've published over the past 60 days related web objects links points to links for the applecare knowledge base the web object support page the web services document and other documents and the reference library resources box points to information for developer events software seating sample code and the like farther down the page you see a complete list of the web objects 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's one to four p.m. there will be tech pub staff people at the ADC booth downstairs to show you the new site answer your questions and get your feedback in closing I hope you've gained more knowledge about the web objects documentation set and how to access that using the new site again thanks for your feedback keep it coming and now back to you Wiley to close the session thanks Kathryn so hopefully you've got a taste for wat 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 web objects in the last year and we would encourage all of you to actually take a hard look at the session even if you are familiar with web objects we have first of all some fairly good introductory sections in terms of the web objects technical overview section 603 well and j2ee section 6 05 and rapid application development with web objects I think this is a good track if you want to get an overview and a start in understanding what objects has an application development environment we also have for people who are more submitted deployment oriented have their applications finished has 6 12 enterprise application deployment and encourage you to check out that session we have some more advanced at advanced sessions as well one webobjects 614 webobjects reusable components is going to talk about reuse 616 advanced topics in the OS and 624 creating web services which i think is going to be very exciting session for those of you interested in that area we also encourage you of course to come to the feedback form for web objects that's FF 007 with objects and that'll be in north beach thursday at 9am so that's a quick overview of the session roadmap we have of course our who to contact slides encourage you to talk to these people if you have feedback and questions on the web objects product of course we've got a lot of resources available online at apple com I think Catherine's already spoken to some of that and encourage you to join our weblogic announced mailing list to get news as we updated on all of objects so at this point I'd like to invite questions from the audience
