База ответов ИНТУИТ

Построение распределенных систем на Java

<<- Назад к вопросам

Для того чтобы методы, определенные в удаленном интерфейсе могли принимать параметры типа "класс, определенный пользователем", необходимо:

(Отметьте один правильный вариант ответа.)

Варианты ответа
определить класс, используемый в качестве типа для передаваемого параметра, как реализующий интерфейс Serializable(Верный ответ)
определить класс, используемый в качестве типа для передаваемого параметра, как реализующий интерфейс Remote
определить класс, используемый в качестве типа для передаваемого параметра, как наследующий от UnicastRemoteObject
Похожие вопросы
Для того чтобы указать системе на то, что экземпляры класса могут быть сохранены в поток/прочитаны из потока, необходимо:
Класс, методы экземпляра которого могут вызываться удаленно через Java RMI должен:
После выполнения какой строки сервер (класс BillingService) может принимать соединения клиентов:
1  package com.asw.net.ex1;2  import java.net.*;3  import java.util.Hashtable;4  import java.io.*;5  6  public class BillingService extends Thread{7  public static final int ADD_NEW_CARD = 1;8  public static final int ADD_MONEY = 2;9  public static final int SUB_MONEY = 3;10  public static final int GET_CARD_BALANCE = 4;11  public static final int EXIT_CLIENT = 5;12  13  private int serverPort = 7896;14  private ServerSocket ss;15  private  Hashtable hash;16  17  public static void main(String[] args) {18    BillingService bs = new BillingService();19    bs.start();20  }21  22  public BillingService(){23    hash = new Hashtable();24  }25  26  public void run(){27    try {28      ss = new ServerSocket(serverPort);29      System.out.println("Server started");30      while(true){31        Socket s = ss.accept();32        System.out.println("Client accepted");33        BillingClientService bcs = new BillingClientService(this, new DataInputStream(s.getInputStream()), new DataOutputStream(s.getOutputStream()));34        bcs.start();35      }36    } catch (IOException e) {37      e.printStackTrace();38    }39  }40  41  public void addNewCard(String personName, String card) {42    hash.put(card, new Double(0.0));43  }44  public void addMoney(String card, double money) {45    Double d = (Double)hash.get(card);46    if (d!=null) hash.put(card,new Double(d.doubleValue()+money));47  }48  public void subMoney(String card, double money) {49    Double d = (Double)hash.get(card);50    if (d!=null) hash.put(card,new Double(d.doubleValue()-money));51  }52  public double getCardBalance(String card) {53    Double d = (Double)hash.get(card);54    if (d!=null) return d.doubleValue();55    return 0;56  }57  }
В классе BillingServiceImpl для удаленного вызова доступны следующие методы:
Класс BillingServiceServer запускается на исполнение:
Транспортный класс Card в обязательном порядке должен:
Класс, использующий Dynamic Invocation Interface (DII) должен наследовать от:
Класс BillingServiceImpl:
Класс BillingServiceImpl:
Класс BillingServiceServer, это: