JBoss World Highlights

I already mentioned Hibernate Search and Shards. Here are the rest of the highlights from my perspective…

JBoss World Notes

  • 750 – 1000 people at the conference, 30% from outside of the U.S.
  • This was the biggest JBoss World ever.
  • There were many sessions on Seam and SOA. The Hibernate sessions were overflowing. The BOF sessions, which ran from 8:00pm to 10:00pm, were also packed.
  • JBoss’ middleware is on track to grow to be twice their server business.
  • JBoss recently reached their 20 millionth download.
  • There were about two dozen vendors in the exhibit hall, offering a mixture of tools/add-on solutions, and service providers.

JBoss Portal

JBoss Portlet Container 2.0

  • More here
  • Implements the Portlet 2.0 standard (JSR-286)
  • Going forward, JBoss Portal will be based on this.
  • This is the first portal from JBoss that does not require JBoss Application Server which is an advantage Liferay currently has over JBoss Portal.

In one of the keynotes they did a demo of a seam app. Then they jumped over to JBoss Portal and the seam app was running there as well within a portlet. I didn’t get the details on how much additional config is required to make the seam app work within a portlet.

JBoss SOA Platform

The JBoss SOA Platform is the commercially-supported bundle of JBoss ESB, JBoss jBPM, JBoss Rules, JBoss Messaging, JBoss Application Server. The SOA Platform is a single distribution/install but you can configure out what you don’t need.

JBoss ESB

  • Routes messages (messages in the generic sense, not in the JMS sense, although JMS is one of the optional transports available).
  • Declarative, clusterable, supports hot deployment. It’s ability to be clustered is one potential advantage over other open source ESB implementations.
  • Listeners for many different types of transports are available such as Web Services, JMS, File, FTP, Email, Socket, etc. SFTP and HTTPS will be supported in future versions.
  • Demo showed an order being placed in SalesForce. ESB picked up the payload and parsed/transformed it using Smooks. If the order was below $5000 it was approved which made a call back in to SalesForce to update the order. Otherwise, it triggers an approval process.
  • Many ESB’s in production today were custom developed. A lot of times this means a limited number of transports are supported (e.g., only Web Services)

European Railroad Case Study

  • 100,000 passengers, $1b in revenue
  • Used JBoss SOA Platform to move unsold tickets to EBay auctions (and back)

North State Communications

  • Configure and track comm equipment down to the neighborhood level
  • Integrated apps and workflow using JBoss ESB and jBPM

Big Lots Case Study

Inventory Management application

  • Deploying to each of their thousand or so stores. JBoss app server and MySQL run in each location.
  • Developed (and open sourced) a data replication solution called Symmetric DS that moves data between each store (running MySQL) and the central office (running Oracle RAC)
  • Multi-channel app: Web client, PC-based cash register, Handheld devices (IE running on Symbol)
  • 10 developers, 5-6 months

They had several constraints that shaped their decisions:

  • Limited bandwidth to home office (56k frame relay)
  • User proficiency with web
  • Need offline support in case the link goes down between store and central office

Big Lots did some interesting work with ajax. Not all of their data resides locally in each store’s MySQL database. On pages with a mix of local data and remote data, the page renders immediately with the data it can get locally, then invokes asynchronous calls to retrieve the remote data. If it gets the data, the fields are updated. If not, the page still functions.

Seam

Seam is a Java web application development framework that significantly speeds up development by removing a good chunk of the XML configuration typically required. You can think of Seam as being JSF plus EJB3 with a lot less XML configuration and no JSF backing beans. Most of the configuration is handled through annotations in the Java code.

The framework includes many add-ons (such as AJAX and rich controls) that can result in very compelling user experiences and interesting applications, but it seems pretty easy to use only what you need.

Check out SeamFramework.org. It’s a wiki built w/Seam with documentation and downloads. Also, Joseph F. Nusairat did a pretty good Seam intro talk where he built an app from the ground, up. He’s going to post the demo (and what it took to build it) in a screen cast on his web site. I’ll update this when he’s posted the demo.

Seam 2.0.1 is now GA. Seam 2.1.0.A1 adds support for Portal and Wicket.

Adobe Flex

There are many cool examples of Rich Internet Applications (RIAs) out there but the eBay Desktop application is one I hadn’t seen before and is quite impressive. Aside from the sexy graphics it really gets interesting when you run it on Adobe Air. Air gives your Flex-based web application the ability to run like a desktop application. Because it has its own database, you don’t even have to be connected to the net. In the eBay example, when you close the app, it continues to run in the background and pops up little alerts when certain events happen (such as getting outbid or winning an auction).

Some goals of RIAs

  • Richer, desktop-like user experience
  • Remove view logic from the server
  • Do more on the client (such as sorting, cacheing, etc.)

Flex is made up of two parts

  • ActionScript 3 (JavaScript 2)
  • MXML (Declarative markup that wraps around the ActionScript

Flex’s two-stage compiler converts the MXML into ActionScript then compiles the ActionScript into bytecode which is saved as a SWF and then played by either the Flash player or AIR.Developing a Flex application essentially involves creating a mock dataset, coding up the ActionScript and MXML, compiling, testing, and iterating, and then implementing the thin layer that sits between the ActionScript and your back-end data sources.

More on Flex here

JBoss Single Sign-On (SSO) Framework

The JBoss SSO Framework allows users to sign in to a webapp once and automatically be authenticated in others even if the webapps are running in different domains. If the webapps are already using JAAS, this requires no change to the participating webapps. Unlike other SSO implementations, there is no central authentication server. If a user is unauthenticated, the webapp authenticates the user. When the user visits the next participating webapp, their credentials are trusted and the user doesn’t have to log in.

Four components of the JBoss SSO Framework:

  • Token management
  • Identity connector
  • Webapp coordinator
  • Federation server

Currently, only Java web applications are supported. Because the payload is based on XML (SAML 1.0) it should be possible to make the framework suitable for other types of webapps. If someone were willing to port the identity coordinator and webapp coordinator to another language such as PHP or Python, you could have a mix of Java and non-Java web apps in your federation. Of course JBoss would be happy to take the donation.

More on the framework here.