На сегодняшний день одним из важнейших направлений в области разработки ПО является направление (веб)-сервисов. Сервисы позволяют строить большие распределенные системы. При этом подходов к построению сервисов сегодня как минимум два - SOAP и REST. В докладе расскажу как реализовать их при помощи WCF
12. расширяемый
Заголовок предназначен всем
Используется для:
-цифровой подпись
-роутинга
-поддерживания сессий
предназначено
Тело конечному узлу
Может быть зашифровано
13.
14. WS-I – Web services interoperability organization. Специализируется на
разработке Best practices для улучшения совместимости веб-сервисов
W3C – World Wide Web Consortium. Разрабатывает и внедряет
технологические стандарты для всемирной паутины
WS-* – рекомендации от W3C как использовать стандарты веб-
сервисов чтобы улучшить совместимость.
SOAP Протокол для посылки сообщений
Язык для описания программных интерфейсов
WSDL веб-сервиса
UDDI Стандарт для индексации веб-сервисов.
15.
16. svcutil.exe Contracts.dll
WSDL – язык описания веб-сервисов
Современные языки программирования
позволяют автоматически генерировать
клиентский код для доступа к сервисам.
И позволяет генерировать WSDL по
коду сервиса
17. Windows Communication Foundation – фреймворк на
платформе .Net для создание веб-сервисов.
WCF– поддерживает и опирается на стек протоколов WS-*.
Некоторые стандарты WS-* поддерживаемые WCF:
WS-PolicyAttachment WS-Addressing
WS-Policy
WS-MetadataExchang WS-Security
WSDL 1.1
WS-Trust
SOAP 1.2
WS-ReliableMessaging WS-SecureConversation SOAP 1.1
WS-AtomicTransaction
WS-Coordination
18. В WCF каждый сервис может иметь одну или более точек привязки endpoint.
Каждый endpoint можно настроить с различными биндингами, которые задают набор
поддерживаемых WS-* стандартов
basicHttpBinding SOAP v1.1 WS Basic profile
WSHttpBinding SOAP v1.2 WS-Addressing
WS-Security WS-AtomicTransaction
WS-Trust WS-ReliableMessages
WSFederationHttpBinding + WS-Federation
21. REST - Representational State Transfer
Основан на протоколе HTTP
Различные представления JSON, XML (POX) …
Любит принцип KISS – Keep it small and simple
State Less – не хранит состояние
Работает с ресурсами по принципу CRUD
RESTful web service - веб-сервис, созданный с использованием
протокола HTTP и принципов REST
22. GET - получает ресурсы. Никогда не изменяет объект
/chat/messages – получить все сообщения
/chat/messages/23 – получить сообщения с id равным 23
/chat/messages?user=vpupkin – получить сообщения Васи
/chat/users/vpupkin/messages – получить сообщения Васи
POST - создает ресурс. PUT – обновляет ресурс.
POST /chat/messages PUT /chat/messages/13
DELETE – удаляет ресурс
DELETE /chat/messages/13
23.
24. «Нативные» технологии
WCF 3.5 + WCF REST Starter Kit
WCF 4 +
ASP.Net Web API (ex WCF Web API) входит в MVC 4
Third Party технологии
OpenRasta
ServiceStack
28. Vs
WS-* SOAP REST
Семейство протоколов и Набор архитектурных решений
стандартов
Использует HTTP как
Базируется на протоколе HTTP
транспортный протокол
Работает с операциями Работает с ресурсами
Стандарты Простота
29. Vs
WS-* SOAP REST
Может работать поверх FTP, Быстрее
SMTP, TCP
Генерация proxy по WSDL Лучше масштабируется
Поддерживает фичи в виде
транзакций, сессий и прочее Проще
30. Vs
WS-* SOAP REST
Когда необходимы сложные Когда нельзя сгенерировать
фичи вроде транзакций, proxy клиента по WSDL (iOs,
роутинга и т.д. javascript...)
Когда возможны разные Для CRUD архитектур
протоколы взаимодействия
Когда нужна высокая
Когда система состоит из масштабируемость и
разнородных узлов производительность