public void tick() throws RemoteException {
        ViewInfo currentView = service.ping(viewInfo.view, serverName);

        if (viewInfo.primary.equals(serverName) && !currentView.backup.equals(viewInfo.backup) && !currentView.backup.isEmpty()) {
            viewInfo.set(currentView);

            try {
                ServerInterface backupServer = (ServerInterface) Naming.lookup(viewInfo.backup);

                Iterator<Map.Entry<String, String>> iterator = storage.entrySet().iterator();
                for (; iterator.hasNext(); ) {
                    Map.Entry<String, String> entry = iterator.next();
                    backupServer.putBackup(entry.getKey(), entry.getValue());
                }
                currentView = service.ping(currentView.view, serverName);
            } catch (NotBoundException | MalformedURLException e) {
                throw new RemoteException("RMI exception", e);
            }
        }
        viewInfo.set(currentView);
        ++currentTime;
    }