The various XML processing libraries discussed in this tutorial have been implemented entirely in software, sometimes as part of the Java Runtime Environment (JRE) and sometimes as separate libraries. In addition to these options, there are also solutions for processing XML using specialized hardware. In some cases, this hardware is packaged as an add-in card that is installed in a server. In other cases, the hardware is a separate box, which is accessed over a network. Regardless of how it's packaged, your app uses a specialized library to offload processing onto the specialized XML hardware. With most hardware, these libraries include implementation of the JAXP interfaces discussed in , in which case your code may not need to be changed to take advantage of the hardware. XML appliances are made by companies such as DataPower and Sarvega, subsidiaries of IBM and Intel, respectively, as well as smaller companies like Layer 7 Technologies and Reactivity.