Using CORBA middleware in finite element software
Introduction
A complex hardware product often consists of many exchangeable components. As long as a component fits into the product, the internal implementation can differ. Software components are analogous to hardware components. Components in programs can be exchanged without the need for recompilation, as long as the component interface is unchanged. The use of components in software development has increased during the last few years. The reason for this is the need to reduce the size of the client programs. When the first client/server systems appeared, the client software were often large programs. Most of the processing was done in the client program and the database server was used as data storage. The problem with these systems was the cost of installing and maintaining the client software. New systems developed today often use a thin client with little or no data processing capabilities. Instead of calling the database servers directly, they use a set of components placed on central servers for data processing. These components then access the database servers. The advantage of this approach is that the components can be placed on powerful systems, reducing the amount of processing needed at the client. This approach has been successfully applied to database applications. It is of interest to apply this technique to analysis software as well. Using the technique of distributed computing, clients can use components as if they were located on the same machine, making it possible to create integrated programs with transparent access to computational resources, such as available workstations on the network or resources at high performance computing (HPC) centres. This would make high performance computing more available to a wider user group.
The present work describes structural analysis software, where the computational parts of analysis codes can be placed as components on remote servers. Before describing the structural analysis code, a brief overview of client/server architecture will be given.
Section snippets
Client/server architecture
Three-tier and n-tier applications emerged from the need to shield the client program from changes at the server side by placing a layer between the client and the server. The history of the client/server architecture is described by Schussel [24]. For a more detailed description over the client/server architecture, see [17]. The logical three-tier or n-tier model divides an application into three or more logical components. Each component is responsible for a well-defined task. In a database
Distributed computing
Distributed computing is defined as a type of computing in which different components and objects comprising an application can be located on different computers connected to a network; for an overview see [15].
Currently, there are three coexisting technologies for distributed object computing DCOM [2], Java Remote Method Invocation RMI [23] and CORBA [1]. Microsoft’s distributed COM (DCOM) extends the Component Object Model to be used over the network. RMI or Remote Method Invocation [23] is a
Concepts and terminology
To describe a CORBA based implementation, it is important to understand some terminology and concepts of a CORBA implementation. Some of the more important concepts and terminology is shown below. A more thorough description can be found in [9]:
- •
A client is an entity that invokes a request on a CORBA object.
- •
A CORBA object is a “virtual” entity capable of being located by an ORB and having client requests invoked on it.
- •
A server is an application with one or more CORBA objects.
- •
An object reference
CORBA in finite element software
Most finite element applications communicate using files. The input model is described in a text file in some form. Generated results are often stored in a binary output file or in a database. If other applications, such as pre- and post-processors are integrated with the finite element application they have to generate and read these files. This generates a lot of extra steps to integrate existing finite element codes. Using CORBA the inner object model and functions of the application can be
Example of a finite element CORBA implementation
The educational software ForcePAD [6] was modified to use a CORBA based finite element solver. The ForcePAD application is an intuitive tool for visualising the behaviour of structures subjected to loading and boundary conditions. ForcePAD uses a bitmap canvas on which the user can draw the finite element model using standard drawing tools. When the calculation is executed the bitmap image is transferred to a finite element grid, which is then solved. The main window is shown in Fig. 11. The
Conclusions
Using a three-tier implementation with interfaces and components, creates a very flexible finite element application. The three-tier implementation protects the client applications from changes in configuration and solver design. By using interfaces when communicating with components, the need to recompile client software when a new functionality is introduced in the solver components is reduced. Interfaces can also be published enabling other software to use the finite element application in
J. Lindemann was born in Sweden in 1970. He received his MS degree in civil engineering in 1997. He is currently working as a PhD student at the Division of Structural Mechanics at Lund University. His research interests include visualisation of finite element simulations, methods for distributing finite element systems using CORBA and DCOM. Development of user interfaces for computational codes and educational tools in structural mechanics.
References (26)
- Object Management Group, Inc., 2000....
- Microsoft Corporation, DCOM Technical Overview,...
- M. Dolenc, J. Duhovnik, Designing distributed component-based finite element software, ECPPM...
- B. Spitzak, Fast Light Toolkit FLTK, 2000....
- et al.
Embedding visualisation software into a simulation environment
- Division of Structural Mechanics, Lund Univeristy, ForcePAD, 2001....
- Fnorb the Python CORBA ORB, 2002....
- GNOME Computing made easy, 2002....
- et al.
Advanced CORBA Programming with C++
(1999) - R. Larsson, Encapsulation of a finite element program using a distributed object model, Masters Dissertation TVSM-5095,...
An approach for distribution of resources in structural analysis software
Cited by (0)
J. Lindemann was born in Sweden in 1970. He received his MS degree in civil engineering in 1997. He is currently working as a PhD student at the Division of Structural Mechanics at Lund University. His research interests include visualisation of finite element simulations, methods for distributing finite element systems using CORBA and DCOM. Development of user interfaces for computational codes and educational tools in structural mechanics.
O. Dahlblom received his PhD degree in structural mechanics at Lund University in 1987. Currently he is a professor at the Division of Structural Mechanics at Lund University. His research activities concern constitutive modelling and finite element simulation of structural behaviour. An important part of the work is development of computer code for computation and for result presentation. Examples of areas of application are simulation of deformation development in sawn wood during moisture content changes and stress development in concrete structures during hardening.
G. Sandberg, PhD (Lund University) is the Head of Division of Structural Mechanics at Lund University. He is the Director of the Centre for Scientific and Technical Computing at the same University. He has also been the Dean of the Industrial Design Programme. Principal areas of research interest include: structural mechanics, computational strategies, particularly those involving high performance computing, probabilistic methods in applied mechanics, and new methods in teaching. Professor Sandberg has published papers in various fields of structural mechanics, computational mechanics and education.