SlideShare uma empresa Scribd logo
Integrando aplicações
usando Windows
Communication Foundation 4.0

    André Luís Bonfante
    Analista de Desenvolvimento de Software
    Andre_Bonfante@Dell.com
Tecnologias Microsoft para
Integração de Aplicações
• Ao longo dos anos, acompanhamos o surgimento de diversas
  tecnologias Microsoft para integração de aplicações;
• Cada tecnologia possuía um modelo de programação
  diferente, portanto o desenvolvedor tinha de despender um
  esforço considerável de análise e optar pela opção que, de
  forma geral, atendesse melhor os requisitos.


 DCOM
            COM+
                        .NET REMOTING
                                   MSMQ
                                              ASMX/WSE
  2                                                            2
Tecnologias Microsoft para
Integração de Aplicações
• Atualmente, vem crescendo a necessidade de integrarmos
  aplicações de diferentes plataformas;
• Alinhada a essa demanda crescente por interoperabilidade e
  desacoplamento, vêm se consolidando as aplicações orientadas
  a serviço (SOA), onde são criados serviços expostos através de
  protocolos padronizados como HTTP e formatos de mensagens
  amplamento adotados como SOAP, XML, RSS e JSON.


                          SOAP/HTTP           Java Application
                                                   Linux
      .NET Application
         Windows
                          RSS/HTTP
                                             PHP Application
  3                                              Linux
                                                                 3
Simple Object Access Protocol
(SOAP )
• SOAP é um formato simples e padronizado de mensagens
  baseado em XML para comunicação entre
  aplicações, independente de plataforma e linguagem, de
  acordo com as WS-specifications;
• As mensagens SOAP são compostas por um cabeçalho onde
  especificamos os protocolos WS-* implementados pelo serviço
  e um corpo, onde incluimos as mensagens;
                                                 <?xml version="1.0"?>
Security    Reliable   Transactions              <soap:Envelope

                                      Metadata
           Messaging                               xmlns:soap=http://www.w3.org/2003/05/soap-
                                                 envelope”>
                                                   <soap:Header>
                                                   </soap:Header>
           Messaging                               <soap:Body>
                                                     <GetExchangeRatesRequest>
                                                       <SourceCurrency>USD</SourceCurrency>
                                                       <TargetCurrency>BRL</TargetCurrency>
                                                     </GetExchangeRatesRequest>
                 XML                               </soap:Body>
                                                 </soap:Envelope>
  4
                                                                                            4
WS-* Specifications
• WS-* é um termo genérico abrangendo diversas especificações de
  requisitos não-funcionais implementados pelo serviço,
  determinando padrões para diversos aspectos da aplicação, como
  suporte a transações, criptografia de mensagens e tolerância a
  falhas;

                        WS-Reliable                WS-
WS-Security
                        Messaging              Transactions
WS-SecureConversation
                                               WS-AtomicTransaction
        WS-Policy       WS-ReliableMessaging
        WS-Trust
       WS-ID-WSF                                 WS-Coordination
      WS-Federation
       WS-Privacy          WS-RM-Policy
                                                WS-BusinessActivity
        WS-Test
  5                                                                   5
WS-* Specifications
• Em contrapartida, as tecnologias de serviços ainda estão
  amadurecendo e quanto maior o número de WS-*
  specifications adotadas, menor será a interoperabilidade;




  6                                                           6
Era pré-WCF
Funcionalidade         .NET           MSMQ         ASMX        WSE                  WCF
                       Remoting
    Plataformas         Windows       Windows      Independe     Independente       Independente
                                                      nte
     Protocolos         HTTP, TCP,    HTTP, TCP,     HTTP        HTTP, TCP, UDP      HTTP, TCP,
                       Named Pipes      UDP                                         Named Pipes,
                                                                                     MSMQ, P2P
    Formatos de        Binário,SOAP   Binário,SO     SOAP        SOAP, Binário      SOAP/Binário(
     mensagens                            AP                       (MTOM)           MTOM)/RSS/J
                                                                                      SON/XML
Suporte a transações       Sim           Sim         Não              Não                 Sim
 WS-* Specifications       N/A           N/A       WS-Basic-         Security,      Amplamente
                                                    Profile    SecureConveration,    suportadas
                                                                  Trust, WS-RM
    Mensagens              Sim           Sim         Não              Sim                 Sim
    assíncronas
Modelo unificado de        Não           Não         Não              Não                 Sim
  programação
 Suporte a múltiplos       N/A           N/A         Não              Não                 Sim
                                                                                                7
     7
     endpoints
Windows Communication
Foundation
• WCF é um framework que oferece todas as vantagens das
  tecnologias que o precederam, através um único modelo de
  programação para desenvolvimento aplicativos SOA;
• O modelo de programação é unificado, sendo possível expor
  um mesmo serviço usando SOAP e REST;




  8                                                           8
Windows Communication
 Foundation
• Através de configuração, expomos diversas opções aos clientes
  consumindo o serviço, cada uma com combinações diferente
  de protocolo, formato das mensagens, design e WS-*
  specifications;
Cliente        Requisito          Localização Protocolo   Formato WS-*
.NET 4.0 Web    Performance e       Intranet     TCP      MTOM     WS-Reliability, WS-
 Application       suporte a                                       AtomicTransaction
                  transações
Java Desktop     Segurança,         Internet     HTTP      SOAP    WS-Reliability, WS-
 Application   Confiabilidade e                                    AtomicTransaction,
                  suporte a                                               WS-
                 transações                                       SecureConversation,
                                                                       WS-Policy
.NET 4.0 Web    Escalabilidade      Internet     HTTP      REST          Nenhuma
 Application
   9
                                                                                    9
Endpoints
• Os serviços são expostos aos clientes através dos endpoints;
• Os endpoints são compostos por três elementos, também conhecidos como
  ABC:
    – Address: o endereço onde o serviço está disponível;
    – Binding: especificam como clientes e WCF services se comunicam através do
      endpoint, determinando o protocolo de transporte, encoding e protocolos a serem
      utilizados;
    – Contract: define as operações suportadas e quais os formatos das mensagens de
      request, response e failure suportadas;
• Endpoints são utilizados tanto para expor serviços, como para consumir
  serviços;
 <service name="InteropDay.Demo.Service1">
     <endpoint address="net.tcp://localhost:8082/MyService" binding="netTcpBinding"
            name="netTcpBindingEndpoint" contract="InteropDay.Demo.IService1" />
     <endpoint address="http://localhost:8083/MyService" binding="wsHttpBinding"
            name="wsHttpBindingEndpoint" contract="InteropDay.Demo.IService1"/>
     <endpoint address="http://localhost:8085/MyService/mex"
            binding="mexHttpBinding" contract="IMetadataExchange" />
 </service>
   10                                                                                 10
Hospedando WCF Services
• O WCF também oferece flexibilidade quanto à tecnologia a ser
  utilizada para hospedar o serviço;
• Virtualmente qualquer tipo de aplicação .NET pode atuar como
  um host de um WCF service. A escolha da tecnologia de host
  depende dos protocolos de comunicação a serem suportados.

 Internet Information   Windows Activation   Self Hosted Process
       Services             Services           (any .NET app)
                               HTTP                 HTTP
                               TCP                   TCP
         HTTP               Named Pipes          Named Pipes
                               P2P                   P2P
                              MSMQ                 MSMQ
  11                                                             11
Demo: Criação de um WCF Service




12                                12
13   13
Backup Slides




14              14
Endpoints (Binding)
• Bindings detalham o mecanismo de comunicação que deve ser
  utilizando quando conectando ao endpoint , composto por:
   – definição dos protocolos que devem ser usados ao enviar as mensagens;
   – definição do protocolo de comunicação, como TCP, Named Pipes ou HTTP;
   – Definição do encoding das mensagens que são enviadas ao endpoint, como
     binário, SOAP, MTOM e XML;
• Os bindings são compostos por diversos binding
  elements, garantindo o máximo de flexibilidade. As informações
  contidas no binding são utilizadas pelo runtime para criação da
  channel stack composta de canais de transporte e protocolo
  utilizados para troca das mensagens;


           Protocol            Transport   Transport            Protocol
  Client              Format                           Format              Service
           Channel              Channel     Channel             Channel


  15                                                                          15
Endpoints (Binding)
• O WCF prevê um conjunto de bindings predefinidos que podemos
  utilizar para definir múltiplos endpoints que atendam às
  necessidades de cada cliente:
 Binding                     Interporabili   Transporte Encoding          Transações
                             dade
       BasicHttpBinding        WS Basic         HTTP          SOAP           Não
                               Profile 1.1
        WsHttpBinding             WS            HTTP       SOAP/MTOM         Sim
      WsDualHttpBinding           WS            HTTP       SOAP/MTOM         Sim
       WebHttpBinding             WS         HTTP (REST)    HTTP 1.1         Não
                                                            Requests
        NetTcpBinding             .NET          TCP        SOAP/MTOM         Sim
      NetPeerTcpBinding           .NET          P2P        SOAP/MTOM         Sim
    NetNamedPipesBinding          .NET         Named       SOAP/MTOM         Sim
                                                Pipes
      NetMsmqBinding              .NET         MSMQ        Binário/SOAP      Sim
  16MsmqIntegrationBinding      MSMQ           MSMQ        Binário/SOAP      Sim       16
Endpoints (Contract)
• Os contratos definem as operações e os tipos de mensagens
  suportados pelo serviço. A utilização de contratos provê uma
  segregação clara entre a definição do serviço e sua
  implementação;
• A definição dos contratos no modelo de programação do WCF se
  dá através da adição de atributos existentes no assembly
  System.ServiceModel;

 [ServiceContract]                             [DataContract]
 public interface IMyService1                  public class MyResult
 {                                             {
     [OperationContract]                           [DataMember]
     MyResult MyOperation1(string value);          public bool MyResultValue {
                                                       get; set;
          [OperationContract]                      }
          string MyOperation2(string value);   }
 }
     17                                                                          17

Mais conteúdo relacionado

Mais procurados

Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
limadavi
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Adriano Teixeira de Souza
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
Waelson Negreiros Nunes
 
Apresentação servidores de aplicação
Apresentação   servidores de aplicaçãoApresentação   servidores de aplicação
Apresentação servidores de aplicação
Helen Picoli
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web Services
Fabio Leal
 
O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?
Bruno Borges
 
Web service
Web serviceWeb service
Web service
Junior Moraes
 
15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas
Helder da Rocha
 
Facilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações JavaFacilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações Java
Paula Santana
 
Integração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoIntegração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS Assíncrono
Átilla Silva Barros
 

Mais procurados (10)

Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
 
Apresentação servidores de aplicação
Apresentação   servidores de aplicaçãoApresentação   servidores de aplicação
Apresentação servidores de aplicação
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web Services
 
O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?O que ganhamos com Java e Cloud Computing?
O que ganhamos com Java e Cloud Computing?
 
Web service
Web serviceWeb service
Web service
 
15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas
 
Facilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações JavaFacilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações Java
 
Integração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoIntegração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS Assíncrono
 

Semelhante a Interop day wcf_presentation

Sistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web ServicesSistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web Services
Keyo Galvao
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soap
Jeison Barros
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
mdmansur
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
DNAD
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
blogspheregroup
 
Trabalho Final PSDC - Simião
Trabalho Final PSDC - SimiãoTrabalho Final PSDC - Simião
Trabalho Final PSDC - Simião
Simião Lucio Leal Queiroz
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
blogspheregroup
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
João Abussamra Neto
 
Trabalho Web Services
Trabalho Web ServicesTrabalho Web Services
Trabalho Web Services
Juliana Cindra
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCF
Fabian Gehrke
 
Arquiteturas soa_woa_rest
Arquiteturas soa_woa_restArquiteturas soa_woa_rest
Arquiteturas soa_woa_rest
apssocial2011
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
Fabricio Carvalho
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
Helder da Rocha
 
Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHPelliando dias
 
Web services
Web servicesWeb services
Web services
Sérgio Rocha
 
Web Services Xml
Web Services XmlWeb Services Xml
Web Services Xml
UFMG
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .net
Gabii Fonseca
 
SOA e Web Services
SOA e Web ServicesSOA e Web Services
SOA e Web Services
sergiocrespo
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
aviram
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
Alexandre Antunes
 

Semelhante a Interop day wcf_presentation (20)

Sistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web ServicesSistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web Services
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soap
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
Trabalho Final PSDC - Simião
Trabalho Final PSDC - SimiãoTrabalho Final PSDC - Simião
Trabalho Final PSDC - Simião
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
Trabalho Web Services
Trabalho Web ServicesTrabalho Web Services
Trabalho Web Services
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCF
 
Arquiteturas soa_woa_rest
Arquiteturas soa_woa_restArquiteturas soa_woa_rest
Arquiteturas soa_woa_rest
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Mini Curso Web Services com PHP
Mini Curso Web Services com PHPMini Curso Web Services com PHP
Mini Curso Web Services com PHP
 
Web services
Web servicesWeb services
Web services
 
Web Services Xml
Web Services XmlWeb Services Xml
Web Services Xml
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .net
 
SOA e Web Services
SOA e Web ServicesSOA e Web Services
SOA e Web Services
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 

Interop day wcf_presentation

  • 1. Integrando aplicações usando Windows Communication Foundation 4.0 André Luís Bonfante Analista de Desenvolvimento de Software Andre_Bonfante@Dell.com
  • 2. Tecnologias Microsoft para Integração de Aplicações • Ao longo dos anos, acompanhamos o surgimento de diversas tecnologias Microsoft para integração de aplicações; • Cada tecnologia possuía um modelo de programação diferente, portanto o desenvolvedor tinha de despender um esforço considerável de análise e optar pela opção que, de forma geral, atendesse melhor os requisitos. DCOM COM+ .NET REMOTING MSMQ ASMX/WSE 2 2
  • 3. Tecnologias Microsoft para Integração de Aplicações • Atualmente, vem crescendo a necessidade de integrarmos aplicações de diferentes plataformas; • Alinhada a essa demanda crescente por interoperabilidade e desacoplamento, vêm se consolidando as aplicações orientadas a serviço (SOA), onde são criados serviços expostos através de protocolos padronizados como HTTP e formatos de mensagens amplamento adotados como SOAP, XML, RSS e JSON. SOAP/HTTP Java Application Linux .NET Application Windows RSS/HTTP PHP Application 3 Linux 3
  • 4. Simple Object Access Protocol (SOAP ) • SOAP é um formato simples e padronizado de mensagens baseado em XML para comunicação entre aplicações, independente de plataforma e linguagem, de acordo com as WS-specifications; • As mensagens SOAP são compostas por um cabeçalho onde especificamos os protocolos WS-* implementados pelo serviço e um corpo, onde incluimos as mensagens; <?xml version="1.0"?> Security Reliable Transactions <soap:Envelope Metadata Messaging xmlns:soap=http://www.w3.org/2003/05/soap- envelope”> <soap:Header> </soap:Header> Messaging <soap:Body> <GetExchangeRatesRequest> <SourceCurrency>USD</SourceCurrency> <TargetCurrency>BRL</TargetCurrency> </GetExchangeRatesRequest> XML </soap:Body> </soap:Envelope> 4 4
  • 5. WS-* Specifications • WS-* é um termo genérico abrangendo diversas especificações de requisitos não-funcionais implementados pelo serviço, determinando padrões para diversos aspectos da aplicação, como suporte a transações, criptografia de mensagens e tolerância a falhas; WS-Reliable WS- WS-Security Messaging Transactions WS-SecureConversation WS-AtomicTransaction WS-Policy WS-ReliableMessaging WS-Trust WS-ID-WSF WS-Coordination WS-Federation WS-Privacy WS-RM-Policy WS-BusinessActivity WS-Test 5 5
  • 6. WS-* Specifications • Em contrapartida, as tecnologias de serviços ainda estão amadurecendo e quanto maior o número de WS-* specifications adotadas, menor será a interoperabilidade; 6 6
  • 7. Era pré-WCF Funcionalidade .NET MSMQ ASMX WSE WCF Remoting Plataformas Windows Windows Independe Independente Independente nte Protocolos HTTP, TCP, HTTP, TCP, HTTP HTTP, TCP, UDP HTTP, TCP, Named Pipes UDP Named Pipes, MSMQ, P2P Formatos de Binário,SOAP Binário,SO SOAP SOAP, Binário SOAP/Binário( mensagens AP (MTOM) MTOM)/RSS/J SON/XML Suporte a transações Sim Sim Não Não Sim WS-* Specifications N/A N/A WS-Basic- Security, Amplamente Profile SecureConveration, suportadas Trust, WS-RM Mensagens Sim Sim Não Sim Sim assíncronas Modelo unificado de Não Não Não Não Sim programação Suporte a múltiplos N/A N/A Não Não Sim 7 7 endpoints
  • 8. Windows Communication Foundation • WCF é um framework que oferece todas as vantagens das tecnologias que o precederam, através um único modelo de programação para desenvolvimento aplicativos SOA; • O modelo de programação é unificado, sendo possível expor um mesmo serviço usando SOAP e REST; 8 8
  • 9. Windows Communication Foundation • Através de configuração, expomos diversas opções aos clientes consumindo o serviço, cada uma com combinações diferente de protocolo, formato das mensagens, design e WS-* specifications; Cliente Requisito Localização Protocolo Formato WS-* .NET 4.0 Web Performance e Intranet TCP MTOM WS-Reliability, WS- Application suporte a AtomicTransaction transações Java Desktop Segurança, Internet HTTP SOAP WS-Reliability, WS- Application Confiabilidade e AtomicTransaction, suporte a WS- transações SecureConversation, WS-Policy .NET 4.0 Web Escalabilidade Internet HTTP REST Nenhuma Application 9 9
  • 10. Endpoints • Os serviços são expostos aos clientes através dos endpoints; • Os endpoints são compostos por três elementos, também conhecidos como ABC: – Address: o endereço onde o serviço está disponível; – Binding: especificam como clientes e WCF services se comunicam através do endpoint, determinando o protocolo de transporte, encoding e protocolos a serem utilizados; – Contract: define as operações suportadas e quais os formatos das mensagens de request, response e failure suportadas; • Endpoints são utilizados tanto para expor serviços, como para consumir serviços; <service name="InteropDay.Demo.Service1"> <endpoint address="net.tcp://localhost:8082/MyService" binding="netTcpBinding" name="netTcpBindingEndpoint" contract="InteropDay.Demo.IService1" /> <endpoint address="http://localhost:8083/MyService" binding="wsHttpBinding" name="wsHttpBindingEndpoint" contract="InteropDay.Demo.IService1"/> <endpoint address="http://localhost:8085/MyService/mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> 10 10
  • 11. Hospedando WCF Services • O WCF também oferece flexibilidade quanto à tecnologia a ser utilizada para hospedar o serviço; • Virtualmente qualquer tipo de aplicação .NET pode atuar como um host de um WCF service. A escolha da tecnologia de host depende dos protocolos de comunicação a serem suportados. Internet Information Windows Activation Self Hosted Process Services Services (any .NET app) HTTP HTTP TCP TCP HTTP Named Pipes Named Pipes P2P P2P MSMQ MSMQ 11 11
  • 12. Demo: Criação de um WCF Service 12 12
  • 13. 13 13
  • 15. Endpoints (Binding) • Bindings detalham o mecanismo de comunicação que deve ser utilizando quando conectando ao endpoint , composto por: – definição dos protocolos que devem ser usados ao enviar as mensagens; – definição do protocolo de comunicação, como TCP, Named Pipes ou HTTP; – Definição do encoding das mensagens que são enviadas ao endpoint, como binário, SOAP, MTOM e XML; • Os bindings são compostos por diversos binding elements, garantindo o máximo de flexibilidade. As informações contidas no binding são utilizadas pelo runtime para criação da channel stack composta de canais de transporte e protocolo utilizados para troca das mensagens; Protocol Transport Transport Protocol Client Format Format Service Channel Channel Channel Channel 15 15
  • 16. Endpoints (Binding) • O WCF prevê um conjunto de bindings predefinidos que podemos utilizar para definir múltiplos endpoints que atendam às necessidades de cada cliente: Binding Interporabili Transporte Encoding Transações dade BasicHttpBinding WS Basic HTTP SOAP Não Profile 1.1 WsHttpBinding WS HTTP SOAP/MTOM Sim WsDualHttpBinding WS HTTP SOAP/MTOM Sim WebHttpBinding WS HTTP (REST) HTTP 1.1 Não Requests NetTcpBinding .NET TCP SOAP/MTOM Sim NetPeerTcpBinding .NET P2P SOAP/MTOM Sim NetNamedPipesBinding .NET Named SOAP/MTOM Sim Pipes NetMsmqBinding .NET MSMQ Binário/SOAP Sim 16MsmqIntegrationBinding MSMQ MSMQ Binário/SOAP Sim 16
  • 17. Endpoints (Contract) • Os contratos definem as operações e os tipos de mensagens suportados pelo serviço. A utilização de contratos provê uma segregação clara entre a definição do serviço e sua implementação; • A definição dos contratos no modelo de programação do WCF se dá através da adição de atributos existentes no assembly System.ServiceModel; [ServiceContract] [DataContract] public interface IMyService1 public class MyResult { { [OperationContract] [DataMember] MyResult MyOperation1(string value); public bool MyResultValue { get; set; [OperationContract] } string MyOperation2(string value); } } 17 17