WWDC2004 Session 633

Transcript

Kind: captions Language: en good afternoon everybody and welcome to the web objects overview session my name is Bob Fraser I am the product manager for web objects and also Java now and this is going to be an introductory overview to the web objects technologies and like to start with the usual exercise anybody who's using web objects could you please raise your hands yeah and for how many of you is this the first time you're coming to a wdc session on web objects ok great so what we're going to cover is an overview of web objects some of the things that Apple is doing with webobjects how to get wet objects and we also have some members of the community here who are going to talk about some of the things that are going on in the whole general webobjects community so web objects is a great set of tools and frameworks for doing rapid application development of Java server applications and web services and its really really neat stuff what you get is the easiest way to build j2ee compatible applications so Java is the way to do server applications at least if you're not Microsoft and one of the things it's great because it's standards-based it's cross-platform it's interoperable of a lot of things there's great connectivity to a bunch of stuff but building a real enterprise level three tiered application it almost takes a rocket scientist it's a complicated thing so if you look out there what have a lot of people been doing they've been trying to reduce the scope of effort involved come along with tools that it can increase productivity and reduce complexity you see that one example of the Sun Creator product that's been announced here and at javaone is exactly trying to solve that kind of a problem well we have a mature product out there web objects which addresses the same kind of issues in the same kind of problems and what you get is everything you need to build enterprise-class applications in one box so with webobjects you get an integrated development environment it layers on top of xcode or windows and you can gives you the IDE for all your and rapid prototyping it does database mapping it includes a full object relational mapping model that will take you back and forth between SQL databases or jndi data sources and do that mapping and turn that into objects it also gives you some really incredible assistant and wizard technologies that lets you do code free prototyping but then these are extensible and then you can extend them and turn them into full scalable applications because they use the powerful frameworks that are built in that are all very very scalable it is also an outstanding package of web services both as a consumer and a provider and they're not that many great web they're not that many great web services packages for providing web services out that we think this is a great offering and it's one of the more common uses of it is to do HTML presentations or three tiered HTML based websites so the advantages are the usual but one thing's you want to have is a few things you want to have in your product faster cheaper better and how that relates here is it accelerates your time to market because we'd have a developer tool chain that walks you through the process of building these applications and it's visual it's a visual ID e so it simplifies this and makes it so much more approachable you get better code at the end of the day because there are years of best practices that are built into these frameworks so we've had a lot of bright people working on this stuff for a long time and it's all encapsulated in these frameworks that come with web objects so there's usually a tool and a framework to go together and what this does is it does a lot of the heavy lifting for you so a lot of the object relational mapping a lot of the templating a lot of the generation of web pages a lot of the request response handling a lot of these things have been well designed and baked in that lets you worry about your domain expertise the piece that you actually really want to build and not have to worry about a lot of the infrastructure on the plumbing and because you don't write a lot of code you don't maintain a lot of code and so your overall cost of ownership of a project of a product of a life cycle of something is reduced and the other thing you'll see is you'll see how easy it is to do incremental development and you get an ID and you go what if or I need to make this little change over here you'll see how how fluid that is and that also reduces the cost of ownership because requirements are always changing people always come up and say I'd like the button but I want it here and I want it blue and I want to do this and with web objects that's like really neat and easy to do so let's look at a classical we cheered application architecture and we have on the left your data access layer with web objects you can talk to jdbc databases and jndi data sources and then you'll typically have a business logic layer or fancy word for its statements and then you have different presentations that you may want to do and with web objects you can do HTML based web service based or rich client based presentation layers as you get your choice so that's kind of like you know when you're mapping out a nice enterprise application you've got your different layers web objects has to land framework that pretty much works in each of these different each of these different layers so let's look at that's the architecture now let's look at what the developer flow would be like so with the data access layer we have a tool called eel modeler so this is the modeling tool so what we want to do is we want to get away from tables and rose and in GI attributes and we want to model that at a higher level and get that to the object level once we have this now we can operate at a higher level in our application and in our application development then we bring it into Xcode and we start writing a little bit of business logic in Java so everything's portable and this is where you would do your rapid prototyping and then from here what you can do is you can take it and use our web objects builder design tool for doing HTML webpage generation there's a web services assistant for building web services and there's also a way to do rich java client applications and a tool there as well now one of the interesting things to notice about this diagram if we look if we look in the middle here at Xcode we see three lines coming from that same that same point there you've get one model and one set of business logic that's operating on that and you're kind of presentation layer independent and so what you can do from the same model driven design you can actually go to a web page go to web services or go to a rich client based on that same model model driven programming is a really powerful paradigm error and we put it to good use and we find it very common for a lot of our customers and partners to actually do that they'll actually have multiple they'll actually have multiple applications it will have multiple access points driven this way so a scenario that might make sense you've got some data you've got a website for the front of the house you want I want to have a web interface html-based people come to your website they click on things through an HTML interface in a standard browser okay but then you may want to have an in-house behind the firewall DBA app where you're updating like a product inventory that you might like to have as a rich client you can drive that off the same model and then you decide later on you want to automate some business process you so you may want to add some web services and that can be lights out computer to computer and all of those can interact with the same model with the same either in the same application or you could just build another quick separate application so step one is building the model now what eel model allows you to do is it allows you to reverse-engineer the data source so all you need is a jndi URL on a JDBC access to a database any SQL database and you can basically go in there and it will find the tables the columns the rows and understand all of these entities and properties or what you can do is you can use you'll modeler for doing forward schema design so you can drop in entities drop in you know properties and stuff like that and it will actually generate the the tables for you and we support we support a wide variety of databases in this in this modeling tool and the mapping layer that goes with it everything from like Oracle and sybase and front base and open base and my sequel and ms SQL and I'm probably forgetting but if you go to the website there's that there's a list of of a bunch of them and then there's other people who've done plug-ins for like db2 and postgresql and stuff like that so pretty much you can get out there and get access to just about any database that you want so that's the design tool now we have this conceptual model so now the next step well here's a picture of the tool and we're going to have a little demonstration here but one thing to notice is that we have kind of like an ER entity relationship diagram here this was actually generated via modeler and you can also see that we've also gotten the relationships as well so not only did we find any of the tables any of the properties and the related we now also have the relationships and the interaction between this and now you actually get a high level you have a high level picture of this this alone would already be kind of worth the price of admission for a lot of people for a lot of projects we get so much feedback from places such as such as universities they got a lot of turnover they're working on grad student power and then basically after they're like five years or four years of something nobody knows what this thing is doing anymore somebody can pop into the model and they can open it up and look at it and go oh these are the entities these are the things that are in there or you could walk up to a database in Oracle we have people go in and reverse-engineer Oracle databases and there's stuff in there that the dbas didn't even really know that they were really still playing around with anymore and you can get a quick view of everything glad this way I have what did that just do ah that's what that button does okay about that okay now at runtime we do all of the object relational mapping for you so we do all of the database access we do all the data persistence so you don't do any SQL we do the fetches the read rights updates deletes all that kind of stuff and this model in and the mapping is database independent so it would be analogous to container manage persistence only we believe a little easier to implement its database independent and you can also query across multiple databases simultaneously Ashley so you can actually build a model and actually pull data from like a GED I source pull data from a like an Oracle database and then actually put those in the same put those in a in your application and mix with those so it's nice because you get transparent persistence you get database independence and you get to the ability to do with a nice high level data aggregation those are all really nice really nice features and with that I would like to invite Darrell Lea up to give a demonstration of eel modeler hi everybody so just want to show you you mod ler we bring up the demo machine okay great so I just want to show you a quick reverse engineering demo and just how easy it is to reverse-engineer a database so let's create a new model and I'm going to select a JDBC data source and I'm selecting our standard whoa real estate database that would comes with every copy of web objects and I'm just going to take basic defaults here and finish my model and boom you know that a couple seconds and we have or hope debase reverse engineered as you can see we have all of our relationships models if you look on the left side Holies what we call entities are mapped to your tables and if you select a user table we also have a attributes or what we call prove that map to your columns so first name would map to calm in your database so if you use an inspector you can check it really quickly and that maps to the user table in the database another nice feature is say instead of reverse engineering you actually want to just model your data base and your schema first and then you want to black that to your database and just say we had done modeled this already but it wasn't in our database what you can do is select our SQL generation assistant and what you can see here is that we've composed all the SQL queries and statements that you'll need base all the foreign keys and primary keys and constraints you'll need to create the database so with that demo that shows you just how quickly you can get up and running and how you can model your database and thanks thank you though okay we have all the way to get things in and out of our database so now that we've done this we can start to prototyping so the next step would be to bring this into the IDE and start writing a little bit of code and start developing a prototype now the advantages of this what happens in web objects is you get a better way to write code it's a better development basically what you do is you start prototyping the application and you get something locked running right away so contrast this to let's say something like you know the aerospace industry where you're going to go with the six months to the requirements so then you get a bunch of working on it then six months later you that isn't quite what I wanted all right that this is a much more fluid interactive way of working photo text it minutes a few clicks of a box and don't do you get your cut where that is if you're in half an IT you get the people are going to be your end user customer that's you know your good salty or you get them in you see let's go yeah sex and one Barry can nail down the design fire they actually have it can touch feel mc2 really it just what they're gonna get and going to work then you start you start occasion you add in parts of the function in stuff that you need and you only deliver the occasion each of these steps along hey it's only the application has happened long way can you would keep integration it's somebody coming at the end of the things I said so feel this gives you a better way to develop an applet the things generally web applications now we're going to move can let so with projects you get a cool web builder webobjects ler both I like an xml editor but a concept that it has is kind of like a binding of it it it's a lot actually tie the day yesterday to write a bunch of JSP is in binds out they are um it's really elegant you can do the drop with you to build palace of r you come home and see a sign over and over again in weblogic very well you can you can compose and the picture of the stuff and at the bottom we've got some of the keys infinity intuition that actually came from the model so we actually throw a whip there in there we're also aware of your ad in Koh and Yu property and methods soap holder is oh so it's efficient in a way going up their code epica the actual data mop by the database as well at the same time then at runtime well we take an HTML template we take data coming which it is with the business lot and we can kick out the personalized web pages so that there's a there's a binding page and then the data sources can be from your business law look out it could be something the Cape up from out of the database and then this sir the final output pml another demonstration here of building a application and I really modify it thank you Bob I'd like to show you is a real temptation you can built right out of our books and so will go straight to Xcode and extend and here I much fat and just go and we'll there are a number of default pains I won't be false we'll just select our real estate model really quickly so the next thing I'll ask me is what is mate I want to display and i'll just pick listing address to keep it simple and in this pain it's given me to select apps as you can see the Peavey mode gives you an idea of what the HTML page will look like i'll just select this this layout next is figure out what I display they all that information and then let's just query on the city and let's chat in a second Xcode and hello there we go and what's that really quick so as you can see there's really not to make too much stuff here what we get is a few java fossils with one blow component and our model we remodeled our database and boom there's our app and it's fully functional out of the box so let's search for an address and then we have our results really quickly if we search for something that wouldn't be there then we have this table shows thing so let's say I don't like the way this interface is and I want to make sure this table does not show up we can go into a web babak's builder by arklow component here and let's just look at it really quickly and what we're seeing is this table here I don't want it to show up so I think I'll wrap that in a low conditional which I can say hey if there's no addresses of bull then don't display the table so right here this ? is our low conditional and let's go over and bind that to our count so that says is if there's no objects to be displayed don't show that table and I'm going to save that and one great feature about web objects is that you don't have to always rebuild your app if you're editing your web component a lot of times you can just save your component and then refresh so I'm just going to refresh this page as you can see i'm not going to compile the app at all and boom our tables not there by default I search for sale a dare I'd search for something that's not there it disappears so hopefully I gets across how easy it is to how fast it is to develop your applications and you don't have to bother with when your apps a lot of times so back to Bob thank you do so we built a model we've actually generated a rep rapid prototype of an application and you've seen how with a completely visual environment we get in there and drag out the design and it's a very cool maybe it's got images it's got repeats loops it's got conditionals it's got tables it's got all that kind of stuff in there and you basically just drag it all out visually and then if you need more complicated business logic stuff uses when you start putting in the pudding in the code no messing with jsps or any of that stuff and this is fair you can see the power starts coming in if you need to do incremental development you pop this up yet new features save it you go the rapid turnaround where we didn't have to stop the app build a war-weary deploy anything like that very seamless very quick very fluent keeps your your your mind going on and focusing on moving the ball forward and getting you know the news for new features in ok so that's an example of kind of you would go about building an HTML application we all do services now web services been getting a lot lately and it's two definitions of web is anything that has something to do with the web and it might be a service that's kind of like the big one that you hear a lot about and one that gets over high and everything like that then there's the more narrow definition of web services is really nothing more fancy than remote procedure what we've been doing for 20 years only we gave it in but one thing we do is we actually define a set of standards so we do XML we do so and we do wsdl in a compatible we have thing from all the Java that sun and IBM and everybody else is doing and even net now this actually really good thing because the reason why this is a powerful concept and it's taking taking off is that it's a real killer for application integration so they have different departments that haven't been to each other don't even care to but if they both implemented web services and to find an API set then both hooked these things together lights out operation don't even have to really bug each other and that's I think it's awful low hanging fruit we're actually seeing this is but group and department level who have like their own archive or store of data and they want to be able to share it and and that is really powerful easy to do and web objects is a great and one of the things I'll mention is we do both side and the servers so the other thing and am nice about web services is you don't really have to add a whole bunch you know you got your application you had a layer that's basically all it and how to what the semantics are and then you're done and there's a lot of different ways to get at it so now all of a sudden you can have a web objects Java server app and you can vend web services that could be consumed by an applescript somewhere by pearl by C++ by a Java app or not so now you you've basically expanded so can consume the services at your building which is always a good and you empowered lots of programmers because you don't have to get into the whole really heavy-duty thing if you can write a Perl script can call a webservice then you're good to go and you're in the game so built web services again we use the model driven approach here a tool for that as well and so we can either consume web services get a wsdl and a data data point somewhere we can actually get that XML work with that and a gate with other sources and do a presentation layer like a web thing that may go and get like a currency puffle website to do the calculation of the current conversion like that we can do that it's probably you know a bullet samples have gone and getting like Fahrenheit see us or something like that okay that's not terribly taxing do that kind of thing but taking data sources out of a database and actually doing the server side do not there's not as many offerings out there for that and what we can do is you have it in a data source we can publish it and we can publish a service interface for it and any java code that you have you can also wrap that in the method and wrap that in a service as well and so you're the web service producer game which which is really exciting and we do this without you having to worry about the XML without having to worry about the soap and without having to worry about the wsdl quick view of services XML everybody's heard of that it's just a markup language that's how you get the data represented so in an envelope and that's basically who is coming from where it's going to and then wsdl is kind of like publishing it in a phone book and saying my services here's work and here's how you call it and so that's a nutshell and so we have a tool which will let you basic which will let you basically go in and build a server and publish an interface for consuming web services so what we're going to do is we're going to basically attached to a database and we're going to show how we can actually generate complete web services producing application here right read with web object out of the box here and so we have general for another demo here okay so let's go back to Xcode and create a new project and what I'm going to do is create a direct to web services project and we'll just call this test expect web services and I'll take the default options again and here we go back to our real estate model and build in lot now while that's build it what I'm going to do is launch our web services assistant and what's going to happen is so far is going to come up it's going to give me our URL that I can use the web store with the web services assistant and so what I'll do is I need to copy this URL web service assistant and x2 it and we'll get our apps up here so the first thing you want to do in in your web service is create a new web service so let's start that and I web services button and we'll just call this a listing service and okay so now that we have our listing service I need to pick companies that I want to publish we'll just keep this really and I'll select the listing address so there we and know now that I'm service I need to tell it okay what operations are what can I what can I interact with so what I'll do is I'll create a new operation and i'll just call with my list operation and I need to tell it okay what entity or capable do I want to display or query upon and then what what type of operation I want to do so i can delete or is it or as an update i'm just going to pick to perch so boom we have our listing service or listing off with them the first thing I called is okay what parameters am I going to pass in to this operation and I'll just similar to our last demo I'm going to just take a city as a parameter and i'm going to add that you can notice down here there are different kinds of operators uses less than greater than equal like obligation and sensitive like next thing I want to figure out what we're going to turn after our operation is queried so I want to return all the address attributes there okay so now we've got our return values and I think we're about ready to go so let's just save that really and I want to test my service so we have a nice little built-in testing assistant and I can without writing a piece of code just start making queries on the application so San Jose but there is a just as arguably returned and now if you do a query that has nothing there or you can search on crew patina another great feature of our assistant is some got my operations and all defined and stuff like that I can we actually compose all the ws sell for so you most people they have to go out there and they have to hand code this hand edit this and figure all this stuff out how to bind this and all the namespaces and stuff like that what we do is we give you although wsl wsdl for you and you don't have to do any of this so here we go so hopefully that demonstrates just needs to build a web service are we having fun yet so then out of webobjects mac OS 10 and mac o are also just a great services developed environment and because we bake it into the operating system so you have all of the services from web objects but then everywhere in Mac OS 10 either a client or Apple events there are 0 s level features that will the elbow civil services that basically turn that can turn that into soap or xml RPC and back and forth and so you can actually we have tools there's one call let's make stubs will find on your regular developer tool CD if you give it a wsdl description file it will generate applescript java ll generates applescript cocoa or c++ bindings to actually consume and produce to consume that web service so it makes it really easy to build and end-to-end application because we've already baked in a lot of the client stuff already in the operating system I'll transport the marshaling and on marshalling of data data types all that's already in the OS so it's really it's really cool so we've got it in cocoa we've got it in applescript it's in perl it's in web objects and so we're a great platform for all that and then you can always take that client and put the web services slide on another client as well okay and we also have the ability to build stop applications or rich client applications so the web services assistant that you saw there actually a web objects application that was generated in java swing so it's actually generating that application that we were using to build the to actually configure the web service when we hit the test button it are actually figured out on the fly what s parameters and response types are going to be and generated the swing panel for that on the fly we also have that technology baked into ability to build rich just applications also from the model driven fashion so again Darrell please let me create all this stuff up here so what I'd like to show you is a director job of client location and how we're taking the same real model and then just reusing it again to create a desktop job application so let's select that template name this okay so we'll take the defaults again and then just add a real estate model and these are some Java client specific things whether you want to download your classes or you can optimize that for your efficiency and hear some stuff for configuring web start so let's just build and run that quickly as you can see there's not much different in a directed java client project layout I mean we still not a Java classes there is one java client component here that helps you configure some of the java client parameters but essentially you know a lot of stuff is in the same place and you have for your model right there so it locked right here and as you can see we have a fully functional app out of the box let's just query on something really quick we'll do our san jose query again and boom this is a different entity but as you can see there's a bunch of addresses if i double click on one of these rows we have a lot of detail that we can configure we can delete rows we can add new information and make new relationships with that so it doesn't just end here you can can start configuring your interface and what we have is an assistant that you can bring up and tell it how to present some of the data or what to present what not to resent so what I'd like to do is just pick away of these entities that we were displaying earlier and just have it show our listing address great thing about all our rapid turnaround tools is I don't have to recompile I don't have to do anything I just have to hit the restart button in the assistant and boom it updates interface and everything into them all I have is my listing address and exactly how I wanted it and I can search on San Jose and boom there we go and if you if you can notice we just been in all these demos we've been using just one eel model and we've published to web service an HTML client and a Java client so hopefully that shows you the power of what we are tools give you thank you do so this is often the way I'll work myself I'll get in there go up to some data source cold reverse engineer it with the old model and then i'll build a directed java client and that way i can go in there and start adding test data or going through and chaining and browsing through the sources and seeing what's there it's just phenomenal does that aspect of it alone is phenomenal for exploratory programming where you're going to you know work with some existing data assets it's also great for building like a little database administration tool it's right out of the box and with the box copy of web objects you buy the retail box there's a couple manuals that come with it one of them is a manual on building the HTML applications and one of them is a manual on building the desktop java applications and i believe that'll get you the hard copy but i believe all that it's same information is available in either HTML or PDF form on our website there'll be a URL for that to our reference library later okay that's building it now we need to deploy it because we want somebody else to use it except just ourselves although I could sometimes sit on my laptop and just look at my beautiful application but in the real world somebody else should use them so we have two different main ways of deploying webobjects applications and we have our own web objects deployment frameworks and then we also have the ability of deploying it in a j2ee container and you can take the same application package slightly different and you can deploy either with our application frameworks and Webster a web application server or you can put it on a standard j2ee application server in the case of the standard j2ee application server we just appear as a fat servlet so basically the request response loop comes in it comes in through the servlet handler the URL gets transferred to us webobjects tough test does what it would do and then the results get passed up back upstream and then you have access to things like jndi variables and data data sources some of the application servers that we support our tomcat jboss IBM and the EAS application servers so you can basically take a web objects application and you can you can actually have the developer tools that you want but also live within any kind of a deployment infrastructure that you may need to live in now the web objects deployment is a full-featured cross-platform pure java application server and this also comes in the box comes along with everything that you that you've seen and so it's got built in clustering support so it does load balancing its session management and it does automatic application restart so you get all those services in there as well and then you also have some configuration and some monitoring tools that come come with it and this is not like tiered pricing or anything like that this is this is just the way that the product comes you get all these features so what you can do is you can start very simply and get one box and it's just a pure java application and you can have your database the web objects application and your web browsers are all running on the same box and then if you need to scale it up what you can do is you can add more webobjects instances on the same box so you basically just run more processes run more JVM since more requests maybe you have another data source then you can also scale you see what people might do it they might separate it and have their app their web server on one machine their database server another machine and then have their application server on another machine right so you might go with multiple boxes and then you can actually stack them up and then keep going so we support a full clustered environment of any expensive units you know and do the scaling that way and it quite scalable and we'll find out later so we have objects in Apple how do we use it just about any way that money can come into Apple it comes in Java is involved and some of that is simple things like the point-of-sale systems if you go to our retail stores or actually java apps running on a Mac actually Java applications but a lot of revenue comes in through web objects we use it in dozens of internal applications everything from finding our paycheck I think occation stuff we have it on some some plus process management or inventory management stuff we've got bunches of different departments a bunch of different people using it and it's also used in all of our internet offerings so it is used if you have a dot mac account and you have the webmail that is actually a web objects 52 application bending the HTML that's actually going into the end of the mail but a rather important application that is using web objects is the itunes music store the itunes music store you may have heard of it is entirely webobjects 52 and it is running on Panther and is running on exurbs and the actual music data is on x-rayed we actually have one of the people here who works on the software there so maybe after the end of this session you have some questions on it you may be able to talk kit talk about proprietary stuff but you can probably talk about some of it it's a really interesting design because in a way it's kind of a web service application and an interest approach its using web objects entirely on the backend for and then the client is there's a Mac native client and we just passed XML across the wire so it's like an HTTP direct action and then the response instead of being HTTP I mean HTML is actually XML so it's a nice example of being able to use Java on the back end on the server where it was a natural fit where people like to use Java a way to have a very clean responsive well integrated desktop application use XML across the wire for the data interchange and then we were able to support the windows environment with a different native application but still talk to the same back end application so it's a nice example of design well besides being is an outstanding outstanding store it is the number one music store online music store in the world and there's a URL that should have an article talking just a little bit of a kind of a high-level overview of just what's involved I mean the fact that it's xserve and X x-rayed and all web objects now how do you get webobjects there's a free trial version so if you go to apple com web objects there's a button there getting started and it will basically tell you how to go find our ADC online site and you need to get an ABC online membership but that's free and then you go to the download section you can actually download a trial copy of mac o of web objects for mac OS 10 and it's a real full running version it's got every feature that you've seen here and you get out you need to download a pretty day I'll license key on but you can you download it and try it if you're running Panther which we hope you are the download that's they are right now we haven't updated it from the 52 version so you'll want to hit the software update button and get current to web objects 523 so when you get to download you also want to go through software update you also want to update 2523 that that gaves it basically the Panther integration so the current version of web objects is 523 it was recently a a software update and that basically had some performance and stability fixes and it also qualified web objects for java 142 now all of this unit pricing us anyway is 699 we also have special education pricing at $99 and I don't recall the government pricing but it's around 300-400 somewhere in there and I'm sure a apple wrapper somebody would be very happy to give you that information and that that includes both a developer license and a deployment license so you get basically one developer seat and one deployment seat and on that on the box again that's also 52 so you'll want to update via software update and for more information the main website to find out information on weblogic is apple.com / web objects we also include the runtimes the deployment side on mac OS 10 server i think if you get mac OS 10 server right now it's at five to two is the one that's built in and so you need to get an upgrade there and that brings you to five to three and then as a freebie we throw in a later version of jboss and a later version of tom cat in there as well it's in the same it's in the same little application download that's the I think the application servers update on that and with with xserve or with mac OS 10 server if you buy them the retail box mac OS 10 server or if you buy an xserve you get an unlimited web objects deployment license so if you buy an application and your target deployment is going to be x server or if your OEM in an application for xserve there's no runtime cost associated with that at all that's nice that saves that saves you right there I'm also very pleased to announce that the web objects training materials have been updated so they've been brought current with web objects 52 and they're now I've got classes scheduled there's been a number of tutorials that have been or many courses that have been off here during this week and the ones that were known as piwo one is internet application development using web objects that's the introductory course and then there's also the advanced projects development course so that's that's very good and you can find out about that at trainable com hey web objects community one of the really exciting things about webobjects is very vibrant community out there very active very involved community and there are lots of things beyond the web objects things that you get in the box that you have access to so what I'd like to do is I'd like to highlight a few of those of those things that have come from the community that have actually enhanced greatly enhanced the web objects product in the web object to experience we begin by saying sorry if I exclude anybody there's like a large list of people out there and there's a large number of different places to find components for web objects and information about web objects you could probably just go to let's see you probably did google web objects and find a lot of those just right off the top of Google but um hi love you right here and one of the things that is been asked about a lot is the ability to cross-platform development with web objects so what's happy to introduce are the folks here for lo project lo project is basically an ant filled system now one of the things that's really interesting aunt is it's pretty much the java de facto standard now for buildings any a one of the main reasons is good is it gives you ID independence so let me see a couple things about IDEs just about any ide you can want for java development is available on the map and 2 i'm by now i'm hoping everybody is aware that some nice features have been added into Xcode making it a better java ide namely cochin at some ant integration in xcode and if you'd like to see more about using xcode four just plain old java development there's a session tomorrow morning at nine o'clock I think it's just with Xcode and you can see some of those features they java code completion and some of the ant integration so well Jack would be like one of the places where that could tie in is with the ant build system there another thing that you've been hearing about about at this conference is eclipse and clips there is a pin that is available that lets you do web objects application development either on Windows or on the Mac with eclipse and so now you've got a full Eclipse plug-in that goes in there without ide and someone here from project wonder and this is a collection of it's a vast collection of a lot of freaks and tools that kind of extend what you get with web on so I would like to begin by introducing undress chick from object style for what the thing [Music] things might oh I don't know okay a project is a phase vocs robot as we own up there you this already you want a quick which is aquatic scene and very noticeable not every place is though the one is the third build which keeps code and actually that's what people people is not now and we introducing another deal system which is and we should which is d step up and it's called wop so what are there's plenty of reason what it Bob just mentioned is cross-platform development maybe it's not yeah this audience but who develop Oh different platforms Oh Maura men I told about you you may want boy on for that on the open forum or weird it so one of the very important bits of project and and in general platform for you to some o the and enter design shoot and the draft to write something needs and do the same thing with the book issues feature needs of a subclass know you is they contact to with except no real quick subject oh please no limitations oh ok and degraded with all thought is on it you get should be under NIU's present is it on your boob think that's very um maintain people for top if you hold it up group comes in wisco so sweet in those don't think you don't have to do it and is all but he really simple and separate Richard steps and Sam and for prepare we have a tap so here model and go and rise up maybe enjoy your more so to break cousin ah so this prick then there is a task this is just like you have a seat at oh yeah you know it can actually pork your frame looking for a jar for inside the frame working like it's gonna be so it's either what not framework of with scores point and it's like if with application for the same thing you would expect like apple pie final little things that co-op it's called or more no it's in some environment okay database connection front up that it is it your business that we got rid of a project some too soon there is what builders it's a zero light so project file in windows at what put information on Macintosh when you need you still need to make it okay but this time not central to just like if you don't have to think about and for the with PB that's in the it quick file-based some patterns is the same to compile your application it's the same would be in that file o Queen task ridiculous project yep yes all the pay you this before and just be a code index trip to opera see it hasn't been and you can do the same and finally a project so they're out in the community site is a flash wall project may it please ask questions thank you thank you very much now or a copter it up well the Eclipse plug-in that makes it go thank you but public and the project lead of the volunteer here to talk to give you a few good text you too so go put it full of be and I think again bugging to take it it lets the full fee he contains playing state of VR Eddie like an expert with code navigation debugging up more the hump em bring victory over Jade you have to see just finished just another in for your education but since we have ready a good tip you can concentrate and roll it if the Foley f willips to create an Asian from the components and llamada we have an author and commit murder and five fundamental couple click and we live or put and for deployment what a medela included no just double-click the component awesome finding global but its object okay kid up reactive to the argument session handle and on the current bake element or change value of area even probable multipack occasion 20 different lity team turn around soon it all find more information about the clips and putting home page the film which covers installation of Olives ish mitigate its lips and system to provide feedback and since about Willis getting this link to the track benzema home page here for con so if you have any questions Eddie thank you for thank you all right I think that one from you this is really cool hot geez itself pleased with the work we've been annexed cope it is a new solution and that's some of the end in action so you'll fought the Xcode experience it better and better for committed to making that you know we mean that forward be ide and so one of the people expanding get into the land of fact book building these incremental compulsory compose and combination things here it's pretty phenomenal also like to introduce max Miller for a project wonder this is a whole world but if it can be added in it [Applause] hello my name is macular currently I'm one of the lead engineers for the itunes music store but also one of the founders of so I'm see project 12 or Natalie with the death of a duck a number of Engineers reaction no baffle and we we built a number of frame specializing in rapid application development so 12 as well as just a number of nice extension to EOS and foundation of all face framework and a lot of defined in in the full frame works themselves because they're kind of special names that you don't really seem off but so we we seated the framework supra sinner and since then he's kind of embraced too yeah also contributes a code oh here we later with frameworks that yeah approaching old and have grown and we started with like five project 22 projects now it's mainly just nice lection points a lot of Tours projects everything from SVG narration angio just committed in Excel generations have actually wool components that represent a bunch of Excel sheets and people's hope but it's still using web app builder and kind of build excels Excel spreadsheets but integrated in with your with all the back in so it's just a bunch of kind of nice works written by others who you know know a lot about this and so it also serves as a very nice Prince point for well how would I actually get it say a template parser if I wanted to change of a wad binding or you know kind of some arcane knowledge like that and it serves as a good reference point so so here few highlights of some of the stuff that's found that kind of some of the frameworks project wonder so one of the nice things is we have a very international group on project wonder so they've added in kind of automatic locals and supports all the Japanese encoding is taking place and all of the all the it kind of adds support for all the the other encoding is that you'd want and automatic localization on the way in and out often times you have to worry about making sure that you're parsing him you know the headers for the languages and kind of getting that correct on the way in the way out so there's been a lot of work done to that as well as localization down into the validation messages to pop up when you know you forgot to put this into your model kind of thing so another focus has been kind of the rapid application development process and kind of taking that one step further so the configuration management tools have have really helped in the sense that you know you can now reload all of your all of your property files automatically you can turn sequel debugging on and off so I'm you can even change we use log4j throughout the project so you can even go in and actually change the log4j patterns that you attract printing out on the log statements and had been being one of the people who has to go in and track down a bunch of really strange behavior that goes on its music store being able to go in and get a back trace and all of a sudden one on some very strange occurring log and being able to look in the log files and see that start to come up and exactly what's triggering it as well as say the entire will request with all the valley request values is incredibly helpful so it's been it's a definitely saved saved me some time you know examples of building custom qualifiers and if you're you know the database independence is nice but sometimes you really need to use who's an end statement or or a sub select statement or one it's one of the more advanced you some of the more advanced sequel qualifiers so there's a number of number of custom qualifiers there that if you're interested in and learning how to ride one of those and they offer support for that what else so within the director web stuff there's probably about two years of very advanced development that's gone on around then you know kind of an overhaul of a lot of the rural caching systems there's over 200 200 more components that that are useful for doing all sorts of crazy direct webs ain't in the context of the rapid application development so there's a whole wealth of things there and yeah i mean just i'm just really it's just a lot of within the base frame works there's just a lot of really nice reusable components it shows how to do you know fun stuff with the HTML some stuff with javascript pretty much kind of all the things that you think of when you're when you're developing but these are you know again kind of specialty components that yeah you don't into every day or need every day so with actually announcing today is on the Wonder 20 spent a long time coming and so I've been stuck in the one dotto branch forever and you know getting sick of maintaining maintaining that branch so now we're jumping to the two da bo branch so wonder is it has a clip support using were lips thank you very much and will project so the whole thing built with ant and works out of the box with eclipse we're finally getting Xcode support in we've been driving or dragging our feet on that one but most projects should have xcode projects now as well so we're at wondered sourceforge.net we have a fairly active CBS CBS list as well as an active discussion list so check us out [Applause] I'll take that too Thanks thank you thank you very much max so that gives you some highlights of the you know all the different things that are out there that are beyond just what Apple does with web objects so to send feedback or contact us there's web objects at apple com and that goes to more than just me there's other people who see that as well that's a good way to give feedback another think it's very important if you find reproducible bugs than definitely file bugs and hopefully can provide detailed information or test cases or something like that that's always really helpful and for more information there's the apple com webobjects site there's also the web object reference library which is available and you can either just go through develop a radical calm and just hit reference library and look for web objects or here's the specific URL and this the reference library has been updated and contains a wealth of stuff it's got you know it's got an easy way to find everything from reference api's to documentation to text notes to Q&A so it's all like easily navigable from one place