Реализация REST и SOAP сервисов с помощью WCF

Preview:

DESCRIPTION

На сегодняшний день одним из важнейших направлений в области разработки ПО является направление (веб)-сервисов. Сервисы позволяют строить большие распределенные системы. При этом подходов к построению сервисов сегодня как минимум два - SOAP и REST. В докладе расскажу как реализовать их при помощи WCF

Citation preview

Реализация REST и SOAP сервисов с помощью WCF

Киреев АртемРазработчик

Codemasters Intl.akireev@codemastersintl

.com

Веб-сервисы.

Веб-сервис  - это программно-аппаратная система, доступная посредством сети и использующая стандартизованный протокол сообщений

Автор

Веб-сервисы

Технологии для реализации веб-сервисов

Автор

Веб-сервисы

Технологии для реализации веб-сервисов

1998

Автор

XML-RPC пример

Запрос

Ответ

Веб-сервисы

Технологии для реализации веб-сервисов

1998

Автор

Веб-сервисы

Технологии для реализации веб-сервисов

1998 1998

Автор

Веб-сервисы

Технологии для реализации веб-сервисов

20031998 1998

SOAP 1.2 Утвержден W3C

Автор

SOAP

Simple object access protocol

XML

HTTP

FTPSMTP

SOAP. Запрос

SOAP. Ответ

SOAP конверт

Заголовок

-цифровой подпись-роутинга-поддерживания сессий

расширяемыйпредназначен всем

Тело предназначено конечному узлу

Используется для:

Может быть зашифровано

SOAP. Структура конверта

Немного о стандартизации WS

W3C – World Wide Web Consortium. Разрабатывает и внедряет технологические стандарты для всемирной паутины

WS-* – рекомендации от W3C как использовать стандарты веб-сервисов чтобы улучшить совместимость.

WS-I  – Web services interoperability organization. Специализируется на разработке Best practices для улучшения совместимости веб-сервисов

WSDL

SOAP

UDDI

Протокол для посылки сообщений

Язык для описания программных интерфейсов веб-сервиса

Стандарт для индексации веб-сервисов.

  WS-* рекомендации

WSDL

WSDL – язык описания веб-сервисовСовременные языки программирования позволяют автоматически генерировать клиентский код для доступа к сервисам.

И позволяет генерировать WSDL по коду сервиса

svcutil.exe Contracts.dll svcutil.exe Contracts.dll

 WCF

WCF– поддерживает и опирается на стек протоколов WS-*.

Некоторые стандарты WS-* поддерживаемые WCF:

WS-Security 

WS-Addressing

WS-SecureConversation

WS-Trust

WS-ReliableMessaging

WS-Coordination

WS-AtomicTransaction

WS-PolicyWS-PolicyAttachment

WSDL 1.1WS-MetadataExchang

SOAP 1.1SOAP 1.2

Windows Communication Foundation – фреймворк на платформе .Net для создание веб-сервисов.

Биндинги WСF

basicHttpBinding

В WCF каждый сервис может иметь одну или более точек привязки endpoint.

Каждый endpoint можно настроить с различными биндингами, которые задают набор поддерживаемых WS-* стандартов

SOAP v1.1 WS Basic profile

WSHttpBinding

SOAP v1.2 WS-AddressingWS-Security WS-AtomicTransactionWS-Trust WS-ReliableMessages

WSFederationHttpBinding

+ WS-Federation

Веб-сервисы

20031998 1998

SOAP 1.2 Утвержден W3C

Технологии для реализации веб-сервисов

Автор

Веб-сервисы

20031998 1998

SOAP 1.2 Утвержден W3C

2004

Технологии для реализации веб-сервисов

Автор

REST

Основан на протоколе HTTP

Любит принцип KISS – Keep it small and simpleРазличные представления JSON, XML (POX) …

REST - Representational State Transfer

RESTful web service - веб-сервис, созданный с использованием протокола HTTP и принципов REST

State Less – не хранит состояниеРаботает с ресурсами по принципу CRUD

REST. Http methods

/chat/messages – получить все сообщения/chat/messages/23 – получить сообщения с id равным 23/chat/messages?user=vpupkin – получить сообщения Васи/chat/users/vpupkin/messages – получить сообщения Васи

GET - получает ресурсы. Никогда не изменяет объект

POST - создает ресурс.POST /chat/messages

PUT – обновляет ресурс.PUT /chat/messages/13

DELETE – удаляет ресурсDELETE /chat/messages/13

REST. Где используется

REST на .Net

WCF 3.5 + WCF REST Starter KitWCF 4 + ASP.Net Web API (ex WCF Web API) входит в MVC 4

OpenRasta

«Нативные» технологии

Third Party технологии

ServiceStack

REST или SOAP

Кто круче REST или SOAP?

2011

2012

REST vs SOAP. Особенности

Семейство протоколов и стандартов

WS-* SOAP REST

Набор архитектурных решений

Базируется на протоколе HTTP

Работает с операциями

Использует HTTP как транспортный протокол

Работает с ресурсами

ПростотаСтандарты

Vs

REST vs SOAP. Преимущества

Быстрее

Лучше масштабируется

Проще

Генерация proxy по WSDL

WS-* SOAP REST

Vs

Может работать поверх FTP, SMTP, TCP

Поддерживает фичи в виде транзакций, сессий и прочее

REST vs SOAP. Как выбрать

Когда нельзя сгенерировать proxy клиента по WSDL (iOs, javascript...)

Для CRUD архитектурКогда возможны разные протоколы взаимодействия

Когда нужна высокая масштабируемость и производительность

Когда необходимы сложные фичи вроде транзакций, роутинга и т.д.

Когда система состоит из разнородных узлов

WS-* SOAP REST

Vs

REST + SOAP. Почему нет

REST и SOAP. Одно другому не мешает!