JavaOne Desktop Report: A BIG web started deployment of a BIG banking app.
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.
- Login or register to post comments
- Printer-friendly version
- hansmuller's blog
- 1357 reads





