We work in the IT services department of a large insurance company and were asked to rewrite an old PC-based finance application using a Web-based Java solution. The project development team's background was based on mainframe technologies with some client/server and Web experience (HTML, ASP, basic Java, and JSP).
Our first attempt to build a different server-side Java application ended in frustration and an ungainly heap of code. Java scriptlets intermingled with HTML meant that organizing the JSP assets was cumbersome and Java debugging almost impossible. Furthermore, we couldn't believe that we were developing in a "modern development environment" without visual tools! There had to be a better way...
Salmon LLC, a New York-based consulting company, had recently completed a project for us using SOFIA (the Salmon Open Framework for Internet Applications). SOFIA, now available as open-source software, seemed to address some of our concerns regarding separation of code and gave us a visual environment to develop in.
What Is SOFIA?
SOFIA is a J2EE-based class and tag library for building database-driven Web applications. Conceptually it's similar to other open-source frameworks like Apache Struts. What makes SOFIA stand out from other frameworks is the built-in tools integration.
SOFIA integrates with Macromedia's Dreamweaver so that visual portions of an application can be "painted" instead of hand-coded. SOFIA also provides code generators for many nonvisual tasks such as database access and event handling. Finally, SOFIA integrates these tools, along with J2EE servers (Apache Tomcat, BEA WebLogic, IBM WebSphere), into best-of-breed integrated development environments (IntelliJ IDEA and Eclipse).
SOFIA's goal is to improve programmer productivity while avoiding vendor lock-in. It does a good job of meeting its stated goals. SOFIA integrates the products from several different vendors into a cohesive development environment. The various tools supported by SOFIA can be swapped out to suit individual tastes and needs as well as any budget considerations. For this project we used Eclipse 2.0, Dreamweaver MX, and Tomcat 4.0.3 on MS Windows 2000 accessing a mainframe DB2 database.
Dreamweaver has been extended to provide the ability to "paint" screens using SOFIA's drag-and-drop components so results can be seen in real time. The Dreamweaver integration provides a lot of power and enhances productivity. For developers using Unix or Linux, Dreamweaver is currently not available - a text editor would be needed to edit the JSPs. However, deploying finished applications to these operating systems should be fine.
Installing SOFIA
SOFIA is unusual in that it helps combine tools from a number of vendors. Some of the tools are open source, such as Eclipse, Tomcat, and the MySQL database engine, while others are commercial products, such as Macromedia's Dreamweaver and IntelliJ's IDEA. This can make the installation somewhat time-consuming since the commercial tools must be downloaded from the different vendors' Web sites and installed individually prior to launching the SOFIA installation program. However, once that's done, the menu-driven installation program ties the many pieces together automatically.






