|Instrumentation Hardware Abstract Language (IHAL)|
What is IHAL?
The Instrumentation Hardware Abstract Language (IHAL) is an XML-based language for describing instrumentation hardware in a vendor-neutral way. The central concept in IHAL is the “configurable parameters” (i.e., settings) that each device exposes to the user. However, IHAL is also capable of describing the environmental and physical attributes of each device, such as its size and shape, operating temperatures, and power consumption.
IHAL describes instrumentation hardware at two levels:
- The “pool” level describes hardware according to its capabilities and configurability. The information in the IHAL pool is similar to the information found in a device’s marketing or engineering data sheet. A good way to think of the pool is to imagine that each device in the pool can be uniquely identified by its model number.
- The “use” level describes a specific configuration of instrumentation hardware. At the use level, devices from the pool are put into a specific “use.” That is, they are connected to other devices, and their “configurable parameters” (i.e., settings) are set to specific values. A good way to think of the use-level is to imagine that each device at this level can be uniquely identified by its serial number.
What is the IHAL API?
The IHAL Vendor Web Services API enables IHAL to be used not only as a language for describing instrumentation hardware, but also as a command and query language for configuring instrumentation hardware. The API defines a set of functions that an instrumentation hardware vendor can implement to provide access to their configuration engine for external applications. All inputs and outputs to the functions are properly-formatted IHAL XML documents. This API allows vendors to expose the functionality of their configuration engines in a vendor-neutral way, without disclosing the inner workings of their proprietary configuration logic. In this way, vendor-neutral, 3rd-party applications can be developed to configure the hardware of any vendor who implements the API. The developers of such 3rd (or 1st ) party applications need not understand the inner workings of each vendor’s configuration engine.
How can IHAL be used?
The potential uses of IHAL fall into two major categories: 1) IHAL as a description language, and 2) IHAL as a command language.
IHAL as a Description Language
As a vendor-neutral, human-readable language for describing instrumentation hardware, IHAL provides a means for storing a permanent record of the devices used during a test and their settings during that test. This description will remain readable and relevant even when the hardware vendors are or radically change their file formats.
Additionally, providing such descriptions enables the development of vendor-neutral tools. The capabilities of these tools can range anywhere from simple visualization (e.g., instrumentation network and configuration visualization) to complex automated reasoning (e.g., automatically selecting and configuring devices from multiple vendors based on user-defined requirements).
IHAL as a Command Language
The IHAL constructs that describe the current configuration of a device can also be used to issue a “command” to the device to change its configuration. When combined with the API (described above), this feature of IHAL enables multi-vendor instrumentation configuration from a single user interface without requiring vendors to share knowledge about the internal workings of their configuration engines.