Who Uses Formspider? Part 1: The Journey from Java Desktop To Web 2.0

When Dulcian took over the Air Force Reserves Recruiting System they knew it was going to be one of the biggest challenges the company ever had to overcome. The system was based on a client server architecture. The client application was written entirely in Java… A LOT of it. The application had hundreds of screens if not thousands but by no means it was complete. There were many many more features to be added.

As usual, the deadlines were tight, the task was big and the team was undermanned. This would have been fine if one of the important mid term goals hadn’t been to deploy the application over the web.

So the team had to maintain the existing screens and business processes (which was no small task by the way) ,add new ones all in desktop Java and yet provide a viable way to move the application to the web.

If they did everything traditionally, they were facing a major rewrite. Every screen had to be coded twice, once for the Java desktop app and once for the web. Existing business processes also needed to be moved to the server and refactored significantly. Not only that, the web development team would be aiming for a moving target. The Java desktop application was changing constantly. Every bug fix, every modification needed to be replicated in the web app. This was a humongous task and a very error prone one.

It was clear to the Dulcian team that they needed something new, something that would help them write their code once and run in two platforms; Web and desktop.

Enter Formspider. Formspider applications are entirely coded in PL/SQL and can be deployed both as Java desktop and DHTML/JavaScript. So every business screen, every business process written in PL/SQL could be reused in both Web and desktop with no refactoring at all.

We provided the Dulcian team with a Java plug-in that they added to their Java Desktop app as a library. Then they started writing all the new screens entirely using Formspider. Another team embarked on rewriting existing screens in Formspider. The users didn’t notice a thing. As far as they were concerned they were dealing with a desktop app that they’ve been using for ages.

While the new screens were being added to the desktop application with Formspider, magical things started to happen. The team began deploying new screens to a desktop app without a push to the client machines. The users were shocked. They had to wait six months for the smallest bug to be fixed because the schedule only allowed for two updates a year. Now, bugs were being fixed in minutes let alone days or months. This kind of response time to a customer request is virtually impossible if developers are dealing with a true desktop app but it is a matter of course if that desktop app is developed with Formspider. Slowly, the giant desktop app was turning into a web app that does not run in the browser.

Today, the recruiting system runs 90% in Formspider. Once the remaining Lotus Forms screens are moved to Formspider (oh yeah aside from Java, hundreds of forms were coded in Lotus Forms, which is a story for another day. We are writing a Lotus to Formspider converter to migrate them), the application will be ready for Web 2.0. The users will come in one day and instead of opening the desktop app, they’ll open their browser and enter a URL. The application will run the same, look the same, feel the same.

This project is an incredible success story and much credit goes to the brilliant developers at Dulcian. Formspider played a critical role here and enabled them to reuse all the code they’ve written over the years. Thanks to Formspider, they did not waste time learning new, emerging ( i.e. unstable ) technologies. They did not have to duplicate their efforts in two different environments. They did not have to worry about implementing every little change (millions of them) in two systems, one in production and one in development.

Thanks to Formspider, they could take their amazing PL/SQL skills and focus on what they know best: Implementing business requirements in code. Formspider took care of the rest.

Yalım K. Gerger