Главная » Учебные материалы » Информатика » Ответы » 3 семестр » К контрольной работе » Построение распределенных систем на Java

Ответы к контрольной работе: Построение распределенных систем на Java

Новинка
-20%

Описание

Здесь представлена подборка ответов на тестовые вопросы по предмету "Построение распределенных систем на Java". Перед покупкой проверяйте точно ли здесь представлены те вопросы, ответы на которые вам нужны.

Список вопросов

Класс BillingServiceServer запускается на исполнение:
Компиляция класса HelloClient должна производиться в следующей последовательности:
Для запуска системы из клиента и сервера (BillingServiceImpl и BillingClient), необходим запуск:
Класс BillingService допускает одновременное подключение и передачу данных для какого числа клиентов:
Сколько методов, доступных для удаленного вызова, содержит Web-сервис Billing:
Использование мобильных агентов оправданно:
При запуске приложения, использующего DII:
Класс, использующий Dynamic Dynamic Skeleton Interface (DSI), наследуя от класса DynamicImplementation должен реализовать метод(ы):
Результатом работы утилиты wsgen является:
В строке 18, в классе BillingClient:1 // BillingClient.java2 // BillingClient использует удаленный объект BillingService для работы 3 // с информацией на пластиковых картах4 package com.asw.rmi.ex2;5 6 // Набор базовых пакетов Java7 import java.rmi.*;8 import java.util.Date;9 10 public class BillingClient {11 // выполнение BillingClient12 public static void main(String[] args) throws Exception{ 13 // создание строки, содержащей URL удаленного объекта14 String objectName = "rmi://"+args[0]+"/BillingService";15 System.out.println("Starting...n");16 // соединение с реестром RMI и получение удаленной ссылки17 // на удаленный объект18 BillingService bs = (BillingService)Naming.lookup(objectName);19 System.out.println("done");20 21 // проверка на наличие карт с указанными номерами 22 // в случае отсутствия карты с указанными параметрами23 // добавляем новую карту24 Card c;25 c = bs.getCard("1");26 if (c==null) {27 c = new Card("Piter",new Date(),"1",0.0);28 bs.addNewCard(c);29 }30 31 c = bs.getCard("2");32 if (c==null) {33 c = new Card("Stefan",new Date(),"2",0.0);34 bs.addNewCard(c);35 }36 37 c = bs.getCard("3");38 if (c==null) {39 c = new Card("Nataly",new Date(),"3",0.0);40 bs.addNewCard(c);41 }42 43 // определение массива операций по картам44 System.err.println("begin...n");45 int cnt = 30000;46 CardOperation[] co = new CardOperation[cnt];47 for (int i = 0; i < cnt; i++) {48 switch (i%3){49 case 0: co[i] = new CardOperation("1",1,new Date());break;50 case 1: co[i] = new CardOperation("2",1,new Date());break;51 case 2: co[i] = new CardOperation("3",1,new Date());break;52 }53 }54 // проведение указанных в массиве операций55 bs.processOperations(co);56 57 // печать текущего баланса обработанных карт58 System.out.println(bs.getCard("1"));59 System.out.println(bs.getCard("2"));60 System.out.println(bs.getCard("3"));61 }62 }
В классе BillingServiceImpl для удаленного вызова посредством Java RMI доступны следующие методы:
Определение удаленного интерфейса RMIExample должно выглядеть следующим образом:
Использование тонких клиентов может быть оправданно в том случае, если:
Использование proxy:
Информационные системы, выполненные в архитектуре "клиент-сервер"
Сервис именования CORBA это:
Аннотация @Resource(mappedName="jms/ConnectionFactory"):
В качестве транспортного протокола для передачи сообщений SOAP может использоваться:
При запуске приложения, использующего DSI:
Для запуска примера потребуются следующие утилиты (при использовании реализации CORBA, включенной в пакет JDK):
Протокол обмена данными между клиентом и сервером, предложенный в первой части лекции обладает следующими недостатками:
Класс BillingClientService унаследован от класса Thread, потому что:
При использовании Dynamic Invocation Interface (DII) на стороне клиента, использование IDL для автоматического построения классов на стороне сервера:
Метод, предназначенный для публикации и удаленного вызова, помечается аннотацией:
Тонкие клиенты:
В каком порядке должен осуществляться запуск примера с BillingClient и BillingService:
helloservice.endpoint.Hello представляет собой:
Аннотация @WebServiceRef в классе HelloClient относится к:
Класс, использующий Dynamic Dynamic Skeleton Interface (DSI), в методе invoke:
При использовании Dynamic Invocation Interface (DII) и Dynamic Dynamic Skeleton Interface (DSI) на классы накладываются следующие ограничения по наследованию:
Для запуска системы из клиента и сервера (BillingServiceServer и BillingClient), необходим запуск:
Файл, с IDL-описанием может содержать:
Почему в коде BillingServiceImpl отсутствуют операторы чтения данных из сети?
При передаче объектов, с использованием ObjectOutputStream/ObjectInputStream:
Для того чтобы указать системе на то, что экземпляры класса могут быть сохранены в поток/прочитаны из потока, необходимо:
После выполнения какой строки сервер (класс 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 }
Следующие технологии могут использоваться для создания распределенных приложений:
Открытость, применительно к распределенным системам означает:
Модель, при которой сервер инициирует соединение:
Модель сервиса
Для определения интерфейса удаленного объекта, в IDL используется ключевое слово:
Использование P2P может быть оправданно в том случае, если:
Почему в коде BillingServiceImpl отсутствуют операторы чтения данных из сети?1 // BillingServiceImpl.java2 package com.asw.corba.ex1;3 4 // базовые пакеты Java5 import java.util.Hashtable;6 7 import com.asw.corba.ex1.BillingServiceModule.*;8 9 // пакеты OMG CORBA10 import org.omg.CORBA.*;11 12 public class BillingServiceImpl extends BillingServicePOA {13 private ORB orb;14 private Hashtable hash = new Hashtable();15 16 public void setORB(ORB orb_val) {17 orb = orb_val;18 }19 20 public void addNewCard(String personName, String card) {21 hash.put(card, new Double(0.0));22 }23 24 public void addMoney(String card, double money) {25 Double d = (Double)hash.get(card);26 27 if (d!=null) hash.put(card,new Double(d.doubleValue()+money));28 }29 30 public void subMoney(String card, double money) {31 Double d = (Double)hash.get(card);32 33 if (d!=null) hash.put(card,new Double(d.doubleValue()-money));34 }35 36 public double getCardBalance(String card) {37 Double d = (Double)hash.get(card);38 39 if (d!=null) return d.doubleValue();40 else return 0;41 }42 }
Класс ServerSocket из пакета java.net:
Класс BillingServiceImpl:
Описание Card getCard(in string card) в определении BillingService.idl означает, что метод getCard возвращает:
При регистрации в сервисе имен класса, использующего DSI:
Класс, использующий Dynamic Dynamic Skeleton Interface (DSI) должен наследовать от:
При использовании Sun Java System Application Server и набора скриптов из пакета The Java Web Services Tutorial подготовка модуля развертывания Web-сервиса:
WSDL-файл представляет собой:
При вызове метода addNewCard, экземпляр Card передается на сервер как:
Метод readObject, в строке 32 , в случае, если клиент после установки соединения не записал в поток никаких данных, приведет:1 package com.asw.net.ex2;2 import java.io.*;3 import java.net.*;4 5 public class BillingClientService extends Thread {6 ObjectInputStream ois;7 ObjectOutputStream oos;8 BillingService bs;9 Socket s;10 11 public BillingClientService(BillingService bs,Socket s){12 System.out.println("Constructor BillingClientServicen");13 this.bs = bs;14 this.s = s;15 try {16 this.oos = new ObjectOutputStream(s.getOutputStream());17 this.ois = new ObjectInputStream(s.getInputStream());18 } catch (IOException e) {19 // TODO Auto-generated catch block20 e.printStackTrace();21 }22 23 System.out.println("Stream`s done n socket="+s);24 }25 public void run(){26 System.out.println("ClientService thread startedn");27 boolean work = true;28 while (work) {29 int command;30 Object o;31 try {32 o = ois.readObject(); 33 if (o instanceof Card[]) {34 Card[] cards = (Card[])o;35 for (int i=0;i
Класс, методы экземпляра которого могут вызываться удаленно через 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 }
Module BillingServiceModule (в определении BillingService.idl) при использовании утилиты idlj породит следующую синтаксическую конструкцию Java:
Класс, который должен быть опубликован в качестве Web-сервиса должен быть помечен аннотацией:
В какой строке кода BillingServiceImpl происходит чтение из сети аргументов, передаваемых в метод processOperations:1 // BillingServiceImpl.java2 // BillingServiceImpl реализует удаленный интерфейс BillingService для 3 // предоставления удаленного объекта BillingService4 package com.asw.rmi.ex2;5 6 // Набор базовых пакетов Java7 import java.rmi.*;8 import java.util.*;9 import java.rmi.server.*;10 11 public class BillingServiceImpl extends UnicastRemoteObject 12 implements BillingService {13 14 private Hashtable hash; // хэш-таблица для хранения карт15 // инициализация сервера16 public BillingServiceImpl() throws RemoteException{17 super();18 hash = new Hashtable();19 }20 21 // реализация метода addNewCard интерфейса BillingService22 public void addNewCard(Card card) throws RemoteException {23 24 hash.put(card.cardNumber, card);25 }26 27 // реализация метода processOperations интерфейса BillingService28 public void processOperations(CardOperation[] operations) 29 throws RemoteException {30 for (int i=0;i
Как BillingServiceClient находит сервис имен:
При объявлении методов в IDL, типы передаваемых в них аргументов должны:
В какой строке кода BillingServiceImpl происходит чтение из сети аргументов, передаваемых в метод addNewCard:1 // BillingServiceImpl.java2 package com.asw.corba.ex1;3 4 // базовые пакеты Java5 import java.util.Hashtable;6 7 import com.asw.corba.ex1.BillingServiceModule.*;8 9 // пакеты OMG CORBA10 import org.omg.CORBA.*;11 12 public class BillingServiceImpl extends BillingServicePOA {13 private ORB orb;14 private Hashtable hash = new Hashtable();15 16 public void setORB(ORB orb_val) {17 orb = orb_val;18 }19 20 public void addNewCard(String personName, String card) {21 hash.put(card, new Double(0.0));22 }23 24 public void addMoney(String card, double money) {25 Double d = (Double)hash.get(card);26 27 if (d!=null) hash.put(card,new Double(d.doubleValue()+money));28 }29 30 public void subMoney(String card, double money) {31 Double d = (Double)hash.get(card);32 33 if (d!=null) hash.put(card,new Double(d.doubleValue()-money));34 }35 36 public double getCardBalance(String card) {37 Double d = (Double)hash.get(card);38 39 if (d!=null) return d.doubleValue();40 else return 0;41 }42 }
Результатом работы утилиты wsimport является:
С помощью каких утилит, входящих в состав Sun Application Server, осуществляется запуск BillingClient и BillingService:
Аннотация @Resource(mappedName="jms/Queue"):
Утилита wsimport для своей работы требует:
helloservice.endpoint.HelloService представляет собой:
При использовании возможности тестирования Web-сервиса, предоставляемой Sun Java System Application Server пользователь имеет возможность:
При использовании Sun Java System Application Server и набора скриптов из пакета The Java Web Services Tutorial инсталляция Web-сервиса осуществляется командой:
В WSDL-файле содержится:
Утилита wsgen требует для своей работы:
Какие аннотации из пакета javax.jws минимально необходимы при "автоматическом" создании Web-сервиса, содержащего хотя бы один метод:
При использовании DII, в случае, если сигнатура удаленного метода изменена, необходимо:
При регистрации в сервисе имен класса, использующего DII:
Класс, использующий Dynamic Invocation Interface (DII) должен наследовать от:
При использовании Dynamic Dynamic Skeleton Interface (DSI) на стороне сервера, использование IDL для автоматического построения классов на стороне клиента:
Запуск приложения осуществляется в следующем порядке:
В хэштаблице _cards (класс BillingServiceImpl) хранятся:
Описание Card addNewCard(in string personName, in string card) в определении BillingService.idl означает, что объектная ссылка Card, возвращаемая методом, "указывает" на:
Динамические скелетоны используются:
В строке 32 , в классе BillingServiceServer:1 // BillingServiceServer.java2 package com.asw.corba.ex1;3 4 // пакеты OMG CORBA5 import org.omg.CosNaming.*;6 import org.omg.CORBA.*;7 import org.omg.PortableServer.*;8 import org.omg.PortableServer.POA;9 import com.asw.corba.ex1.BillingServiceModule.*;10 11 public class BillingServiceServer {12 public static void main(String args[]) {13 try{14 // create and initialize the ORB15 ORB orb = ORB.init(args, null);16 17 // get reference to rootpoa & activate the POAManager18 POA rootpoa =19 POAHelper.narrow(orb.resolve_initial_references("RootPOA"));20 rootpoa.the_POAManager().activate();21 22 // create servant and register it with the ORB23 BillingServiceImpl BSImpl = new BillingServiceImpl();24 BSImpl.setORB(orb);25 26 // get object reference from the servant27 org.omg.CORBA.Object ref = rootpoa.servant_to_reference(BSImpl);28 BillingService href = BillingServiceHelper.narrow(ref);29 30 // get the root naming context31 // NameService invokes the name service32 org.omg.CORBA.Object objRef =33 orb.resolve_initial_references("NameService");34 // Use NamingContextExt which is part of the Interoperable35 // Naming Service (INS) specification.36 NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);37 38 // bind the Object Reference in Naming39 String name = "BillingService";40 NameComponent path[] = ncRef.to_name( name );41 ncRef.rebind(path, href);42 43 System.out.println("BillingServiceServer ready and waiting ...");44 45 // wait for invocations from clients46 orb.run();47 }48 49 catch (Exception e) {50 System.err.println("ERROR: " + e);51 e.printStackTrace(System.out);52 }53 System.out.println("BillingServer Exiting ...");54 }55 }
В строке 41, в классе BillingServiceServer:1 // BillingServiceServer.java2 package com.asw.corba.ex1;3 4 // пакеты OMG CORBA5 import org.omg.CosNaming.*;6 import org.omg.CORBA.*;7 import org.omg.PortableServer.*;8 import org.omg.PortableServer.POA;9 import com.asw.corba.ex1.BillingServiceModule.*;10 11 public class BillingServiceServer {12 public static void main(String args[]) {13 try{14 // create and initialize the ORB15 ORB orb = ORB.init(args, null);16 17 // get reference to rootpoa & activate the POAManager18 POA rootpoa =19 POAHelper.narrow(orb.resolve_initial_references("RootPOA"));20 rootpoa.the_POAManager().activate();21 22 // create servant and register it with the ORB23 BillingServiceImpl BSImpl = new BillingServiceImpl();24 BSImpl.setORB(orb);25 26 // get object reference from the servant27 org.omg.CORBA.Object ref = rootpoa.servant_to_reference(BSImpl);28 BillingService href = BillingServiceHelper.narrow(ref);29 30 // get the root naming context31 // NameService invokes the name service32 org.omg.CORBA.Object objRef =33 orb.resolve_initial_references("NameService");34 // Use NamingContextExt which is part of the Interoperable35 // Naming Service (INS) specification.36 NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);37 38 // bind the Object Reference in Naming39 String name = "BillingService";40 NameComponent path[] = ncRef.to_name( name );41 ncRef.rebind(path, href);42 43 System.out.println("BillingServiceServer ready and waiting ...");44 45 // wait for invocations from clients46 orb.run();47 }48 49 catch (Exception e) {50 System.err.println("ERROR: " + e);51 e.printStackTrace(System.out);52 }53 System.out.println("BillingServer Exiting ...");54 }55 }
В классе BillingServiceImpl для удаленного вызова доступны следующие методы:
Объектная ссылка в CORBA это:
В строке 54, в классе BillingServiceImpl:1 // BillingServiceImpl.java2 // BillingServiceImpl реализует удаленный интерфейс BillingService для 3 // предоставления удаленного объекта BillingService4 package com.asw.rmi.ex2;5 6 // Набор базовых пакетов Java7 import java.rmi.*;8 import java.util.*;9 import java.rmi.server.*;10 11 public class BillingServiceImpl extends UnicastRemoteObject 12 implements BillingService {13 14 private Hashtable hash; // хэш-таблица для хранения карт15 // инициализация сервера16 public BillingServiceImpl() throws RemoteException{17 super();18 hash = new Hashtable();19 }20 21 // реализация метода addNewCard интерфейса BillingService22 public void addNewCard(Card card) throws RemoteException {23 24 hash.put(card.cardNumber, card);25 }26 27 // реализация метода processOperations интерфейса BillingService28 public void processOperations(CardOperation[] operations) 29 throws RemoteException {30 for (int i=0;i
Возвращаемым значением для метода, вызываемого удаленно, могут быть:
Для того чтобы методы, определенные в удаленном интерфейсе могли принимать параметры типа "класс, определенный пользователем", необходимо:
Java RMI может быть использована только в том случае, если:
При передаче экземпляров CardOperation по сети, передаются:
В случае если клиент завершит соединение, не послав предварительно сигнал EXIT_CLIENT:1 package com.asw.net.ex1;2 import java.io.*;3 4 public class BillingClientService extends Thread {5 DataInputStream dis;6 DataOutputStream dos;7 BillingService bs;8 9 public BillingClientService (BillingService bs,DataInputStream dis,DataOutputStream dos){10 this.bs = bs;11 this.dis = dis;12 this.dos = dos;13 }14 15 public void run(){16 System.out.println("ClientService thread started");17 boolean work = true;18 while (work) {19 int command;20 try {21 command = dis.readInt();22 switch (command) {23 case BillingService.ADD_NEW_CARD:24 addNewCard();25 break;26 case BillingService.ADD_MONEY:27 addMoney();28 break;29 case BillingService.SUB_MONEY:30 subMoney();31 break;32 case BillingService.GET_CARD_BALANCE:33 getCardBalance();34 break;35 case BillingService.EXIT_CLIENT:36 work = false;37 break;38 default:39 System.out.println("Bad operation:" + command);40 }41 } catch (IOException e) {42 e.printStackTrace();43 }44 }45 }46 47 void addNewCard() throws IOException{48 String personName = dis.readUTF();49 String card = dis.readUTF();50 bs.addNewCard(personName,card);51 }52 void addMoney() throws IOException{53 String card = dis.readUTF();54 double money = dis.readDouble();55 bs.addMoney(card,money);56 }57 void subMoney() throws IOException{58 String card = dis.readUTF();59 double money = dis.readDouble();60 bs.subMoney(card,money);61 }62 void getCardBalance() throws IOException{63 String card = dis.readUTF();64 double money = bs.getCardBalance(card);65 dos.writeDouble(money);66 }67 }
В какой строке происходит прием соединения клиента (класс 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 }
Класс 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 }
Класс DatagramPacket из пакета java.net:
Класс DatagramSocket из пакета java.net:
Использование UDP может быть оправданно в том случае, если:
Какие из перечисленных примеров являются примерами распределенных систем:
Разрабатываемая вами информационная система распределенная, если:
Мобильные агенты:

Характеристики ответов (шпаргалок) к КР

Семестр
Просмотров
0
Качество
Идеальное компьютерное
Количество вопросов
Картинка-подпись
Гарантия сдачи без лишних хлопот! ✅🎓 Ответы на тесты по любым дисциплинам, базы вопросов, работы и услуги для Синергии, МЭИ и других вузов – всё уже готово! 🚀 🎯📚 Гарантия качества – или возврат денег! 💰✅

Комментарии

Нет комментариев
Стань первым, кто что-нибудь напишет!
Поделитесь ссылкой:
Цена: 490 390 руб.
Расширенная гарантия +3 недели гарантии, +10% цены
Рейтинг автора
4,99 из 5
Поделитесь ссылкой:
Сопутствующие материалы

Подобрали для Вас услуги

Вы можете использовать полученные ответы для подготовки к экзамену в учебном заведении и других целях, не нарушающих законодательство РФ и устав Вашего учебного заведения.
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7073
Авторов
на СтудИзбе
257
Средний доход
с одного платного файла
Обучение Подробнее