Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo...
-
Upload
german-espinoza-cuenca -
Category
Documents
-
view
216 -
download
0
Transcript of Windows Communication Foundation Agenda ¿Qué es Windows Communication Foundation? ¿Cómo...
Windows Communication Foundation
Agenda• ¿Qué es Windows Communication
Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión
¿Qué es Windows Communication Foundation?
Muchas opciones confusas y complicadas
Remoting COMD/COM
COM+MSMQWSE
ASMX
Una alternativa simple es siempre la mejor opción
Windows Communication Foundation
Ayer:
Hoy:
Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión
¿Cómo funciona?
Datos
Modelo de Servicio
Dirección, Vínculo, Contrato y
Comportamiento
Capa Canal
Protocolos, Encoders, y Transportes Mensajes
Metadatos
Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión
¿Cómo se utiliza?[ServiceContract]public interface IMyInterface { [OperationContract] public MyOutputType MyMethod(MyInputType myData);}
Definición del Contrato de Servicio
<service name=“MyService”> <endpoint address=“MyAddress” binding=“netTcpBinding” contract=“IMyInterface” /><service/>
Configuración
[ServiceBehavior(InstanceContextMode=Single]public class MyService: IMyInterface { public MyOutputType MyMethod(MyInputType myData) { //my code … }}
Implementación del Contrato
(Tipo de Servicio)
¿Cómo lo Despliego?
• Para servicios HTTP sobre Windows XP® SP2 & WS2K3• Para cualquier servicio sobre Windows Vista® and Windows
Server® “Longhorn” • Probada confiabilidad, escalabilidad, y seguridad• Requiere un archivo .svc para identificar el tipo de servicio
Web Host dentro de IIS:
Self-Host dentro de cualquier proceso .NET:
• Disponible para cualquier servicio • Aplicaciones de consola, Aplicaciones windows, Servicios .NET
NT…
Desarrollando un servicio y cliente simple
Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión
Todo a cerca de los VínculosUd. Puede seleccionar un vínculo pre-definido :
<endpoint name=“MyService” address=“MyAddress” binding=“netTcpBinding” contract=“IMyInterface” />
NetPeerTcpBinding
NetMSMQBinding
NetNamePipesBinding
NetTcpBinding
WsHttpBinding
BasicHttpBinding
Binding
.NET Peer Peer
.NET.NET via MSMQ
.NET.NET across processesSecure, reliable duplexed
.NET.NET across processesSecure, reliable duplexed
Basis for WS-* interopSupports WS-Security, WS-RM, WS-Tx
Basic Profile 1.1 Interop and Intergration w/ASMX
Purpose
Ud puede personalizar un vinculo pre-definido
<services> <service name=“MyService”> <endpoint address=“MyAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/></services><bindings> <wsHttpBinding> <binding name=“MyReliableBinding”>
<reliableSession enabled=“true” ordered=“true” </binding> </wsHttpBinding></bindings>
Todo a cerca de los Vínculos
Ud puede definir vínculos personalizados<?xml version=“1.0” encoding=“UTF-8” ?><configuration> <system.serviceModel> <services> <service
name=“MyService”><endpoint address=“MyAddress” binding=“customBinding” bindingConfiguration=“MyCustomBinding” contract=“IMyInterface” />
</service> </services> <bindings> <customBinding> <binding name="MyCustomBinding"> <reliableSession advancedFlowControl="true” /> <security authenticationMode=“Kerberos” />
<binaryMessageEncoding /> <tcpTransport maxMessageSize=“9223372036854775807" />
</binding> </customBinding> </bindings> </system.serviceModel></configuration>
Todo a cerca de los Vinculos
Hospedando un Servicio TCP y Configurando los vínculos
Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión
Todo a cerca de DireccionesLa porción del esquema de una dirección correspondiente
al protocolo de transporte:
Los esquemas indican cuales protocolos han sido estandarizados.
NetNamedPipesBinding
NetMSMQBinding
NetTcpBinding
BasicHttpBinding, WsHttpBinding
Binding
net pipe://…
net msmq://…
net tcp://…
http://...
Scheme
Todo a cerca de DireccionesUn punto de término de una Dirección es relativo
a la base de la dirección:
Para un servicio Web-Hosted, la dirección base es la del directorio virtual
<services> <host> <baseAddresses> <add baseAddress="http://localhost:8000/MyBaseAddress"/> </baseAddresses> </host> <service name=“MyService”> <endpoint address=“MyEndpointAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/></services>
Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión
Todo a cerca de los ContratosObserve otra vez esta declaracion de servicio:
[ServiceContract]public interface IMyInterface{ [OperationContract] public MyOutputType MyMethod(MyInputType myData);}
¿Cómo MyOutputType y MyInputType son serializados dentro de los mensajes?
• La Serialización es hecha por DataContractSerializer por defecto• Manipulación incorporada para los tipos de.NET Framwork• Tipos definidos por el usuario requiren Data Contracts:
[DataContract]public class MyDataContract{ [DataMember]
public string MyField; }
[ServiceContract][XmlSerializerFormat]public interface IMyInterface
• Se puede optar por XmlSerializer: pero es más lento
Agenda• ¿Qué es Windows Communication Foundation? • ¿Cómo funciona?• ¿Cómo se usa y despliega?• Vínculos• Direcciones• Contratos• Seguridad• Administración• Integración y expansión
Todo sobre la SeguridadAutenticación• Un mensaje puede incorporar un token de
seguridad• El tipo de token de seguridad se configura con el vínculo
• Soporte incoporado para estos tipos de token: • Windows (Kerberos or NTLM)• Username (un usuario y una clave)• Certificado X.509• CardSpace tokens• SAML tokens
• Se puede agregar soporte para token personalizados
Autorización• Configuración de Autorización• Opciones:
• Para usuarios Autenticados usando Token de Windows:
• Permisos principales• Proveedor de Roles de ASP.NET
• Para usuarios Autenticados usando otros token:• Administrador del Servicio de Autorizaciones
Seguridad a nivel de mensages
Conclusiones
Interoperable ProductivoDesarrollo Orientado a Servicios
• Soporte a la especificación de WS-*
• Compatible con tecnologías para distribución de aplicaciones de Microsoft
• Unifica las tecnología de distribución actuales
• Desarrollo basado en atributos
• Integración con Visual Studio
• Permite el desarrollo de servicios con bajo acoplamiento
• Comunicación basada en configuración
Windows Communication Foundation establece un modelo de programación unificado para la programación de sistemas distribuidos,
orientado a servicios.
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.