- •Аннотация
- •Cодержание
- •Введение
- •1. Теоретические основы и архитектурные принципы Web-сервисов
- •1.1. Протокол soap и стандарты ws-*
- •1.2. Архитектурный стиль rest
- •1.3. Сравнение форматов данных: xml против json
- •1.4. Сравнительная характеристика подходов
- •2. Проектирование и программная реализация системы
- •2.1. Обоснование выбора стека технологий
- •2.2. Архитектурная организация серверной части
- •2.3. Реализация уровня данных (Data Access Layer)
- •2.4. Реализация soap-сервиса
- •2.5. Реализация rest-сервиса
- •2.6. Реализация клиентского приложения и сбор метрик
- •3. Анализ производительности
- •3.1. Методика тестирования
- •3.2. Результаты тестирования
- •3.2.1. Анализ размера данных (Traffic Overhead)
- •3.2.2. Анализ вычислительной сложности (Parsing Time)
- •3.2.3. Анализ времени загрузки в плохих условиях (Slow 3g)
- •3.3. Итоговое сравнение и выводы
- •Список использованных источников
- •Приложение а Код файла student.Wsdl
- •Листинг программного кода серверной части. Index.Ts
- •Листинг программного кода серверной части. Student.Repository.Ts
- •Листинг программного кода серверной части. Student.Soap.Ts
- •Листинг программного кода серверной части. Rest.Service.Ts
- •Листинг программного кода серверной части. Soap.Service.Ts
- •Листинг программного кода серверной части. ServicePanel.Vue
1. Теоретические основы и архитектурные принципы Web-сервисов
Веб-сервис (Web Service) – это программная система, идентифицируемая строкой URI, чьи общедоступные интерфейсы определены на языке XML (или описаны иным способом), использующая эти интерфейсы для взаимодействия с другими программными системами посредством сообщений на базе XML (или JSON) через протоколы интернета.
В настоящее время доминирующими являются два подхода к построению веб-сервисов: протокол SOAP и архитектурный стиль REST. Понимание их фундаментальных различий необходимо для обоснованного выбора технологий при проектировании информационных систем.
1.1. Протокол soap и стандарты ws-*
SOAP (Simple Object Access Protocol) – это стандартизированный протокол обмена структурированными сообщениями в распределенной вычислительной среде. Первоначально разработанный Microsoft в 1998 году, сейчас он поддерживается консорциумом W3C [2].
Структура сообщения SOAP
В отличие от произвольных HTTP-запросов, SOAP строго регламентирует структуру каждого передаваемого пакета. Сообщение представляет собой XML-документ, состоящий из следующих элементов:
Envelope (Конверт): Корневой элемент, который определяет XML-документ как сообщение SOAP.
Header (Заголовок): Необязательный элемент, содержащий метаданные запроса, такие как токены аутентификации, информация о транзакциях или маршрутизации. Это позволяет отделять инфраструктурные данные от бизнес-данных.
Body (Тело): Обязательный элемент, содержащий полезную нагрузку (payload) – данные запроса или ответа.
Fault (Ошибка): Специальный элемент внутри Body, используемый для передачи информации об ошибках, возникших при обработке сообщения.
Язык описания WSDL
Неотъемлемой частью SOAP является WSDL (Web Services Description Language). Это XML-формат для описания сетевых сервисов как набора конечных точек (endpoints). WSDL выполняет роль строгого контракта между клиентом и сервером [3].
Структура WSDL включает:
Types: Определение типов данных (обычно через XSD – XML Schema Definition).
Message: Абстрактное определение передаваемых данных.
PortType: Абстрактный набор операций (интерфейс сервиса).
Binding: Привязка операций к конкретному протоколу (SOAP) и формату данных.
Service: Физический адрес сервиса (URL).
Семейство стандартов WS-*
Одним из главных преимуществ SOAP в корпоративной среде является поддержка расширений WS-* (WS-Security, WS-ReliableMessaging, WS-AtomicTransaction) [10]. Эти стандарты позволяют реализовать на уровне протокола такие функции, как:
Гарантированная доставка сообщений (даже при сбоях сети).
Сквозное шифрование и цифровая подпись сообщений.
Распределенные ACID-транзакции.
Рассмотрим ключевые спецификации WS-* подробнее, так как именно они являются решающим фактором выбора SOAP в банковской и государственной сферах:
WS-Security (WSS): Обеспечивает безопасность на уровне сообщения, а не транспортного канала. В отличие от HTTPS, который шифрует весь канал «трубу», WS-Security позволяет зашифровать только часть XML-документа или подписать его цифровой подписью. Это позволяет сообщению безопасно проходить через множество промежуточных узлов, сохраняя целостность и конфиденциальность payload-а.
WS-ReliableMessaging: Протокол гарантированной доставки. Он определяет механизм подтверждений (ACK) и повторных отправок, гарантируя, что сообщение будет доставлено получателю ровно один раз, в правильном порядке, даже при нестабильном сетевом соединении (например, при обрыве связи).
WS-AtomicTransaction: Позволяет координировать транзакции между несколькими разнородными сервисами. Поддерживает протокол двухфазной фиксации (Two-Phase Commit), гарантируя, что изменения будут применены либо во всех системах, участвующих в транзакции, либо ни в одной, обеспечивая соблюдение принципов ACID в распределенной среде.
