JavaOne 2006 Schedule

Tuesday

11:00 - 12:00
14:00 - 15:30
15:15 - 16:15
15:45 - 17:15
16:30 - 17:30
17:30 - 18:45
17:45 - 18:45
19:30 - 20:20
20:30 - 21:20
21:30 - 22:20
22:30 - 23:20
LAB-1205 Java™ Technology-based Application Performance Analysis
Performance is a primary concern for everyone who deploys Java™ technology-based applications. The Java HotSpot™ Virtual Machine has included lightweight performance monitoring features for several releases which are now included in Java Platform, Standard Edition (Java SE) 5. These features along with the visualgc tool which is part of the separate jvmstat 3.0 bundle form the basis for this hands-on lab. In this lab developers will use jvmstat tools to learn the fundamentals of Java performance tuning.
(Menasse Zaudou, Andrew Johnson)
TS-0725 Challenges and Solutions for Developing Composite Applications on the Java™ EE Platform
This session will show how frameworks built on the Java™ Platform, Enterprise Edition (Java EE) provide a methodology and toolset to efficiently develop and manage composite applications -- following SOA principles. Attendees will learn how composite applications look and feel from a developer’s point of view. We will demonstrate how you can create, compose, and orchestrate services as key building blocks of your new application. Enhance these services with their own unique business objects, business logic and sophisticated Web-based user interfaces. Create new collaborative processes acting upon existing services and transactions, weaving everything together. Understand the challenges you will typically face during the development and see how they can be addressed with modern frameworks and tools based on the Java EE platform standard. Finally learn how your composite can be easily adapted to and installed on your customers IT landscape. The session will include a demo. Attendees should have intermediate Java technolgy knowledge and preferably some experience in business application design patterns in the Java Platform, Standard Edition (Java SE) and Java EE platform space.
(Volker Stiehl, Malte Christian Kaufmann)
TS-1593 Desktop Java™ Technology Today: Deep Dive
This session explores the current state of desktop Java™ technology, highlighting technologies such as deployment, Swing, the Java 2D™ API, and Abstract Window Toolkit (AWT). It begins with a quick overview of the state of desktop Java technology and then focuses on the meat of the presentation: what's new in Java Platform, Standard Edition (Java SE 6)--code-named "Mustang"--for desktop Java technology developers. It also looks at the additions and does a deep dive into the more widely used features, showing plenty of code and a demo or two to keep things rolling.
(Scott Violet, Chet Haase)
TS-1756 Java™ Technology and REST: Implementing the Atom Protocol
A simple lightweight approach to web services known as REST is finding favor among developers on all platforms. The REST approach to web services seems simple. Applications use the existing HTTP protocol to create, retrieve, update and delete resources by sending and receiving XML documents. Gone are the volumes of complex web services specifications such as SOAP, WSDL and UDDI. But, are REST based web services really so simple to develop? Without those complex specifications, how do you deal with the devilish details of specifying a web services protocol, enabling discovery and introspection? In this talk, we'll answer those questions by examining and implementing using Java™ technology in the REST-based Atom Publishing Protocol (APP) . The APP is an idea case study. It's reasonably-sized and it's significant, being one of the first REST-based protocols to become an Internet Engineering Task Force (IETF) standard. It's also useful. Although it was originally intended for blog publishing, it's generic and extensible enough to be used for wikis, content management and your own web applications. The session will start with a lightning quick introduction to REST followed by on overview of prior-art in blog publishing protocols. Next we'll take a long walk through the Atom protocol, illustrating the discussion with command-line interactions with a live Atom server and Java source code examples using the ROME feed utilities, JDOM XML parser and Apache HTTPClient. Along the way, we'll develop a simple but complete Atom client library. After that we'll take a quick look at an Atom client based on the Java Foundation Classes/Swing (JFC/Swing) API and the Atom protocol server implementation in Roller. We'll conclude with a short discussion of possible Atom protocol applications and futures.
(Dave Johnson)
TS-3396 Enterprise JavaBeans™ 3.0
The Enterprise JavaBeans™ (EJB™) 3.0 specification has refocused Java™ Platform, Enterprise Edition (Java EE) based applications on ease of use and the leveraging of the EJB technology container to facilitate the development of enterprise applications. This session examines some of the key features of the EJB 3.0 architecture and how they allow more-powerful applications to be developed in simpler ways. Topics to be covered include the use of dependency injection mechanisms, the simplified business interface view, the use of business method interceptors and life cycle callback interceptors, the simplified model for transactions and security, and leveraging the Java Persistence API for enterprise applications.
(Tony Ng, Linda DeMichiel, Kenneth Saks)
TS-3523 JMX™ Technology Today and Tomorrow
The Java™ Management Extensions (JMX™) API is now part of the core Java platform, as of Java 2 Platform, Standard Edition (J2SE™) 5.0 (code-named "Tiger"). This has accelerated its adoption, already widespread thanks to its inclusion in the Java Platfrom, Enterprise Edition (Java EE). In this session, the specification lead for the JMX API discusses some of the ways the API is being used in conjunction with other technologies and outlines the new features that will appear in the forthcoming releases of the Java platform. In a brief survey of existing uses of JMX technology, attendees see how the JMX API can be driven from within an IDE, how aspect-oriented programming (AOP) can be used for a clean integration of JMX API instrumentation into applications, and how Dependency Injection (Inversion of Control) can also be used for JMX API instrumentation. Attention then focuses on the future evolution of the JMX API. The forthcoming release of the Java Platform, Standard Edition (Java SE) (code-named "Mustang") includes several interesting improvements, which are covered. The subsequent release (code-named "Dolphin") will further improve JMX technology through JSRs 255 and 262, addressing themes such as scalability, ease of use, internationalization, and access through web services protocols. Attendees will benefit from some acquaintance with the concepts of the JMX API, but in-depth knowledge is not required.
(Eamonn McManus, Jean-Francois Denise)
TS-4311 Inside Eclipse Callisto
This summer Eclipse is shipping it's first ever release train, codenamed Callisto. Currently there are ten separate Eclipse projects which are working hard to ship on the very same day: BIRT, C/C++, Data Tools, Eclipse (including Java™ technology-based development tools and rich client platform), EMF, GEF, GMF, Test and Performance, Visual Editor and Web Tools. For the Java technology-based developer, this will give them a great collection of integrated open source tools to use for development. Even more importantly, it will provide a comprehensive set of frameworks to build products and applications on top of. This talk will provide a look into the new features coming from each of the projects, including a deep dive on some of the key new Java development improvements, framework APIs and extension points. Along the way, we'll also give you an insider's view into the processes, technical decisions, and just plain struggle that has gone into making such a co-ordinated release possible.
(Mike Milinkovich, Bjorn Freeman-Benson)
TS-5540 Making Java™ Technology-Based/.NET Web Services Interoperability Real
Although basic interoperability between different platforms is becoming widely accepted, real enterprise distributed systems are setting a higher bar. This session covers secure, reliable, and binary web services interoperability between Java™ technology and Windows Communication Foundation. Come see how WCF interoperability helps solve real-world problems. If you deal with distributed systems in heterogeneous environments, you won't want to miss this real-life, demo-driven session.
(Arun Gupta, Kirill Gavrylyuk)
LAB-8105 Sun Java™ Studio Enterprise 8: Basic UML Modeling
NetBeans™ IDE includes comprehensive support for developing IDE plug-in modules and rich client applications based on the NetBeans platform. It also includes the intuitive GUI builder Matisse, redesigned CVS support, support for Sun Java™ System Application Server 8.2, Weblogic 9 and JBoss 4, and many editor enhancements including new refactorings. NetBeans IDE is a robust, open source Java IDE that has everything software developers need to develop cross-platform desktop, web and mobile applications straight out of the box. The NetBeans Enterprise Pack 5.5 introduces Web services orchestration, UML modeling and XML tools to the NetBeans community. It is available as an integrated bundle along with the NetBeans 5.5 IDE. This collection of tools and runtimes enable you to develop applications and Web services based on the latest release of the Java Platform, Enterprise Edition (Java EE) 5. NetBeans Enterprise Pack 5.5 provides features to aid development: •SOA visual design tools for architects and programmers •XML Schema Tools - Visualize and edit XML Schema, visualize the relationships between Schema elements, use Schema creation wizards. - Web Services Orchestration - Author, build, deploy, and test BPEL processes. Includes: a full two-way editor; BPEL runtime engine integrated with Sun Java System Application Server 9; creation of loosely coupled, service-based composite applications for SOA; full two-way round-trip designer; full process debugging integrated into NetBeans debugger. • UML Modeling, which includes: - Full two-way, round-trip engineering - Markerless code - Code generation - Requirements gathering - Design patterns A goal of this hands-on lab is to give you a brief description of main functionality provided by UML module of the NetBeans Enterprise Pack 5.5. • Reverse engineering the existing application through UML modeling tool • Extend application in UML modeling tool • Publish UML modeling diagrams
()
TS-1402 Essential Lessons of Distributed Caching
This session covers application development considerations for achieving maximum scalable performance and reliability in clustered Java™ Platform, Enterprise Edition (Java EE) environments, improving the scalability and scalable performance of applications through the use of clustered caching to reliably share live data among clustered Java Virtual Machine (JVM™) machines in the application tier, providing transparent failover as a key element of uninterrupted operation, and reduced load on the database tier as a key element of scalability.
(Cameron Purdy)
TS-1913 Eight Ways to Be More Productive Developing Swing Applications
Java™ technology's Swing GUI toolkit is one of the most powerful and flexible frameworks available for creating professional, high-quality desktop applications. Along with its considerable abilities, however, comes considerable complexity. Swing does not have a reputation for ease of use (despite being much easier than many of its competitors--but that's another story). If you could combine the Swings power with the productivity of easier, more restrictive tools, such as Microsoft's Visual Basic - you'd have an incredible tool for application development. This presentation talks about eight techniques you can employ to realize such an environment, such as how you can successfully integrate GUI builders and XUL frameworks into your project, making it much easier to set and retrieve values on Swing components, how to make it trivial to make JTables easy to use, and more. Along with the presentation and slides, attendees will be able to download open source code they can use in their projects today to implement these ideas.
(Ben Galbraith)
TS-3203 Mobility General Session
This session discusses the evolution of the Java™ Platform, Micro Edition (Java ME) and Java Card™ platforms, highlighting several cutting-edge wireless data services in the market and how developers can take advantage of new capabilities in the Java ME and Java Card platforms to build compelling services for the mobile and embedded markets.
(Alan Brenner)
TS-3217 Transparently Clustered Spring -- A Runtime Solution for Java™ Technology
How do you scale a Spring application beyond a single node? How can you guarantee high-availability, eliminate single points of failure, and make sure that you meet your customer SLAs? Historically speaking, clustering an application is not easy: it takes a significant amount of time and usually requires you to rewrite parts of your application. It also usually perturbs your domain model and breaks object identity. But does it have to be like that? In this talk, Jonas Bonér and Rod Johnson will walk you through how to cluster your Spring application, transparently and naturally, with no changes to your application code, using the Terracotta Spring Runtime. The Terracotta Spring Runtime allows you to take an arbitrary Spring application, written for a single JVM™ machine, and cluster it to N nodes while preserving the exact same semantics. For example: • Life-cycle semantics and scope for Spring beans are preserved across the cluster - within the same logical ApplicationContext (singleton and session scoped beans). • Spring's local event mechanism in the ApplicationContext is turned into high-performance asynchronous, distributed and reliable events (messages), but still local within the same logical ApplicationContext. • Clustered beans can be exported using Spring JMX support, which guarantees a single point of management and coherent view of all the JMX data in the cluster. • Spring WebFlow's web flows are transparently shared across the cluster. • and more... The session is backed up by several live demos.
(Jonas Boner)
TS-3439 Mastering Mustang and Developing Dolphin
Version 6 of the Java™ Platform, Standard Edition, code-named "Mustang," will be nearly finished by the time this session is held, so it presents an overview of the key Mustang features, illustrated with working code. Looking ahead to the Java SE 7 release, code-named "Dolphin," the presentation surveys the features being proposed for that release and explains how anyone in the wider community can get involved in its development.
(Mark Reinhold)
TS-3683 Bi-Fi: Just Like Your Doctor!
Bi-Fi is a state-of-the-art wireless patient-monitoring system derived from "Smart Dust" concepts and technologies. Remote evaluation, diagnosis, and treatment of patients require biosensors that are enhanced through the use of telecommunications and networked computing technologies. Recent advances in low-power, distributed computing and communications technologies have yielded miniature-scale, wireless-enabled, battery-powered motes that can acquire, process, transmit, and receive signals over an indoor range of up to 30 meters. The Bi-Fi system is enabled by motes configured as biosensors through specialized hardware and software for efficient data acquisition, filtering, and transmission as part of a remote patient care delivery and monitoring system. This session not only reveals the mystery of Bi-Fi's embedded system architecture but also shows you how the innovative use of Java™ technology lets you configure the mobile biosensors to acquire the biological signal of interest as well as browse archives of recorded data. The inherent flexibility granted by the Java technology-based services architecture allows access to the system by virtually any Internet-enabled device from anywhere in the world. The fun is not over until you are "Bi-Fi"ed. Well, this session saves you a trip to the doctor...
(Shahin Farshchi, Kiran Patel)
TS-4069 Travel Web Services: Marrying Business Innovation with Java™ Technology
This session with David Hecksel, senior SOA and business integration architect, Sun Microsystems, and Brad Schneider, director of architecture and research, Hotels.com, covers the e-commerce travel web services available through IAN.com, the interactive affiliate network associated with Hotels.com, and how to use Java™ technology web services to access available dynamic travel content. Topics covered include: • What is IAN.com? • Business functionality overview, including hotel, car rental, airfare, and travel package requirements • Available travel services • Examining the content available through a series of web service access demos • An overview of the IAN.com platform, including application architecture, standards used, and future directions • Interactive demos using Java technology web services to access travel content and create your own custom offerings • Business opportunities for the community through travel services
(David Hecksel, Brad Schneider, Narayan Chintalapati)
TS-4386 Twelve Reasons to Use the Sun Java™ Studio Creator IDE
The Sun Java™ Studio Creator IDE provides one of the easiest paths for creating enterprise web applications. This session covers many of the reasons developers today see using the tool as a powerful approach for creating web applications. Unlike virtually all other Java technology-based development frameworks, Java Studio Creator IDE approaches development with a visual layout and a drag-and-drop metaphor. The presentation discusses all aspects of the tool: the IDE, the database, and the application server. The session should have strong appeal to developers new to Java technology-based web application development and Microsoft Visual Basic developers making the transition to Java technology.
(Charles Ditzel, Inyoung Cho)
TS-4661 Composable Web Services Using Interoperable Technologies from Sun's "Project Tango"
This technical session provides an overview of a set of technologies that enable interoperability between applications built on Microsoft's Web Services Communications Foundation (WCF, a.k.a. Indigo) and those built with Sun's Java™ Web Services technologies. The session provides a rationale for Sun's strategy in delivering implementations of a selected set of WS-* technologies, such as WS-ReliableMessaging, WS-AtomicTransactions, and WS-Security, as part of the java.net community development effort. It shows the continuing evolution of Suns Web Services stack, enabling Sun to consume web services built and hosted by WCF technologies and/or provide Java web services that can be consumed by WCF consumers. Attendees gain visibility into Sun's roadmap for this technology and receive detailed guidance on how to engage in the java.net community development effort.
(Harold Carr)
TS-1222 RESTful Web Services With JAX-WS
With its XML/HTTP binding and dynamic APIs, Java™ API for XML Web Services (JAX-WS) provides important new functionality for the consumption and creation of RESTful web services. This session describes and demonstrates the features and capabilities of the Dispatch and Provider APIs when used in conjunction with XML/HTTP binding. The session includes full working examples of interacting with well-known services including Amazon, Yahoo, and Flickr, using both Java API for XML Processing (JAXP) for native XML processing and Java Architecture for XML Binding (JAXB) for binding XML to Java constructs. It describes service creation, including development and demonstration of a full working example. Additional advanced topics covered include use of the JAX-WS handler framework with RESTful web services and support for binary and multipart data. Knowledge of the World Wide Web is assumed, and some familiarity with XML is desirable to get the most out of the session.
(Marc Hadley)
TS-1375 Web 2.0: Next-Generation Communities With Rich Java™ Technology-Based Applications
"Asynchronous JavaScript™ technology," "XML (AJAX)," "Flash," and "Web 2.0." These are some of the hottest buzzwords on the Internet today, but where is Java™ technology in all of this? Even though Java technology is the granddaddy of rich Internet applications, it seemed to have fallen by the wayside until only recently, with some of the more recent advancements to the Java language. At Javalobby, we don't see Web 2.0 as being confined to the various browsers. Through rich services, we are able to bring the content from our network out of the browser and into IDEs, your system tray, and even your Tivo. This presentation focuses on the different applications Javalobby has designed to present Internet community information outside the browser, using the very latest Java technology. We intend to show the attendees how we tackled the complicated task of bringing a primarily web-based community to the desktop in ways beyond basic RSS. The session begins with a brief overview with code samples of the back-end code to connect each of our different interfaces with the network, primarily using the Hessian binary protocol. We will then focus on building the various interfaces for the rest of the presentation. The first major topic we'll focus on is the advantage of having your community built right into your IDE. We'll then show how we were able to quickly build the interface as a set of plug-ins for the latest NetBeans™ release build, taking advantage of things such as automatic updates and Matisse. This portion of the presentation covers topics such as adding new items to the toolbars in NetBeans, integrating with other Javalobby members in the collaboration server, searching Javalobby from within your IDE, displaying alternative information from JDocs inside your code, and doing other integration with the IDE. Even though we spend a great deal of time in our IDEs, we do still use computers for other things. We will show how we are using Java Web Start technology to connect you to the community for both live chatting with other users and the ability to browse content in a richer format than that allowed by a Web interface. This portion of the presentation focuses on how we used technologies such as JDIC, JDNC, and the Java 2D™ API to provide a rich interface to the network and provide insight on future possible enhancements such as a rich interface to competitions at JavaBlackBelt. Throughout this portion of the session, we will discuss the difficulties we faced in using the technologies mentioned above and how we were able to solve them and build a unique interface into the community. Finally, even developers need to have some fun, and the Tivo provides the perfect outlet for a little relaxation and hacking fun. Because of its Java SDK and dashboard called HME, the Tivo provides an unusual medium for displaying content from the community. Near the end of the presentation, we will discuss a few of the basics of how to develop a Tivo application and then show you a demo of our homegrown Tivo application that accesses live Javalobby data.
(Michael Urban)
TS-1598 Squawk: A Java™ VM for Wireless Sensor Networks
Squawk is the Java™ Virtual Machine for the Sun™ Small Programmable Object Technology (Sun SPOT) wireless sensor/actuator device designed by Sun Labs. Industry and academia have received this device with much excitement, because it brings Java technology to the world of wireless sensor/actuators, allowing developers to use standard development tools to work directly on device. The current state of the art requires developers to program in low-level languages with little or no debugging support while running on device. Squawk, a research project at Sun Labs to investigate the challenges of supporting Java programming for embedded devices, implements a full Java Platform, Micro Edition (Java ME) --formerly J2ME™ platform--VM. Squawk's tiny size--80 KB RAM and 270 KB flash, including CLDC and hardware libraries--makes it ideal for deployment on the Sun SPOT device. Squawk is one of the smallest publicly known Java ME platform VM implementations that enables Java technology on wireless sensor devices. Squawk's reference implementation is written in the Java programming language. The interpreter and garbage collector are translated to C for speed on the Sun SPOT device. Squawk was designed for small, memory-constrained devices and deploys Java technology-based applications on the Sun SPOT device that are one third the size of their classfile counterparts. By supporting interrupts and device drivers in Java technology, Squawk is able to run on the bare metal without an underlying operating system, thus further reducing the overall footprint. Squawk also provides a research implementation of JSR 121 (isolates), and multiple isolates can be run by the VM, enabling multiple applications to be run on the Sun SPOT device at the same time, without the extra memory overhead of standard JVM software implementations. Further, applications (isolates) are allowed to migrate from one Sun SPOT device to another, providing for ease of reprovisioning in the field, remote debugging, and more. This presentation discusses the internals of the Squawk VM: Squawk’s split VM architecture, design decisions to make application code smaller, how isolates are implemented and migrated within Sun SPOT devices, how interrupts and device drivers are supported by the VM, and extensions to the general connection framework (GCF) to support the radio (i.e., radio://). The session includes several demonstrations and example code to illustrate particular features of the VM in a deployed wireless sensor application context.
()
TS-2002 What Is Happening With SOA in Open Source?
Many key pieces of an SOA runtime are already becoming available in open source. This session brings together technical experts from Sun, JBoss, Logicblaze, ObjectWeb, Sonic Software, and Tuscany who are working on freely available SOA frameworks. The panelists will briefly discuss their approach and the strengths and capabilities of their respective frameworks. The session also takes a look at new and evolving integration standards that are important in this space. After the brief technical persentations, the moderator will lead a technical Q&A session with audience participation.
(Peter Walker, Mark Hapner, Glen Daniels, Francois Letellier, Mark Little, James Strachan)
TS-3117 Advanced Sun™ Grid - Creating Applications for Horizontal Scale
The Sun™ Grid Compute Utility is a great new way to tailor compute resources to business needs. Using the Sun Grid Compute Utility, businesses without a data center can get access to exactly the compute power they need and pay for only the amount that they consume. By horizontally scaling to leverage the massive compute resources available in the Sun Grid Compute Utility, tasks which previously took days can be completed in hours of even minutes.. This session is designed to educate developers on how to create complex parallel Java™ technology-based applications capable of taking full advantage of the Sun Grid resources. Attendees will be taken through the full design process. After a brief overview of the Sun Grid, this session will discuss the design considerations associated with parallel development, including inter-node communications using sockets or socket wrapping services, data management and distributed partial failure / recovery in large scale deployments. It will elaborate on some parallel design patterns and best practices for using Grid Engine, Java, Java Networking, MPI, RMI, Jini/JavaSpaces, and the shared home directory, on Sun Grid. Different approaches for communications between distributed Java components will be discussed and illustrated by example applications and real time demos. The session will specifically expand on the "worker" pattern for large task-oriented applications, covering how to: •provision shared code and data to a distributed collection of workers •dynamically scale the number of workers to optimize throughput •collect results •manage termination conditions It will describe an implementation of this pattern using Jini™ network technology and JavaSpaces™ technology that allows a developer who to focus on the business logic. A demo will be given to show how to use this infrastructure, called the "compute server" to convert simple single-threaded task logic into a complete application that is packaged and run as a distributed application in the Sun Grid Compute Utility environment. Attendees will leave knowing how to implement and deploy real-world applications on the Sun Grid Compute Utility that are capable of leveraging the massive compute resources available to them, which until recently were only available to a select few. The talk with wrap up with a discussion of additional resources that are available to help developers leverage this new environment. Attendees should know Java technology and Java Networking and have a basic understanding of grid/parallel computing. An introduction to Sun Grid Compute Utility would be beneficial, but is not required.
(Dan Hushon, Amir Halfon)
TS-4915 Simpler, Faster, Better: Concurrency Utilities in JDK™ Software Version 5.0
This session describes the concurrency utilities in the java.util.concurrent package that are part of JDK™ software version 5.0. Earlier versions of the Java™ platform provided basic primitives for writing concurrent programs, but they were just that--primitive--and difficult to use properly. Building multithreaded applications on the Java platform's low-level concurrency primitives poses many traps for the unwary, and many developers were forced to reinvent the wheel by writing their own classes for thread pools, semaphores, and task schedulers. To help users create robust, scalable, and (most important) correct multithreaded applications, JDK software v5.0 includes a rich set of high-level concurrency constructs, such as thread pools, semaphores, mutexes, condition variables, locks, barriers, and high-performance concurrent collection classes. Using these concurrency utilities will, in most cases, make your programs clearer, shorter, faster, easier to write, and more reliable. This presentation provides you with all the information you need in order to start using these tools. (Note: This presentation is an updated version of last year's award-winning presentation.)
(Brian Goetz, David Holmes)
TS-5033 IntelliJ IDEA: Integrated Team Environment
The story of IntelliJ IDEA evolution has always been a story of how the developers at JetBrains have made their own development life easier. Whatever feature was added--a tiny enhancement or an entire integration with another other tool--it was added for their own productivity purposes. IntelliJ IDEA is an ideal tool that ultimately supports the coding process or, in other words, covers almost every need of a single developer. But does project development end with just coding? Different types of builds and tests, continuous integration, code analysis, version control management, deployment, and maintenance--these are all irreplaceable parts of a project development process. And the developers at JetBrains are also facing the same problems at those stages as all other developers do. So they decided to achieve an ambitious goal: develop an Integrated Team Environment, or TeamServer, that should become for a development team exactly what a full-featured IDE is for a single developer. ITE is designed as a combination of build-and-test server, continuous integration server, and collaboration server, to provide the following: • Automation • Tight tools integration • Test/analysis frequency and precision • Server-side inspections and coverage • Seamless collaboration TeamServer combines: • A build grid that provides leverage for multiple-project load; enables more coverage, inspections, duplicates analysis, and the like; and guarantees more-accurate validation through the use of more installed hardware. • Delayed commits to version control, where you don't need to worry about whether your last commit before leaving home could break the build; the system replaces the standard "Edit--Commit--Verify" scenario with "Edit--Verify--Commit," which ensures that the version in VCS is always clean and running. Moreover, it is you who decides what "clean" means: whether the code just compiles or unit tests are also passed, or maybe the new functionality is well covered and code inspection reports no problems. • IDE integration that allows you to keep working in your friendly environment without any workflow interruptions, so that you can view build logs, monitor currently running tests, or review change diffs directly in IDE, with the opportunity to explore failure stack traces, navigate to failed tests with a single keystroke, obtain estimation for your changes to be tested, and fully control task priorities. •Teamwork support with code-aware instant messaging and the ability to organize remote code reviews, avoid conflict merges, exchange files with no VCS involved, share IDE configuration, and code style and inspection settings. Because the environment uses open protocols and a variety of client UIs and supports industry-standard configurations, version control systems, issue tracking tools, and so on, it guarantees that there won't be any vendor lock-in (not to say that it is IDE-independent). With painless setup and maintenance, the TeamServer is going to become an ideal Integrated Team Environment ensuring productivity increases.
(Dmitry Zhemerov, Mike Aizatsky)
LAB-1510 Running with "Mustang"! Explore New Features of Java SE 6
"Mustang" is the code name for the next release of Java™ Platform, Standard Edition (Java SE) 6. "Mustang" introduces a host of new and interesting features. Some of these features includes the following: - Scripting Language - Compiler API - Annotation Processing API - Splash screen, Tray API, smartcard - Compiler intergration, Java technology's abstract syntax tree, annotation processing tool - Web services and XML processing with Java Architecture for XML Binding (JAXB) - Deployment via Web Start - Servicablility with dtrace, jconsole - DTrace for Java applications Using these features, a developer can write some interesting and innovative application.
(Chuk-Munn Lee, Sridhar Reddy)
TS-1109 The Sun™ Grid Compute Utility
Sun™ Grid, a utility computing platform from Sun Microsystems, provides secure shared access to substantial computing and storage capabilities, exposed as simple to-use resources. A developer can leverage this utility platform to do everything from complex analytics and parallel processing, to load testing of an application, and will pay for only what they consume. This session is designed to provide an overview of the Sun Grid architecture and usage model and educate on how to harness the resources provided. Attendees will be taken through the process of accessing the Sun Grid utility with a browser, uploading resources, running jobs, and downloading output – basically the entire lifecycle, from start to finish. After a brief background of grids and parallel computing to set the stage, this presentation will provide an overview of the Sun Grid, from a business and technical perspective. It will then describe how to use the Sun Grid, including an explanation of the execution environment and its components and the interfaces for interacting with the grid. A simple Java application will be used as an example to demonstrate the packaging, deployment, and execution steps. The presentation will then introduce some of the challenges involved in more complex parallel applications. A tool will be demonstrated that does much of the heavy-lifting, leaving developers free to focus on the business processing logic when creating parallel applications to run in the Sun Grid Compute Utility. Attendees will leave knowing how to access and use the Sun Grid Compute Utility. The talk with wrap up with a discussion of additional resources that are available to help developers leverage this new environment. Attendees should know Java and will benefit from some background in grid/parallel computing.
(Fay Salwen, Peter Murray, Uday Subbarayan)
TS-1297 Filthy-Rich Clients: Animated Effects in Swing Applications
Animation and whizzy graphical effects can be totally gratuitous, but they can also be used to make applications more effective and users more productive. This session examines fundamentals of timing and animation and shows techniques for implementing cool effects on Swing components. It also discusses recent advances in combining 2-D and 3-D effects in the Java™ Platform, Special Edition (Java SE) 6 ("Mustang") release.
(Chet Haase, Kenneth Russell, Romain Guy)
TS-1515 Location API: Practical Applications of JSR 179
Autonomous or assisted? User-plane or control-plane? JSR 179 abstracts the "how" of location from the developer, but knowing how the underlying platform works can help you write a successful location application. In this session, engineers with experience in deploying handset-based and network-based location applications for enterprises show you how to use JSR 179 to get the highest-performance location fixes for your Java™ Platform, Micro Edition (Java ME) application. Demonstrations show how tweaking these parameters can affect performance on devices employing different location technologies.
(Ryan Wick, Zane Lyon)
TS-3097 Beyond JUnit: Introducing TestNG, the Next Generation in Testing
This presentation discusses strengths and weaknesses of JUnit and introduces TestNG, a new testing framework based on annotations. TestNG features some innovative functionalities, such as the following: - Groups for your methods, allowing you to run "database" or "fast" tests - Ability to pass parameters to your test methods - DataProviders, enabling data-driven testing - Powerful execution model (no more TestSuite) - Flexible test configuration - Support by a variety of tools and plug-ins (Eclipse, IDEA, Maven, etc...) - Embedding of BeanShell for further flexibility - Default JDK™ software functions for run time and logging (no dependencies) - Dependent methods
(Hani Suleiman)
TS-3310 Java™ ME Platform MIDP 2.0 Client Design for Digital Video Broadcast
This session covers the design of a Java™ technology-based client for viewing high-quality video content on a mobile wireless device using DVB-H, the handheld version of the Digital Video Broadcast standard. The client was developed for a small-scale friendly user trial. The session includes an overview of a DVB-H broadcast architecture; presents mobile device requirements (hardware and software); and covers such issues as user interface (UI) design, the impact of mobile device constraints (screen size, performance, battery life), and the high-level application programming interfaces (APIs) and standards utilized. Mockups of the various form factors are shown as they pertain to different devices. The mobile device also presents an interesting opportunity for interactive programming that enhances the mobile video experience. Because many definitions of interactive applications exist, interactivity is defined, for the purposes of this discussion, as features that enhance the mobile entertainment experience, provide additional program-related information, and/or enable mobile commerce opportunities. The presentation defines the different interactive applications available as well as methodology for creating unique interactive applications on the client side. In addition, the discussion covers the performance of various audio and video codecs, with a focus on identifying those best suited for low-bandwidth applications. The session concludes with a demonstration of a broadcast mobile video client and clips and a review of the future opportunities to improve the mobile TV experience. The audience gains insight into the state of the art for mobile video (specifically DVB-H) and designing multimedia-capable interactive clients for mobile wireless handheld devices (PDAs and mobile phones). No special Java technology knowledge or skills are required to attend and benefit—just an interest in mobile TV.
(Erich Izdepski)
TS-3313 What's Hot in IBM's Virtual Machine for the Java™ Platform?
IBM has provided a Virtual Machine for the Java™ platform (JVM™) for multiple platforms since the very early days of Java technology. The offering has matured significantly over the years, and this session aims to clarify the current distinguishing features and technology set the IBM JVM software offers, including a dive into the core of our JIT and GC technology. The presentation discusses the nature of cross-platform development and the challenges associated with delivering a cohesive technology across all IBM hardware brands, including xSeries, pSeries, and zSeries.
(Trent Gray-Donald)
TS-3765 Service Component Architecture: Approach to Security, Transactions, and Policy
Service Component Architecture (SCA) defines a model for the development of business solutions using a service-oriented architecture. One of the main goals of SCA is to provide developers with a simple methodology for creating systems based on SOA. Some of the major areas of complexity in enterprise systems are those that deal with "infrastructure capabilities"--things such as security, transactions, and reliable messaging. This presentation describes the SCA approach to infrastructure services and how it provides a model that is simple to use for the average developer while still allowing full functionality and a detailed level of control for the experts in infrastructure services. The session deals with SCA policies and profiles, showing how these allow the typical developer to be presented with simple choices, and it covers SCA policies and how they take advantage of existing specifications such as WS-Policy. SCA profiles are also discussed, showing how infrastructure capabilities are handled declaratively and are layered and composed to provide fine-grained control at the lower layers but present relatively simple coarse-grained choices at the higher levels. The relation of these layers to different development roles is also discussed.
(Mike Edwards)
TS-3966 A Robotic Dune Buggy Named Tommy
Autonomous mobile robots are often considered the subject of science fiction or the result of costly R&D projects or are limited to small bot experiments. The DARPA Grand Challenge, held in October 2005, raised awareness of advances made in sophisticated autonomous robotics by offering a $2 million prize for fielding an autonomous vehicle that could be the first and fastest to traverse a vast stretch of desert terrain at mission-relevant speeds. This presentation is a follow-up to last year's popular 2005 JavaOneSM conference presentation on "Tommy," a completely autonomous silver egg-shaped dune buggy that was one of 40 robots invited to participate in the DARPA Grand Challenge events. Tommy is based entirely on Java™ technology. Tommy's sensing, planning, actuation, and real-time feedback control are all based on a combination of Java Platform, Standard Edition (Java SE) and Java Platform, Micro Edition (Java ME). The session provides a description and video footage of Tommy as well as a discussion of Tommy's Java technology-based design. It also tells the extraordinary story of a unique team's experiences at the DARPA Grand Challenge. The session ends with a discussion of Tommy's evolved platform and how others can develop autonomous robots now, using Java technology.
(Paul Perrone)
TS-4489 Introduction to AJAX
Asynchronous JavaScript™ Technology and XML (AJAX)--called DHTML just a few months ago--has revolutionized (or "radically iterated," if you like) web application development in the short year since the term was coined. What is it all about? Why are we excited about a set of capabilities that has been sitting in our browser for years? What can you do with it? And how can you do it? AJAX is a technique for communicating with servers from within a web page without causing a page refresh. This session provides an introduction to AJAX and an orientation to the state of the Ajaxian universe. It demonstrates the basic Ajaxian techniques through live coding and demonstrates and deconstructs more-advanced examples of AJAX. Attendees learn how the Google Maps UI is built (and why it isn't as hard as it looks) and how AJAX can improve portals, community sites, and pretty much any other type of web application. Furthermore, the session discusses issues surrounding how to create an AJAX application that doesn't turn into an unmaintainable pile of hacked-up crap JavaScript technology, including some focus on debugging techniques. The presentation is delivered by Ben Galbraith and Dion Almaer, the cofounders of Ajaxian.com and longtime experienced Java™ technology developers.
(Ben Galbraith, Dion Almaer)
LAB-5655 Building AJAX-based JavaServer™ Faces Web Applications With Sun Java™ Studio Creator
This lab shows how to use the Sun Java™ Studio Creator IDE to combine Asynchronous JavaScript technology and XML (AJAX) interactions with JavaServer™ Faces technology to create dynamic web applications to provide realtime feedback similar to interactive desktop applications.
(Jayashri Visvanathan)
TS-1302 Code Examples Using Java™ ME Technology and New Web 2.0 Services (Beyond Google Maps)
Web 2.0 is a new paradigm of the Participation Age, giving greater public access to APIs of web services such as Google Maps and Amazon's book searches to public software developers to use as they see fit. This is perfect for today's Java™ Platform, Micro Edition (Java ME) technology-enabled small devices, such as advanced cell phones, with which connection to public services for fast and reliable information is important to on-the-go users without their having to worry about logging in and authenticating with each service. This session describes code used for deploying new Web 2.0 services to Java ME technology-enabled cell phones. By attending this session, conference participants will see code examples of how new Web 2.0 services are used in conjunction with Java ME technology-enabled wireless devices. Attendees should have general knowledge of Java software development and Java ME technology.
(Hinkmond Wong)
TS-3154 Introduction to Apache Derby
Apache Derby is a 100% Java™ technology-based open source database. It is an excellent fit for Java technology and web applications, because it is fully embeddable; requires zero administration; has a small footprint; and is secure, easy-to-install, and fully standards-compliant. This session gives you an overview of the qualities and features of Derby, discusses the different scenarios and topologies in which it can be used, and provides an in-depth overview of Derby's support for the JDBC™ API and SQL and how it integrates with an application or web server.
(David Van Couvering, Dan Debrunner)
TS-3212 Large-Scale Client Deployment Using Java™ Web Start Software
FIDUCIA IT AG, the largest IT provider for German cooperative banks, has relied on Java™ technology since 1998. From the beginning, FIDUCIA has deployed Java technology-based, rich client applications on the more than 100,000 systems on its network. At first, deployment was done via CDs, but since 2002 FIDUCIA has been relying on Java Web Start software for all client-related deployment tasks. This presentation gives a short overview of how Java Web Start software is working and then covers the environment in which Java Web Start software is used at FIDUCIA. Then it discusses whether it is possible to deploy 120-MB classes worth of JAR files over a wide-area network with limited bandwidth. The speaker then introduces the measures FIDUCIA has taken to guarantee delivery of software updates and patches while preventing excessive load on its WAN. The next part of the presentation covers why it is important to FIDUCIA and its banks that software versions can be individually configured for each bank and how this can be achieved with Java Web Start software. The last part of the session covers common pitfalls and bugs in Java Web Start software that have been identified and fixed together with Sun staff.
(Matthias Schorer)
TS-3361 Java™ EE 5 Platform: Even Easier With Tools
In the past, the tools for Java™ Platform, Enterprise Edition (Java EE) mainly tried to hide the complexity of APIs. They tried to manage the boilerplate code in various Java classes and XML descriptors, through either templates and code synchronization, as in the NetBeans™ 5.0 IDE or IntelliJ IDEA, or code generation, such as various tools based on XDoclet. This session gives you a quick overview of the main Java EE 5 platform features that scratch some developers' itches. The main theme of the Java EE 5 platform is ease of use. Do developers still need any help from tools? The presentation shows the tasks for which a good tool can help the developer be much more productive. It focuses on object-relational mapping, web services, and web application development. In the area of Enterprise JavaBeans™ (EJB™) technology and object-relational mapping, the new standards coming in the Java EE 5 platform combine the best features of successful open source and commercial frameworks (such as Oracle TopLink or Hibernate) and give developers a unified API for writing portable code. Object-relational mappings can be used in the Java Platform, Standard Edition (Java SE), web applications, or the EJB architecture. The session includes demos of various tools that help define object-relational mappings in applications ranging from quick prototypes to large applications working with existing large-scale schemas. The number of standards and technologies related to web services can be overwhelming. Some of the complexity of dealing with XML configuration files is gone, and web services can be fully configured by annotations in Java technology code. The presentation shows how the tool can help focus on the business logic performed by the web service as well as other aspects, including security, reliability, performance, and interoperability.
(Ludovic Champenois, Pavel Buzek)
TS-3418 Squeezing the Last Byte and the Last Ounce of Performance from Your MIDlet
This session discusses the size and performance constraints imposed by handsets on applications based on Java™ Platform Micro Edition (Java ME) and the techniques for beating these constraints. The mobile game and application industry is driven by mass consumer devices. Mass consumer devices such as Nokia Series 40 are constrained by their prices and build costs, so they have very limited memory and processing power. However, for the developers to reach the widest audience, it is usually mandatory to support these handsets. These constraints ultimately limit the sophistication, game-play, and polish of the mobile applications in the market. This session gives attendees in-depth technical and commercial knowledge, tools, and a catalogue of successful optimization techniques for developing more-sophisticated and more-compelling Java ME platform-based applications for every handset. The speaker draws on his experience as the architect of mBooster, the world's only true optimizing compiler for the Java ME platform. The session is intended for technical managers and developers engaged in Java ME platform or i-mode mobile development. Java ME platform or i-mode development experience is not required but is recommended for the session.
(Stephen Cheng)
TS-3627 What Comes Next in the Portlet Specification V 2.0 With JSR 286
JSR 168 defined the first version of the Portlet Specification for the Java™ platform and provided the basic definitions for portlets and portlet containers, invocation of portlets, portlet application packaging, and the portlet API. JSR 168 has already gained wide industry acceptance, and many requests to enhance the first Portlet Specification have been made. In version 2.0, the expert group plans to align the Portlet Specification with Java 2 Platform, Enterprise Edition (J2EE™) 1.4; integrate other new JSRs relevant to the portlet, such as JSR 188; and align with Web Services for Remote Portlets specification V 2.0, including the concepts of events between portlets and public render parameters. This presentation provides details about the current status of JSR 286 and what items are likely to be part of the first public draft.
(Stefan Hepper)
TS-5386 Groovy Goes RFID with Smart Sensors for Real-World Control
Groovy scripting is integrated with smart sensors and a commercial RFID network controller to manage real-world interactions in factories and warehouses. RFID applications frequently need to sense and control tagged objects, based on their identity. A typical scenario includes optical sensing of a case moving on a conveyor belt to trigger reading of the RFID tag. Similarly, reading the identity from a tag may trigger an actuator to redirect a case to a different destination. In general, there is a need to control an open-ended set of environmental sensors and industrial actuators based on RFID identities. The Sun Java™ System RFID Software platform is one example of an RFID middleware system driven by a network controller. Readers are nodes on the net that are centrally discovered, provisioned, and managed by the central controller. Using Rio, the architecture generalizes easily to broader sensing and control tasks. Smart sensors have been integrated into this RFID middleware platform by use of an adapter layer that interfaces third-party RFID readers into the framework. Using the Distributed Data Acquisition Control for the Java Platform (JDDAC) node software, a networked device based on the Java Platform, Micro Edition (Java ME) and on Systronix's JSTIK microcontroller board is implemented, with support for many transducers through Opto 22 hardware. Both the transducers and their data follow IEEE 1451 conventions for self-description, enabling a "plug and play" approach. The JDDAC node device is available on the network as a peer to existing RFID readers. Groovy is integrated into the RFID network controller, providing developers with a simple but powerful scripting facility to control sensing, triggering, and other interactions with the real world. This presentation demonstrates a working system and walks through the Groovy scripts, showing their potential to address RFID customer requirements.
(James Wright, Jim Clarke, Bruce Boyes)
TS-8401 Beyond AJAX: Asynchronous JavaScript ™ Technology and XML Native Processing
AJAX technique enabled Web Application is a new user experience in terms of interactivity, speed, and usability. It significantly reduces the necessity of reloading and re-rendering of entire page by exchanging a small chunk of XML data asynchronously behind the scenes. However, there is a room for improvement in terms of interactivity, usability, and productivity if we combine the native XML processing paradigm with Asynchronous JavaScript™ technology and XML (AJAX) technique. This study articulates how the xfy technology which is the native XML paradigm, and AJAX technique can be fused together to address serious XML application needs in business environments. The talk includes architectural overview, code comparison and walk-through, and several live examples.
()
BOF-0509 Hacking Vex Robotics by Adding a Smart Java™ Technology Brain
The Vex Robotic Design System is like an Erector Set on steroids. It's a system of motors, metal parts, plastic gears, treads, and wheels capable of constructing R/C vehicles weighing several pounds. Autonomous operation is possible but is not the main focus of the system (user memory is only about 32 KBytes, for one thing). But if you consider the Vex platform's usefulness as a mechanical platform, it's a very compelling system. Compared to Legos, it's more expensive, physically larger, harder to assemble, and much more rugged. All it lacks is a really good brain. This presentation describes how the speakers adapt their JCX Java™ technology-based control system to be the "superbrain" for Vex. JCX also enables mixing Lego and Vex motors and sensors, as well as other common robotic sensors. This includes 802.15.4 radio links to Crossbow motes, Sun™ Small Programmable Object Technology (SunSpot), and other wireless sensors.
(James Wright, Bruce Boyes)
BOF-0591 ABCs of Swing Text Components
There are so many things you can do with Swing text components. This session addresses how to use what is in the swing.text package already as well as how to extend functionality when necessary.
(Igor Kushnirskiy)
BOF-0797 Building Transactional Web Services: Combining ACID Transactions and Long-Running Compensations
The emerging world of web services and e-commerce places requirements on application developers to ensure consistency in the presence of failures (machine, network, and so on). Without consistency guarantees, users find it hard to trust services and therefore service providers run the risk of losing business and their reputation. In the traditional world of distributed objects, consistency guarantees are typically provided by transaction systems that have the well-known ACID (atomicity, consistency, isolation, and durability) properties. However, strict ACID semantics require the use of a blocking protocol, so that resources acquired within the scope of such a transaction must remain inaccessible to others until that transaction has completed. In a tightly coupled environment such as a Java™ Platform, Enterprise Edition (Java EE) technology-based intranet, where transactions are typically of short duration, this is not a problem. In the world of web services, where business interactions may span hours or days, however, ACID semantics become too restricting. The web services transaction specifications from IBM, Microsoft, and others set out to provide extended transaction models in which ACID properties can be weakened in a controlled manner, depending on the requirements of the service; these models are often referred to as forward compensation transactions. As such, resources do not need to be reserved for extended periods of time, as long as users and applications can cope with the (hopefully rare) occurrences in which such resources are no longer available when the transaction terminates. In addition, interoperability with existing ACID transaction applications and systems is extremely important: Back-end systems may well continue to use such transactions to maintain internal consistency. Therefore, it is possible for a transaction to glue together "islands of ACID-ity" with non-ACID services--what Gartner terms multimodal transactions. How do application developers actually use these transaction models? How can they be tied into Java EE technology? This presentation describes the issues that lead to the development of web services transactions and then steps through the development of a real-world transactional web services application that uses both ACID transactions and compensation transactions within JBoss. It shows how Java EE technology resources, such as databases and JMS implementations, can be tied into a global web services transaction.
(Kevin Conner, Mark Little)
BOF-0899 The Java™ 3D API and Java Bindings for OpenGL
The Java 3D API provides a set of object-oriented interfaces that support a simple, high-level programming model you can use to build, render, and control the behavior of 3-D objects and visual environments. With the Java 3D API, you can incorporate high-quality, scalable, platform-independent 3-D graphics into Java applications and applets. JSR 231 defines Java technology-based bindings to the OpenGL native 3-D graphics library. JSR 231 implementations enable pure Java applications to incorporate the full spectrum of OpenGL functionality to take advantage of the latest graphics hardware features on a wide range of platforms. This session includes a short presentation followed by an open discussion. The presentation describes the community source projects on java.net and gives a status update on each project. It then discusses the new features in the 1.5 version of the Java 3D API and the initial implementation of JSR 231. We will then give a short presentation on Java Bindings for OpenGL, including a demo, followed by a question and answer session.
(Kevin Rushforth, Chien Yang, Travis Bryson, Kenneth Russell)
BOF-2368 Restructuring a Web Application, Using Spring and Hibernate
Most simple web applications are still developed without major use of the infrastructure packs that are currently available. Several developers use JDBC™ technology and implement most of the web GUI from scratch. This presentation describes the experience in the speaker's company of redeveloping a web application without using any infrastructure packs. The application in this case is a mobile phonebook synchronization server that was developed at the end of 2004 and deployed at a Brazilian carrier. After the original development, there was a request to include new functionalities and restructure the application. There was an option to just continue evolving the current server, but because the code was not well structured, the risk of doing that was high. The final proposal was to develop everything from scratch but with existing infrastructure solutions such as Spring and Hibernate. The session presents some metrics of the code size and performance of the old and new servers and discusses some of the lessons learned. Attendees learn about core functionalities of Spring and Hibernate and see the impact of their use in a real application. This BOF will have a short presentation followed by Q&A session. The presentor will use a laptop to present slides. Attendees will be encouraged to share their experience with similar re-factoring problems.
(Gustavo de Paula, Devendra Tewari)
BOF-0204 Swing Advanced Testing and Debugging
Testing is an important part of programming, but testing of graphical user interfaces has always been problematic. This session discusses common problems with tests for Swing components and gives some recommendations on how to do GUI testing properly. The speaker, who is experienced in various GUI testing techniques, such as using java.awt.Robot for regression testing and using the "golden images" approach, shows how tests are created in Swing and discusses advantages and drawbacks of alternative testing techniques.
(Alexander Potochkin)
BOF-0251 Project GlassFishSM: Where We Are Today and Where We Are Going
It's been about one year since Sun started Project GlassFishSM, an open source application server based on Java™ Platform, Enterprise Edition (Java EE) 5. Since then contributions have been made by Oracle for the Java technology-based persistence code based on Oracle TopLink and also by many individuals who want to make an impact. Currently Project GlassFish is fast approaching its first stable final release. In this session, learn what has been implemented, hear what others have done with the technology, and find out the roadmap for future implementations of the Java EE platform and how you can participate.
(Carla Mott, Amy Roh, Jim Driscoll)
BOF-0289 The Sun Small Programmable Object Technology (Sun SPOT): Java™ Technology-Based Wireless Sensor Networks
The Sun Small Programmable Object Technology (Sun SPOT) is a small wireless sensor that runs a version of Java™ technology called Squawk that is compliant with the Java ME platform. Users of the Sun SPOT and those interested in finding out about the platform are encouraged to come to this session and meet each other. The Sun SPOT platform, developed at Sun Labs, is a small, battery-powered wireless device with an application development environment based on the Java programming language. The Sun SPOT, smaller than a deck of cards, comes equipped with a 32-bit ARM processor and an IEEE 802.15.4 radio for wireless communication. Stackable boards include sensors and actuators such as accelerometers, light detectors, temperature sensors, LEDs, push buttons, and general I/O pins. The devices can be duty-cycled to run for months on a single charge of their rechargeable battery. The small-footprint Java virtual machine, called Squawk, can host multiple applications concurrently and requires no underlying operating system. The full platform includes tools for programming, deploying, configuring, monitoring, and debugging the Sun SPOT network. The session is informally structured but should include several demos and presentations on existing Sun SPOT projects. Those thinking of using the Sun SPOT for specific applications are encouraged to describe their ideas to the group, so it can discuss the suitability of the platform for the application. Attendees will find fruitful contacts and should leave with their questions answered.
(Randall Smith)
BOF-0326 Testing a Persistence Layer Without a Database (Almost)
It is essential to write unit tests for an EJB™ 3/Hibernate/Java™ Data Objects (JDO)-based persistence layer, but such tests can be complex and difficult to write. What's more, the overhead of accessing the database can cause the tests to take an unacceptably long time to run. This session describes unit testing strategies that solve these problems and can be used for test-driven development. It explains easier, yet effective, ways to write unit tests for persistent objects. You learn how to write fast-running tests for the persistence layer that make minimal use of the database. The goal of the BOF is to share testing techniques found to be useful. It begins with a short presentation on some effective testing techniques and concludes with a general roundtable discussion.
(Chris Richardson)
BOF-0420 Best Practices: Getting Comfortable With "ilities"
Thirty years ago, software engineering's Barry Boehm said that quality is a bunch of "ilities." This session looks at improving the quality of Java™ platform client applications in the areas of reliability, usability, understandability, modifiability, testability, portability, and accessibility through the implementation of I18N, online help, accessiblity, undo, SplashScreen, and preferences.
(Roger Brinkley)
BOF-0139 Advanced Layout Techniques
This session describes advanced layout techniques for consistent cross-platform multilingual layout. It summarizes problems you face when finding and implementing a visual design that complies with modern style guides. It also presents goals for layout systems and motivates and explains different concepts and layout approaches. Finally you learn about decent layout systems that help you implement professional design at affordable costs.
(Karsten Lentzsch)
BOF-0220 Test Patterns In Java™ Technology Development
Testing is an important part of software development. Effective testing is a key factor in reducing total cost of maintenance of any application over its lifetime. It reduces the cost and time of development and can increase savings on quality assurance. Knowing when to invest in better design, in postdevelopment quality assurance, in manual tests, or in automatic testing forms a basic difference between successful and unsuccessful software projects in these tough and competitive days. This presentation starts with general motivation and presents automatic tests as a form of functional specification. It then quickly delves deep down into hard-core JUnit test examples showing various forms of regression tests verifying algorithm complexity, memory management, data structure sizes, deadlocks, race condition behavior and tests randomly generating new test cases, simulating user clicks in the UI, API signature tests, and so on. Attendees should know what tests are and that tests are an important and useful part of software development. The presentation demonstrates practical usage of a test framework. You learn techniques, tips, and tricks for testing various aspects of real-world Java™ Platform, Standard Edition (Java SE) applications. The session also gives examples of the savings and improvements that were achieved by increased usage of extensive automatic testing in the development of the NetBeans™ IDE and platform.
(Jesse Glick, Jaroslav Tulach)
BOF-0455 Test Your Java™ EE Platform-Based Application End to End in 20 Minutes -- Really!
Are you and your team wasting weeks and weeks on complex manual testing? DDSteps is a great new open source tool that makes full end-to-end testing of your Java™ Platform, Enterprise Edition (Java EE) application possible. What used to take three weeks of grueling manual testing can now be run with JUnit in just 20 minutes. How? This session shows you! The key to end-to-end testing is handling all the combinations of test scenarios and test data. Often you want to run the same scenario many times, only with different data. With DDSteps, tests are broken down into generic test steps, which are then reused, just varying the input and output data for each run. DDSteps handles all test data in an elegant and consistent way--it sets up your database and provides input data for your test cases and expected output data. How? This presentation tells you! Testing a Java EE application end to end means handling your whole Java EE platform stack. It means driving your web application with a browser, clicking buttons and running JavaScript™ technology. It means setting up your databases in a known state before each test. It means handling Java Message Service (JMS) technology queues and so on. DDSteps brings all of this together and makes best-of-breed open source testing tools available in a consistent and reusable way. How? The session breaks it down for you. DDSteps is 100 percent JUnit-compatible, so it's already integrated with your IDE and your project! You build on your JUnit skills, and you have the full power of Java technology when writing tests. How? Come to this session to see it run! Visit www.ddsteps.org. This BOF will be an in-depth presentation, demos and code showing how to test a Java EE web application using the open-source test-framework DDSteps. Finally: A brain-storming session were you can influence which new features should go in DDSteps.
(Adam Skogman, Björn Granvik)
BOF-0503 Java™ Technology in an Intelligent Swarm of Heterogeneous Lego Robots
This session reports on continuing work on developing Java™ technology for use in university-level robotics. It focuses on the issue of creating cost-effective and easily programmed intelligent robot swarms (n>10). Interesting swarms are composed of heterogeneous robots, but this quickly complicates programming. The presenters previously simplified the heterogeneous programming problem by using I/O tagging and reported on this at the 2005 JavaOneSM conference, in TS-1464. This presentation describes how they have successfully created a swarm of heterogeneous robots, based on Lego mechanical components, sharing a common code base, with a variety of non-Lego sensors.
(Bruce Boyes, Russ Fish, Daniel Fish)
BOF-0609 Project Looking Glass: Meet the Team and the Community
Project Looking Glass (LG3D) is a java.net open source project that explores bringing a richer user experience to the desktop and applications via 3-D windowing and visualization capabilities. This talk quickly recaps the progress made since last year, summarizes the current status, and then demonstrates LG3D applications developed by the LG3D community (this may include granting awards). The last half of the BoF session is dedicated to discussions of LG3D killer applications, LG3D API improvements, and community activity suggestions for this year. The session gives attendees a deeper understanding of the technology and the APIs as well as a chance to talk with team and community members to exchange ideas and suggestions regarding the project.
(Hideya Kawahara, Paul Byrne, Deron Johnson)
BOF-0639 Corporate Cola: Visualizing Your Email
The goal of the IBM Corporate Cola initiative is to create an enterprise-wide repository of semantic information. This session discusses technologies and architectures that are suitable for creating such a repository. It also describes the effort to populate the repository with information extracted from volunteers' Lotus Notes mail files and the scalability challenges this presented. The presentation also looks at the Ontology Manager, a web-based system for registering, discovering, and managing OWL ontologies, which are used to express data in the Corporate Cola system. Finally, the session covers the Corporate Cola Visualizer, a Swing-based navigator that allows you to explore relationships between people and keywords contained in your email file. This BOF will be a presentation and a demo from a laptop and then Q&A.
(Dima Rekesh)
BOF-0684 JSR-277: Java™ Module System
The JSR-277 specification aims to address the classpath hell, JAR hell, and extension hell that have been well known to many Java™ technology-based developers for years. The specification defines a distribution format and a repository for collections of Java code and related resources. It also defines the discovery, loading, and integrity mechanisms at runtime. For more details, check out http://www.jcp.org/en/jsr/detail?id=277 JSR 277 is targeted to be delivered as a component of Java Platform, Standard Edition (Java SE) 7.0 ("Dolphin"). This presentation goes over the scope of JSR-277, including the distribution format, versioning scheme, repository, runtime support, and tools support. It also provides an update on the latest specification development. This BOF will be a presentation followed by a Q&A session
(Stanley Ho, Michal Cierniak)
BOF-0895 What Is Happening With New I/O
This session covers what is happening with the New I/O APIs. JSR 203 (More New I/O APIs for the Java™ Platform) is working on a second phase of New I/O to add APIs for file system access and more I/O capabilities. In the session, members of the JSR 203 group give a brief presentation on this JSR and then open the floor to questions and discussion.
(Alan Bateman)
BOF-2116 Project GlassFishSM: an Easy Web Application Development Java™ Server
Project GlassFishSM is the new Sun easy web application development server. This presentation looks back at the goals of defining Minnow and demonstrates how easy is to develop web applications, from a simple servlet to a more complex JavaServer™ Faces (JSF) application.
(Jean-Francois Arcand)
BOF-2477 Secure Interoperable Webservices Using XML Web Services Security 3.0
Web services have changed the way business is carried out. They have enabled organizations to take advantage of each others' core competencies and provide solutions to their customers at a very low cost. Doing business online requires data to be exchanged, and in the web services world, data is exchanged in the form of XML. It becomes quite important to protect the confidentiality and integrity of the data being exchanged. The XML web services security implementation that is delivered as part of various Sun products, including Java™ Web Services Developer Pack and Sun Java Application Server, provides a framework for enabling end-to-end message-level security for web services applications. This framework, based on security specifications from various standards organizations, such as OASIS WSS, W3C, Java Community ProcessSM ("JCPSM"), and WS-I, reduces the complexity involved in creating interoperable secure messages, through ease-of-use features. XML Web Services Security 3.0 EA provides support for WS-Trust, WS-SecureConversation, and WS-Security Policy, enabling customers to define security polices that can be attached to a service. This session demonstrates the interoperability of Sun and Microsoft implementations of web services. Attendees learn how to develop and configure security in their web services to achieve interoperability with Windows Communication Framework. The speakers interact with developers and obtain feedback.
(Venugopal K)
BOF-2496 Building Development Tools on Top of the NetBeans™ IDE
The presenters in this session used the NetBeans™ IDE as the basis for building a new development environment for the Java™ Platform, Micro Edition (Java ME) CDC Platform. They share their experiences with the NetBeans platform in and demonstrate a real application built on top of the NetBeans 6 platform, which is used for developing CDC applications, with all its features that were developed on top of the NetBeans platform.
(Petr Hrebejk, E-ming Saung, Jan Becicka)
BOF-2506 A Close Look at the Sun Java™ Wireless Toolkit Support for New JSRs
The Mobile Service Architecture JSR (JSR 248) is targeted at defining a single development platform for MIDP developers and driving fragmentation down. Much like JSR 185 (Java™ Technology for the Wireless Industry--JTWI), it groups together numerous JSRs and adds clarifications where necessary. Come to this session to see a thorough and detailed walk-through of all the new tools the next version of the Sun Java Wireless Toolkit will include to help developers build MIDlets for all these JSRs. The presentation discusses each component JSR of MSA and features all of its corresponding tools. The BOF will start off with some slides giving an overall view of the new JSRs that are supported in the latest release of the Sun Java Wireless Toolkit. The main focus of the BOF will be a deep dive and step by step walk over all the tools that are available within the Sun Java Wireless Toolkit to aid developers to build compelling Java ME applications.
(Ariel Levin, Shlomo Swidler, Uri Katz)
BOF-2526 Performance Enhancements in JAX-WS
This session focuses on the improvements in Java™ API for XML-Based Web Services (JAX-WS)/Java Architecture for XML Binding (JAXB) implementation and its performance improvements.
(Vivek Pandey, Kohsuke Kawaguchi, Jitendra Kotamraju)
BOF-2704 Java™ ME Authoring for the Real World
Any professional who develops for mobile devices is facing challenges to gain the maximum performance and functionality from each device. The device utilization effort brings a new kind of development issue generally called device fragmentation. Typical mobile applications must be ported, optimized, tested, distributed, and sustained, for numerous different devices to succeed on the market. This presentation addresses a scalable Java™ Platform, Micro Edition (Java ME) platform fragmented development and porting solution from Sun based on the NetBeans™ IDE. The session also includes application optimization examples for RIM Blackberry devices. Attendees see a real life cycle demonstration of a typical Java ME platform project with several alternative paths, scalability, and freedom of choice. You learn about Sun development tool assets for mobile developers as well for the whole unconstrained mobile application business. The BOF will start with a short introduction of the topic and related issues followed by several solution demonstrations. Open discussion about your Java ME authoring issues is expected at the second part of the assigned time slot.
(Adam Sotona, Ian McDonald)
BOF-2832 Portlet Best Practices
The Portlet specification allows people to create portable components for portals. It offers an API that allows developers to create personalized content for end users. This session aims to teach about how to develop a portlet that is a good citizen of a portal and how to leverage the Portlet API at its best. This BOF will examine a set of use cases during a medium sized presentation. It will be followed by a a discussion where the attendees can propose their use case and discuss the presented use cases.
(Julien Viet)
BOF-2934 Writing Efficient Java™ Technology Code for Jazelle
This BOF session details the techniques needed to write Java™ Platform, Micro Edition (Java ME) applications that run well on the ARM Jazelle hardware acceration technology. It also illustrates how you can preserve the readability and structure of your Java application while still taking advantage of good programming techniques for speed. Jazelle is fast becoming the standard in the majority of phones worldwide and is used with VMs from many sources, including Sun's CLDC HI implementation. This is therefore an essential session you must attend if you are involved in mobile Java application writing. This BOF will have a presentation with slides, and then questions and answers, and possibly a demo.
(Rodolph Perfetta, Andrew Booker)
BOF-9450 Server-side Scripting in the Java™ Platform
Scripting is one of the most exciting topics in programming these days. Developers want to write fewer lines of code and take advantage of the dynamic nature of scripting languages to bind components together. Hence, the popularity of Javascript, Ruby, Python and other scripting languages. In this BOF, we will discuss a java.net project which focuses on making scripting languages an integral part of the server environment.
(Roberto Chinnici, Ken Paulsen)
BOF-0008 Infrastructure for Diagnostics and Failure Injection of Distributed Systems
At a high level, enterprise application servers are designed to configure resources and handle failures in their subsystems. It is critical for a highly available application server to make sure it has the right configuration and to have a methodology to prove its ability for failure scenarios. If these two aspects are taken care of, customers can have easy development/deployment activity and a solid production environment. This presentation discusses how to take care of these aspects. Diagnosing the application server configuration is the primary thing to do before starting to debug application failures. This can save a lot of time during the actual debugging. Also, you can be sure about the right configuration before starting debug activity. A simple example of diagnostics is to use the JDBC™ API connection pool for actually making a connection to the database intended. If you can make the connection, the diagnostics pass. Diagnostics can be done to check instance availability, Java™ Message Service (JMS) broker configuration, high-availability settings, verification of deployment, and so on. Now let's think of an infrastructure that can help us in doing all these diagnostics. The infrastructure or the tool for verification of the server configuration can be built with application-level expertise, because the configuration will be experimented on in the same way that an application will be. Because the diagnostics are run before debugging, the developers can focus on the real issues of the application instead of the simple errors in the configuration. This will be efficient for the customers in their development/deployment cycle. Once customers complete the development/deployment phase, the real challenge for application servers begins. In real time, application servers might crash and machines can be down or might lose network connections. The enterprise application server is designed to handle these scenarios in a seamless way that is transparent to the end user. How do we make sure the failure scenarios really work? Suppose a scenario is not working and knowing about this in real time is too costly. There is a need for simulating the failure scenarios. This necessitates a distributed test environment with a facility for failure injections. The tool can provide a programmatic interface to configure, administer, test, and inject failures into the system under test. A tester can design a scenario to schedule and synchronize the desired events in multiple areas within the system under test. Failures can be simulated for killing processes, network failures, and the like.
(Gopal Jorapur)
BOF-0367 JDBC™ Technology-Based Metadata Recipes
Database metadata is a key in developing enterprise web-based applications, such as SQL adapters and connectors. With database metadata, you can browse database catalogs, schemas, tables, views, and stored procedures. Metadata is a highly useful feature of JDBC™ technology, but its format is not suitable for web-based applications (web browsers can't use JDBC's DatabaseMetaData and ResultSetMetaData directly). This presentation provides recipes that present metadata as an XML/HTML format. Using JDBC and Java servlets, the presentation shows that metadata is vendor-dependent. Programmers have to be very careful in using metadata for performance reasons. The session shows how to get the following for web-based applications: 1. Catalogs/schemas 2. Tables/views/stored procedures 3. Table types 4. Stored procedures signatures 5. Table columns and types 6. Table PKs and FKs Examples use MySQL and Oracle databases. The presentation is a summary of the speaker's recent book on JDBC metadata: http://apress.com/book/bookDisplay.html?bID=10098. This BOF is a short presentation followed by a Q&A session. The major point of this BOF is how to use JDBC metadata in homogenous and heterogeneous database environments.
(Mahmoud Parsian)
BOF-0461 The Spring Rich Client Project: Effective Desktop Application Architecture
The Java™ Foundation Classes (JFC/Swing) API delivers a mature toolkit for desktop application developers to build on. With a strong base in place, the focus is now turning toward ways to improve developer productivity. Developers seek effective desktop application architectures atop JFC/Swing that allow them to focus on creating business applications that look professional and stay maintainable. This session introduces the Spring Rich Client Project (Spring Rich) as an answer to that need. In particular, the session highlights Spring Rich's capabilities as a desktop application framework, including its integration with core Spring for overall application configuration and layering. It also covers the design strategies behind Spring Rich's solutions to common desktop application problems, in areas such as "as you type" control data binding and validation, metadata-driven control creation, centralized GUI commands, form building, and security and remote access. The session showcases the value of using a lightweight container within a JSE/Swing environment, contrasting it with traditional Swing programming models. It also discusses how Spring Rich integrates with several established projects in the desktop Java technology space, including JDNC, JGoodies, Glazed Lists, and JIDE. You learn the benefits of using a lightweight, test-driven approach to building JFC/Swing API-based applications. You also hear about the key issues facing developers of nontrivial desktop applications and how Spring Rich addresses them. You'll leave with a grasp of how to use the JFC/Swing API in a productive fashion. An informal gathering for the Spring Rich Client community. This session will provide an opportunity for developers to discuss desktop development issues they are facing and relate how Spring Rich Client has helped address them. In addition, we will use this as an opportunity for the community to discuss and prioritize the product road map going forward.
(Keith Donald)
BOF-0492 The French Online Tax System: Mission-Critical Lightweight Java™ EE Technology
A lot has been said about how dependency injection, AOP, and annotations will change the way we build enterprise applications. This technical case study shows how a mission-critical application handling up to 25,000 tax declarations and digital signatures per hour used these innovations to provide tax services to 34 million French taxpayers well before the EJB™ 3 specification standard was finalized. The French web-based tax declaration, with its core built in only three months, relies on Hibernate and Spring to extend the core services provided by the Java™ Platform, Enterprise Edition (Java EE). Throughout this case study, you learn how these frameworks have played a significant role in improving development productivity and software quality. Starting from the difficulties faced with the first generation of the online tax system, attendees learn how modern "lightweight" technologies can be applied to building mission-critical applications that tackle those difficulties. Through a series of real-world code samples and design diagrams, the presentation introduces the key choices that have made this project a success. Attendees will walk away from this session with a good dose of confidence to apply these choices, many of them now standardized as part of the EJB 3 specification, to their own project. Attendees should have a good understanding of Java EE technology. A basic understanding of AOP and dependency injection is a plus.
(Thomas Van de Velde)
BOF-0534 Dealing With Deadlocks in Java™ EE Platform-Based Applications
The complexity of Java™ Platform, Enterprise Edition (Java EE) applications is continually increasing, as is the abstraction level between developers' code and the systems on which the code runs. At the same time, hardware and software improvements enable more things to run concurrently. These factors increase the probability of application deadlocks and complicate the process of finding and fixing them. This session discusses a few broad patterns of deadlocks, some approaches to help identify them, and some rules of thumb for fixing or dealing with them. It also covers a few changes container vendors can make that simplify finding, fixing, and coping with deadlocks. The presentation addresses database deadlocks and a few patterns of cross-resource deadlocks (database locks crossed with Virtual Machine for the Java platform [JVM™] locks, for example) to which Java EE applications are particularly susceptible. The speakers wiil present slides illustrating some real-world deadlock scenarios and walking through some of the diagnosis steps. This will be followed by a short Q&A session.
(Petko Chobantonov)
BOF-0554 Dynamic Scripting Languages BOF
Gilad Bracha at Sun is working on extensions to the Virtual Machine for the Java™ platform (JVM™) to facilitate dynamic scripting languages on the Java platform. At the same time, JSR 223 (scripting languages and Java technology) is near maturity. This BOF session brings together leaders, users, and critics from the Jython, Groovy, PHP, and Ruby camps for an exchange of ideas to develop a common understanding of the state of the art and practical examples of using dynamic scripting languages to solve problems.
(Frank Cohen)
BOF-0678 Meet the "Java™ Posse"
The "Java™ Posse" is a weekly podcast with news and interviews related to the Java world. In this Birds of a Feather session, you meet the three hosts of the show as they record a situation report from the JavaOneSM conference.
(Tor Norbye)
BOF-0692 Advanced Audio and Graphics Development With the Java™ SE 6 Platform
This session describes how to create cutting-edge 2-D/3-D accelerated graphics applications, games, and music software with real-time synthesized audio, using the latest features of the Java™ Platform, Standard Edition (Java SE) 6. Example material covers the BSD open source Typhon framework, Scream audio engine, and Auriga3D game engine, which enables leading-edge development of multimedia applications. EGR Software is using these technologies to develop modern 3-D games with real-time procedural interactive audio, and the technology is ready to leverage in any performance-sensitive GUI application. Typhon provides an open source uniform platform for real-time software development that extends the Java SE 6 platform on Microsoft Windows and soon Linux and Mac OS X. Scream Lite is a BSD open source API for utilizing the SuperCollider3 DSP audio engine. Scream is an extended engine that features support for the emerging Interactive XMF interactive audio standard, with additional support for real-time synthesis and procedural audio. Auriga3D is a BSD open source game engine that features a full production pipeline based on Quake3 built as a Typhon component and ready to be extended by third-party game developers. Attendees will come away with an understanding of the modern graphics, audio technology, and the latest performance enhancements available to Java SE 6 platform developers. Content includes recent research directions and demonstrations, with source code available for all topics discussed. Java 2D API/JOGL integration is covered, along with Sun™ OpenGL® for Solaris™ 2.0 functionality such as the frame buffer object extension and pixel buffer objects with examples of how this technology enables high-performance 2D/3D OpenGL-enabled GUIs. The session includes a full-range six-channel sound system for demoing the Scream interactive audio engine and ambisonic spatialization software. Check the outline and downloadable demos for up-to-the-minute presentation details, because this session offers the latest knowledge from the Java technology-based gaming community: http://research.egrsoftware.com/conferences/2006/javaone/ This BOF will include several demo presentations of advanced applications of Java 2D, OpenGL, SuperCollider3 and other technologies for GUI, audio, and game development interspersed with technical design discussion followed by a Q&A session. Mike Leahy will provide a 6 speaker surround sound array in addition to projected video content.
(Michael Leahy)
BOF-0759 Creating a Digital Ecosystem: Service-Oriented Architectures With Distributed Evolutionary Computing
This session presents a novel optimization technique inspired by natural ecosystems, in which the optimization works at two levels: a first optimization is a migration of services that are distributed in a decentralized peer-to-peer network operating continuously in time; this process feeds a second optimization, based on a genetic algorithm that operates locally on single peers and is aimed at finding solutions satisfying locally relevant constraints. Through this twofold process, the local search is sped up and yields better local optima, because the distributed optimization already provides a good sampling of the search space by making use of computations already performed in other peers with similar constraints. This new distributed optimization architecture, called a Digital Ecosystem, is created by extension of a service-oriented architecture (SOA) with Distributed Evolutionary Computing (DEC). The Digital Business Ecosystem (DBE), an EU Framework VI project, aims to be a next-generation information and communications technology. In essence, the DBE will be an Internet-based environment in which businesses will be able to interact with each other in very effective and efficient ways. Imperial College London has created a prototype Digital Ecosystem, called the Evolutionary Environment (EvE), constructed using the EC system written in Java™ (ECJ) library, which extends the SOA of the DBE, the Execution Environment (ExE). The EvE Digital Ecosystem will contain services specially supported by application software written to take advantage of the ecosystem. Because of the functionality of the ecosystem, these services will recombine and evolve over time, constantly seeking to improve their effectiveness for the user base. This will be achieved through DEC. Individuals within the Digital Ecosystem will be combinations of "services" (applications), created using evolutionary optimization, in response to business user requests for applications. These individuals will migrate through the Digital Ecosystem and adapt to find "niches" where they are useful in fulfilling other business user requests for applications. http://www.digitalecosystem.org A presentation on creating a Digital Ecosystem, which is created by extending a Service Oriented Architecture with Distributed Evolutionary Computing, and its application in the Digital Business Ecosystem project. The DBE is an EU Framework VI project, which aims to be a next generation information and communications technology for end-to-end B2B interaction. Any questions will then be answered, which we hope will lead to an open discussion regarding the technology and its future development.
(Gerard Briscoe, Maria Chli)
BOF-2170 Stronger Than AJAX: Swing in a Server-Side Web Architecture
bof-2170 Financial guarantees are an important business at Siemens Financial Services. Five thousand professionals located around the globe are handling these guarantees. The Siemens GREAT project (Guarantee REquest and AccounTing) has delivered an application that supports these professionals in an ideal way by combining the advantages of a Swing-based rich user interface with the advantages of a web application deployed as a servlet. The application shows that a rich Internet application (RIA) based on Swing typically has industrial-strength characteristics superior to those of an Asynchronous JavaScript™ and XML (AJAX) solution. This presentation includes demos that show both the GREAT application and how Swing-based RIAs can be developed. Rich-client functions are essential for the experts working in the guarantee processing centers of Siemens Financial Services. However, there are a few issues that make it impossible to deliver a conventional multimegabyte rich fat client in a global organization such as Siemens. The installed base of workstations and operating systems around the globe is too diverse, and network bandwidth to remote locations is limited. Using Swing and Java™ Web Start goes a long way toward resolving these issues, but it was not sufficient for GREAT. It was necessary to ensure that GREAT worked with several different JRE releases on the client and to minimize both the size and frequency of client downloads. After evaluating several options, the GREAT team decided on an approach that uses on the client an application-independent presentation engine that supports multiple JRE releases and needs to be installed only once, thereby resolving both the version issue and the distribution issue. This approach uses server-side proxies to the Swing objects, leveraging Swing in a web architecture. Developers create their UIs with the server-side proxy classes that essentially offer the same API as Swing, as the presentation shows in code samples. At runtime, the server-side proxies model the UI while the presentation engine displays it, applying an MVC design. Both the programming model and the runtime architecture are server-side, and the execution environments are Java technology-based on both sides. Compared to AJAX, such a pervasive Java technology-based approach has substantially superior industrial-strength characteristics: maintainability, reliability, availability, scalability, performance, and security are often a challenge for AJAX programs, because they have to rely on a scripting language and must work in a heterogeneous set of execution environments. The session includes a detailed account of how the pervasive Java technology approach taken in the GREAT project differs from AJAX and why the resulting application has superior industrial-strength characteristics.
(Bruno Schaeffer)
BOF-2224 What You Need to Know About Schema Design Patterns and Java™ Technology
What do Bologna, Salami, and Garden of Eden have in common? No these are not sandwiches; they are some of the common design patterns used in XML Schema. Almost all applications, not just web services, interact with XML documents defined in terms of XML Schema. XML Schema can be created by use of design patterns that affect usability, performance, and compatibility. Thus, selecting the appropriate design pattern is essential. This session provides an in-depth, pragmatic look at common schema design patterns and how design pattern selection affects interaction with various Java™ technologies. This session presents a comparison matrix, including aspects such as validation performance (Java API for XML Processing [JAXP] in both Java 2 Platform, Standard Edition [J2SE™] and Java 2 Platform, Micro Edition [J2ME™]), compatibility with data binding technologies (Java Architecture for XML Binding [JAXB] and XMLBeans), and IDE support. This BOF have a short presentation followed by Q&A.
(Ayub Khan, Todd Fast, Chris Webster, Roderico Cruz)
BOF-2351 Richly Thin OSS User Interfaces via OSS/J and JavaServer™ Faces Technology
This session describes the resources currently available for creating thin, rich-client-like ("richly thin") Operations Support System (OSS) user interfaces through the use of OSS through Java™ (OSS/J) and JavaServer™ Faces (JSF) technology. It explains the current state of advancements in OSS/J (including its new discovery capabilities), the approaches to mapping an OSS/J in-memory model to graphic representations and on topological and georeferenced OSS/J representations. It also describes the state of the art in JSF user interface controls. The session then compares the traditional user interface desktop client with what is available with the richly thin client. An OSS/J discovery demo illustrates these concepts and the constructs behind them. This Birds-of-a-Feather session requires familiarity with JSF and basic understanding of Swing and OSS/J. The session will be carried in a slide presentation format with demos throughout its length. Attendees will have some time at the end of the presentation for Question-and-Answer.
(Cleo Barretto, Eduardo Abe)
BOF-2403 3G Americas' Java™ Technologies Roadmap for Rollout at Major North America Carriers in 2006
The 3G Americas Java™ technology subgroup continues to focus on the adoption of Java technologies for next-generation wireless technologies within the Americas. The subgroup consists of operators and manufacturers and includes four core GSM carriers: Cingular Wireless, T-Mobile USA, Rogers Wireless, and Telcel, as well as technology providers such as Sun. The continuing goals of this subgroup are to: 1. Promote the adoption of the Java platform as a leading platform for delivering mobile data services to customers in the Americas. 2. Ensure that all the executives who make decisions within the carrier members clearly understand the value and benefits associated with adopting Java technology 3. Provide technical recommendations in regard to the Java Platform, Micro Edition (Java ME) platform that all Americas-based wireless carriers can evaluate to ensure interoperability. This BOF will consist of a short slide presentation from a laptop projected on a screen. The presentation will be followed by comments from panelists with plenty of time for Q and A from the audience.
(Chris Pearson)
BOF-2428 Designing MIDlets for Multiexecution Devices
There are now some MIDP implementations supporting the execution of more than one MIDlet concurrently, and this seems to be the path forward. The implications of this execution model are not necessarily obvious to MIDlet developers, and the goal of this BOF session is to introduce the concept of multiple-MIDlet execution and to describe how developers can write an application that takes advantage of this feature while avoiding its pitfalls. There is ample time for interactive discussion of the topic, with audience participation. This BOF will being with a short presentation on the problem- and opportunity-space, followed by discussion.
(Ken Walker, David Oliver)
BOF-2794 Building Multiuser Tools for Process Improvement, Using the Eclipse Rich Client Platform
Scalable, performing, and reliable multiuser tools need an architecture that is coherent and simple to develop to. The Eclipse Rich Client Platform (RCP) provides an excellent foundation for interaction with a single user. There are also many plug-ins to the framework to integrate the workbench with version control systems (VCSs) and other layers of infrastructure. This presentation considers the advantages and some pitfalls of developing on the RCP and options for integrating with a wider network of users and other platforms, as is required for Ivis' process improvement and project management toolset, xProcess. Issues addressed include: • User interface design with RCP • Options for integration with server-side data, such as EJB™ 3.0, Java™ Data Objetcs, DAO, web services, or VCS • Needs of disconnected users • Interoperability with .NET and other platforms • Merging concurrent changes • Modeling processes and workflow in UML and supporting subsequent projects This BOF will be a combination of presentation and demonstration. During the presentation we will demonstrate the capabilities of the xProcess architecture, focusing on concurrent and disconnected usage, by using 2 laptops - hopefully projected on to 2 screens, provided these are available - to simulate real life scenarios. Questions at any time during the BOF will be encouraged.
(Paul Kuzan)
BOF-4886 Eclipse Tooling for Java™ Technology-Based Annotations
With the adoption of JSR 175, metadata in the form of Java™ technology-based annotations became a standard part of the Java language. Metadata is the centerpiece of several standard and emerging Java technologies, such as web services (JSR 181), the Enterprise JavaBeans™ (EJB™) 3.0 specification (JSR 220), and Apache Beehive (JSR 250). Metadata definitions can be very complex; to make them useful, IDEs need to provide tooling to make coding with them manageable. This session summarizes and demonstrates new Eclipse features that help developers edit code that contains annotations--capabilities that are currently available for download at an Eclipse.org update site and others, planned for the future, that exist now in prototype form. Come meet members of the Eclipse Annotation Processing development team and talk to them about the current and future state of metadata tooling in Eclipse.
(Tim Hanson, Jess Garms, Gary Horen)
BOF-7995 What's Next for Sun™ Grid?
Sun™ Grid has recently been launched to provide massive compute power as a utility service to companies and individuals who do not want to own and manage their own data center. It is initially targeted for self standing CPU intensive HPC style applications, but it naturally raises the question of what next? What other sorts of application computing services would customers find valuable in a utility model, where they can just access it, use what they need, and pay as they go? What tools and technological elements should be involved? This BOF will specifically explore ways in which the Sun Grid Compute Utility might evolve to support more interactive, long running usage scenarios such as Composite Applications (SOA, Mash-ups, etc.) and Software as a Service (SaaS). For the Sun Grid to support these kind of services, new mechanisms must be developed to manage the virtualized resources in efficient and secure ways. This BOF is designed to be a highly interactive session with a panel of people from different organizations within Sun, including Sun Grid Engineering, Sun N1 Grid Engine Engineering, Sun's CTO Office, and Sun Client Solutions.
(Daniel Templeton, Dan Hushon, Michael Wheaton)

Wednesday

9:45 - 11:15
11:00 - 12:00
11:30 - 13:00
12:15 - 13:15
13:15 - 14:30
13:30 - 14:30
14:45 - 15:45
16:00 - 17:00
19:30 - 20:20
20:30 - 21:20
21:30 - 22:20
22:30 - 23:20
TS-1168 Performance Through Parallelism: Java HotSpot™ Virtual Machine Garbage Collection Improvements
This session covers recent improvements in garbage collection in the Java HotSpot™ virtual machine, with a particular focus on parallelism. It examines the parallel compacting collector, new in the JDK™ 6 release, and the concurrent mark sweep collector in depth, including a visual demonstration of the effects of parallelism (or lack thereof) on performance. It also presents future directions in garbage collection. Understanding the details of garbage collection can help Java™ technology developers make informed choices when deploying applications as well as answer the perennial question "Why does GC take so long?"
(Antonios Printezis)
TS-1188 The Continuing Adventures of Java™ Puzzlers: Tiger Traps
Josh Bloch and Neal Gafter present eight more programming puzzles for your entertainment and enlightenment. An entirely different set of puzzles from those presented in previous years, this year's talk focuses on features introduced in the Java™ 2 Platform, Standard Edition 5.0 (J2SE™ 5.0)--"Tiger"--release. The game show format keeps you on your toes, and the puzzles teach you about the subtleties of the Java programming language and its core libraries. Anyone with a working knowledge of the language will be able to understand the puzzles, but even the most seasoned veterans will be challenged. The lessons you take from this talk are directly applicable to your programs and designs. Some of the jokes may even be funny.
(Joshua Bloch, Neal Gafter)
TS-1194 Java™ API for XML Web Services (JAX-WS) 2.0
Java™ API for XML Web Services (JAX-WS) 2.0 takes web services support in the Java platform to the next level. In this session, the specification leads for this technology guide you through a tour of the new features in JAX-WS 2.0, showing how they will affect the applications you write. A successor to Java API for XML-based RPC (JAX-RPC) 1.1, a standard component in the Java 2 Platform, Enterprise Edition (J2EE™) 1.4, JAX-WS 2.0 expands support for web services development, by adding new features such as asynchronous clients; protocol and transport independence; messaging; REST-style web services; and web services hosted on Java Platform, Standard Edition. New ease-of-development features make implementing web services significantly easier than before. Working in conjunction with Java Architecture for XML Binding (JAXB) 2.0, JAX-WS 2.0 provides complete support for document-oriented web services and the XML Schema standard. JAX-WS 2.0 also includes support for the latest web services standards from the World Wide Web Consortium, namely SOAP 1.2 and MTOM/XOP.
(Roberto Chinnici, Doug Kohlert)
TS-1591 Model-Based Performance Management Techniques for Modern Applications
Applications have evolved into complex, multi- system on-line behemoths that can be difficult to understand. The set of servers and services engaged to satisfy a user demand is dynamic, sometimes hard to predict, probably unknown to development, and certainly hard to monitor. While the underlying resources have evolved to provide better data, the dynamic nature of the application requires more than just raw data. Performance management and monitoring in this kind of environment requires new techniques. This session will introduce a model-based approach for understanding the performance of an application. Through the creation of models, an analyst is able to keep context and topology information along with raw metrics. Monitoring and performance management done in the context of a model can, in turn, feed back into the model as additional information. Finally, models can be combined in ways that make sense to the application architect, providing slices of performance management information that can truly help diagnose problems. Attendees will understand how the creation of models can help them understand the performance of their application.
(Geoff Vona)
TS-3301 Using NetBeans™ Mobility Pack to Develop JSR 226 Applications
The Java™ Platform, Micro Edition (Java ME) CLDC MSA platform (JSR 248) offers a wide variety of features and capabilities that require skills from many disciplines. Tools are needed to help professionals from different disciplines. The JSR 226 API offers outstanding support for rich, interactive and animated graphics. However, leveraging that APIs to its full potential requires not only programming skills, which Java technology developers have, but also artistic or animator skills, which these developers do not always have. Graphic art skills or animator talents are more commonly found in people who are not Java technology developers, and who are more used to graphics authoring packages than to API development tools. In the rich, animated and interactive 2D space, the Scalable Vector Graphics (SVG) format bridges the gap between developers and graphic artists. Graphic artists can use tools which can export SVG graphics and animations. These resources can then be loaded, manipulated and rendered on the Java platform by developers using the JSR 226 API. This session discusses how the combination of Java technology-based code and SVG content enables richer, more dynamic and animated applications and shows the role of SVG markup, Java technology API, graphics authoring tools and the NetBeans™ Mobility Pack development tool. The session provides several examples of developing applications using SVG components including rendering, animation and interactivity. For each example, the session shows how the work from graphic artists can be imported into NetBeans software Mobility pack, how the graphics and animations can be inspected by the developer and bound to Java technology code. The session shows multiple code examples of the JSR 226 API and show how to run these examples in the Sun Java™ Wireless Toolkit.
(Vincent Hardy, Petr Suchomel, Jerry Evans)
TS-3608 The SOA Programming Model
This session discusses how the Service Component Architecture (SCA) and Service Data Objects (SDO) form the basis of a cross-language and cross-technology representation of service components and the data exchanged between these components for SOA-based applications. The emphasis in SCA and SDO is on enabling the loose coupling of heterogenerous service implementations that can be assembled and composed in a flexible manner to maximize reuse. Java™ technology represents an important implementation language for this model of application composition, and the presentation goes on to describe a potential expression of the SCA and SDO specifications in the Java language.
()
TS-3690 Handwriting Recognition in Java™ Technology
This session covers handwriting or gesture recognition in Java™ technology-based applications. It starts by explaining the underlying theory of recognition using a Hidden Markov Model (HMM) and gives an example designed with Java technology. It discusses many novel applications of this technology, such as math expression and shape recognition. Finally, it gives suggestions on how to incorporate recognition into an existing Swing-based product. Additional topics include fast lookup in a large recognition database, using Java Native Interface (JNI) to interface with native recognizers (such as Microsoft's excellent text recognizer for tablet PCs).
()
TS-4160 Create, Test, and Consume Web Services With the Eclipse Web Tools Platform
Web services allow communication between heterogeneous systems and are among the key technologies underpinning service-oriented architecture (SOA). Web services comprise several specifications, including XML, WSDL, and SOAP. These specifications and their use in implementing Java™ technology-based web services are often a source of confusion for developers unfamiliar with the technology. The Eclipse Web Tools Platform (WTP) project adds web services tools to the Eclipse IDE that simplify creating, testing, and consuming interoperable Java technology-based web services, enabling developers to quickly see results. In this introductory session, attendees learn about the technologies that constitute Java technology-based web services. They are shown how to use Eclipse WTP to create, test, and consume Web services, through a series of live demonstrations. The presentation is aimed at Java technology developers new to web services development and those interested in Eclipse's web services tooling.
(Jeffrey Liu)
TS-4255 MHP/OCAP iTV Applications in a Nutshell
This tutorial aims to explain how to develop interactive TV applications compliant with MHP or OCAP standards. It includes a lot of source examples and is illustrated by use of a set-top-box simulator plugged into the NetBeans™ IDE or Eclipse environment. It concludes with a list of tips for compelling development.
()
TS-4855 Swing Threading 101: An Introduction to the Event Dispatch Thread
Threading is a core concept that is always a puzzle to beginning Swing developers. This is probably because nothing in the API forces you to actually consider how threading affects your applications. As an application develops, threads are introduced to handle varying issues. If this is not done properly, the threads themselves create problems. This presentation explains the threading model of Swing. Then it discusses the structured threading solutions of SwingWorker, Foxtrot, and Spin. Finally, it covers how to detect incorrect thread usage in Swing with a custom repaint manager.
(Scott Delap, Scott Gelb)
LAB-4335 Developing Interoperable Next Generation Web Services with Project GlassfishSM, Netbeans™ IDE & Java™ WSDP
As part of this hands-on lab you would learn to: - Develop next generation web services with Project GlassfishSM ( Open Source Java EE 5 Application Server ), Netbeans™ IDE & Java™ WSDP - Migrate from using Java API for XML-based RPC (JAX-RPC) to Java API for XML-Based Web Services (JAX-WS). - Develop asynchronous webservices using JAX-WS - Build webservices clients using Java Platform, Standard Edition (Java SE) 6 "Mustang". - Simplify the development of web services using Netbeans IDE - Use Glassfish as the container to deploy robust, reliable web services - Interoperate with .NET, specifically by using the different WS-standards like WS-Addressing, WS-Trust, WS-Security,WS-SecurityPolicy - Develop clients to REST-based consumer webservices using JAX-WS & Java Architecture for XML Binding (JAXB) - Use Java WSDP to extend the functionality of Glassfish
(Martin Grebac)
TS-3376 Java™ Technology Techniques for Developing AJAX Applications
Asynchronous JavaScript™ Technology and XML (AJAX) is all the rage, but if you are new to it, be warned: AJAX projects can quickly degenerate into a nightmare of spaghetti script. Large JavaScript technology code bases are often hard to write, read, test, and debug--not to mention the complexity of efficiently supporting multiple browsers. As big fans of Java™ technology, some people at Google have begun trying to wrangle AJAX coding into a lightweight, reusable Java technology framework. In the process, they've also made some progress in the areas of code reuse, multibrowser support, debugging, and testing AJAX applications. In this session, they demonstrate the framework and these techniques, which might provide some food for thought for Java technology practitioners now facing the uphill battle of becoming JavaScript language experts too.
()
TS-3615 Expanded Capabilities for Mobile Development with JSR-209
The Advanced GUI APIs present a new level of capability and flexibility for developers, operators and OEMs in the wireless space. Anyone who has used Java™ technology on the desktop, (i.e. almost all Java developers) has some familiarity with Swing and Java™ 2D. Bringing these features into the Java Platform, Micro Edition (Java ME) CDC wireless handset enables a number of key productivity features: - More compelling UI development due to advanced graphics features - Access to a large existing pool of Swing developers - Code portability from the Desktop to the mobile device: no need to re-write applications just because screen real estate and MMI are different - Deep UI customizations enabled by Swing - deeper and easier than competing solutions - Benefits of having L&F separated from application logic and defined independently of application components The session will include code snippets and demonstrations to show use of different L&F. We will show the code running under the Sun RI emulator environment and on a SavaJe handset. Demonstrate that things like menu bar can be presented in very different ways without affecting application code.
(Nandini Ramani)
TS-3625 Scaling the Java™ Environment in Four Dimensions
The Java™ application environment has a rich set of tools for doing distributed computing, enabling applications to be scaled over the workspace, enterprise, and web levels. However, this enables scaling over only three dimensions; scaling over the fourth dimension, time, has only recently started to be addressed in this environment. The presenters are currently working on a Java technology-based environment system for long-term medical sensing, in which the information gathered must be kept available for the lifetime of the patient being monitored; the estimate of a data life of up to 80 years means that scaling over time is one of the most daunting tasks in the system. One of the main challenges faced in scaling over time has to do with referring to objects. Current reference mechanisms make use of objects that contain a reference to the location of the object; such references do not scale over time when the location of the object is changed, either because of the retirement of the machine on which the object originally existed or because of other changes in the network. When longer-term references are needed, the common approach is to introduce a level of indirection via naming; with such an approach, the name is used to find a current reference to an object via some naming service that is part of the context of an application. However, names have scaling problems of their own; finding unique names generally requires a notion of a naming hierarchy, which, in turn, introduces a level of locality that becomes a barrier to change over time. This presentation introduces a set of mechanisms that allow references to objects that scale over time and shows how these mechanisms are being used in the medical sensing system being built. Like naming, the technique relies on a level of indirection introduced by a form of naming. Instead of conventional naming systems, however, it uses pure names, or Universally Unique Identifiers (Uuids). These Uuids can be generated by any number of different algorithms; which algorithm is used is encoded into the Uuid. This enables the developer of the system to determine just what guarantees of uniqueness are made and also enables the system to be integrated into existing patient identification systems. The presentation then shows how this kind of name can be used in a form of distributed hash table to create references to objects that can be refreshed when the object is moved. The refresh mechanism uses a form of distributed hash table that not only avoids the locality problems inherent in hierarchical naming systems but also enables the introduction of a notion of federation into the overall distributed system. The session finishes by showing the code for a refreshable remote reference and then discusses some further problems that must be solved if systems are to be scaled over time as well as space.
(Jim Waldo)
TS-3744 Spring Framework Update
The Spring Framework is the most popular application programming framework for Java™/Java™ Platform, Enterprise Edition ( J2EE™ platform) development, with widespread use across many industries. Spring is an open source product published under an Apache software license. Spring aims to enable POJO-based development while making it easy for developers to access advanced enterprise services. In this presentation, Rod Johnson, the father of Spring, brings attendees up to date on some of the many significant new features in the Spring 1.3 and 1.4 releases. The purpose of these features is to make Spring both more powerful and easier to use. Johnson begins with a short summary of Spring features introduced since last year's JavaOneSM conference, before spending most of the presentation looking in more detail at the following areas:• The XML extension mechanism introduced in Spring 1.3. This is entirely backward-compatible and aims to simplify common tasks and provide an extension mechanism for use by developers building frameworks on top of Spring or those developing very large applications.• Integration with AspectJ. Aspect-oriented programming (AOP) is a powerful technique for modularizing concerns that would otherwise result in code scattered throughout an application. Spring enables you to enjoy the benefits of AOP within a pure Java technology model and runtime and to adopt AOP incrementally and with minimal risk. In conjunction with the AspectJ project, the Spring 1.3 release aims to provide a complete roadmap for AOP usage, from dynamic proxies up to full use of AspectJ for weaving, with full access to the Spring Inversion of Control container. Attendees see how Spring users can take advantage of the powerful AspectJ pointcut expression language and the new AspectJ 5 annotation-style syntax in any environment while still using javac and standard Java technology dynamic proxies for weaving. • Additional configuration options, including Java technology-based configuration and an integrated overall approach to configuration spanning Java technology-based configuration, XML configuration, properties configuration, and database-backed configuration. Attendees see Java technology-based configuration in detail and learn how different configuration types can be mixed in the same application and how database-backed configuration can be updated through the Java Management Extensions (JMX™), with the changes persisted to the database.• How to use Spring with the new Enterprise JavaBeans™ (EJB™) 3.0 specification Java technology persistence API in any environment. Attendees learn what's new and cool in the Spring world and hear about implications of these new features for best practice in developing applications with the Spring Framework. Johnson shows code examples throughout the presentation, leaving attendees ready to try these features out for themselves.
(Rod Johnson)
TS-3885 Superpackages: Development Modules in Dolphin
The Java™ Platform, Standard Edition (Java SE) 7 will have new language constructs supporting information hiding and separate compilation. This presentation outlines what these constructs might look like, what problems they solve, and how they play with proposals for deployment modules currently under discussion.
(Gilad Bracha)
TS-4916 Creating Professional Swing UIs Using Matisse GUI Builder
The NetBeans™ 5.0 IDE introduced a next-generation GUI builder tool that radically simplifies layout design of Swing based-GUIs. It has never been easier to design professional UIs that can run on various platforms, be translated to different languages, look good, and behave consistently. All that without the usual need of fighting with layout managers. In this presentation, Matisse developers take you through a tour of the GUI builder, demoing and explaining main features, and focusing on how to solve typical UI design problems. The session presents various tips and tricks for layout design and effective use of the Swing in a GUI builder. See how to internationalize the UI, how to use custom components, and more. Learn from the experts about the main principles of cross-platform UI design, UI guidelines in layout, comparison of various approaches and design styles, and typical mistakes to avoid. Last but not least, the Matisse authors reveal some new things being prepared for the next release and ideas about the future of the GUI builders field. Overall, the presentation provides a solid theoretical and practical basis for anyone who needs to quickly create a good-looking Swing UI that just works. The session requires a basic level of prior experience in programming Swing GUIs and using GUI builder tools.
(Scott Violet, Tomas Pavek, Arseniy Kuznetsov)
TS-8486 Unbreakable and Self-Adpative Java™ EE Application Service
Since a few years there is a shift to business-critical highly complex Java™ Platform, Enterprise Edition (Java EE) applications which are essential components of the business processes inside of many companies. Since the daily business of those companies highly depend on those applications the requirements and expectations to a sophisticated Sun Java System Application Server Enterprise Edition are very high in regards to robustness and administration capabilities. In this session we will focus on the principal concepts of an unbreakable and highly scalable Java EE application service which automatically adapts to it's environment and usage scenario. In principal an unbreakable Java EE service contains session isolation including fast session failover and general isolation concepts for applications. Since a Java EE Application Servers also suffers from the unpredictable service load and resource consumption it must contain concepts to adapt itself dynamically to it's physical environment and the current work load. This also covers to automatically adapt to changed hardware environments without downtime and an failure predection and prevention. Finally we will discuss concepts how the manual administration efforts to actually run the Java EE Application Server can be reduced to reach a better TCO value overall.
(Henning Blohm, Dirk Marwinski)
LAB-5660 Web Services Based Portlet Application Development using Sun Java™ Studio Creator 2
Portlets provide a customized view within a fragment of a web page. The job of the portal is to aggregate portlets into a complete page. With Sun Java™ Studio Creator, you can create a JSF portlet application that conforms to the Java Specification Request (JSR) 168 Portlet specification, ensuring that your portlet application works with any JSR-168 compliant portlet server. In this lab, you will examine portlet application development using Creator. You'll see how portlet development differs from non-portlet Creator web applications, although many of the web application features Creator provides apply to portlet development. The lab includes building a portlet web application that accesses a web service.
(Gail Anderson, Paul Anderson)
TS-1099 Dos and Don'ts for Swing Applications
This session describes how to build a Swing application that looks good and works well. It presents the most critical Dont's--things you should avoid--and the most important Dos--guidelines you should follow. You learn about easy steps for improving the appearance of your visual design and how to compete with or outperform decent native desktop applications. Several examples of good and poor design demonstrate the effect of the techniques described in this session.
(Karsten Lentzsch)
TS-1293 Best Practices for Building Optimized Wireless Solutions for Web Services
With web services rapidly expanding into the wireless space, it is important to recognize the differences between wireless and wired clients. It is as rare to see web services specially designed for wireless use as it is to find a wireless execution environment or applications optimized for web services. This session highlights the challenges faced when building web services to suit wireless integration and offers practical recommendations for meeting these challenges. The session describes the principles for building an optimized Java™ Platform, Micro Edition (Java ME) container framework for hosting web service client applications and shows how the APIs defined by JSR 172 and the upcoming JSR 279 and 280 APIs fit in this model. Next, the session looks at some of the common patterns for designing wireless applications and shows how these patterns can be applied for applications using web services. Then the discussion shifts from wireless devices to web services, presenting techniques for building wireless-friendly web services or designing aggregator services to suit wireless constraints. The session shows the benefits of using asynchronous web services and presents approaches for building notification-based solutions with synchronous web services. It ends with a demo showing these techniques put to work in a practical example. This presentation distills more than three years of web services platform design experience of the Advanced Technologies Group at RIM. The participants are expected to have basic knowledge of web services and the Java ME platform.
(Michael Shenfield, Bryan Goring)
TS-1365 Extending EJB™ 3.0 With Interceptors
In this session, Bill Burke, chief architect of JBoss, Inc., describes how Enterprise JavaBeans™ (EJB™) 3.0 technology can be portably extended to incorporate user-defined enhancements using EJB 3.0 specification interceptors. It presents a detailed tutorial on the EJB 3.0 interceptor specification, with real-world examples such as how interceptors can be used for seamless exception handling, custom security frameworks, and pluggable user-defined annotations. The presentation shows that EJB 3.0 technology is no longer a rigid framework only for building business applications but is a great basis for creating application- and system-level generic frameworks as well.
(Bill Burke)
TS-3326 DReaM: Secure End-to-End Interoperable DRM Using Java™ Technology
The DReaM solution is a Sun Labs initiative to develop a DRM (digital rights management) solution that focuses on fully specified open-standards-based solutions. Where the market requirement is for proprietary solutions, the DReaM solution interoperates with these solutions, providing a level of openness and interoperability that meets customer requirements. DReaM is a new initiative to extend the functionality of Java™ technology-based service-oriented architecture to incorporate rights management services that leverage open standards. The majority of the DRM market today is for the protection of music files and film clips. In addition to supporting these applications, DReaM goes far beyond by addressing content protection needs of other markets. The DReaM architecture supports the disintermediation of rights management systems, which is the systematic decoupling of authentication, licensing, rights management, and protection technologies. This disintermediation enables the selection of these technologies independently of each other, without compromising the integrity of the solution. Key elements of disintermediation in the DReaM architecture include: 1. Separation of rights management from the content protection systems. Usage rights are defined in a separate license management system facilitated by DReaM. This allows for the unmodified use of players and DRM clients already installed on devices without inheriting their limitations and shortcomings. As a result, a wide variety of usage models that are not supported by today's system suppliers can be supported in a DReaM disintermediated solution. 2. Separation of identity and authentication services from individual hardware devices. This allows individuals to assert their rights to content on multiple secure devices after authenticating themselves. Identity can be bound to a smart card (e.g. Java Card™ platform, JSR 177-based SIM cards) for personalization in DRM systems. This allows us to bind content rights to individuals (or roles) instead of devices. This session presents the DReaM architecture and concepts in depth as well as outlining the role and benefits of Java technology in the DReaM architecture.
(Viswanathan Swaminathan)
TS-3441 Integrating XML into the Java™ Programming Language
It has often been said that XML and the Java™ platform are natural complements of each other, yet for many kinds of applications, the marriage of these two technologies has proved to be less than completely harmonious. This presentation reviews the existing means of manipulating XML in Java technology-based applications and explores a new approach based on integrating the syntax of XML documents directly into that of the Java programming language.
(Mark Reinhold)
TS-3456 Spring Web Flow: Dialogs for the Web
Many web applications consist of a mix of free browsing, where users are allowed to navigate a web site as they please, and controlled navigations, where users are guided through a series of steps toward completion of a business goal. Consider the typical shopping cart application. While users are shopping, they are freely browsing available products, adding their favorites to their cart while skipping over others. This is a good "free browsing" use case. However, when users decide to check out, a controlled workflow begins: the checkout process. Such a process represents a single user conversation that takes place over a series of steps, and navigation from step to step is controlled. The entire process represents a discrete application transaction that must complete exactly once or not at all. Consider some other good examples of controlled navigations: applying for a loan, paying your taxes online, booking a trip reservation, registering an account, or updating a warehouse inventory. Traditional approaches to modeling and enforcing such controlled navigations, or "flows," fall flat and fail to express the flow as a first-class concept. Spring Web Flow (SWF) is a component of the Spring Framework's web stack focused on solving this problem in a productive and powerful manner. This session focuses on Spring Web Flow (SWF), a module of The Spring Framework's web stack, and its architecture as a powerful controller technology based on a finite-state machine. The session highlights SWF's capabilities, particularly the ability to capture web application page flows as self-contained, reusable modules that make dynamic and sophisticated page navigation decisions. It demonstrates solutions to common issues facing web application developers in areas such as application transactions, duplicate submits, security, testability, browser-navigation button use, and state management. The presentation also shows how Spring Web Flow can be leveraged in a variety of web environments as a complement to "traditional" controllers and within a larger web application development environment. It demonstrates how to embed flows within several established frameworks in the web space, including Spring MVC, Portlet MVC, Struts, and JavaServer™ Faces technology, and examines how SWF fits within web applications with rich UI requirements. You learn the benefits of using a declarative, test-driven approach to building page flows to orchestrate controlled navigations that drive business processes. And you leave with an understanding of when and how to leverage Spring Web Flow and Spring's web stack in a productive, best-practice manner.
(Keith Donald)
TS-4743 XML: The Evolution of JAXP
Java™ API for XML Processing (JAXP) 1.3, JSR-206 has evolved a lot since the first version of JAXP 1.0 (JSR-05) in early 2000. JAXP has gained huge popularity over the period of time because of the pluggability layer provided by JAXP; and that is the essence of JAXP. Developers can write program independent of the underlying XML processor by using the JAXP APIs, and can replace the underlying XML processor by choice without even changing a single line of application code. We talk about the various XML parsing mechanisms like SAX and DOM; XML validation against DTD, XMLSchema and RELAX NG, XML transformation along with the whole lot of new features introduced in JAXP 1.3 like XML 1.1, XInclude 1.0, XPath, datatypes, and Schema objects. As we go through these topics we show you how to use JAXP to do all these stuff. But that's not it. We also talk about what could have been in JAXP that would have made JAXP even more better. For example, JSR-173 (aka StAX or pull parsing) should have been made part of JAXP, because that's yet another way of parsing XML. Only having Java classes representing datatypes in XMLSchema is not enough. There should be API available so that a developer can create a Java class representing the datatype in XMLSchema, apply facets, and validate a value against it. Finally, we take you through the history of JAXP, showing you how JAXP has evolved. To gain the best out of this session the attendee should have a basic understanding of Java language, and XML. At the end of the session, one would learn: 1. JAXP architecture 2. the various mechanisms of parsing XML, and how to use JAXP for parsing XML document. 2. XML transformation using JAXP 3. how to use JAXP to validate an XML document against a grammar (DTD, XMLSchema, RELAX NG) 4. New features introduced in JAXP 1.3 (XPath, XInclude, etc...)
(Rahul Srivastava)
TS-5454 Netbeans™ Mobility Pack and Sony Ericsson - Living Up to Developer Expectations
The Java™ Platform, Micro Edition (Java ME) tools and devices market is constantly evolving in many areas. The NetBeans™ Mobility Pack covers the newest technologies in the area. Get web services on your device, design an application visually, and use on-device debugging to develop it with latest NetBeans IDE Mobility Pack and Sony Ericsson devices. See the importance and overall picture of upcoming MSA technologies and the supporting tools. This presentation strips away the marketing hype and demonstrates how to create mobile applications with the NetBeans Mobility Pack, with a focus on integration between the NetBeans IDE and the Sony Ericsson SDK for Java 2 Platform, Micro Edition (J2ME™). It also includes an in-depth look into Java ME platform-based web services and on-device debugging, with a demonstration of the interaction between the NetBeans IDE and a Sony Ericsson device during a live debugging session. The presentation also shows the use of NetBeans IDE Mobility Pack for getting web services on legacy devices, using a middleware solution.
(Petr Suchomel, Matthew Volpi, Thomas Bailey)
TS-5564 The ESSENCE of Disease Surveillance
ESSENCE (Electronic Surveillance System for the Early Notification of Community-based Epidemics) is a disease surveillance system developed by the Johns Hopkins University Applied Physics Laboratory that utilizes Java™ technology. The purpose of ESSENCE is to provide early warning of abnormal health conditions that may be the result of bioterrorism or a disease outbreak. In addition, ESSENCE is a valuable medical situational awareness tool for epidemiologists and health officials who continually monitor the health of their communities. It receives a variety of health indicator data: doctor visit information, emergency room chief complaints, sales of over-the-counter drugs, school absenteeism, and more. The health indicator data is processed and then analyzed with statistical anomaly detection algorithms. The results of the algorithms and the health indicator data itself are made available through a Java technology-based web application. ESSENCE has been an operational system since 1999, providing disease surveillance for the National Capital Region (DC and surrounding counties in Maryland and Virginia). Currently there are several other health jurisdictions using ESSENCE in the United States, as well as a military version that provides surveillance for military medical treatment facilities worldwide. This session describes the technical challenges encountered and solutions found during the development of ESSENCE, focusing on three key areas: data ingestion/text parsing, anomaly detection algorithms, and user interface design.
(Nathaniel Tabernero)
LAB-5250 Building Production Quality GUI Applications using NetBeans™ 5.0 GUI Builder (Matisse)
As of NetBeans™ 5.0, the IDE's GUI Builder has been revamped to make it more powerful and intuitive, liberating users to build professional-looking GUIs without an intimate understanding of layout managers. NetBeans' new GUI Builder eliminates the difficulties of building GUIs, enabling you to lay out your forms by simply placing components where you want them. The HOL is divided in two parts, the first part you will create a GUI form, using the Builder Interface, and the second part you will create a second window, and you will learn how to link this secod window to the first one, using events. In this HOL you will learn how to: • Use the GUI Builder Interface • Use the GridBagLayout Customizer • Create a GUI Container • Add Components • Resize Components • Align Components • Adjust Component Anchoring • Set Component Auto-Resizing Behavior • Edit Component Properties • Program events
(Angela Caicedo)
TS-1305 High-Performance GUIs
Java™ technology comes equipped with a powerful set of tools for rendering graphics, providing a viable alternative to native graphics applications. Utilizing the full power of the Swing and Java 2D™ APIs requires some knowledge of what goes on "under the hood." This session focuses on the Swing and Java 2D APIs and techniques that can be used to improve rendering performance. It starts with a brief overview of the graphics pipeline and its evolution and then presents tips for rendering the primitives that make up the building blocks of Swing and Java 2D APIs. It also discusses strategies for managing collections of graphical objects with the goal of improving the performance of redraw, scrolling, and animation. The presentation includes a demonstration of the concepts and makes source code for the demonstration available.
(Kevin Ellis)
TS-1580 JUnit 4 and Java™ SE 5: Better Testing by Design
JUnit is an easy-to-use framework that supports developers writing automated tests. Since its introduction, JUnit has been adopted by hundreds of thousands of Java™ technology developers worldwide and has become the de facto standard for Java technology testing. However, JUnit's architecture has remained virtually unchanged for the seven years of its existence. The advent of annotations and other new features in Java Platform, Standard Edition (Java SE) 5 presented an opportunity to improve both the way tests are written and JUnit's own architecture. The theme of JUnit 4 is to make JUnit simpler and more powerful, to encourage more developers to write more tests. At the same time, JUnit 4 preserves the investment programmers have made in their existing tests. This session explains and demonstrates how Java SE 5 technology and JUnit 4 work together to make developer testing more approachable for programmers. Because JUnit has also created a rich ecosystem of auxiliary and complementary tools, the presentation introduces and demonstrates some of the unique and most useful JUnit-based open source tools. Finally, it describes features of the original JUnit architecture that have caused problems over the years and how JUnit4 is structured to avoid those mistakes and still retain its power and flexibility. If you are an experienced JUnit user, the presentation will provide you with strategies, examples, and tools to maximize your efficiency and effectiveness by taking advantage of Java technology's and JUnit's latest features. And if you are new to JUnit, it will give you the motivation and know-how to get started in the right direction.
(Alberto Savoia, Kent Beck)
TS-1595 Scaling Out Tier-Based Applications
Tier-based computing has hit a wall when it comes to supporting performance-intensive applications. Whether the challenge is to grow these applications beyond a few hundred concurrent users or to grow them beyond a few dozen parallel processes, issues such as complexity, scalability, load balancing, and synchronicity get in the way. The solution is not to improve the tier-based approach but to move beyond it. This session proposes five steps for scaling existing applications based on the Java™ 2 Platform, Enterprise Edition (J2EE™ platform) by using distributed caching and by turning the tiers into virtual services that scale out across a dynamic pool of machines.
(John Davies, Frank Greco, Nati Shalom)
TS-3273 Groovy = Java™ Technology+ Ruby + Python for the JVM™
Groovy is a new dynamic, object-oriented scripting language for the Java™ Virtual Machine (JVM™) that feels like a mixture of Ruby, Python, and Java technology. It gives you the expressive power of Ruby, the simplicity of Python, and direct access to the (enhanced) JDK™ software and all existing Java technology-based code. You can declare variable, argument, and method types if you want static typing or simply leave them off to go fully dynamic. Better yet, use static typing just when you need it, such as when you want to integrate heavily with existing Java technology code. Using one of Groovy's most powerful features, called Groovy Markup, is a way to concisely define just about any hierarchical structure directly in your code. This session shows you how to take advantage of Groovy Markup and much more as the presentation introduces the language in the context of typical applications. It shows you how to build a Swing GUI, execute Ant scripts in-line, access a database, read and write XML, and do more in just a few lines of code. You'll leave the session with everything you need to know to start programming in the Groovyest scripting language ever. Prerequisites: Knowledge of Java programming language and any scripting language, such as Ruby or Python, would be helpful.
(Rod Cope)
TS-3395 Java™ Persistence API
One of the key results of the work on the Enterprise JavaBeans™ (EJB™) 3.0 specification has been the introduction of a simplified, POJO persistence architecture for both Java™ Platform, Enterprise Edition (Java EE) and for use outside the Java EE platform container in Java Platform, Standard Edition (Java SE) environments. This session covers some of the key aspects of Java Persistence API, with highlights of new features introduced since the publication of the JSR 220 public draft. Topics covered include: - Brief overview of the developer view of using Java technology persistence - EntityManager API and entity lifecycle - Persistence units and persistence contexts - Detached objects versus extended persistence contexts - Features for optimistic concurrency and long-running "application transactions" - Object-relational mapping using Java language metadata annotations and/or XML - Query API and the mapping of query results - Packaging and deployment of persistence applications - Future directions
(Linda DeMichiel)
TS-3484 What's Hot in BEA JRockit
BEA JRockit is one of a few top Virtual Machine for the Java™ platform (JVM™) for enterprise-wide usage. JRockit is available on the Solaris™ Operating System, Windows, and Linux (SPARC®/x86/x86-64/Itanium). This session details some of the hot features in JRockit that you probably will not find in any other top virtual machine. First, the presentation discusses work the JRockit team has done on creating a deterministic virtual machine. This feature tries to create the real-time-like behavior of the Java Platform, Standard Edition (Java SE), without necessarily rewriting your program. Second, the presentation describes some of the novel performance optimizations that have recently been added to JRockit (in particular, some of the optimizations focused on making 64-bit code run faster than 32-bit code). Finally, it rounds off with a description of the JRockit Mission Control Center tools, which can be used to analyze Java technology problems in production. These tools take advantage of built-in hooks in JRockit (beyond the virtual machine) that makes production-time monitoring possible at an extremely low performance cost.
(Staffan Larsen, Marcus Lagergren)
TS-3682 What's Going On in Struts Ti?
Struts Ti is the merger of the technology of the WebWork framework with the community of the Struts framework. Starting from the WebWork code base, Struts Ti's mission is to create the next generation of action-based web frameworks while supporting backward compatibility for Struts Classic and WebWork projects. This session introduces the architecture of Struts Ti and how it fits into the Struts world. It shows the advantages Struts Ti brings in the simplicity of the code and the productivity gains over previous web development. Finally, it looks at the future direction of Struts Ti and the roadmap for the future, including possibly becoming the Struts Action Framework 2.0.
(Jason Carreira)
TS-3742 Dancing While Gaming: Multitasking VMs (MVM) on Real Devices
The Java™ Platform, Micro Edition (Java ME) has advanced significantly in the past years, with many new profiles in different kinds of areas that were added to the playroom. MVM is the leading-edge Java technology that allows users to run several Java technology-based applications concurrently, and the combination of it and the variety of profiles the Java ME platform offers changes dramatically the way users interact with the platform. This technical session, a joint session with Samsung, focuses on MVM implementation on a real device (Samsung) that executes several mission-critical applications in Java technology, including MP3 player, music on demand, instant messaging, and location applications. The presentation shares the handset manufacturer's and the operator's vision regarding MVM and discusses the major challenges for porting an MVM platform to the real device.
(Yaniv Shani)
TS-4589 Good Morning, Buenos Dias, Dobry Den: Mobile Internationalization in Action
Globalization and the need to leverage assets make producing localized applications an important part of the product lifecycle. Although internationalization for applications based on Java™ Platform, Standard Edition (Java SE) and Java Platform, Enterprise Edition (Java EE) is a well-known process, with a lot of support from various tools, the situation in Java Platform, Micro Edition (Java ME)/MIDP was unsatisfactory for a long time, because there was no standard solution for solving internationalization issues. With the introduction of JSR 238 (Mobile Internationalization API), Java ME platform-based application developers can easily create truly internationalized applications. This session shows how to develop localized MIDP applications by using JSR 238 in the NetBeans™ IDE and Wireless Toolkit. It covers both the Java technology code and the tools for helping create localized applications. It also discusses the problems of creating several language distributions of an application and how to internationalize applications on devices without JSR 238.
(Martin Brehovsky, Dov Zandman)
LAB-3825 Building Your Own Java™ EE 5 Application Server using Project GlassFishSM
Do you want to get involved in enhancing the Java™ Platform, Enterprise Edition (Java EE) 5 reference implementation? Come to this hands-on-lab and learn to build the open source Project GlassFishSM Application server. You can checkout the source, build, modify, and play with this high quality application server. Bring your own Laptop or you can use one of the machines in the Lab. Windows, Linux, Solaris™ OS and MacOS users will be supported.
()
TS-1594 Best Practices: Data Binding
Data Binding refers to connecting user interface components to the application model. All developers writing Swing applications use some form of data binding, either an explicit framework, or through route programming by creating custom ListModels, TableModels, PropertyChangeListeners... If you tire of writing such code, this talk is for you! This talk will give you a brief overview of data binding basics and then introduce a new data binding framework for Swing applications. We hope to provide an easy to use data binding framework in a future Java release and will be working with the Java community to make sure it's fully featured and addresses your needs.
(Scott Violet)
TS-1630 The Java™ Memory Model: The Building Block of Concurrency
This session describes the Java™ Memory Model (JSR 133) and how it affects the ways concurrent software should be written. The Java technology memory model was revised by JSR 133, and the revision was incorporated into Java Platform, Enterprise Edition 5. This change redefined the semantics of threads, synchronization, volatile variables, and final fields. This redefinition is compatible with existing good programming practice, although care needs to be taken in regard to a couple of corner cases. More important, the new memory model provides new efficient techniques for safely and correctly implementing concurrent operations. Many programmers can avoid depending on low-level details and instead just use high-level concurrency abstractions provided in the new concurrency libraries. However, for those who have to write their own concurrency abstractions, understanding the building blocks of concurrency can be vitally important. The presentation provides a simple and clear definition of what synchronization actually does, discusses the semantics of volatile variables and the java.util.concurrent.atomic package and how they can be used to create efficient concurrent implementations, and describes how final fields can be used to provide thread-safe immutable objects without synchronization.
(William Pugh, Jeremy Manson)
TS-1664 RAD for the Java™ Platform Web Tier: Frameworks Panel Discussion
In the world of web application development, Ruby on Rails has been causing quite a stir over the past year, with a framework that is successful at helping developers build web applications quickly. The Rails phenomenon represents a great opportunity for the Java™ Platform, Enterprise Edition (Java EE) web tier community to reevaluate its assets and meet the productivity challenge with renewed energy. Owner of rails-alike frameworks such as Rife, Trails, and Grails have been contacted for participation and are thrilled by this opportunity to contrast their approaches and architectures in an open forum.
(Geert Bevin, Roger Kitain, Kevin Osborn, Chris Nelson, Graeme Rocher)
TS-1969 Blueprints for Using the Simplified Java™ EE 5 Programming Model
Java™ Platform, Enterprise Edition (Java EE) 5 is the next version of the Java EE platform and delivers significant enhancements focused on ease of development. This session covers the improvements, such as the extensive use of annotations to reduce the need for XML deployment descriptors, dependency injection to eliminate Java Naming and Directory Interface™ ("JNDI") API lookups, new POJO-based persistence APIs for O/R mappings, component-based Web application development with JavaServer™ Faces technology, simplified Web services with the new Java™ API for XML Web Services (JAX-WS) and Java™ Architecture for XML Binding (JAXB) APIs, and simplified Enterprise JavaBeans™ (EJB™) specification-based components. The session compares and contrasts the new programming model with the Java™ 2 Platform, Enterprise Edition (J2EE™ platform) 1.4 programming model and presents simplified application architectures.
(Inderjeet Singh, Sean Brydon, Kenneth Saks)
TS-3059 JRuby: Bringing Ruby to the JVM™ Software
JRuby is an implementation of the Ruby programming language targeted at the Virtual Machine for the Java™ platform (JVM™ platform). Ruby is a dynamically typed object-oriented language with support for blocks, continuations, and all the usual OO trimmings. JRuby aims to not only support the full Ruby platform but also provide an enhanced m:n threading model; a heap-allocated "stackless" call stack; AOT and JIT compilation of Ruby to bytecodes; and extensive, pervasive integration between Ruby and Java technology. Ruby has become a very popular language recently, in part because of the popularity of the Rails web framework but also due to the careful, cautious evolution of the language and libraries. Because of this popularity, many powerful tools and frameworks are available that would fit well into existing Java technology-based applications. We plan for JRuby to run all the high-visibility Ruby applications in concert with existing Java technology-based applications and frameworks. Imagine Rails with JDBC™ API ActiveRecord connectors or session or entity beans implemented in Ruby, middle-tier Ruby-based business rule engines, or building your application by using the elegant Rake build tool. JRuby will help both Ruby and the JVM language benefit from all these possibilities. This JRuby session shows you how to apply Ruby on the JVM software to common use cases. It also shows off projects that utilize JRuby and demonstrates the most compelling capabilities offered when Ruby and Java technology work together. You need only an interest in alternative JVM machine languages to come away with an appreciation of JRuby's potential.
(Charles Nutter, Thomas Enebo)
TS-4259 Watching Apache Derby: Eclipse Tools for Administration and Monitoring
The Eclipse Data Tools Platform (DTP) project provides open source frameworks and tools for data access, management, and development. Add in the application-hosting capabilities of the Eclipse Rich Client Platform (RCP), along with the open source database Apache Derby, and a compelling stack for rapidly developing data-centric applications emerges. This presentation uses this stack in a case study building basic administration and performance monitoring tools for Apache Derby. Assuming only a basic understanding of Eclipse plug-in development, the session begins by describing the requirements and architecture for such tools. Included in this section is an overview of DTP frameworks and tools, an introduction to building RCP applications, and potential avenues for future development based on the chosen approach. It shows that RCP and DTP modularity presents several interesting trade-offs, and you learn some design heuristics for making such choices. You also see that DTP frameworks enable replaceable storage systems, so the lessons from this one instance with Apache Derby can easily be generalized to many other databases and even other data sources. With a design in hand, the presentation next investigates how to configure RCP and DTP into a minimal container that meets the requirements. This exercise demonstrates the power of modularity and progress functionality addition afforded by these platforms. This extensibility and modularity make it possible to note key areas where further features can be added. Connectivity to Apache Derby is then added easily through DTP, and the presentation explains details of how other databases can be used. The end result of this section is a lightweight application environment ready for Apache Derby tools to be added. The third section reviews the design and implementation of the plug-ins added for Apache Derby administration and monitoring. Working from the conceptual to the code levels, the presentation details the benefits of the assembled data-tooling stack. Although the code is specific to Apache Derby, it is apparent that key domain patterns are present. The discussion shows how these patterns can be applied to other databases and other data sources easily (sometimes not so easily). Finally, the attendees see the sample work. Within the space of a conference presentation, frameworks and tools that traditionally have taken a very long time to build and even longer to mature will have been covered. Because RCP and DTP provide so much in a highly extensible package, the community is able to concentrate on more-advanced, differentiating functionality.
(John Graham)
TS-4611 Best Practices for Interoperability Between Java™ Technology and .NET Server Applications
According to Gartner, the majority of large-scale enterprises have mixed-mode systems in their data center and more than 60 percent of new application development will require elements to be developed in .NET and the Java™ 2 Platform, Enterprise Edition (J2EE™ platform). With the growth of Linux as a low-cost operating system, many .NET shops are migrating away from .NET toward an approach using Java enterprise technology to cut costs and increase reliability. This leads to a need for a strong interoperability strategy. In this technical session, Marina Fisher, Laurence Moroney, and Ray Lai (coauthors of J2EE™ .NET Interoperability) introduce the various J2EE platform .NET interoperability strategies, including new interoperability strategies such as Platform Unification and Enterprise Service Bus (ESB). These include the following: Web Services: A deep dive of web services using Java API for XML-Based RPC (JAX-RPC), Java API for XML Web Services (JAX-WS), and Microsoft's WSE, showing their strengths (flexibility, widespread support) and weaknesses (statelessness, performance, complex data types, interoperability problems). It demonstrates the APIs and methodologies necessary for a .NET client to consume a Java technology-based web service and vice versa. Suggestions and recommendations about where they should and should not be used are presented. Bridging: A review of various bridging technologies. This includes demonstrations of some of the technologies and a discussion of best practices and where the technology is and is not useful. An example of an application that interoperates between .NET and the J2EE platform, using bridging technology, is presented. EAI Applications: A review of the different EAI platforms, such as IBM DragonFly, Microsoft BizTalk, and some open source solutions. Methodologies in which these might integrate Java technology and .NET-based applications are presented, along with the benefits and drawbacks of EAI-based solutions. Enterprise Service Bus: The ESB concept, along with a review of some of the better-known ESB products, both commercial and open-source. Integration of systems across an ESB are examined in regard to performance, scalability, and reliability, along with best practices and pitfalls. Platform Unification: The concept of rehosting applications from one platform onto another, using J# to rehost Java technology-based applications on .NET or Visual MainWin for the J2EE platform to rehost .NET-based applications on the Java platform. Rehosting and unifying platforms allows for lower-level interoperability, which can be very useful. Examples are shown, along with a discussion of best practices and pitfalls associated with this approach. In conclusion, the session presents an overall strategy checklist for integration, indicating the best combination of these approaches to take for common situations, followed by Q&A. This session is targeted at novice Java technology and .NET developers who will be involved in J2EE platform and .NET interoperability projects.
(Ray Lai, Marina Fisher, Laurence Moroney)
TS-4693 Digital Television for the Java™ ME Platform: Introduction to JSR 272
Digital television technology is making its way to handheld devices. Mobile phones, PDAs, and other portable computing devices are capable of receiving digital television broadcasts. Regardless of the underlying protocols and bearer technologies, the applications for managing digital broadcasts on the terminals require similar kinds of functionality. Mobile Broadcast Service API for Handheld Terminals, JSR 272, provides the functionalities that enable applications to receive and view digital television. In addition, the API gives access to electronic service guide and file carousel, which are the fundamental features of digital television. The API is agnostic in terms of the underlying technologies, such as DVB-H, DMB, OMA-BCAST, MediaFLO, and TV-Anytime. But special care is taken to see that it works with all of them. The session gives an overview of the technology and the APIs. It presents main use cases to highlight the possibilities mobile digital television and JSR 272 APIs give application developers and service providers. It includes code samples to clarify the most-complex parts of the API and highlights design issues of keeping the API compatible with the major digital television technologies. The specification process is still unfinished, and the presentation gives the schedule for finalization.
(Ivan Wong, Antti Rantalahti)
TS-5927 Troubleshooting Java™ ME Technology: Tips from the Pros
Learning Java™ Platform, Micro Edition (Java ME) technology is simple, but developing a commercially viable application that runs consistently across all Java ME platform-based devices is next to impossible. In this session, you have the unique opportunity to hear from a company that creates network-enabled Java ME platform-based applications that run on every major Java ME platform in the world. You learn everything from the differences in the way devices handle HTTP requests to discrepancies in the way graphics objects work across devices. By the end of this session, you will walk away with some of the most guarded secrets of the pros.
(Rodney Aiglstorfer)
BOF-0032 Building a Secure Web Service: WSS, Message-Level Security, JSR-196, and Liberty
This session shows how to build a secure web service in Java™ Platform, Enterprise Edition (Java EE) and the GlassFishSMALL>SM project environment. It also demonstrates the ease of development of using the GlassFish project for constructing web services in the Liberty environment. This presentation starts with a discussion of Java EE security features for EJB™ technology and servlet endpoint web service. Java EE technology provides the basic security for web services, and this presentation examines a more-fine-grained security mechanism, message-level security, and includes a discussion of its relationship to JSR-196. It includes a high-level overview of JSR-196 and a discussion of the use of 196 providers with Sun Java System Access Manager in the Liberty environment. This BOF will be a short presentation on web service message layer authentication mechanisms, JSR-196 and followed by a Q&A session
(Sridatta Viswanath)
BOF-0158 Understanding J2EE™ Class Loading Architectures
Has your perfectly running Java™ 2 Platform, Enterprise Edition (J2EE™ platform) application ever suddenly began exhibiting strange behavior when deployed to a new application server? Have you ever had to debug the infamous class-not-found exception? These problems can be very difficult to resolve and often are the result of a lack of understanding of how class loading works in your application server environment as well as a lack of understanding of class loading in general. This presentation compares and contrasts the class loading architectures of leading commercial and open source application servers, to illustrate the importance of class loading to developing applications that are adaptable while in production and that behave consistently across deployments to various application servers. The session begins by reviewing class loading concepts in the context of J2EE technology and then dive into three current class loading architectures, two from the commercial space and one from the open source space. It illustrates, through execution of example applications, how the same application running on two different application servers can demonstrate totally different behavior or not even run at all. Next it provides a list of practical how-tos that, if followed correctly, will ensure that your application has a much higher chance of behaving properly across application server environments. Illustrations of each concept are provided through working demos. Finally the session presents an approach to tracking down and resolving class-not-found exceptions that will empower you and save you a lot of time. A detailed slide presentation which provides illustrative examples of differences between class loading architectures as well as examples and how-to's regarding resolving class loading issues within your J2EE system will be the cornerstone of how this BOF is conducted. References and links will be provided to support further investigation of Class Loading by BOF attendees.
(Ernie Svehla)
BOF-0186 Using Free Toolkits to Diagnose Memory Leaks in Java™ EE Platform Application Servers
Memory leaks are a common but unexpected and sometimes subtle problem in Java™ technology-based applications. After all, Java software programmers don't have to worry about memory, because they have the convenience of automatic garbage collection, right? These problems can be difficult to diagnosis in Java Platform, Enterprise Edition (Java EE) application servers that host code from multiple sources-especially if they show up only in production. Several excellent commercial products are available for diagnosing memory problems, but they can be costly. As support engineers, we often find that the licensed tools we have and are familiar with are different from the tools our customers have. Do we buy their tool, ask them to buy ours, use a trial license, and learn their tool? It turns out that there are several free and open source tools that can often be used effectively in such situations. This session discusses common memory leak patterns in Java EE applications; strategies for diagnosing and fixing them; and the availability, capabilities, and limitations of free diagnostic tools-both those that are Virtual Machine for the Java platform (JVM™)-agnostic and those that are vendor-specific. It pays special attention to tools and strategies that deal unobtrusively with leaks that seem irreproducible outside of a production environment. This BOF will consist of a short persentation, a demo and a Q&A session.
(Jim Weaver)
BOF-0300 Solving the Mysteries of the Java™ Technology Class Loader
This session gives a brief overview of the history of class loading in Java™ technology and the runtime requirements of the Virtual Machine for the Java platform (JVM™) in class loader implementations. Topics include loading constraints, interactions with class verification, best practices for class loader implementers, and a brief survey of some of the standard loaders used in Java Platform, Standard Edition (Java SE) and Java Platform, Enterprise Edition (Java EE). Finally, the presentation discusses the status of new work being developed in the upcoming Dolphin release of Java Platform Standard Edition, including issues related to multithreaded class loading and new requirements derived from JSR-277: Java Module System. We will begin with a slide presentation giving a brief history of class loaders and a survey of various class loaders included in the Java Platform followed by an outline of planned future developments. After the presentation, we will answer questions and moderate an open discussion on class loader technology.
(Jeff Nisewanger, Karen Kinnear)
BOF-0398 EJB™ 3.0 and the Java™ Persistence API BOF
This BOF provides an opportunity for developers to discuss features of EJB™ 3.0 and the Java™ Persistence API with its key architects and members of the EJB 3.0 expert group. The presentation also discusses some of the future directions for these technologies, and the sessions solicits developer input on future features.
(Linda DeMichiel)
BOF-0427 Hacking the Sun Certified Enterprise Architect Exam: Part 1
This session serves as a last-minute review session for all attendees who plan to take Part 1 of the Sun Certified Enterprise Architect exam while attending the JavaOneSM conference. The presentation reviews tips and tricks for taking the exam successfully, following the rules imposed at all Prometric testing sites. Design patterns covered in the exam are reviewed, and keywords relating to each pattern are studied, along with techniques for memorization. The session covers sample test questions addressing solutions to architectural problems using Java™ technology. Attendees receive handouts with last-minute cram information and a summary of all key points for successfully passing the exam. The ideal audience is attendees who have studied for the SCEA Part 1 Exam and plan to take it during the conference.
(Brian Briggman, Konrad Rokicki, Patricia Guimaraes)
BOF-0498 "The Collections Connection" (Ninth Edition)
If you've been using the Java™ Collections Framework API or you're just curious about it, this session is for you. It starts with an overview of proposed additions to the Java Collections Framework API for the upcoming release of the platform (version 1.6). Then you can ask programming questions, design philosophy questions, or any other questions you may have. People who want to discuss interesting things they've done with the Java Collections Framework API are, as always, encouraged to attend.
(Joshua Bloch)
BOF-0579 Version-Aware SOA Using Jini™ and Java™ Technologies
Traditional service-oriented architecture offers numerous advantages for scalability and durability, but the cost of maintaining long-running systems using Java™ technology can be high. Managing and upgrading of services without client disruption is a complex problem with few solutions. This presentation describes a versioning and dispatching framework that uses the dispatcher pattern to invoke methods on remote services. Additionally, the framework has the ability to isolate developers and clients from knowing about or managing versioned service discovery, thereby allowing multiple versions of a specific service to be deployed concurrently. Depending on the runtime configuration of a client, the framework is capable of determining the correct version of a service that a client needs as well as handling the invocation of that service transparently. The framework is implemented with Jini™ technology and features available with the Java platform. The service discovery mechanism and support for service attributes in Jini technology play an integral role in allowing the framework to transparently locate and invoke versioned services. A basic understanding of SOA and Jini technology is helpful but not required. This BOF will be a short presentation using slides followed by an in depth discussion and Q&A about all aspects of versioning in a distributed system.
(Brian Pontarelli, Brian Zimmer, Brian Elliott)
BOF-0588 Meet the Swing, AWT, and I18N Teams
Want to know what the AWT, Swing, and I18N teams have been working on? Want to hear about your favorite bug? Come to the annual combined Swing, AWT, and I18N BOF session to learn more.
(Scott Violet, Masayoshi Okutsu, Naoto Sato, Joshua Marinacci, Shannon Hickey, Richard Bair, Igor Kushnirskiy, Jeff Dinkins, Amy Fowler, Alexander Potochkin, Brent Christian, Romain Guy, Michael Knyazev)
BOF-0723 Compile Time Assertions: Enforcing Extralinguistic Constraints
The Java™ Language Specification defines many constraints on what can constitute a valid program. These are linguistic constraints, because they are defined by the language. Extralinguistic constraints also define limits on what can constitute a valid program, but these cannot be expressed in the Java programming language. They are normally expressed in the natural language of the documentation. Two examples are "The method must be declared public and static, it must not return any value, and it must accept a String array as a parameter. The method declaration must look like the following: public static void main(String args[]) " -from the "java" tool documentation and "The subtype may assume this responsibility only if the class it extends has an accessible no-arg constructor to initialize the class's state. It is an error to declare a class Serializable if this is not the case. The error will be detected at runtime." - from java.io.Serializable javadoc. When such constraints are not met, programs compile successfully (because they meet the lingustic contraints, which are the only ones the compiler enforces) yet still fail at runtime. This presentation identifies the root cause of these failures and shows how a combination of JDK™ 6.0 release features can be used to implement a "compile time assertion" facility enabling many of these kinds of failure to be detected at compile time. To get the most from this presentation, attendees should have a basic understanding of annotations. Awareness of other JDK 5.0 software language features would also be beneficial. Attendees can expect to be exposed to some interesting opportunities arising from recent additions to the JDK tool set. The format will be a presentation with demonstrations followed by question time.
(Bruce Chapman)
BOF-2099 Advanced Issues When Creating Plug-ins for the Eclipse Platform
There are several concerns to address when creating industrial-strength plug-ins for the Eclipse Platform. There are a great many of those covered by books and articles, but some are hard to find and others might not be mentioned at all. During this session we will discuss some aspects of developing plug-ins, of which most assume you are already somewhat familiar with plug-in development using the PDE, Plug-in Development Environment bundled with the Eclipse SDK. The session will start with a presentation discussing a range of items. This part of the session will span such diverse items as some user interface aspects, like preferences, through technicalities when developing, like logging and testing, to deployment into your target environment. Then there will be a demo of some of the aspects presented.
(Robert Varttinen, Anders Eliasson)
BOF-2162 MIDP 3.0 Midterm Report Card
The Mobile Information Device Profile (MIDP) has been developed and enhanced over the course of two major specifications (JSR 37 and JSR 118), to provide developers with a rich, consistent application framework for mobile devices. JSR 271 has been developing MIDP 3.0, with the aim of building upon this widely deployed application base by: • Adding APIs and functionality to allow MIDP to take advantage of the features of the next generation of mobile devices. • Embracing and extending the capabilities of the platforms on which it will be implemented. • Tightening up the specification in areas where inconsistencies exist. This session reviews the progress of the JSR 271 Expert Group to date and provides insight into how MIDP 3.0 requirements were defined and are being met. It introduces core concepts for the new features and APIs and discusses what they'll mean for MIDlet developers. Finally, the session also includes practical examples of how MIDP 3.0 applications will be able to take advantage of these advanced features. This BOF will include a brief slide presention covering the latest status and features of MIDP 3.0, followed by a open discussion session during which attendees can voice their questions and comments about the specification and its development.
(Mark Patel, Michael Milikich, James Warden)
BOF-2177 The Ins and Outs of the MyFaces "ADF Faces" Open Source Project
JavaServer™ Faces (JSF) technology is one of the new standards that are part of the Java™ Platform, Enterprise Edition (Java EE) 5.0 release. The success of JSF depends heavily on open source projects and the open source community’s contributions and donations, by individual developers and corporations. MyFaces is an Apache top-level open source project that provides both a runtime implementation and a rich set of standard JSF components. This session is an in-depth technical examination of a new component library, MyFaces "ADF Faces". It includes examples of how to best utilize MyFaces "ADF Faces" in application development and how to best extend the MyFaces "ADF Faces" components’ functionality
(Jonas Jacobi, John Fallows)
BOF-2393 OCAP and the Future of Cable TV
The OpenCable Applications Platform, OCAP, is a Java™ technology-based environment defined by the cable industry to enable application interoperablility across a range of digital TV receivers. The platform, based on international standards, has been adopted by the consumer electronics (CE) industry and the FCC as the future platform for advanced cable services. Issued and maintained by CableLabs, OCAP provides cable operators and third-party developers the means to deploy interactive applications on a wide range of devices. The OCAP platform includes a core specification, required to be implemented on all OCAP-compliant devices, and several optional extensions, including DVR and home networking features. Historically, digital TV has been received on proprietary set-top boxes (STBs) that included proprietary software environments and applications. Increasing competition from satellite and now telco video providers, pressure from federal regulators, and the desire of CE and personal computer manufacturers to enter the market have created a need for standards that allow device portability and application interoperability. To provide innovative services on devices that contain ever increasing functionality at decreasing price points, cable is opening its networks to device manufacturers. A wide variety of recievers will be able to interoperate with cable, including multipurpose STBs, advanced television sets, game consoles, and even PCs. OCAP provides the means for all of these devices to provide the full range of cacle services, including interactive applications such as electronic programming guides and enhanced programming (think interactive "Lost" from ABC). The presentation includes at least the following topics: • Brief background on CableLabs • Brief history and structure of OCAP • Regulatory environment and negotiations with CE manufacturers • Summary of technical feaures and APIs in OCAP • Code sample of OCAP application, with example signaling • Overview of OCAP extensions • Discussion of projected OCAP roadmap, including potential for OCAP on portable and IP-connected devices This BOF will be a short presentation followed by a Q&A session.
(Frank Sandoval)
BOF-2812 The Component Edge: Creating and Using Components With Tapestry
The Tapestry web application framework is designed to make creating and using components easy; in fact, creating components is an everyday, basic technique when you are developing with Tapestry. This session presents examples of creating simple components and shows how easy it is to reuse components packaged into a library--even components with complex AJAX logic. It demonstrates how easy it is to get complex results by connecting and combining simple components. Along the way, the presentation shows how Tapestry intermixes HTML templates for pages and components with Java™ technology-based code and utilizes JDK™ verison 1.5 annotations to wire everything together automatically.
(Howard Lewis Ship)
BOF-7782 Declarative SelfManagement Framework Using JMX™ Technology Infrastructure
Complex software such as Application Server typically consists of tens of components and hundreds of configurable (tunable) parameters. Tuning those hundreds of parameters, in a clustered environment in varying load conditions is often a difficult task. Java™ Management Extensions (JMX™) technology has become the standard for management and monitoring of application servers. Application servers expose wealth of monitoring information. As of now, this information has to be processed by users or other external tools to make some meaningful representation of this collected data. Based on the data, user needs to take an approriate action. Unfortunately in varying load conditions, by the time data is processed and an action is taken manually by the user, that action may not be ideal at that point of time. Indeed, if we could embedd the intelligence to process the monitoring information with in the server and take an approriate action based on that data with in the appserver would be ideal and makes appserver management simpler. Proposed tutorial is to suggest a JMX standards based frame work to automate the tuning/configuring/healing (Self Management) with in the appserver without user intervention at runtime. Suggested framework is built around the concept of management rules. An appserver can be self managed or can be extend to be managed with the help of set of management rules. Each management rule has two parts. First part being event and second part being action. Event and Action are loosely coupled and both of them are JMX MBeans. Event part gathers data, process it and generates an event if necessary. When an event occurs, action part will be triggered. Framework describes a set of pre defined useful events and also has provision to extend the possible events with in an appserver. Framework suggests few actions and also has provision for new actions. An example of a management rule could be "Memory Management Rule". In the event of low memory in the application server, an action can be taken to clean up internal resources such as stale sessions, cleaning up caches, pools etc. As the suggested framework is based on standard technologies and is extendible, user could add his own management rules and make the application server much more manageable.
(Sankara Rao Bhogi, Nandini Ektare)
BOF-9491 Mobile Application Deployment
The Java™ Platform, Micro Edition (Java ME) is the dominant application platform for mobile applications with over 1 Billion Java technology phones shipped to date by more than 175 operators worldwide. However, deploying applications to these phones isn't easy. This panel will cover the key aspects of deploying applications onto mobile operators' networks like unique extensions, certification process, selection process, and much, much more. This is a unique opportunity to hear first hand on how to effectively do business with operators.
(Nathan Smith)
BOF-0160 Best Practices With Generics and Other Java™ Platform 5.0 Language Features
This session is a follow-up to BOF-9225 of the 2005 JavaOne conference. Generic types (generics) were added to the Java™ programming language in the JDK™ 5.0 release (code-named Tiger). Generic types in the language were designed to allow an unsurpassed level of compatibility, but it is still possible to break compatibility. This presentation examines the underlying implementation technique (erasure) and discusses best practices and how to avoid common pitfalls when "generifying" existing code.
(Peter von der Ahé)
BOF-0203 Meet the Java 2D™ API and Java™ Advanced Imaging Teams
Meet the engineers of the APIs for two-dimensional image processing, graphics, text, and printing on the Java™ platform. Representatives from the Java Platform, Standard Edition (Java SE), Java 2D™ API, and Image I/O team and from the Java Advanced Imaging and JAI-Image I/O Tools team are available in this session to answer your questions about these APIs, performance and quality enhancements, status of your favorite bugs, and plans for upcoming releases.
(Chet Haase, Jeannette Hung, Brian Burkhalter, Jennifer Godinez, Andrew Brygin)
BOF-0211 Authorization in a Federated Ecosystem: Implementing Rules, Roles, and Policies for Access Control
Standards and technologies for federated identity management (FIM) have emerged in the last few years to provide a framework for exchanging identity information in a loosely coupled and decentralized manner across diverse, autonomous IT domains that may even cross enterprise boundaries to include business partners and customers. The most compelling use case for identity federation has been single sign-on across trust boundaries and standards such as SAML, Liberty ID-FF, and Liberty ID-WSF, which are correspondingly most developed in that area. This part of the overall federation space is fairly well understood, and there are many real-world examples of organizations that have deployed federated sign-on. However, FIM must also support various authorization use cases after the user has been authenticated. Several issues complicate the picture here. For one, depending on the privacy and audit considerations, the service provider may not be allowed to or want to retain an authoritative record of the identity being federated (whether or not a pseudonym is used). Another is that identity and service providers may have assigned different semantics to user attributes (in the context of rule-based authorization) and/or role definitions (in the context of role-based authorization), so the service provider must choose carefully between running authorization checks locally and outsourcing them to the identity provider. Things get especially sticky, because the parties in a federation may have implemented independent access management solutions that don’t necessarily play nice with each other. This session explores the topic of authorization in a loosely coupled federation of identity and service providers from the ground up. Attendees learn foundational concepts such as federated identity management and its business drivers and then move on to more-advanced concepts such as federation topologies and how to manage trust relationships in each of them. Finally, they gain an in-depth understanding of the various factors that go into determining effective authorization architectures in such federations. The concepts discussed are demonstrated through implementations of common federated authorization use cases/topologies that use OASIS-ratified technologies such as SAML v2.0 and Liberty ID-FF/ID-WSF as the base and run on the Java™ Platform, Enterprise Edition (Java EE) 5 platform (Project GlassfishSMALL>SM). The BOF will start with a presentation on the topic, followed by a question-and-answer session. The floor will then be thrown open for an informal discussion wherein the audience members can share their real-world experiences / solicit feedback pertaining to federated authorization issues in the context of their respective organizations.
(Abhijit Belapurkar)
BOF-0443 Integrating XML Into the Java™ Programming Language: Q&A
This BOF is an open Q&A and brainstorming session about the ideas presented in TS-3441 for integrating the syntax of XML documents directly into that of the Java™ programming language.
(Mark Reinhold)
BOF-0491 Developing J2EE™ Connector Architecture Resource Adapters
Resource adapters have tremendous power to extend the functionality of your Java™ 2 Platform, Enterprise Edition (J2EE™ platform) application server, but resource adapters are not as easy to develop as other components such as EJB™ components and servlets: There are a lot of "gotchas," and only a few books are available. Also, the J2EE Connector Architecture (JCA) specification leaves the application server implementer some leniency in how it implements the container contract, leaving you, the resource adapter developer, guessing about how some intricate details of the resource adapter should be implemented. In this presentation, you get a high-level overview of what resource adapters are and what they are used for. You also learn about advanced topics such as transactions, message throttling, poisoned connection pools, the connection life cycle, and connection sharing. The session also offers practical tips about unit testing ("Your resource adapter is only as good as your test suite!"), diagnostics through MBeans, and so on. This session consists of a presentation using lots of code samples and diagrams followed by a question and answer session.
(Sivakumar Thyagarajan, Frank Kieviet)
BOF-0516 What's New and Exciting With AspectJ 5
Over the last couple of years, AspectJ has firmly established itself as the most popular aspect-oriented programming language. It is supported by the AJDT plug-in, which brings full support for the AspectJ language to the Eclipse platform. The latest version of AspectJ and the AJDT support all the new features of the Java™ Platform, Standard Edition (Java SE) 5 platform. You can write pointcuts that match on annotations, create generic aspects, and use the supplied instrumentation agent for out-of-the-box load-time weaving capability in any environment. This BoF session helps you make the most of AspectJ and gives you the opportunity to share your experiences with other users and a chance to discuss future enhancements such as integration with Spring and Hibernate with members of the development team. Attendees will see a brief presentation on future plans for AspectJ and AJDT as well as a live demonstration of recently added capability. The bulk of the session will be given over to discussion. Members of the audience will be invited to ask questions of the presenters and exchange experiences of the technology.
(Andy Dean)
BOF-0539 Meet the Sun Java™ Technology Performance Experts
The Sun Java™ technology performance team is holding an open performance session to field performance questions about Java Platform, Standard Edition (Java SE). It is an open, two-way discussion of all things related to performance, including the latest version of Java SE 6 ("Mustang") and Project Peabody, with the audience driving the discussion. •A Java EE open performance session follows immediately that builds on the items discussed in this session.
(Madhu Konda, Robert Strout)
BOF-0657 Developing Identity Change Management Service for Identity Synchronziation
1. Engineering Context Single sign-on (SSO) is the mechanism that permits users to navigate from one application to another within the trust circle without being asked to log in again in the same session. It offers a better user experience, reduces human error, and is therefore highly desirable but difficult to implement. Today, identity and access management solutions are typically developed for a specific platform that provides a hosting environment to run SSO services. These enterprise solutions are constrained by transport protocols and web services standards. Being a part of data synchronization, data mapping is also a challenging piece of work, because of the variety of vendor products, standards, and different schema designs for individual business needs. 2. Problems and Challenges This has been for some time a central concern of the development for volume-intensive, high-throughput, and low-latency requirements in support of tens of millions of customers in the telecommunications and financial industries. For that reason, a highly flexible and fast-performing identity synchronization solution is an essential SSO footing for service providers with a huge customer base. In addition, it is necessary that the solution be repository-independent. This means that with this solution, all types of existing identity architecture, such as LDAP-based directory server, RDBMS, in-memory database, XML, or even plain files need to be able to interoperate seamlessly and exchange data quickly. In brief, this session presents a solution that can populate numerous identity changes in one data source to one or more target repositories in real time, regardless of their underlying technologies and schema design. 3. Solutions The session discusses how to create a change management solution that provides asynchronous event-driven identity change management with parallel change processing that supports identity synchronization service to manage the identity change information from one or more data sources to one or more identity repositories such as RDBMS or LDAP. The synchronization is transport- and repository-agnostic. In addition, it will design and implement a grid solution to utilize parallel computing to saturate distribute computing resources with high-volume and low-latency service quality. It intends to leverage existing traditional enterprise identity and access management solutions and offers a unique and innovative identity management solution. The BOF will be a short presentation followed by a QA session. A laptop will be used to present slides.
(Lei Liu, Guanghwa Ho)
BOF-0745 Using the Spring Framework to Enable Fast, Effective Testing
One of the major benefits of dependency injection is that it facilitates unit testing and makes it easier to use an agile, test-driven development process. However, important as unit testing is, it isn't the only form of testing important to developers. Fortunately, the Spring Framework is far more than a simple dependency injection container, and among many other things, it provides a holistic solution for making your code easier to test that goes well beyond unit testing. The emphasis is on testing outside an application server or web container, thus greatly improving productivity. This session discusses the following: • How to unit-test applications designed to take advantage of Spring or another dependency injection container. • The limits of unit testing. Although unit testing is extremely important and should be a central part of the development process, it can't pick up all defects and isn't the best approach to testing all classes, and we must understand its limitations. • Issues of testing a persistence layer, including the JDBC™ API and other queries. • Integration testing and the unique support Spring provides in this area. • Techniques for testing web applications. • Testing best practices, with an emphasis on automating tests. The session's focus is on the org.springframework.test package, which provides convenient superclasses for JUnit tests and provides valuable services such as: •Automatic startup of the Spring lightweight container, and dependency injection of test cases. •Parsing and caching of Spring configurations, making it possible to share most configuration between integration tests and a deployed environment. •Automatic creation and rollback of a transaction for each test case, enabling developers to perform data access operations without worrying about side effects. •Helpers to facilitate querying of the database within each transaction, verifying that any expected changes have occurred. The org.springframework.test package enables developers to test their Spring configuration and data access code almost instantly, with no additional bootstrap code and without deployment to the ultimate environment, such as an application server. This ability rests on Spring's transaction management and resource management capabilities, which are equally applicable in a JUnit environment. Besides numerous code examples throughout, the presentation includes a demo showing how an application can be tested as it is developed, so developers don't need to wait for container startup and deployment. You'll see how a Java-based approach can rival the productivity of--and exceed the power of--scripting solutions and how truly agile enterprise Java development can become. If it takes you longer than 10 seconds to find out whether a JDBC API query is invalid or if your O/R mappings contain errors, you will benefit from this presentation.
(Rod Johnson)
BOF-0786 Taking the Plunge: Upgrading to the Java™ 5 Platform at CNET Networks
CNET Networks owns several popular web sites, with a combined average page view of more than 110 million daily. It has a large collection of infrastructure Java™ technology-based code that is shared by many sites. Yet each site has its own software release schedule. In upgrading to Java Platform, Standard Edition (Java SE) 5, it chose to upgrade the production Java runtime environment to the 1.5 Virtual Machine for the Java platform (JVM™), to take advantage of the improved performance and better monitoring tools. Once the production environment of all sites has been updated, the development environment for the common Java code will be upgraded to 1.5, to make new language features available. This presentation discusses CNET's experience in upgrading to Java SE 5, including the company's strategy in carrying out the upgrade, functional and performance testing conducted, JVM tuning results, and challenges overcome. The BOF will start with a short presentation of our experience with upgrading to Java SE 5, including results of the extensive performance testings that we have performed. The second half will be a general question-and-answer and open discussion on JDK upgrade dos and don'ts, pitfalls, and lessons learned.
(Bill Au)
BOF-2097 Distributed Bookstore: XQuery in Java™ Technology-Based SOA Applications
This session uses practical examples to teach XQuery and explain its role in a Java™ technology-based SOA environment. It walks through a web-based used bookstore application (no pets here!) and looks at different architectures with XQuery and Java on the client side, server side, and middle tier. Along the way, it shows how XQuery can be used to access relational database and XML database repositories and how XQJ (JSR 225) enables Java technology-to-XQuery connectivity. Many people who like XQuery still have not grasped where it best fits into their application architecture. The presentation uses a practical example to address this question concretely. One of the speakers is the creator of JDOM, the other was one of the creators of XQuery and an editor of several XQuery specifications as well as DOM Level 1 and DOM Level 2, and each has contributed to XQJ. Both will share from their experience with Java XML APIs and XQuery, applying their experience in both domains to explore the best use of each.
(Jason Hunter)
BOF-2333 Testing by Tools on Large-Scale Web Applications on the Java™ EE Platform
Automated testing plays a vital role in many software development projects. To free developers and QA departments from the massive drain on time and energy required by manual and regression tests, tools are widely used. This is especially true for large-scale web applications and large software development organizations. With SOX legislation in IT governance applied in the last two years, there are rising challenges to public companies, especially to QA. This presentation analyzes the model of a typical browser-based web services application e-commerce system for online consumer services with millions of unique daily users throughout the country. The services may include single sign-on, registration, browsing, searching, content management, and order placing on the Java™ Platform, Enterprise Edition (Java EE) platform with technologies such as Simple Object Access Protocol (SOAP) and many related web services standards. The session describes challenges for timely test of mission-critical web sites intended to attract large numbers of revenue-generating visitors. It details a systematic method for test automation and testing by tools on sophisticated large-scale Java EE applications and introduces a set of commercial and open source tools for systematic, automated, and structured testing that can be used to deliver automated functional, unit, regression, data-driven, keyword-driven, object-driven distributed network and HTTP load stress tests. It also unveils strategic details, by presenting test code samples and configuration parameters for test compiling, deploying, and executing and discusses user experiences with Java EE platform vulnerability assessment (VA) products for SOX IT security compliance. For meeting SOX IT security compliance, it also presents a list of software application and hardware appliance security testing and management tools. Audience: Software Engineer who is doing either black/white QA'ing for Java technology-based web applications. They are expected to get a good sense of how/what to test on Java web application from the open presentation and discussion session.
(Liren Shen (Larry))
BOF-2340 Creating NetBeans Plug-ins for Integration With JavaServer™ Faces, Hibernate, Spring, and EJB™ 3.0 Technology
This session illustrates how to develop plug-ins for the NetBeans™ IDE, using several scenarios. In addition, it presents several strategies and techniques for developing NetBeans plug-ins. For example, it shows how the speaker developed a NetBeans plug-in called GreenBox that integrates the Java™ Platform, Enterprise Edition (Java EE) platform with Hibernate and Spring. The end result is a highly productive development environment. Also included in the presentation is a discussion of how GreenBox will integrate with the Java EE 5 platform.
(Alexandre Gomes, Edgar A Silva)
BOF-2460 Java Verified™ Program: The Latest Activities
The Java Verified™ program is the industry-supported mobile Java™ application testing program. Its constant development brings in the latest information for developers. The session includes an extensive Q&A session for all the participants. Ask questions from the people behind the program development and get the latest news where Java Verified is heading.
(Risto Helin)
BOF-2686 Movie Studio/Hollywood Applications of Java™ Technology
This session describes how Java™ technology is used in Hollywood authored content targeted for playback in next-generation interactive set-top players. It includes a case study that explains the development process for an actual studio-authored Blu-ray disc using BD-Java technology. The session also discusses how the authoring process can be leveraged for broadcast applications such as MHP/OCAP. Sonic can demonstrate a real BD-J title (developed in conjunction with one of the major studios) and discuss the authoring process to achieve the desired results. It would like to stimulate the developer community to think about the potential applications of this market and how together they can push the envelope for more-advanced interactive applications.
()
BOF-2705 What Is the Best J2EE™ Platform Web Clustering Strategy? And Its Performance?
Web tier clustering (by means of front-end load balancing and back-end HTTP session replication) is the most popular form of clustering used in Java™ 2 Platform, Enterprise Edition (J2EE™) applications today. Although the optimum load balancing strategy is well defined, back-end session replication has many different options available, including the transport protocol (TCP, TCP with NIO, and UDP), the replication mode (synchronous and asynchronous), and the replication granularity level (session, attribute, and field). All of these factors can significantly influence a user's experience of a web application as well as the application's scalability. The presenters are using JBento to evaluate different open source web containers' clustering performance. JBento is a new open source toolkit that aims to evaluate different web container clustering setups and their performance. This presentation walks through the various session replication strategies and their pros and cons, the details of the JBento framework, and finally the performance metrics. Attendees will learn about: • Current HTTP session replication strategies • Where the JBento toolkit fits into web clustering benchmarking • The impact of different strategies on performance and scalability Web clustering strategy and tuning guideline is briefly reviewed and is illustrated with an open-source web clustering performance optimization process. The micro benchmark, JBento, will be discussed along with the JBoss web clustering benchmark numbers.
(Ben Wang, Brian Stansberry, Takayuki Kaneko)
BOF-2953 Implementing High-Performance Web Services With Next-Generation Java™ Technology APIs
Web services constitute the foundation of the so-called service-oriented architecture (SOA), and it is therefore important to understand their performance and scalability characteristics. Migrating from other technologies for building distributed systems to web services can be challenging, especially when performance metrics need to be maintained or even improved. Java™ API for XML-Based Web Services (JAX-WS) is the next-generation Java API for building web services. This new API supports various programming flavors for building web services applications. Different flavors have different performance characteristics, and it is important to understand the benefits and trade-offs before architecting an application. This session presents all the intricacies of what works and what does not, using the JAX-WS RI as the basis for measurements. It examines various aspects of JAX-WS performance, including the choice of encoding (XML versus MTOM versus Fast Infoset), secured message performance, use of binding versus nonbinding APIs, servlet versus EJB endpoints, and so on. To address the scalability requirement, the presentation also shares some data showing Web services scalability on chip multithreading systems (CMT) using JAX-WS RI. This BOF will be a presentation session and highly technical in nature filled with performance aspects of JAX-WS and followed by a Q&A session.
(Sameer Tyagi, Santiago Pericas-Geertsen, Bharath Mundlapudi)
BOF-0079 Java™ Technology Secure Communication: Coping With the Complexity of Secure Communication in Java Technology-Based Enterprise Applications
This session, by the VeriSign Information Services (VIS) team, provides a practical guide, based on real-world experience, for implementing secure communication between enterprise applications that include stand-alone Java™ technology-based clients, web applications, and EJB™ applications. It covers the steps for implementing, configuring, and troubleshooting secure communication within a candidate enterprise architecture. It addresses basics and advanced topics in the following areas: 1. Public Key Infrastructure (PKI) 2. Secure Sockets Layer (SSL) and Transport Layer Security (TLS) details 3. How to create and manage key stores and trust stores, using Keytool 4. How to import private keys and certificates into key stores 5. How to write enterprise clients using Java™ Secure Socket Extension (JSSE) for both one-way and two-way SSL 6. JSSE variances in JDK™ software (Sun, IBM, JRockit) 7. How to configure web and application servers to use SSL 8. How to troubleshoot SSL handshake errors in stand-alone Java clients and Java Enterprise Servers After attending the session, Java 2 Platform, Enterprise Edition (J2EE™) developers will have a better understanding of implementing and configuring secure communication in Enterprise Java applications. The BOF will consist of three short presentations hitting on each of the key areas of Java Secure Communication (Overview of Secure Communication Technologies and Certificate Management, Implementing Secure Communication, and Advanced Topics and Troubleshooting Tips/Tricks), followed by a Q&A session.
(Srikanth Veeramachaneni, Colin Lloyd, James Gould)
BOF-0089 What's Next for Java™ Business Integration (JBI)?
A BOF in the truest sense, this session is a facilitated discussion with the attendees for plotting out some potential next steps for version 2 of Java™ Business Integration (JBI). After a brief history and overview of JBI today, the presentation discusses some of the issues that came up during the EG's progress that could not be included in the 1.0 spec, and it opens the floor for discussion of how JBI can best be evolved into a functional and widely adopted touchpoint for integration software vendors in the Java software community. The conversation will, to a large extent, depend on the interests of the participants, but some topics you'll likely see include a distributed JBI container, the mechanics of policy/QoS, the building of a robust JBI systems, and a generic JBI handler/interceptor framework.
(Peter Walker, Ron Ten-Hove, Glen Daniels, David Chappell)
BOF-0159 Java™ Programming Language and Compiler Issues for the Java Platform
A recurring event at the JavaOne conference: This session discusses Java™ programming language issues and issues involving javac, the compiler for the language. Any language and compiler issue can be discussed: • Java Platform, Standard Edition (Java SE) 5 features • Old, well-known features • Proposed features for the upcoming Java platform releases (code-named Mustang and Dolphin) • Wouldn't it be nice...?
(Peter von der Ahé, Jonathan Gibbons, Wei Tao)
BOF-0268 Jini™ and JavaSpaces™ Technologies
The Jini™ and JavaSpaces™ technologies provide a set of tools for building distributed applications that can scale and adapt to changing requirements and environments. They accomplish this by providing mechanisms for dynamic discovery, pushing object-oriented programming onto the network, and acknowledging the failure modes introduced by networks. Members of the Jini community are using these technologies in areas as diverse as service-oriented architectures, scalable compute grids, large-scale web applications, and sensor networks. This session follows an interactive format in which all aspects of Jini and JavaSpaces technology are open for discussion. So, whether you're new to Jini technology, an experienced developer, or simply an interested observer, bring your questions and ideas on Jini technology to this session with members of Sun's Jini technology development team. There should be something of interest to all. Attendees can expect an open, interactive and lively exchange of questions, answers, and ideas related to Jini technology, JavaSpaces technology, Java RMI, and distributed systems in general. The speakers are the current Sun architects for those technologies; thus, this exchange will be "from the source".
(Brian Murphy, John McClain, Peter Jones)
BOF-0312 Meet the Java™ Technology Deployment Team
In this session, meet the team behind various deployment technologies, such as Java™ Plug-in, Java Web Start, JDK™/JRE™ Install, and Java Update. Also learn about various ease-of-deployment features in the upcoming Java Platform, Standard Edition (Java SE) 6 and 7 releases.
(Stanley Ho, Andy Herrick, Thomas Ng, Calvin Cheung)
BOF-0425 Designing Elegant Desktop Applications
The performance and convenience of Swing makes it easier than ever before to create great-looking visual demos that show off the power of the Java 2D™ API. Swing developers building real-world everyday desktop applications can also apply these techniques in moderation to provide a more visceral, attractive, and intuitive user experience. This presentation discusses reusable implementation techniques for designing and writing Swing applications with attractive and elegant user interface elements such as animated transitions, shadows, quick search, balloon notifications, component highlighting, and specialized list renderers. Participants will gain from the session's ideas and insight into enhancing real-world Swing applications with subtle visual effects.
(Brian Duff, Cedric Dandoy)
BOF-0511 Performance-Tuning an Enterprise Java™ Technology-Based Application in a Scaled-Down Environment
Businesses always want to know if the deployment of a new application or a new release of an existing application will affect the performance of their existing IT infrastructure. However, the IT department very often cannot spare high-capacity hardware for predeployment performance testing and tuning. Therefore, system integrators are frequently forced to tune their predeployment applications in a scaled-down environment. This presentation discusses the techniques for tuning Java™ 2 Platform, Enterprise Edition (J2EE™ platform) applications in a scaled-down environment. The techniques are drawn from the many years of experience of the CGI Enterprise Application Performance and Tuning team in tuning J2EE applications for clients in the telecom, banking, insurance, and government sectors. The presentation starts with a discussion of the purpose of predeployment performance tuning of J2EE applications: • Expose and fix code bottlenecks. • Make system configuration recommendations. • Predict performance in a production environment with a certain level of confidence. The discussion of the techniques for tuning J2EE applications in a scaled-down environment includes the following: • Environment scaling: A discussion of the techniques for selecting a scaled-down environment. • System load scaling: A discussion of how to proportionally scale down the system load (concurrency, think time, number of hits per second) and how to determine the right mix of transactions to make up the load. • On-demand and top-down monitoring: How to set up monitoring of system resources at the OS, Web server, J2EE platform container, Virtual Machine for the Java platform (JVM™), and database levels in a way that can save computing resources while identifying root-cause performance problems. A discussion of the various monitoring options includes the various commercial tools as well as the built-in monitoring and logging capabilities of the major commercial J2EE platform containers. • Performance modeling: Establishing a performance model of the J2EE application so that the performance of the system in a production environment can be estimated with a certain level of statistical confidence, based on the test results of the J2EE application in a scaled-down environment. • Performance simulation and isolation: In a scaled-down environment, many calls to related systems are stubbed out. The stub code needs to simulate not only the function but also the performance of the remote system. The session includes a discussion of the techniques of simulating and/or isolating the performance of the remote system. The presentation also discusses the key tuning areas in a J2EE application at the JVM, OS, container, and application levels. The speaker will present from a laptop, hand-outs will be supplied and followed by Q&A.
(Dalim Khandaker, Jimmy Xu)
BOF-0559 Meet the Sun Java™ EE Platform Performance Experts
Sun's Java™ platform performance team is holding an open performance session to field performance questions about Java Platform, Enterprise Edition (Java EE) and web services. It is an open, two-way discussion of everything related to the performance of Java EE 5, Project GlassfishSM, and Java Web Services Developer Pack ("JWSDP") 2.0, with the audience driving the discussion. *This session is held immediately after the Java Platform, Standard Edition ("Java SE") open performance session and builds on the items discussed in that session. This BOF is an open, two-way discussion of everything related to the performance of Java EE 5, Project Glassfish and Java Web Services Developer Pack ("JWSDP") 2.0, with the audience driving the discussion.
(Scott Oaks, Suveen Nadipalli, Binu John)
BOF-0621 The eBay Matrix: Designing an Enterprise Object and Development Model That Scales Across the Globe
When it comes to putting your business on the web, writing an application is only the first step. Ensuring the application is flexible enough and scalable enough to meet the unknown demands of its future is where the real challenge comes in. The technologists at eBay have built an incredibly complex architecture that enables millions of people around the world to perform dynamic transactions in real-time on the eBay platform. An application that was once run in the home of a Silicon Valley engineer, eBay now supports more than 345 million searches per day and allows for more than $1500 worth of goods to be traded every second in its global online marketplace. This session will go into the nuts and bolts of what makes eBay's environment work. It will cover the flexible integration architecture that underlies eBay, discuss eBay’s model of development automation and grid-style management, touching on hardware and software deployment, operational management, capacity planning, and other aspects of eBay's complex development and deployment environment. In addition, the session will cover eBay's vision for achieving the next level in scalability, reliability and manageability of one of the world’s largest e-commerce platforms. This short presentation is followed by a Q&A session.
(David Raccah)
BOF-0802 Financial Engineering Techniques in Java™ Technology
During the last decade, financial engineering techniques have become more and more dominant in the financial industry. Financial engineering covers areas such as asset pricing, optimal portfolio allocation, and risk management. The implementation of these techniques involves large-scale Monte Carlo simulation and high-performance computing. Java™ technology, JXTA™ technology, and grid computing are natural candidates for the underlying implementation. Using several code examples, this presentation aims to provide a hands-on demonstration of the use of Java technology for Monte Carlo simulation in financial engineering. The target audience for this presentation is software engineers and financial analysts interested in implementing financial engineering techniques using Java Platform, Standard Edition (Java SE) technologies. Minimal knowledge of finance is assumed. The BOf consists of a hands-on presentation and includes concrete examples and complete code samples in the Java programming language. The presentation provides an overview of Monte Carlo methods and how to implement Financial Engineering and Derivative Pricing algorithms in Java technology. It includes a demonstration of the usage of Open Source GRID technologies such as the JXTA Peer-to-Peer framework for solving computationally complex problems in Financial Engineering. The BOf will consist of a hands-on presentation, and will include concrete examples and complete code samples in Java technology. The presentation will provide an overview of Monte-Carlo methods and how to implement Financial Engineering and Derivative Pricing algorithms in Java. It will include a demonstration of the usage of Open Source GRID technologies such as the JXTA Peer-to-Peer framework for solving computationally complex problems in Financial Engineering. Audience of the presentation will get a hands-on understanding of the algorithms used for Financial Engineering and how Java can be applied to solve these problems in grid and distributed environments.
(Ami Navon)
BOF-2000 Object-Based Reports for Java™ Desktop Technology and the Java EE Platform
Currently available object-based reporting tools for Java™ technology have reached a level of maturity and features that enables them to replace traditional database-based reporting tools with advantages in most scenarios. Because development best practices with the Java programming language today include the use of many object-oriented design patterns and frameworks such as Hibernate and JavaServer™ Faces (JSF™ ) technology, preserving this object-oriented view of data in reports presents many benefits in developer productivity and tighter integration with frameworks for other tiers, such as persistence and user interface. This session surveys some open source and proprietary tools, including but not limited to JasperReports, Eclipse BIRT, and StyleReports, evaluating their use in many Swing and web development scenarios, such as: • Presenting graphical previews. • Generating PDF and XLS documents for web browsers. • Taking advantage of application server connection pools. • Using object caches and precompilation techiniques to improve performance and scalability. The presentation also demonstrates a set of plug-ins that integrates the JasperReports reporting engine and iReports WYSIWYG report designer into the NetBeans™ IDE, which, when complemented by JNDC Data Binding components, provides a complete open source solution for RAD application development using Java technology. A second demo shows how the same set of tools can be used alongside the Hibernate persistence framework, joining RAD development techiniques with object persistence, and a third demo shows the use of the same report templates as part of a Java Platform, Enterprise Edition (Java EE) web application using the MVC architecture in such a way that the reporting engine is just another view for the application object model.
(Fernando Lozano)
BOF-2277 Using JSR-226 (SVG) and JSR-239 (OpenGL® ES) to Create Compelling Mobile Applications That Combine 2-D and 3-D Graphics
Both JSR-226 and JSR-239 provide rich options for those looking for cutting-edge graphical applications on the Java™ Platform, Micro Edition (Java ME). This BOF session presents ideas on using these technologies together to bring the quality of SVG and the interactivity of 3-D to a new generation of mobile applications.
(Daniel Rice, Surith Thekkiam)
BOF-2311 Evolution of a Web Application Architecture
This session explores the evolution of JSFCentral.com, a community site focused on JavaServer™ Faces technology. The session explores the development of the site, focusing on specific trade-offs and design choices. It follows the evolution of the site's architecture through four distinct stages: 1. A pure HTML site published via XML and XSLT 2. A JavaServer Pages™ (JSP™) technology site generated through XML and XSLT 3. A combination JavaServer Faces technology and pure JSP technology generated through XML and XSLT 4. A portlet-based site using JSF and portal features Specific challenges, such as maintaining site stability and URLs are covered. This BOF will consist of a presentation interspersed with suggestions gained from the development experience. It will end with an open discussion of different approaches for evolving architectures.
(Kito Mann)
BOF-2493 Orange and the Java™ ME Platform
Java™ technology is the dominant open platform for mobile devices in the Orange network. Orange is offering a wide range of Java Platform, Micro Edition (Java ME) platform products and solutions for its subscribers. It has also developed a strong relation with the Java ME platform developer community. Finally, Orange is a very active company in Java ME platform standardization. All the aspects and details of the Orange/Java technology are presented in this session.
(Cuihtlauac Alvarado)
BOF-2535 Project FIFI: Bridging the Interoperability Chasm
This session discusses the current efforts to port the FastInfoset standard (ITU-T X.891) to Microsoft's Windows Communication Foundation (WCF, formerly code-named Indigo). FastInfoset For Indigo (FIFI) is a research project at Sun targeted at making Windows clients more interoperable with the Java™ web services environment. FastInfoset is a binary encoding of the XML Infoset. It is a very efficient, compact representation of the XML Infoset that can be used to establish web services in the enterprise. It is an ISO/ITU-T standard and ships with Sun's Java Web Services Developer Pack (JWSDP) 1.6 and higher. The JWSDP is Sun's primary SOAP stack. With recent changes and the addition of components such as JAX-WS and JAXB 2.0, it has become one of the most widely used web services APIs. WCF is the new and redesigned SOAP stack from Microsoft that is slated to be shipped with all new Windows operating systems. As such, it is available on numerous clients. WCF ships with a variety of SOAP message encoders, including a text encoder, MTOM, and a proprietary binary encoder. Yet it was designed quite modularly and thus allows the injection of custom protocols in a straightforward way. FIFI exploits the extensibility of the WCF framework and implements FastInfoset on this platform. By doing so, it enables WCF clients to efficiently interoperate with Java technology-based web services providers, such as the Sun Java Application Server. It is a primary example of how Sun is enabling its customers to cross the interoperability chasm between the open Java platform and proprietary solutions.
(Paul Sandoz, Santiago Pericas-Geertsen, Gerald Beuchelt)
BOF-2641 Moving From a Windows-Based, On-Demand Build Environment Using Visual SourceSafe and Ant Scripts to a UNIX System-Based, Continuous Integration Build Environment Using CVS, Maven, and CruiseControl
United Behavioral Health (a subsidiary of United Health Group) developed a build system for its Java™ projects without a real plan. The developers added components piece by piece as time allowed. First they added the source code control system, Microsoft Visual SourceSafe (VSS), so code could be checked in. Then they added a combination of manual VSS commands and MS-DOS batch files to spit out a packaged build. This approach worked fine for the first Java application. A team of two developed the application, and the application was relatively small. As they added more applications and more developers, they realized that they needed a more automated and repeatable build process. So Jakarta Ant was added to the mix. This helped make the builds more repeatable, but the build process was still pretty labor-intensive. Custom Ant scripts were crafted for each project. Build automation tasks on Windows platforms were being hampered by mandates from United Health Group's corporate security group. In particular, administrator rights were going to be taken away from developers as the corporation migrated to Windows XP. At this point, they took a step back and looked at what they wanted to accomplish with any configuration management and build system. They needed to automate the build process and make it repeatable, so they could reduce the amount of time and money it was taking to deliver software to the field. This session describes how they met the company's needs by creating a Continuous Integration Build environment, leveraging CVS, Maven, and CruiseControl in the Solaris Operating System. It details the specifics of: • Translating existing Ant scripts into Maven projects and plug-ins. • When and how to create your own Maven plug-ins. • Configuring a build life cycle by using Maven and CruiseControl in a UNIX environment. • Integrating Maven POM files with a development IDE (Borland JBuilder), using Mavenide. • Effective use of Maven SNAPSHOTs in both the development and build environments.
(Paul Roberts)
BOF-2774 Essentials on Performant JavaServer™ Faces Apps: Client Versus Server Side
State saving in JavaServer™ Faces (JSF) technology is a hot topic--it is the single most important configuration setting for making your applications perform like they should. This presentation tells you what the speakers have learned in implementing state saving in Apache MyFaces--in using state saving in their applications, profiling their performance, and discussing the results with their user community. Expect to learn lots about how state saving in JSF works and how to use JSF for applications that scale.
(Martin Marinschek, Manfred Geiler, Dennis Byrne)
BOF-0007 JXTA™ Technology Security Best Practices
This birds-of-a-feather session focuses on security best practices for JXTA™ technology developers and deployers. Subtopics include relay/rendezvous server hardening, client seeding policies, certificate management practices, PSE membership service, access service integration, and integrating custom application security policies.
(Mike Duigou)
BOF-0178 Community Development and JDK™ Software: Where To Now?
The Participation Age is here today for JDK™ software. The JDK software community on java.net is 18 months old, and we have seen it through to the release of the first participatively developed JDK: Java™ Platform, Standard Edition (Java SE) 6 ("Mustang"). Since November 2004, you've been able to access weekly source and binary snapshots of prerelease builds and contribute your own fixes and code. Where have we come from, and where are we going? This session explores the participation opportunities for developers who want to directly contribute to the implementation of the JDK itself. It discusses successes with Java SE 6, what's been learned, and plans to extend and improve community involvement in Java SE 7 ("Dolphin"). The formal presentation is brief, because the presenters would like to engage the community in a dialogue about what's working, what could be improved, and where YOU want to see the JDK software community go.
(Ray Gans, Rich Sands, David Herron)
BOF-0209 What's New With User Experience Design for the Java™ SE Platform
Do you design and build GUI applications with the Java™ Foundation Classes/Swing API (Swing, AWT, and Java 2D™)? Do you internationalize these applications, localize them, and make them accessible? Do you deploy them by using Java Web Start or Java Plug-in? What about getting the JRE on your clients' machines in the first place? If you have questions about how to use these technologies to design good user experiences, come to this session to discuss your suggestions for enhancing Java Platform, Standard Edition (Java SE) with its user experience designers. Hear about advances in the user experience of Java SE including the deployment and GUI toolkit technologies. Come and ask questions and offer your suggestions for improving Java SE's user experiences.
(Michael Albers, Ann Sunhachawee, Coleen Baik)
BOF-0314 Java™ Technology on 64-Bit Platforms: Advantages and Disadvantages
Java™ Virtual Machines are now available across several 64-bit hardware platforms, some of which, such as IBM AIX/PowerPl64 and Sun Solaris/Sparc®64, have been around for a long time. Others, such as Linux and Windows/x64, are new in the 64-bit space. To provide two key advantages, 64-bit Java applications leverage 64-bit computing features: • The ability to configure and run with Java technology-based heaps much larger than the ~2 to 3-Gb limitations of the 32-bit platforms • Automatic and transparent just-in-time (JIT) code generation enhancements to leverage 64-bit CPU performance extensions Java Platform, Enterprise Edition (Java EE) applications running on 64-bit platforms can see both performance gains and losses. Significant performance gains can be observed in applications capable of taking advantage of 64-bit features. For example, reducing database requests by leveraging a large heap space to cache database data can provide significant gains. However, there is also a downside for 64-bit applications. All address references are 64 bits wide, twice the size of address references in 32-bit deployments. This results in an increased memory footprint and can reduce hardware cache efficiency. Therefore, applications may actually see a performance loss. Java Virtual Machines are generally available in both 32- and 64-bit editions for supported 64-bit platforms. Choosing the preferred edition for optimal performance requires an assessment of the application's requirements and characteristics. This session details Java technology and Java EE platform performance on 64-bit platforms including: • 64-bit processor technology overviews • Java technology-based enhancements for 64-bit • Detailed Java EE 64-bit performance results • Performance expectations and migration guidelines for Java EE applications This BOF will be a session about Java technology and 64-bit! We will share our experience with Java performance and memory considerations for 64-bit platforms - using a slide presentation. The material has been designed to create a highly interactive session. We are interested in understanding if you run on 64-bit today or if you plan to in the future. This session will detail what to consider when choosing between a 32-bit and 64-bit Java runtime.
()
BOF-0322 OSS Through Java™ Technology Web Services: Overview and Roadmap
This session provides an in-depth, up-to-date overview of the OSS through Java™ web services specification model. The presentation explores the OSS through Java technology initiative's web services adoption technical strategy. It describes what the OSS through Java technology Web Service profile is and discusses how some of the more advanced web services standards are being used to implement reliable web services. Learn about the motivations for using web services in OSS through Java technology. The session includes a brief overview of the web services support in EJB™ 3.0 and Java™ 2 Platform, Enterprise Edition (J2EE™) 1.5, which provides the context for a detailed presentation of the OSS through Java technology web services strategy. Special attention is given to the following characteristics of OSS through Java technology web services: granularity, relationship with other OSS through Java technology interaction models (EJB and XML messaging), specification model, iterators and conversational web services, and finally using OASIS Web Services Notification 1.3 for event management. Learn how to use OSS through Java Web Service endpoints in complex business processes modeled via BPEL.
(Pierre Gauthier)
BOF-0432 XMLBeans 2.1: A Java™ Technology Developer's Perspective
With the emergence of service-oriented architecture, most developers are now working with XML on a regular basis. This causes a need to maintain productivity while continuing Java™ technology's ease-of-use programming model. Many toolkits are available for working with XML but none that fills these needs like XMLBeans, which gives developers an easy way to work with XML from within Java technology. XMLBeans provides full W3C Xml Schema support and gives users access to these powerful schema features in Java technology. This session provides a brief introduction to XMLBeans. This is followed by a discussion of the new features available in XMLBeans 2.1, what these features mean to Java technology-based developers, and how to make full use of these features. The session concludes with a demo of a real-world application that makes use of XMLBeans 2.1.
(Raj Alagumalai, Jacob Danner)
BOF-0631 Developing With Java™ Technology on Mac OS X
As the only high-volume desktop operating system to ship with a highly optimized, tightly integrated implementation of the Java™ platform, Mac OS X, with its UNIX® system-based, open source core, has emerged as one of the the best places to develop and deploy applications based on Java technology. In this session, you gain an understanding of the current state and future directions of Mac OS X's Java technology implementation and the techniques required to quickly develop full-featured, scalable, Java technology-based solutions to deploy in any Java platform-enabled environment. The session includes a close look at key development tools available on Mac OS X, including Xcode, Apple's Integrated Development environment; how Java technology takes advantage of Quartz, Cocoa, and other Mac OS X frameworks; and user interface issues, file I/O, drag and drop, and image performance and enhancements that can be made to your Java technology-based application's Mac OS X user experience without sacrificing portability or simplicity.
(Alan Samuel)
BOF-0690 DI:Configuration Files Must DIe!!! -- Dependency Injection Made Easy
Today DI is the most popular Java™ technology, but has it made our development work really easy? You must be still irritated with writing configuration files. Seasar2, the most popular open source framework in Japan, frees you from such annoyance and brings you comfortable DI life. You will never look back at the DI as we know it today. Topics include: - Outline of Seasar2 and The Seasar Foundation - "Less configuration" concept - Problems of DI today - How Seasar2 deploys "convention over configuration" - Benefits and weak points of annotation - Seasar2 versus Spring versus EJB™ 3 specification We will present slides. As time permits, with a short Q&A session.
(Yasuo Higa)
BOF-2172 Challenges in Developing MIDP 2.0-Based Multimedia Applications for Cell Phones
The speaker shares the experiences he gained during the development of the Download Assistant, a MIDP 2.0-based multimedia application. This application is shipped on most current Siemens (now BenQ) cell phones. The presentation discusses several challenging development issues that are specific to Java™ ME platform MIDP 2.0 applications, such as setting up a build environment with nightly build and test capabilities, multimedia challenges in regard to UI implementation and media formats, the use of obfuscators for size optimization, multitarget development with preprocessors, internationalization and operator/country-dependent configuration, and the MIDP 2.0 security framework. I will give a PowerPoint presentation about my experience with Java ME MIDP 2.0 challenges during the last 2 years. During the presentation and afterwards I would like to discuss the challenges and proposed solutions with the audience.
(Kai Toedter)
BOF-2269 The Wiseman Project: An Open Source Java™ Technology-Based Implementation of WS-Management
WS-Management is a SOAP- and web-services-based protocol for systems management. It was developed by several companies, including Microsoft, Intel, and Sun Microsystems, and has been submitted to the DMTF for standardization. The wiseman project is an implementation of WS-Management for Java™ Platform, Standard Edition (Java SE). This presentation introduces the architecture of the wiseman project and walks developers through code fragments to illustrate writing management clients and providers in Java technology that speak the WS-Management protocol. Attendees at the WS-Management BOF can expect to get a quick intro to WS-Management and its open-source Java implementation. There will be a demonstration of the Java implementation inter-operating with Microsoft's implementation.
(Akhil Arora, Josh Cohen)
BOF-2338 Testing Strategy and Vulnerability Assessment on a Large-Scale Web Service Application for Commercial Web Sites Built on the J2EE™ Platform
Testing becomes a major part of web development nowadays. It is a shame to have a web application with great features but not working as expected in real world or so easy to be broken because of poor testing. Although creating a test for some function requirements appears to be simple, planning and developing tests in a sustainable way for rising online features brought by Java™ technology is not a trivial task at all. With the rise of new enterprise regulations such as SOX legislation on IT Governance, testing commercial sites with large user volume becomes a great challenge. The art of testing becomes more important than ever. In this presentation, a model of a typical browser-based web services application eCommerce system for online consumer services, with millions unique daily users over the country, is analyzed. The services may include single sign in, registration, browsing, searching, content management and order placing e-commerce on Java 2 Platform, Enterprise Edition (J2EE™ ) with technologies such as Simple Object Access Protocol (SOAP) and many related web services standards. QA challenges are discussed for mission-critical web sites that are intended to attract large numbers of revenue-generating visitors. A systematical way for test planning and developing on sophisticated large-scale J2EE application is given in details to meet industry's needs. A successful quality assurance methodology is unveiled by presenting Java code samples for white box testing; Ant tasks for compiling and deploying webservices source and executing automated tests; a set of open source and commercial tools for functional, load, stress testing on Java applications; and user experience with J2EE platform Vulnerability Assessment (VA) products for SOX legislation IT security compliance. Audience: Software Engineer who is doing either black/white QA'ing for Java technology-based web applications. They are expected to get a good sense of how/what to test on Java web application from the open presentation and discussion session.
(Liren Shen (Larry))
BOF-2455 A Script for More-Powerful Java™ Technology-Based Applications
With the availability of embeddable interpreters on the Java™ platform, it is now easy to make your applications scriptable. Scriptability allows you to add features more easily. More important, it will enable your power users to create their own custom tools. But there are things to watch out for. This session gives developers everything they need to know to get started. The presenters survey the available interpreters and share their experiences in using them. Then they demonstrate how to add scripting support to an existing application, with three successively more complex and more powerful examples. The presentation focuses mainly on using the object model as a domain-specific language for scripting. It covers how to deal with issues such as versioning, application safety, security, GUI concerns, and threading impact. By the end of the session, you'll have experience with the decision process for scripting and have enough information to develop a plan and start adding scripting support to your own Java technology-based applications. This BOF will be include a short presentation of the topics, interspersed with discussion of the ins and outs of embedding scripting in Java applications.
(Bob Evans)
BOF-2655 XML Processing With RAX-J
bof-2655 XML today is a ubiquitous, established standard for representing and processing any kind of data. But XML programming still suffers from severe performance problems. And within bigger XML applications, interaction of connected XML processing steps is a problem in itself, because weakly tuned components create unwanted complexity, huge memory requirements, and bad performance. This presentation discusses RAX-J, a Java™ technology-based XML processing solution that addresses both the performance problem and the complexity barrier of modern XML applications. The main design decision in any XML library is how to model and navigate an XML document: RAX-J uses the concept of the XML cursor, a sliding window over an XML document that presents one node at a time. The design of the XML cursor is intended to make use of token-based, hardware-acceleratable parsing technology to achieve high performance in the parsing step while avoiding the memory burden of traditional tree models such as the Document Object Model (DOM). Still, integration with existing XML components is possible with connectors to old-style XML representations. On top of the XML cursor standard, XML functionality such as XPath and XSLT is offered, which enables you to address and manipulate XML documents in a clean and abstract way. Further high-level, application-oriented APIs for XML Signature, SOAP, and the like enable developers to concentrate on application logic. XML processing pipelines can be set up to seamlessly pass XML documents and result data between processing steps, to avoid the need for intermediate conversion of processing results, a widespread pitfall causing bad performance. The complete coverage from token-based XML programming to application-oriented APIs enables XML application developers to choose the best-fitting tool. In network-centric programming with a high transaction volume but a small amount of programming logic, developers can take advantage of high-performance XML parsing and presentation. In an enterprise-application environment, they can build complex applications by choosing the high-level functionality of XML processing, leading to clean and well-performing programs. The session includes ample coding examples as well as benchmarks that show RAX-J achieving, on average, three to six times the performance of comparable, performance-oriented XML technology. This BOF will present an architectural overview of RAXJ and show programming examples using my notebook. It is followed by a Q&A session.
(Johannes Döbler, Sen Zhang)
BOF-2663 Component Programming With OSGi
Eclipse vividly demonstrates the success of component-oriented programming with the Java™ programming language. As you know so well, Eclipse is based on a large set of plug-ins that collaborate to deliver the user experience. Not so well known is that the base that enables this collaboration model is lean, flexible, managed, and standardized: It is an instance of the service platform as specified by the OSGi Alliance. This tutorial shows you hands-on how to develop applications based on OSGi bundles (plug-ins are bundles). The session starts with a simple "Hello World" application that highlights the modularity and life cycle features. This application is then further developed into a web-based application that uses services from other bundles as well as providing services to other bundles. The presentation shows you what is under the covers as well as how Eclipse keeps any complexity under those covers. After this tutorial, you will be able to write better, more flexible, more standalone, and more dynamic bundles that can be deployed in any OSGi service platform (Eclipse's Equinox or others).
(Jeff Mcaffer, Peter Kriens, Thomas Watson)
BOF-2810 Mobiles Get Senses: Applications With JSR 256 Mobile Sensor API
The number of sensors in mobile devices is growing rapidly, enabling new opportunities for application developers. This session demonstrates how the Mobile Sensor API can be used in applications. Use cases and applications for sensors are presented. Sensors vary from physical sensors such as magnetometers and accelerometers to virtual sensors, which combine and manipulate the data they have received from other kinds of physical sensors. Examples of virtual sensors are a battery-level sensor indicating the remaining charge in a battery and a field-intensity sensor that measures the reception level of the mobile network signal in a mobile phone. The sensor can be connected to the mobile device in different ways, examples of which are embedded, short-range wireless, wired, and remote connection. New and exciting applications are enabled by the use of sensors. For example, games can benefit from motion-related input modalities, because the device can act as a game control with the help of accelerometers. Users can monitor their bodily functions during sports exercise and provide information for fitness category applications, for example, by using heart rate sensors and step counters. This session includes demonstrations of concrete applications using sensors. No prior knowledge about sensors is needed to follow the presentation. There will be some concrete examples and a demo of the use of the JSR-256 API.
(Pia Niemela, Kimmo Loytana)
BOF-2994 JSR-273: Design-Time API for the JavaBeans™ Specification
This BOF session is a chance to get the latest information on the JSR 273 API and meet the EG members to provide your feedback. This is your chance to be heard!
(Joe Nuxoll)
LAB-7160 Simplified Development of Wireless Sensor and Actuator Applications Using Java™ Technology
The possibilities and potential applications for wireless sensors and actuators are limited only by the imagination, however, current state-of-the-art requires developers to program in low-level languages with little or no debugging support while running on device. Researchers at Sun Labs have developed a small, battery-powered device, Project Sun SPOT, that provides a versatile, Java™ technology-based platform for development of wireless sensor and actuator applications. The Sun SPOT platform provides a sensor board for I/O, an 802.15.4 radio for wireless communication, and familiar IDEs such as NetBeans™ IDE to write and debug code. The Sun SPOT system includes the Squawk JVM™ machine, a tiny Java Platform, Micro Edition (Java ME) VM written almost entirely in the Java programming language . Industry and academia have received the Sun SPOT device with much excitement, as it brings Java to the world of wireless sensors/actuators, allowing developers to use standard Java development tools to work directly on device. In this Hands-on Lab you will learn how to write simple sensor/actuator applications using the Sun SPOT system and NetBeans: access various sensors (accelerometer, light sensor, LEDs), and use the radio to communicate between two or more SPOTs. Participants will each have access to two Sun SPOT devices throughout the Lab session.
()
TS-1387 Twelve Reasons to Use NetBeans™ Software: Episode 2
The advances in NetBeans™ software have not gone unnoticed by developers--the NetBeans software developer base has tripled within a year. The arrival of the NetBeans IDE 5.0 development environment offers a wealth of new and innovative features unavailable from other IDEs. In less than a year, NetBeans software has added sophisticated features that make developers and teams of developers considerably more productive. Last year's advances in areas such as GUI development (Matisse), developer collaboration, visual mobile development, new refactorings, and profiling have been considerably further advanced with the latest releases. This presentation focuses on and demonstrates some key reasons why developers are looking at NetBeans software. It also demonstrates and discusses the latest features.
(Charles Ditzel, Inyoung Cho)
TS-1512 Effective Java™ Reloaded
It has been five years since Effective Java™ was released. The Java™ platform has evolved, and we've learned more about how to use it to best effect. This session covers new material that will be added to the second edition. This material should be useful to every working Java technology programmer.
(Joshua Bloch)
TS-1615 Java™ EE 5 BluePrints for AJAX-Enabled Web 2.0 Applications
This session discusses how Java™ Platform, Enterprise Edition (Java EE) 5 technologies can be used to create next-generation Web 2.0 applications. It covers how rich interactive GUIs similar to traditional desktops can be designed with Asynchronous JavaScript™ Technology and XML (AJAX), enabling features such as mash-ups, tagging, and user participation. It also discusses patterns for using Java API for XML Web Services (JAX-WS) to design AJAX back ends using REST-based web services. In addition, it examines security features such as using Captchas to prevent automated attacks and using security images to prevent phishing scams. It discusses programming model issues such as use conventions, how to leverage JavaScript™ libraries, designing AJAX-enabled JavaServer™ Faces components, and using a single-page paradigm for a Web application. It also examines the use of the model-view-controller pattern for AJAX and contrasts it with its use in traditional Web applications, discusses strategies for producing and consuming RSS feeds, and covers how to plug in a search engine as well as integrate search engine services such as Google.
(Inderjeet Singh, Sean Brydon)
TS-1685 Blu-ray: Java™ Technology Goes Hollywood!
DVD is about to be replaced by a new format promising far better audio and HDTV video, far greater storage, and an exciting interactivity platform powered by the same Java™ Platform, Micro Edition (Java ME) technologies already widely deployed for MHP and OCAP digital TV devices. Blu-ray is backed by most of the major consumer electronics companies, PC vendors, and movie studios and promises to have as great an impact on consumers' movie viewing habits as VCRs and DVD players did.
(Bill Foote)
TS-3352 Introducing Seam
Enterprise JavaBeans™ (EJB™) 3.0 technology and JavaServer™ Faces technology are perhaps the most exciting new developments in the Java™ Platform, Enterprise Edition (Java™ EE) 5. Seam is an innovative new application framework that integrates the EJB 3.0 component model with JavaServer Faces technology as a presentation tier. Seam builds on the standard extension points provided by both specifications and provides a set of Java technology-based annotations that extends the standard annotations defined by the EJB specification. In addition, Seam introduces several innovative new ideas: managed conversations; declarative and contextual application state management; and bijection, a generalization of the notion of inversion of control and integrated business process management. Traditional web applications are incredibly vulnerable to bugs and performance problems relating to state management. Developers are forced to handle issues such as back button navigation, multiwindow browsing, and session size management in an utterly ad hoc fashion. Web frameworks offer only extremely fragile state management constructs such as HttpSession and HttpRequest. Access to transactional components from the web tier has also been problematic. The Java 2 Platform, Enterprise Edition (J2EE™ platform) provided no way to have simultaneous access to state held in contexts associated with the web request and state held in transactional resources accessed via the EJB specification. Finally, the J2EE platform had no first-class construct for representing state associated with a long-running business process. Seam tackles all these problems and provides a uniform model for stateful components in the Java EE 5 platform. The combination of JavaServer Faces technology, EJB 3.0 technology, and Seam has the potential to deeply change the way enterprise applications are designed and architected and to massively increase developer productivity.
(Gavin King)
TS-3792 "Bare Metal": No Need for an OS in a Virtualized Server Environment? An Alternative to MVM?
Virtualization software is rapidly making inroads in server environments, including fairly small and inexpensive x86 and x86-64 servers. Many Enterprise Java™ technology deployments run one app.server/Java VM per machine. Virtualization software makes it possible to run multiple operating systems on the same box. If the only thing you need to run on one of these virtual server boxes is a single Java VM, do you really need an operating system? This session outlines a pilot project at BEA Systems that found out what could be gained by removing the operating system from a virtualized environment. It covers how this solution works and analyzes its advantages and disadvantages. It also discusses what happened with I/O, networking and device drivers, and Java Native Interface code without an operating system and how this project managed to utilize the existing operating systems to avoid implementing this kind of functionality. The session also compares this technology with the Multitasking Virtual Machine (MVM) technology from Sun Labs and shows how this solution could potentially be an alternative complement to the MVM technology by implementing isolates (JSR 121) at a different level.
(Joakim Dahlstedt)
TS-3853 SWT: The Eclipse Standard Widget Toolkit
The Standard Widget Toolkit is a Java™ class library for creating graphical user interfaces. It was created as part of the Eclipse project to facilitate the building of efficient, portable applications that directly access the operating system's user interface facilities. With SWT it is possible to create applications that are indistinguishable from native applications on the desktop. We will provide a guided tour of the toolkit by breaking the task of building a graphical user interface-based application into component parts, and showing how these are modeled in SWT through a series of examples. This will allow us to explore how SWT can be used to create user interfaces for Java applications.
()
TS-4219 Extending the Java™ Runtime: Plug-in Capacity and Availability for Java Technology
Today most clustering and caching products on the market are API based - basically designed around map.get() and map.put(). Unfortunately a design like that has some negative side effects. For example it: • Breaks Object Identity (e.g. Java™ technology's "pass-by reference" semantics) • Perturbs your Domain Model - developers are forced to layer some kind of primary-key mechanism onto their domain objects, which forces them to think like relational database designers • Tangles the business logic with clustering code • Developers can not trust regular Java thread coordination anymore (e.g. synchronized(), notify(), wait() etc. - but need additional coordination constructs) • Requires serialization of whole object graphs - cannot do fine-grained updates, which affects scalability Can it be done better? Come to the talk and see that by preserving Object Identity and extending Java technology's Memory Model and thread coordination semantics, we can actually address all these problems transparently.
(Jonas Boner)
TS-4936 Mobile Service Architecture Initiative: JSR 248 Hitting the Market Soon
This session provides an overview of what has been done in JSR 248. It includes information on the functionality set and what else is in the specification to create a very predictive Java™ platform for mobile devices. This might be accompanied by demos to demonstrate the rich functionality set. In addition, the presentation previews the roadmap, by providing an update on JSR 249 and the plans for the next releases of JSR 248.
(Asko Komsi)

Thursday

9:45 - 11:15
11:00 - 12:00
11:30 - 13:00
12:15 - 13:15
13:15 - 14:30
13:30 - 14:30
14:45 - 15:45
16:00 - 17:00
19:30 - 20:20
20:30 - 21:20
21:30 - 22:20
22:30 - 23:20
TS-1011 Integrated Java™ Technology and C Debugging Using the Eclipse Platform
Picture a situation in which you have a new Java™ technology-based application to write but your customers want you interface with their existing system. No problem--but this is written in C. You don't have the money (or time) to reengineer the whole solution. Using Java Native Interface (JNI) is the obvious answer. But what happens when you find a bug and it's in that border code between Java technology-based code and C? Lots of simple print statements? Integrated debugging in this hybrid environment can be tricky. Previously this could typically be achieved with the command-line tools JDB and GDB. There was no real open development environment you could use. The Eclipse project has changed the nature of Java technology-based development and now has a C development perspective. This presentation shows how these tools can be put to use in a hybrid language environment, and it demonstrates that there really is no need to fear JNI! A review of best-practice JNI architecture and an overview post mortem analysis based on the information provided by Java technology crash dumps are included. Some of the more recent features provided by JNI are considered.
(Matthew White)
TS-1246 Simplify Enterprise Development With Scripting
Scripting languages (a.k.a. dynamic languages) provide a different style of programming than system languages such as the Java™ programming language. They enable developers to rapidly glue components together to build applications. The Java platform now has multiple scripting solutions--Groovy, JRuby, Jython, and Rhino--that offer the power of Java technology by using the simplicity of typeless, interpreted scripting languages. This session demonstrates how scripting can simplify your everyday life by helping you administer clusters of servers or test or mock up your web services in no time. Through concrete demonstrations, the presentation explains how the dynamic nature of those languages can bring more agility to your service-oriented architecture and your fashionable AJAX applications. Finally, it discusses the future of scripting to give you a taste of tools you'll be using tomorrow.
(Tugdual Grall, Guillaume Laforge)
TS-1281 Best Practices in UI Design and Programming for S40, S60, S80 Platforms
Everyone agrees: User interface components are the first ones any user interacts with. However, with a plethora of JSRs for UI programming, a mobile application developer finds the basic task of designing and implementing the right UI a daunting one, especially with the differences in device platforms--a direct result of device fragmentation. For example, Nokia will ship more than 25 million smart phone devices based on the S60 platform alone. Add that to several million handsets on the S40 and S80 platforms that create added challenges for UI programming. This session begins with an overview of various JSRs and UI APIs implemented in various Nokia platforms, covering everything from MIDP 2.0 UI APIs to Personal Profile UI, Nokia UI APIs, scalable UI architecture, and other UI-related JSRs. It then discusses the features and characteristics of each platform and the best practices for the different platforms when using these UI APIs, in terms of design, implementation, and deployment. The presentation shows several code examples of applications that are designed right and also applications that are not designed and implemented correctly, so developers can take the lessons and implement them in their day-to-day projects immediately.
(Jarmo Lahtinen, Nitin Mittal, Srikanth Raju)
TS-1607 Deep Dive into JAXB 2.0
This session describes and demonstrates the semantics and details of the Java™ Architecture for XML Binding (JAXB) 2.0 API that are useful for applications with complex use cases, such as connectivity with other XML technologies, schema evolution, error handling, validation, and so on. The session also describes interoperability with Windows Communication Foundation.
(Kohsuke Kawaguchi, Hans Hrasna)
TS-3814 New White Card Schemes and Java Card™ Technology
White cards are smart cards that are sold directly to end users without any preinstalled applications. The end users choose the applications they want to put on these cards, and they manage these applications themselves. White card schemes have never been successful, but recent advances in smart card form factors might change things fast. Smart card chips are being embedded in other devices such as flash memory cards and mobile phones, and these chips are basically white cards. Java Card™ technology is very important in such a scheme, because it allows developers to put many different applications onto the same card. This session looks at the specific challenges faced by white card schemes and their developers, and it examines in detail some solutions for developers. In particular, it considers the architectures based on a contactless chip embedded in a mobile phone, as well as secure flash card architectures. It also looks at how to integrate the Java Card platform into such an environment and how to take into consideration the security constraints associated with white card schemes.
(Eric Vetillard)
TS-4372 Java™ Technology, AJAX, Web 2.0 and SOA
A panel of industry experts discuss the hype and reality surrounding the three of the biggest buzzwords to emerge: SOA, Asynchronous JavaScript™ technology and XML (AJAX), and Web 2.0. Over the last year, while SOA has become a mature word, AJAX a relatively newcomer to the industry, has gained a lot of recognition and momentum in the industry and is set to disrupt some of the key technologies and architectures. And the term Web 2.0 is being used to describe the shift in paradigms in web computing. Is there a substantive shift in how applications are being developed or is this simply a lot of hype? What is Java™ technology role? What is the role of webservices and how can they be leveraged in the "mashosphere" ? How are SOA and AJAX being used to solve real-world problems in the enterprise? What is the relevance of mashups in the enterprise? How are the enterprises transforming their applications to take advantage of AJAX and mashups? What challenges do they face when adopting and implementing AJAX in the enterprise?
(Deepak Alur, Dan Malks, John MacDonald, Dion Hinchcliffe)
TS-4635 Best Practices: Data Access Strategies
Java™ technology provides a rich set of data access strategies for database- and web-service-based rich client applications, including the following technologies: Java Architecture for XML Binding (JAXB), Java API for XML Web Services (JAX-WS), XML-RPC, REST, screen scraping, JDBC™ software (ResultSet, RowSet, DataSet), Hibernate, and SwingLabs DataSet. This presentation demonstrates best practices and proven methods for implementing the data access layer of rich client applications.
(Richard Bair)
TS-5547 High Performance: Writing a Sony PlayStation Emulator in Java™ Technology
A PlayStation emulator requires lightning-fast 2-D and 3-D graphics (up to 60 fps), accurate timing, multichannel sound, and streaming video. This case study explores some of the challenges, solutions, and lessons learned while implementing a full-speed PlayStation emulator in pure Java™ technology. Topics to be covered include: - Marrying object orientation and speed - Cool Java technology-based stuff, such as NIO and VolatileImage - Taking full advantage of optimizations in Java technology's native compiler - Cross-platform issues - Java technology-based bytecode generation - Cool emulator stuff, such as a runtime-profiling-based optimizing R3000 to bytecode compiler Many of the strategies covered are applicable to mainstream Java technology-based applications, not just Java technology-based games. Note: This talk does not contain specific technical details of the PlayStation software or hardware.
(Matt Howitt)
TS-5672 Developing a Commercial Web Site, Using the PHP Scripting Language and J2EE™ Platform Web-TierTechnologies: Challenges, Benefits, and Drawbacks
To demonstrate the benefits and disadvantages of PHP and Java™ technology-based web development, this technical session presents a real-world case study of developing, deploying, and then maintaining a storefront web application, first in PHP and then in Java technology. It explains what challenges were encountered during the development cycles as well as what technologies, tools, and frameworks were used and why. It then presents the difficulties met with the in-production deployed PHP solution that justified the move to Java technology, a decision that turned out to finally be the right choice for mtbikers.com.
(Alexandre Snaps)
LAB-5106 NetBeans™ 5.0: Plug-in Development
This lab will introduce you to the fundamental concepts that make up the internals of the NetBeans™ IDE Modules. With these concepts understood, you have the necessary foundation to extend the NetBeans IDE or application based on the NetBeans Platform.
()
TS-1279 What's New in JDeveloper
The latest version of Oracle JDeveloper is making Java™ Platform, Enterprise Edition (Java EE) and SOA developers much more productive than ever before. This tightly integrated development environment places tools and features at your fingertips to support all aspects of the development life cycle. With built-in support for the latest standards for Java technology, web services, XML, and BPEL and with integration with popular open source solutions, application development just got a whole lot easier. Oh, and did you know that it's free? The Java EE platform is powerful and proven, but that power brings a certain level of complexity. Oracle Application Development Framework (ADF) is a Java EE framework that is integrated with Oracle JDeveloper. It reduces complexity for new users while making experienced users much more productive. This demo-oriented presentation explores the key new features of Oracle JDeveloper and ADF, including: Java technology-based features - Fast code navigation and smart editor - Refactoring - Java Platform, Standard Edition 5 support - CVS support - Ant builds - JUnit testing - Modeling tools Java EE Platform features - Enterprise JavaBeans™ 3.0 architecture development - Visual JavaServer™ Faces platform development - Drag-and-drop data binding (JSR 227) SOA features - Web services development - BPEL designer - XML schema editor - XSLT mapping
(Brian Fry, Roel Stalman)
TS-3187 Advanced JavaServer™ Faces Custom Component Development
The promise of JavaServer™ Faces technology lies in its ever growing families of component libraries, which provide unique solutions to a growing set of situations. This session, presented by the author of JavaServer Faces: The Complete Reference (McGraw-Hill-Osborne), provides the most comprehensive detail on the key set of topics advanced JavaServer Faces platform developers encounter. Specifically covered is following: - Encapsulating JavaScript™/DHTML technology inside a JavaServer Faces custom component. This affords the page author the ability to use complex JavaScript/DHTML technology without having to understand its underlying and often complex JavaScript language infrastructure. - Creating custom renderers and renderkits of different types of markup/content in addition to HTML such as SVG, WML, and even binary data. - Learning how to build advanced SVG-based charting components. - Changing renderers dynamically and creating components that can switch renderers at run time based on the client type. - Creating advanced AJAX-enabled custom components. Learn how to build more-advanced components that utilize Asynchronous JavaScript technology and XML, along with other techniques such as JavaScript language encapsulation, to deliver a powerful, rich client experience.
(Chris Schalk)
TS-3234 IMS Client Platform and IMS End-to-End
The IP Multimedia Subsystem (IMS) offers a framework for development and deployment of multimedia services. The success of IMS, as with other technologies, is dependent on fast availability of new services in the end-to-end context. Most IMS services are platform-dependent on end user terminals. Therefore it is crucial to choose the right environment and tools for fast and easy development and deployment of client applications. Java™ technology is the natural technology of choice for this purpose. It ensures an open platform in devices, is easy to use, and is supported by four million developers worldwide. In addition, Java technology already offers an API for the development of SIP-based services on the server side through the SIP servlet API standardized in JSR 116. The integrated API for development of IMS services in Java Platform, Micro Edition (Java ME) space is currently being standardized in JSR 281, defining the IMS Services API. Ericsson has developed an IMS Client Platform (ICP) that corresponds to and is aligned with JSR 281. ICP extends the JSR 281 specification to most open operating system (OS) devices, including PC environments, and supports Java technology developers with the necessary tools for service development for both wireless and wireline end user devices. ICP is a downloadable software platform for IMS client applications. It supports mobile devices with open OS, as well as desktop computers with Windows OS. Like JSR 281, it hides the details of IMS technology and offers application developers a high-level API for easy development of new, innovative services. At the same time, ICP encapsulates all the standardized IMS-related functionality, together with several standardized service enablers, and, in this way, secures the standards compliance of newly implemented applications. ICP provides a common horizontal platform for all IMS client applications and the single entry point for all IMS-related communication with terminal platforms. It supports the execution of IMS client applications while offering a set of common enablers to be reused by all the running applications. Application developers are decoupled from the IMS technology and can focus on the essence of the service, including the service-specific behavior and GUI. The IMS network offers your application IMS services such as Push-To-Talk over Cellular (PoC), and Presence and Group Management (PGM). When using the IMS infrastructure, you don't need to create your own infrastructure, as with other messaging or IP telephony systems. This technical session takes an IMS architectural view as well as an end-to-end Java technology-based coding and development perspective and includes code snippets. In addition to the Java technology development aspect, it also goes through the business model for both today and tomorrow - for example, why use IMS, the business model for developers, what it solves for developers, wireless carriers' (mobile operators') IMS, and IMS time frames.
(Peter Yeung, Piotr Kessler)
TS-3274 Project GlassFishSM : Developing the Java™ EE SDK
Exactly a year has passed since Sun put Java™ Platform, Enterprise Edition (Java™ EE) SDK development in open source, under Project GlassFishSM at java.net. A lot has been accomplished in the past year, and Java EE 5 SDK is now ready. There are now numerous contributors and projects around the GlassFish program. The community is growing. This session covers the GlassFish project technical architecture and subsystems. It shows developers how to use and extend the GlassFish project and includes demos of ongoing subprojects and a discussion of possible future directions.
()
TS-3412 New Compiler Optimizations in the Java HotSpot™ Virtual Machine
This session covers recent work in the client and server compilers to enable the Java HotSpot™ virtual machine to achieve higher-performance Java™ programming language applications. It discusses synchronization-related optimizations, escape analysis, multitier compilation, and other topics. The presentation is targeted at users of the Java programming language interested in how their programs are dynamically compiled to high-performance machine code and what performance improvements to expect in various areas in the Java SE 6 release (code-named "Mustang") .
(Kenneth Russell, Steve Goldman)
TS-3473 Building Secure and Trusted Web Services Using "Project Tango"
This session provides a detailed walkthrough of steps that developers need to follow to secure webservices developed using Web Services Interoperability Technology in an interoperable manner. WSIT has support for WS-SecurityPolicy which enables webservices to specify their security requirements to potential clients in an interoperable manner. Developers can also configure support for brokering trust between different domains, this is achieved in WSIT using WS-Trust protocol. WSIT allows developers to configure security sessions (as defined in WS-Secureconversation). Developers will benefit from security sessions as it enhances the overall security through key derivations and improves performance by avoiding repeated key exchanges in multimessage exchange scenarios.
(Venugopal K)
TS-3527 Building Highly Dynamic Battlefield Network Infrastructure for Boeing U.S. Army Future Combat Systems Using JXTA™ Technology
The open source "Project JXTA" is an industry-leading peer-to-peer (P2P) platform originally conceived by Sun Microsystems, Inc., and designed with the participation of a growing number of experts from industry and research and academic institutions. JXTA™ technology establishes a virtual peer-to-peer network overlay on top of the Internet and non-IP networks, allowing peers to directly interact and self-organize independently of their physical network connectivity and location. JXTA technology envisions a world in which each peer, independent of software and hardware platform, can benefit from being connected to millions of other peers through the formation of a multitude of ad hoc and transient virtual domains. This session gives an overview of the use of JXTA technology by Boeing for the U.S. Army multi-billion-dollar Future Combat Systems (FCS). The requirements for a highly resilient and highly scalable integrated network infrastructure that combines virtually any devices in a battlefield environment - including UVA, sensors, soldiers, tanks, planes, missiles, and satellites - demanded a fully decentralized network infrastructure.
(Bernard Traversat)
TS-4265 User Interfaces in XML: The JAXX Framework
JAXX is a powerful open source framework for building user interfaces using XML. Tasks that once required pages of complex Java™ programming language code can be performed in a few lines of straightforward XML. JAXX supports the entire Swing component library, and you can add support for your own custom components with as little as a single line of code. JAXX's scripting language supports Java programming language's full syntax, and JAXX components can easily be manipulated from Java classes, so you won't be giving up any of Java technology's power and expressiveness. With a powerful and flexible data binding and validation system built in, entire applications can be built with nothing but XML. Or you can take an existing application and add a few JAXX components to it with a minimum of effort--use as much or as little JAXX as you need. Here's an example of JAXX code: 0}" onActionPerformed="frame.dispose()"/>
(Ethan Nicholas)
TS-4447 Java™ Technology for The Mobile Mass Market - Series 40 From Nokia
Nokia believes Series 40 mobile phones to be the highest volume Java™ platform in the world. In this presentation we look at current and future trends for Java on S40: new capabilities in the platform such as running multiple applications at the same time, and the possible impacts of MIDP3, and the ever-changing nature of the mobile user interface. S40 has an incredibly broad user demographic, and integrating multiple application support into a device which is intended for use by both computer and non-computer literate users sets many challenges. This session will give attendees the chance to understand how S40 meets these challenges, some of the exciting new technology being introduced to the platform, and how multiple applications will work together in the S40 UI model.
(Michael Rhodes)
LAB-3105 Prepare for EJB™ 3 Applications Today Using Hibernate, Spring and a Standard EJB 2.x Container
With the revival of POJIs and POJOs (Plain Old Java™ technology-based Interfaces and Plain Old Java Objects), in the two early drafts of the Enterprise JavaBeans™ (EJB™) technology specification publicly available to-date, the EJB 3 expert group has lined up to largely reduce complexity from the EJB developer's point of view. Eliminating home objects, session beans will be nothing but POJOs with a business interface, additionally introducing dependency injection as an alternative to Java Naming and Directory Interface™ (JNDI) lookups. The redesign of entity beans is also focused on a POJO-based programming model, describing entity beans as concrete classes with JavaBeans technology-style property accessor methods, and replacing entity bean homes with a singleton EntityManager object for CRUD (create, retrieve, update & delete) operations. Although backward compatibility definitely is one of the primary design goals, with the arrival of EJB 3, the present EJB 2.x programming model is likely to become deprecated: Legacy EJB 2.x applications using old EJB 2.x Entity Beans will continue to run on an EJB 3.0 container, but any new applications should definitely be created using the new EJB 3.0 POJO-based Entity Beans. In this lab, we will show that even today, it is already possible to design and implement enterprise applications along the lines of the proposed EJB 3 APIs, being best prepared for the future, while still running them on today's proven product stack consisting of a current Java 2 Enterprise Edition (J2EE™ platform) versions 1.3 or 1.4 production application server/EJB container, a 1.4.2 series Java Virtual Machine and a selection of well-renowned open source tools: Hibernate, the Spring Framework and XDoclet. As part of this lab, we will provide experimental infrastructure code that has been designed to bridge this gap and show how to create a (nearly) EJB 3-compliant implementation of a simple example scenario. Our implementation addresses the following tasks: • Removes the need for a JDK™ 5.0 virtual machine introduced by EJB 3.0 by replacing metadata annotations by traditional XDoclet tags. • Implement key EJB 3.0 features, such as POJO Entity Beans and dependency injection, through Hibernate, Spring and 2.x EJBs. Note: This is a 75 Min. Lab.
()
TS-1074 Desktop Patterns and Data Binding
This session motivates, explains, and discusses patterns for Java™ technology desktop applications. It describes and compares two approaches to organizing the presentation logic and separating this logic from the presentation. You learn about a three-tier desktop architecture and get acquainted with a data binding concept that helps you implement the techniques introduced.
(Karsten Lentzsch)
TS-1238 Secure Coding Antipatterns: Avoiding Vulnerabilities
It is impossible to avoid introducing bugs when developing code, and even the simplest bugs can result in a major security vulnerability. This session covers some common programming mistakes that can lead to security issues. More important, it shows you how to avoid them. We combed through past Java™ technology security vulnerabilities and other sources of information to come up with a list of security antipatterns that demonstrate some of the more commonly recurring problems. In each case, we discuss what is wrong and what is the proper fix. The presentation is of interest to all developers, whether you work on the internals of a security component or on regular application or library code, because bugs in any area can have serious security ramifications.
(Andreas Sterbenz)
TS-1451 Writing Optimized Applications for High-performance Java™ ME Runtimes
More and more mobile devices today come with with high-performance Java™ Platform, Micro Edition (Java ME) runtimes that employ many software- and hardware-based acceleration technologies for delivering rich multi-media and gaming experiences. This talk gives an overview of the performance features in the latest generation of Java ME runtimes and provides guidelines for application developers to take full advantage of these exciting new capabilities.
(Oleg Pliss)
TS-1878 Debugging Across Tiers: Advanced Techniques
This session presents a variety of techniques and useful practices for developing and debugging a cross-tier, multilevel system based on the Java™ Platform, Enterprise Edition; Java Platform, Standard Edition; and Java Platform, Micro Edition standards. The presentation guides you through the development process of a complex multitier application, with special focus on using modern IDE tools for identifying and fixing problems in different tiers while using efficient techniques such as multisession client-server debugging and on-device debugging (hit a breakpoint in your pocket!). It demonstrates all typical scenarios in NetBeans™ IDE 5.0. The session requires an intermediate level of prior experience with Java enterprise technology systems and Java IDEs.
(Petr Suchomel, Martin Entlicher, Roman Ondruska)
TS-1941 Breaking the Limits of JSR 168 Portlet Development
Portal-based applications are becoming increasingly common and important in the Java™ Platform, Enterprise Edition (Java EE) application server world. For developers, the emergence of the JSR 168 portlet standards widens the market for selling, buying, and sharing information about rendering applications within a portal. This session provides tips, techniques, and best practices for developing portlets based on the standard. You learn how to build real-life JSR 168 portlet applications that leverage new standards such as JavaServer™ Faces technology as well as integrate features such as parameters, customization, security, and caching. This session also demonstrates how JSR 168 portlets can communicate on the same portal with Web Services for Remote Portlets (WSRP)-enabled portlets such as .NET. The demonstrations focus on development methodologies, common portlet pitfalls, development frameworks, accessing user information, and portlet-limitation workarounds.
(Sue Vickers, Peter Moskovits)
TS-3108 Sigrid: The Simplest Possible Grid Computing Platform
Suppose you are a programmer with a problem that would benefit from the application of numerous computers working in parallel. Given the remarkable amounts of memory and bandwidth that can now be concentrated in a few racks full of servers, the number of problems that would benefit is growing steadily. It is useful to categorize grid-based applications as "batch-oriented" (runs for a while, produces output, stops) or "service-oriented" (runs forever, receives messages, emits messages). There are a variety of infrastructure alternatives available to a programmer wanting to deploy an application on a grid. Some leading candidates now deployed in the field include DRMAA (drmaa.org) and MPI (mpi-forum.org), both of which have Java™ programming language APIs. Another option, particularly for service-oriented applications, would be the use of the Jini™ network technology, in particular the Rio framework (rio.jini.org). There is also a cluster of service-oriented grid work centering on the Gridbus Project, based on the work of Rajkumar Buyya, which includes a market-based economic framework. The presenter encountered a particular class of service-oriented grid applications for which none of the existing infrastructure alternatives seemed attractive. This Java technology-based application was lightweight, wanted to achieve high performance by interchanging data as rapidly as possible across the network via direct TCP/IP socket writes, and was designed to do its own failure detection and error handling. The services required from the network were simple: find CPUs that were free to undertake some process, send them a moderate amount of code and data to start the tasks running, launch them, and report back which node they were launched on. Sigrid (for "Simple grid") aims to be the simplest-possible grid engine that provides this minimum feature set. Although its interface is simple, its implementation is fairly sophisticated. Any computer that runs the Java platform can participate in a Sigrid, by unpacking a single installation package and running a single command - no configuration work is required. The implementation uses the discovery primitives of JXTA™ networking technology (while hiding them from the application programmer) and is designed to run more or less forever, surviving the failure of any arbitrary combination of network nodes and dynamically reconstructing its own state as necessary. Its API also includes facilities for monitoring the execution of tasks and detecting asynchronously when they start and stop executing. Sigrid is now passing a fairly arduous test suite and, by the time of the 2006 JavaOne℠ conference, will have been tested extensively and at a large scale using the Sun™ Grid infrastructure as a testbed.
(Tim Bray)
TS-3175 Building a Service With BPEL and the Java™ EE Platform: How Composite Applications and JBI Simplify SOA Development
Companies are using SOA to offer services that simplify and accelerate doing business with them. These services are typically implemented as a collaboration of new functionality with the functions of existing enterprise apps. The combination of BPEL to deal with asynchronous collaboration and Java™ Platform, Enterprise Edition (Java EE) components to implement the new business logic implements these services effectively. This session describes how Java EE platform developers can create composite applications of this form by using existing Java EE platform tools and app servers that support Java Business Integration (JBI).
(Peter Walker, Ron Ten-Hove)
TS-3576 Visual Basic and the Java™ Platform
This talk will describe a new project that will allow better interoperation of Visual Basic and the Java™ platform. This topic will be of interest to developers who either themselves work with both Visual Basic and Java or who work in a mixed team that would like to combine Visual Basic and Java platform development.
(Tor Norbye, John Kline, Herbert Czymontek)
TS-3752 Apache Harmony's Approach to Implementing Java™ SE Platform
Apache Harmony is an incubator project of the Apache Software Foundation building a compatible implementation of Java™ Platform, Standard Edition 5 (Java SE 5). The project's goals include creating an open, modular architecture that supports interoperability between multiple implementations of the Java™ Virtual Machine (JVM™) and multiple implementations of the Java SE class library. Defining a strong modular architecture enables a disparate set of developers to collaborate on producing a compliant Java technology-based implementation. This session describes techniques for defining the major functional areas of the Java SE platform and gives a status report on the implementation's modularization effort to date. The presentation shares some of the technical lessons learned in the Apache Harmony project to facilitate interoperability between open source and proprietary Java VMs and class library code. It also demonstrates how the VM interface and class library architecture achieve the right degree of independence while ensuring that implementation choices are not compromised. The presentation is aimed at practitioners and developers with an interest in open source innovation involving the Java platform and includes a demo of the Harmony code to date.
(Geir Magnusson, Jr., Tim Ellison)
TS-3925 Java Card™ Platform Evolution: Future Directons
Smart card technology has been evolving over time. As smart cards become more powerful, get faster microprocessors, and have increased amounts of memory and expanded communication capabilities, so should the Java Card™ platform adapt to take advantage of those features--and enable new applications for the technology. This session details recent advances and trends in smart card technology and outlines the evolution roadmap for the Java Card platform to address the market needs for security devices.
(Tanjore Ravishankar)
LAB-8125 NetBeans™ Enterprise Pack: BPEL
SOA is the wave of the future, and the Netbeans™ IDE, in addition to providing support for devekoping IDE plug-in modules and rich client applications based on the Netbeans platform, contains the NetBeans Enterprise Pack 5.5 Preview software which in turn provides visual design tools for service-oriented architecture (SOA) applications, and provides Orchestration Designer, UML modeling, and XML tools to the NetBeans community. This Hands-on Lab takes you through the basics of using the Orchestration component of the NetBeans Enterprise Pack 5.5 Preview (the IDE). It includes Web Services Orchestration - Authoring, building, deploying, and testing BPEL processes. During this lab you will explore ways in which the IDE enables you to edit, compile and deploy BPEL code compliant with the BPEL4WS 1.1 specification. To assist you in performing these tasks, there is a new type of project in the IDE that will support the authoring, building, deploying and testing of BPEL processes. As BPEL processes enable you to orchestrate web services, editing BPEL and using orchestration features are important. The Orchestration Designer provides a complete environment to enable you to quickly and efficiently orchestrate web services.
()
TS-1053 "The Incredible Shrinking Application": Making Desktop Applications Mobile With CDC
Many enterprises have deployed Java™ Platform, Standard Edition (Java SE) applications. As the capabilities of these Java technology-based devices grow, the possibility of retargeting some of these applications outside the WAN to the mobile work force increases. This session explores strategies for migrating existing Java SE applications to Java™ Platform, Micro Edition (Java ME) with the CDC stack. The presentation provides an example desktop application being migrated to a mobile device running CDC/FP/PBP/JSR-209 and describes the problems encountered, the tools used to do the migration, and lessons learned that can help developers of desktop applications create more mobile/portable applications.
(Nandini Ramani)
TS-1311 Solaris™ Dynamic Tracing (DTrace) and Java™ Technology: Down and Dirty With Your Application
Solaris™ Dynamic Tracing (DTrace) is the ultimate observability tool and a dream come true for application developers and system administrators. With DTrace you can analyze and comprehend the entire software stack--everything from your Java™ technology-based applications down to the lowest levels of the system. At last year's JavaOne℠ conference, DTrace was used on the exhibition floor to find performance wins in 15 of 16 applications brought in by conference attendees. In this session, you learn about how DTrace has been used to find big performance gains in Java technology-based applications and about the enhanced observability into Java technology and the system as a whole.
()
TS-1548 Extreme GUI Makeover: Lookin' Better
After a highly successful debut at last year's JavaOne conference, we bring back another installment of the Extreme GUI Makeover series, in which professionals from Sun transform visually plain applications into stunning beauties. The speakers show the techniques they used to accomplish this and how similar techniques can be applied to your own application.
(Scott Violet, Shannon Hickey, Romain Guy)
TS-1549 Debugging and Profiling J2EE™ /Java™ EE 5 Platform-Based Applications
Now it's easier than ever to create and deploy Java™ 2 Platform, Enterprise Edition (J2EE™) and Java Platform, Enterprise Edition (Java EE) 5 applications to your favorite application server (JBoss, BEA, Sun Java System Application Server, GlassFishSM project). But what happens when things go wrong? Is it your business code or the J2EE technology container that is buggy? When your application response time is not good enough or consumes too many resources, how can you detect and fix this? This session presents the different strategies and tools available for modern developers: • Application server monitoring framework • Admin Console Log viewer and analyzer • Admin Console Call Flow tool • Web services management tool • J2EE/Java EE 5 Verifier tool (static and dynamic verification) • Debugging J2EE applications with the NetBeans IDE--one click to debug • Debugging Database Persistence (JSR 200) applications with the NetBeans IDE • Debugger features that help J2EE programming language debugging • Profiling J2EE applications with the NetBeansJava™ IDE Profiler--one click to profile • Java technology Blueprints Solutions Catalog and Patterns, to start from clean code
(Nazrul Islam, Ludovic Champenois, Tomas Hurka)
TS-1603 Reliable and Transacted Web Services between Sun's "Project Tango" and Microsoft Indigo
This session shows how to write secure reliable and transacted web services. Specifically, it shows how to write secure reliable or transacted web services on the Java™ platform that can be consumed by Java technology-based web service consumers and also by consumers written with Microsoft Indigo (Windows Communication Foundation, WCF). Similarly, the presentation shows how to write Java technology-based consumers that can consume secure reliable services written with Microsoft Windows Communication Foundation (WCF). "Reliable" means that messages are guaranteed to be delivered in order and at most once, even if they are lost or delayed in transit. "Transacted" means that all operations succeed or roll back.
(Mike Grogan, Joseph Fialli, Ryan Shoemaker)
TS-1660 Twelve Java™ Technology Security Traps and How to Avoid Them
This session discusses current real-world secure coding traps that development managers and team leads need to know about. One of the wonderful things about Java™ technology is the ease with which developers can build network-based applications and components that interact seamlessly with other systems. Unfortunately, it is also easy to build a Java technology-based application with major security vulnerabilities. This session explores 12 of the most common security traps Java technology developers fall into. You may be surprised to learn that most of them are not related to cryptography, access control, or any other typical security topic. This session doesn't include a review of 10-year-old guidelines for writing secure applets with JDK™ 1.1 software. Instead, it looks at causes of security failures in modern Java technology-based applications. Approaching security with an "outside in" style like that of the OWASP Top 10, it looks at vulnerabilities from a developer's perspective, focusing on the source code. It looks at examples of real vulnerabilities in Tomcat and widely deployed blogging packages such as Blojsom and explores how the problems facing web-based applications are made worse by the transition to a service-oriented architecture. The session concludes with a discussion of policies, processes, and tools proven to help prevent common programming errors from becoming major security incidents.
(Brian Chess, Benjamin Livshits)
TS-3577 Using the Dojo Toolkit to Develop AJAX-Enabled Java™ EE Web Applications
Dojo is an open source toolkit that allows you to easily build Asynchronous JavaScript™ Technology and XML (AJAX) capabilities into web pages and any other environment that supports JavaScript technology. This session discusses how Dojo can be used in Java™ platform, Enterprise Edition (Java EE) based web applications to create next-generation web interfaces with animation, effects, and drag-and-drop capabilities similar to those of traditional desktop applications. It also covers how Dojo addresses key issues such as handling browser incompatibilities, graceful degradation based on browser capabilities, handling back and forward buttons, and bookmarkability of links. It also presents some guidelines on how best to use Dojo in a Java EE platform-based application. The session uses several demos along with code to illustrate various concepts.
(Inderjeet Singh, Gregory Murray)
TS-3714 Flash-Gridding with Java™ Technology: Using Project GlassfishSM, Jini™/JavaSpaces™, and Groovy as an Environment for an Open Source, Self-Assembling Supercomputer
One of the major challenges in grid computing is dynamic configuration of the grid. The Java™ technology environment is uniquely suited to meet this challenge, because it offers the ability to combine mobile code and industry-standard APIs with a powerful security model. These capabilities make it possible to build scalable grid computing systems that require minimal centralized configuration infrastructure and simplify on-the-fly deployment and removal of grid assets. This session discusses the ComputeCycles project, an effort to build an open source compute grid around these capabilities of Java technology. ComputeCycles is being constructed on a framework of web services deployed into the Project GlassfishSM application server. The main web service hosts dynamically configured Jini℠ services, which form the mechanism for deploying mobile code into the grid in a standard master/worker design pattern. Other web services in the ComputeCycles platform perform tasks such as: - Hosting JavaSpaces™ technology to provide secure shared memory between grid nodes. - Managing resource allocation to grid users. - Providing dynamic configuration to service nodes in the form of Groovy classes. - Providing dynamic reprovisioning of grid nodes to deal with changing loads. The design and architecture of the ComputeCycles environment are discussed in detail, and examples of its use are provided.
(Ronald Simmons, Sean Merritt, James Gammill)
LAB-7135 Building Grid-Enabled Applications
The Distributed Resource Management Application API (DRMAA) included in Grid Engine 6.0 gives Java™ platform developers the ability to submit, monitor, and control jobs programmatically. Using DRMAA, a developer can extend his or her project beyond the boundaries of a single machine, into the compute grid. Because DRMAA was developed through a collaboration among top compute grid players and in an international standards body, it is supported by multiple compute grid vendors, allowing even more flexibility for developers. Grid Engine 6.0 is a Distributed Resource Management System (DRMS). Its main purpose is to optimize workload distribution to achieve maximum utilization of compute resources. In a DRMS, workload components are called jobs. A job is a piece of work which will be executed by the DRMS. Most often, a job is a binary executable or a shell script. This hands-on lab will take participants on a tour of DRMAA, showing how to use each section of the API. Topics covered will include session management, job submission, job synchronization, job monitoring, and job control.
(Daniel Templeton, Amir Halfon)
TS-1076 Practical SOA Business Integration Using OpenESB: A Distributed Java™ Business Integration Composed Services Application How-to and Demo
Sun's Java™ Business Integration (JBI) architects present a fast-paced, deep-dive using an open source, JSR 208-based Enterprise Service Bus. This advanced how-to starts from scratch, using the dev.java.net OpenESB project to develop and run a practical distributed JBI composed services application. This session: - Provides some SOA and business integration background and theory. - Shows the detailed steps needed to obtain, build, install, customize, and deploy to OpenESB. - Describes how Enterprise JavaBeans™ (EJB™) architecture and servlet containers are used within an ESB. - Demonstrates the details of creating, packaging, deploying, and testing a JBI service assembly that uses distributed JBI, Java enterprise technology, and custom components. - Shows code and XML document fragments and related tools. Take-aways: knowledge of how to set up and use an OpenESB development environment and some appreciation of SOA and distributed JBI Prerequisites: some knowledge of Java technology, IDEs, XML, and Ant; an interest in business integration or SOA
(Ron Ten-Hove, Michael Wright)
TS-1669 Unhappily Ever After: Support, Maintenance, and Troubleshooting of Java™ Technology-Based Applications in Production Environments
There is abundant information available on developing Java™ technology-based applications. By contrast, almost nobody talks about tasks involved in supporting and troubleshooting those applications once they are released. Issues such as troubleshooting the applications deployed in production environments, maintaining multiple versions of large code bases, and working with autogenerated code are insufficiently covered in public discussions and documents. This lack of information might have been acceptable in the past, when the (non-Java technology) code was compiled into opaque stripped binaries; when most of a program's activity was CPU-bound; and when operating systems did not expose internal operations, for reasons of speed. These days, Java class format is well documented, applications are increasingly componentized and distributed over the network, and operating systems hurry head-over-heels to provide developers with hooks and customizations for any purpose imaginable. Combined, such advances allow previously impossible tasks to become merely difficult and many difficult tasks to become plain easy. Formulating effective and transferable methods of troubleshooting requires a fusion of skill sets from the development and technical support worlds. Most of the developers rarely troubleshoot outside of their preferred environment, and a majority of their techniques are based on code recompilation and stable base setup - options rarely acceptable in a production environment. Technical support engineers do have to work with unknown environments and multiple versions of code but often lack deep knowledge of the Java platform and development methodologies. Neither set of techniques is sufficient in itself. The presenter combines his prior work as senior BEA technical support engineer and more than seven years of Java technology-based development experience and delivers an organized overview of tools and techniques that help with resolving problems that arise in real production environments. The presentation places emphasis on free and open source tools available for multiple platforms and capable of being useful out of the box, without extensive configuration. Common problems are discussed, along with methods of rapid analysis and root cause determination.
(Alexandre Rafalovitch)
TS-2991 Smackdown for AJAX Programming Models and Frameworks
With the emergence of Asynchronous JavaScript™ Technology and XML (AJAX) applications, many alternative strategies for designing and building AJAX-enabled Java™ technology-based applications are emerging. Competing frameworks, tools, and products are popping up all the time. Some of the strategies include: - Developing a set of JavaServer™ Faces components that are AJAX-enabled, and even within that camp there are alternative design centers. - Creating an RMI-like Java library to use a Java object-centric programming model for the client, as with Direct Web Remoting (DWR). - Using a JavaScript technology-based library (such as Dojo) for all the client and using Java technology just for the servlet and model and back-end tiers. - Using Java technology-based applets or Java Web Start bassed applications and extending the notion of AJAX . - Using Adobe Flex with Flash backed by Java Enterprise Edition.
(Gregory Murray, Joe Walker)
TS-3399 A Simple Framework for Desktop Applications
An often repeated bit of wisdom about platform APIs is that they should make building simple things simple, and building difficult things possible. This has been insufficiently true about building large desktop Java™ applications for a long time. About a year and a half ago an we were talking over this state of affairs with an Australian developer who told us: "I am more than a little disappointed that you don't have a strategy for building rich clients, when I believe you're just a screwdriver's turn away from having one. All the pieces of the puzzle are there, ready to be assembled and productized." He was right: the time has come to put the screws to the rich client platform. This talk will introduce a small set of classes that are intended to serve as the core for typical Swing applications. This set of classes provides a set of common services like lifecyle, defaults, global state, actions, and workers (threads). By using a standard Swing application core, most developers will find that they can concentrate on what makes their application unique, rather than on the plumbing and scaffolding that's common to most applications. This session will provide a detailed look at the elements of the Application Framework terms of their APIs and sample usage. The session will conclude with a demo of building a complete Desktop Application in NetBeans.
(Hans Muller)
TS-3757 Introduction to Mobile Java™ Technology JSR 232 Architecture and Benefits
Java™ technology is expanding its scope in the mobile industry from simple games into a platform for advanced mobile applications and services. This next-generation mobile Java platform, as defined in JSR 232 (Mobile Operational Management), meets the challenges of this expanding environment, by offering a managed platform tuned for the mobile industry. This platform also brings a service-oriented architecture into mobile Java technology, taking this technology to the cutting edge of Java technology development. In this new environment, applications and services are developed in a component-oriented fashion, utilizing the extensive capabilities of the emerging smart terminals combined with rich third-party components, services, and libraries--"mobile middleware." This powerful, extensible platform also enables the standardized management of all of its software components during their whole life cycle, from packaging and deployment through configuration, monitoring, updates, and removal. The platform also provides a comprehensive dependency model that enables it to ensure that all components with the correct version are present prior to execution. This presentation provides a high-level overview of this powerful new platform, as defined in the JSR 232 service specification. It covers the architecture and discusses the main benefits of using this platform. The topics include: • JSR 232 status and background • JSR 232 high-level architecture • JSR 232 component model: "Realizing Service-Oriented Architecture in Mobile Java Technology" • Key platform services of JSR 232 such as life cycle management, deployment, configuration management, and monitoring • Benefits of a managed service platform • Key elements of the managed platform • Structuring next-generation mobile Java technology applications Attendees will leave this presentation with a better understanding of how they can utilize JSR 232 technology in their applications and of the services and architectural benefits provided for next-generation mobile Java technology-based applications.
(Gabor Pecsy)
TS-3881 Full-Scale Java™ Platform Diagnostics for Production Environments
Business clients have long demanded 24x7 availability of their Java™ platform-based solutions; any downtime represents client dissatisfaction and a loss of profit. Over the past few years, diagnosing solution-level problems has become an expensive and daunting task. The diagnosis of problems is still largely performed by humans, and the level of skill and expertise required to diagnose a solution-level problem is much higher than that of a single product. The complexity of the interaction of the components in the stack of products in today's business solutions has for some time reached levels at which numerous solution-level problems reported can be reproduced only in a "production" environment, which makes it nearly impossible to diagnose the problems under the control of traditional tools and techniques. Diagnosing and correcting solution-level problems in production environments requires a collection of minimally invasive reliability, availability, and serviceability (RAS) features and tools to be an integral part of the Java platform. This session presents a review of the current RAS technology and discusses the technological advances in the new breed of Java platform-based implementations.
()
TS-5397 The Top 10 Ways to Botch an Enterprise Java™ Technology-Based Application
Although most JavaOneSM conference sessions are designed to teach developers magic incantations that guarantee project success, this session sets out on an insidious journey to spread the best practices for guaranteeing project failure. Based on actual real-world experiences (with names and details changed to protect the guilty), the speaker shares some of the best-kept secrets in the industry, including architecture and development tips that are certain to push projects over budget and beyond deadlines. Some attendees may mistakenly use this information to avoid pitfalls, errors, and other common causes of project failure.
(Cameron Purdy)
TS-5439 Developing Streaming Media Applications Using the Mobile Media API: What Works, What Doesn't, and What to Do About It
This session focuses on the practical aspects of developing streaming media applications for Java™ Platform, Micro Edition (Java ME), using the Mobile Media API (JSR 135). Although the JSR has been around for several years, handset manufacturers have only recently begun to support codecs and protocols necessary to stream multimedia across wireless networks. This session provides code examples that show how to implement streaming functionality by using the MMAPI. The presentation describes the codecs and protocols used for mobile streaming applications and discusses practical issues associated with developing and testing these applications on wireless Java technology-powered devices. Finally, it covers limitations in some implementations of JSR 135 and suggests ways to address them. The session includes a streaming demonstration that utilizes the code examples shown in the presentation. Attendees will come away with practical knowledge of how to develop and test streaming applications across a wide variety of Java ME platform-based devices on the market today.
(Craig Robinson, Brent Newman)
TS-5622 Programmatic Access to a Compute Utility
A Compute Utility (CU) is a job scheduling engine at its core that exposes its compute services through a Portal. A portal is meant for a human to interact with the CU and it supports registration, notification, AuthN/AuthZ, procurement, resource-uploading, job-submission and resource-retrieval. A Portal is a tiered architecture like Java™ Platform, Enterprise Edition (Java EE) with a presentation tier, business tier and integration tier. A Portal-CU uses the CU as a batch-processing engine. The compute cycles at the back end is the utility being purchased by end users to run compute-intensive tasks. One could draw an analogy between Java EE applications that web-enable back-end transactions and the Portal-CU that web-enables a back-end compute infrastructure. While the portal’s HTML interface is useful for humans, it can get in the way for other external applications and services that tries to compose and consume the compute services. A CU can be useful to a much broader community of developers and ISVs if there were APIs that exposed the various services such as User-Services, Job-Services, Business-Services, and Compute-Services etc. This presentation is a reflection on how to design and develop programmatic APIs. What are the domain/object models? How to choose/support the wire protocols? How to design fine-grain security and access-control? What are the common design options? We will propose an alternative to compute with distributed objects using JINI™ ERI for pluggable transport & security. It will show how to use unicast for a marshaled JINI lookup service and retrieve smart proxies from that service which in turn can access all other services. The presentation will demonstrate how to build a flexible, extensible, pluggable, secure, middle ware that will allow programmatic access to a compute utility. The alternatives proposed in this talk are just as useful to any distributed computing problem that spans across an insecure network.
(Murali Kaundinya)
BOF-0027 Panel: Desktop Java™ Technology Future
Join leading experts in Desktop Java™ technology in this interactive panel discussion. Audience participation is highly encouraged in this loosely scripted session. Bring your questions, bring your gripes, bring your visions for making Desktop Java™ technology better and better.
(Scott Violet, Ben Galbraith, Scott Delap, Chet Haase, Hans Muller, Karsten Lentzsch)
BOF-0197 Java HotSpot™ VM Q&A BOF
Meet the team for the Java HotSpot™ virtual machine at this informal session. Hear about the current and future directions of the Java HotSpot VM, and get your questions and comments addressed by the engineers who developed this technology.
(Peter Kessler)
BOF-0232 Rendering 3-D Animation: Another Turn of the Screw
The implementation of the rendering process in the 3-D animation industry may end up being a herculean and frustrating job, due to the occurrence of some specific requirements and their associated pitfalls. This presentation discusses the odyssey of gathering the requirements, designing the best architecture and implementing it. The presenters found out during requirements gathering that there are a lot of unknown factors that may wreck the final result, such as hardware/software/network failures, wrong input data, and the same input data producing different results when rendered in the same machine. With this in mind, they decided that just having queues of nodes and jobs sent to those queues was not enough, because the user has no idea of how the job or the grid is going to perform. So they built a grid that has uncertainty as one of its key elements, a grid that has the ability to reconfigure itself dynamically, based on job needs at a particular time, and a grid provisioning process that splits jobs according to both user requirements and an instant view of the grid, maximizing grid occupation and computing capabilities. And all in Java™ technology. The speakers are sure that this approach can be extended to many other problem domains, of which they are not aware right now. They would like to have an open discussion and share with the grid community their experiences and frustrations when building grid systems. The speakers will do a slideshow to introduce the motivation behind the Grid solution we designed, and also discuss some of the architectural aspects of it. Then the session will be open to Q&A or any other interactive format that the audience may require.
(Carlos Vaquerizo, Miguel Vidal, Patricia De las Heras)
BOF-0260 Java™ Champions - The Latest Buzz, Highlights, & Panel Discussion.
One of several developer initiatives launched by Sun Microsystems at the JavaOneSM conference 10th Anniversary was the Java™ Champions Program. Sun created the Java Champions program for a very simple reason: " To build a community of representative influential Java leaders with whom Sun could have conversations about the state of the platform, to explore what's emerging in the Java ecosystem, and to share ideas on how to further enable the adoption of Java technologies and platforms." See https://java-champions.dev.java.net/ • Java Champions are an intelligent, independent,and well rounded group of individuals who are passionate about Java technology. Java Champions support the Java Platform; they are not Sun employees; and, they understand the significance of Java technology in today's technological and business environment. • The Java Platform is an open standard. The Java Champions program is just another great example of how Sun is SHARING with the developer community through conversation and collaboration. TOGETHER, Sun and the Java Champions hope to evolve the Java Platform. • The Champions are an excellent resource that is being made available to the Java community at large. Champions are willing and able to work with the community to spread their knowledge or to act as spokesman for the community, bringing questions and concerns to the attention of key Sun personnel. This session will provide a brief overview of the program: purpose of the program; its evolving nature; highlights; upcoming initiatives; the role champions play in the Java tecnology Eco-System; and, other topics at the request of the Java Champions. There will be an interesting panel discussion led by Sun's Matt Thompson (Director Technology Outreach and Open Source Programs Office). There will be Special Guest(s) from Sun's Java Enterprise Development group involved in the panel discussion. Java Champion speakers and Sun Personnel will discuss the following topics in a panel discussion : • "What it means to be a Java Champion". • "Why Java technology is still an important", growing and vibrant technology that is just as relevant today as it was 11 years ago. What Sun and the Java Champions can do to advance Java technology adoption. • How will the Java Champions Community and Sun deem the program to be successful? Term Limits: Honorary members vs active members. • "Java Champion feedback" to Sun and its affect on current Java development. How can Sun keep the Java Champions community informed on changes/enhancements to the Java Platform? • Important *initiatives* discussed in the Java Champions mailing lists: - Student Stipends Project https://stipends.dev.java.net/ - Java Champions involvement in Sun Tech Days Brazil and South Africa; Ideas for FY07 Tech Days schedule - How Champions are learning from the Java Education Development Initiative (JEDI) in the Philippines; Brazil/Philippines partnership - JUG Leaders/Java Champion speakers bureau - SDN Community Champions spotlight of Java Champions on the SDN homepage) - Other Topics at discretion of the Java Champions • This BOF session should prove to be a WHO's WHO meeting in the Java Community Following the BOF there will be time for the Java Champions, Sun Java Technology Evangelists and Luminaries, and participants to network and socialize.
(Clark Richey, Yakov Fain, Matt Thompson)
BOF-0601 Meet the Java™ Platform, Standard Edition (Java SE) Core Libraries Engineering Team
Attend this session to meet the engineers responsible for the Java™ Platform, Standard Edition (Java SE) core libraries. They are responsible for java.lang, java.io, java.nio, java.util, java.net, and the character converters as well as other small bits of Java Platform, Standard Edition. The session presents what the team has done lately and what it is planning to do. After each engineer briefly introduces themselves and describes their current areas of responsibility, the floor will be open for Q&A. Attendees will have the opportunity to ask questions and provide feedback on core library APIs and features. Consider this your chance to ask the staff that maintains the code that every Java technology developer uses on a daily basis.
()
BOF-0623 Java™ Technology-Based Performance on Multitthreaded Hardware Systems
We'll discuss issues encountered when running high-performance Java™ technology-based applications on multithreaded hardware systems. We'll cover the issues you can expect to see on CMT (chip multithreaded) and multi-core processors but the topics and tuning suggestions are generally applicable to most large SMP systems. We'll present brief architecture overviews and then cover Java™ Virtual Machine (JVM™) performance optimization and tuning and operating system tuning. The audience will walk away with an understanding of tuning considerations for multi-processing systems and some specific considerations for the CMT and multi-core variants of these systems. The presentation provides an overview of performance tuning options for the Java 2 Platform, Standard Edition (J2SE) 5.0 and Java Platform, Standard Edition (Java SE) 6 Hotspot™ JVMs. It also points the audience to documentation and online forums from which to learn more about the subject.
(David Dagastine, Paul Hohensee, Brian Doherty)
BOF-0821 Service Component Architecture in Practice: The Tuscany Open Source Project
Tuscany is an open source project that provides implementations of key technologies for service-oriented architecture/service component architecture and service data objects. Tuscany provides the runtime elements of SCA and SDO and uses them in conjunction with other well-established Java™ runtime environments such as Apache Axis, Apache Tomcat, and Apache Geronimo. This BOF session is a gathering place for developers who are interested in using the Tuscany code base and also for developers who are keen to contribute to Tuscany. The session covers the latest developments with the Tuscany code base, including the features now supported and those that are being worked on. It addresses the structure of the code base, the code repository, and the build process. Experiences of using the code base are discussed, with a demonstration of some of the latest features.
(Kenneth Tam, Jean-Sebastien Delfino)
BOF-2559 Discovery and Dependency Injection Patterns in Modular Architectures
Modular applications have unique requirements for both object discovery and dependency management. With seven years to refine our approach to this difficult problem, the NetBeans™ IDE offers some unique insights into lookup patterns in modular applications and how to do such patterns in a type-safe way, both for the case of looking up global services and the case of exposing ad hoc capabilities on existing objects. This BOF session discusses the problem space, how lookup patterns relate to dependency management, and how NetBeans technology manages both at the same time via the Lookup library, which can be used by any client- or server-side Java™ application.
(Jaroslav Tulach, Tim Boudreau)
BOF-2594 Java™ BluePrints Application: Creating AJAX-Enabled Web 2.0 Java Pet Store Demo Software
The Java™ BluePrints team has created a new version of the popular Java Pet Store demo software application that uses Asynchronous JavaScript™ and XML (AJAX) technologies to create next-generation Web 2.0 applications. This BOF session provides an opportunity to discuss the key insights and discoveries from developing this as a Web 2.0 application. It examines how the Java Pet Store demo software uses AJAX to create single-page GUIs with features such as tagging and user participation. It also discusses security features such as using Captchas to prevent automated attacks and security images to prevent phishing scams. It also illustrates how the pet store application plugs in a search engine and uses public APIs by popular search engines such as Google. We will start this BoF with a demo of the petstore, and the key Web 2.0 features implemented in it. We will then present major design choices for such an application one by one, present our thoughts and recommendations, and solicit comments from the audience.
(Inderjeet Singh, Yutaka Yoshida, Mark Basler)
BOF-2807 Java™ Persistence API in the NetBeans™ IDE
Object-relational mapping in the new EJB™ 3.0 specification focuses on simplification and developer productivity in the persistence area. This new style of access to databases has an impact on the architecture of many parts of an application. Important news is that the spec also covers out-of-the-container environments such as Swing applications and simple Web applications. All of these changes also have an impact on tools. Although EJB 3.0 will undoubtedly make the developer's life simpler, there are still areas where a good IDE will be essential. A good tool needs to provide all of the following: • Adding persistence support to any type of project environment. • Specifying a provider and its properties. • Creation of entity beans. • Mapping to databases. • Managing relationships between entities. • Using entity beans from all types of components (managed and nonmanaged environments). • Deploying, testing, debugging, and profiling applications. There are some typical situations in which the developer needs some help; otherwise, a lot of time must be spent with web searches and unsuccessful attempts to get things working. These areas typically are the creation of entity beans from databases, the relationships between entities, and usage of EntityManager from all around the application (where access to its instance and session handling is completely different in managed and nonmanaged environments). Another big source of developers' problems is queries, where syntax highlighting, code completion, and hints can help a lot. There's another new feature --overriding annotations with deployment descriptors - with which developers can get lost and the IDE can make things clear easily. This session discusses how the NetBeans™ IDE brings all of this to the everyday development life cycle and adds superb features such as zero-configuration development and deployment with the Java™ Platform, Enterprise Edition (Java EE) 5 platform reference implementation; application server GlassFish project; and Java BluePrints Solutions Catalog, offering patterns and best practices with sample applications in a few clicks. The BOF I will come through Java Persistence API features in the NetBeans IDE, major part of presentation will show their usage on the samples and finally I will try to answer questions from attendees.
(Martin Matula, Petr Jiricka, Martin Adamek)
BOF-2816 Measuring the Performance of the Java Card™ Platform
Smart card technology has been around for many years, and it is now a mature technology, with billions of deployed cards. Security certification is frequent on Java Card platforms, which have been evaluated against standard schemes such as Common Criteria and proprietary schemes such as those of bank associations. On the other hand, the performance of Java Card™ platforms remains a well-kept secret, and it is very difficult for issuers and developers to compare cards. The great difficulty in making this measurement comes from the very nature of smart cards: Because they are very specific, even in their way of managing memory, the benchmarks must also be specific. This session starts with a presentation of a methodology developed by the speakers and the way its results can be used by developers and issuers to make the best-possible use of Java Card technology. It continues with an open discussion with Java Card platform and application developers to gather requirements from the Java Card community.
(Eric Vetillard, Pierre Paradinas, Gilles Grimaud)
BOF-2823 What Every Developer of Location-Aware Mobile Applications Should Know
Location capability is expected to become a mainstream feature of mobile phones. Now there is a standard API, JSR 179, that provides access to the geographical coordinates of the device. However, to be useful, most applications need some kind of location-related information, be it a street address or a map. This BOF session discusses how to translate the coordinates obtained from the API into geoinformation from resources such as POI databases, map services, satellite imagery, and local search services. This BOF consists of both a presentation and one or two demos. Attendees will have a chance to ask questions and share their own experiences.
(Ulf Brehmer, Jon Malmquist)
BOF-0157 The OSGi Service Architecture, From Embedded to Enterprise
The key power of Java™ technology is its rich ecosystem and diversity in both APIs and implementations. However, despite this richness, there are few application architectures that address the deployment, collaboration, and management issues that the separation between implementation and specification creates--issues such as discovery, binding, versioning, and life cycle management. The OSGi specifications were developed to address exactly these issues. The specifications provide a comprehensive and integrated dynamic service architecture that is applicable to everything from embedded systems to enterprise application servers. Its model is built on the notion of bundles that implement or use several services. Bundles can be deployed, managed, and uninstalled. Services are objects that can be discovered dynamically and used but can also dynamically disappear. The specifications have been widely adopted, including in Eclipse's plug-in model. Apache has also started an OSGi incubator that is highly successful. Further, future generations of mobile phones will embed OSGi, and so will several Java Platform, Enterprise Edition (Java EE) servers. OSGi is an emerging technology that looks like it will become widely adopted. This presentation outlines the characteristics of the architecture, explains the ins and outs, and in general shows why (and how) it is beneficial to most monolithic applications and crucial for applications based on a plug-in model. If you have heard of the OSGi specifications and want to know more, this is the BOF to come to. In an open, interactive atmosphere we will have many posters, demonstrations, and slide presentations about the use of the OSGi Service Platform in a spectrum of solutions. Many of the key people that have contributed to the specification will be there to discuss the technology and explain any questions you might have.
(BJ Hargrave, Peter Kriens)
BOF-0377 Confessions of a JVM™ Software Writer
The speaker wrote his first static compiler at age 15 and his first JIT the next year. After a 15-year hiatus, he came back and, for the last 10 years, has been writing a JIT that is also a full-blown optimizing compiler and generally working on all aspects of the Sun Java HotSpot™ virtual machine. This is a highly targeted presentation, aimed squarely at JVM™ software writers (mostly desktop and up). It discusses decisions made in the design of HotSpot (or in any JVM machine) and how they panned out in practice (and not just the JIT decisions). It includes a list of things the speaker would do differently the next time around or that worked surprisingly well, given how little was known about JVM machines when HotSpot was started. The session should be highly enlightening to maybe a few hundred people in the world and very informative to those who want to know more about the inner secrets of JVM software. If there is time, the session will also include 30-odd slides on code unloading in Java HotSpot virtual machine, a surprisingly difficult problem for what, on the surface, appears to be simple. And the problem *is* simple on most embedded JVM machines--but multi-CPU JVM machines have a host of problems that do not plague embedded systems. This BOF will be a short presentation with Q&A encouraged throughout, then more Q&A untill time runs out. People who have some knowledge about how JVM machines work will get more out it, but you don't need to be a JVM technology implementor to enjoy the talk.
(Cliff Click)
BOF-0520 Customizing the "Grizzly" NIO Framework
Last year's JavaOneSM conference presented Grizzly, a flexible and very high-performance HTTP engine that exceeded the performance and scalability of well-tuned native implementations. In the past year, Grizzly has become extensible and available under open source license in Project GlassFishSM. This presentation covers some new projects involving Grizzly, such as customizable request processing, multiprotocol handling, asynchronous request processing (Asynchronous JavaScript™ Technology and XML [AJAX], Java™ Message Service [JMS]), application resource allocation, and load balancing. Come to learn about how the Grizzly framework is designed and how to create your own customizations to this scalable and extensible architecture.
(Jean-Francois Arcand, Andreas Egloff)
BOF-0552 First Class Swing Drag and Drop in Java™ SE 6 ("Mustang")
With the release of version 6 of the Java™ Platform, Standard Edition (Java SE) "Mustang", Swing Drag and Drop has seen major enhancements that make it much more flexible and extensible and just plain easy to use. This BOF introduces the new API, shows how easy it is to turn on DnD, and then dives into some of the advanced features and pushes it to the limit. For the first time, here's a BOF about Swing drag and drop by the engineers behind the API. After a brief introduction to the existing Swing Drag and Drop API, attendees will learn about enhancements that make Swing Drag and Drop truly first class in Mustang. Upon completion, attendees should leave with a clear picture of how to easily add complex drag and drop to their Swing applications.
(Shannon Hickey)
BOF-0668 The Grid Appliance: Simplifying Distributed Computing
Grid computing is an increasingly hot topic, with an endless stream of new products and technologies announced daily. The benefits of the technology are clear; enabling an application to transparently harness the resources of multilple systems is a powerful idea, more than just hype. And although success stories abound on vendor sites, ease of use is rarely touted as a feature. Scalable Computing set out to create a different kind of grid computing system. Interviews with customers revealed several recurring themes. Many were looking to replace or enhance an existing infrastructure that was brittle or failure-prone. They wanted a solution that was easy to configure and manage, that could host multiple applications without the investment of hours for each deployment. And they didn't want to change the way their developers write applications or have to struggle with unfamiliar or product-specific "grid APIs." The result: Scalable Computing's Grid Appliance and Grid Development Environment. The Grid Appliance offers a unique combination of features designed to simplify and promote distributing computing applications: - Capability: The Appliance leverages advanced Jini technology and Linux technology to provide out-of-the-box server plug-and-play, constraint-based scalability, and self-healing capability for applications. - Ease of use: The Appliance is all about simplifying development and deployment. It offers: > A full-featured Eclipse development environment, the most popular Java™ IDE. > Full support for the popular Spring container framework. Developers work with POJOs, not proprietary or technology-specific APIs. > One-touch application deployment. Hot deployment of distributed applications is a click away. - Utility: Several ready-to-go application profiles have been developed specifically for the Grid Appliance, including the distributed Tomcat profile, the VMware profile, and the distributed Apache profile. In this session, learn about how the Grid Appliance can be leveraged for greenfield development, for breathing new life into applications that have hit the wall, and as a robust infrastructure for enterprise services. The presentation begins with an overview of the Grid Appliance's features, followed by a discussion of the design decisions, implementation challenges and future directions of the product. The presentation concludes with a live demonstration of the appliance and the application development environment.
(Tom Cellucci, Chris Cellucci)
BOF-0755 The Apache Harmony Project
Apache Harmony is an incubator project of the Apache Software Foundation (http://incubator.apache.org/harmony) to build a compatible implementation of Java™ Platform, Standard Edition (Java SE). The project’s goals include creating an open, modular architecture that supports interoperability between multiple implementations of the Virtual Machine for the Java™ platform (JVM™) and multiple implementations of the Java SE class library. This BOF session is an opportunity for the Apache Harmony community to gather and meet each other in person, discuss the current state of the project and the ongoing development and testing, ask and answer questions about using Harmony, and brainstorm about the project roadmap. This BOF is an open discussion for everyone interested in open source Java SE. We will have a brief presentation about the project, followed by discussion and Q&A. We'll discuss the project's goals and status and key aspects such as the Apache open development process, componentization, OSGi, modularity, and class library performance. Those interested in this BOF should also attend TS-3752, "Apache Harmony's Approach to Implementing the Java SE Platform"
(Geir Magnusson, Jr., Ken Walker, Tim Ellison)
BOF-0983 Real-World JGraph
Today's user interface (UI) libraries offer components for lists, tables, and trees, but graph components are rarely implemented. JGraph provides a fully standards-compliant graph component for the Java™ Foundation Classes (JFC/Swing) UI library that supports extended display and editing options. JGraph is a mature, freely available, open source component providing the vast majority of features needed by a range of graphing applications, such as organizational charts, network diagrams, call graphs, workflow designers, drawing tools, displaying databases, and many more. This presentation walks through the design transition from JTree to JGraph that formed the basis of the original JGraph software and then explains the additional features added to create a fully featured graph library. The outline of JGraph's design and implementation focuses on Swing compatibility, where appropriate, and explains where it was necessary to extend Swing design. The basic API for creating and manipulating a graph is explained and reinforced with concrete examples of JGraph in use. The target audience is Swing practitioners who need a basic grounding in JGraph's architecture and application as well as those seeking a more general introduction to how applications might use graphing libraries. The presentation discusses the component's design and implementation and explains the ideas and concepts behind the architecture. It includes a brief overview of features that build on the basic JGraph libraries, such as layouting and graph analysis, because these features are common in graph applications. Further general architecture principles, such as using graphs on the server side and linking graphs to the application business logic layer help complete this overview of JGraph and its usage. This BOF session will consist of a short presentation detailing the design relationship between JGraph and Swing, whether graphing fits into such a graphics library and whether following Swing design principles are suitable for a graph visualization library. Depending on the volume of feedback and questions the presentation may be extended or move into an open floor discussion of JGraph and related Swing architecture.
(David Benson, Gaudenz Alder)
BOF-2417 Memory Leaks in Java™ Technology-Based Applications: Different Tools for Different Types of Leaks
Not all memory leaks are the same. Some eat away at memory slowly over time. Others grab huge chunks of memory all once. What is common for most of them is that they ultimately cause the virtual machine's heap to run out of space. A large variety of tools provides a high-level view of a Java™ application's memory usage, but not all of them are appropriate for doing the detailed analysis needed to find the cause of a memory leak. Depending on the type of memory leak, some tools are more appropriate than others. This BOF session examines some of the tools and techniques available and uses example memory leaks in real-world Java applications. The presentation shows how to track down a memory leak where multiple object instances of the same class are created over time, some of which are the source of a leak and others of which are not. It then examines how to debug a memory leak where only a single object instance is the source of the problem. Each of these examples involves a brief examination of the source code and a demonstration using a monitoring/profiling tool. Attendees are expected to understand the basics of virtual machine garbage collection and the conditions that lead to a memory leak in a Java application. After the demonstrations, the presenters would like to have an open discussion about memory leaks in real-world applications, so if you have experience in using specific tools and techniques for solving these sorts of problems, please attend and share your story with others. Attendees can expect to see brief demos of memory profiling and monitoring tools. The session includes two case studies, so two different types of memory leaks can be described. Sample debugging sessions illustrate the different types of tools that are appropriate for different types of memory leaks.
()
BOF-2483 Leveraging Java™ Technology to Integrate Messaging With Web 2.0 Power
Web browsing and email/messaging are the two "killer" applications of the Internet. The web is a "pull" experience, in that the user initiates synchronous requests for content or services, and email and messaging (instant messaging, voice mail, and the like) are "push" experiences, in that content from others (often too much content) is asynchronously delivered or pushed to the user. For users, the separation between the browsing (pull) and messaging (push) paradigms can be frustrating, causing them to waste excessive time cutting and pasting content from email into the browser to take action based on message content. Imagine a technology with the power to marry Web 2.0 technologies to enterprise messaging (email, IM, voice) and collaboration, a technology that can integrate the two major "push" and "pull" web experiences and make them work together seamlessly. This session explores ways to leverage the power of Java™ technology to create an exciting messaging experience. It explains how a system developed with Java technology can enable arbitrary message content to be made "live" by linking it with web content and services on intranets or the Internet. The beauty of this Java technology-based approach is that all the "smarts" are on the receiving end: The author of the email is not obliged to "tag" something as a URL or an email address. Rather, the receiving email application recognizes these magic strings and links them for ease of user action. Until now messaging systems have generally not been extensible; they have only linked to actionable content natively supported by a messaging system. This session explores how developers can leverage Java-based development to create extensible mechanisms that enable "live" mail. Imagine if: • Email from customers could be autolinked to the customer support and CRM systems • Email from suppliers and redistributors could be autolinked to inventory management, manufacturing control, and accounting systems • Email regarding a particular derivative could be autolinked to trading and risk management systems • Email regarding a new employee could be autolinked to the appropriate HR systems This session also includes examples of how companies can use this mechanism to develop new programs specific to their needs and how developers can use this technology to create their own Web 2.0 messaging mash-ups.
(Roland Schemers, Ross Daragahi, Kevin Henrikson)
BOF-2521 Rapid Web Application Development With Grails
The emergence of Ruby on Rails has inspired many leading figures to reevaluate how they are building web applications, prompting some to question the current crop of Java™ technology-based web frameworks. However, a significant number of organizations simply have too much invested in Java technology to abandon it as a platform, and it's the platform that is Java techology's real strength, along with the mountain of open source libraries, frameworks, and IDEs. Rails' impact on the web development industry cannot be underestimated, however, and it has led to the emergence of a new set of Java frameworks such as Trails and encouraged existing frameworks such as RIFE to support concepts introduced by Rails--and, of course, there is Grails (Groovy on Rails). This session, presented by the project lead of Grails, is a must for those who are interested in the new direction web frameworks are taking and in particular how a dynamic scripting language such as Groovy can be harnessed on the Java platform to make developers more productive. The session takes you through creating a typical CRUD (create/read/update/delete) web application in 15 minutes, using Grails' advanced features, such as dynamic persistent methods, scaffolding, and a Groovy-based view technology. However, just as Groovy complements Java development, the session also demonstrates how Grails complements Java technology-based web development, including how to create Java domain classes and still be able to access advanced features such as dynamic persistent methods, how to use Grails controllers to call business logic written in the Java language, and how to test your Java application logic by using Grails test cases.
(Graeme Rocher)
BOF-2531 Java™ ME Platform Consumer Applications Panel
In this panel, developers of consumer applications for the Java™ Plaform, Micro Edition (Java ME) platform describe the opportunities presented and challenges faced during development and deployment of some of the most successful consumer applications being sold on Java ME platform-capable mobile handsets. Join us at a Q&A session with a panel of Java ME developers who have successfully launched applications with wireless carriers, and come hear and ask about about the opportunities presented and the challenges faced during development and deployment of some of the most successful consumer applications being sold on Java ME platform-capable mobile handsets
(Juan Felipe Rincon, Allen Smith, Ronjon Nag, Jason Loia)
BOF-2890 Reviewing the Deployment Strategies and Issues With TCP/IP-Connected Java Card™ Technology
The ubiquity of the TCP/IP protocol has made it the de facto standard protocol suite for wired networks. Incorporating TCP/IP in the next-generation Java Card™ technology will make it possible to directly connect a card to a network infrastructure without proxies or other middleware. The speakers envision that data transport on a TCP/IP Java™ technology-based card is done with the two main transport protocols in the TCP/IP stack: connectionless UDP and the reliable byte-stream TCP. However, connecting a TCP/IP Java technology-based card to an existing infrastructure raises some issues, including the following: • IP address configuration • Name resolution • Terminal requirements Come to this BOF session to discuss these issues and some new usage models and scenarios. Even with these questions to be sorted out, the forecast benefits of TCP/IP for the smart card industry, such as remote administration and usage of mainstream application servers, are enormous. This BOF will consist in a small presentation of some issues regarding the deployment of a TCP/IP connected Java Card followed by a general question and answer discussion.
(Eric Deschamps, Christophe Muller)
BOF-0351 Using the Tools in JDK™ 5 and the Java™ SE 6 Platform to Diagnose Problems and Monitor Applications
The JDK™ 5 and 6 releases include several useful tools and utilities. jstat uses the built-in instrumentation in the Java HotSpot™ virtual machine to provide information on performance and resource consumption of running applications. The jstack and jmap utilities can be used to print thread dumps, detect deadlocks, print heap summaries, and obtain other useful information. This session shows you how to use these tools and utilities to effectively observe your application. It also shows how these utilities can be used to get further information when your application performs badly, crashes, or hangs.
(Alan Bateman)
BOF-0381 Hop on the Swinging Event Bus!
Learn a novel approach to Swing design: the Event Bus. The open source Event Bus library (http://eventbus.dev.java.net) provides an elegant alternative to tightly bound Swing event listeners. This session discusses the tricky corners in which Swing developers often find themselves and how you can get on the Event Bus to easily get out of them. This session shows you patterns for creating loosely coupled, reusable Swing components that lead to robust, flexible Swing designs. Going beyond single components, the role of the Container Event Bus for Swing forms and dialog boxes is discussed and demonstrated. The presentation shows the usefulness of the Event Bus as a medium between the server and GUI layers. Finally, it shows you how to leverage the Event Bus to create frameworks in Swing for client concerns such as validation and binding. The session emphasizes the dark art of unit testing in Swing and how the Event Bus makes Swing unit testing possible. The presentation makes comparisons with similar event APIs and includes plenty of demonstrations. The target audience is beginning to advanced Swing developers. Attendees can expect to learn about the Open Source EventBus library (http://eventbus.dev.java.net ), a Swing-centric Publish-Subscribe mechanism. The BOF will demonstrate through many examples how the EventBus enables you to employ new patterns that simply solve otherwise nasty problems like adding and removing listeners at the right time without memory leaks or listening for an event whose source doesn't yet exist.
(Michael Bushe)
BOF-0399 Java™ Technology as a Medium for Art and Creativity: Mixing Technology and Art With Processing
Armed with the idea that technology influences art and vice versa, this presentation explores ways in which Java™ technology and Processing can be used as a medium for artistic and creative expressions. It investigates characteristics of Java and Processing technology in the light of what they have to offer artists and allude to some existing creative approaches people have taken with them. It looks at Java technology not in a practical software application sense but in an artistic sense, in hopes of fostering awareness of Java technology as a creative medium. The session briefly introduces Processing as a Java technology-based programming language and shows through example and source code how Processing can be used as a mechanism for quick, creative, and artistic expression. It then exhibits software sketches created in Processing and on the Java platform that focus on the area of visual compositions of a programmatic nature and show how behavioral changes to elements within the system bring about creative and unpredictable results in the overall compositions. This session will provide attendees with a deeper insight into the potential of Java as a creative medium. We will present artwork done in Processing and demonstrate how Java enables the free flow of ideas for creative expression.
(Michael Ingrassia, Greg Johns)
BOF-0518 Multi JVM™ Control Panel: A Mechanism for Monitoring and Controlling Java™ Virtual Machines
This presentation looks at the problems of monitoring and manipulating multiple Virtual Machine for the Java™ platform (JVM™) machines simultaneously. The increase in the complexity of business solutions typically requires multiple instances of a JVM machine to handle different components of the solutions stack of products and/or to handle operational characteristics of the solution, such as load balancing. In such an environment, it becomes difficult to either monitor the JVM machines in real time or to manipulate and control a JVM machine and/or its environment. All too often, you end up with disparate sets of logs/traces that have to be laboriously "merged" to compose a real-time view across multiple processes. This session discusses the requirements and presents a JVM software control panel capable of gathering together multiple JVM machines and monitoring such items as their environment, memory utilization, CPU consumption, and events. It also shows how the same tool can be used to alter selected parameters of one or many JVM machines to effect diagnostics such as trace and GC. In addition, the control panel incorporates a "native" agent that supports in-depth monitoring of the native OS. A simple extension of the control panel allows runtime testing techniques such as enforcement of high levels of GC, creation of memory leaks, tight memory constraints, memory thrashing, and the like. The control panel allows for connections to be established in an industry-standard secure manner so that the GUI control panel can be remotely located from the VM(s) it connects to. This BOF session will consist of three parts; 1) A brief review and discussion of the requirements for monitoring and manipulating multiple JVM machines simultaneously, 2) A demo of a JVM software control panel capable of dynamically gather, monitor and manipulate a set multiple vendor JVM machines, 3) An open question & answer session.
()
BOF-0606 Annotation Processing With JSR 269
JSR 269 adds standard annotation processing to JDK™ 6. In this BOF session, JSR 269 expert group members discuss annotation processing and take questions from the audience.
(Bruce Chapman, Jess Garms)
BOF-0614 Simplified Application Development With SwingLabs
SwingLabs is a laboratory of open source projects for exploring new ways to make Swing and other desktop-technology-based applications (such as the Java 2D™ API and AWT) easier to write, with improved performance, greater visual appeal, and seamless integration with native desktop platforms. SwingLabs projects include native components from JDIC, a data binding framework, Swing extension components, a markup language, and much more. This BOF session discusses in an informal way how to use the SwingLabs projects to create high-quality rich client applications today.
(Richard Bair)
BOF-0980 JSRs 236 and 237: Concurrency Utilities for the Java™ EE Platform in Practice
The best way to understand Concurrency Utilities for Java™ Platform, Enterprise Edition (Java EE) is to see it in practice. This session builds on the concepts in the "Developing Multithreaded Applications with JSRs 236 and 237" session, describes in detail how Concurrency Utilities for Java EE works, and shows you typical and advanced use cases with code examples for developing the following: • Multithreaded applications and servers using ManagedExecutorServices • Workflow systems using a ContextService • Distributed, horizontally scalable applications using a distributable ManagedExecutorService • Time-driven applications using triggers and a ManagedScheduledExecutorService • High-performance applications using the Java platform's ExecutorService with the ManagedThreadFactory You also learn how to administer asynchronous tasks, properly manage Java EE platform context, and develop an understanding of the different types of high-performance applications that can now be created. Prerequisite knowledge of JSR-166 (Java SE 5 Concurrency Utilities) and the Commonj Timer and WorkManager for Application Servers specification is not required but is helpful in understanding some concepts. All Java EE application and application server developers will be interested in this session. This BOF will consist of a comprehensive presentation by the JSR 236/237 expert group, followed by a short question-and-answer session.
(Andrew Evers, Naresh Revanuru, Chris Johnson, Cyril Bouteille)
BOF-2141 Develop Rich Competitive Applications for Mobile Environments With Java™ ME Technology Standards
This panel offers the latest information from Java™ Platform, Micro Edition (Java ME) platform pundits participating in the development of Java platform standards through the Java Community ProcessSM (JCPSM). The panelists discuss highly technical and provocative topics highlighting the most recent Java ME platform standards developments aimed at creating rich competitive application environments compliant with most terminal suppliers. Get the inside scoop on why the experts are behind Java technology to power the environment for the next generation of handsets; get beyond the buzz about developing rich enterprise-level applications for cell phones, with the latest information from the mobility computing leaders themselves; amd discover why faster handsets don't need limits and what improvements are to be expected, including Java ME platform standards. Different angles and points of view ensure a dynamic debate that appeals to developers interested in discovering the cutting edge of mobility computing and building a competitive advantage based on it. Experts from the JCP Program Management Office will also be on hand to answer questions regarding how members can best leverage the JCP.org site and its powerful features designed to support high levels of cooperation among experts and help Spec Leads and Expert Groups deliver timely and quality Java standards. If you are interested in finding out the latest information from the Java ME standards leaders themselves and what improvements are to be expected in the field don't miss this session!
(Corina Ulescu)
BOF-2450 Cutting-Edge Productivity With RIFE
RIFE is a full-stack, open-source Java™ technology-based web application framework offering fast results with the promise of maintainability and code clarity. Although many are attracted to RIFE for the productivity gains it offers, the framework actively tries to solve difficult problems with creative solutions that combine power and flexibility with comfortability. RIFE has pioneered many novel ideas in Java web application development, including pure Java web continuations, runtime POJO-driven CRUD generation, scalable component-oriented architecture, state handling without sessions, a focus on REST as an application API, bidirectional logicless template engine, and the integration of a content management framework. This session demonstrates how RIFE lets you cut corners when there's no need for complex setup. You learn how trivial CRUD functionalities are instantly available and how they can be completely customized without the need to restart your servlet container. The presentation demonstrates the rich POJO-driven metadata system as well as how it propagates and drives most of the framework's modules. The session also includes the development of a component from scratch and the introduction of the web engine, the template engine, the persistence layer, and the content management framework. Attendees should have experience with dynamic web application development and have at least an intermediate level of Java programming language knowledge. This BOF will be driven by the audience that's present. Various presentations can be given about a collection of RIFE concepts. If people are interested in an informal Q&A session, questions will gladly be answered and backed by relevant examples or real-world application demos.
(Geert Bevin)
BOF-2461 Use the Tools to Generate Mobile Business!
With the rapid increase of mobile services and wireless applications, mobile operators and third-party service providers have been introducing more and more chargeable services. To provide simple access to these chargeable services from MIDlets, JSR 229 (Payment API) has been integrated into Sun Java™ Wireless Toolkit 2.3. Currently there are two ways to purchase a service, goods, and the like: by sending a premium-priced SMS and by using a credit card. Each of these payment methods uses its own special payment adapter, called according to the payment method: Premium-Priced SMS Adapter or Credit Card Adapter, respectively. The Credit Card Adapter is intended only for testing purposes and is capable of accepting three types of credit cards: Visa, MasterCard, and American Express. For purposes of testing the introduced payment adapters, a simple Payment Service Provider Server has been implemented and integrated in Sun Java Wireless Toolkit 2.3. This demonstration raises ideas for new business. It uses a simplified brick game to demonstrate integration of chargable services to the Sun Java Wireless Toolkit. After the demonstration, the same application is run on a real phone.
(Jean-Yves Bitterlich, Antero Taivalsaari, David Pulkrabek)
BOF-2796 Using WSRF in Developing Future Java™ Technology-Based Telecom Services
In the telecommunications industry, nonfunctional requirements for software applications that implement subscriber services are typically more demanding than in other business or scientific applications. Being able to specify the nonfunctional characteristics of a provided service is a major business requirement for a vendor of telecommunication infrastructure and applications. So far web services have not been applied to the telecommunications sector, because predictable capacity and quality of the services have been too hard to achieve. New developments in the Java™ platform and web services standardization have narrowed the gap between the tight QoS requirements of the telecommunications domain and Java technology-based web services. Employing the WS-Resource Framework (WSRF) and other web services specifications on top of the Java Platform, Standard Edition (Java SE) 5 platform makes it possible to address the performance, scalability, and dependability requirements of telecommunications applications. Using Java technology and WSRF means retaining the benefits of virtualization, interoperability, and manageability of web services while providing additional features to manage the QoS of deployed services. This session examines the requirements imposed on applications and platforms by the telecommunications domain and how to address these requirements with the Java SE 5 platform and web services. The speakers share their experiences in building a web-services-based platform for the telecommunications industry by using an open source WSRF implementation called the Globus Toolkit. This BOF session contains a slide presentation on the topic followed by a general Q&A session. We would also like to invite the audience to participate in a discussion on experiences using WSRF technology in building non-scientific service grids.
(Heikki Verta)
BOF-2835 Creating an IDE for Your Favorite Web Framework
Numerous web frameworks are available. And there are many IDEs. An IDE can simplify and streamline the process of creating an application that uses a certain web framework, and it can provide wizards; templates; samples; and a variety of editor features, such as syntax highlighting, code completion, and hyperlinking for a web framework. For example, an IDE's editor can provide syntax highlighting to make distinctions between identifiers in the code used by a web framework. But not all IDEs support all web frameworks. When no IDE provides specific support for a web framework, the developer isn't fully supported and time to market is affected. This presentation focuses on how an IDE (or a plug-in for the NetBeans™ IDE) can be created to support whatever web framework the developer feels most comfortable with. It describes the concepts and APIs provided by the module development support in the NetBeans 5.0 IDE. The topics covered enable the NetBeans 5.0 IDE to be enhanced and rebranded so that an IDE is created with the following support for a new web framework: •Wizards and templates for the creation of projects •Wizards and templates for the creation of files •New actions, menu items, toolbar buttons, and keyboard shortcuts •Syntax highlighting, code completion, and hyperlinks in the editor •New code snippets that can be dragged and dropped from the Component Palette •Framework-specific refactoring support •Project samples •Libraries and Javadoc™ tool •JavaHelp™ tool At the end, a NetBeans software plug-in and a standalone IDE will be created, with its own splash screen and executable.
(Petr Pisl, Geertjan Wielenga)
BOF-0442 Using JConsole to Monitor and Manage Your Application
JConsole is a Java™ Management Extensions (JMX™) application-compliant monitoring and management tool. Introduced in the JDK™ 5.0 release, JConsole allows you to securely monitor and manage a running application. For example, you can monitor the memory consumption, get a thread stack trace, find deadlocks, and set the log level at runtime. This session shows you how to enable your application to be manageable out of the box and then use JConsole to monitor various resources of the Virtual Machine for the Java platform (JVM™) as well as the application. Also, you learn about the new JConsole improvements in the Java Platform, Standard Edition (Java SE) 6.0 ("Mustang") release. This BOF will present an overview of JConsole with a live demonstration and give you an update of the new features added in Mustang. Then open for Q&A.
(Leif Samuelsson, Mandy Chung)
BOF-0600 Meet the Java™ Platform, Standard Edition (Java SE) Security Team
Come to this session to meet the Java™ Platform, Standard Edition (Java SE) security team and learn about the security features in the latest release of the Java platform, code-named Mustang. Topics include performing authentication, access control, secure communication, and cryptography with Java technology. This BOF discusses the security architecture, APIs, and supported standards (SSL/TLS, Kerberos, PKCS, and more). A short presentation discussing the new security features in Mustang will be followed by an informal Q&A where you can ask questions about anything related to Java SE security.
()
BOF-0988 Database Refactoring: Enabling Evolutionary Database Development
"Traditional" development practices, practices that are still followed by many data professionals today, are nearly serial in nature and driven by one or more forms of entity/data model that were baselined early in the software lifecycle. Times have changed. Modern software development methodologies, including both rigorous processes such as the Rational Unified Process (RUP) and agile processes such as eXtreme Programming (XP), are based on the premise that software should be developed in an iterative and incremental (evolutionary) manner. Furthermore these processes are often driven by new types of artifacts, use cases, and user stories and not data-oriented artifacts. Application developers are adopting new ways to work. Why can't data professionals? Database refactoring is a technique that enables data professionals to work in an iterative and incremental manner, just like the application developers they support. Like source code refactoring, database refactoring is based on the idea that you can evolve your database schema over time by applying small changes that improve its design without destroying its original invariants. This presentation explores the issues surrounding database refactoring. Although it is quite simple in greenfield environments, it becomes quite complex in the highly coupled reality of legacy databases and encompasses the techniques and philosophies that data professionals need to adopt to support modern development projects. Database refactoring is an enabling technique of the Agile Data method (http://www.agiledata.org). Audience: Database administrators, data architects, data modelers. Attendees can expect to learn what others like them are doing in practice, to discuss what works, and what doesn't work in practice.
(Scott Ambler)
BOF-2031 Experience Self-Organized and Ad Hoc Collaborative Development With the NetBeans™ IDE
Software developers have a wide array of collaboration tools to choose from when considering the best and most efficient means of interacting with colleagues. The choices narrow dramatically for composite applications that consist of core functionality coupled with ready-to-use collaboration features. Well, that time has changed, with the advent of the very popular Developer Collaboration features introduced in NetBeans™ IDE 4.1 that enable you to intuitively interact with colleagues, providing rich content IM capabilities, file and project sharing, collaborative editing, and remote compilation, all from within the the context of the NetBeans IDE. With the self-organizing and ad hoc JXTA™ technology Collaboration Provider for the NetBeans IDE, provided as a plug-in module, developers can now experience ad hoc collaborative scenarios that require few or no external resources. This can be significant for teams that may work within corporate networks that are isolated by design. Conversely, individuals who find themselves distributed across the globe can leverage this feature as well without requiring predeployed networking infrastructure. Further, JXTA technology provides a means whereby "resources from the edge," all peers being equal, can readily come into play and be offered as discoverable and invokable services, including voice, video, compute factory, and job dispatch over end-to-end secure communications channels.
(James Todd)
BOF-2597 Next Step UI: 3D Applications for Mobile Devices and the Desktop
This session addresses the resources, pitfalls, and reality of using interfaces such as JSR 184, JOGL, and the Java™ 3D API to build consumer and business applications for the desktop and mobile devices. Attendees should leave with the facts and information needed to successfully traverse this almost untouched terrain. This BOF session will be comprised of a short presentation on how we are looking at the use of JSR-184 and JOGL to provide a common API to build 3D applications that can be run on Java ME or Java SE platforms. An example of how we are attempting these techniques, and issues that we have come across will be discussed. Followed by a discussion session to examine uses in the real world.
(Shawn Fitzgerald, Herb Vines, Sam Hacksisombath)
BOF-2946 Trails in Depth
This session is an in-depth exploration of how Trails works "under the covers." It examines the web components and Spring services that make up the architecture of Trails and shows how these pieces fit together and how they can be replaced and customized. Attendees will come away with a thorough knowledege of Trails sufficient to enable them to contribute as developers or customize at a deep level. Attendees should have a basic understanding of what Trails is and what it does.
(Chris Nelson)
BOF-7831 Device Management for Mobile Applications
Managed devices are becoming more important in the mobile industry since the devices increase their complexity. Device Management addresses the complexity issue to improve the user experience of mobile devices. Device Management enables Mobile Network Operators, Device Manufacturers and 3rd parties to provide new applications to a mobile device and configure all parameters of the device and its applications. JSR 246 (Device Management) enables Java™ Platform, Micro Edition (Java ME) applications to access the provided configuration data. The configuration data of an application may range from simple User Interface settings such as background color or language information to complexer ones like network access parameters.
(Fabiano Cruz, Jens Paetzold)
LAB-4255 AJAX: Riding the Web Application Horse a Little Further
AJAX stands for Asynchronous JavaScript™ technology and XML, a technique rather than a framework, makes web application more rich and interactive like the desktop applications. JavaServer™ Faces technology, a user interface component based framework, is a rich and flexible application framework that enables rapid user-interface development to server-side Java. When to use AJAX technology? Can the richness of an AJAX interface work with an existing JavaServer Faces application? How can AJAX functionality integrate into a JavaServer Faces application? This lab is based on blueprints catalog solutions. It covers key issues and solutions for common problems when designing and building an AJAX application on Java™ Platform, Enterprise Edition (Java EE). For each problem topic it provides various strategies, patterns, and design guidelines for the solution. In this hands on lab, attendees will learn how to resolve some common web tier problems such as auto completion and real time validation. In the hands on lab exercises, the attendees will have an opportunity to develop and deploy AJAX application on NetBeans™ 5.
(Doris Chen)
TS-1278 Creating and Deploying Custom Jackpot Queries and Transformers
The Jackpot project adds reengineering capabilities to the NetBeans™ integrated development environment. In this session, you learn how to create custom queries to find problem areas in your code, plus transformers to quickly and safely fix those problems. The presentation describes the Jackpot rules language and the NetBeans IDE support for editing and executing your rules files. It also discusses how to add your own Jackpot commands to the IDE menu and how to deploy them throughout your development organization.
(Tom Ball)
TS-3024 Developing Java™ ME Platform-Based Graphical Applications to Take Advantage of Hardware Acceleration
Java™ Platform, Micro Edition (Java ME) has several graphics APIs, including JSR 184, JSR 239 (for 3D graphics), and JSR 226 (for 2D graphics). This session starts with an overview of these graphics APIs and discusses the appropriate API for different use cases. It also outlines how to write applications that mix these APIs. Today, most developers writing applications assume little or no graphics hardware acceleration. Although devices with hardware acceleration have been shipping for the last two to three years, not many applications take advantage of the underlying hardware. A good implementation of the graphics APIs can offer transparent acceleration of applications using these APIs. However, a developer may want to write an application that adapts to the level of hardware acceleration available. Achieving optimal performance may require coding with a knowledge of specific hardware characteristics. The presentation shows developers how to write application code that will run efficiently with hardware acceleration and includes several code samples and demos on devices for each of the 2D/3D APIs.
(Jerry Evans, Nandini Ramani)
TS-3616 Building EJB™ 3.0 Applications: A Simple Matter of Point and Squish
It is now widely accepted that Enterprise JavaBeans™ (EJB™) 3.0 specification-based applications ("EJB 3.0 application") have significantly reduced the complexity required for developing enterprise applications. What is less known is how the EJB 3.0 specification has introduced new and more flexible ways of building, packaging, and deploying business components and persistent entities. Application developers have not only more development and packaging choices but also more deployment options. All this while still gaining more portability across providers than ever before. This session focuses on the steps of actually building and assembling the various pieces of an EJB 3.0 application. It starts with the development artifacts, including component beans and persistent entities, and continues by defining the configuration and deployment metadata. It then shows how all of the pieces fit together into a deployment package that can be deployed into an EJB 3.0 specification-based container. Also included is a discussion of some of the architectural options available to EJB technology developers and application builders and how these options may affect the way an application is packaged and deployed. Packaging and deployment examples are shown to help illustrate the concepts.
(Michael Keith, Merrick Schincariol)
TS-3789 Touch a Phone, Touch a Friend: Using RFID and Visual Tags With JSR 257 Contactless Communication API
This session provides an introduction to the JSR 257 Contactless Communication API and to applications that can be developed with it. With the Contactless Communication API, Java™ Platform, Micro Edition (Java ME) application developers can write applications that enable users to share data, such as images and business cards, with a friend just by touching the other mobile phone. Near Field Communication (NFC) is used as the bearer to exchange data. JSR 257 also allows the development of applications that can read a URL on an RFID tag at the corner of a movie poster or write a phone number to a RFID tag on a business card. Application developers can also take advantage of JSR 257 when generating multiplayer games. In this context, the launch and possible Bluetooth pairing of the application on the other player's device can be done with the Contactless Communication API. Reading a visual tag (bar code) containing, for example, the URL of the magazine's web page, attached to an advertisement, is also possible with JSR 257. The Contactless Communication API also makes generation of visual tag images possible. The use of RF identification technology is growing rapidly, and it brings new opportunities for application developers. Visual tags are already widely used in printed material. This session provides code examples and demonstrates how the JSR 257 Contactless Communication API can be used. No prior knowledge about RF identification or visual tags is needed to follow the presentation, because it covers the basics of these technologies.
(Jaana Majakangas, Simon Woodside)
TS-3886 Dynamically Typed Languages on the Java™ Platform
Scripting languages are of growing importance, and they are typically dynamically typed. This session discusses improved support for these languages in Virtual Machine for the Java™ platform (JVM™) software, through the use of the new invokedynamic bytecode and through improved support for hot-swapping--modifying code and classes on the fly while maintaining the JVM software's security and integrity.
(Gilad Bracha)
TS-4251 Extreme Web Caching
Web caching is very important for a high-traffic, high-performance web site, but few people know all the professional-level strategies. This presentation shares some of the tricks of the trade, including advanced tips from Yahoo's Mike Radwin. The session starts with the basics: using client-side caches, conditional get, and proxies. Then it discusses more-advanced features: how best to handle personalized content, setting up an image caching server, using a cookie-free domain for static content, and using randomization in URLs for accurate hit metering or sensitive content. Attendees should have experience or interest in how the web works and in cajoling the web into doing their bidding.
(Jason Hunter)
TS-4317 It's Not Over Till the Fat Client Sings
Reports of Java™ technology's death on the client have been greatly exaggerated. In fact, the reverse is true: Where the browser was once hailed as the ubiquitous client platform that would deliver computing power across the Internet and also replace corporate systems with intranets, the truth is that it has failed to deliver anywhere near the usability that traditional client applications do. The browser became famous because of its ease of deployment, but Java technology has caught up hugely in usability and also in deployment strategies such as Java Web Start software. Numerous offerings are now available to those who don't want to be shackled to the one-dimensional page model of a browser. They range from thinlets to rich lightweight clients, to Asynchronous JavaScript™ Technology (AJAX), to the Swing and Eclipse Rich Client Platform running over Java technology Network Launch Protocol. This session discusses the various technologies that allow Java technology programmers to deliver a rich HTTP-based client to their users. It also covers the various pieces of market research that show how the browser is stagnating and developers and users are turning to richer and more functional offerings, and it discusses how Java technology can position itself to recapture the space it initially filled with applets and subsequently lost. The presentation also covers AJAX and whether or not it is good enough to fill the usability void left by browsers.
(Megan Beynon)
TS-5354 Scaling Up a Real Application on Azul
A short case study of a Java™ technology-based application doing device driver model checking. The basic application uses many small bits of work or independent tasks. Doing any one task may produce more tasks. The work is highly unstructured and very fine grained. In theory, this coding style should be endlessly scalable but in practice there were a number of issues, mostly due to the fine-grained nature of the tasks. The initial attempt used only a handful CPUs on Azul, but after 3 or 4 small modifications we got all 384 CPUs cranking away - and ran the job 45x faster than the fast P4 it was running on. Time to complete a proof dropped from *weeks* to *hours*. I'll demonstrate the steps needed to do basic performance analysis, discover the scaling bottlenecks, and discuss the application changes that were needed.
(Cliff Click)

Friday

10:45 - 11:45
12:00 - 13:00
13:15 - 14:15
14:30 - 15:30
15:45 - 16:45
LAB-5120 Application Monitoring and Management with NetBeans™ 5.0
Java™ Platform, Standard Edition (Java SE) 5 provides extensive support for monitoring and managing a Java technology-based application and the Java Virtual Machine (JVM™) software. In particular, the JVM software is highly instrumented and can be remotely monitored. This lab shows you how to instrument your own Java application using the Java Management Extensions (JMX™) API.
(Jean-Francois Denise)
TS-1315 How to Build a Scalable Multiplexed Server With NIO
You've gotten the hang of using NIO (new I/O) socket channels and selectors. You're even using a selection loop and nonblocking sockets. You're multiplexing, right? Not so fast. Multiplexing--managing many, many channels with one or a few threads--is conceptually simple but notoriously difficult to get right in practice. NIO's selectors and nonblocking socket channels are just the jumping-off point. To build a scalable and efficient network application you need to build on that foundation with a design that's robust, responsive, and resource-efficient. Feedback from readers of the presenter's book, Java NIO (O'Reilly), has shown that many Java™ technology programmers, accustomed as they are to the traditional Java technology-based thread-per-socket paradigm, struggle with the architecture of multiplexed servers. This how-to session focuses on the issues involved in designing a high-performance, multiplexed server application by using NIO. Topics include design patterns, synchronization, queueing, pooling, messaging, and more.
(Ron Hitchens)
TS-1319 Deployment Tips and Tricks for Using Java™ Web Start and Java Plug-in
After completing your Java™ application/applet development, you must decide how to deploy to your client. How can you deliver a smooth yet simple application deployment experience to your client ? How can you make sure the Java software version required is available? Even more important, how can you make sure Java software is present on the client computer ? Deployment is an unavoidable step in application development, and there are many issues you will run into while deploying your application/applet. This session looks at a few of the common Java application/applet deployment problems and the best practices for solving them.
(Andy Herrick, William Harnois, Thomas Ng)
TS-1382 Scripting in Java™ SE 6 (Code-Named "Mustang")
This session summarizes the scripting features in Java™ Platform, Standard Edition 6 (Java SE 6), including the scripting APIs and the JavaScript™ ScriptEngine included in the release. The main part of the presentation illustrates these features by building a real-life application. The starting point is a useful Java technology-based application that does not use scripting. The presentation shows how the application might be enhanced by allowing end user customizations. The first approach to customization is demonstrated with a Java callback interface that can be implemented by end users. The presentation includes an example of a useful customization. The example will require that the end user be a competent Java technology programmer. The second approach uses the Java SE 6 ("Mustang") scripting APIs to embed a ScriptEngine in the application. The presentation uses a script executed by the ScriptEngine to implement the callback interface of the previous example and shows an example in which a script communicating with the application's internal object model is used to automate the application. The final approach shows how the application can expose a simplified subset of its object model that is tailored for use by end users who may not be Java technology programmers. Most of the examples use the built-in JavaScript engine and illustrate its language features. The presenter modifies at least one of the examples by changing a single line of code to switch to a third-party ScriptEngine that uses another scripting language. At least some areas of the presentation will be of interest to any Java technology developer. Application developers will benefit from suggestions on how to enhance their applications by using scripting. Developers or users of third-party scripting language interpreters will benefit by understanding how scripts executed by their interpreters can be incorporated in mainstream Java technology-based applications by use of the Java SE 6 ("Mustang") scripting APIs.
(Mike Grogan, Tor Norbye, A. Sundararajan)
TS-1887 EJB™ 3.0, Java™ Persistence API, and the Web Tier
The Enterprise JavaBeans™ (EJB™) 3.0 specification, together with the Java™ Persistence API, has considerably simplified the development of enterprise applications. This session examines the impact of the EJB 3.0 specification on the development of web tier applications and looks at new design patterns for the EJB 3.0 architecture and Java technology persistence usage in the web tier. The topics it covers include the following: • The use of Java technology persistence without EJB Session beans in web tier applications • Patterns for the usage of extended persistence contexts in the modeling of web tier conversations • Interactions between the different concurrency models used in servlets, JavaServer™ Faces components, and the EJB specification, and the use of EJB beans in multithreaded web tier applications • Uses of stateful session beans in the web tier and their role with Java technology persistence • Dependency injection dos and don'ts • Best practices for transaction demarcation • Writing custom JavaServer Faces tag libraries for the Java technology persistence API • Accessing the web tier contexts from EJB components
(Craig McClanahan, Linda DeMichiel, Gavin King)
TS-1923 Live Demo: Adapting and Optimizing a Java™ ME Application for Global Deployment
As the number and variety of handsets and applications escalate, the challenge of device fragmentation continues to grow for developers of applications based on Java™ Platform, Micro Edition (Java ME). Developers continue to find themselves hampered by resource constraints and limited toolsets and are desperately seeking porting and content optimization solutions that can deliver a working knowledge of device characteristics, operator requirements, and porting specifications for even the most complex applications while facilitating workflow, asset management, and content deployment processes. Fragmentation caused by the variety of firmware versions, device-specific APIs, deviations from the Mobile Information Device Profile (MIDP) specification, memory management and graphics issues, device performance, localization, and operator-specific requirements is just one part of the complex content deployment equation. Add to these elements issues relating to branding requirements, market segmentation, and standards (or lack thereof), and it is evident that the device fragmentation problem will only get worse—and the demands on developer resources will keep escalating. With the overwhelming complexity and sheer volume of content that developers must cope with today, the key to overcoming the challenges of device fragmentation and achieving long-term success lies in embracing efficient approaches to porting and optimizing Java ME platform-based applications. Although the idea of porting and optimizing mobile content for global deployment may invoke thoughts of even greater complexity, the reality is that it can be done quickly and efficiently for even the most advanced applications. During this presentation, Tira Wireless leads developers through a live demonstration of the porting and optimization process for Java ME platform-based applications. It demonstrates how a Java ME platform-based application can be ported from one device to another and then optimized for maximum usability on the target device. Developers will walk away with a real-world understanding of the approaches that can be implemented to streamline the content deployment process, the potential issues that can arise during the porting process, and the steps that can be taken to minimize problems encountered when adapting an application for different handsets and mobile operators around the globe.
(Allen Lau, Oliver Tabay)
TS-3676 JSR 235 Service Data Objects (SDOs)
This session discusses how you can take advantage of JSR 235 Service Data Objects (SDOs) to simplify data access and representation in your service-oriented software. SDOs replace diverse data access models with a uniform abstraction for creating, retrieving, updating, and deleting business data used by service implementations. JSR 235 is co-led by IBM and BEA with other major partners. Service Data Objects (SDOs) replace diverse data access models with a uniform abstraction for creating, retrieving, updating, and deleting business data used by service implementations. SDOs are a fundamental concept, representing the data in service-oriented architecture (SOA). They make developers more productive, by freeing them from the technical details of how to access particular back-end data sources, so they can focus principally on business logic. SDOs are used widely in the IBM product line, including WebSphere Application Server and Rational Studio tools and the BEA AquaLogic product line. The Java™ DataBase Connectivity (JDBC™) API is a Java technology-based interface for executing Structured Query Language (SQL) statements. Currently the programming models for the JDBC API, Web Services Description Language--defined (WSDL) services, Enterprise JavaBeans™ (EJB™) technology, and so forth from a service implementation written in Java programming language are similar but annoyingly different. SDOs define a single and uniform way to access and manipulate data from heterogeneous data sources, including relational databases, eXtensible Markup Language (XML) data sources, Web services, and enterprise information systems (EISs). They are based on the concept of the data graph, a collection of tree-structured objects that might be disconnected from the data source. SDOs are used throughout SOA application architectures.
(Michael Carey, Stephen Brodsky)
TS-4830 High-end Java™ EE Application Servers for Enterprise Scale Business Suites
Today all major Java™ application servers provide good performance and scalability. However, the increasing complexity of Java Platform, Enterprise Edition (Java EE) business applications and the number of applications deployed in parallel on one server coupled with the increasing use of mission-critical business processes that must be continuously available place even more stringent demands on application servers. This session will discuss the challenges when running high-end mission-critical Java EE business applications and will examine potential strategies for addressing issues such as the following: •Hardware failures – single hardware devices break •Disaster recovery when data center is affected by a major incident. •Application failures cause VM crashes •Uncontrolled load and resource consumption •Software maintenance in productive systems – downtime must be minimized
(Peter Kulka, Peter Emmel)
TS-9862 Mass Market Two-Factor Authentication Using Java™ ME and Java EE Technologies
One-time password (OTP) based two-factor authentication solutions are commonly used to secure VPNs, web sites, and online transactions. They are much more secure than authentication methods based on static passwords. In fact, the US government mandates that all online banking services must adopt two-factor authentication by the end of 2006. However, existing OTP solutions are expensive to implement for mass market online services for two reasons: first, a security token device, which generates OTPs, must be distributed to the user and properly managed; second, the authentication software is expensive and integration with existing Java™ Platform, Enterprise Edition (Java EE) web sites is not trivial. Recent advances in open source security solutions in both Java EE and Java Platform, Micro Edition (Java ME) allow us to develop cheap two-factor authentication solutions for the mass market. In this tutorial, we will discuss how to integrate a stack of open source tools and frameworks to enable end-to-end two-factor authentication for Java EE platform servers. Any user with a Java ME platform-based mobile phone will be able to use the service. Open source tools covered in this talk include: Apache Directory Server (a pure Java directory server with Kerberos authentication service support, see http://directory.apache.org/), Haukeys (the Java ME platform-based OTP generator for mobile phones, see http://hauskeys.safehaus.org/), and Triplesec (a strong authentication and identity server with management and application server integration kits, see http://triplesec.safehaus.org/). At the end of the tutorial, you will be able to add two-factor authentication services to better protect your web site users (and yourself) for free.
(Michael Yuan, Alex Karasulu)
LAB-7110 Building Peer-to-Peer Java™ Technology-based Applications with JXTA™ Technology
The goal of this lab is to provide you with the tools necesssary to kickstart your P2P development ideas via task oriented JXTA™ technology-based tutorials. Upon completion, you will have gained a solid understanding of the JXTA principals, optimal development strategies, and examples of JXTA primitives, libraries and extensions. If you have an appreciation for the Eight Fallacies of Distributed Computing then you have come to the right place. JXTA technology is for you. The JXTA Platform effectively (re)enables the application developer to own, secure and adapt the network toplogy regardless as to deployment models and associated constraints. WIth that, let's get started.
(James Todd)
TS-1161 Evolving JavaServer™ Faces Technology: AJAX Done Right
Developers know that JavaServer™ Faces technology can be used for any sort of web site, including highly dynamic Asynchronous JavaScript™ technology and XML (AJAX) sites. But just because you can use JavaServer Faces technology anywhere, should you? In this session, two of the leading JavaServer Faces expert group members help you answer this question, and they demonstrate the strengths and weaknesses of today's JavaServer Faces specification. They pay particular attention to issues in building AJAX-enabled JavaServer Faces software and show performance data for today's implementations as well as for a prototype of proposals for the JavaServer Faces 2.0 specification and a next-generation rich JavaServer Faces component set.
(Jacob Hookom, Ed Burns, Adam Winer)
TS-1356 Migrating Your Applications to the Java™ Platform, Release 1.5
Java™ platform, release 1.5 has some compelling features for developers. Important among them are the following:Support for metadata involving APTSupport for generic types in collection classesBetter VM performanceType safe enumerationsBetter concurrency controls and easier thread handling This session provides a checklist for developers and architects who are thinking of migrating their applications to take advantage of the Java platform, release 1.5 framework. It discusses some of the quick fixes in the code to better utilize the performance enhancements. Sample code running in a Java platform, release 1.4 environment and a 1.5 environment shows the performance improvements users can expect due to the migration. The presentation covers integration issues of applications running on 1.4 and integrating with 1.5 systems: serialization of objects, Java API for XML Messaging (JAXM), and Java API for XML-based RPC (JAX-RPC). It also examines migrations of serialized objects to 1.5. Profiling the applications to check for bottlenecks, using the new tools for 1.5, and comparing this with a 1.4 environment shows the memory management efficiencies achieved in 1.5. The presentation also covers enhancements to management and monitoring of APIs, using the new classes in Java Management Extensions (JMX™). Some of the enhancements to XML support for native types, the logging exception framework, and the configuration framework make use of open source for the equivalent functions. The session provides a cheat sheet on some of the external libraries you can eliminate by migrating your applications to 1.5.
(Arjun Jayaram)
TS-1624 Writing Performant EJB™ Beans in the Java™ EE Platform 5 (EJB™ 3.0) Using Annotations
The new Enterprise JavaBeans™ (EJB™) 3.0 specification makes development of beans based on the EJB architecture ("EJB beans") much easier, but the performance of beans may vary significantly, depending on how you write and configure them. Are you wondering how to get the best performance out of your EJB beans? Do you want to understand the impact of various EJB 3.0 specification features on your beans' performance? If so, this session is for you. It dives deeply into analyzing the purpose of various EJB 3.0 technology features and evaluates the impact of using them on multiple vendor implementations.* It discusses annotations that make use of these features and presents a performance comparison of the EJB 2.1 and EJB 3.0 architectures. •This is not a vendor comparison, but rather an evaluation of using various EJB 3.0 technology features for performance, against not using them. It also provides test results, using GlassfishSM development community and other vendor implementations.
(Scott Oaks, Eileen Loh, Rahul Biswas)
TS-3319 PoC and Beyond - The IMS Services API
The presentation gives an overview about the upcoming IMS Services API (JSR-281), which enables application programmers to easily write applications that can integrate with the IP Multimedia Subsystem (IMS). The new standard, which is about to be defined by a large expert group specleaded by BenQ Mobile and Ericsson, is expected to become one of the most exciting extensions of the Java™ Platform, Micro Edition (Java ME) in the next time. The presentation will give an introduction to the key functionality of the new JSR as well as Push to Talk over Cellular (PoC) and Group List Management (GLM) services. It will also draw a picture of the cool Java applications becoming possible using this API, and how they can enrich the mobile Java technology world.
(Volker Bauche, Mirko Naumann, Stefan Svenberg)
TS-3422 Building Applications for Multiple Platforms, Using Eclipse Rich Client Platform
Eclipse Rich Client Platform (RCP) is a run-time platform for delivering your Java™ technology-based applications. RCP is far more than just a widget toolkit; it is rich client middleware that provides a comprehensive framework for building, deploying, and running applications that are modular, extensible, and updatable. The kinds of applications you can build with Eclipse RCP are limited only by your imagination. RCP was released as part of Eclipse 3.0, formalizing what some organizations had already been doing with earlier versions: using the richness of the open source Eclipse platform to deliver high-quality applications that provide rich user experiences. Since then, numerous organizations have started to leverage Eclipse as the delivery platform for their own applications. As Eclipse continues to evolve, so does the support for building rich client applications. This session, using the latest features from Eclipse 3.2, presents a rich client application that interacts with the eBay web services API to bring the eBay experience to the desktop. Through a combination of presentation and demonstration, it shows you how you can leverage the entire Eclipse ecosystem to build, deploy, and run this and other rich client applications on multiple operating systems (Linux, UNIX®, Mac OS, Windows, and mobile devices).
(Wayne Beaton)
TS-3935 Using Service Component Architecture to Wire BPEL Processes to Java™ Technology-Based Components
This session covers the following: - The need for wiring BPEL processes and Java™ technology-based components ("Java components") - Introduction to SCA: module, component, wiring, entry points, and external services - Examples of SCA components: Java components, BPEL, and the like - Invoking a Java component from a BPEL process - Invoking a BPEL process from a Java component - Separation of component development, wiring, and policy management tasks - Extending SCA component types and bindings, using Java Business Integration
(Edwin Khodabakchian)
TS-3987 Crazy Talk: Examining Why Agile Techniques Work for Mission-Critical J2EE™ Platform Projects
Many large organizations have adopted Java™ 2 Platform, Enterprise Edition (J2EE™ platform) for mission-critical software development but still choose to hobble Java technology developers with the traditional techniques of yesteryear. They do this in the name of risk reduction, not realizing that they are putting the project team at risk due to inappropriate process-related decisions. Agile software development (ASD) methods have been proven in practice to scale--after all, the Eclipse project follows an agile approach. This presentation discusses the evidence showing that traditional approaches don't work very well for J2EE platform-based projects, let alone the COBOL projects they were created for. It also includes an overview of advanced techniques such as Scrum, agile change management, database refactoring, database testing, Agile Model Driven Development (AMDD), and agile documentation strategies. You've chosen the right technologies; now you need to choose the right processes. The presentation also discusses the Eclipse Process Framework (EPF) and how to use it to choose the right process.
(Scott Ambler)
LAB-9010 Using DTrace on Java™ Applications in Solaris™ 10
DTrace is a comprehensive dynamic tracing framework for the Solaris™ Operating Environment. DTrace provides a powerful infrastructure to permit administrators, developers, and service personnel to concisely answer arbitrary questions about the behavior of the operating system and user programs. You will also learn the basic concepts in DTrace, some in-depth features of the D-language and concepts on using DTrace in Java™ technology. Prerequisties: • Basic knowledge on the Solaris Operating Environment • Basic knowledge on Java programing. • A basic level of understanding of DTrace and understanding of the structure of the D-language would be very useful but not required.
(Peter Karlsson)
TS-1049 Techniques and Tips: Developing Secure Payment Applications, Using Java™ ME Technology
Ubiquitous computing is the third wave in computing, and it's just now beginning. First were mainframes, each shared by lots of people. Now we are in the personal computing era, person and machine staring uneasily at each other across the desktop. Next comes ubiquitous computing, or the age of "calm technology," when technology recedes into the background of our lives. In this new era, cell phones and PDAs are extremely important. They will be the main medium for accessing information from anywhere, at any time, regardless of where the information is. Attend this session, and learn from a real-life implementation how you can initiate payment transactions in a "secured" manner to transparently expedite chargeable service requests originating in Java™ Platform, Micro Edition (Java ME) applications, with external operator charging service delivery, payment service protocols, pricing management, and implementation logic. A step-by-step tutorial approach illustrates how to develop secure payment applications.
(Doris Chen, Angela Caicedo)
TS-1904 Real-Time Java™ Technology: Why It Matters to You and What You Should Do About It!
Real-time Java™ technology significantly extends the application domains available to developers using Java technology and provides substantially different and important features that enhance the capabilities of code written for enterprise applications. JSR 01, the Java Community ProcessSM (JCPSM) specification defining real-time Java technology, has been around since 2000, and seasoned implementations are now available. Starting to code with a JSR 01 implementation and reaping much of the benefit of predictability is really, really dead simple. Just use instances of RealtimeThread in place of Thread, and you get high-quality, industrial-strength real-time garbage collection; priority inversion control; and strict, well-defined, and correct priority dispatching behavior. These three simple and easily obtained semantics enable developers to write logic that can fairly well control the pauses from garbage collection and make strong assertions about exactly which threads execute when. Imagine being able to use priorities as they were meant to be used! This session explores how you can get going today with Sun's implementation of JSR 01 and presents three live case studies with representatives from Boeing Phantom Works, Perrone Robotics (creators of the "Tommy Car"), and PrismTech (a real-time CORBA ORB vendor).
(Greg Bollella, David Hofert)
TS-1956 Designing Manageable J2EE™ Platform-Based Applications With JMX™ Technology
The Java™ Management Extensions (JMX™) have long been the API of choice for adding management capabilities to enterprise applications. Both Java 2 Platform, Standard Edition (J2SE™) and Java EE 5 platform vendors expose a wealth of management and runtime information via the JMX API. This session starts with the introduction of the management and runtime information available to developers in a Java EE platform and the tools available to access this information and incorporate it within your application environment. It then discusses how you can incorporate your own management artifacts or JMX API-based MBeans in your application. It outlines best practices and strategies to ensure that the applications are easy to manage and configure. And it ends with a demo of a J2EE platform-based application using the open source Spring Framework and running on WLS 9.1. The Java EE 5 management environment can be clearly divided into three layers: 1. VM exposed MBeans 2. Java EE platform vendor exposed MBeans 3. Application-specific MBeans. 1. One of the most exciting areas in JMX API-based management now is the availability of VM-level MBeans providing developers with the information they need in order to gain a deeper insight into the running of their applications. Until now much of this information has been left untapped, but in this session, developers learn how to take full advantage of the available information and how to access it by using the supplied JConsole tool to access a real application running on the J2SE 5.0 platform. 2. With the advent of JSR 77, management information from running Java EE servers is now easily available to developers and systems managers. Many developers remain unaware of the wealth of information that can be accessed with the JSR 77 MBeans. The presentation demonstrates how this information can be accessed and used to monitor the health of Java EE servers. The presenters show how to use the open source NetBeans™ software-based MC4J console to access JSR 77 MBeans across a variety of application servers. Many vendors are exploiting JSR 77 and providing a variety of innovative mechanisms for accessing management data. The session demonstrates the Jython-based MBean scripting facilities provided by BEA WebLogic Server 9, showing both interactive and headless modes for running management scripts against the server. 3. The management surface area of any large Java EE application can be categorized into three distinct areas: Configuration, Runtime, and Control. The presentation discusses how to design MBeans to configure, control, and monitor your applications. It provides guidelines on how to define the granularity of the management interfaces. For example, fine-grained control might be acceptable on global objects, which are not instantiated in large numbers. On the other hand, it might make more sense to define a single MBean that represents a collection of objects such as an ObjectPoolMBean interface. The session also discusses the importance of abstracting your application logic away from JMX code. The application logic should deal only with the interfaces defined for its management and not have to worry about where the data is coming from. The presentation demonstrates this with a code example of an application being managed with MBean interfaces. It also demonstrates a manageable Java EE application using the open source Spring Framework. During this session, developers also learn to transparently enable JMX management for their applications, using Spring; hook into different aspects of the application, using Glassbox Inspector; and gain deeper insight into data access using Hibernate 3.0. The session presents all these features with live coding against an existing application. Attendees who want to get the most out of this session should have an intermediate understanding of both the Java S
(Akbar Ansari, Rob Harrop, Sandeep Srivastava)
TS-4474 JSR 170 for Developers: An Introduction to the Content Repository for Java™ Technology API
This session provides Java™ technology developers with an introduction to the new Content Repository for Java Technology API (JSR 170) and gives them an opportunity to get some hands-on experience in coding to the API on a JSR 170--compliant repository. Attendees can participate in an open Q&A session with some of the lead developers and architects of the JSR 170 specification and its reference implementation, Apache Jackrabbit. This session should be of interest to those developing applications on top of a JCR repository as well as those interested in implementing their own JCR repositories.
(David Nuescheler, Marcel Reutegger, Peeter Piegaze)
TS-4619 How to Represent the Architecture of Your Enterprise Application Using UML 2.0 and More
Have you ever been confused by an arrow in a box-and-line design diagram? Do you use UML in your software architecture? Have you ever wondered where the line is between architecture and detailed design? If your answer to any of these questions is "yes," then this tutorial has practical and valuable information for you. It addresses the questions "How should you represent an architecture so that others can successfully use it, maintain it, and build a system from it?" and "What kind of system?" The session focuses on the architecture of an application based on Java™ Platform, Enterprise Edition (Java EE), but the concepts can be applied to any software system. It works through examples of existing Java EE platform-based applications. Important takeaways from this tutorial include architecture consisting of multiple views; what views you should use to evaluate performance, reliability, scalability, modifiability, and other qualities; how you can use UML 2.0 in each view and when other notations work better; and guidelines to make your architecture documentation more effective. Prerequisites: familiarity with basic UML and willingness to discuss and learn more about software architecture.
(Paulo Merson)
TS-4990 MIME Is a Terrible Thing to Waste: A Programmer's Guide to Integrating Email with Java™ Technology-Based Web Applications
Enhance web applications by incorporating email to send eye-catching newsletters, status messages, thank-you notes, and progress reports. This session reviews best practices in mail-enabled applications, providing code samples and demos. Use the JavaMail™ API to send MIME-encoded email via SMTP. MIME (Multipurpose Internet Mail Extensions) allows your applications to send rich, HTML emails. You can include multipart/alternative messages so that users who do not have or would rather not use HTML-capable mail readers can read the plain-text part. Include file attachments in your email, and use in-line images, JavaScript™ language files, and CSS files that load from file attachments in your HTML part, so that users whose mail systems prevent them from loading external resources see properly formatted messages. The presentation reviews code to generate an email newsletter from back-end data on a schedule, incorporating all these elements. Process user feedback and track responses. The session examines alternative techniques such as using a servlet with a tracking ID as a query string parameter that streams back an image in the message, for passive tracking, or including an HTML form inside the email that submits back to a servlet in your application, for an active response. It also covers use of the Apache Jakarta Mailet API and Apache James to parse email responses, for response tracking via SMTP. Attendees are expected to be familiar with web application development using servlets and JavaServer Pages™ (JSP™) technologies.
(Erik Werfel, Wilson Penha)
TS-8098 Supercharging SOA Registries With XML Persistence and Management
With the proliferation of web services and, hence, SOAs as viable approaches to developing and enhancing software architectures, it is imperative to acknowledge that the amount of SOA data will also continue to grow. Furthermore, as the web services standards stack broadens in functionality, the number of SOA artifacts required to support these new standards grows by the day. We must recognize the obvious need to store, manage, query, manipulate, and transform SOA data. Also, requesting applications frequently access SOA data. A case can thus be made for a midtier cache that exposes technology-independent, reusable, and functionality-rich services, hence improving SOA scalability and performance. Additionally, as enterprises engage in collaborations with trading partners, interaction with complex schemas becomes a challenge. Thus, more than just a simple XML persistence mechanism is needed. This session discusses native XML data management servers, which lend themselves seamlessly to such complex demands for SOA data management, thus supercharging the publish, subscribe, and consumption usage scenarios associated with SOA registries.
(Ash Parikh, Ajay Ramachandran)
LAB-1506 Building Java™ SE 6 ("Mustang") From Sources Available at java.net
Come learn how to build Java™ Platform, Standard Edition (Java SE) 6 ("Mustang"), fix a bug in Swing and in Core Java technology. Have a great idea for improving the JDK™ software? Frustrated with a bug that never got fixed? We are now Open for Business for contributions from the Java development community. Sun wants strong community engagement in creating Java SE 6 ("Mustang"). To enable developers to both review and contribute to "Mustang" development, Sun is making available weekly snapshots of the complete source and binaries for "Mustang" at https://mustang.dev.java.net/. These snapshot releases let you see the raw guts of "Mustang" as it is being developed, week by week.
(Sridhar Reddy, Tim Bell, Kelly OHair)
LAB-6205 Mobile Applications: Visualize it, Build it, Deploy it to Many Devices
NetBeans™ Mobility Pack 4.1 introduced Visual Mobile Designer - a visual tool for developing mobile applications. With version 5.0 of the Mobility Pack, the Visual Mobile Designer was enhanced for better user experience. In this lab, students will use the visual designer to graphically plan out the flow of MIDP applications and design the corresponding screens the application will use. You will see how the tool minimize coding, even when creating a comprehensive, multi-screen MIDlet. This lab will also show how to utilize additional visual components, like WaitScreen or TableItem, coming with the version 5.0 of the Mobility Pack and how to solve the device fragmentation issues by utilizing device configurations within the IDE to generate multiple distribution packages (JAR/JAD files) using one set of source files for all distributions.
(Martin Brehovsky, Sigal Duek)