WWDC2004 Session 610
Transcript
Kind: captions
Language: en
hi there my name is Ray kitty I'm in the
web objects engineering group and we're
here to talk about jboss the j QE
container that is shipped with mac OS x
server and
just FYI probably the level of the talk
it's kind of hard to describe in the in
the terms in the catalog this is an
introductory probably talk about jboss
itself you know for instance we can talk
about setting up the connection managers
to talk to the appleseed esa system to
get secure authentication and that that
by itself would take several hours so
you know we're not going into extreme
detail on any of these kind of things
probably the if you're here because you
use my question server and you deploy
job applications or you build some job
applications and are needing to move
them to a more serious deployment
environment you've heard of jboss you've
looked at it it's confusing you know you
can read some of this documentation and
you know it makes my eyes go blurry when
I read it some of the Sun documentation
is famously you go catatonic reading it
but you know if you're at that point you
can read the magazine they don't they
don't explain anything that you can read
some of those articles and you can come
out of it thinking well I know some more
buzz words but I know zero more
information there's no more knowledge
that I know so I'm hoping to get you
past the first hurdle in you know
deciding you know yes this is a
realistic sort of deployments came to
look at and you know on Mac os10 server
you know we think we've made it a lot
easier so if you're already ready to ask
me you know questions about your XML
descriptors and problems you're singing
and cross configurations you know that
that's probably not the kind of thing we
can go over here but you know I think
most people are not quite up up to that
point and to be there to go into a very
advanced talk would take quite a while
so so jboss is ready to take on the
enterprise you know really businesses
are taking open source tools very
seriously now jboss is managed to make
you know a name for itself it's known
you know the promoters of it are very
outspoken the you know PR enterprises
are realizing that they want to do not
be locked into certain platforms so they
not they want to not be locked into
certain tool sets and so they're looking
for these kind of solutions where things
are available you know even college kids
can get this and they can find people
who know this you know moving forward so
and you know helps to have somebody who
you know actually comes from a research
firm that you know the enterprise people
listen to so we put this on so another
marketing oriented slide sorry about
that but I wanted to show that you know
this is published by jboss but it's by a
third party you know so you can have a
bit of faith in that you know between
2002 and 2003 the deployments and
enterprise of jboss doubled this is
pretty significant growth so this one
you know as a development environment or
you know for developing j2ee
applications you know jboss is actually
the most popular you know so what that
means is that is that the people out
there may be deploying on other j2ee
servers but but they have jboss
available it's free so they have it and
the people writing the applications are
familiar with jboss so you know going
forward those people as to become more
senior make decisions eventually and you
know jboss has some legs in terms of
lasting you know because of the the new
people coming in are using it more will
get off the marketing slide soon I
promise so um again for the future you
know jboss is moving forward very
quickly now Apple has the latest version
3 on its servers version 4 is of course
much talked about by the jboss
organization but it's still very new
cutting-edge cutting-edge as in you will
slice your hand if you use it so you
know we're not putting that on every
server we ship out the door but you know
jboss has done a really good job of
the documentation is a lot more
available than it used to be the wiki's
and blogs are very active they're active
in the jsr process moving the jquery
standard forward in particular that i
don't know if you've seen the ejb 30
stuff but I you know I wish I wish you
JB looked like that you know two or
three or four years ago it's it's
finally seeming to become a little bit
more simpler and companies as I said are
increasingly setting policies that they
would prefer to use open source tools
tools that don't lock them into licenses
that don't walk them onto platforms you
know tools that they can deploy on
different servers without asking some
big company so
so why mac OS x server in jboss we think
we've done good things to make jboss a
lot easier to use out of the gate so I'm
going to talk about those so we've
customized it that's significant the
server admin application to start and
stop the container and to control which
configuration you're running you know
server admin is used to administer a lot
of other services on that Cliff 10
server so you know the DHCP servers or
the FTP or the mail or whatever you know
we've made starting the application just
very easy you know the essentially you
can think about starting the JBoss
server and then 10 minutes later you can
have it up running and then actually
deploy a nap in it about three minutes
later so you know that's that's not the
end of your learning task but it's at
least a lot easier to get started you
can download jboss and try to set up a
distribution it's going to take you a
while just to figure out the first
couple error messages you see so we've
saved you from a lot of that you know
once once you start to do something
strange you'll see those error messages
you'll have to figure them out
eventually but you know we've customized
this for a couple different scenarios
that you can use that will handle a lot
of people's use cases and we have
graphical tools for the monitoring
deployment and configuration of the
container so you know if you try to do
this stuff by hand you know swinging
without a net you know it's you end up
VI and the XML and you know you end up
writing scripts to unbundle archives and
REE bundle them and move them around and
ship with it it's the it's a pain its
bother so just getting an initial
configuration up that's reasonable for
your machine can be quite twice quite
quite a learning experience and we've
we've essentially made you know that
automatic
there are three configurations that come
out of the box and we'll talk more about
them later but they're two of the
configurations our deployment one is the
deployment stand alone just a single
machine one of them is deployment for a
clustered environment we've set that up
for you so it works just automatically
and then another one is a development
environment you know you're developing
the application you want to get a lot of
information out of what's going on and
you don't need it to be performing you
know you don't need to emphasize the
performance of the application itself
the development configuration is set up
that way jboss itself when you download
it if you were to download it it would
be conservative about what JVM you're
looking at so it would assume you have
13 one of the 13 version to the JVM and
options would be turned off these
options can be turned on if you have the
14 jbm you wouldn't necessarily know
which options those are and actually
we've gone in we know you're on a system
with 14 and actually now probably 14 2
and so we've gone in and turned on those
options but we've also tuned the
parameters for that and and also we
frankly looked at what the parameters
mean for the JVM whether they make sense
whether they do what they say they're
going to do and if they didn't make
sense we don't turn them on you know
that so you don't have to go through
that discovery process yourself you know
you have n number of configuration
options and how many combinations of
that configurations to to sort of scope
out and and run tests on to see what you
wanted it's pretty complicated so we've
we've optimized that for the version of
Java that's on mac OS x server that
you've got and the rubble yacht we've
optimized the deployment environments
for performance reliability and
performance tests were run quite a while
and respect compliance as well you know
you get it from jboss their their
interpretation of the spec is sometimes
a little bit flexible so and we're you
know we think we've interpreted the spec
to mean
to see what it means and and made the
change that was appropriate to that so
that this is this will help this will
help your learning process so um on that
question server it's not just a standard
UNIX distro the you know file system is
laid out certain things to the tools you
know server admin it expects things to
be in certain places that make sense and
indeed we put jboss into library jboss
we put the logging is redirected to the
library logs directory which is where
you know most of the system expects logs
to be and you could you could go in and
manually defeat that to put logs
somewhere else but there's really no
reason to do that the nice thing about
this is that when you switch
configurations you don't have to
refigure out where your logs are
standard distribution you know all the
logs go to different places when you
switch configurations so that can be a
bit confusing we've essentially made the
jboss fit in with the other tools on Mac
os10 server by putting it in the
expected places and and then frankly you
know dealing with the changes that fell
out of that dealing with the the things
which should be settable and yet you set
them and they do something odd but we
fixed all that server admin as I said is
the tool that Mac os10 server uses to
administer all of the different server
services on the machine and so it's as
easy as clicking on a button in a list
and taking the configuration from a
pulldown and then clicking one button
and your jboss container is running so
i'm going to say again that's really
nice you know but a lot of times i don't
know about you but you know if i can
make the first step it's a lot easier to
figure out the second or third step you
know but but sometimes the first step
itself you know i remember you know
trying to write in a language i hadn't
worked with and until i saw somebody
give me a 20 line program that did
something I you know it didn't make
sense but once I saw that very first you
know yes this works then I could step
off from there this gives you a place to
step off from this gives you a working
server a working container you know and
then when you go to the jboss list for
help or information you can say you know
before I did x you know this worked you
know and I know it worked you know apple
shipped it they had tested it you know
it's more than just it's more than just
you know you're Joe Bob calling in and
saying you know I'm on I'm doing
something weird over here and tell me
why it's not working you know that's a
little bit hard for them to answer but
we have we have a known scenario we have
a known known system and it gets you
started puts you in a really solid
position so the watchdog isn't is not H
bar it is not jboss specific but you
know it it launches processes for you
watches them make sure that if you
register your container process with it
and make sure it stays up you know the
reliability of things shut down they'll
come back up yeah so it's very simple to
use the there's a man page and not
really too much else to say about that
the more these things you know the
better these things work the left there
is to say about them
so security is of course a huge ball of
string and then it's just one little
slice of the pie here but but actually
that makes sense you know as I said we
could take just one aspect of security
and talk all day about it but really
macula 10 server comes with some things
that make security and authentication
fairly easy and jboss just takes
advantage of them without any extra
effort so you know mac OS x server comes
with the with a Jas implementation you
know based on the CD s a standard stuff
that Apple's done and you know really
strong authentication that the net info
can figure 8 you know the just having
regular user accounts in that info
setting up your communication with the
container to require authentication via
those accounts is very easy so then
you've got the server admin that can set
up your user accounts as well and you
did you know you can just use the
necklace 10 server tools to set up your
users in a very natural way and then
jboss just knows about them apache does
is another one there's not too much to
say about says it works well and I'm not
gonna tell you anything about apache
that you don't know that we use the 1329
server version of the server on there
right now and there's you know the mod
JK is included on the system if you want
to include it if you want to have it to
be used by the by the Apache server to
more tightly bind the server and your
container you may want to have them in
different you know with the farther
connection from each of different
process spaces and everything or you may
want to you know use the mod JK to have
apache do things a little bit more
quickly with with J bar and that's your
choice so that's there
so MySQL of course everybody knows MySQL
fairly fairly robust another open source
project like jboss bit older probably
you know jboss comes with hypersonic of
course and hypersonic has some nice
things but but frankly you know how many
O'Reilly books are there about
hypersonic versus how many are there
about mysql mysql is quite a bit more
known scales up to larger deployments
much more easily and you know we've
included the database descriptor xml
information that lets you just you know
use the mysql server that's included on
machine and just lets you drop that in
and go not you know not worry about it
you don't have to set up the database to
start with you don't have to populate
everything to start with you can just
start using it so that's certainly a lot
of a lot of the task a lot of the job is
getting your container to communicate
with the database and we've made that
easy so you again there's a whole lot of
error messages you might have to figure
out if we didn't already do this for you
you don't have to learn those you can
just start using it so and LDAP is
popular for enterprises the directories
than you know authentication user
authentication jboss can take advantage
of that as well so if you're if you use
ldap for that purpose it's a trivial to
use the ldap information for identifying
users in the container so Apple uses
ldap internally as well and and so the
open search tools for ldap they're very
nice we've included those on my
christian server as well
so the repetitive I know but the you
know we like to think that we've done
the hard work of setting up the
configurations for you you don't have to
edit the xml yourself you don't have to
worry about you know you've got a key
value pair in the xml that takes an
enumerated set of values you know you
don't need to figure out what those are
it's not going to be obvious what those
are very often it's you know two or
three two or three you know in
directions away where it explained what
what the enumerated values can be we
we've set those up so for instance you
know pull down show you the values that
are possible yeah you know you won't you
won't have to worry about you know miss
piping something you know typing data
source and putting a and B ETA you know
needs it you know that'll that'll mess
you up for a day and a half it really
will and you know we we make it so that
you don't you don't make those kind of
mistakes because it's provided for you
it's a whole level of things that you
don't have to worry about so and again
the logging is centralized so you can
switch between configurations and not
worry about where things are supposed to
be going where the information about
what's happening you know is supposed to
be going it's it's right there in the
same place and the server admin
application can allow you to look at the
logs also remotely so uniquely on
another machine and then deploying the
server over there and looking at the
logs over there and everything so the
makes it quite quite easy to administer
these these are the two deployment
configurations that I was talking about
and they are optimized for performance
quite a bit the you know out of the box
we were seeing performance and we got we
got multiples better by doing things
doing some fairly non-obvious things to
make it work on the system that we have
with the JVM that we have with the
database we have so we've done all that
for you though the two deployment
configurations are standalone which you
know it just works you drop a
or or SAR some kind of archives into the
directory and hot deployment you know
you just turn around and fire up the web
browser and you can access the
application works very nicely they're
fairly simple clustered clustering is
not so simple but we've provided a
implementation that works you can do
things with it they make it not so happy
but but you know clustering is easy to
get wrong so you know you could try to
set up the clustering yourself with the
configuration again a whole new slew of
error messages to learn and things
define that are not optimal in the
default configuration so there's a lot
of information about Jay box of course
on their site so you know W other daily
WWJ Borg and actually you know they have
a wiki so it's fairly interactive you
can get on and ask questions or provide
your documentation of how do you think
it's working and see what they say all
of that but we do provide these
configurations you know to be working to
come out of the box to launch to run and
to get you started
tomcat of course a server that by
default it's run within within the jboss
container and you know plays well with
the standard Apache configuration
basically you know if you no doubt if
you know tom cat somebody started up
jboss you can use the Tomcat services
without worrying about what jboss is
doing you know it subsumes them wrap
them up and so tom cat is in its own
directories well library Tomcat flash
library / tom cat and the https services
the connection services are easy to set
up and use and when you start it up in
the jboss containers on a port 8080
which is sometimes a little confusing
because next slide the standalone Tomcat
is on a different port so if you want
Tomcat but you don't want the jboss
container running you can one of the one
of the configurations of the jboss
container is tom cat only he even go
into the server admin application select
a box from the list go to say Tomcat
only and start and it doesn't start
jboss it just starts tom cat and tom cat
will be haven in the way that it's
expected to behave so if you're if
you're doing something that you you
don't want to involve the container and
your day buff stuff this is this is
there for you so we're going to do a
real quick demo of the server admin
application ok great so so r admin tools
really simple let me just launch it
really quickly and what we did with j
boxes and tom catalyst made it a
first-class this and within the server
abdomen and there's a application server
plug in here as you can see and you know
most of your other major services like
ftp mail or accessible here but so you
put it at the top level so
deflected as you can see the surface
isn't started this first pain is just
giving you a little bit of the
configuration information and sue them
we've discard our server without having
to do much other things of note within
our server admin is that you can have
access to various log files and stuff
like that so there's the bootstrapping
files some of the access logs you'll see
some more HTTP requests going through
here and then your server logs if
there's anything interesting going on
then that's where you'd find your logs
and Ray was talking about the three
configurations that we give to you out
of the box there's deployed cluster
deploy a standalone and develop
primarily on the on a deployment
platform you'd be interested in either
the cluster or standalone I've also got
a custom configuration for an ex pet
store but so if you do create a custom
configuration it is accessible through
the the admin it's not like hardwired to
anything so it dynamically picks that up
and now if we were interested in the
standalone tomcat we had just also
select this and so that would put this
Tomcat up on the port 9000 6 so these
other configurations are about on 8080
so that's a quick demo just getting us
up and running so we have a server going
and back to slides and just for the tech
people try not to do that deep sigh into
the microphone again it's been a long
week hasn't it you guys made it to
Friday you know we are the conference is
a lot of work for us you know the bad
thing about the conference is it
incredibly disruptive on you know all of
the processes of development work at
Apple the good thing about the
conference though it's very disruptive
on processes
you know because because really you know
I want to say you know we we really
really appreciate hearing from you all
and and and frankly sometimes the
management needs to hear you all and
reset you know what they're thinking you
know they've got their you know five
year plan of the Soviet Union all mapped
out in their head you know but the best
laid plans you know sometimes we need to
redirect these so it's been a
challenging week but we're almost
through I appreciate you all being up
here on early in the morning on friday
after that i was told the attendants
might be really down because of the
alcohol consumption at the at the party
but that seems not to be too much of a
factor either that or it might make more
sense if you're a little bit hungover
you know that that's always good to
certainly nobody's looked at you know
j2ee implementations and said wow what a
elegant solution you know i mean it it's
not you know yeah I you know but but
deploying in production environments is
really hard and you know it's like you
know you you're looking at it it's like
well feet what I'm doing now is being be
paged at four in the morning every day
for two weeks and you know essentially
it's like chewing glass and you know you
know these containers with their
management protocols everything they
start to look better so you know that
you know we want to we want to help you
grow your applications into industrial
environment so you know that's why
that's why we're doing all this so
configuring a monitoring jboss as I said
it can be pretty complicated but we try
to make a negative easy as possible for
you so the access to the tool is over
the network it's a web application that
lets you administer the container and
the security for that is provided via of
SSL connections and open director you
can remotely administer the container
and it is secure as well so the as I was
saying easy management you don't have to
figure out what the enumerated value so
that things are supposed to have to
no you don't have to figure out
beforehand what these things could be
you can look at the list provided and
you won't you won't twiddle from your
way into an error you can monitor the
container statistics you know we
essentially exposed the jmx up the jmx
containers status information so you can
view it that way and the different
approaches you know we've provided the
configuration based on what you want to
do so you can switch between the
different configurations and try try to
get to where you're going you know it
doesn't destroy this configuration to
switch to it and configure switch back
to this one and configure you know you
can experiment with what you're doing
and we make that easy again the login is
all centralized and everything is easy
to find so we think it works well so jmx
console is available it's different
using it if it's you know not very
friendly it is it is a web-based system
but it's it's all textual key-value
coding looks as much like XML as any web
page could actually you know it's simply
a translation of that XML so also of
course when you're using the jmx console
you're changing eggs in memory for the
current container and then of course if
you stop the container and restart it
you know it's all gone you're off the
scratchpad so you know it's it's for
dynamic configuration of some of the
parameters but it doesn't allow you to
to persist those changes probably
because of the bullet 22 farther down
which is that it's not secure you know
you would have to if you if you expose
the jmx console you would have to figure
out how to make that access point secure
yourself and there is no validation in
the jmx console you know you you it asks
you for a data source name and so
instead of saying you know mysql DF you
know you
a MySQL fubar you know it's going to say
okay fine and then 20 minutes later
you'll start to get some out errors so
the errors do come up set more than one
step after what you've done which always
makes it harder because you think you've
just done something but no is actually
the two or three things ago they cause
what you're seeing now and it's not
obvious so what we provide is more than
just the jsr 77 dictionaries of
information we provide a level of ease
of configuration beyond that so the XML
is still there of course if you want to
you know get dirty and dive down into it
but you know then you're you're swinging
without a net so and that's a you know
eventually we all do that because we
like to have eventually we want to have
that much confidence in our systems that
you know if the rest of the world has
fallen down we can bring things up but
but it's going to take you a little
while to get there and we're giving you
a solution that works until you get
there so I think we're going to do
another demo yes okay
so what I'd like to show you is what ray
was talking about the jboss management
tool that we we have an apple plan or OS
x server and then I might show you
really quickly what the gmx console
looks like you can kind of get an idea
of what interactions or what you can do
with those so didn't by the way I don't
know ray mentioned that did the jmx
cockle is comes from jae bok it's not
done by Apple but bill but we'll get
into that little bit more later so on
okay so what you'll most with our what i
did was i just hit our jaton managed a
box button here and it pulls up our
management tool you can authenticate
into your directory services here and so
if you've added a user group or whatever
like that within your preferences you
can access it that way and I'll tend to
get that way okay so what I'd like to do
is just manage my host and I'll select
this button right here and I'll just
give you a quick tour of what we can do
within the day Bob manage map so there
are a lot of services on your machine
and we make it easy for you to turn
these things on and off so I needed to
turn off my hypersonic services I can
select that checkbox or I can turn them
back on again if I do this and there's a
lot of complex things going along around
here and within the app that you're not
saying we're managing a lot of XML for
you and validating against correct
values and stuff like that and what I'd
like to show you is say if you look down
this tab you have the ability to
configure services let me just show you
how it appears in our management app so
contrast this to actually how the XML
look and I'm going to open up the foul
here really quick so this is what it
looks like with in jboss and
it you'd have to do a lot of digging
around here and hand configuring and
figuring out what exactly valid
parameters are for this and it's just
kind of ugly and there is a lot of
comments in here to help you figure out
exactly what this is but within our
management tool we've allowed you to
we've exposed some of the dependencies
and some of the values that are
available to you so I'm going to just
show you something like a clustered
being really quick and what you can see
is that these pop-ups actually figured
out what values are valid values and you
know you can they're selectable versus
XML where you're gonna have to go dig
around at DTD or and schema to figure
out okay what can I actually set there
and anyway so we've exposed a lot of the
min and Max values so that you have an
idea of what you can configure here or
as defaults so we save you more time
gripping to files so let's go back to
our top level page other things that
we've exposed are creating data sources
really quickly so if I want to create a
data source for a new JMS data source or
my SQL or in a post greatest source all
have to give it a name you know and
they'll create my data source for me
with all this configuration
other things you can do if you're
innocent JMS is we allow you to create
topics or cues so that is exposed to you
and you can save it off to a file as you
can see right here and then of course we
allow you to deploy your applications
either and clustered or standard mode so
I'll just deploy our X petstore really
quickly and there we go so we're
deployed so let's try just accessing it
really quickly and I think that's a link
here oh I'll show you one other thing so
if you just want to check if your host
is up you can hit the 8080 pork and just
localhost and ok now I'm that's another
way to verify that you're gay bust over
or your tomcat server is up so before I
show you the Tomcat demo I'm gonna one
thing you have to do is actually
populate the database and there we go so
let me make sure that that's populated
and let's hit my link here so it's kind
of we compiled some of the servlets and
stuff like that but basically here's our
your standard Java pet store demo who's
like validates your container or
suddently uses it to to validate that a
container is like Jake to be compliant
and it's like a good example app so
there's a working half and now let me
just show you really quickly contrast
with the the gmx console so what you're
seeing here is we're persisting our data
we're configuring the XML files and if I
started stopped my server and stuff it
the my configurations will persist what
if we go to the gmx consult with my
wrong link here
what you'll see is a lot of information
present here on different services you
might not be as familiar with but let me
show you give you a flavor of just what
you can do with the console usually it
allows you to add some kind of values
here and then invoke it and so it's not
always a pretty thing you don't know
what are valid values what aren't valued
of values allow you to kill your
container and this is only at that
instance of the container and at one
time if you invoke something like this
then I'll show you a thread dump in
particular so we think that we've added
a little bit more value on top of the
DMX console and like Ray said we
validate on your values we also more
secure because you actually had to log
into to get to the to our tool versus
the jmx console and hopefully that gives
you an idea of the interaction and they
are complementary if you are just in
development mode the jmx console is a
great way to tweak values
so that was just for configuring the
applicant aynor itself we showed you one
way of deploying applications but of
course we we didn't do anything with
that application that application was
already set up and waiting for us once
you have it set up waiting for you can
use that interface and it's very easy to
get it yet it deployed but of course
before you deploy it you start out you
build it for the first time you've got
you know a bunch of things in the
archives for the container that you've
got to change somehow you know so if
you're doing it manually you you know
under all these things move them around
edit the xml get them reechaard up in
the right place and it can be a bit of a
mess so you know the web and each of the
modules of scriptures all have to be
changed and usually of course they they
need to be changed in two or three
different places if you just change them
in one place again new kinds of error
messages until you find the next place
you were supposed to set it and then
maybe the next place after that you know
our tool links these things together you
change it in one place and every place
that is supposed to have that same value
it gets pushed to it so you don't have
to worry about you know did you type it
different here did you type a different
there did you remember to go to this
other descriptor this other level in the
system to set it again and you know the
steps of st. values over and over again
so it makes the cycle of you know the
archiving deployment on archiving that
makes it very easy with our tool you
know this is very manual using the raw
XML very manual very prone to errors
even when you've done it 20 times in a
day you know you can still find new ways
to mess it up so we've done the
application that lets you deploy the
applications that lets you configure the
applications for deployment very easily
and so we think that we think that makes
a good experience on mac OS x server
we validate the XML you know you're not
going to get some jacks p parts or air
or something that doesn't you know it's
not going to make much sense as you know
the XML parsing again new classes of
errors you can override the settings in
the containers and the you know possible
values are shown to you they don't have
to guess it's very nice and actually we
already have a demo of this right so why
my sauce is a deployment tool and so
this is if you need to configure
application for your particular
container or you need to reconfigure
your your wire bundle or your bundle so
let me just start it really quick and it
will pop up in our safari browser in a
minute
okay so i need to give the location of
my pet store here and i'm gonna i also
have this checkbox for validating xml
file so that what that does is it also
checks for various values and and guys
that need to be pushed across various
beings or modules that you have so i
think the some of these things are
self-explanatory except for the kinect
link right here and i'll explain that in
a second but wyd like to show you is
just some of the validation features
that go on here within the tool so say i
strip this data source snapping let me
show you some enterprise games so with
the blue color this says okay everything
is validated and it checks out but if i
remove like some values here that are
necessary or dependent on other by other
beams or servlets to highlight in red
and say hey there's a cross dependency
here you've just changed your global
data source and none of these being
these beings depend on it so this is an
easy way of or we make it we've exposed
this and they easy for you to tell if
you've configured to your app correctly
so what I was doing here was just
editing by you know if I had some
specific knowledge of my data source but
what if I didn't know what my container
what kind of data sources or
configurations I had available in the
specific containers can deploy to we've
added this Connect feature where I can
connect to my actual JBoss server and
then it the deployment tool will figure
out okay what settings or configuration
does of my on my server support that I'm
deploying to and as you notice those
text fields went away in the same our
global cmp studying and actually it
figured out from our server that these
various H SQL data sources are available
to me
and so we can hold be a little bit so
that you don't have to go and figure out
some of those settings and that makes it
pretty pretty easy to figure out what's
going on other things to note here's
where you check these global settings on
servlet you know if you had various
filters that you were you're adding or
need to edit this is the place you would
do it and I think we only have one
servlet here for the experts store and
then once you're done editing all your
configuration then you can save it off
some more so that's kind of a quick tour
I encourage you to play with it a little
more yeah really does help having
something which shows you the proper
jndi names for all these resources you
know because you can look at the file
and you won't necessarily be able to see
immediately it's not referenced by file
it's referenced by you know whole nother
protocol jndi and and so you don't need
to worry about that you just you have it
tell you what's available you know it
can see the descriptors and it can read
them and understand that machine the XML
eat more easily than you can so so
I'm realizing I'm standing out here
sounding sounding very calm you know I'm
not really known around the company you
know people heard me talking I'm not
known for my calmness but perhaps it's
because really what I've been talking
about is deployment yeah you know which
which you know we're not we're not
necessarily deployers here this isn't a
deployer conference right you know this
is developer conference I mean this is
really this is the part that gets more
interesting for me you know that the
benefit of this stuff and why we want to
learn why we have j2ee why we want to
learn this stuff why we want to use it
is that really if we're developing
applications we want to make the
deployment as easy as possible not for
us frankly but for somebody else for
somebody else to do it you know it's a
different concern when you develop your
application you know do you want to be
worrying about what kind of machines
you're running on do you want to be
worrying about how many users are going
to be accessed in the application you
really don't because you want a deployer
to do that you know we're not you know
capacity planning is a different skill
then developing so I may be precision
some of my slides here that let me see
so development on Mac liston server or
actually necklace 10 because of you can
take a service system put the
development tools on it get the
development parts with jboss or you can
you can use the client and put the jboss
development system on that as well it
doesn't matter of course we keep saying
mac OS x server but of course really the
difference between the server and client
are some some extra things some extra
goodies it's not a fundamentally
different operating system so we have
integration with xcode with the
developer you I to make it much easier
to build applications there are other
IDs as well and they do a lot for you as
well you can try them out but you know
we think Xcode is a very good solution
so
we use aunt for the project we use X dot
X doclet for configuring the configuring
the XML in the applications when you
develop them last year they spoke quite
a bit about xbox for quite a while Betty
you know X buckle it has actually been
out there for a while now and so there's
a lot of documentation about it about
what it does it's you know a find and
replace or template template the
development system forex XML and you
know it's a open source and we use it we
use it internally so you can do quite a
quite of you can do many things you know
in your application development if you
want to look at X doclet and how it
works you can figure out all sorts of
odd things to do with it we let you get
to the X doclet tags yourself in and do
those things so we don't get in your way
for that and we have a developed
configuration which is unlike the others
not optimized for performance but it's
actually optimized for verbosity for
chattiness so that you know you can get
as much information as you want it's a
lot of information if you filter it
sometimes you will filter out the things
you actually need and get a lot of the
other crust so this is a chatty
configuration for development we provide
these application types these project
types automatically and the file types
for putting into the applications and
the ant task when you build you can you
can go in and create a Java servlet in a
web module project within two or three
minutes and just put some text on to
that page and then hit build and you
know about two minutes later you can go
to your browser and see the app running
so you don't have to jump through a lot
of extra hoop to develop and test it as
your as you're going along
so if you have the server system you'll
have gay boss you can put the
development tools of course on server
but that's not actually going to get you
the ability to for instance get the web
module project and you know some of
these j2ee specific tools and and
obviously if you have a client system
you don't have gay boss by default so
you can again go to shave off a dog and
try to get it but then again you've got
your configuration problem what you can
do instead actually is go to this site
and download a distance with an ADC
membership which is of course free as
they been saying and you download this
package and one thing to keep in mind it
will bite you maybe is is that this
includes jboss so if you if you've got a
service system with jboss and you you've
configured some things and then later on
decide you want to develop on that
machine this did me so that's why I'm
saying this you know it will it will
gladly overwrite what you've got so you
know just pay attention to that because
you're not only getting those the web
module the Xcode integration tools but
you're also getting jboss the same
version configured the same as is
shipping on the server so if you've got
a just a client development machine you
don't want all those other tools to the
server provides you don't need to get
them to do this you just download this
one package and it is big it's a big
package includes a boss it has to be big
but it is just one package and has non
intrusive as it can be so
what else is there to say about this
really you know aunt is becoming the
standard for these things and we provide
the ant projects the projects that you
create by default they use aunt so you
know its crop cross-platform it works
with other platforms and and people know
it so why not use it it works so we did
not much else to say about that like you
know it works so is let's talk about
that's okay and Xbox it these are the
tags that we use so you know if you're
looking at the xbox one implementation
then you know this is what you want to
look at so if you haven't looked at you
know writing custom doclets this is
going to make a little bit more sense
but if you go to the javadoc page on sun
and see some of the really whacked-out
things people have done with doclets you
know at least that'll sort of point you
to the fact that this is Java doc has
gone way beyond what it was intended for
but in interesting ways and then this is
one of them
the developed configuration actually in
the UI it's the lowercase T again we've
pre-configured this so that it works and
you can run it hot deploy the
applications check out what's going on
get all the information as I said before
it's not optimized for performance but
that that's not necessary you're
changing things anyways so this isn't
the stage you should be looking at
performance in a j2ee application
frankly many other layers to look at it
and we're going to do a demo of using
Xcode for this okay thanks ray so after
you've installed the application server
Developer Preview you'll get some
templates it'll show up and as he
mentioned earlier there are like three
different templates that we give you the
ones just a straight ejb module the
other one is an enterprise applications
combines both EG bees and web module so
we have all the build files necessary
for that and then there's the web module
which is more distorted so what I just
like to show you quickly the web module
because ejb modules are so sexy for
demoing okay so we'll just call this
test and hold old just really quickly so
let's just do a couple toro just really
quickly and then we'll do a couple
customizations so here's some of the
build properties that you might need to
set so some of the data from the version
information and what if the mother the j
bought the service home directories and
stuff like that so if you really have to
remap your jars or other resources this
would be the place to do it here's our
build XML just in case you need to
customize it for any reason and this is
specifically the web at build.xml
for building serve woods here's our
source file and the business like your
generic hello world kind of starting
starter project and you can notice up
here there's a bunch of x dot with
chocolate tags that you can configure
and these parameters are pushed into
your first config files one pattern I'll
just configured here really quickly is
the URI pattern or URL pattern and
basically when you contact the host as
you'll see later the URL I can we map it
to different paths and so I'm just going
to call this hello WGC and let's just do
a couple other configurations like will
change the title it was not particularly
that difficult this is just a basic HTML
page that we're going to be posting here
okay so let's just build and run that
and we have safari up I'm going to just
double check that my JBoss server mista
left it should be okay so if I want to
contact my host and be once the other
thing I should point out in our target
directory I think okay so this is the
back and build script Eisenberg's so
we've wrapped that in the target and
okay so here should be the URL to my
servlet n we've gotten that and it's
really easy to configure this so
hopefully that's just a quick demo of
like what the servlet temples are about
and just how we've exposed in the next
code so obviously is you know which is
there's a lot more we're just showing
you very simple applications but it
really just does get you on to the road
past step zero you know a lot of times
you're coming down a completely new
technology like this and you try
something for the first time and it
doesn't work and you have that period of
time in which you say am I just an idiot
that I don't get this but but but
actually you know what we give you is
that you can very quickly you know
deploy get this container running you
can deploy a first application and you
can say okay at least this ground that
I'm standing on is firm so that I can
decide to step forward whichever
direction I want to step forward now
once you step forward of course the you
know the jboss documentation because
it's important if you're if you're doing
unusual things that you know jboss is
the main site they actually have as I
said they have the blog's they have the
wiki so for instance you could look
there might be information for instance
specific immaculate end server on the
jboss wiki you know and we as community
members can put our questions or answers
there and so you know i hope that i hope
that might be useful
so of course I'm a wood obvious engineer
weblog who's near and dear to my heart
web object of course actually is just
just the java application so so actually
getting it to run in jboss was fairly
simple we just translated some of the
application configuration information to
make it look like a servlet you know and
very thin layer to wrap it and so I'm
just going to do quick talk about about
web objects of course you can use jboss
of for many months and not do with web
oddish development Mac os10 server is a
very good platform for java development
traditional javed or a plain java
development whatever you want to call it
so you can do all sorts of different
kinds of applications and deploy them in
a JBoss container i'm merely showing you
what objects because we think it's
amazing cool wonderful so we're going to
we're going to show it to since we have
you captive for a few more minutes I
actually thought that this might go to
quickly but it turns out actually that
the speaking legibly has slowed me down
so interesting phenomenon I wasn't
expecting that I think my manager
probably was expecting that but I was
not so I never go in order from the
bottom Jake you know Jay box k boss
there's a lot of name recognition
obviously you look at the magazines it's
very cool in the buzzword compliance
stage of things tool development is not
the point of jboss you know so we like
to think that you know what objects will
let you more easily build data based
applications and then if you need to
deploy them in a JBoss environment it's
trivial to do so so you know if you're
you know frankly you know web address is
a very cool technology but you know
sometimes you're talking to a somewhat
hostile environment
we guys in the red ties you know that
don't get how cool this technology cool
doesn't work for them you know that they
want to hear standards-based they want
to hear industrial-strength you know
they don't want to hear elegant frankly
elegance elegance is for after work for
them you know it's you know they want to
be able to bolt it on and no it's going
to stick to the floor so you know this
lets you get with objects applications
into those sort of environment because
you can say i'm doing an application for
you j2ee compliant you know and you want
me to do this ejb thing f that's fine
we'll do it you know and you just
traipse in on trips in the door that way
so gives you sell ability into
industrial industrial data centers
places where they might not be showing
the apple logo prominently so my object
is a world-class development environment
it's it's you know it predates frankly
all the application servers that are out
there it's not as often acknowledged in
that role as we think it should be but
you know we we were doing this stuff
quite a bit before Sun got started on
some of it you know in some of the some
of the industry leaders who are working
on EOS and for that DB kid and web
objects and you know we've been doing
model-view-controller pattern youths you
know since before any of this was ever
talked about I'll stop now it's my baby
I have to you know I can't help it so so
if you're not familiar with web objects
you didn't go to the session that's okay
we forgive you I forgive you for now
live objects turns databases into object
graph and and as I explained to you know
when you're talking to your parents or
something you have to explain it takes
databases and turns it into you know
some cool stuff you know and then well
I'll just also will take that kind of
cool data stuff and put it out to the
web right and so then our tool allows
you to write cooler stuff in the middle
you know which can be very thin or you
can have a huge thick wedge of coolness
they're in the middle in between those
two layers you don't have to handle the
web HTTP requests you don't have to
handle the SQL yourself so that's my you
know trying to explain to my mother what
I do so of course it has visual tools
for the web interface dynamic prototype
yadda yadda yadda there we go so just
cool right so with a when you take a
weblogic application if you build web
objects normally you know you end up
getting a whoaa with a jarring side with
resources inside it doesn't look j2ee
ish yet but if you tell it to include
the j2ee functionality then when you
build it it'll automatically generate a
war it'll automatically actually put it
in jboss for you so it'll automatically
deploy it you know just just like
building it frameworks to use and what
objects projects get bundled up as the
archives inside the application and made
available to the application and you can
choose whether to put the resources into
whichever form Wars jars or ear file and
your web bob Jex applications can use
the jndi protocol to look around itself
at the container figure out what's going
on something in the outside you know
with a web regular web object
application you have environment
variables the j2ee version of that is
probably in a jndi properties quite a
bit less obvious how to use them but
they are there so the servlet features
are available you can do all these
things with it within web obvious
applications with weblogic applications
integrated in j2ee i don't need to say
this again you know this is the benefits
of j2ee you know a less pain than being
the main benefit you know less
deployment hassle you know hopefully
less being page if in the middle of the
night kind of behavior because you've
given it to a deployer somebody in those
deployments somebody's got a bunch of
racks of metal let them worry about it
because we're developers you know we
want to do our job
send it off and you know go hit the
beach or whatever so this allows you to
do that so in a past life I carried a
beeper and you know dude never never
again so you know want to get out of
that you realize the benefit and we're
going to do a quick demo of deploying
the web of this application okay so
hopefully okay so what I'd like to show
you I mean I might lose some of the
audience if you guys are just j2ee
developers but a few aren't any of you
are if you're not familiar with web
objects you might feel a little too
quickly but what I'd like to do is
create a quick direct web application
and then deploy it to Jay box and so let
me start by praying our application just
client test app and what we want to do
is create a standalone waar bundle and
that's important so that encloses all
their web objects frameworks and
resources within the war bundle there
are other options that you can explore
that some of you've used that that last
pain was actually the only thing that
you have to do that j2ee ish to use web
objects so nice everything after this is
with objects next thing you have to do
is embed a deployment license in there
so you'll need that I'll just take the
default these are just web server
support adapter support take the
standard framework and what I'll do is
I'll just work with the real estate
model that's part of our example
databases or one of our examples
database size we'll just do a neutral
look
let's just finish this really quickly so
a couple things will just point out with
in Xcode and I think a lot of people
have been interested in finding out
exactly where you have to tweak or what
what parameters the accent week actually
if you have a legacy project to create
water bumbles so if you go into the
expert view in your your application
target and you go down to these
parameters so there's server deploy
license if you had to change a license
if you can figure it there and you want
to have servlet underscore true VAR
bundle turned on and then if you're just
want to test it on a local system this
is the path where you would point to
your deployment directory so as you can
see I just have a full-featured direct
web app this is not running in jboss
just yet and I'll just show you that
it's fully functional and we can search
on from the parameters here ok so what
it also did when I built that app is it
deployed into J box the splash library
32 deploy directory and then we make
sure let me get jboss running so I'm on
a client system currently right here so
if you install the application server
Developer Preview you'll find it here in
library jboss we got two and
ok
so you'd invoke the run dot SH script to
start it and this is on the client
systems not all right so I think we're
up right now and so let's just try
connecting to our application actually I
wanted to point out he didn't start it
with a configuration and what it does in
that case is a user's if you looked in
the list really closely when we when we
said there here's the three there was
also a fourth and a fifth but this was
example but the fourth was default so
you know but by default you've decided
on this machine to point to one of those
configurations and when you just invoke
round SH it uses the default so as you
can see I just deployed this is if I
come though the URL has a DAT port on
there so you know that you're in jboss
and here's my same direct web
application and we built this within
minutes and it's all fully functional I
just searched on these addresses you
know we can go over and take a look at
something else like a rating or
something or users and it's fully
functional so J box deployment with
webobjects is very simple it's pretty
easy and as you can see out of the box
you can get up and running and commit
one nice thing about this is daryl is
used to me interrupting them so i'm
going to go ahead one i think when i
think about this is that when you deploy
this of course you put in the web
objects license information so you know
you couldn't deploy this on a machine
that has j boston does not have what
objects you know it doesn't doesn't
matter i mean if the machine does have
what objects on it if you know the
deployment machine is going to have both
jboss and ravel just installed then you
can pick one of those options is the
legacy war you know which just includes
the application specific stuff buddy if
you do to stand alone the standalone you
know it stands along right near it sort
of includes all of the web objects ish
stuff it needs inside of itself to run
so that you can give it to somebody
who's running the j2ee shop and say run
this thing and they say what's in it and
you say good things run it go ahead
you know you know you know you don't
need to go into details because there's
a deployer that you know they really
they don't have a right to ask you
you've made a working program they need
to deploy it you know so and that's that
should be the end of it right ya see
enterprise people on our brain okay this
is good this is good I think we need our
screens back okay there we go i confuse
the tech people by talking in the demo
they didn't know I'd give me a stage
what am I going to do and I'm going to
talk so the summary so summarizing you
know we've made it so that configuration
you can configure a configure jboss
easily we've made the tools so that you
don't have to edit the xml yourself yeah
i keep saying that but it is amazingly
painful to do if you haven't done it if
you've done it you you're not minding
that I'm repeating myself because you
know we provide the development
environment X cool xcode is a very nice
ide yeah x cube illed and then at that
see you do boom i noticed but i think
that you know steve jobs we saw the
keynote right I think the official sound
is now I don't you know I haven't heard
that in a nap yet but I it's coming i'm
sure we have we have to watch our leader
we have to follow our leader so it makes
it very easy build an application it's
gone it's done xcode templates for just
regular Java development java you know
xcode we've been you know we've heard
the complaints about java with Xcode and
you know they they've done you know
there's the code completion things you
know that's working the indexing
you know finally it's out of the way it
doesn't get in your face that is it used
to and you know when you need to leave
some of the method names in j2ee or in
web objects is you know they get a
little long and you don't need to type
them all you know add relationship to
both sides with key you know you don't
have to you have code completion now so
it's nice and of course as we said web
objects is just amazing so you can
deploy build and deploy weather objects
application in jboss yeah buddy knows
we're running over I don't know it okay
so for more information the actually the
second last is my favorite URL because
that's one point of information about
jboss if you go to apple and search for
gave us information it can be a bit
scattered but but I've put a very small
amount of content in this place but this
place will be there in future so
hopefully as a pointer to the other
places to find information it can be
hard to find whether it's the download
for the development tools or whether
it's the server documentation or is it
the jboss version of the dr harders I've
dit there and of course the server
documentation is there all these
locations are there
you