Сертификат "Построение распределенных систем на Java"
  • Сертификат "Построение распределенных систем на Java"
  • Сертификат "Построение распределенных систем на Java"
Сертификат "Построение распределенных систем на Java"
  • Сертификат "Построение распределенных систем на Java"
  • Сертификат "Построение распределенных систем на Java"

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

700,00 руб.
В течение часа!
Экзамен "Построение распределенных систем на Java" для пользователей и системных администраторов.
Количество
Есть в наличии!

Форма сдачи теста: Экстерн
Количество вопросов: 30
Проходной балл: 90% и выше
Срок действия сертификата: неограничен

Сертификат появляется в профиле ресурса INTUIT, и Вы можете заказать его бумажную версию на сайте INTUIT.
12321 шт.
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

Информационные системы, выполненные в архитектуре "клиент-сервер"

широко используются, имеют самый разнообразный функционал
всегда являются приложениями, работающими с базой данных, требуют наличия в своем составе сервера СУБД
в настоящее время используются редко, только в специальных областях


Модель "клиент-сервер"

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


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

архитектура "клиент-сервер" является лучшей архитектурой, для создания распределенной системы
архитектура "клиент-сервер" на текущий момент является морально-устаревшей и не должна выбираться в качестве модели при построении распределенных систем
архитектура "клиент-сервер" является одной из возможных моделей построения распределенных систем, обладает как достоинствами, так и недостатками, что позволяет рекомендовать выбирать эту архитектуру в качестве базовой, для распределенных систем определенных классов


К какому из перечисленных типов блока PL/SQL можно отнести триггер Oracle Forms?

анонимный
именованный
нет правильного ответа


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

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


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

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


Модель сервиса

может применяться для балансировки нагрузки между несколькими серверами
обладает исключительными преимуществами перед остальными возможными моделями построения распределенного приложения
может использоваться в качестве средства повышения надежности системы в целом
часто используется в ситуации, когда каждый запрос клиента не зависит от предыдущих запросов и нет необходимости в организации клиентской сессии 
Какие из следующих утверждений являются верными:
использование proxy всегда приводит к увеличению количества передаваемых данных между компонентами системы
за счет использования proxy может быть обеспечена балансировка нагрузки между серверами
использование proxy снижает общую производительность системы


Использование proxy:

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


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

единственной причиной применения proxy является отсутствие канала передачи данных необходимой пропускной способности между клиентами и серверами распределенной системы
модель подключения через proxy используется только для организации доступа пользователей в сеть Internet из локальной сети, других применений этой модели не существует
применение proxy всегда оправданно, поскольку снижает нагрузку на сервера системы, за счет того, что при повторном запросе клиента ему всегда могут быть предоставлены данные, имеющиеся в кэше proxy


Выберите правильное утверждение

процедура в отличие от функции может принимать OUT переменные
процедура в отличие от функции может возвращать значение с помощью фразы RETURN
Нет правильного утверждения
процедура в отличие от функции может принимать IN переменные 
Модель, при которой сервер инициирует соединение:
часто используется в ситуации, когда клиент и сервер связаны каналом передачи данных недостаточной пропускной способности
используется для того, чтобы снизить нагрузку на сервер
часто используется в ситуации, когда основной задачей клиентов является реакция на сообщения, посылаемые другими клиентами системы


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

если в распределенном приложении начало сеанса взаимодействия между клиентом и сервером инициируется сервером, такое приложение является неправильно спроектированным и требует перепроектирования
модель, при которой соединение инициирует сервер, часто используется в случае, если клиенты имеют необходимость обработки событий, поступающих из внешнего источника. При этом если источниками событий являются сами клиенты, то использовать данную модель категорически не рекомендуется
модель, при которой соединение инициирует сервер, часто используется в случае, если клиенты имеют необходимость обработки событий, поступающих из внешнего источника


Какой из перечисленных типов данных служит для хранения больших бинарных объектов за пределами Базы Данных?

VARCHAR2
BFILE
LOB
BLOB


Мобильные агенты:

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


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

использование мобильных агентов потенциально способно привести к проблемам с безопасностью, поскольку предполагает выполнение полученного от сервера кода
использование мобильных агентов возможно только в том случае, если они написаны на языке программирования Java
использование мобильных агентов позволяет переложить часть вычислительной нагрузки с сервера на клиента


Использование мобильных агентов оправданно:

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


Какое из перечисленных объявлений переменной вызовет ошибку компиляции?

variable VARCHAR2:=’UKRAINE’;
Born DATE default sysdate;
Select varchar(20);
variable VARCHAR2(2)=””;
variable CONSTANT NUMBER;


Использование тонких клиентов может быть оправданно в том случае, если:

клиенты работают под управлением различных операционных систем, на различных аппаратных платформах
канал передачи данных между клиентом и сервером обладает недостаточной пропускной способностью
клиент обладает незначительной вычислительной мощностью


Тонкие клиенты:

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


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

единственная область применения тонкого клиента - клиентские устройства с недостаточной вычислительной мощностью
тонкие клиенты могут быть использованы в том случае, если мощность клиентских устройств недостаточна. Также использование архитектуры тонких клиентов может упростить процедуры развертывания и поддержки приложения
тонкие клиенты - экзотическая технология, редко применяемая на практике


Какая из перечисленных функций копирует значение в указанный элемент?

COPY
COMPARE
NAME_IN
PASTE


Использование P2P может быть оправданно в том случае, если:

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


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

P2P - экзотическая технология, редко применяемая на практике
P2P - самая простая из имеющихся в настоящее время архитектур распределенных приложений. Создание распределенной системы с использованием этой архитектуры занимает гораздо меньше времени, чем при использовании какой-либо другой
P2P - наиболее часто используемая в настоящее время архитектура создания распределенных систем. Все современные бизнес-приложения выполнены с использованием этой архитектуры


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

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


Какова область действия системной переменной?

форма
элемент
блок данных


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

разработка распределенной системы как правило более сложная задача, чем разработка монолитной системы
распределенная система всегда будет работать быстрее и надежнее монолитной системы
разработка распределенных систем настолько сложная задача, что под силу только крупнейшим IT-компаниям


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

распределенные системы занимают узкоспециальную нишу, в настоящее время используются редко, только в специальных областях
все вновь создаваемые системы будут распределенными, необходимость в создании и поддержке монолитных систем отпала окончательно
в настоящее время существует большое количество информационных систем, которые являются распределенными


Разрабатываемая вами информационная система распределенная, если:

при разработке используются технологии Java или .Net
команда, которая разрабатывает систему, территориально распределена по нескольким городам
планируется, что разрабатываемая система должна быть мультиплатформенной
использование разрабатываемой системы предполагает функционирование ее компонентов на различных узлах


Для какой системной переменной можно устанавливать значение?

SYSTEM.CURSOR_RECORD
SYSTEM.BLOCK_STATUS
SYSTEM.SUPPRESS_WORKING
SYSTEM.CURRENT_DATE


Открытость, применительно к распределенным системам означает:

отсутствие шифрования передаваемых данных
предоставление конечному пользователю исходных кодов системы
использование при разработке системы открытых стандартов и наличие только документирование интерфейсов


Какие из перечисленных примеров не являются примерами распределенных систем:

инструментальная среда программирования Eclipse
несколько инструментальных сред программирования, расположенных на разных компьютерах
несколько инструментальных сред программирования, расположенных на разных компьютерах, взаимодействующих с системой контроля версий


Какие из перечисленных примеров являются примерами распределенных систем:

отдельный браузер Internet Explorer
система, включающая в себя браузер и веб-сервер
текстовый редактор notepad
несколько текстовых редакторов notepad, расположенных на нескольких компьютерах


В каком случае цикл LOOP-LOOP END может быть бесконечным?

если не указана фраза BREAK
если не указана фраза STOP
если не указана фраза EXIT
если не указана фраза RAISE LOOP FAILURE


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

единственный способ написать гетерогенное распределенной приложение - написать его на Java
сложность разработки гетерогенной системы можно снизить за счет использования одной из существующих технологий "промежуточного слоя" (middleware)
одним из мотивов создания гетерогенных распределенных систем является то, что разные (по комплектации, вычислительной мощности и т.д.) узлы лучше решают разные задачи. Можно развертывать компоненты системы на тех узлах, которые наиболее приспособлены для их выполнения


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

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


Следующие технологии могут использоваться для создания распределенных приложений:

Java
MPI
.Net


Использование UDP может быть оправданно в том случае, если:

прикладной протокол самостоятельно отслеживает потерю пакетов
прикладной протокол не является ориентированным на соединение
сеть, в которой функционирует приложение, имеет сложную структуру, с множеством территориально разнесенных сегментов, объединенных маршрутизаторами. Коммуникации сильно нагружены потоками данных


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

для функционирования UDP необходимо, чтобы каждый узел сети имел уникальный сетевой адрес
порт в UDP используется для идентификатора процесса - получателя пакета
UDP не является надежным протоколом передачи данных. Пакеты UDP могут теряться


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

каждый пакет данных, отправляемый с помощью реализации UDP в java.net должен в явном виде содержать в себе адрес узла-получателя
UDP использует понятие сетевого адреса, чтобы идентифицировать узлы получателя и отправителя, но не использует понятие порта, для идентификации принимающего процесса
UDP является надежным протоколом передачи данных, обеспечивающим повторную передачу пакета в случае его потери


Класс DatagramSocket из пакета java.net:

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


Класс DatagramSocket из пакета java.net:

является классом, экземпляр которого создается и на клиенте и на сервере, в случае, если при создании не был указан порт - он выбирается автоматически
является классом, экземпляр которого создается и на клиенте и на сервере, при создании требует указать номер порта
при создании требует указать IP-адрес клиента, позволяет передавать пакеты только клиенту, чей IP-адрес был указан при его создании


Класс DatagramSocket из пакета java.net:

является классом, экземпляр которого создается и на клиенте и на сервере, при создании может быть указан порт
является классом, экземпляр которого создается и на клиенте и на сервере, при создании требует указать: на сервере - IP-адрес клиента, на клиенте - IP-адрес сервера
является классом, экземпляр которого создается только на сервере. При создании требует указать IP-адрес клиента


Класс DatagramPacket из пакета java.net:

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


Класс DatagramPacket из пакета java.net:

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


Класс DatagramPacket из пакета java.net:

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


Протокол TCP:

является ориентированным на соединение. Соединение является соединением типа "точка-точка" и позволяет передавать данные между двумя узлами
не является надежным протоколом передачи данных. Пакеты TCP могут теряться, либо приходить в неправильном порядке. Прикладной программист должен учитывать эти особенности
TCP использует понятие сетевого адреса, чтобы идентифицировать узлы получателя и отправителя и понятие порта, для идентификации принимающего процесса


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

порт в TCP используется для идентификатора процесса - получателя пакета
для функционирования TCP необходимо, чтобы каждый узел сети имел уникальный сетевой адрес
TCP не является надежным протоколом передачи данных. Пакеты TCP могут теряться


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

TCP использует понятие сетевого адреса, чтобы идентифицировать узлы получателя и отправителя, но не использует понятие порта, для идентификации принимающего процесса
TCP является надежным протоколом передачи данных, обеспечивающим повторную передачу пакета в случае его потери
с точки зрения прикладного программиста, реализация протокола TCP, предлагаемая java.net, организует передачу данных в виде пакетов данных, разбиение на которые и контроль за прохождением которых программист осуществляет самостоятельно


Класс ServerSocket из пакета java.net:

один экземпляр класса может быть использован для установки соединения с одним клиентом
при создании не устанавливает никаких соединений, соединения устанавливаются позднее, при получении входящего соединения от клиента
при создании устанавливает соединение с клиентом. IP-адрес клиента передается в конструкторе


Класс ServerSocket из пакета java.net:

после создания, посредством вызова метода connect, устанавливает соединение с клиентом. IP-адрес клиента передается в метод connect в качестве параметра
параметр порт может быть передан в конструктор класса
экземпляр этого класса никогда не создается, класс имеет статические методы для установки соединения с клиентом


Класс ServerSocket из пакета java.net:

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


Класс Socket из пакета java.net:

после создания и установки соединения, может быть использован для передачи данных нескольким узлам
используется только на стороне клиента, на сервере используется серверный аналог - ServerSocket
позволяет выполнять однонаправленные обмены от клиента к серверу. Для выполнения двунаправленных обменов необходимо создать два экземпляра класса


Класс Socket из пакета java.net:

является представлением одного из концов соединения типа "точка-точка". Предоставляет методы, позволяющие представить сетевой обмен в виде операций ввода/вывода в соответствующие потоки
используется как на стороне клиента, так и на стороне сервера
один экземпляр класса может быть использован для установки соединения с одним удаленным узлом


Класс Socket из пакета java.net:

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


Класс BillingService допускает одновременное подключение и передачу данных для какого числа клиентов:

2
1, одновременная передача данных несколькими клиентами не допускается
нескольких, точное число зависит от системных настроек и количества свободных ресурсов узла


Класс BillingClientService унаследован от класса Thread, потому что:

все классы, работающие с пакетом java.net должны быть унаследованы от класса Thread
класс работает с потоками ввода/вывода (DataInputStream, DataOutputStream), поэтому должен быть унаследован от Thread
класс представляет собой цикл чтения данных от клиента и их обработки, для того чтобы была возможность одновременно обрабатывать данные от нескольких клиентов, класс унаследован от Thread


Протокол обмена данными между клиентом и сервером, предложенный в первой части лекции обладает следующими недостатками:

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


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

объявить публичный класс, указав что он наследует от OutputStream
объявить публичный класс, указав, что он реализует интерфейс Serializable
объявить публичный класс, указав что он наследует от InputStream


Класс, объявленный как реализующий интерфейс Serializable, обязательно должен удовлетворять следующим условиям:

иметь только поля, не иметь методов
иметь единственный конструктор, не принимающий аргументов
иметь только поля системных типов данных. Поля пользовательских типов данных - не допускаются


При передаче экземпляров CardOperation по сети, передаются:

копии объектов, после передачи данных они могут быть независимо изменены на клиенте и сервере
ссылка на объект, после изменения которой на сервере, меняется объект на клиенте
сам объект непосредственно. После передачи он перестает существовать на клиенте и доступен только на сервере


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

механизм сериализации позволяет сохранить состояние метода объекта в процессе его работы таким образом, что после восстановления, метод продолжит свою работу с того момента, на котором он был остановлен
механизм сериализации сохраняет лишь значение полей объекта, но не сохраняет состояния его методов в процессе их выполнения
механизм сериализации использует снимки памяти, поэтому не может быть использован для переноса объектов между узлами разной аппаратной архитектуры


При передаче объектов, с использованием ObjectOutputStream/ObjectInputStream:

после создания потока ввода/вывода по нему можно передавать объекты разных классов
после создания потока по нему можно передавать только объекты одного класса, в случае, если необходимо передавать объекты нескольких классов, необходимо создавать несколько экземпляров потоков ввода/вывода
после создания потока ввода/вывода по нему можно передавать объекты разных классов, однако объекты одного класса должны быть явно отделены от объектов другого класса специальным разделителем


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

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


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

все объекты, передаваемые по сети с помощью механизме сериализации, должны принадлежать классам, реализующим интерфейс Serializable
для того чтобы передать несколько объектов одного типа по сети, можно создать из этих объектов массив и передать его
класс, реализующий интерфейс Serializable, обязан реализовать метод saveObject этого интерфейса


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

Java RMI может использоваться только в том случае, если взаимодействующие компоненты выполняются на узлах с одинаковой аппаратной платформой
Java RMI может быть использована только в том случае, если все взаимодействующие компоненты системы разработаны с использованием Java
Java RMI является универсальной технологией, она не накладывает никаких ограничений на технологии разработки взаимодействующих компонентов


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

Java RMI при передаче в качестве параметров пользовательских объектов, для их передачи по сети использует механизм сериализации Java
для того, чтобы программа на Java стала программой, использующей Java RMI, ее необходимо откомпилировать с особым ключом компиляции. Никаких дополнительных действий - не требуется
Java RMI не может быть напрямую использована в том случае, если необходимо связать компоненты, выполненные не на Java


Java RMI может быть использована только в том случае, если:

все компоненты системы расположены на одном узле
все взаимодействующие компоненты распределенной системы выполнены на Java
между компонентами системы передаются данные только системных, встроенных типов, передача с помощью Java RMI пользовательских типов данных невозможна


Определение удаленного интерфейса RMIExample должно выглядеть следующим образом:

public interface RMIExample implements Remote
public interface RMIExample extends Remote
public interface RMIExample extends RMI.


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

в удаленном интерфейсе, наследующим от java.rmi.Remote, определяются те методы объекта, которые могут быть вызваны удаленно
в удаленном интерфейсе, наследующим от java.rmi.Remote, не должно быть определено ни одного метода. Те методы, которые могут быть вызваны удаленно, объект самостоятельно регистрирует в системе, после своего создания
в удаленном интерфейсе, наследующим от java.rmi.Remote, должны быть определены все методы объекта, как те, которые могут быть вызваны удаленно, так и остальные


Класс, методы экземпляра которого могут вызываться удаленно через Java RMI должен:

наследовать от класса Thread
реализовывать интерфейс, который наследует от интерфейса java.rmi.Remote
реализовывать интерфейс Serializable


Утилита rmic:

формирует описание удаленного интерфейса
требует для своей работы исходного кода для класса, реализующего удаленный интерфейс
требует для своей работы исходного кода для определения удаленного интерфейса


В классе BillingServiceImpl для удаленного вызова посредством Java RMI доступны следующие методы:

addNewCard
getCardBalance
конструктор


Класс BillingServiceImpl:

реализовывает методы, определенные в удаленном интерфейсе BillingService
наследует от класса UnicastRemoteObject, что позволяет передавать экземпляры BillingServiceImpl по сети, используя механизм сериализации
является классом, методы экземпляра которого могут быть вызваны удаленно, посредством Java RMI


При вызове метода addNewCard, экземпляр Card передается на сервер как:

копия объекта, после передачи данных сервером, объекты могут быть независимо изменены на клиенте и сервере
ссылка на объект, после изменения которой на сервере, меняется объект на клиенте
сам объект непосредственно. После передачи он перестает существовать на клиенте и доступен только на сервере


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

определить класс, используемый в качестве типа для передаваемого параметра, как реализующий интерфейс Serializable
определить класс, используемый в качестве типа для передаваемого параметра, как наследующий от UnicastRemoteObject
определить класс, используемый в качестве типа для передаваемого параметра, как реализующий интерфейс Remote


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

в качестве типа аргумента для метода, могущего быть вызванным удаленно посредством Java RMI, могут выступать только классы, конструктор которых не имеет передаваемых в него аргументов
в качестве типа аргумента для метода, могущего быть вызванным удаленно посредством Java RMI, могут выступать только классы, помеченные как реализующие интерфейс Serializable
в качестве типа аргумента для метода, могущего быть вызванным удаленно посредством Java RMI, могут выступать только классы, содержащие поля и не содержащие методы


Почему в коде BillingServiceImpl отсутствуют операторы чтения данных из сети?

класс BillingServiceImpl должен быть дополнен операторами чтения из сети
чтение осуществляется в строке 31
чтение из сети осуществляется в коде классов, расположенных выше по иерархии наследования


Возвращаемым значением для метода, вызываемого удаленно, могут быть:

значение любого пользовательского типа данных, без ограничения на возможность его сериализации
значения системных типов данных
значение любого пользовательского типа данных, в том случае, если этот тип - сериализуем


Для запуска системы из клиента и сервера (BillingServiceImpl и BillingClient), необходим запуск:

rmiregistry, интерпретатора Java с запущенным BillingClient. Запуск BillingServiceImpl произойдет автоматически при первом запросе клиента
интерпретатора Java с запущенным BillingServiceImpl, интерпретатора Java с запущенным BillingClient, запуск rmiregistry обязательным не является
rmiregistry, интерпретатора Java с запущенным BillingServiceImpl, интерпретатора Java с запущенным BillingClient


CORBA это:

часть технологии Java, которая может быть использована для создания распределенных систем, выполненных исключительно с использованием технологии Java
коммерческий продукт, разрабатываемый компанией Sun
стандарт, определяющий различные аспекты взаимодействия компонентов распределенных систем и общие сервисы, существует множество реализаций этого стандарта


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

технология CORBA не накладывают ограничения на язык программирования, используемый для разработки компонентов распределенной системы, однако требуется, чтобы он был объектно-ориентированный
технология CORBA не накладывают ограничения на язык программирования, используемый для разработки компонентов распределенной системы, не требуется также, чтобы он был объектно-ориентированный
технология CORBA могут быть использованы только в том случае, если компоненты распределенной системы написаны на Java


Класс BillingServiceServer:

принимает удаленные вызовы от клиента и перенаправляет их BillingServiceImpl
является классом, экземпляр которого принимает удаленные вызовы
создает экземпляр класса BillingServiceImpl, принимающего удаленные вызовы, и регистрирует его в сервисе имен


IDL это:

сервис именования CORBA, разрешающий имя сервиса в объектную ссылку
инструментальное средство, преобразующее байт-код Java к виду, который позволяет использовать CORBA для вызова удаленных методов
специальный язык, который позволяет описывать интерфейсы компонентов, взаимодействующих посредством механизмов CORBA


Файл, с IDL-описанием может содержать:

описание реализации компонентов
описание интерфейсов компонентов
описание типов данных


Утилита idlj:

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


Класс BillingServiceImpl:

является классом, методы экземпляра которого могут быть вызваны удаленно
наследует от класса BillingServicePOA, который был сформирован автоматически утилитой idlj из idl-описания
реализовывает методы, определенные для интерфейса BillingService в файле idl-описания


Объектная ссылка в CORBA это:

указатель на объект в локальной памяти сервера
указатель на объект в локальной памяти клиента
специальный описатель, который позволяет брокеру запросов установить местонахождение удаленного объекта и выполнить вызов его метода


В классе BillingServiceImpl для удаленного вызова доступны следующие методы:
addNewCard
конструктор
getCardBalance


Для запуска системы из клиента и сервера (BillingServiceServer и BillingClient), необходим запуск:

tnameserv, интерпретатора Java с запущенным BillingServiceServer, интерпретатора Java с запущенным BillingClient
tnameserv, интерпретатора Java с запущенным BillingClient. Запуск BillingServiceImpl произойдет автоматически при первом запросе клиента
интерпретатора Java с запущенным BillingServiceImpl, интерпретатора Java с запущенным BillingClient, запуск tnameserv обязательным не является


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

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


Сервис именования CORBA это:

сервис, обеспечивающий получение объектной ссылки по имени объекта
сервис, генерирующий уникальные имена для объектов по задаваемому пользователем правилу
сервис именования не входит в спецификацию CORBA и является расширением, реализуемым компанией Sun


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

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


Для определения интерфейса удаленного объекта, в IDL используется ключевое слово:

module,
object
interface


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

раз зарегистрированный под определенным именем в сервисе именований объект, не может быть заменен на другой объект (под этим же именем)
не существует возможности зарегистрировать один и тот же объект в сервисе именований под разными именами
раз зарегистрированный под определенным именем в сервисе именов?
Внимание !
Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier!

В какой строке класса BillingServiceServer (листинг программы) создается объект, реализующий интерфейс BillingService, определенный в BillingService.idl:

26
24
14


Класс BillingServiceServer, это:

серверный скелетон, использующийся для приема параметров от клиента и передачи их серверному классу
реализация интерфейса BillingService, определенного в BillingService.idl
класс, создающий объект, реализующий интерфейс BillingService, и регистрирующий его в сервисе имен


Для создания и компиляции примера используются утилиты:

только компилятор javac
компилятор javac и утилита idlj
компилятор javac, утилита idlj и tnameserv


Запуск приложения осуществляется в следующем порядке:

запуск утилиты servertool, запуск сервиса orbd, запуск сервера, запуск клиента
запуск сервиса orbd, регистрация с помощью утилиты servertool сервера, запуск клиента
запуск сервиса tnameserv, запуск утилиты servertool, запуск клиента, запуск сервера


Для запуска примера потребуются следующие утилиты (при использовании реализации CORBA, включенной в пакет JDK):

интерпретатор java, orbd, servertool
интерпретатор java, tnameserv, servertool
только интерпретатор java


Как BillingServiceClient находит сервис имен:

BillingServiceClient не использует сервис имен
сетевой адрес узла, на котором запущен сервис имен и его порт указывается в командной строке при вызове клиента
опрашивает сеть с помощью широковещательных пакетов, ждет ответа от сервиса имен


Класс BillingServiceServer запускается на исполнение:

непосредственно пользователем, с помощью интерпретатор java
автоматически сервисом orbd, класс доден быть предварительно в сервисе зарегистрирован
непосредственно пользователем, с помощью интерпретатор java, однако предварительно класс должен быть зарегистрирован с помощью утилиты servertool


Создание класс BillingServiceServer с параметром при регистрации LifespanPolicyValue.PERSISTENT обеспечивает:

автоматическое сохранение состояния класса между запусками orbd
автоматическое восстановление состояния класса после фатальной ошибки
возможность регистрации класса в orbd и автоматическое создание экземпляра класса


При использовании Dynamic Invocation Interface (DII) на стороне клиента, использование IDL для автоматического построения классов на стороне сервера:

является обязательным
не допускается
допускается, но не является обязательным


При использовании Dynamic Dynamic Skeleton Interface (DSI) на стороне сервера, использование IDL для автоматического построения классов на стороне клиента:

является обязательным
не допускается
допускается, но не является обязательным


Dynamic Invocation Interface (DII) и Dynamic Dynamic Skeleton Interface (DSI) используются:

DSI - на стороне, осуществляющей вызов удаленного метода (клиенте)
DSI - на стороне, осуществляющей реализацию удаленного метода (сервере)
DII - на стороне, осуществляющей реализацию удаленного метода (сервере)
DII - на стороне, осуществляющей вызов удаленного метода (клиенте)


При использовании Dynamic Invocation Interface (DII) и Dynamic Dynamic Skeleton Interface (DSI) на классы накладываются следующие ограничения по наследованию:

класс, использующий DII должен наследовать от класса DynamicInvocation, класс, использующий DSI должен наследовать от класса DynamicSkeleton
класс, использующий DII должен наследовать от класса DynamicImplementation, на класс, использующий DSI никаких ограничений по наследованию - не накладывается
никаких ограничений по наследованию в обоих случаях - не накладывается
на класс, использующий DII никаких ограничений по наследованию - не накладывается, класс, использующий DSI должен наследовать от класса DynamicImplementation


Класс, использующий Dynamic Invocation Interface (DII) должен наследовать от:

класса DynamicImplementation
нет никаких ограничений - класс может наследовать от любого класса, или не наследовать ни от одного класса
класса DynamicInvocation


Класс, использующий Dynamic Dynamic Skeleton Interface (DSI) должен наследовать от:

нет никаких ограничений - класс может наследовать от любого класса, или не наследовать ни от одного класса
класса DynamicSkeleton
класса DynamicImplementation


Класс, использующий Dynamic Dynamic Skeleton Interface (DSI), в методе invoke:

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


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

класс, использующий DSI, не может в процессе работы добавить новые или удалить методы, удаленные вызовы которых он может обрабатывать, но может изменить сигнатуры существующих
класс, использующий DSI, может в процессе работы добавить новые методы, удаленные вызовы которых он может обрабатывать, но не может уменьшить их количество или изменить сигнатуры существующих
класс, использующий DSI, может в процессе работы изменить количество и сигнатуры методов, удаленные вызовы которых он может обрабатывать


При регистрации в сервисе имен класса, использующего DSI:

нет никаких особенностей
нужно следить за тем, чтобы в сервисе имен не оказались одновременно два класса, использующих DSI
необходимо использовать специализированное API регистрации


При регистрации в сервисе имен класса, использующего DII:

необходимо использовать специализированное API регистрации
нет никаких особенностей
нужно следить за тем, чтобы в сервисе имен не оказались одновременно два класса, использующих DII


При регистрации в сервисе имен класса, использующего DII:

необходимо использовать специализированное API регистрации
нужно следить за тем, чтобы в сервисе имен не оказались одновременно два класса, использующих DII
нет никаких особенностей


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

при компиляции класса, использующего DII, не используются классы, автоматически сгенерированные утилитой idlj
при использовании DII не существует способа передать в качестве параметра удаленного метода объектную ссылку
при использовании DII, клиент на этапе формирования удаленного вызова должен обладать информацией о сигнатуре вызываемого удаленного метода


При запуске приложения, использующего DSI:

необходимо предварительно запустить сервис dsiserv
нет никаких особенностей
необходимо использовать специализированную версию сервиса имен (если сервис имен необходим) - tnameservx


При запуске приложения, использующего DII:

необходимо предварительно запустить сервис diiserv
нет никаких особенностей
необходимо использовать специализированную версию сервиса имен (если сервис имен необходим) – tnameservx


При использовании DII, в случае, если сигнатура удаленного метода изменена, необходимо:

переписать ту часть клиентского приложения, которая отвечает за упаковку аргументов для изменившегося метода и перекомпилировать его.
только перекомпилировать клиентское приложение
перезапустить клиентское приложение, без перекомпиляции


В качестве транспортного протокола для передачи сообщений SOAP может использоваться:

только SMTP
только HTTP или FTP
только HTTP
любой протокол, с помощью которого можно передавать XML-сообщения


WSDL это:

формат сообщения, передаваемого между компонентами системы
протокол, позволяющий осуществлять вызов методов удаленных объектов
описание Web-сервиса, содержащее описание всех методов, которые Web-сервис может исполнять


SOAP это:

способ описания интерфейса удаленного объекта
один из сервисов, входящих в инфраструктуру Web-сервисов
протокол, позволяющий осуществлять вызов методов удаленных объектов


Какие аннотации из пакета javax.jws минимально необходимы при "автоматическом" создании Web-сервиса, содержащего хотя бы один метод:

@WebService() и @WebMethod()
@WebService(), @WebMethod() и @Parameter
@Service() и @ServiceMethod()


Класс, который должен быть опубликован в качестве Web-сервиса должен быть помечен аннотацией:

@Service()
@WebService()
@PublicWebService()


Метод, предназначенный для публикации и удаленного вызова, помечается аннотацией:

@PublishedMethod()
@WebMethod()
@WebService()
@WebServiceMethod ()


WSDL-файл представляет собой:

XML-документ
бинарный файл, полученный путем сериализации класса, реализующего Web-сервис
HTTP-запрос


В WSDL-файле содержится:

описание процедуры сборки и инсталляции Web-сервиса
реализация методов Web-сервиса
сигнатуры методов Web-сервиса


WSDL-описание сервиса при использовании сервера приложений Sun Java System Application Server:

генерируется автоматически утилитой wsgen
генерируется автоматически при инсталляции сервиса в сервере приложений
должно быть сформировано разработчиком вручную


Утилита wsgen требует для своей работы:

исходный код класса, в котором определен Web-сервис а также WSDL описание Web-сервиса
скомпилированный класс, в котором определен Web-сервис
исходный код класса, в котором определен Web-сервис


Результатом работы утилиты wsgen является:

пакет jaxws, содержащий вспомогательные классы, в том числе - транспортные
инсталляция сервиса в сервере приложений
WSDL-описание сервиса


При использовании Sun Java System Application Server и набора скриптов из пакета The Java Web Services Tutorial подготовка модуля развертывания Web-сервиса:

asant deploy
asant create-war
asant start


При использовании Sun Java System Application Server и набора скриптов из пакета The Java Web Services Tutorial вызов утилиты wsgen должен быть осуществлен:

после вызова asant create-war, перед вызовом asant deploy
после вызова asant build, перед вызовом asant create-war
перед вызовом asant build
вызов утилиты wsgen осуществляется автоматически при выполнении asant build, явно вызывать wsgen - не нужно


При использовании Sun Java System Application Server и набора скриптов из пакета The Java Web Services Tutorial инсталляция Web-сервиса осуществляется командой:

asant install service
asant deploy
asant start


При использовании возможности тестирования Web-сервиса, предоставляемой Sun Java System Application Server пользователь имеет возможность:

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


При использовании возможности тестирования Web-сервиса, предоставляемой Sun Java System Application Server, после вызова метода отображается:

только SOAP-пакет, переданный Web-сервису
только SOAP-пакет, полученный от Web-сервиса
и SOAP-пакет, переданный Web-сервису и SOAP-пакет, полученный от Web-сервиса


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

Sun Java System Application Server предоставляет возможность выполнения в своей среде Web-сервисов
Sun Java System Application Server позволяет протестировать установленные в нем Web-сервисы, формируя специальные динамические страницы, позволяющие задать параметры для вызываемых методов Web-сервиса
Sun Java System Application Server предоставляет автоматически создает приложения для тестирования производительности установленных в нем Web-сервисов


Аннотация @WebServiceRef в классе HelloClient относится к:

переменной service
методу main
классу в целом


Как клиент HelloClient получает сетевой адрес и имя Web-сервиса, метод которого необходимо вызвать:

эти параметры указываются в командной строке при запуске клиента
эти параметры извлекаются из WSDL-файла, указанного в качестве параметра для аннотации @WebServiceRef
для вызова метода Web-сервиса клиенту не нужно знать сетевой адрес и имя Web-сервиса


Результатом работы утилиты wsimport является:

набор классов, представляющих собой реализацию Web-сервиса
класс, являющийся клиентским приложением для Web-сервиса
набор классов, облегчающих разработку клиентского приложения для доступа к Web-сервису


Утилита wsimport для своей работы требует:

исходный код класса, представляющего собой реализацию Web-сервиса
скомпилированный класс, представляющий собой реализацию Web-сервиса
адрес WSDL-файла, содержащего описание Web-сервиса


helloservice.endpoint.Hello представляет собой:

класс, представляющий собой клиентский прокси для Web-сервиса. Построен автоматически, утилитой wsimport
сервисный класс, предназначен для упаковки/распаковки передаваемых по сети сообщений
интерфейс, содержащий все методы Web-сервиса которые могут быть вызваны. Построен автоматически, утилитой wsimport


Компиляция класса HelloClient должна производиться в следующей последовательности:

запуск утилиты wsimport, затем запуск компилятора javac
запуск только wsimport, запуск компилятора javac - не нужен
запуск компилятора javac, затем запуск утилиты wsimport
запуск только компилятора javac, запуск wsimport - не нужен


helloservice.endpoint.HelloService представляет собой:

интерфейс, содержащий все методы Web-сервиса которые могут быть вызваны. Построен автоматически, утилитой wsimport
класс, представляющий собой клиентский прокси для Web-сервиса. Построен автоматически, утилитой wsimport
сервисный транспортный класс, предназначен для сериализации и последующей передачи по сети. Построен автоматически, утилитой wsimport


Транспортный класс Card в обязательном порядке должен:

быть объявлен как implements Serializable
быть помечен аннотацией @WebClass
быть помечен аннотацией @WebService


Сколько методов, доступных для удаленного вызова, содержит Web-сервис Billing:

3
4
5

Поля транспортных классов, которые предполагается передавать между компонентами, в обязательном порядке:

должны быть типов, объявленных как implements Serializable
должны быть системных типов
должны быть помечены аннотацией @WebParameter


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

на стороне клиента используются классы Card и CardOperation, сгенерированные утилитой wsimport из WSDL-описания, на стороне Web-сервиса - классы Card и CardOperation, сгенерированные утилитой wsgen
на стороне клиента используются классы Card и CardOperation, сгенерированные утилитой wsimport из WSDL-описания, на стороне Web-сервиса - классы Card и CardOperation, написанные разработчиком
транспортные классы Card и CardOperation, используются как на стороне клиента, так и на стороне Web-сервиса


При вызове метода toString() для экземпляра класса Card на стороне клиента (листинг программы):

вызовется метод toString(), определенный по умолчанию
вызовется метод toString(), созданный утилитой wsimport в классе Card
вызовется метод, определенный в строках 18-20 класса Card


Классы Card и CardOperation на стороне клиента:

автоматически сгенерированы утилитой wsimport, содержат только методы установки и чтения значений полей, не содержат никаких других методов, определенных разработчиком для этих классов на стороне сервера
автоматически сгенерированы утилитой wsimport, содержат как методы установки и чтения значений полей, так и методы, определенные разработчиком для этих классов на стороне сервера
ничем не отличаются от классов на стороне сервера, содержат все методы, определенные разработчиком для этих классов


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

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


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

при использовании JMS компонент не может отправить сообщение самому себе
при использовании JMS взаимодействие между компонентами может быть асинхронным
при использовании JMS компонент может оправить сообщение, которое получат несколько получателей


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

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


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

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


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

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


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

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


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

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


Аннотация @Resource(mappedName="jms/ConnectionFactory"):

создает в сервисе очередей новую очередь сообщений с именем jms/ConnectionFactory
извлекает ресурс с JNDI-именем jms/ConnectionFactory и связывает его с переменной, к которой относится аннотация
создает в сервисе очередей новый объект ConnectionFactory и помещает ссылку на него в JNDI


Аннотация @Resource(mappedName="jms/Queue"):

извлекает ресурс с JNDI-именем jms/Queue и связывает его с переменной, к которой относится аннотация
устанавливает соединение с очередью с именем jms/Queue
создает в сервисе очередей новый объект Queue и помещает ссылку на него в JNDI


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

23
24
22


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

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


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

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


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

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


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

17
класс ObjectListener не опрашивает очередь явно, при возникновении в очереди сообщения системой автоматически вызывается метод onMessage, в качестве параметра в который передается полученное сообщение
23


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

javac и wsimport
javac и jmsgen
только javac


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

appclient для BillingClient и appserver для BillingService
appclient для BillingClient и BillingService
appclient для BillingClient и deploy для BillingService


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

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

Вы можете обратится к нам напрямую, через:

skype По Skype: molodoyberkut
telegram По Telegram: @MolodoyBerkut
icq По ICQ: 657089516

Или через форму обратной связи на нашем сайте
Пока сочиняется...
4.png