Using CORBA middleware in finite element software

https://doi.org/10.1016/j.future.2003.09.008Get rights and content

Abstract

Distributed middleware technologies, such as CORBA can enable finite element software to be used in a more flexible way. Adding functionality is possible without the need for recompiling client code. Applications and libraries can expose their functionality to other applications in a language neutral way, enabling a more direct and easy transfer of data, without the need for intermediate input and output files. The CORBA software components can be easily configured and distributed transparently over the network. A sample structural mechanics code, implemented in C++ is used to illustrate these concepts. Some future directions, such as placing CORBA enabled finite element software on HPC centres are also discussed.

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....
  • N. Frisch 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....
  • M. Henning 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,...
  • J. Lindemann et al.

    An approach for distribution of resources in structural analysis software

  • R. Davies, Newmat09: C++ Matrix Library, 2001....
  • White Paper on Benchmarking Version 1.0, Object Management Group, 27 December...
  • 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.

    View full text