The Source for Java Technology Collaboration
User: Password:



Hans Muller

Hans Muller's Blog

JavaOne Desktop Report: A BIG web started deployment of a BIG banking app.

Posted by hansmuller on June 29, 2005 at 03:20 PM | Comments (4)

It's JavaOne 2005, Monday afternoon, and I'm drifting around Sun's booths on the tradeshow floor. Moscone's meeting halls are two stories tall and underground; it's a basement palace. The cavernous space used by the tradeshow Pavillion must be a quarter of a mile long and a hundred feet high and it's abundantly and artificially lit. It's like being in an aircraft hanger that's inexplicably buried two stories below street level. So I'm ambling around with the same glazed expression I wear in casinos and supermarkets, when one of my colleagues buttonholes me. She's been talking to a developer/architect who's been thinking about building and deploying a large web started Swing banking application. It was to be deployed to about 5000 desktops and naturally the developer was interested to know about other financial institutions who'd already done the same thing.

I've always tried to pay attention to what desktop developers are doing with Java and so this was, in theory, my moment to shine. Unfortunately the accumlated stress of preparing for JavaOne and my lack of Moscone underworld acclimatization had drained most of the charge from my brain. There are many examples of large financial institutions with web started desktop app deployments but sadly I was unable fire enough neurons to deliver the message. If I'd had a full charge, I would have directed the developer to the technical session on Wednesday called "Large Scale Client Deployment Using Java Web Start Software".

I attended this session myself and made some notes. The presenter was Matthias Schorer who's the Technical Chief Architect at FIDUCIA IT AG in Germany. The presentation was an excellent introduction to using Java Web Start for big deployments of big real-world applications. I wanted to record a few of the highlights so that the next time I'm dumbstruck, I can point developers to my blog.

FIDUCIA is the largest IT-Fullservice provider for the German cooperative Banks. They provide comprehensive software solutions to 920 banks. The service includes both desktop and server side applications and they run data centers for the latter. Managing about 38 million accounts (2.3 billion transactions/year!) requires lots of big iron. They've got nearly 1000 server machines and 138 terabytes of (SAN) storage. The desktop software is deployed on 106,500 PC desktops.

And it's all Java. Desktop and server. All Java.

Fiducia's web started desktop banking application, "Banking Work Place", is a big one. It's 10 million lines of Java, developed by 640 engineers, and it provides 553 user accessible functions. The complete set of application jars weighs in at a healthy 120M. The app runs on desktops with Windows, Linux, OSX, and even OS/2. It's also a great looking Swing application! I've appended some low resolution screenshots from Matthias's talk below. We'll get a Swing Sightings item with a bigger set of full resolution screenshots out shortly.

The focus of the talk was the practical aspects of deploying such a large application to over 100,000 desktops. The developers at Fiducia have extensive experience with desktop Java. They deployed their first home banking applet in 1996, and they've been delivering web started apps based on the Java Banking Framework (JBF) since 2002. One of the biggest obstacles the developers had to overcome was that although branch banks typically have high speed LANS, they often have relatively low speed internet connections. The other problem was that individual banks wanted to be able to control what version of the app was deployed and when.

All web started applications are cached and updates can be delivered as small deltas (jardiff). So, in many cases even very large web started apps can be deployed on the internet with a minimum of fuss, once the initial app download is taken care of. To accomodate low bandwidth connections, Fiducia puts a caching proxy on each bank's LAN, in between the Fiducia IT-Center download servers and the bank's desktop users. Download proxy servers (a single Java process) run on a bank file server and cache application jars as well as all of the jardiff differential downloads. Fiducia updates the proxy servers at night time, "because at night, nobody is in the bank".

The proxy download server also helps with deploying different versions of the app. The application's JNLP file is actually a template that's expanded at request time to create a custom app definition based on the source of the request. The expanded JNLP file is passed along to the standard JNLPDownloadServlet which takes care of delivering the jar files and deltas.

Interestingly, not only is the proxy download server written entirely in Java, it's also web started!

The "Large Scale Client Deployment Using Java Web Start" technical session was inspiring and informative (many developers asked about getting the proxy download softare for their own applications!). Here are some low resolution screenhots of the app in action, look for more in a Swing Sighting preview on javadesktop.org soon.

fiducia-screenshot1.jpg


fiducia-screenshot2.jpg


fiducia-screenshot3.jpg


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Hans,
    This is rather incredible... I never thought of Web Start on such a scale.

    Is it time to start lobbying NetBeans to consider a Java Web Start option? That would really increase the visibility of JWS.

    --John

    Posted by: johnreynolds on June 30, 2005 at 07:20 AM

  • Very impressive, wish I was there.
    BTW, the new version of XCode with WebObjects has a JWS option. WebObjects has had the option since 2002, now its integrated into the XCode target options.

    Posted by: jmarra on June 30, 2005 at 09:29 AM

  • All the Barclays Capital e-commerce (BARX) apps are webstarted java apps. Works very well, handles huge volumes, good user experience, strong security.

    http://www.barx.com/

    Posted by: andrewmcveigh on June 30, 2005 at 12:24 PM

  • Here, here.

    .V

    Posted by: netsql on July 05, 2005 at 10:40 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds