With Track Host: Justin Gehtland, President of Relevance, Inc.
The Presentation Tier will help you understand the server-side technologies at your disposal for creating rich interactive Java applications, and the potential impact presentation technologies can have on the design of your server-side applications. Explore your presentation framework options, and learn how to integrate rich components into your Web apps - quickly and securely. Browse all of the presentation tier sessions or select a title from below:
We also recommend these sessions relating to the presentation tier.
• Advanced Ajax with Seam and Spring Web Flow with Ted Goddard, Senior Architect, ICEsoft Technologies
Ajax applications are now expected by users. Developers need an architectural foundation to build Ajax applications effectively. This session covers the characteristics of advanced Ajax applications and explains how to develop and deploy them using JBoss Seam or Spring Web Flow.
Advanced Ajax applications are characterized by: single-page, multi-window interfaces, fine-grained interaction on blur and click events, cinematic effects, drag and drop, and asynchronous page update (Ajax Push/Comet). In this session, get details of adding such features to their applications using Ajax Push from ICEfaces, powerful scope extensions from JBoss Seam or Spring Web Flow, and asynchronous I/O features from Tomcat 6 and GlassFish application servers.
In this session, you will learn:
• What the architecture of an Ajax application should be;
• How to develop an Ajax application using powerful abstractions;
• How to add advanced Ajax features;
• How to use the scalability features of Tomcat 6 and GlassFish.
• Ajax Framework Comparison with Justin Gehtland, President, Relevance, Inc.
In this session, we'll take a hard look at the relative strengths and weaknesses of the major Ajax frameworks, comparing them on features, ease of use, ease of testing and maintenance, overall stability and community support. We’ll look at examples of applications using the frameworks we'll compare, and have a discussion about the kinds of projects that benefit from the different frameworks. The frameworks we'll examine are: Prototype/Script.aculo.us, Dojo, GWT, DWR, and YUI.
In this session, you will learn how major Ajax frameworks compare on:
• Features;
• Ease of use;
• Ease of testing/maintenance;
• Overall stability;
• Community support.
• Designing Compelling Web Applications for Mobile Devices with Michael Yuan, Author, JBOSS Seam
As the popular uptake of the Apple iPhone has shown, mobile Web applications can be very useful when they are done right. As more and more developers look to expand the reach of their applications to the mobile platform, they will all encounter the issue of dealing with device fragmentation -- There are only 1 million iPhone users to date, and the vast majority of mobile users are on other devices with often incompatible browsers. This presentation will help developers get on the right track for their future mobile Web projects.
In this session, Michael offers a case study on building a consumer Web application that can run on over 200 mobile devices, using Java EE Web frameworks. The devices have extremely different hardware (e.g., screen sizes) and software (e.g., browser and media player) characteristics. Michael addresses the challenge of developing a solution that delivers the best user experience across all characteristics without resorting to the lowest common denominator WML.
This session will review the technical requirements and challenges for this type of applications, including a tour of 10 to 15 common mobile browser limitations/bugs that vary for each device. Get insight into techniques that can be used to do device detection, dynamic page layout selection based on the request device, dynamic markup generation, and real-time content transformation for device specific media files. In addition, Michael will cover advanced topics, like how to use a Rules engine to manage complex template forwarding rules, how to use Dependency Injection to better manage device attributes matrix, a proven process for evaluating Web frameworks for mobile applications, as well as advanced JSF component libraries for mobile Web applications (e.g., Ajax on iPhone).
Recommended general knowledge: Understanding of the MVC design pattern and basic Java EE Web constructs (like servlet filters and templates). Knowledge of JSF will be very helpful.
In this session you will learn:
• How to expand your applications’ reach to mobile phone users;
• How to effectively define a mobile strategy for Web offerings;
• Major challenges in designing Web application for mobile phones;
• How to detect devices;
• How to generate customized layout, content, and markups for each device;
• How modern Web frameworks fit into mobile Web application development.
• About open source JSF components that are specially designed for mobile applications (including Ajax components for the iPhone).
• Grails for Struts Developers: A Groovy Alternative with Scott Davis, Author and Editor-in-Chief of aboutGroovy.com
Struts was a great early implementation of MVC, but after seven years it is beginning to show its age. There have been many advances in state-of-the-art web development that can be gradually added into an existing legacy Struts application.
Enter Grails. Grails 1.0 was released in late 2007 - It marries the modern features of Rails (like "scaffolding and "convention over configuration") with the need for legacy support for Struts. It's inspired by Rails, but it is not a simple port of the project to Java. It takes the ideas of Rails, and expresses them in familiar Java libraries like Spring and Hibernate. It also leverages a new dynamic language for the JVM called Groovy.
Many of Grails’ early successes, like Rails’, were with brand new websites built from scratch. This talk, however, is targeted at developers who have successful Struts applications already in production. We’ll start by building a new Grails application from scratch. Then we’ll look at an existing Struts application. We’ll begin migrating one portion of the Struts application at a time into Groovy, until we eventually have something that can be dropped seamlessly into Grails. Who knew that Struts development could be exciting again?
In this session you will learn:
• How to migrate your existing Struts applications to Grails;
• How to implement the powerful concepts of "Convention over Configuration" and “scaffolding” can be implemented in any language;
• How to update and leverage your existing MVC knowledge/experience into new and powerful applications;
• We also see popular phrases like “DRY” (Don’t Repeat Yourself) in action.
• How dynamic languages like Groovy and powerful (but underutilized) language features like Metaprogramming can drastically reduce the amount of code that you need to write to achieve the same thing you once did in Struts.
Recommended general knowledge:
• Struts 1.x, or a basic familiarity with the MVC design pattern for web development;
• Helpful, but not required: Ruby on Rails or Groovy experience.
• Groovy, Grails, and Google Maps: Mashups 101 with Scott Davis, Author and Editor-in-Chief of aboutGroovy.com
Groovy is a new dynamic language that dramatically speeds up Java development. Grails is a complete Web framework in a box, including a Web server and a database. Google Maps allows you to add maps to your webpage in a few lines of code. Put all three together and you are built for speed.
In this session, Scott will discuss how to incorporate Google Maps with your database-driven Web application. Mashing up local data is one thing: Mapping data from other websites like Google Calendar is just as easy. Groovy's XML parsing capabilities make dealing with Web services a breeze.
Creating mashup means understanding both Web services and Ajax-based mapping services. This talk provided sound fundamentals in both. The rich toolsets out there allow you to spatially-enable data that you never thought of mapping.
This talk is targeted at Web developers with an interest in mapping, but not necessarily any prior mapping experience.
In this session, you will learn:
• How geocoding converts location information you already have into a latitude/longitude point that can be displayed on a map;
• How to pull together free resources and add maps to places you never thought possible;
• About Grails, a modern Web framework for Java developers;
• How to parse XML with Groovy, a dynamic language for the JVM;
• From example how to write your own mashup.
• HTTP for Web Developers with Jason Hunter, Author, Java Servlet Programming
By understanding HTTP, you can become a more effective debugger, improve your site's cachability, design better deployment architectures, author more useful non-browser web clients such as spiders, and (most importantly) avoid a slew of subtle bugs.
In this session, Jason gives web developers an understanding of what's going on in the layer beneath their code. With an understanding of HTTP, Jason looks at advanced topics like HTTP request smuggling vulnerabilities and HTTP tunneling pros and cons.
In this session, you will learn:
• Why common web development issues arise, like: Why an image appears broken or out of date, why load balancers offer session affinity, why session data should not be trusted to persist, etc.;
• How HTTP request and responses work;
• How you can intercept the transaction and fake a transaction for testing;
• How file uploading works and its limitations;
• How cookies work;
• The limits of what spiders can see;
• How REST is based on the HTTP design principles.
• Modern JavaScript: Code Standards and Patterns with Justin Gehtland, President, Relevance, Inc.
As more and more web applications employ heavy amounts of JavaScript, the old spaghetti-code style of programming becomes a larger and larger burden on the applications. In this session, we'll look at the modern style of OO JavaScript programming, and the ways it can be tested, protected, maintained and deployed to maximize its effectiveness and minimize its negative impact on your applications. We'll draw inspiration and tools from several open source packages as well as standard practices in the Java community as a whole.
In this session, you will learn:
• How to maximize the effectiveness of Object-Oriented JavaScript programming;
• How to test, protect and maintain your JavaScript;
• The best code standards and patterns to use to minimize the negative effect of JavaScript on your applications.
• OpenLaszlo: From RIA to Ajax and Mobile with Geert Bevin, Sun Java Champion; Creator, RIFE Application Framework
OpenLaszlo is an open source Java platform for creating zero-install Web applications with the user interface capabilities of desktop applications. This presentation gives you an introduction to the programming model and highlights the most important features through small, targeted code examples. You'll learn about tips and caveats as well as best practices for developing your OpenLaszlo application.
OpenLaszlo programs are written in an XML markup language, combined with JavaScript technology. The platform supports multiple deployment environments and compiles the same source code into Flash, DHTML and Java ME. Developers are able to apply the same knowledge to leverage the benefits of each individual runtime environment.
In this session, you will:
• Get an introduction to OpenLaszlo's LZX language and its component model;
• Explore a simple example that uses the basic interface components, where the presentation deploys to different targets;
• Get code samples of important aspects of the platform, including animation, layout, data binding, canvas drawing, and declarative UI;
• Get tips and caveats on the supported runtime environments and good OpenLaszlo development practices.
Recommended general knowledge:
Attendees should have experience with dynamic web application development and have a basic knowledge of Java and JavaScript technologies.
• Web Security Success with Spring Security 2 with Ben Alex, Founder and Lead Developer, Spring Security Project
Most enterprise applications are multi-user systems dealing with business-critical corporate data. Such applications generally require a security approach that addresses user identification and their permissions.
Spring Security 2 (formerly known as Acegi Security) is the Spring Portfolio's security module, and is widely used in security-critical environments such as banking, finance, defense and government departments. Spring Security frees application developers from the time-consuming and complex work of securing their applications, with out-of-the-box capabilities including authentication, authorization, domain object access control, human user detection, channel switching and so on. As such, Spring Security significantly reduces the cost and risk of securing enterprise applications, while also providing a robust, production-proven solution that is extremely flexible to current and future requirements.
This session is aimed at introducing Spring Security to those not already using it, or those wishing to gain a wider appreciation of what it can do in typical enterprise applications. Ben demonstrates adding Spring Security to an existing web application. This shows you to configure and deploy Spring Security. He'll also briefly discuss the features most commonly used in web application deployment scenarios, REST support, Ajax integration, and other considerations of web application security.
Recommended general knowledge: Web container basics (IE: What is a filter and how to configure web.xml).
In this session, you will learn:
• How to quickly implement robust - yet extensible - security for their web applications;
• Major authentication technology choices, including federated identity and single sign on;
• How to configure Spring Security in 10 minutes or less;
• How to implement robust authorization logic based on method invocations and REST endpoints;
• How to richly secure Ajax invocations using Spring Security;
• How to enforce particular channels (HTTP/HTTPS).
• Expert Panel: Wherefore the Surface Tier? Moderated by Track Host, Justin Gehtland.
The panelists will discuss the evolution of the user interface and current trends in Web, desktop and mobile platforms. We'll talk specifically about advances in tools and ease-of-development as well as development strategies for targeting multiple surfaces.