Главная страница
Навигация по странице:

  • Вопросы для самопроверки

  • Практическая работа № 1.43. Разработка протокола взаимодействия веб-сервисов Цель работы

  • Теоретический материал Веб-сервисы

  • Концепция построения веб-сервисов с использованием SOAP

  • UDDI Публикация и поиск сервисов WSDL х Описание интерфейсов SOAP Обмен сообщениями HTTP, SMTP, FTP, HOP ...

  • Основные элементы протокола WSDL

  • Задание на лабораторную работу

  • Практическая работа № 1.44. Разработка REST API. Практическая работа № 1.45. Разработка REST API Цель работы

  • Теоретический материал REST

  • Методические указания по выполнению лабораторных и практических работ по мдк


    Скачать 3.25 Mb.
    НазваниеМетодические указания по выполнению лабораторных и практических работ по мдк
    Дата23.01.2023
    Размер3.25 Mb.
    Формат файлаpdf
    Имя файла37._MU_PZ_PM.01_MDK_01.01_Razrabotka_programmnyx_moduley(1)_remo.pdf
    ТипМетодические указания
    #899980
    страница19 из 24
    1   ...   16   17   18   19   20   21   22   23   24
    Задание на лабораторную работу
    Разработать пользовательский интерфейс для веб-клиента, описанного в лабораторной работе № 1. Подготовить макеты для отображения не менее трех страниц для ширины экрана следующего разрешения:
    - для смартфонов 320 px, 480 px;
    - планшетов 768 px;
    - нетбуков и некоторых планшетов 1024 px;
    - персональных компьютеров 1280 px и более.
    Вопросы для самопроверки
    1.
    Раскройте понятие «адаптивный веб-дизайн».
    2.
    Зачем нужен адаптивный веб-дизайн?
    3.
    В чем отличие адаптивного сайта от мобильной версии (приложения) сайта?
    4.
    Каковы недостатки адаптивного веб-дизайна?
    5.
    Перечислите основные виды адаптивных макетов.
    Практическая работа № 1.43. Разработка протокола взаимодействия веб-сервисов
    Цель работы: изучить принципы проектирования протокола взаимодействия веб- сервисов с использованием протокола SOAP.
    Теоретический материал
    Веб-сервисы
    Веб-служба, веб-сервис
    (англ.
    web service) - идентифицируемая уникальным веб-адресом
    (URL-адресом) программная система со стандартизированными интерфейсами,
    а также HTML-
    документ сайта, отображаемый браузером пользователя.
    Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определенных протоколах (SOAP, XML-RPC и т.д.) и соглашениях
    (REST)
    . Вебслужба является единицей модульности при использовании сервис- ориентированной архитектуры приложения.
    На сегодняшний день наибольшее распространение получили следующие протоколы реализации веб-сервисов:
    -
    SOAP (Simple Object Access Protocol) — по сути это тройка стандартов SOAP/WSDL/UDDI;
    -
    REST (Representational State Transfer);
    -
    XML-RPC (XML Remote Procedure Call).
    На самом деле SOAP произошел от XML-RPC и является следующей ступенью его развития. В то время как REST - это концепция, в основе которой лежит скорее архитектурный стиль, нежели новая технология, основанный на теории манипуляции объектами CRUD (Create
    Read Update Delete) в контексте концепций WWW.
    Концепция построения веб-сервисов с использованием SOAP
    Веб-сервис идентифицируется строкой URI. Веб-сервис имеет программный интерфейс, представленный в машинно-обрабатываемом формате
    WSDL.
    Другие системы взаимодействуют с этим веб-сервисом путем обмена сообщениями протокола
    SOAP.
    В качестве транспорта для сообщений используется протокол
    HTTP.
    Описание веб-сервисов и их API могут быть найдены средствами
    UDDI.
    Концептуальная схема технологии приведена на рис. 5.1, где:
    -
    SOAP (Simple Object Access Protocol) - протокол обмена сообщениями между потребителем и поставщиком веб-сервиса;
    -
    WSDL (Web Services Description Language) - язык описания внешних интерфейсов веб- службы;
    -
    UDDI (Universal Discovery, Description and Integration) - универсальный интерфейс распознавания, описания и интеграции, используемый для формирования каталога веб-сервисов и доступа к нему.

    163
    Рис. 5.1. Концепция веб-сервиса
    Связь между протоколами приведена на рис. 5.2.
    UDDI
    Публикация и поиск сервисов
    WSDL
    х Описание интерфейсов
    SOAP
    Обмен сообщениями
    HTTP, SMTP, FTP, HOP ...
    Транспортная инфраструктура
    Рис. 5.2. Протоколы веб-сервисов
    Все спецификации, используемые в технологии, основаны на XML и, соответственно, наследуют его преимущества (структурированность, гибкость и т.д.) и недостатки (громоздкость, медлительность).
    SOAP
    SOAP - простой протокол доступа к объектам (компонентам распределенной вычислительной системы), основанный на обмене структурированными сообщениями. Как любой текстовый протокол, SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTPS и др., но чаще всего SOAP используется поверх HTTP.
    Все сообщения SOAP оформляются в виде структуры, называемой конвертом (envelop), включающей следующие элементы:
    - идентификатор сообщения (локальное имя);
    - опциональный элемент Header (заголовок);
    - ноль или более ссылок на используемые пространства имен;
    - ноль или более свойств, доступных в этом пространстве имен;
    - обязательный элемент Body (тело сообщения);
    - ноль или более ссылок на используемые пространства имен;
    - дочерние элементы тела сообщения.
    Пример SOAP-запроса на сервер интернет-магазина:





    12345



    Пример ответа:




    164


    12345
    CTaKaH rpaHeHbiA
    CTaKaH граненый. 250 M.n.
    9.95

    840
    USD
    $
    US dollar
    2

    true




    WSDL
    Язык описания веб-сервисов (Web services Description Language, WSDL) предназначен для унифицированного представления внешних интерфейсов веб-службы. Текущая версия протокола (на момент написания этой лекции)
    WSDL 2.0 и она имеет некоторые отличия от предыдущих версий приведенные в табл. 5.1 и на рис. 5.3.
    Таблица 5.1
    Основные элементы протокола WSDL
    Элемент
    WSDL 1.1
    Элемент
    WSDL 2.0
    Краткое описание
    PortType
    Interface
    Представляет описание интерфейса веб-сервиса (список операций и их параметров)
    Service
    Service
    Список системных функций
    Binding
    Binding
    Специфицирует интерфейсы и задает параметры связывания с протоколом SOAP: стиль связывания (RPC/Document) и транспорт (SOAP). Эта секция доступна и для каждой из операций
    Operation
    Operation
    Определяет операцию, представляемую веб-сервером. WSDL- операция — это аналог традиционным функциям и процедурам
    Message

    Сообщение, связанное с определенной операцией. Содержит информацию, необходимую для выполнения данной операции.
    Каждое сообщение может состоять из нескольких логических частей, описывающих типы данных и имена атрибутов. В версии
    2.0 было исключено, так как была внедрена поддержка XML
    Schema для всех элементов
    Types
    Types
    Описание данных в соответствии с XML Schema

    165
    Рис. 5.3. Структура протокола WSDL
    В спецификации WSDL 1.1 было определено четыре шаблона обмена сообщениями (типы операций):
    - однонаправленные операции (One-way): операция может принимать сообщение, но не будет возвращать ответ;
    - запрос-ответ (Request-response): операция может принять запрос и должна вернуть ответ;
    - вопрос-ответ (Solicit-response): операция может послать запрос и будет ждать ответ на него;
    - извещение (Notification): операция может послать сообщение, но не будет ожидать ответ.
    В версии WSDL 2.0 эти шаблоны изменены и расширены в сторону поддержки сообщений об ошибках (например, шаблон Robust-in-only), но для обратной совместимости поддерживаются типы WSDL 1.1.
    Пример описания веб-сервиса на языке WSDL (версия 2.0):



    Hello_WSDL_20_SOAP.wsdl
    Copyright (c) 2009 HerongYang.com, All Rights Reserved.















    166 wsoap:mep="
    http://www.w3.org/2003/05/soap/mep/soap-response"/
    >

    >


    В данном примере:
    - веб-сервис helloService определен с эндпойнтом helloEndpoint, доступным по адресу http://www.herongyang.com/Service/Hello_
    SOAP_12.php;
    - эндпойнт helloEndpoint ссылается на связывание helloBinding;
    - связывание helloBinding определено с использованием протокола SOAP 1.2 поверх HTTP;
    - связывание helloBinding ссылается на интерфейс hellointerface;
    - интерфейс helloInterface определеляет операцию Hello, которая требует элементы входящего и исходящего сообщений;
    - каждый элемент Hello/HelloResponse определяет в XML-схеме секции types .
    Пример описания сложных структур и списков:

    FormDefault="qualified" targetNamespace="
    http://localhost/
    ">


    />

    />
    />



















    В данном примере представлено:
    - описание структуры Message, состоящей из полей phone, text, date, type;
    - описание списка сообщений MessageList, состоящего из неограниченного количества элементов типа Message;

    167
    - описание запроса Request со списком сообщений;
    - описание ответа Response с булевской переменной, содержащей статус выполнения запроса.
    UDDI
    Universal Description, Discovery and Integration (UDDI - универсальный интерфейс распознавания, описания и интеграции) - открытый стандарт, утвержденный OASIS, определяющий методы публикации и обнаружения сетевых программных компонентов сервис- ориентированной архитектуры
    (SOA)
    . В практической реализации UDDI представляет собой сетевой реестр
    (службу каталогов)
    , представляющий данные и метаданные о веб-сервисах и доступный по адресу: URL: http:// uddi.xml.org/services.
    Задание на лабораторную работу
    Разработать протокол взаимодействия сервера и клиентов, описанных в лабораторной работе № 1:
    1. Подготовить WSDL-описание команд сервера.
    2. Подготовить примеры SOAP запросов и ответов в соответствии с WSDL-описанием.
    Вопросы для самопроверки
    1. Что такое веб-сервис?
    2. Что такое сервис-ориентированная архитектура?

    Нефтеюганск
    2021 3. Какие протоколы реализации веб-сервисов получили наибольшее распространение?
    4. Опишите структуру SOAP сообщения.
    5. В чем отличие спецификаций WSDL 1.1 от WSDL 2.0?
    Практическая работа № 1.44. Разработка REST API. Практическая работа № 1.45.
    Разработка REST API
    Цель работы: изучить принципы проектирования протокола взаимодействия веб- сервисов согласно архитектурному стилю взаимодействия компонентов распределенного приложения в сети REST.
    Теоретический материал
    REST
    REST (Representational state transfer) - это стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web, который, как правило, используется для построения вебслужб. Термин REST был введен в 2000 г. Роем Филдингом, одним из авторов
    HTTP-протокола. Системы, поддерживающие REST, называются RESTful-системами.
    В общем случае REST является очень простым интерфейсом управления информацией без использования каких-то дополнительных внутренних прослоек. Каждая единица информации однозначно определяется глобальным идентификатором, таким как URL. Каждая URL в свою очередь имеет строго заданный формат.
    Отсутствие дополнительных внутренних прослоек означает передачу данных в том же виде, что и сами данные, т.е. данные не заворачиваются в XML, как это делает SOAP и XML-
    RPC.
    Каждая единица информации однозначно определяется URL - это значит, что URL, по сути, является первичным ключом для единицы данных, т.е. например третья книга с книжной полки будет иметь вид /book/3, а 35-я страница в этой книге - /book/3/page/35. Отсюда и полу- чается строго заданный формат. Причем совершенно не имеет значения, в каком формате находятся данные по адресу /book/3/page/35 - это может быть и HTML, и отсканированная копия в виде jpeg-файла, и документ Microsoft Word.
    Наиболее широко распространенные инструменты для описания RESTful API:
    - www.mashape.com
    - www.swagger.io
    - www.apiary.io
    HTTP-методы
    Как происходит управление информацией сервиса - это целиком и полностью основывается на протоколе передачи данных. Наиболее распространенный протокол - HTTP. Для
    HTTP действие над данными задается с помощью методов.
    Проектирование операций на HTTP-методы становится легче, когда вы знаете характеристики всех методов HTTP. Ниже представлены две характеристики, которые должны быть определены перед использованием HTTP-метода:
    -
    безопасность: HTTP-метод считается безопасным, когда вызов этого метода не изменяет состояние данных. Например, когда вы извлекаете данные с помощью метода GET - это безопасно, потому что этот метод не обновляет данные на стороне сервера;
    -
    идемпотентность: когда вы получаете один и тот же ответ, сколько раз вы вызываете один и тот же ресурс, он известен как идемпотентный. Например, когда вы пытаетесь обновить одни и те же данные на сервере, ответ будет таким же для каждого запроса, сделанного с одинаковыми данными.
    Не все методы являются безопасными и идемпотентными. В табл. 6.1 представлен список методов, которые используются в REST-приложениях и показаны их свойства.

    2
    Таблица 6.1.
    REST-методы
    HTTP-метод
    Безопасный
    Идемпотентный
    GET
    Да
    Да
    POST
    Нет
    Нет
    PUT
    Нет
    Да
    DELETE
    Нет
    Да
    OPTIONS
    Да
    Да
    HEAD
    Да
    Да
    Ниже приведен краткий обзор каждого метода и рекомендации по их использованию:
    -
    GET: метод является безопасным и идемпотентным. Обычно используется для извлечения информации и не имеет побочных эффектов;
    -
    POST: метод не является ни безопасным, ни идемпотентным. Этот метод наиболее широко используется для создания ресурсов;
    -
    PUT: метод является идемпотентным. Вот почему лучше использовать этот метод вместо
    POST для обновления ресурсов. Избегайте использования POST для обновления ресурсов;
    -
    DELETE: как следует из названия, метод используется для удаления ресурсов. Но этот метод не является идемпотентным для всех запросов;
    -
    OPTIONS: метод не используется для каких-либо манипуляций с ресурсами. Но он полезен, когда клиент не знает других методов, поддерживаемых для ресурса, и используя этот метод, клиент может получить различное представление ресурса;
    -
    HEAD: этот метод используется для запроса ресурса c сервера. Он очень похож на метод
    GET, но HEAD должен отправлять запрос и получать ответ только в заголовке. Согласно спецификации HTTP, этот метод не должен использовать тело для запроса и ответа;
    -
    HTTP: определяет различные коды ответов для указания клиенту различной информации об операциях. Далее представлен список кодов ответов HTTP:
    -
    200 OK - это ответ на успешные GET, PUT, PATCH или DELETE. Данный код также используется для POST, который не приводит к созданию;
    -
    201 Created - данный код состояния является ответом на POST, который приводит к созданию;
    -
    204 Нет содержимого - это ответ на успешный запрос, который не будет возвращать тело
    (например, запрос DELETE);
    -
    304 Not Modified - используйте этот код состояния, когда заголовки HTTP-кеширования находятся в работе;
    -
    400 Bad Request - данный код состояния указывает, что запрос искажен, например, если тело не может быть проанализировано;
    -
    401 Unauthorized - данный код возвращается, если не указаны или недействительны данные аутентификации. Также полезно активировать всплывающее окно auth, если приложение используется из браузера;
    -
    403 Forbidden - данный код возвращается, когда аутентификация прошла успешно, но аутентифицированный пользователь не имеет доступа к ресурсу;
    -
    404 Not found - данный код возвращается, если запрашивается несуществующий ресурс;
    -
    405 Method Not Allowed - данный код возвращается, когда запрашивается HTTP-метод, который не разрешен для аутентифицированного пользователя;
    -
    410 Gone - данный код состояния указывает, что ресурс в этой конечной точке больше не доступен. Полезно в качестве защитного ответа для старых версий API;
    -
    415 Unsupported Media Type - данный код возвращается, если в качестве части запроса был указан неправильный тип содержимого;

    3
    -
    429 Too Many Requests - данный код возвращается, когда запрос отклоняется из-за ограничения скорости;
    -
    500 - внутренняя ошибка сервера.
    1   ...   16   17   18   19   20   21   22   23   24


    написать администратору сайта