FIMA - Fault Injector for Middleware Applications

Welcome

Welcome to the FIMA project web page. The FIMA project was launched in 2003 to develop a set of software tools that produce exceptional conditions in complex software systems, allowing system evaluators to probe for weaknesses and to evaluate how well a system responds to unforeseen occurrences. Successful completion of this project will produce tools that will enable development of more robust software that results in fewer system outages and other types of failures.

Project Introduction

This project focuses on modern complex software systems that are most often implemented as multithreaded processes interacting via an object-oriented middleware platform. The FIMA tool is thread-aware and is specifically designed for open middleware environments, specially CORBA, and POSIX-compliant operating systems and thread packages. Most of FIMA's run-time functions execute in a separate thread, minimizing impact of the tool on execution of the application being evaluated. The exceptions to be introduced in the application can be specified statically via a fault specification file that is generated via a GUI or can be introduced dynamically, either by the programmer through use of the FIMA API or from another process (e.g. the GUI) via the CORBA callback mechanism. The exceptions that can be introduced range from corruption of any instruction or any piece of data in the application's address space to corruption of the communication between software components. Modification of instructions and data can be used to emulate common software problems, e.g. array bound violations, invalid input parameters, or corrupted data. Communication corruption is specifically targeted at evaluation of weaknesses in component interaction mechanisms, which are a common source of software problems.

Development Status

FIMA version 2.0 was released on April 1, 2004. This release supports memory and communication fault injection on both client and server sides. A set of auxiliary tools, including IDL Scanner, Automatic Wrapper Inserter, and External Trigger, are provided to support some additional features. This tool has been tested with ACE/TAO under both Solaris and Linux.

J-FIMA (Java edition of FIMA) version 0.1 is being tested. This version supports Omission and Delay communication fault injection on both client and server sides. This tool is being tested with JacORB under both Solaris and Linux. A new version of J-FIMA, includeing all the features of FIMA version 2.0, is under development.

For more information on FIMA, please contact Dr. Douglas M. Blough (doug.blough ece.gatech.edu).


Last update of this page: June 7, 2004