Presentations
JavaFX: The Platform for Rich Internet Applications
The demand continues to grow for rich interactive content, applications, and services that run on a variety of screens such as mobile, desktop, browser, and television. With the release of JavaFX SDK 1.1 it is possible to incorporate innovative elements of rich client applications into existing Java software with minimum effort enabling consistent user experiences across multiple screens such as desktop, browser and mobile devices. Sun is bringing its JavaFX development framework to mobile devices. JavaFX includes a scene graph library and a unique scripting language that provides a declarative syntax for constructing sophisticated graphical user interfaces. Its graphics capabilities include support for animation, visual effects, gradients, and translucency. The latest release of the JavaFX SDK, version 1.1, offers full support for mobile JavaFX development and includes an emulator for testing mobile device compatibility.
This keynote provides a glimpse into cross-screen applications development using JavaFX libraries such as animation and media applications with cross-platform audio and video. Additionally, this session will illuminate the JavaFX SDK 1.1 that provides a suite of tools for web scripters, designers and application developers.
Develop Rich Internet Applications (RIA) using JavaFX
JavaFX Script is a compiled, declarative scripting language that runs on the desktop, in the web browser and on mobile devices. JavaFX includes a scene graph library and a unique scripting language that provides a declarative syntax for constructing sophisticated graphical user interfaces. Its graphics capabilities include support for animation, visual effects, gradients, and translucency. This jam-packed talk will detail JavaFX from cover to cover. This session will cover:
- An introduction to the JavaFX Script language
- A tour of the core APIs including graphics, animations, and media
- How to access RESTFUL Web Services
- Developing and deploying to different target profiles (desktop, web, mobile)
- Java Runtime Environment 6 Update 10+:this new version of the Java Runtime Environment (JRE) provides a redesigned Java browser plug-in that allows drag and drop of JavaFX applications from the browser to the desktop.
- Futures and roadmap for JavaFX
Java EE 6 Overview
In the past 8 years, the Java EE platform has grown and matured, and is now able to cover a wide range of enterprise and web application development needs. It has fostered a vibrant community and marketplace for additional technologies, frameworks, and applications that work with the platform. Java EE 6 carries on the push for ease of development started in Java EE 5, by extending it to include the web tier, for example by including the new API for RESTful web services, JAX-RS. The major themes for Java EE 6 are to offer more flexibility at development and deployment time, and to make it simpler to build on the many third-party libraries created by the community. To that end we propose several goals for this release - extensibility, pruning, profiles and ease of development.
In this talk we'll provide an introduction to the Java Platform Enterprise Edition (Java EE) 6. First we'll focus on the high-level ideas that drove this release of the platform. Then we'll move into the detailed contents, highlighting the most innovative concepts, starting with profiles and moving down into the many exciting new features of the component JSRs.
Picking the right technology for the Rich Internet Applications
We are entering an era of Rich Internet Applications (RIA) and enhancing the user experience of consumers of the services becomes an important part in designing and implementing distributed applications. But if you decide to develop rich clients, you'll be facing the dilemma of which way to go: remain with tried and true Java on the client or experiment with such newcomers as AJAX, Flex, Silverlight, or recently released JavaFX? While the Internet brings a lot of noise where "it's cool" is the most popular definition, this presentation is an overview of what's out there on the enterprise RIA market. We'll talk about the pros and cons of using various techniques and technologies for the development of the front end for complex distributed systems.
Automatic generation of Flex/Java CRUD applications
During this presentation, we'll walk through the highly automated process of creation of RIA using Eclipse plugins. The first plugin will generate a CRUD application having Adobe Flex talking to POJO on the server, which in turn communicates with a DBMS. Then, another plugin will generate an ANT build script for this application. The third plugin will add logging capabilities for Flex/Java rich Internet applications.
On the Lam from the Furniture Police
When you were hired by your current employer, you may think it's because of your winning personality, your dazzling smile, or your encyclopedic knowledge of [insert technology here]. But it's not. You were hired for your ability to sit and concentrate for long periods of time to solve problems, then placed in an environment where it's utterly impossible to do that! Who decides that, despite overwhelming evidence that it's bad for productivity and people hate it, that you must sit in a cubicle? The furniture police! This keynote describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to gird yourself against all those distractions. I talk about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the mid-guided attempts to sap your ability to produce good work. And I give you ways to go on the lam from the furniture police and ammunition to fight back!
Test-Driven Design
Most developers thing that Test-driven development (TDD) is about testing, but testing is only a small benefit from using TDD techniques. This session demonstrates how stringent TDD improves the structure of your code. I discuss TDD as a technique for vetting consumer calls, using mock objects to understand complex interactions between collaborators, and some discussions of improved code metrics yielded by TDD. This session shows that TDD is much more than testing: it fundamentally makes your code better at multiple levels.
Software Teams Tuneup: Using Agile to Optimize
We're always under pressure to do more with less. More features with less developers. More product in less time. More work in fewer hours. There are several Agile techniques you can use to ensure you and your team and making the most of your days. We'll review several team optimization techniques and discuss their practical applications.
Content Repository - Databases for Content
Along with databases for structured content, content repositories emerged to tailor to content management needs. The content repository has rich metaphors for modeling content metadata, relationships between data, and behaviors that contents needs have. It also adds higher level concepts like workflow, security mechanisms, ability to automatically transform between formats, and many other features. In this talk we will examine the advantages of using a content management repository for storing content and how it enables rapid development of certain types of applications. This core technology can be exposed through SOAP or RESTful Services to play a role in your SOA strategy. With several open standards emerging in this area (newest one, CMIS has the promise of becoming the SQL for Content Repositories), the content repository paradigm has emerged as a standard part of any SOA strategy. Alfresco, an open source enterprise content repository framework, will be used as an example of this paradigm. What you will learn:
- Take a look at Content Repository Abstraction
- Define Content-As-A-Service (CaaS) architecture
- Understand the reusable services that content repositories provide
- Look at emerging interoperability standards in this area
Enterprise JPA & Spring 2.5 - Tips and Tricks for JEE5 Persistence
As with many technologies, the basics are easy. The hard part comes when the developer needs to do sophisticated integration, development, and testing as part of an enterprise application. A large enterprise application requires the developer to think of issues that affect the development, scalability and robustness of the application. This presentation will cover the advanced topics described below.
A large enterprise application often will have several sub-projects that each contain their own JPA persistence unit. This opens up a number of questions around how to organize the persistence units and how the code between sub-projects should interoperate. Developers will gain insight into these issues and will see a couple of solutions using live code examples.
Dynamic JVM Languages in the Enterprise
Dynamic languages running on the Java Virtual Machine are starting to gain traction for software development, specifically for large enterprise projects. This session explores obstacles to introducing dynamic languages into the enterprise, example applications that can ease the way, and issues surrounding integrating a dynamic language to Java projects. Using several code examples that demonstrate the power of using a dynamic language like Jruby or Groovy, attendees will gain insight into how dynamic languages are making in-roads to the enterprise. This session focuses on non-GUI related usages – whereas most people think of dynamic languages for Web development. The target audience for this session is enterprise developers and enterprise architects.
- How to incrementally introduce dynamic languages into an existing project
- Real world examples of using dynamic languages for better testing and writing utilities
- Understanding how to integrate a dynamic language into a Java-based project
JSecurity
JSecurity (Apache Ki) is a powerful and flexible open-source Java security framework that cleanly handles authentication, authorization, enterprise session management and cryptography. It's mission is to be robust and powerful while making security very easy to understand and extremely simple to use. This session will introduce the framework by presenting the core concepts and interfaces, and by providing real code examples of how JSecurity can be integrated into your application.
Scaling Hibernate: tips, recipes and new perspectives
Hibernate is the most popular ORM used in a wide range of industries. Ever wondered how to push it to the limit? Ever wondered how high volumes and high scale web sites use Hibernate? Ever wondered how to give your database some fresh air thanks to Hibernate Search? This track covers patterns and practices to achieve high volume and high scalability with Hibernate. It also describes how to use Hibernate Shards and Hibernate Search to push the scalability to the next level.
What's New in Spring 3.0
Spring 3 introduces many new features, including additional annotation-based configuration options, unified expression language support, and support for developing REST-ful web applications and web services. This talk will focus on Spring 3 as a modern application framework, and covers the core component model, integration with common technologies such as JPA, as well as Spring's annotation-driven web MVC framework. If you are already a Spring user, you will gain insight into the latest Spring has to offer; if you are a Java developer but not yet a Spring user, you may find Spring significantly more compelling.
Developing Modular Web Applications with Spring 3.0
Spring is a robust open-source technology for building and running sophisticated business applications. When combined with OSGi technology, Spring also enables the development of highly modular applications that can quickly respond to change. This session will demonstrate how to use Spring and OSGi together to create truly modular applications. In the spirit of domain-driven design, Keith will still a realistic business problem domain, discuss design and modularity issues, and show how to to properly structure an application system from a set of loosely coupled modules.
Putting Java to REST
JAX-RS is a new specification which will be included within Java EE 6 that provides annotation and component APIs for writing RESTful Web Services in Java. This presentation is an introduction to the JAX-RS specification. Using simple, real-world examples, Bill explains how you can easily dispatch and marshal HTTP requests using POJOs and a few JAX-RS annotations. He also explains how HTTP content negotiation works and how JAX-RS leverages it. He further defines how you can write your own payload marshallers to map your Java objects and exceptions to standard and proprietary MIME formats. Finally, he jumps to the other side of the fence to show how you can write clients that invoke on RESTful Web Services.
Scaling RESTful Services with JAX-RS
Building on his first talk, "Putting Java to REST", Bill shows advanced techniques that you can do with JAX-RS and extensions to JAX-RS to design and scale your applications. He shows how you can use redirection to implement a simple asynchronous job queue. The fundamentals of HTTP Caching and how you can leverage them are described using JAX-RS example services. Bill also shows how idempotent methods can solve basic reliability problems like the Lost Update Problem. Finally, the performance benefits of asynchronous HTTP are shown through various extensions to JAX-RS."
JBoss Rails
In this presentation, we'll examine the basics of running Ruby-on- Rails apps on the JBoss AS5 stack. Once that foundation is laid, we'll explore and demonstrate the additional functionality JBoss provides to Rails applications, including scheduling of jobs and SOAP endpoints with WS-Security. Prior experience with Rails is beneficial, but not required.
Terracotta - Real Apps, Real Frameworks, Real Use Cases
Writing enterprise Java apps can be a real drag. Apps should be simpler to build and run - doing so will save your company lots of money but, more importantly, it will help you avoid a lot of headaches. You may already know about Terracotta, but this is not just another Terracotta / vendor presentation. We worked with customer use cases and built a real app using real frameworks. It is a fully functioning web application; it's not just a demo but the app has security, MySQL and ORM, and even more! The source code is totally free and open source and is meant to teach Terracotta tire-kickers what it is like to live with our products as much as it is designed to give the community a springboard for creating apps that are simple to build and implement.
Come to this talk if you want to learn all the neat and cool ways we learned to offload the database. Come to this talk if you want to learn how to plug Spring Security, Webflow, MVC, and more into a Terracotta-based backbone. We will spend our entire time together on source code, the internals of Spring and how / what Terracotta is sharing underneath our app. Also, come to this talk if you want to learn what it takes to make Terracotta really scale. This web app we'll showcase can talk to 50,000 concurrent users on 16 JVMs. We've gained a lot of knowledge about Spring, Terracotta, and web app development. We want to share it with you.
Do not come to this talk if you want to keep paying your vendor lots of money for your database and application server.
Introduction to Grid based computing with GridGain
We have entered an age where CPU speeds have reached their limit, but the size of data our applications must handle is exploding. As traditional means for processing and storing data have not met the challenge developers are pushed towards building computational grids to store and process this data. This talk will explore strategies for grid based computing using GridGain's Java framework. Please bring your laptop so we can build SkyNet.
