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