View
5.181
Download
2
Category
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. Одно другому не мешает!
Recommended