Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB презентация

Содержание

Введение Веб-сервис – это метод коммуникации с использованием огромного количества протоколов и данными в виде структурированного XML. Название пошло от основного протокола передачи, использовавшегося на заре создания технологии – HTTP. Сейчас

Слайд 1Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Малышкин Фёдор (fedor.malyshkin@magnetosoft.ru)
9

ноября 2007

Слайд 2Введение
Веб-сервис – это метод коммуникации с использованием огромного количества протоколов и

данными в виде структурированного XML.
Название пошло от основного протокола передачи, использовавшегося на заре создания технологии – HTTP.
Сейчас в качестве протоколов передачи кроме HTTP, могут использоваться JMS (протокол передачи сообщений Java), SMTP, TCP…
Даже данные могут передаваться не в виде XML.
Так что понятие «веб-сервис» имеет очень расплывчатое значение на сегодняшний день и включает в себя огромное количество понятий.
Но разговор будет идти о стандарте описания веб-сервиса – о WSDL…


Слайд 3WSDL
WSDL – Web Service Description Language.
WSDL является XML словарём, который позволяет

описать веб-сервис в языке независимом от платформы и от реализации.
Данная лекция описывает стандарт WSDL 1.1, который доступен по адресу [TODO].


Слайд 4Логическая структура WSDL

-->













Слайд 5Элементы WSDL
import – позволяет частям веб-сервиса быть распределёнными между несколькими файлами

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


Слайд 6Элементы WSDL
types – определяет типы используемые веб-сервисами.








name="sessionId" type="xs:string">



…..


Слайд 7Элементы WSDL
types – определяет типы используемые веб-сервисами.



Слайд 8Элементы WSDL
message - описывает данные, которые путешествуют между веб-сервисом и клиентом

в терминах, описанных в элементе Types.











Слайд 9Элементы WSDL
portType – определяет опреации, которые веб-сервис обеспечивает.




message="tns:startSessionResponse"/>








Слайд 10Элементы WSDL
binding – определяет, как операции и сообщения, описанные в message

и portType, привязываются к конкретному протоколу.












Слайд 11Элементы WSDL
service – группирует ранее описанные порты и этим определяет

сервис.








Слайд 12Разработка «обычных» веб-сервисов
Класс Java:

@WebService
public class UsualWS {

@WebMethod
public String method01(String data)

{
// парсинг XML
// работа над данными
String result = результат работы
return result;
}
}


Слайд 13Разработка «обычных» веб-сервисов
Генерация с помощью WSGEN необходимых артефактов и WSDL
Развёртывание
И вызов

через клиента или другое средство. Например через XMLSpy:


Слайд 14Потери «обычных» веб-сервисов
«Обычные» веб-сервисами отличаются от «нормальных» только одним – отсутствием

информации о структуре передаваемого XML.
Информация о том, что передаётся и в каком виде, должна быть у пользователя веб-сервиса ЗАРАНЕЕ. Использовать веб-сервис без этого не предоставляется возможным.

Слайд 15Пример «стандартного» веб-сервиса
Загружаем WSDL «нормального» веб-сервиса в XMLSpy и пробуем вызвать.


Слайд 16Преимущества «стандартных» веб-сервисов
Доступ к информации о структуре XML на стадии анализа веб-сервиса.
Чёткое

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

Слайд 17Пример сгенерированного клиента для «стандартного» веб-сервиса
@WebMethod
@WebResult(name = "addRouteResponse", targetNamespace = "http://gpsmonitor.net.magnetosoft.ru/",

partName = "response")
public AddRouteResponseType addRoute(@WebParam(name = "addRouteRequest", targetNamespace = "http://gpsmonitor.net.magnetosoft.ru/", partName = "request")
AddRouteRequestType request)
throws AddRouteFault;

@WebMethod
@WebResult(name = "getScaleResponse", targetNamespace = "http://gpsmonitor.net.magnetosoft.ru/", partName = "response")
public ScaleResponseType getScale(@WebParam ( name = "getScaleRequest", targetNamespace = "http://gpsmonitor.net.magnetosoft.ru/", partName = "request")
GetScaleRequest request)
throws GetScaleFault;


Слайд 18Пример сгенерированного клиента для «стандартного» веб-сервиса
Каждый метод имеет в качестве параметров

и возвращаемого результат сгенерированные классы, обрамлённые JAXB аннотациями.
При вызове метода классы с наполненными данными преобразуются в XML, а результат из XML разбирается в те же сгенерированные классы.
Как результат - необходимость работы с XML, переносящимся между веб-сервисами, отпадает полностью.

Слайд 19Создание «стандартного» веб-сервиса. Вариант 1.
Создание WSDL
Генерация артефактов с помощью WSIMPORT
Создание реализации

сгенерированного интерфейса сервиса

P.S.: Данный вариант детально не рассматривается, так как требует детального знания языка описания XML – «XML Schema». Именно на его основе сделаны модули «Search», «Catalogue» платформы MAGNET.


Слайд 20Создание «стандартного» веб-сервиса. Вариант 2.
Создание классов носителей-данных для обмена. Классы носители-данных

для обмена являются обычными JavaBean’ами, с аннотациями JAXB, которые определяют в какой XML они превратятся.

package edu.sefer.home.ws;
import java.math.BigDecimal;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class XmlResult {
@XmlElement
int result;
@XmlElement
BigDecimal resultBD;
}


Слайд 21Создание «стандартного» веб-сервиса. Вариант 2.
package edu.sefer.home.ws;
import java.util.Date;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class XmlData

{
@XmlElement
String inputString;

@XmlElement
Date inputDate;

@XmlElement
int inputInt;
}


Слайд 22Создание «стандартного» веб-сервиса. Вариант 2.
Создания класса веб-сервиса, подобно обычному подходу, но

с входящими и выходящими параметрами в виде классов носителей-данных.

package edu.sefer.home.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class UsualWS {
@WebMethod
public XmlResult method01(XmlData data) {
return null;
}
}


Слайд 23Создание «стандартного» веб-сервиса. Вариант 2.
Генерация артефактов с использованием WSGEN, подобно обычному

подходу.








Слайд 24Создание «стандартного» веб-сервиса. Вариант 2.
Развёртывание и вызов…


Слайд 25Создание «стандартного» веб-сервиса. Вариант 3.
Генерация или создание WSDL схемы вручную.
Использование интерфейса

«javax.xml.ws.Provider» на серверной стороне
Использование интерфейса «javax.xml.ws.Dispatch» на клиентской стороне
Использование типа «xsd:anyType» для описания ЛЮБОГО XML, если его структура не зафиксирована.


P.S.: Данный вариант детально не рассматривается, так как требует детального знания языка описания XML – «XML Schema» и деталей работы соответствующих интерфейсов. Но именно на его основе сделан модуль «EntityManager» платформы MAGNET.


Слайд 26Выводы
Варианты 1 и 2 наиболее удобны, если интерфейсы взаимодействия уже оговорены

и устоялись.
Вариант же 3 позволяет передавать динамически компонуемый XML максимально быстро и использовать его максимально эффективно и гибко.
Хотя надо так же заметить, что при использовании некоторых подходов, передавать динамический XML можно и в вариантах 1 и 2. Но надо заметить, что дополнительная нагрузка (на обработку сообщений на уровне самой библиотеки) при этом возрастает многократно.

Слайд 27Вопросы?
?


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика