Java Development News:
Optimizing the Client Side
By John Calvin
01 Jan 2006 | TheServerSide.com
Founded in 1998, Iconix Pharmaceuticals does research and industry-related software development. Iconix is a pioneer in chemogenomics, a discipline that uses chemistry and genomics to draw insights from the mountains of data required to bring drugs to market.
A major challenge faced by companies creating new drugs or serving the information needs of the pharmaceutical industry is the requirement to integrate data that typically exists in separate databases, analyze it and present results compellingly. Most researchers agree it is almost impossible to make the path-breaking connections leading to important discoveries when information is not available from a single source.
The DrugMatrix solution
At Iconix, we developed the DrugMatrix software application to effectively deliver our chemogenomics database. In building this solution, we knew that we would need to couple high-performance information processing with an interactive GUI that would allow researchers to conduct iterative searches and interact with the information displayed on their PC screens.
Rich Internet Application (RIA) technology and AJAX
Essentially, RIA technology melds a robust graphical user interface (GUI) with browser-based information delivery. In so doing, it bridges the gap between the thick client/server and browser-based (but relatively limited) thin client models. Furthermore, an AJAX approach to RIA web-delivers the RIA platform instantly and does not need to rely on pre-installed plug-ins, applets or Active-X controls.
The role of AJAX
Considered one of the most capable web developer technologies available, AJAX today enables search engines and other consumer applications to enrich the user experience for Web surfers. In addition, AJAX makes it possible to create solutions that offer business value by providing the foundation for feature-rich GUIs that cost less to build, maintain and own than thick-client or plug-in based alternatives. Richer features, higher productivity, greater ability to visualize information and lower cost increase competitive differentiation.
Highlights of application development
DrugMatrix is built on a three-tiered eXtensible Informatics (XIS) architecture, consisting of a data warehouse, an application server (including a communications mechanism in which data is passed to a proprietary Iconix-created XML format) and a user interface. XIS architecture is flexible, supporting continuous evolution of the data model and user interface. The application server is configured using meta data that describes the data warehouse model. To simplify adding data analysis and visualization tools to the software, the application server uses plug-ins. The user interface is dynamically configured using meta data to allow search and display of all items in the data model.
Figure 1. DrugMatrix eXtensible Informatics System (XIS) Architecture
Steps along the way
The Iconix development team considered and rejected several design approaches.
1. Embedding Java applets in Web pages
This approach was inefficient based on the massive size of the chemogenomics database alone. Given the necessity to load hundreds of rows by tens of columns of data into an applet at each query, it was clear the application would quickly bog down. DrugMatrix's ability to eliminate HTML from the data stream and cache data on the client allowed the server to transmit more data. It also enabled researchers to query client-side cached data rather than making redundant trips to and from individual HTML "detail" pages.
2. Using a Java Server Pages (JSP) model in which data is piped into a JSP
Although the process worked reasonably well, the team found that the amount of data that could be displayed on a page would overwhelm users. In addition, from a performance perspective, graphic data was very slow to render and transfer. As an example, the Iconix Confidence Interval Graphic - which displays gene expression data at a glance - took at least 2 to 3 seconds to fully load because the solution relied upon a specialized image servlet that generated each image individually.
Figure 2. Sample DrugMatrix Confidence Interval Graphic
Note: The records in Figure 2 contain DrugMatrix confidence interval graphics and are generated almost instantaneously with HTML table vector graphics.
3. An RIA framework coupled with an interface builder
The winning solution - built using the TIBCO General Interface Framework - easily manages the complexities of AJAX. This mature offering includes features that helped the team deliver DrugMatrix to market faster than other solutions considered and also reduced development costs. Key differentiators of this option include:
- Visual authoring tools, familiar APIs and libraries of extensible, high-performance GUI components
- Componentized, open standards-based architecture that enables re-use and customization of objects
- Client-side data cache that store information for use throughout a session, eliminating redundant server processes and allowing transmission of incremental data
- Support for synchronous, asynchronous and real-time communication capabilities through leading standards and protocols such as HTTP/S, XML and SOAP
The RIA solution enabled use of XML data to generate full-color HTML tables - building a screen image 50 percent more rapidly than Java applets and 97 percent more rapidly than JSPs.
Figure 3. DrugMatrix Data Browser Environment
The DrugMatrix UI presents large amounts of related information economically using the following features:
- Outer tabs to identify different information domains (data warehouse dimension tables).
- Inner tabs that contain information that annotates the domain (data warehouse fact tables).
- Extensive hyperlinks that support domain-to-domain browsing.
The Expression Experiment domain (Figure 3) contains 10 fact tables of 50 to 500 records each. Though this page took about 12 seconds to load, it can be manipulated instantly without redrawing the entire page. Columns can be expanded, contracted and re-organized, and records can be sorted.
Except for TIBCO General Interface, the AJAX-based RIA product that we selected for the client-tier of DrugMatrix, most other vendors we reviewed were offering JSP or HTML-based approaches. These were not a significant improvement over what we had initially considered building in-house.
DrugMatrix's GUI meets the information requirements of pharmaceutical companies in an easy-to-use, interactive application that functions like a traditional thick client. The Iconix development team was interested in creating a GUI that could consolidate a wide variety of drug-related information and provide numerous views of that data. In addition, the team was committed to developing an application that transcended the page and document basis of typical Web pages while costing less to build and maintain.
Specifically, the use of AJAX technology in the development of DrugMatrix has allowed Iconix to:
- Integrate more than 200 million complex drug data points in a visually rich, interactive interface
- Deliver DrugMatrix to market twice as fast and reduce development costs by two-thirds when compared to standard client server architecture
- Leverage GUI technology to differentiate its offerings from competitors
- Iconix's use of a standard web browser saves customers the costs of deploying and maintaining a desktop software application
The Iconix team expected that an AJAX-enabled RIA solution would hasten our development of DrugMatrix, and we were right, as the following example illustrates:
In a scientific research house like Iconix, there is a continual need for new or modified tools. One of our biggest challenges - and a significant source of cost - is to quickly develop usable specifications for new products.
Prior to using an RIA framework-based approach to the Internet Development Environment (IDE), we would create feature specifications in a paint program and submit them to a product development committee. The process typically consumed three to four weeks, with the effort of creating the visuals taking the greatest amount of time.
Currently, Iconix developers can generate or change feature specifications on the fly, often in the midst of a development committee meeting. These working specifications are 80 percent complete and require very little further refinement, which dramatically decreases development time.
We believe that the benefits AJAX offers are not unique to the development environment at Iconix. AJAX enables robust functionality and similar benefits to any enterprise developing an application in an RIA framework. AJAX makes it possible to deploy highly functional, browser-based applications without the disruptions or costs typical of developing and rolling out thick client desktop applications.
What we learned
Perhaps the most important lesson we learned while developing DrugMatrix is that AJAX overturned conventional wisdom about thin clients by allowing us to build smart applications that look, feel and perform like desktop software quicker and cheaper than we had anticipated. An AJAX approach to RIAs will make it possible to move ahead with our continued development of effective applications.
The success of DrugMatrix has fueled interesting initiatives at Iconix. By December 2005, the development team plans to have finished the work necessary to transform DrugMatrix into a web service.
This effort will allow large pharmaceutical companies - many of them current customers - to use portions of DrugMatrix in different departments, fine-tuning it for their own needs or using DrugMatrix-generated data in their own proprietary applications.
Iconix developers are also moving ahead with plans to refine the display of real-time data, based on work which has been done with financial services applications.
About the Author
John Calvin graduated from California State University Chico with a B.S. in Computer Science and a B.S. in Biology. He worked at IBM and then moved to the biotech industry. He is a senior engineer at Iconix Pharmaceuticals.