игра брюс 2048
Главная / Программирование / Построение распределенных систем на Java / Тест 13

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

Упражнение 1:
Номер 1
Какие из следующих утверждений являются верными:

Ответ:

 (1) использование JMS возможно только совместно с Sun Application Server 

 (2) использование JMS возможно совместно с любым JMS-провайдером, совместимым со спецификацией 

 (3) использование JMS возможно с любой службой очередей, причем никаких дополнительных интерфейсов и шлюзов - не требуется 


Номер 2
Какие из следующих утверждений являются верными:

Ответ:

 (1) при использовании JMS взаимодействие между компонентами может быть асинхронным 

 (2) при использовании JMS компонент может оправить сообщение, которое получат несколько получателей 

 (3) при использовании JMS компонент не может отправить сообщение самому себе 


Номер 3
Какие из следующих утверждений являются верными:

Ответ:

 (1) при использовании JMS отправитель и получатель сообщения на момент отправки сообщения должны быть оба запущены 

 (2) использование JMS подразумевает существование посредника (сервиса очередей) между отправителем и получателем сообщений 

 (3) отправка сообщений при использовании JMS осуществляется в асинхронном режиме 


Упражнение 2:
Номер 1
Какие из следующих утверждений являются верными:

Ответ:

 (1) JMS не поддерживает синхронную модель передачи сообщений - все сообщения передаются асинхронно 

 (2) JMS не поддерживает асинхронную модель передачи сообщений - все сообщения передаются синхронно 

 (3) JMS поддерживает как синхронную так и асинхронную модели передачи сообщений 


Номер 2
Какие из следующих утверждений являются верными:

Ответ:

 (1) при использовании модели взаимодействия типа "точка-точка" каждое сообщение может быть получено только один раз 

 (2) при использовании модели взаимодействия типа "точка-точка" к очереди сообщений могут последовательно получить доступ несколько клиентов 

 (3) при использовании модели взаимодействия типа "точка-точка" клиент явно опрашивает состояние очереди 


Номер 3
Какие из следующих утверждений являются верными:

Ответ:

 (1) при использовании модели взаимодействия типа издание-подписка сообщение, прочитанное одним клиентом, автоматически удаляется из очереди и не может быть прочитано другими клиентами 

 (2) при использовании модели взаимодействия типа издание-подписка клиенты уведомляются о том, что в очереди есть сообщение на тему, на которую они подписаны 

 (3) при использовании модели взаимодействия типа издание-подписка клиенты могут устанавливать долговременные подписки, позволяющие отсоединиться и позже снова подключиться и получать сообщения, поступившие во время отключения связи 


Упражнение 3:
Номер 1
Аннотация @Resource(mappedName="jms/ConnectionFactory"): 

Ответ:

 (1) создает в сервисе очередей новый объект ConnectionFactory и помещает ссылку на него в JNDI 

 (2) извлекает ресурс с JNDI-именем jms/ConnectionFactory и связывает его с переменной, к которой относится аннотация 

 (3) создает в сервисе очередей новую очередь сообщений с именем jms/ConnectionFactory 


Номер 2
Какие из следующих утверждений являются верными:

Ответ:

 (1) перед использованием аннотации вида @Resource(mappedName="jms/ConnectionFactory"), соответствующий объект ConnectionFactory должен быть создан 

 (2) аннотация вида @Resource(mappedName="jms/ConnectionFactory") относится к классу, реализующему прием сообщений из очереди с именем jms/ConnectionFactory 

 (3) аннотация вида @Resource(mappedName="jms/ConnectionFactory") должна относиться к переменной типа ConnectionFactory 


Номер 3
Аннотация @Resource(mappedName="jms/Queue"):

Ответ:

 (1) создает в сервисе очередей новый объект Queue и помещает ссылку на него в JNDI 

 (2) извлекает ресурс с JNDI-именем jms/Queue и связывает его с переменной, к которой относится аннотация 

 (3) устанавливает соединение с очередью с именем jms/Queue 


Упражнение 4:
Номер 1
Какие из следующих утверждений являются верными:

Ответ:

 (1) перед использованием аннотации вида @Resource(mappedName="jms/Queue"), соответствующий объект Queue должен быть создан 

 (2) аннотация вида @Resource(mappedName="jms/Queue") относится к классу, реализующему прием сообщений из очереди с именем jms/Queue 

 (3) аннотация вида @Resource(mappedName="jms/Queue") должна относиться к переменной типа Queue 


Номер 2
Соединение с JMS-провайдером в классе JMSClient осуществляется в строке (листинг программы):

Ответ:

 (1) 22 

 (2) 23 

 (3) 24 


Номер 3
Какие типы сообщений поддерживаются в JMS:

Ответ:

 (1) текстовые сообщения 

 (2) неинтерпретируемый поток байт 

 (3) тип сообщений для передачи сериализуемых объектов 


Упражнение 5:
Номер 1
Какие из следующих утверждений являются верными:

Ответ:

 (1) для использования сообщений типа ObjectMessage, необходимо чтобы передаваемые данные были сериализуемых типов 

 (2) для использования сообщений типа ObjectMessage, необходимо чтобы в классах, объекты которых передаются, все поля были объявлены как public 

 (3) для использования сообщений типа ObjectMessage, необходимо чтобы в классах, объекты которых передаются, не содержалось объявлений методов (только полей) 


Номер 2

В какой строчке кода осуществляется чтение сообщения клиента:

1 package com.asw.jms.ex1; 2 3 import javax.jms.*; 4 import javax.annotation.Resource; 5 import java.io.InputStreamReader; 6 import java.io.IOException; 7 import java.util.Hashtable; 8 import java.util.Enumeration; 9 10 public class BillingService { 11 @Resource(mappedName = "jms/ConnectionFactory") 12 private static ConnectionFactory connectionFactory; 13 @Resource(mappedName = "jms/Queue") 14 private static Queue queue; 15 16 Hashtable hash = new Hashtable(); 17 public void addNewCard(Card c) { 18 hash.put(c.cardNumber, c); 19 }; 20 21 public void performCardOperation(CardOperation co){ 22 Card c = (Card)hash.get(co.card); 23 if (c==null) return; 24 c.balance+=co.amount; 25 hash.put(co.card,c); 26 }; 27 28 public void printCards(){ 29 for(Enumeration e = hash.elements();e.hasMoreElements();) 30 System.out.println(e.nextElement()); 31 } 32 33 public static void main(String[] args) { 34 String destType = null; 35 Connection connection = null; 36 Session session = null; 37 Destination dest = (Destination) queue; 38 MessageConsumer consumer = null; 39 ObjectListener listener = null; 40 TextMessage message = null; 41 InputStreamReader inputStreamReader = null; 42 char answer = '\0'; 43 try { 44 connection = connectionFactory.createConnection(); 45 session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 46 consumer = session.createConsumer(dest); 47 listener = new ObjectListener(new BillingService()); 48 consumer.setMessageListener(listener); 49 connection.start(); 50 System.out.println( 51 "To end program, type Q or q, " + "then <return>"); 52 inputStreamReader = new InputStreamReader(System.in); 53 while (!((answer == 'q') || (answer == 'Q'))) { 54 try { 55 answer = (char) inputStreamReader.read(); 56 } catch (IOException e) { 57 System.err.println("I/O exception: " + e.toString()); 58 } 59 } 60 } catch (JMSException e) { 61 System.err.println("Exception occurred: " + e.toString()); 62 } finally { 63 if (connection != null) { 64 try { 65 connection.close(); 66 } catch (JMSException e) { 67 } 68 } 69 } 70 } 71 }

Ответ:

 (1) 49 

 (2) 52 

 (3) 53 

 (4) в этом классе чтение сообщений не осуществляется 


Упражнение 6:
Номер 1
В каком порядке должен осуществляться запуск примера с BillingClient и BillingService:

Ответ:

 (1) перед запуском BillingClient должен быть запущен Sun Application Server (либо любой другой JMS-провайдер), сначала запускается BillingClient, затем BillingService 

 (2) перед запуском BillingService должен быть запущен Sun Application Server (либо любой другой JMS-провайдер), сначала запускается BillingService, затем BillingClient 

 (3) сначала запускается BillingClient, затем, Sun Application Server и под его управлением - BillingService 


Номер 2
Какие утилиты, входящие в состав JDK, используются при компиляции BillingClient и BillingService:

Ответ:

 (1) только javac 

 (2) javac и wsimport 

 (3) javac и jmsgen 


Номер 3
С помощью каких утилит, входящих в состав Sun Application Server, осуществляется запуск BillingClient и BillingService:

Ответ:

 (1) appclient для BillingClient и appserver для BillingService 

 (2) appclient для BillingClient и BillingService 

 (3) appclient для BillingClient и deploy для BillingService 




Главная / Программирование / Построение распределенных систем на Java / Тест 13