was approved in November, 2009, for the .NET Framework. OPC Xi used Windows Communication Foundation instead of DCOM, so it can be configured for communication across the enhanced security of network address translation (NAT). About the same time, the OPC Unified Architecture (UA) was developed for platform independence. UA can be implemented with Java, Microsoft .NET, or C, eliminating the need to use a Microsoft Windows platform of earlier OPC versions. UA combined the functionality of the existing OPC interfaces with new technologies such as XML and Web services to deliver higher level manufacturing execution system (MES) and enterprise resource planning (ERP) support. The first working group for UA met in 2003, version 1.0 was published in 2006. On September 16, 2010, The OPC Foundation and the MTConnect Institute announced cooperation to ensure interoperability and consistency between the two standards. Design OPC was designed to provide a common bridge for Windows-based software applications and process control hardware. Standards define consistent methods of accessing field data from plant floor devices. This method remains the same regardless of the type and source of data. An OPC Server for one hardware device provides the same methods for an OPC client to access its data as any other OPC Server for any hardware device. The aim was to reduce the amount of duplicated effort required from hardware manufacturers and their software partners, and from the supervisory control and data acquisition (SCADA) and other human-machine interface (HMI) producers in order to interface the two. Once a hardware manufacturer had developed their OPC Server for the new hardware device, their work was done with regards to allowing any 'top end' to access their device, and once the SCADA producer had developed their OPC client, it allowed access to any hardware with an OPC compliant server. OPC servers provide a method for different software packages (as long as it is an OPC client) to access data from a process control device, such as a programmable logic controller (PLC) or distributed control system (DCS). Traditionally, any time a package needed access to data from a device, a custom interface or driver had to be written. There is nothing in the OPC specifications to restrict the server to providing access to a process control device. OPC Servers can be written for anything from getting the internal temperature of a microprocessor to the current temperature in Monument Valley. Once an