ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.03.2024

Просмотров: 16

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Web - сервисы


Веб-служба, веб-сервис (англ. web service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.
Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC и т. д.). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
В обиходе веб-сервисами называют услуги, оказываемые в Интернете.


Используемые стандарты
XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных;
SOAP: Протокол обмена сообщениями на базе XML;
WSDL: Язык описания внешних интерфейсов веб-службы на базе XML;
UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям.
Достоинства
Веб-службы обеспечивают взаимодействие программных систем независимо от платформы.
Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки веб-служб.
Использование интернет-протокола обеспечивает HTTP-взаимодействие программных систем через межсетевой экран
Недостатки
Меньшая производительность и больший размер сетевого трафика по сравнению с технологиями RMI, CORBA, DCOM за счёт использования текстовых XML-сообщений.
Однако на некоторых веб-серверах возможна настройка сжатия сетевого трафика.

Веб-сервисы. Компоненты технологии


 HTTP (SMTP, FTP, …) –
транспортные протоколы
 SOAP – прикладной протокол вызова методов
(передаются XML- документы)
 WSDL – описание
«сигнатур» методов Web- сервиса (XML-документ)
 UDDI – сервис поиска необходимых сервисов
(публикуется в виде XML- документа)

SOAP


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

 Данные в рамках SOAP передаются в виде XML
документов особого формата
 Для вызова необходимо знать имя Web–сервиса, имя его метода, имена и типы параметров
 Для известного Web-сервиса может быть получен список реализуемых им методов.
Описание WSDL

Элементы технологии

Элементы технологии


Сервер приложений
 Sun Java System Application Server
 Apache Tomcat
 GlassFish
 IBM WebSphere Application Server
 …
 Средства разработки
 Java
 jdk (J2SE + J2EE)
 .NET
 Visual Studio.NET

Этапы разработки Web-сервиса


Создание Web-сервиса
Развёртывание Web-сервиса
Использование Web-сервиса
    В Java-классе в Java SE приложении
    В сервлете
    В JSP странице

1. Создание Web-сервиса


При создании проекта выберите Web
Application из категории Web
Назовите проект CalcService
При создании проекта, установите версию
Java EE в Java EE 6 и сервер (GlassFish)
С помощью контекстного меню проекта
(правая кнопка мыши), создайте новый
Web-сервис
Назовите Web-сервис Calc
В качестве пакета укажите ru.nstu

Calc.java


package ru.nstu;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@WebService(serviceName = "Calc")
public class Calc {
/**
* This is a sample web service operation
*/
@WebMethod(operationName = "add")
public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) {
//TODO write your implementation code here:
int k = i + j;
return k;
}
}

Развёртывание и тестирование


С помощью контекстного меню разверните проект на сервере (Undeploy and Deploy)
Протестируйте Web-сервис

Тестирование

Вызов WS из Java SE


Создайте Java SE приложение
С помощью контекстного меню проекта, создайте новый Web-сервис клиент
Выберите Web-сервис для клиента

Использование в Java приложении


package ru.nstu;
public class ServiceClient {
public static void main(String[] args) {
try { // Call Web Service Operation
ru.nstu.Calc_Service service = new ru.nstu.Calc_Service();
ru.nstu.Calc port = service.getCalcPort();
// TODO initialize WS operation arguments here
int i = 2;
int j = 5;
// TODO process result here
int result = port.add(i, j);
System.out.println("Result = " + result);
} catch (Exception ex) {
// TODO handle custom exceptions here


}
}
}

Использование в JSP странице

    <%@page contentType="text/html" pageEncoding="UTF-8"%>



    Hello World!


    <% ru.nstu.Calc_Service service = new ru.nstu.Calc_Service();
    ru.nstu.Calc port = service.getCalcPort();
    // TODO initialize WS operation arguments here
    int i = 2;
    int j = 5;
    // TODO process result here
    int result = port.add(i, j);
    out.print(result);
    %>