by Jyrki Haajanen, Robin Berglund, Ville Kotovirta, and Markus Laakso
The JGISFrame framework developed by VTT Information Technology enables fast composition of end-user software for Geographical Information Systems (GIS).
VTTs research in the domain dates back to the early 1990s. In 1999 VTT had several GIS projects active simultaneously and the potential synergy was obvious. It was decided to build a software framework encapsulating previous experience to support this set of projects. As a result, the development of JGISFrame started at June 1999, and first applications based on it were ready by the end of the year. The development of the framework still continues as new GIS projects are carried out at VTT Information Technology.
A parallel iterative development process was applied in the development of JGISFrame. A base version of the framework was developed quickly and a set of projects was applying it in their end-user software. Feedback from the applying projects including improvement ideas and arising problems was immediately available to the framework developers. The resulting solutions and changes in the JGISFrame were negotiated in close operation with the developers in the applying projects. Each of the developers of the JGISFrame was also involved in one or more of these. This gave a valuable multi-project scope to the detailed implementation of the framework and increased confidence in it among the application developers.
The purpose of the JGISFrame is to allow fast development of Java-based thick-client end-user GIS software. The thick-client approach is selected because we have mobile customers operating at sea or on the road with limited communication facilities. In the thin-client approach the server contains the application logic and generates views on the data, which are then passed to the client for visualization. If the user requests another view on the same data the server generates it and passes it to the client software. As a result the communications load increases due to successive requests of the same data. A thick-client can contain the application logic for creating different views based on the data that is delivered only once, thus eliminating the successive requests for different views.
The architecture of the framework is based on the Model-View-Controller pattern. This provides separation of the data model and views to it in the application. Furthermore, it is easier to construct multiple views to the same set of data. The idea of the JGISFrame is to provide a set of components with predefined relations that implement the basic features of an end-user application. This basic model is then broadened and specialised with the inheritance mechanism, that allows maximal reuse of code. Other well-proven design patterns are also extensively applied in the JGISFrame. The framework is self-extendable almost any feature implemented in an application can be included in the framework as it is or with slight modification and reused in the future projects.
The model in the framework provides an abstraction of a single point of GIS-data and their compounds. These basic constructs can be specialised for developer needs by use of inheritance mechanism. Virtually any GIS data can be presented with these basic constructs. Point and vector data can be represented with points and their compounds respectively and raster data can be associated with a bounding box of points. The JGISFrame provides a default local storage for the resulting data types. Query attributes can be spatial, temporal, or both. If the application has very specific needs, a custom implementation of storage can also be provided.
The JGISFrame currently contains 263 classes totalling more than 28 kilolines of source code (KLOC) with comments and blank lines excluded. Applications implemented with the framework contain 4 - 16 KLOC. The ratio of framework code to the deployed code in the applications is 65 - 90 %.
The framework approach is very productive. Within 10 months we have developed two operative applications and one prototype application based on JGISFrame, and one operative application is currently under development. More projects will follow in the near future. The costs of the development of the framework were considerably less than the opportunity cost of implementing similar functionality in each of the applying projects separately.
This summer we will launch a new project developing a ligh version of the JGISFrame for GIS-clients on portable mobile platforms, such as cellular phones and palm computers. Possible technologies to be used are WAP, Epoc, Windows CE, and Linux.
Links:
http://www.vtt.fi/tte/pub/tte1/mobilemarine/JGISFrame
Please contact:
Jyrki Haajanen - VTT Information Technology
Tel: +358 9 456 6028
E-mail: Jyrki.Haajanen@vtt.fi