WWDC2003 Session 605
Transcript
Kind: captions
Language: en
coming all the way from Christina
this afternoon to entertain you please
welcome the dream team the finalization
hanging on hello and welcome to session
6 of 5 web objects' and j2ee I think
there's two main types of developers in
the audience today number one the
traditional web object developer who is
anxious to see what's going on with j2ee
how does it affect web object and the
second type hopefully the pure the Puget
we developer we want to see what support
we have in my quest and server for for
j2ee what we should what what it looks
like good so I hope you're going to
answer all of these questions and which
is few slides to our load map so I'm
going to go over all of the new features
VA in in the necklace and server support
for j2ee or the new features in in web
object then i'm going to introduce the
j2ee components to that part of holiday
tree strategy I'm going to go over the
development tools especially the web
objects development tools for j2ee and
finally I'm going to introduce on the
specific web objects features for our
jtree integration story ok so this is
the feature set that we that we that we
have been working on so far we have one
time so for one time support for j2ee 13
namely the jboss container that was
announced in the necklace and tensor of
a technical overview we have a graphical
j2ee deployment tool that helps
configuring enterprise applications ejb
modules and blood modules we have a
monitoring and configuration tool that
helps you see and watch the load watch
the resources in your container and also
help optimize your container set up for
speed and maintain the maintainability
we have written an admin plugin for the
for the server admin
applications in my class and server that
makes it very easy to control the life
cycle of the application server with
watchdog integration and so on in
addition to that we have an templates
prepared for pure j2ee development
namely for the gb gb module the web
module and also the enterprise
application in addition to the pure
compilation of j2ee project we have
added extracted support that helps you
maintain most of the deployment
descriptors all of the artifact classes
in the ejb specification as for example
local interfaces remote interfaces home
interfaces and so on we have taken these
entered and end projects and mitigated
them with Xcode so we have both projects
that we can use in in Xcode and we have
templates for additional sites such as
jsps servlets message-driven beans and
so on and that's what at least we have
improved the web objects core container
to to play very well in a j2ee
environment and to be completely
configurable inside edge we container
with jquery development tools so that
was quick let's go on and I'm going to
explain our story or a j2ee sorry so
first of all the question especially for
the web objects people will be why wide
web objects and wide web objects with
j2ee so if you have been at the Java one
conference basically the message was
Java is everywhere and the second part
of the message is j2ee is almost
everywhere so in fact we had a lot of
customer requests coming in who wanted
to have j2ee once we support on the
necklace 10 server platform and this is
this is one of the reasons why we
included it the second reason again it's
more for all our web objects folks who
have been facing challenges getting
there with objects applications deploy
in in cuffs in the customer environments
in companies who basically only have a
j2ee based middleware and this is where
our integration support comes in and
basically our new support helps you sell
your web objects application and deploy
your web objects education even on a
j2ee environment so I think that's
enough of the why it now comes to how
the j2ee container that we ship is
called jboss it is it is really the
open-source container the open-source
jtree container out there and it has it
has the largest community both in terms
of developer and in terms of of active
users when you go to the website jboss
Authority will see that they have a
future over 2 million downloads for the
last year they have one 1 dot 5 million
downloads this year alone and you can
also have a look at the major companies
that are out there that are deploying
their applications there j2ee software
on on jboss it's a very interesting side
so we have to say that although jboss is
an implementation of the j2ee once we
splitted specification display no means
satisfied by the Sun program so we have
not only taken the CVS the CVS sauce
base compile it and put it on to all the
necklace and server release but we've
added a tremendous value our think and
for that we have joined the the jboss
community developer community and we are
on the active committee list for the CVS
project for example we have we have done
extensive QA on on the container and you
wanted to find out how many how many
threads and how many concurrent
connections it can it can handle so
we've taken the easy to have tests we
have run it under a really high stress
for for a week
we fix a few problems in NJ both
contributed the fix us back we fix a few
stability problems with the vm we fixed
a few current problems with the
macaronis and now the the test lungs
with over 1500 threats concurrent
requests being at one hundred percent
CDU for over two weeks so this is the
one of the Aztecs are very wary we think
add to the project and then lastly so
important is that jboss and all of the
applications that we vote for tables are
coming bundled with the necklace and
server CD and also with as the sneak in
the sneak preview section of our
development tools so here's another few
points for our customization we have
identified the three most important use
cases for for jboss namely development
the deployment on a standalone machine
and also deployment in a classical
environment so for the developed
environment we have a very quick
turnaround time so as you might know Jay
both features features something called
auto deploy where the container scans
the directory for updates for removal of
packages and so on and this is one of
the values that we changed pick up it
picks up changes immediately we have
advanced we have the the logging levels
adjusted for you to really have a look
at what's going on behind the scenes and
to identify possible problems very very
early in the deployment process the
deploy the to deploy configurations be
personal and a podcaster of course are
optimized for performance and
scalability so we have we have set for
example they even the number of of
concurrent connections very high we have
made that the Tomcat logging like
logging levels are low in order to to
reduce I 0 and so on the third
configuration the deployed Chester
configuration enables you to take a
bunch of machines maybe an ex of cluster
or something
and deploy your website on those two on
those many machines that you have that
means you have high availability you
have load balancing and you also have
HTTP session capturing turn on by
default in general we have we have taken
care of optimizing the table salt base
and also optimizing the the
configuration settings for spec
compliance many of the of the parameters
that you can set indeed in the job of
configuration files allow you to trade
that compliance for speed but we have
made sure that spec compliance is the
most important setting in all of the
three configurations lastly we have made
sure that the table itself has optimal
jdk one for support there are many
features that are optional or that you
have to explicitly and enable on a jdk
one for environment and we have taken
care of that because our standard
environment is jdk 14 and especially for
jdbc 3 for generating primary keys on
the fly by the database this is a very
important feature and now let's talk
about the integration of flavors with
necklace and server so for one thing for
people who already know our Tomcat
bundling we have we have made sure that
the the jboss bundling is done in an
hour / library to actually we pull out
all of the log files and the log files
will be written into library logs to
that location on mac OS x server we have
pulled our temporary directories and so
on so it's it's very tight end into the
traditional system layout file system
layout in necklace and you will find
whatever you want whatever you're
looking for in the standard places
important also is you might have seen
the tool in the technical overview of
micro sim server that allows you to
configure male and apache and so on and
we have written a plug-in that also
allows you to to help configure and
manage the life cycle of the container
you can start the service you can stop
it you can choose the configuration you
can have a look at the dot files and so
on we'll have a quick screenshot of this
tool later on also it very important is
to ensure constant availability of the
of the service is if it should fail for
any reason the watchdog process will
immediately be notified and restart the
container so that you have basically
almost no downtime only the 20 seconds
it takes to restart the container in
terms of security integration we have
made sure that we have integration with
the open directory which is our single
sign on server and what you can do is
you can you can use the open directory
user and password set and authenticate
again ticket for example web clients
with it you can you can make sure that
you basically have only one security
real you don't have any additional setup
you just use the open directory to
verify UNIX unix password username and
password combinations similar with
apache apache comes bundled with macros
and server as well and we have made sure
that you can serve for example this all
of the static content of your side off
of apache which is really fast and
apache can just be configured to modify
and to to forward all of the requests
that are that reference to dynamic
content back to our tomcat engine which
is embedded in our jboss container mysql
you've probably seen that mysql for
shipping on necklace and server so we
have completed the configuration and
it's enabled by default you don't have
to look at port number i mean anything
again it just it just works and you can
just access the database and finally we
have add up support for the observer
that that's integrated and it's it's
it's extremely easy to set it up it's
just not a few letters of properties to
set it up and again you can browse the
whole hierarchy of dl observer and make
use of the information which is thought
inside
okay using J Lo's now that you know
where to get it we have two ways of of
starting the container again the the
server admin plugin is one way the other
way which is probably more geared
towards the developer is learning it
from the command line from the base
directory which is library jboss 32 and
you find the hole you can see it in the
in the screenshots below you can see the
whole traditional structure of the day
both installation down there you can see
in the left in the left column you can
see two two directories 32 and
applications you'll find our management
application and our deployment
configuration in the applications
directory good so far for the five
system layout now let's have a look at
the server admin plugin you can see on
the left-hand side we have all of the
traditional services dnf FB page
firewall apache and so on and our
application server support is just one
more bullet item on the left and again
you can see the logs you can restart the
service and so on I should say that all
of the tools that I explained herein
very in a very brief way will be
explained in much more detail later in
section 6 energy flow of deploying
enterprise applications so the
deployment tool what's the purpose I've
heard people complain that they don't
really like migrating or writing XML
files with just the ddd as a guideline
so what we do is we facilitate this
approach we take away all of the pain of
launching your XML editors and
configuring jboss using raw XML while
using using your text editor the tool
the tool actually does most of the most
of the set up most of the of the
relationships between the different
files automatically
the main purpose of this tool is forever
to migrate binary components from other
application servers for example from
weblogic or whatever server you happen
to learn on can just pull out the
application the deployment will help you
to to figure out what of the table
specific elements in the configuration
is missing and helps you figure out what
resources are present in your container
for example databases jca connectors and
so on and it will help you match the
requested resources that you find in the
deployment descriptors with the actual
container container resources and we
have provided much guideline much
support to help you figure out what you
need to configure for this container for
example we have a verification engine
that that marks all of the entity beans
that need to be configured or where
configuration is missing as read I will
show you that in a in a screenshot later
on we have assisted cmp CMP mapping
which means the department will ask the
container which databases we have
configured what other table names with
other column names and in this CLP
mapping in the CMP mapping section of
the tool you will just match field names
with drop-down menus for example for the
columns and for the tables so it's very
easy you don't have to invest much time
into reading the XML files reading the
DVDs reading the documentation we have
two types of configuration again full
flow configuration which enables you to
really leverage the full capabilities of
the container mainly for performance
tuning for very advanced setup or you
can use the Express configuration which
moves down to a very limited set of the
configuration files of the configuration
options and only those that really need
to be present in order to ensure a
successful deployment and that's the of
course you want to deploy at last either
you write the file into the directory
that we recommend
or somewhere else or you can remote
deploy the enterprise archive as well
you come to screenshot and you can see
it sort of object space application
using direct to web and on the left hand
side on the left hand side you see the
pet store the petal your application
which has an embedded set of egb modules
and you also see that some of the beings
for example the sign on session bean
there comes up in a different color than
the rest this means that the sign on
session bean is fully configured you
don't have to click on it again and you
have to focus on the other ones that are
marked as read and as soon as the update
for example on when you when you click
on one beam you you see a pop-up on the
right hand side this is the
configuration that you need to fill out
once everything is complete it will show
up as a blue or a fully configured on
the left hand side as well again more
details in session 612 so the next tool
is the container management tool this is
very important because for one thing you
need to know what's going on when you're
deploying a full side you have to know
which application is causing the most
traffic which is the most important one
to optimize this is where the JSF 77
monitoring the support comes in here is
our 77 monitoring support or a jsf 77 as
a specification is geared toward
introspection of a running jb container
you can find out for example which kinds
of applications are deployed on the on
the server you'll find out which
resources are you are deployed in which
services on top of that jsr 77 also
weeks why's that the container keeps
statistics about resource cute usages
for example the transaction manager or
the connection for example to find out
the waiting time the average waiting
time on a connection which is very
important data to do fine tuning later
on and all container support container
management tool does support just that
the second feature of the of the
container tool is container
configuration again all of the
configuration is photos XML files and
they are very hard to read and very hard
to understand so we have created a
graphical interface that helps you
select the most vital options and
concentrate on those and you can in your
configuration settings can also make you
can also apply all of the knowledge
you've gained during during the
monitoring and then find you in the
container based on the knowledge you
gained for the for the traffic for your
particular site again boron insertion
six on a 12 on it on this tool but let
me just quickly explain how it looks
like on the left hand side you see three
different tabs applications resources
and services for the resources currently
have selected the transaction manager
and on the right hand side you can see
the statistics that the transaction
manager keeps for us in this case we
have three different three different
counts we have committed transaction we
have the number of rollback transaction
and we have the number of currently
active transactions orifices important
data to figure out how much resource
usage your container actually has okay
this concludes the introduction of the
j2ee components this is mostly the stuff
that we have in Mac OS and serve and
that we will leverage with webobjects I
will switch on to the next topic j2ee
development with web objects tools and
micro sim server tools and for that i
would like to welcome hunting
augmentation thank you say five hi there
my name is Han Lingam I'm an engineer in
the j2ee web objects team I know you
have been listening for more than 25
minutes there with me for 15 more i will
show you a demo okay development tools
here is a summary of for development
tools that we have in order to help you
with your j2ee development I'll just go
through quickly each one of them and
then jump into more details for each
Xcode that's the new Java new apples ide
that we have and now it's integrated
with the j2ee project types project
templates and follow Wizards to Xcode
and an integration and it's the
java-based do to land x auklet is the
metadata processor that generates fouls
and coats for you I'll talk about this
too in detail in subsequent slides your
modeler that's the for the web of Jack's
crowd that's the your modeling tool that
we have and you'll be an assistant we
ship your business in assistant which is
the entity beam generator a more level
Jack's 5.2 but now it's been upgraded to
support ejd 2.0 specification different
will drop into the details for these two
tools okay an integration with Xcode now
xcode is the ide that Apple encourages
use you to use to develop projects on my
quest n and n is the de facto tool that
no java developers use to develop java
projects on every other platform let's
have a show of hands how many of you
have used envy for it's pretty
overwhelming response so both Apple and
you have you know emphasize that these
two tools should work together so that
you have a relevant a development
platform and Mac os10 for j2ee too so
let me let me say a caveat first the
developer CD that you have you need to
go into the snake tix folder and install
the this to any integration tool in
order to play with it and we would love
that you play with it so that you can
give us feedback and we can improve
further
okay let's dive in now and talk about
the detail we are using and 153 to do
the to build j2ee projects we hope to
pick up the latest version whenever you
have it current version is one by three
and two if you've done xje JV
development before get me development
before especially JV you know that you
have to deal with three four five you
know Java files that are essentially
boilerplate files and although the
deployment descriptors as well that's a
fun alluded to we are leveraging another
great open source project known as X
chocolate to help you manage this
complexity and i'll talk more about that
as well 3.the in order to jumpstart your
j2ee development on a quest and xcode
now comes with three project templates
to help to help you clear your web
module your ejd module and your
enterprise application it also comes
with two services to help you build your
ejd and your sublet and 4 during during
a development process it's really
essential for you to have a quick test
deploy of your module into jboss so they
can test drive it so what happens we
optimize it so that the build product of
your war your jar or a year who goes
into the auto deploy directory that's
pretty fun mentioned earlier on and say
your computer is RAM challenged and your
jai vault is installed on another
machine you can always use the ftp task
although this is encouraged only during
development because of the security
risks associated with clean ftp all
right a couple more quick details to
complete the picture in the Developer
Preview CD when you install it the files
that support your and annexed Auklet
integration work will be installed in
developer java j2ee now you want to
notice because you might need to
surgically upgrade and extract let for
feed or teacher feature reason we try to
share with example to demonstrate the
power of X
chocolate an end actually we should with
one now but you know we will provide
more as we go along okay you guys know
about em so we have more things to talk
about so I'll skip this slide and talk
about it more interesting things alright
so I'm going to talk about the N scripts
that comes comes with the project
templates that we have first of all of
you see do XML and build up properties
these are the pretty much the two files
that you see in every other Java
projects another platform web geoducks
web builder XML is they build script
that's provided i buy us to build your
web module and ej d dot XML helps to
build your in JV module and an
enterprise application which is the
third kind of project template would
contain copies of one of each because
they usually contain a web module and in
JV module it has to be emphasized that
this for build scripts are customizable
just like any good and build scripts
customizable to your heart's content if
you don't like a southern-style you're
encouraged to change it alright laughs
last show of hands who have used xbox
before pretty cool so essentially it is
a to simplify it is a code generation
tool and it helps you generate extra
java files those pesky deployment
descriptors based on extra information
that you put into your original java
file in the correct java j2ee lingo this
extra information unknown as a meta data
and to specify those meta data use Java
dot X we have defined by X soxhlet to
generate the bowels and the deployment
descriptors you have to run it through
to enter web doclet and ejb chocolate
now as the names imply the WebSocket
poto web module the usually doctor
filter usually module the web's oculus
that we have in your developer preview
CD is a special built
compelled from the CVS saw open sauce
because of the developer CD went to
print they have not released a beta
build so its 1.3 1 point 2 beta 3 i'm
mentioning this because in case you need
to upgrade in a way to download and
where to put them i mentioned it before
and if you like you know x outlet be
sure to thank them in order for the
effort as well when you visit the
website of stuff right here is a little
diagram that summarizes the process on
your left which is the original java
file here we choose ejv because it's
pretty illustrative and we would put
java dog tags that's defined by exported
i wouldn't go into the details of each
attack because Stefan and you know we'll
go into them and you can find them on
the Xbox the website as well so suffice
to say if you put in proper and correct
xbox latex and run that through the ejb
doclet task in this case the egb
chocolate ass you'll spit out for you in
this case five fouls all right this five
powers a boilerplate fault that you
probably shouldn't worry about in your
normal development and then if you want
to we will generate deployment
descriptors as well those xml files the
good thing about extrapolated is if you
don't like using them you don't have to
use them say your code netiquette and
you decide that you said that juggling
five java files are essentially
boilerplate it's a healthy obsession
ignore the xbox a test and go straight
to the end has we reach you good luck
though alright i'm going to switch gear
a little bit and talk about the project
template we assume that you have
experience with xcode what is the
reincarnation of project builder serena
and using n and we assume that you would
like to learn about x talk ilat so i'm
going to enumerate the major steps so
that you have a clear overall idea first
off what you do is to go to Xcode and
missed initiate the web module project
you will give you three bill scripts the
other XML the other property and web
build.xml
you can always customize them then or
you can always come back later to
customize them and then you create your
sublet using the foul wizard you will
ask you a few questions and then
generate the file for you based on your
answers as opposed to ejbs actually
sometimes you create your servlet from
scratch no big deal if you do that I'll
make sure you observe the naming
convention because at the time that we
have in the build scripts recognizes
this files that end with this kind of
this fall kind of ending so the Java peg
Java action Java filter Java it takes me
a long time to remember this for so and
then you add your static resources for
web module usually you have quite a lot
because you have your gf's each of your
images your tag libraries you're just a
party jaws so if you need that make sure
you put it into the static resources the
demo will we're going to show will
illustrate this and then you hit the
compile button on xcode what happens is
you will choose the default target in
end which we chose to be installed
because it is the shortest path to
testify or your war file it will not
only run through that web doclet past
January deployment deployment descriptor
compile your classes create a war and
drop it into the deploy auto deploy
directory just if I mentioned if Jeb
also were running it gets picked up
almost immediately and you can
test-drive it by firing your web browser
because it is a web module let's move on
to a JD module again you create it from
Xcode instantiate it and then for your
build scripts instead of having web
built you have your in JV build now you
go and create your injuries but we
really encourage you to to try to use
the Wizards because it's slightly more
complicated to create from scratch so
the Wizards that we have will help you
create stateless safe old-fashioned
beings your entity being the simple TM
BMP and cmp and eventually your message
truth and be
the version that you get on a developer
city but might not be that powerful but
give us feedback and eventually we'll
have message to them being as well if
you do create the injuries from a
scratch make sure you observe the naming
convention as well we have to end with
injuries or Java vindo java or m VV dot
java in order for the ejb chocolate has
to work and then you add your static
resources for each ad module usually you
don't have a lot that you might want to
add your customized deployment
descriptor your EG deidre or your jboss
dot XML similar story you hit the
compile button you will also deploy it
to jboss and supposed to web module you
wouldn't have a web interface to test it
so usually what you do is you create a
test web interface beforehand to test
drive it oh you can look at a JBoss law
this is the last light for me so for
enterprise application this is usually
the most complicated to explain that
because we have built our foundation
knowledge on the previous two slides so
we can apply that knowledge to here and
that j2ee and the price application will
usually contains contain a copy of one
or more copies of web module one or more
copies of HIV modules flowing with study
resources your third party just etc and
eventually the end product is something
conventionally conventionally known as a
year our enterprise application template
will have one will start with one ejv
module and one web module so will
contain a web builder XML any in GD
build.xml makes you go through the
similar steps of creating servlets and
dvds like what i mentioned earlier on
and then you add your static resources
to the to the organized subfolders that
you'll see later study resources for web
module go to the subfolder support for
web module and similarly for the ejb
module in JD enterprise application
that had its own special requirement for
static resources the departed Josh that
your modules are dependent on for
example log4j j unit blah blah blah you
have to make sure as for the Esper j2ee
j2ee specification you have to make sure
that the many fastballs of those modules
that you're going to make use of the
English female bed but the modules that
it's going to be dependent on a third
party jars make sure you amend the
manifest file for those to recycle
dependencies oil tea would work and then
eventually if you compile in your auto
deploy and because usually has a web
module five your favorite favorite
browser which is Safari now and test
drive it all right let's go on to a demo
demo to machine so Stefan is going to do
the screen manipulation I'm just going
to do the narration so before this this
project here I went through the steps of
jump-starting it by following a how to
file I added a whole file to this
project which is known as X pet store
which is a rehash of some iconic textile
project so Java jboss now should be
started in a background in terminal and
this is the project that you find
actually in your developer CD different
i selected the for build scripts that
i've mentioned all the time and then i'm
just going to take a look at the surface
the organization in the sauce folder so
you can see in JD module on your web
module let's throw down the EGD module
because it's slightly more interesting
you will see an X doclet much sir that's
a contact in X doclet for merging points
what you have here essentially is a list
of deployment descriptor XML elements
that can be merged into the eventual XML
file more details on xbox a website up
the expert store soft directories here
is organized in the same hierarchy as
your java package hierarchy let's throw
down all the way to a domain
catalogue ejd I just want you to want
you to take a look at this file called
category in Java right thanks to mr. BAE
Japan oh this is the experts or that he
built so you can see a lot of extra text
there the name the type cmp stay fun
we'll talk about more as well in this
demo and I just want you to remember
this file and see what are the files
that are generated later on okay that's
closest let's look at the organization
of the static resources as well so again
it's organized in a way that reflects
why what you where you should put stuff
let's look at web module because it's
usually more interesting here you see a
lot of JSP and the majors and what have
you that's usually in the web end you
will find your tag libraries that your
depend on us dependent on as well all
right let's closest and I want you to
take a look at the X doclet generated
deployment descriptors let's look at the
one for each ad module now they are in
red because we have not built a tool yet
therefore they are in red when we build
it they will be complex and you can look
at them so let's do it now he will build
up the browser window now the phone is
kind of small apologize for that because
Xcode being in beta of Developer Preview
doesn't allow us to change it but I'll
try to narrow it off so let's do it and
see if I'm brought up the terminal
because this he wanted to illustrate the
total deploy functionality of cables so
what's going on is this machine is fast
ejb doclets files run through all the
image java files and then created all
those extra java files the deployment of
scriptures compile them and now the web
doclet takes over now it is in this
order because usually your web module is
dependent on your in JV module oops I
have to speak faster so jboss picks it
up and now is deploying it let's ignore
this view now physically play okay and I
want to take a look at the generated
files all right
so let's hide everything and bring up
Xcode go to window okay so let's stop
look look at the files that are
generated for EGD module right now you
have a CX to a directory called X doclet
generated drill down to it and remember
the category ejb file now he has
generated two interfaces for you
category local category local home if
you don't you text oculus you have to
create maintain and we sink this file
that's closest i would go into details
of that and now i want to take a look at
the deployment descriptor that's
generated by X pocket so this is a
perfectly normal well formed valuable
xml file as opposed to you firing a VDI
did you know and leading out the flash
for example let's search for category so
all this information that you see here
they are the right they derive from your
original java file that i showed you
earlier on the name the EGD class the
injury class you don't have even have to
put it ND cuz you know it's a java
classic enjoy introspection and gets it
from there okay i'm going to close it
and i'm going to show you the first page
of the expat store because this is all
fresh Air's piece I like webobjects you
know when you when you first hit it it
takes time to compile some of them to
run through all the demo this works okay
it's working and foremost of some of you
who have done j2ee development this is
the Queen's that quintessential demo
that we have to demonstrate okay that
just about ends my part of the
presentation thank you for kind
attention Stefan will continue the rest
thank
so we continue explaining the web
objects tools that can help you getting
your j2ee applications written and
tested and deployed so the next tool
that we have is what we geared for the
web objects develop are not really
perceive as a j2ee tool it's your
modular well your mother for the people
who don't know web objects is a database
modeling tool it helps you build a
representation which is semantically
semantically richer than the database
content what you can do is you can
reverse ngu existing databases you can
forward engineer a database and then
finally have the tool create the schema
in the database but its main purpose is
to map between the world of database
contents which means tables and columns
to the world of Java meaning classes and
fields finally when you're in
development mode you can also browse the
database connect to the database and
look us look what's going on so this
tool builds the foundation for our
energy beam generation that we have
which we implement in another tool
called EU beam assistant you're being
assistant is that video new tool if you
have web bob Jex 52 you have it
installed already but in 5q it only was
geared towards cmp 11 or ejb 11
development now that we ship with a j2ee
what we compatible container which means
ejb 20 as as the technology is included
we can do far more than we used to do
and also thanks to our end templates we
can we can make it very easy for you to
have maintainable code generated by this
to automatically so as I said we have a
very good integration with and basically
the tool will just ride out based on a
near model and some more information
that you can that you can enter in a
graphical environment it will create the
the source files on the fly write them
in
the end template directory that use that
you selected it has extracted
integration which means we don't create
EG abuja ejb xml files anymore all of
them are ex doclets generated so that it
is very easy for you to maintain your
code and if you do changes if you just
keep keep up synchronizing changes in
the in the Xcode section it is really
easy so again we create extra support
for a bit for the deployment descriptors
which are the regular deployment
descriptors mandated by sun but also for
the jboss deployment descriptors so the
output is an ejb jar or an enterprise
module that is portable to any container
specifically it can be deployed out of
the box on to jboss we have also a
command-line tool a command-line backend
system for this tool that you can use in
in an automatic build and we're going to
show you this tool in an upcoming demo
now what what we suggest for for j2ee
development on our platform is that you
use even modalities to model the
database to borrow your persistence
layer your model like as I said is a
very good tool that also has a lot of
performance or can give both the EOS
back as our entity generation tool a lot
of hints on performance for example
read-only caching attributes and so on
once you have the the model generated
you should go ahead and use you being
assistant to create the entity beans
drop them right there into our project
support builder with Xcode you can
enrich the designer budgets entity beans
with session bean facades for example
with message driven beans and so on our
templates applause will help you finally
what's missing in most cases is a web
here and you can either use web objects
to access the the entity bean layer
you can use jsps and entered it and then
finally of course jboss is the container
to deploy on later whatever said
everything is generated totally
compatible with every with every other
j2ee container so you can just pause
your applications to almost any
container okay now we come to the to the
demo what we're going to show is
basically the recipe that I showed in
the previous slide applied to a project
in our case i have already created an EO
model and you can see that we have three
entity three entities we have the entity
complex types which is our main demo
element which is a very which has a very
complicated mapping of the interpreter
of the of the database section into the
Java world so we map you can see we have
many parameters here many attributes and
we met to basically all of the primitive
all offered primitive Java types that
you can see in the uppermost section in
the lower section you can see the
relationships that that our entity has
with two with the two other entities so
we have a 2 1 relationship with the one
entity and we have the to many
relationship with the menu entity and
this will show you how not only the CMP
attributes are met very easily but also
the theme are attributes even even for a
more complex case on maps and generate
automatically with scene p 2 o ok let's
move on and launch the beam builder UI
and we load the model and go on we can
select mapping only partial subset of
the attributes or off of the entities in
your in your model and we go on and are
just going to show you one screen we
have prepared a mapping already the
mappings are sold in XML files and can
be easily manipulated so what you can
see here is you can you can edit the
package name you can edit the class
names of all of the files that will be
generated
you can either generate cmp beams or BMP
beams and you have a variety of options
to generate to the two different types
of beings again we recommend using cmp
20 now because with the with the
relationship mapping it is it is so easy
good let's quit here and we're just
going to show you the command line
version it will run to the ear model and
create to create the the 35 that we are
looking for but the first of all
obviously we have to create a new
project we create an ejb module to show
you how the two technologies are
integrated okay so now that we have a
new module unfortunately we have to get
Xcode up and running with the new phones
and then we can switch to the terminal
and show you the command line version of
our tool so the only thing that we going
to do is we launch the tool take give it
our hav specification as an XML file you
see this file yo B dot XML and we're
just going to discard a bunch of not
really useful messages as you can see as
you can see the the tool is implemented
as well objects application so we
leverage the double component layer to
make sure that to make sure that our our
templates are very easily maintainable
and in fact you can go ahead and edit
our templates as well so now we have
equator three different files we again
we have a mapping of one entity in the
database to one file on disk to one
entity bean okay let's have a look how
this looks like in the end template with
Xcode
we have mapped we have put all of the
beans into the demo package and our main
main of mainly important bean is the
complex types beam so again Xbox it
makes it very easy for you to to write
maintainable code and to avoid having to
specify to placate information in two
places in this case we have you would
have to get information of the class
names of the local and remote interfaces
and so on in the extra java files but
also in the deployment descriptors and
also in the jboss specific container
descriptors which is very annoying so
you can see the ejb tags for X doclet
those are the taxable or this is the
information that will end up in the ejb
jar XML and when we scroll down a little
you can see that we also have cable
specific attributes that will end up in
the jboss specific file so even if you
don't want to deploy on our jboss
application server you can still
leverage all of the all of the
attributes you can just insert the
attributes that you need for weblogic or
whatever application server you happen
to use okay as you can see we have
mostly possible optimistic locking their
the extracted engine is not really very
ready yet for some of the more advanced
setup but it will finally get better
hopefully before we ship so let's go on
down a little and have a look at the
attribute to or database attribute to
field mapping to cmp mapping as you can
see here we automatically include every
single attribute we found in the entity
as the getter and setter method in the
beam this is this is a spec requirement
you can get around except for the case
we have a read only attribute so we
generate all of the necessary
information to generate the deployment
descriptors and also it is performance
in for the tables for the jboss
container then let's go down a little
since see mpit boots are really boring
we go down and have a
get to see a Matthews the theme obvious
are the way how relationships are mapped
in cmp 20 so instead of instead of
having an integer for example a long
second foreign key that points to the
wheel to the wheel entity they are
mapped again as local interfaces and you
can see that the relationship setup is a
little bit more advanced and have quite
some more code necessary in 44 CMR feels
both in terms of reading and writing so
this this code that we generate
automatically it's really a big help ok
so what we do now I think we are through
with it let's just compile it let's
bring the terminal window up and see
what Jay BOS does and then we compile it
and you see it is ready for deployment
you don't have to change anything
anymore especially you don't have to use
the deployment tool to manually go over
and figure everything out and this is
because the EO model which is the the
backend store has enough information for
us to generate all of all of the
required information and again it picks
it automatically generates the tables as
necessary you can also tune it to have a
generate initiatives and so on ok let's
move on the demos ended we go to the
next slide and
[Music]
good and then we go on to the section
that most of the that objects faults are
for the most anxious to to know about
the web objects j2ee integration so what
we have done is the following our
integration story is this our Soviet
adapter which is not really knew that we
have it we have been shipping it since
well objects 51 is the central point of
the Jet Li integration strategy the
Senate adapter is basically a framework
that you pull in into any web objects
application and it enables Soviet
support it has custom build scripts that
create all of the hierarchy which is
necessary for a almost wore deployment
and it pulls everything it basically
pulls everything together for a j2ee
container to deploy it now the one thing
that was missing in the previous
releases was the ability to have a pure
jar representation of the web operates
application and that we have added in
the form of job on this a job on it is
more or less a framework inside edge are
many many people have been asking that
for a long time and now we have it and
this enables us to vend well objects
application at the traditional god war
file or as a enterprise application also
we have enhanced the NS log interface
with an NS logger implementation that is
capable of using an existing in a
slugger and it's not forge a lot for j
logger as the back end so this is
especially important for the jboss
container which uses log4j as its native
logging MacKenna's men so that all of
the logging is is integrated you find
the logging of the of the applications
in the same place as warnings or
information messages of the container
and also you can use the administration
tool to look it up and so on the other
important part
the other important gap that we bridge
now with the upcoming 42 relief is our
configuration story for properties and
for your models the problem is that in
the past we used to have the properties
based on the system properties which is
especially bad if you have multiple
applications launching at the same time
with conflicting settings this has been
remedied in with our Jane the upper body
configuration similarly we have if we
used to have a problem where if you have
an EU model and you have you have a
database configuration set up especially
for the broadmoor deployment this is
extremely annoying because you would
have to unpack the jar and then launch
and edit or and type in the real
database for the deployment scenario and
it's extremely annoying so this is a
thing of the past as well I also want to
highlight the additional features that
you get by deploying a traditional web
objects application on the j2ee
container and for one thing the
background is it can you can use all of
the all of the capabilities all of the
features of the traditional service
specification which means you can use
filters filters the traditional use for
authentification or compression or
whatever else you can use EG bees that
you maybe get from third-party vendors
that you develop in-house you can you
can use JDBC you can use jca for
enterprise information system that you
can use JMS for example for a
synchronous messaging or to access
message queues and so on and also the
transaction manager is always always
available in a service which means you
can have multiple multiple resources in
the same transaction and either go back
all of the changes automatically or
commit them all at once the the other
set of of options that are very
appealing i think is integration of
security which means you just write your
application without a login scheme
required and it
meg of the make use of the container
security and again we have included
modules so that you can access and
verify user password combinations with
our open directory server also it's it's
very easy to just have one if you have
only one middleware one infrastructure
you have one place we're logging occurs
you have only one place or one container
one process to watch so it's it's
basically a it makes maintenance and
running running a j2ee store way easier
so those are the additional advantages
you get out of the box when you deploy
your web object applications on a
traditional j2ee container so this is
this is an example of using j2ee
resource inanimate objects application
I'm not going to talk about this in much
more detail because this is this is
traditional direct reprogramming it's
nothing special nothing special full of
objects you can use it out of the box
there is no call overhead so there is no
extra network access because everything
is in process so the way to get access
to a any gb or you can get access to the
transactions action manager or getting
access to jca or whatever is you could
initiate a new initialcontext you look
up a certain string where you know the
results is located you narrow it down to
the right type and then you're done you
can use it let's have a look at the jane
di property configuration that i talked
about previously so the server adapter
creates a template a template for a web
dot XML descriptor for the photos of it
and there we we use the the environment
entry XML factions to specify our
property definitions so all of the
documented properties that
that exists in the web objects
application container are documented
there and have this then that value
there which means it it's very easy for
example using our deployment tool or
using the deployment tool of let's say
weblogic to change the configuration
right there and again since Jane di is
it's capable of having a threadlocal
definition of the whole environment
there is no problem if you have multiple
applications multiple web objects
applications starting up and using
different properties the deployment is
easy because you can see in the
description elements you have a
description of what this property does
you have the name you have the value and
with the type information deployers can
easily figure out what the correct
values are and what the possible values
are very similarly for formatting data
sources and for making sure that your
real model or that us can find data
sources that that you configured in your
ear model we have a similar setup so in
addition to the environment entry that
we have to define to to do the actual
mapping we have a mapping of a resource
reference this is an indication to the
container that we are referencing a
database a database in our server
environment and we are declaring this is
reference and we are saying okay we will
be using this another name jdbc default
data source and in the second layer we
have an environment entry which the eof
spec will use to actually do the mapping
you can see we have an element called
movie movie vb and this movie DB will be
we assumed in the connection URL section
of the EO model and this key make sure
that we can map the loogies TB to the
environment entry you can see jdbc
default data source to the lowest vidoes
entry down there and method to the
definition in the uppermost entry
so we have persevered two steps mapping
weekend Desmond for for accessing data
sources and this is the final step
basically in making sure that objects
application can be fully configured
using a great week using a j2ee
deployment tool okay and that was it so
what was important for one thing I think
one of the very important part is that
j2ee can very much benefit existing web
objects application and that j2ee really
is not your enemy anymore it's your
friend because you cannot deploy on for
example dotnet systems but you can
deploy on j2ee systems and also i think
what objects can benefit j2ee you have
seen that our tools that can greatly
help you develop your j2ee applications
on web objects on mac OS x server and
then finally i think with all the
integration work after many pieces that
i introduced today we have a very good
story and that i think my class and
server is the best place to develop and
deploy tables applications thank you
very much there was the presentation I
know that's going to go over the the
road map and the end-tidal very
important it's the session section at 12
enterprise application deployment where
we go over all of the tools in much more
detail and explain many more things that
we just have at the time for today with
objects reusable components for the web
tier very important with objects UF
advanced topics web objects creating web
services very important if you need to
interoperate with the.net systems for
example and then who to contact and rear
center of course Bob Fraser and Kathleen
Bank are our main address our main
contact person for the web objects
product and we finally have April epic
era enterprise services if you need more
help getting applications out
and these are for the for the DVD that
we don't type them up they're all in the
URL section that we will publish on the
website and the DVD an important i think
is the jboss website there's actually
two addresses for the jboss website one
is jboss spot org which is the
commercial the commercial arm basically
of the Davis project and the other one
is more geared towards developers it's
on the source watch side tomcat and and
x profit have their own websites
exported website is really very
important because there are so many
extra attacks and you just can't
remember all of them