pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
11<br />
3.2 Modular modelling, component-based approaches, and integrated modelling<br />
frameworks<br />
In contrast, the second major current type of modelling framework is based on some notion of<br />
modularity. For a number of commentators, the need <strong>for</strong> modularity in model structure is the defining<br />
requirement <strong>for</strong> a modelling framework (Reynolds and Acock 1997: special issue of Ecological<br />
Modelling). It paves the way <strong>for</strong> the re-use of model components, enables a model to be constructed by<br />
a simple process of linking modules together, and allows <strong>for</strong> 'plug-and-play' use of alternative modules<br />
<strong>for</strong> a particular component of the system. (From the early days of modelling, the program implementing<br />
a model has often been split into subroutines/functions/procedures, corresponding to separate submodels.<br />
However, this approach typically provided little support <strong>for</strong> submodel re-use, or plug-and-play<br />
modularity.)<br />
One way of handling modularity has been through the development of a modular modelling framework,<br />
in which modellers can select and link modules with no or little programming. A well-known example<br />
in the area of crop modelling is APSIM [see URLs] (McCown et al, 1996), which enables a cropping<br />
systems model to be constructed by selecting submodels <strong>for</strong> (e.g.) crop growth, soil nutrient dynamics<br />
and management to be plugged into a central simulation 'engine'.<br />
Another approach <strong>for</strong> achieving modularity has been through the implementation of models in an objectoriented<br />
programming language, such as C++. Indeed, all the papers in the above-cited special issue of<br />
Ecological Modelling describe systems of this type. The approach has other claimed benefits <strong>for</strong><br />
ecological modelling, including the analogy between composition and inheritance hierarchies in nature<br />
(a sheep has legs; a sheep is a type of mammal), and analogous constructs in object-oriented software<br />
design.<br />
However, by far the most significant development in modular-based modelling in the last few years has<br />
been the adoption of a component-based approach as the way to organise the modelling ef<strong>for</strong>t within an<br />
organisation or in a large-scale project. A component is an independent software object that can be<br />
linked with other components. Its internal structure is hidden. It communicates with other components<br />
through the exchange of in<strong>for</strong>mation across one or more interfaces.<br />
Table 3.1 lists a number of such activities; there are doubtless numerous others. In addition, a more<br />
detailed description of two component-based frameworks - MODCOM and IMA - is given in Appendix<br />
1.<br />
A component-based approach can be applied at two levels:<br />
• It can be applied at the level of decision-support systems (DSS), with individual parts of the system<br />
(the model, the user interface, the data management, the GIS, the results analysis) being separate<br />
components. Potter et al (2000) consider the design issues and choice of component-based<br />
technology <strong>for</strong> such systems in the context of <strong>for</strong>est DSS. In this view, the model is itself one<br />
component. This will not be considered further in this document: there is little to argue about, since<br />
a DSS is a large software product, and it is clear that component-based approaches offer a sound<br />
engineering approach to the development of such products.<br />
• It can be applied at the level of the parts of a model, each part (submodel) being conceptualised as a<br />
component. For example, a cropping systems model might include 3 components: a crop growth<br />
model, a soil water model, and an insect pest model. It is this use of the term 'component-based<br />
approach' that interests us here.<br />
A key characteristic of many such initiatives is the adoption of Microsoft's COM technology. COM (the<br />
Component Object Model) enables interoperability between modules developed in a wide variety of<br />
languages. Some use DCOM, which is a distributed version of COM (<strong>for</strong> operating over the internet).<br />
The principal alternative to COM is CORBA (the Common Object Request Broker Architecture), which<br />
works under both MS Windows and Unix operating systems, but is much less widely adopted. Raj<br />
(1998) and Chung et al (1997) provide an excellent technical comparison of the two technologies.<br />
There are a couple of issues to consider about component-based approaches: