Главная / Программирование /
Построение распределенных систем на Java / Тест 9
Построение распределенных систем на Java - тест 9
Упражнение 1:
Номер 1
При использовании Dynamic Invocation Interface (DII)
на стороне клиента, использование IDL
для автоматического построения классов на стороне сервера:
Ответ:
 (1) не допускается 
 (2) является обязательным 
 (3) допускается, но не является обязательным 
Номер 2
При использовании Dynamic Dynamic Skeleton Interface (DSI)
на стороне сервера, использование IDL
для автоматического построения классов на стороне клиента:
Ответ:
 (1) не допускается 
 (2) является обязательным 
 (3) допускается, но не является обязательным 
Номер 3
Dynamic Invocation Interface (DII)
и Dynamic Dynamic Skeleton Interface (DSI)
используются:
Ответ:
 (1) DII
- на стороне, осуществляющей вызов удаленного метода (клиенте) 
 (2) DSI
- на стороне, осуществляющей вызов удаленного метода (клиенте) 
 (3) DSI
- на стороне, осуществляющей реализацию удаленного метода (сервере) 
 (4) DII
- на стороне, осуществляющей реализацию удаленного метода (сервере) 
Упражнение 2:
Номер 1
Класс, использующий Dynamic Invocation Interface (DII)
должен наследовать от:
Ответ:
 (1) класса DynamicImplementation
 
 (2) класса DynamicInvocation
 
 (3) нет никаких ограничений - класс может наследовать от любого класса, или не наследовать ни от одного класса 
Номер 2
Класс, использующий Dynamic Dynamic Skeleton Interface (DSI)
должен наследовать от:
Ответ:
 (1) класса DynamicImplementation
 
 (2) класса DynamicSkeleton
 
 (3) нет никаких ограничений - класс может наследовать от любого класса, или не наследовать ни от одного класса 
Номер 3
При использовании Dynamic Invocation Interface (DII)
и Dynamic Dynamic Skeleton Interface (DSI)
на классы накладываются следующие ограничения по наследованию:
Ответ:
 (1) класс, использующий DII
должен наследовать от класса DynamicInvocation
, класс, использующий DSI
должен наследовать от класса DynamicSkeleton
 
 (2) класс, использующий DII
должен наследовать от класса DynamicImplementation
, на класс, использующий DSI
никаких ограничений по наследованию - не накладывается 
 (3) на класс, использующий DII
никаких ограничений по наследованию - не накладывается, класс, использующий DSI
должен наследовать от класса DynamicImplementation
 
 (4) никаких ограничений по наследованию в обоих случаях - не накладывается 
Упражнение 3:
Номер 1
Какие из следующих утверждений являются верными:
Ответ:
 (1) класс, использующий DSI
, может в процессе работы изменить количество и сигнатуры методов, удаленные вызовы которых он может обрабатывать 
 (2) класс, использующий DSI
, может в процессе работы добавить новые методы, удаленные вызовы которых он может обрабатывать, но не может уменьшить их количество или изменить сигнатуры существующих 
 (3) класс, использующий DSI
, не может в процессе работы добавить новые или удалить методы, удаленные вызовы которых он может обрабатывать, но может изменить сигнатуры существующих 
Номер 2
Класс, использующий Dynamic Dynamic Skeleton Interface (DSI),
в методе invoke
:
Ответ:
 (1) регистрирует в сервисе имен сигнатуры методов, которые для данного класса могут быть вызваны удаленно 
 (2) принимает и обрабатывает запрос клиента, содержащий имя вызываемого метода и передаваемые аргументы 
 (3) вызывает удаленные методы сервера 
Номер 3
Класс, использующий Dynamic Dynamic Skeleton Interface (DSI)
, наследуя от класса DynamicImplementation
должен реализовать метод(ы):
Ответ:
 (1) invoke
 
 (2) read
и write
 
 (3) serverRequest
 
Упражнение 4:
Номер 1
Какие из следующих утверждений являются верными:
Ответ:
 (1) в сервисе имен в каждый момент времени только один зарегистрированный объект может использовать DSI
 
 (2) метод invoke
(унаследованный от класса DynamicImplementation
) не может быть объявлен как synchronized
 
 (3) при компиляции класса, использующего DSI
, не используются классы, автоматически сгенерированные утилитой idlj
 
Номер 2
При регистрации в сервисе имен класса, использующего DSI
:
Ответ:
 (1) нет никаких особенностей 
 (2) нужно следить за тем, чтобы в сервисе имен не оказались одновременно два класса, использующих DSI
 
 (3) необходимо использовать специализированное API
регистрации 
Номер 3
При регистрации в сервисе имен класса, использующего DII
:
Ответ:
 (1) нет никаких особенностей 
 (2) нужно следить за тем, чтобы в сервисе имен не оказались одновременно два класса, использующих DII
 
 (3) необходимо использовать специализированное API
регистрации 
Упражнение 5:
Номер 1
Какие из следующих утверждений являются верными:
Ответ:
 (1) при использовании DII
, клиент на этапе формирования удаленного вызова должен обладать информацией о сигнатуре вызываемого удаленного метода 
 (2) при использовании DII
не существует способа передать в качестве параметра удаленного метода объектную ссылку 
 (3) при компиляции класса, использующего DII
, не используются классы, автоматически сгенерированные утилитой idlj
 
Номер 2
При регистрации в сервисе имен класса, использующего DII
:
Ответ:
 (1) нет никаких особенностей 
 (2) нужно следить за тем, чтобы в сервисе имен не оказались одновременно два класса, использующих DII
 
 (3) необходимо использовать специализированное API
регистрации 
Номер 3
При регистрации в сервисе имен класса, использующего DSI
:
Ответ:
 (1) нет никаких особенностей 
 (2) нужно следить за тем, чтобы в сервисе имен не оказались одновременно два класса, использующих DSI
 
 (3) необходимо использовать специализированное API
регистрации 
Упражнение 6:
Номер 1
При запуске приложения, использующего DII
:
Ответ:
 (1) нет никаких особенностей 
 (2) необходимо предварительно запустить сервис diiserv
 
 (3) необходимо использовать специализированную версию сервиса имен (если сервис имен необходим) - tnameservx
 
Номер 2
При запуске приложения, использующего DSI
:
Ответ:
 (1) нет никаких особенностей 
 (2) необходимо предварительно запустить сервис dsiserv
 
 (3) необходимо использовать специализированную версию сервиса имен (если сервис имен необходим) - tnameservx
 
Номер 3
При использовании DII
, в случае, если сигнатура удаленного метода изменена, необходимо:
Ответ:
 (1) только перекомпилировать клиентское приложение 
 (2) перезапустить клиентское приложение, без перекомпиляции 
 (3) переписать ту часть клиентского приложения, которая отвечает за упаковку аргументов для изменившегося метода и перекомпилировать его.