JavaOne 2008 - General Session - Oracle

Java No Comments

Today’s general session was presented by Oracle. John Gage of SUN Microsystems introduced Thomas Kurian, Senior Vice President, Oracle.

Kurian talked about four emerging trends in application development: Service-Oriented Development, Business Process Orchestration, Rich Enterprise 2.0 Architecture, and Grid Computing Architecture

Service-oriented development must involve a standards-based tool set, with an integrated development environment that includes modeling, page flow, a development framework, rich user interface design, and business logic.

He showed a JDeveloper demonstration that showcased how JDeveloper contains all of the components required to build rich web applications. He announce a new product the Oracle Enterprise Pack for Eclipse that provides JDeveloper functionality for the Eclipse platform. The Oracle Enterprise Pack for Eclipse will be free.

The Enterprise 2.0 architecture involves an open content server, open web publishing, RSS tagging and linking, mashups and WIKIs, and social networks and communities. Kurian expanded on the first demo showing how JDeveloper could integrate social computing components (e-mail, document sharing, instant messaging) easily into the existing application.

Business Process Orchestration is built on a Service Component Architecture (SCA) foundation using a service bus, service orchestration, business process modeling, complex event processing and activity monitoring, policy management, and an SOA repository. Again the demo was expanded using JDeveloper to easily add new business processes into an existing process flow.

The grid computing architecture involves a Java VM, virtualization, application servers, application provisioning, in-memory grid, and systems management. The demo was expanded again to use the JRockit VM from BEA and visualized with the BEA Platform Manager. He showed how the JRockit VM optimized garbage collection and automatically tuned itself to handle different loads.

More information can be found on the Oracle Developer Network.

JavaOne 2008 - Real World, Not Hello World GWT Development for Java Technology Shops

Java No Comments

The bird-of-a-feather session “Real World, Not Hello World GWT Development for Java Technology Shops” was presented by Alex Moffat, Engineering Manager, Lombardi Software, and Luc Claes, CTO, ContactOffice. They showed two applications that were written with the Google Web Toolkit. Moffat showed his company’s application, BluePrint, and Claes showed ContactOffice.

The two discussed the skills needed to do GWT. GWT is simply Java with most of the libraries removed so Java developers will have no problem picking up coding. Techniques traditionally used for building GUIs still apply. Every member of the team must have an intimate knowledge of HTM and DOM, and the team must have at least one expert in CSS, understanding both style and layout.

Tools that are a must are Firebug a JavaScript and HTML debugging plugin for Firefox, the IE developer toolbar, and Charles, which is a web debugging proxy that allows the developer to change the parameters and headers of a request before submitting.

Testing GWT applications is hard because there is no automated way to test with a browser. The only way to test is manually. GWT Test Case is OK, but it is no silver bullet.

Both companies use Maven to build their applications. Maven shells out to ANT for the GWT compile. Some modules are compiled for GWT server side Java, and some of the code is compiled for the both the server and the client.

The companies deployed differently. BluePrint is deployed to multiple Jetty application servers to handle load. ContactOffice is deployed to Resin and uses only the HTTP container (i.e. They did not require multiple application servers).

JavaOne 2008 - The Best Of Both Worlds with Java Business Integration and Service Component Architecture

Java No Comments

The session “The Best Of Both Worlds with Java Business Integration and Service Component Architecture” was presented by Jos Dirksen and Tijs Rademakers, Software Engineers from Atos Origin. They discussed how Java Business Integration (JBI) should not be viewed as a competitor to Service Component Architecture (SCA). The two are actually quite compatible.

JBI is a specification that defines how to create and Enterprise Service Bus (ESB). The JBI container has binding components, service engines, and a normalized message router. A developer creates service units and service assemblies and deploys them to the JBI container.

SCA is a model for describing a service component’s assemblage and deployment. Services are built with SOA, and are vendor neutral, language neutral, and technology neutral (can use different protocols). SCA has an implementation language (Java, Ruby, etc.), and it can be defined using the Service Component Descriptor Language (SCDL) or with Java annotations. SCA components can be combined or “wired” to make SCA composites. SCA composites can be used in other SCA components and composites.

When combining JBI and SCA, all JBI service engines can be used in SCA components, SCA components can be called from JBI, SCA applications can be deployed as service units in a JBI container.

Although it is possible to deploy JBI applications within an SCA component. It seemed to me to be somewhat clumsy. A developer would need to use Apache Camel to integrate the JBI application within an SCA component, whereas deploying an SCA component inside of a JBI container was straightforward. SCA seemed like a good choice for defining an SOA service and JBI seemed like it was a good at managing requests from a variety of sources (MQ, HTTP, etc.).

JavaOne 2008 - Defective Java Code: Turning WTF Code Into A Learning Experience

Java No Comments

The session “Defective Java Code: Turning WTF Code Into A Learning Experience” was presented by William Pugh, Professor, University of Maryland. Pugh was one of the creators of the Java FindBugs application, which is a profiling tool that analyzes Java source code for common and “not-so-common” bug patterns. The presentation itself was excellent, but is very difficult for me to blog. It primarily showed instances of code with flaws, and explanations about why the code is flawed and how to fix it.

Pugh showed instances of leading software packages and libraries that he has scanned including the Java API, Eclipse, and Glassfish that contain major coding flaws. One flaw in particular that I’m guilty of doing all of the time involves the class java.text.DateFormat. I was not aware that this class is not thread-safe. Therefore, you should not create a constant like this:

public static final DateFormat DATE_FORMAT = new SimpleDateFormat(”yyy-MM-dd”);

The DateFormat class uses an internal static date for doing formatting. If two threads hit the same instance of DateFormat, incorrect results can be returned.

There is a web site called CodeSOD that contains the “Daily WTF Code Snippet of the Day“. It is a posting of a bug or bug pattern that other developers have encountered. It’s definitely worth a read.

When this presentation is posted to the JavaOne web site, I will be sure to link to it from this blog entry. Looking at some of the code bugs, is really worth the time.

JavaOne 2008 - JAX-RS: The Java API for RESTful Web Services

Java No Comments

I attended the session “JAX-RS: The Java API for RESTful Web Services” presented by Marc Hadley and Paul Sandoz of SUN Microsystems. This session gave a brief overview of what RESTful web services are, and how they can be used with the JAX-RS API.

There are five steps of REST:

  1. Give everything an ID — this translates to a URI reference
  2. Link things together — using an XML definition
  3. Use standard methods — GET, POST, PUT, DELETE
  4. Multi-representations of data — XML, XHTML, JSON, Text
  5. Stateless communication — everything needed to make a request is contained in the request

Using REST vs SOAP has many benefits. On the server, there is horizontal scaling, simple fail over, cacheing, and reduced coupling. On the client, there is easy experimentation in the browser, bookmarking, broad language support, and a choice of data formats.

SUN’s Jersey reference implementation of the JAX-RS API uses annotations for defining RESTful web services. The @Path notation is used for defining ID’s. A link is defined with the @Context notation. The standard methods use @GET, @PUT, @POST, and @DELETE annotations. Multiple representations of the data are done using the @ProduceMime and @ConsumeMime notations

JavaOne 2008 - Service-Oriented Architecture and Java Technology

Java No Comments

I attended the session “Service-Oriented Architecture and Java Technology” by Steve Jones, Head of SOA Global OS, Capgemeni, and Duane Nickull, Senior Technology Evangelist, Adobe.

This session explained SOA, and how it works with Java. SOA was defined as an architectural paradigm for organizing and using distributed capabilities that may be under the control of different ownership domains. It is a framework for matching needs and capabilities, and a view of architecture focusing on services as a mechanism to allow interactions between those needs and capabilities. It’s also a way of thinking about problems.

The OASIS reference model for SOA has been the industry standard since 2006. It’s not an architecture, but an ABSTRACT model for a range of service oriented architectures and analysis comparison. OASIS is A framework for understanding relationships among the entities.

Here is the core model for SOA. It consists of a service in the middle surrounded by visibility, a service description, interaction, contracts and policies, real world effect, and execution context. The example of Starbucks was used to explain each of these model components. The service is “buy coffee”. Visibility is the Starbucks green and white sign. The service description is the Starbucks menu of different coffees. The interaction is the order that is placed for coffee. The contracts and policies would be the requirement that money must be given to receive the coffee order. The real-world effect is that the coffee is received and taken out of the store, and the execution context is that in the United States the coffee must be purchased with US dollars. However in Great Britain, British pounds must be used.

When creating a SOA implementation, technical infrasture is secondary to the reference architecture. The architecture must confer effectiveness, confidence and scalability. “If you don’t start with services, you’re not doing SOA! ” There is no Web 2.0 without SOA. Pretty interfaces are nothing without the trust of a reliable service.

SOA is thinking about systems. In order to effectively do SOA, one must think in terms of services by organizing the teams around services, and consider processes and mash-ups before even beginning to look at the user interface. Think about measurements for the service such as the business SLA’s, and finally, think about standarization by asking the following questions:

  • How are the interfaces defined?
  • How are they versioned?
  • How are they tested and verfied?
  • How are the dependencies managed?
  • What is the right technology for the service?

JavaOne 2008 - General Session Kick-Off

Java No Comments

As we entered the the JavaOne 2008 Kick-Off General Session opened, we were greeted by flashing lights, upbeat music and an energetic dance troupe “kickin’ it” on stage. SUN Microsystems Vice Presidents, John Gage, James Gosling, and Chris Melissinos opened the session saying that this conference was going to have the same energy as the dancers.

The three showed off tiny remote sensors that had been placed throughout all of the Moscone Center. The sensors pick up the RFID tags in our badges and record the current populations in each of the rooms as well as tracking individuals coming and going.

They then showed a hand-held Nokia device that would scan our cards and report whether or not we had been pre-registered to attend a session.

Also shown were inductive meters from Sentillium, which track the electrical flow and carbon dioxide gas levels in each room. The device is also capable of tracking forty other types of gas — The major theme being: How can we use technology to make the unseen, seen?

The main keynote speaker was introduced, Rich Green, Executive Vice President of Software, Sun Microsystems. He said that businesses no longer drive the technology revolution. Technology is now driven by consumers. Consumers are connected 24/7 and the line between work and life is blurred. Businesses must compete for consumers on the Internet with interfaces that are not only functional, but also simple, intuitive, and compelling.

Green introduced Ian Freed, Vice President of Kindle Amazon. He showed the Amazon device called Kindle, which is a device that is meant to replace the “book”. It allows a user to read books, newspapers, and blogs. It uses Amazon’s recommendations, and allows the user to purchase books anywhere using 3G wireless technology. In most cases, purchased books are downloaded to the device in under a minute.

Green spoke of Rich Internet Applications (RIA), which he defined as a great user experience that merges information from different services across all facets of life. However, RIA is not just for the user. Developers must be able to quickly create simple, intuitive and compelling designs — it’s all about how fast you can iterate changes.

He then demonstrated a Facebook widget, called ConnectLife that unifies live messaging and pictures from Twitter, Flickr, and Facebook. ConnectLife is written in JavaFX. He showed how the application could be dragged out of the browser and dropped onto the user’s desktop. At this point, the browser is no longer needed, and the application can even be saved to the local machine.

The next demo was the Photo Flocker application. It used Flickr to search and display pictures from a typed key word. He also showed a 3D demo of an application using JavaFX that was simultaneously playing 200 videos with all of their audio.

Green then introduced Eric Klein, Vice President of Mobile Applications, SUN Microsystems. He showed a mobile phone running the same ConnectLife application that was running in the browser and on the desktop. It was implemented with JavaFX mobile and Android from Google.

Green said that SUN’s Glassfish Application Server has been re-engineered. The kernel is only 98KB. All other functionality is provided through modules such as an HTTP server, an application server, etc. It’s small footprint will allow Glassfish to run anywhere as a container.

Next Green introducted Jonathan Schwartz, CEO and President, SUN Microsystems. Schwartz presented four driving forces today:

  1. Technology must be able to reach all devices in the world, but it must be compelling and high-performing.
  2. It must be accessible to consumers and developers.
  3. It must provide more insight into the users than any other platform.
  4. All of it must be free.

Next Johnathan introduced musician Neil Young to the stage. Back in the 80’s, Neil had wanted to create a multimedia autobiography showing his entire career, but it has taken twenty years for the technology to mature to point where Neil’s vision could finally be fulfilled. Using Blu-Ray discs and Java technology, he was able to create a rich and interactive multimedia environment. Progress on the project can be found here: http://www.java.com/en/java_in_action/neil_young.jsp

JavaOne or Bust

Java 1 Comment

The weather is getting warmer. The animals are waking from their winter slumber, and the first robin of the season can be spotted singing in the trees. Spring is here, and that means one thing — and one thing onlyJavaOne is just around the corner.

Well, OK, maybe JavaOne isn’t what most people think about at Springtime, but for Java geeks like me, it’s the event of the year. The conference is running from May 5th through May 9th, 2008. This will be my third visit to San Francisco’s Moscone Center and its underground community that is JavaOne. The conference lasts four days, and it’s not for the faint of heart. The committed Java developer (or better yet the Java developer who should be committed) can expect to spend about 12 to 15 hours a day just attending the key notes, technical sessions, and birds-of-a-feather seminars

A quick perusal of the “Advance Conference Guide” shows that many of the technical sessions will be focusing on the new features in Java 7, Service Oriented Architecture (SOA), EJB 3.1, JSF 2.0, and Java FX, just to name a few. It will also be loaded with enough birds-of-a-feather seminars and hands-on classes that trying to pick out just what I want to go to will prove a daunting experience.

Stay tuned for the up to the minute coverage of the conference as I attempt to live-blog every session that I attend. It should be interesting.

See you on May 5th.

Next Entries »