24.05.2014 Views

pdf: 600KB - Potsdam Institute for Climate Impact Research

pdf: 600KB - Potsdam Institute for Climate Impact Research

pdf: 600KB - Potsdam Institute for Climate Impact Research

SHOW MORE
SHOW LESS

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:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!