'Get the remote target for a given volume.
:param array: the array serial number
:param volume: the volume object
:param device_id: the device id
:returns: target_device, target_array, rdf_group, state'

def get_remote_target_device(self, array, volume, device_id):

    (target_device, local_vol_state, pair_state) = (None, '', '')
    (rdf_group, remote_array) = self.get_rdf_details(array)
    try:
        rep_target_data = volume.replication_driver_data
        replication_keybindings = ast.literal_eval(rep_target_data)
        remote_array = replication_keybindings['array']
        remote_device = replication_keybindings['device_id']
        target_device_info = self.rest.get_volume(remote_array, remote_device)
        if (target_device_info is not None):
            target_device = remote_device
            (are_vols_paired, local_vol_state, pair_state) = self.rest.are_vols_rdf_paired(array, remote_array, device_id, target_device, rdf_group)
            if (not are_vols_paired):
                target_device = None
    except (KeyError, ValueError):
        target_device = None
    return (target_device, remote_array, rdf_group, local_vol_state, pair_state)
