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