Web - сервисы
Веб-служба, веб-сервис (англ. web service) идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.англ.веб-адресоминтерфейсами Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC и т. д.). Веб-служба является единицей модульности при использовании сервис- ориентированной архитектуры приложения.приложениямипротоколахSOAPXML-RPC модульностисервис- ориентированной архитектуры В обиходе веб-сервисами называют услуги, оказываемые в Интернете.
Используемые стандарты XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных; XML SOAP: Протокол обмена сообщениями на базе XML; SOAP WSDL: Язык описания внешних интерфейсов веб-службы на базе XML; WSDL UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям. UDDI Достоинства Веб-службы обеспечивают взаимодействие программных систем независимо от платформы. Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки веб-служб.XML Использование интернет-протокола обеспечивает HTTP- взаимодействие программных систем через межсетевой экранмежсетевой экран Недостатки Меньшая производительность и больший размер сетевого трафика по сравнению с технологиями RMI, CORBA, DCOM за счёт использования текстовых XML-сообщений.RMICORBADCOM Однако на некоторых веб-серверах возможна настройка сжатия сетевого трафика.веб-серверах
Веб-сервисы. Компоненты технологии 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 = "Calc") public class Calc { /** * This is a sample web service operation = "add") public int = "i") int = "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 странице JSP Page Hello World!