ungaro,
an OPC server is a program used to transmit data between dedicated hardware(PLC, controllers, etc) and general applications (such as Excel, SQL databases or visualisation packages).
As far as I know, an IO server is a computer in a network used to transmit data from and to the PLCs and controllers. In most SCADA systems you can use more than one computer in a project. Some of these computers are simple display clients, others are IO servers, alarm servers or combinations of the three. A stand alone computer running a SCADA system does perform the three functions: it's a display client, an IO server and, if the functionality is needed (which is mostly the case), an alarmserver as well.
Sometimes an IO server uses an OPC server to get the communication going between the SCADA system and the PLCs/controllers. That is the case if no native driver is included in the SCADA package.
Kind regards,