The OPC server is a program that translates the hardware communication protocol used by a PLC into the OPC protocol. The OPC client software is a program that connects to the hardware, such as an HMI. The OPC client communicates with the OPC server to receive data or send commands to the hardware.
The most significant difference between classical OPC and OPC UA is that it doesn’t rely on OLE or DCOM technology from Microsoft that makes it possible to implement it on any platform if that being Apple, Linux (JAVA) or Windows. The other very important part of UA is the possibility to use structures or models