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

31
Реализация REST и SOAP сервисов с помощью WCF Киреев Артем Разработчик Codemasters Intl. akireev@codemastersintl. com

description

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

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

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

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

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

Codemasters Intl.akireev@codemastersintl

.com

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

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

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

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

Веб-сервисы

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

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

Веб-сервисы

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

1998

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

XML-RPC пример

Запрос

Ответ

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

Веб-сервисы

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

1998

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

Веб-сервисы

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

1998 1998

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

Веб-сервисы

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

20031998 1998

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

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

SOAP

Simple object access protocol

XML

HTTP

FTPSMTP

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

SOAP. Запрос

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

SOAP. Ответ

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

SOAP конверт

Заголовок

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

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

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

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

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

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

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

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

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

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

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

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

WSDL

SOAP

UDDI

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

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

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

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

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

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

WSDL

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

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

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

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

 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 для создание веб-сервисов.

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

Биндинги 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

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

Веб-сервисы

20031998 1998

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

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

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

Веб-сервисы

20031998 1998

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

2004

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

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

REST

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

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

REST - Representational State Transfer

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

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

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

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

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

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

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

REST на .Net

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

OpenRasta

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

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

ServiceStack

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

REST или SOAP

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

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

2011

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

2012

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

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

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

WS-* SOAP REST

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

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

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

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

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

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

Vs

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

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

Быстрее

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

Проще

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

WS-* SOAP REST

Vs

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

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

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

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

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

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

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

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

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

WS-* SOAP REST

Vs

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

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

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