Goal

Produce a more dynamic dummy plugin that can be used to generate complex testing scenarios.

Requirements

Design

The purpose of the Simulator Plugin is to, as closely as possible, simulate a real hardware device. It should support at least one of every type of resource specified by the HPI B specification, and in most cases, support a variety of resource types from each specification category. This will ensure that the core OpenHPI code is completely exercised.

In order to accomplish this goal and make the use of the plugin as flexible as possible, the plugin will be composed of two parts. The first part will be the basic plugin code which will look very much like a traditional plugin which supports a real hardware device. The biggest difference will be the method used to communicate with its "hardware".

The second part will be software which simulates a hardware device. The design for this simulated device should allow for it to either support the full set of resources specified by the plugin or to support a subset of those devices. This will allow the maximum flexibility for testing interactions between pairs of resources without side effects from other resources.

The overall design should take the following form:

        +--------------------------+
        |                          |
        |         OpenHPI          |
        |                          |
        |  +--------------------+  |   +----------------------+
        |  |                    |  |   |                      |
        |  |  Simulator Plugin  |  |   |  Hardware Simulator  |
        |  |                    |  |   |                      |
        |  +--------------------+  |   +----------------------+
        |                          |
        |  +--------------------+  |
        |  |                    |  |
        |  |   Other Plugins    |  |
        |  |                    |  |
        |  +--------------------+  |
        |                          |
        |                          |
        +--------------------------+

At this point, it has not yet been determined if the Hardware Simulator will be contained within the same process as OpenHPI or if it will be in a seperate process. In any case, a communications mechanism between the Simulator Plugin and the Hardware Simulator will need to be created. The communications mechanism should be a simple as possible and does not have to be a network-based protocol.

Simulator Plugin Design Details

The architecture of the Simulator Plugin should contain these elements:

"hardware".

Hardware Simulator Design Details

The architecture of the Hardware Simulator should contain these elements:

Coding the Hardware Simulator as a seperate process has some additional benefits.

The potential for specifying the resources supported by the Hardware Simulator would be easier and involve fewer compile and link steps.

OpenHPI/Plugins/Dummy2 (last edited 2007-03-27 13:54:36 by RenierMorales)


Related Sites:  SA Forum, OpenIPMI, Net-SNMP, SourceForge.net