конспект лекций, вопросы к экзамену

Документно-ориентированное разработка WEB-сервисов на основе SOAP. Возможные разновидности взаимодействия. Основные объекты и алгоритмы документно-ориентированного взаимодействия с WEB-сервисами.

JAX-WS и JAX-RPC представляют собой API Java для приема/передачи сообщений SOAP в связываниях веб-служб.

JAX-RPC означает Java™ API для RPC на базе XML, также называется JSR 101. Это спецификация, описывающая API Java и соглашения для компоновки веб-служб и клиентов веб-служб, использующих удаленные вызовы процедур (RPC) и XML. Она стандартизирует преобразование Java в WSDL и WSDL в Java и предоставляет основные API для разработки веб-служб и клиентов веб-служб на платформах Java. Зачастую используемый в модели распределенного клиента/сервера, механизм RPC позволяет клиентам выполнять процедуры в других системах.

Текущему выпуску JAX-RPC необходима поддержка SOAP через HTTP для обеспечения стыкуемости. Спецификация SOAP задает структуру сообщения, правила кодировки и соглашения об обмене информацией в программной модели RPC. Эти вызовы и ответы передаются в виде сообщений SOAP через HTTP. В данном выпуске JAX-RPC поддерживает SOAP 1.1 и HTTP 1.1. За дополнительной информацией о SOAP обратитесь к разделу SOAP.

Несмотря на то, что базовые механизмы выполнения (например, сериализация Java в WSDL, десериализация WSDL в Java, протокол и транспортный протокол) очень сложны, API скрывает эту сложность от разработчика приложения. На стороне сервера разработчик может предоставить Service Endpoint Interface (SEI); либо SEI можно создать с помощью мастера веб-служб. SEI является интерфейсом, написанным на языке Java, указывающим удаленные процедуры веб-службы. Разработчик также указывает реализацию веб-службы в виде одного или нескольких классов Java, реализующих методы с той же подписью, что и SEI. Код клиентских программ довольно прост. Клиент создает посредника, локальный объект, представляющий реализацию службы и SEI, а затем просто вызывает методы для проводника.

RPC-ориентированные взаимодействия удобны для краткого обмена данными. В RPC-ориентированном взаимодействии запросы веб-сервисов приобретают форму вызова метода или процедуры с соответствующими входными или выходными параметрами. В отличие от документно-ориентированного взаимодействия, RPC-ориентир. взаимодействие производит отправку документа, специально отформатированного для передачи в отдельную логическую программу или базу данных. Например, заказ коньков в режиме реального времени зависит от их наличия на складе, программа обращается к базе данных с проверкой наличия заказываемого товара. Если получено подтверждение, то программа вернет заказчику XML-документ в формате "запрос/ответ", сообщающий о принятии заказа с его последующим исполнением. Если поставка невозможна, будет получено сообщение об отсрочке выполнения заказа или о полном отказе от его выполнения. В отличие от документно-ориентированного стиля взаимодействия, запрос и ответ моделируются как синхронные сообщения, то есть приложение, посылающее сообщение, ждет реакции на него.

Удаленный вызов процедур, RPC

Основные моменты развертывания RPC:

  • разработка интерфейса удаленного сервисного объекта (формальное описание методов объекта, типа параметров и результата), реализующего вычислительный сервис (Web Service);
  • кодирование методов сервисного объекта (implemention);
  • создание описания методов объекта в WSDL-документе;
  • декларация WSDL-документа;
  • обработка (поиск и анализ) клиентской программой WSDL-документа;
  • связывание (binding) - подключение к серверу (провайдеру сервиса);
  • формирование объектной ссылки для методов сервисного объекта;
  • обращение к методам сервиса и получение результатов вычислений.

 

Надо отметить два существенных момента использования  RPC:

  1. единственным форматом передач данных в технологии  Web-служб являются SOAP-сообщения, поэтому серьезной проблемой является конвертирование всех вызовов процедур и их данных в стандартный формат, принятый в SOAP, т.е. в XML-структуру (это позволяет обеспечить  реальную совместимость всех участвующих компонент распределенной системы). 
  2. взаимное конвертирование SOAP-сообщений и RPC-запросов выполняют специальные программы – представители противоположной стороны. На стороне клиента они называются стабами (stubs), а в серверной программе для Web-служб они называются tie. Эти программы-посредники генерируются автоматически при подготовке и развертывании клиентских и серверных компонент Web-служб. Уровень знания их и применения прикладным программистом зависит от конкретной программной реализации Web-службы компанией-производителем.

JAXR (Java API for XML Registries) – составная часть свободно распространяемого пакета JWSDP компании Sun, в котором реализована поддержка Web-служб. Надо подчеркнуть особенности этой службы регистрации:

  • пользователь может самостоятельно устанавливать сервер регистрации JAXR и соответствующую базу данных;
  • информационная модель JAXR основана на RIM-модели регистрирующей системы ebXML (RIM, Registry Information Model) с расширенной поддержкой UDDI. Таким образом, JAXR является совместимым с обеими моделями UDDI и ebXML.

В случае с RPC клиент делает вызов удаленного метода web-сервиса, который обрабатывается на сервере. На макроуровне клиент передает SOAP-запрос и получает SOAP-ответ.

7(2).png

 

 

29.12.2019; 20:00
просмотров: 81