FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Java
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
TABLE OF CONTENTS
September 05, 2007

Software and the Core Description Process

(Page 3 of 4)

Software Architecture

Core description is a complex process to model in software. It involves data capture, visualization, analysis, collaboration, revision, and publication, with different features required for each step. To complicate things further, I wanted PSICAT to be useful to the broader geoscientific community, rather than just a one-off, custom solution developed for ANDRILL. Since this is an ambitious and complicated undertaking, I needed a flexible, extensible software architecture that would let me reuse functionality common to all drilling projects, while still supporting the development of custom features for specific groups or tasks.

As a Java developer, I looked no further than Eclipse (www.eclipse.org) for my architecture solution. Known as a Java IDE, Eclipse is a full-blown platform of tools and frameworks for developing and managing software. Built on OSGi technology, Eclipse takes the concept of a modular architecture to the extreme.

Traditional applications, such as web browsers, provide well-defined interfaces and extension mechanisms that you can plug into and add new functionality. The host application is fully functional; the plug-ins simply augment it with new features. Eclipse, on the other hand, is built entirely of plug-ins. There is no host application per se, just a small engine that loads and runs plug-ins. All of the end-user functionality (editing and compiling Java source code) is implemented as a collection of collaborating plug-ins.

This pure plug-in approach offers many advantages, including a high-degree of flexibility and reuse. Eclipse can be easily customized to a specific task, such as developing Java code, developing web applications, or managing remote databases, simply by virtue of which plug-ins are included/removed. If a plug-in already exists to perform a particular function, it can be reused as is. The most potent advantage of this approach to application development is that it lets applications be extended in ways not initially envisioned.

Previous Page | 1 Core Description | 2 Data Capture | 3 Software Architecture | 4 Implementation Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK