Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ответы.doc
Скачиваний:
35
Добавлен:
27.10.2018
Размер:
21.59 Mб
Скачать

33. Soap

Web-службы обмениваются информацией с клиентами с помощью XML-документов. Специальные тэги XML и правила их использования для обмена XML-документами web-служб определены протоколом SOAP. Спецификация, определяющая SOAP, построена как документ XML, не содержащий типа документа и инструкции по его обработке. Корневой элемент этого документа называется <Envelope>. В корневой элемент вкладывается необязательный элемент <Heard>, содержащий заголовок послания и обязательный элемент <Body>, в котором записывается само послание, т. е. структура SOAP-послания имеет вид:

<&xml version=”1.0”&>

<soapenv: Envelope xmlns=http://www.w3.org/2003/05/soap-envelope>

Soapenv: Heard>

< ! – Заголовок-- >

</soapenv: Hearder>

<soapenv: Body>

<! – Содержание документа -- >

<soapenv: Body>

<soapenv: Envelope>

Версия SOAP1.2 позволяет сделать запрос к SOAP-серверу по методу Get(). Т. е. набрав в строке браузера: http://localhost 8080/ws.jws?method=get,

мы получим XML-документ – ответ web-службы ws.

34. Java rmi Достоинства и недостатки Java rmi

RMI- удаленный вызов метода.

архитектуру RMI-приложения.

. Уровни RMI-приложение?

RMI приложение состоит из трех уровней:

1. Уровень заглушек.

2. Уровень удаленной ссылки.

3. Транспортный уровень.

механизм работы RMI-приложения?

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

Уровень удаленной ссылки понимает, как интерпретировать и управлять ссылками на удаленные объекты служб. Этот уровень соединяет клиентов с удаленными объектами служб, которые выполняются на сервере.

Транспортный уровень основан на соединениях TCP/IP между сетевыми машинами. Он обеспечивает основные возможности соединения и некоторые стратегии защиты от несанкционированного доступа.

задачи выполняет уровень заглушек RMI-приложения

Стаб и скелетон – заглушки клиента и сервера распределенного RMI-приложения, соответственно. Стаб сериализует данные запроса клиента - приводит их к линейному виду, подготавливает их к пересылке по сети, и отправляет их в сеть. Скелетон на стороне сервера принимает последовательность сериализованых бит из сети, выполняет их десериализацию (операция обратная сериализации) и передает запрос на обработку серверу. После обработки сервер передает результат скелетону и процесс передачи данных выполняется в обратном порядке - от сервера к клиенту.

Каким образом используются удаленные объекты в RMI-приложении

Клиенты находят удаленные службы, используя службу имен или каталогов. Служба имен или каталогов выполняется на определенном хосте и имеет определенный номер порта. RMI может использовать различные службы каталогов, включая Java Naming and Directory Interface (JNDI). Кроме того, RMI содержит в себе простую службу, которая называется реестром RMI - rmiregistry (поставляется с JDK). Реестр RMI работает на каждой машине, содержащей объекты удаленных служб и принимает запросы на их обслуживание. По умолчанию rmiregistry использует порт 1099

Каковы основные этапы создания RMI-приложения

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

1. Создать удаленный интерфейс и откомпилировать его.

2. Написать класс - реализацию этого интерфейса и откомпилировать его.

3. Создать заглушки: стаб и скелетон с помощью rmic.

4. Создать серверное приложение, которое будет предоставлять удаленный сервис.

5. Создать клиентское приложение, которое будет обращаться к серверу за сервисом.

Каковы основные этапы запуска RMI-приложения

Для запуска RMI-приложения необходимо выполнить следующие действия:

  1. 1. Войти в рабочую папку.

  2. 2. Запустить службу реестра RMI. Для этого выполнить команду > rmiregistry. Реестр RMI будет запущен в отдельном консольном окне и в течение его работы можно использовать службу RMI.

  3. 3. Запустить серверное приложение, для чего выполнить > java Server. В результате серверное приложение будет запущено в отдельном консольном окне.

  1. 4. Запустить клиентское приложение, для чего выполнить > java Client localhost 14. В результате клиент передаст серверу число 14 и получит результат 196.

Достоинства

  1. Быстрое и простое создание приложений

  2. Java оптимизация

  3. Динамическая загрузка компанент-переходников

  4. Возможность передачи объекта

  5. Строенная безопасность

Недостатки

  1. Поддержка только одного языка java

  2. Собственный протокол взаимодействия

  3. Плохая масштабируемость