a SOAP message; encloses the message itself. Header (optional) contains information relevant to the message, for example, the date the message was sent, authentication data, and SO on. Body includes the message payload. Fault (optional) carries information about a client or server error within a SOAP message. Example of a SOAP request message (Figure 12.38): VISA: represents a high-level API that calls in low-level drivers. It can control VXI, GPIB, serial, or computer-based instruments and makes the appropri- ate driver calls depending on the type of instrument used. <soapenv : Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns vel="http://velabservice/"> <soapenv Header> <soapenv : Body> <vel executeCommand> <vel : instrumentDescriptor>visa//192.168.67.101/GPIB0: INSTR</ vel:instrumenDescriptor> <vel : command>*IDN?</vel:command> </vel executeCommand> </soapenv Body> </soapenv: Envelope> Figure 12.38 Example of SOAP request message. Service Delivery Platforms The VISA library has standardized the presentation of its operations through a C API exposed from Windows DLL, visa32.dll and over the Microsoft COM technology. Although there are several VISA vendors and implementations, appli- cations written against VISA are (nominally) vendor interchangeable; thanks to the standardization of VISA's presentation and operations/capabilities. Implemen- tations from specific vendors are also available for less common programming lan- guages and software reuse technologies. On the work-bench server, any free VISA controls can be downloaded, for example, NI VISA Run-Time: [http://sine.ni.com/apps/utf8/niup.ni?ap=GB_ IDU&ip=209&loc=en-US&du=http://joule.ni.com/nidu/cds/view/p/id/1071/ lang/en]. In this way, the specific instrumentation controls are made free from any "service logic" dedicated software packages such as NI "LabVIEW," Keithley "TestPoint," Agilent "VEE," and SO on (as shown before) and can be accessed by simple Web services even from mobile terminals (as a counter-example, LabVIEW Run-Time 