Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Civil-Comp Proceedings
ISSN 1759-3433
CCP: 80
PROCEEDINGS OF THE FOURTH INTERNATIONAL CONFERENCE ON ENGINEERING COMPUTATIONAL TECHNOLOGY
Edited by: B.H.V. Topping and C.A. Mota Soares
Paper 56

A Reflective Component Framework for a Large Scale Simulation Software

H. Hadler+, M. Kellner* and R. Grosso+

+Department of Computer Graphics, *Department of Material Science 6,
University Erlangen-Nuremberg, Erlangen, Germany

Full Bibliographic Reference for this paper
H. Hadler, M. Kellner, R. Grosso, "A Reflective Component Framework for a Large Scale Simulation Software", in B.H.V. Topping, C.A. Mota Soares, (Editors), "Proceedings of the Fourth International Conference on Engineering Computational Technology", Civil-Comp Press, Stirlingshire, UK, Paper 56, 2004. doi:10.4203/ccp.80.56
Keywords: component architecture, rapid prototyping, heat transfer.

Summary
This paper presents a design concept and implementation of a component based framework for a large scale simulation software used for solving heat transfer problems in crystal growth furnaces. The framework is based on components that are exchangeable at program runtime. Furthermore, the user-interface is generated automatically using an eXtensible Markup Language (XML) description.

The framework architecture is used within a distributed software development process with several project partners, where each partner can concentrate on his own strengths (e.g. geometry processing, mesh generation, coupled systems of nonlinear PDEs, visualization) without the need to know the details of the other components. It is designed to support an easy incorporation of existing software packages and allows for the gradual addition of functionality to parts of the application without side effects. It is implemented with a small set of portable and self-contained C++ classes. To incorporate a new component into the framework, only a few additional lines of code are needed. This feature, in combination with an automated user-interface generation, facilitates the rapid prototyping of new components.

The paper starts with a discussion of the requirements for building an application upon runtime exchangable components and motivates the use of so-called reflective components [1]. These are components that can be queried - at program runtime - about all their interfaces and all aspects of their interfaces' parameters. Thus, a reflective component can provide all pertinent information at runtime that a conventional monolithic application would require at compile-time. Architectures for reflective components are generally linked to the utilisation of a programming language using some form of interpreter like Java [1, p.293] or Python [2]. This work presents a fully self-contained application framework based on reflective components implemented in C++. We present the implementation of the component management and the implementation for realizing a component's reflective characteristics. The component management is transparent to the application. In particular, the application is ignorant about the details of the component creation and destruction (e.g. local or via network).

For applications which require a Graphical User Interface (GUI), the framework can be used to automatically create this GUI. With the use of reflective components it is possible to query the type of the parameters of a component, allowing the creation of an appropriate GUI element. By using an additional description file per component, the layout and the behaviour of the GUI can be set up. We are using a description in XML format. It is used to specify the domain, the labeling and the decoration of each element. Further sections are used to specify the global layout of all elements and to specify dynamic dependencies between the elements. These dependencies are used to change the component's parameters and its GUI elements, based on the value and the attributes of the component's GUI elements. Dependencies are given as expressions of the elements' values and attributes. They are parsed and interpreted by the framework. The dependencies are updated whenever an element is changed. The use of the XML description, particularly its dynamic dependencies section, allows components to be adapted to an application without the need to recompile.

The paper concludes by presenting an application for heat transfer simulation in 3D which is based on this framework. It demonstrates how a simulation task can be split into a system of collaborating components, where each component represents a specific functional object within the application. Components pertinent to this application include mesh management, mesh generation, visualization, the solution of radiative and conductive heat transfer and the coupling of solvers.

References
1
C. Szyperski, "Component Software, Second Edition", Pearsons Education Limited, 2002.
2
A. Andersen, G.S.Blair, F.Eliassen "OOPP: A reflective component-based middleware", NIK 2000, Bodo, Norway, 2000.

purchase the full-text of this paper (price £20)

go to the previous paper
go to the next paper
return to the table of contents
return to the book description
purchase this book (price £95 +P&P)