ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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);
%>