72
Your Business, Connected Su Negocio, Conectado WCF y su relación con BizTalk Server 2006 R2 Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Embed Size (px)

Citation preview

Page 1: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF y su relación con BizTalk Server 2006 R2

Israel Garcia / Pablo JuncoApp. & Plat. Development ConsultantsMicrosoft Services

Page 2: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Prerequisitos de la sesión

Algunas experiencias básicas asumidasWindows Communication Foundation ;)BizTalk Server 2004/2006

Page 3: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Agenda

Windows Communication Foundation (WCF)Introducción a WCF

InterfacesContratosImplementación

ComunicacionesCanalesBindings (Caracteristicas)

TransaccionesSeguridad

ExtensibilidadBehaviorsAutorización y AutenticaciónProxies Cliente

Configuración

Demostración

Page 4: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Agenda (cont)

Relación con BizTalk Server 2006 R2Conceptos principalesPues eso, como se relacionan Adaptadores de transporte de WCF para BizTalk Server

Demostración todo junto

Page 5: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Windows Communication Foundation (WCF)

Page 6: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Introducción a WCF

Page 7: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Interfaces

Es el punto de entrada para consumir un servicio.Desacoplan el uso del servicio de la implementación del mismo.Facilitan la integración se sistemas.

Seguridad

Servicios

InterfazTransaccione

sComunicacione

s

Contratos

Page 8: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Contratos

Establecen un lenguaje común.Los contratos definen una semántica de negocio, abstrayéndonos de la complejidad técnica.Facilitan la integración.

Seguridad

Servicios

InterfazTransaccione

sComunicacione

s

Contratos

Page 9: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Implementación

Es el punto donde procesamos técnicamente el negocio descrito por el servicio.Un servicio puede ser un punto y final o un punto y seguido en una cadena de elementos que colaboran en un sistema.

Seguridad

Servicios

InterfazTransaccione

sComunicacione

s

Contratos

Page 10: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF: Soluciones completas

WCF nos provee de todos los elementos para construir una solución.WCF facilita la construcción de servicios separando Interfaz, Implementación y Contratos.WCF también nos facilita independizar la implementación del uso de Aspectos como la Seguridad, Transacciones, Comunicaciones, etc.WCF es un Framework Extensible.

Page 11: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF: Soluciones completasNegocio

Interfaces y ContratosPolíticas de Servicio, Namespaces, …

ImplementaciónAspectos: Transacciones, Seguridad, …Extensibilidad mediante Behaviors e Inspectors

ComunicacionesProtocolos: TCP, HTTP, …Seguridad, Garantía de Entrega, Routing, …

HostingIIS, WAS, Windows Service, COM+, …

Page 12: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Comunicaciones en WCF

Page 13: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF Communication Runtime

ClienteLos proxies cumplen la interfaz de servicio y nos independizan del uso de la tecnología.Los proxies son generados fácilmente en Visual Studio 2008/2005 (con Extensiones)Podemos intervenir en el proceso de envío y en tratamiento del mensaje.Podemos aplicar características de enrutado, seguridad, factorías de canales,…

ServicioCliente

Método Método Métodos Métodos

protocolo

protocolo

codificación

transporte

protocolo

protocolo

codificación

transporte

Capa de

Servicio

Capa de Mensajería

Proxy Dispatcher

0101101

Cadena de datos en bytes

Objetos

Mensaje

Pila del canal Pila del canal

Mensaje

Objetos

Page 14: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF Communication Runtime

ServicioEl servicio solo se compone de la implementación de la interfaz. El “listener” nos abstrae de la comunicación, seguridad, …Podemos ampliar el sistema con nuestros propios protocolos.Podemos intervenir en el proceso de recepción y en tratamiento del mensaje.

ServicioCliente

Método Método Métodos Métodos

protocolo

protocolo

codificación

transporte

protocolo

protocolo

codificación

transporte

Capa de

Servicio

Capa de Mensajería

Proxy Dispatcher

0101101

Cadena de datos en bytes

Objetos

Mensaje

Pila del canal Pila del canal

Mensaje

Objetos

Page 15: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF Communication Runtime

Windows Communication Foundation se basa en 3 principios: el ABC.

Address: El servicio se expone mediante un direccionamiento de solicitudes.Contract: El contrato del servicio se compone de Interfaz y Contrato de datos.Binding: Protocolo que utilizamos para conectarnos.

Windows Communication Foundation hace uso del ABC para exponer adecuadamente nuestro servicio para cada tipo de protocolo. El sistema se encarga de manera transparente de resolver:

El acceso de los clientes a través de la resolución de la cadena de llamadas (ABC -> ABC). A su vez el servicio expuesto resuelve la petición contra nuestra implementación de manera transparente.

Exponer el contrato en el formato adecuado para exponerlo hacia terceros (WSDL en servicios Web) y que se puedan consumir sin conocer detalles de la implementación.

Page 16: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Enlaces (bindings) WCF

Notas: X = No soportado, WS-A = WS-Addressing, WS-AT = WS-AtomicTransactions, OleTx = OleTransactions

* Flujo de transacciones esta deshabilitado por defecto, pero cuando se habilita, hay unos protocolos por defecto

Nombre de clase Transporte Codificación del mensaje

Versión del mensaje

Modo de seguridad

Garantía de Entrega

Flujo de Transacciones *

BasicHttpBinding HTTP XML 1.0 SOAP 1.1 Nada X X

WSHttpBinding HTTP XML 1.0 SOAP 1.2WS-A 1.0

Mensaje Desabilitado WS-AT

WSDualHttpBinding HTTP XML 1.0 SOAP 1.2 WS-A 1.0

Mensaje Habilitado WS-AT

WSFederationHttpBinding HTTP XML 1.0 SOAP 1.2 WS-A 1.0

Mensaje Disabled WS-AT

NetTcpBinding TCP Binario SOAP 1.2 Transporte Desabilitado OleTx

NetNamedPipes-Binding Named Pipes Binario SOAP 1.2 Transporte X OleTx

NetMsmqBinding MSMQ Binario SOAP 1.2 Mensaje X X

CustomBinding Tú decides Tú decides Tú decides Tú decides Tú decides Tú decides

Page 17: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Routing (Encaminamiento)

Encaminar para integrar y reutilizarSolo es requerido un punto de entradaSimplifica la extensión de arquitecturas SOA

Patrones de aplicaciónCanal (Bus) de MensajeríaFachada

Dos niveles de seguridadConsumición de servicios: Identidad del llamanteEntrega de mensajes: Identidad del sistema

La entrega no esta garantizada

Page 18: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Interfaz de encaminamiento

[RouteMatchFilterBehaviorAttribute()][ServiceContract(SessionMode = SessionMode.Allowed)]interface IWS_Route{

[OperationContract(IsOneWay = false, Action = "*", ReplyAction = "*")]

Message ProcessMessage(Message message);}

Page 19: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Servicio de encaminamiento

public Message ProcessMessage (Message message){

Uri Via = new Uri(“http://services_host/service1”);

EndpointAddress LogicalEndpointAddress = new EndpointAddress("urn:mstx-routing");

WSHttpBinding binding = new WSHttpBinding();ChannelFactory<IWS_Route> wsRouter = new

ChannelFactory<IWS_Route>(binding);IWS_Route route =

wsRouter.CreateChannel(LogicalEndpointAddress, Via);return route.ProcessMessage (message);

}

Page 20: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Seguridad

Posibilidades estándares (WS-S)Integrada (Kerberos)Certificados digitales (X509)Usuario y Contraseña

Extensión base personalizadaDistribuida e integrada con .NET

Page 21: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

SeguridadWCF nos provee cuatro alternativas de seguridad: Sin Seguridad, Seguridad de Canal de Comunicaciones, Seguridad de Mensaje, Seguridad de Canal y Mensajes.

Los niveles de seguridad dependen del canal utilizado.

En todos los casos disponemos de la posibilidad de establecer el tipo de credenciales para identificar el llamante: Kerberos, Certificados X509, UserNameAndPassword y por supuesto Custom.

Podemos extender el modelo de Autenticación y Autorización, permitiendonos manejar nuestro propio modelo de credenciales, basar el modelo de Autorización en Base de Datos o AuthorizationManager.

Page 22: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Seguridad (Personalizada) Interfaz de

encaminamiento[RouteMatchFilterBehaviorAttribute()][ServiceContract(SessionMode = SessionMode.Allowed)]interface IWS_Route{ [OperationContract(IsOneWay = false, Action = "*", ReplyAction = "*")]

Message ProcessMessage(Message message);}

Page 23: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Seguridad (Personalizada) Servicio de

encaminamientopublic Message ProcessMessage (Message message){

Uri Via = new Uri(“http://services_host/service1”);

EndpointAddress LogicalEndpointAddress = new EndpointAddress("urn:mstx-routing");

WSHttpBinding binding = new WSHttpBinding();

ChannelFactory<IWS_Route> wsRouter = new ChannelFactory<IWS_Route>(binding);

IWS_Route route = wsRouter.CreateChannel(LogicalEndpointAddress, Via);

return route.ProcessMessage (message);}

Page 24: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Transacciones

En el lado del servidorControl de la vida de la transacciónLa sesión es requeridaIndependiente del llamante

En el lado del cliente (WS-AT)Control de la vida de la transacciónIntegrado con

DTC y TransactionServicesCoordinadores

Transacciones compatibles con WS-AT

Page 25: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

TransaccionesWCF nos provee de dos modelos de Transacciones: Transacciones Propagadas desde Cliente y Transacciones en Servidor.

En caso de las Transacciones Propagadas en Cliente, están asociadas a los canales de uso. Esto permite adaptar el mecanismo de propagación de transacciones a cada tipo de canal (ejemplo: WS-AT sobre SOAP 1.2/HTTP).

Este modelo se integra con los Transaction Monitor existentes en otras tecnologías. En la plataforma Microsoft el responsable de esta tarea es el DTC (Distributed Transaction Coordinator)

En el caso de las Transacciones en Servidor, son independientes del Canal utilizado. Su ciclo de vida depende de las llamadas realizadas al Servicio.

En ambos casos, el modelo de Transacciones se integra con el modelo expuesto por System.TransactionServices.

Page 26: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Extensibilidad WCF

Page 27: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Extensibilidad (Behaviors)

[RouteMatchFilterBehaviorAttribute()][ServiceContract(SessionMode = SessionMode.Allowed)]interface IWS_Route{

[OperationContract(IsOneWay = false, Action = "*", ReplyAction = "*")Message ProcessMessage(Message message);

}

Los Behavior son extensiones de WCF a nivel de Cliente y de Servidor, que permiten modificar el comportamiento de la runtime en el cliente y servidor.

Los Behavior son clases que cumplen una interfaz y que pueden ser aplicadas desde código, haciendo uso de un atributo y a través de la configuración.

Page 28: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Extensibilidad (Inspectores)

Los Inspectores permiten interactuar con el Mensaje tanto en cliente como en servidor.

Los Inspectores se integran permitiendonos participar en:

La fase anterior al envío y posterior a la recepción del Mensaje del cliente.La fase posterior a la recepción (antes de su procesado) y la fase anterior a la respuesta en el servicio.

Los Inspectores se pueden aplicar mediante Behaviors en los servicios.

Page 29: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

demo Behaviors y Inspectores

Page 30: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Extensibilidad (Autenticación/Autorización)

Haciendo uso de las interfaces de Windows Communication Foundation podemos modificar el comportamiento en cuanto a Autenticación y Autorización en los servicios.La Autenticación puede ser adaptada y/o modificada para adecuarla a nuestras necesidades.La Autorización puede ser adaptada para trabajar con otros productos y/o soluciones como AuthorizationManager fácilmente.Estos comportamientos se aplican en cliente y servidor con el fin de conseguir una solución End To End

Page 31: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

demo Custom Autentication

Page 32: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Extensibilidad (Proxies)

La infraestructura de Proxy de WCF funciona en modo factoría, de modo que crear un proxy es en sí, crear un canal.Los canales cumplen la interfaz de servicio para ocultar complejidad. La factoría de canales puede crear canales directos y canales de enrutado.Gracias a este sistema podemos hacer uso de los servicios sin disponer del código del mismo. Visual Studio genera los contratos, la definición de interfaz y el proxy para que todo funcione.Los proxy en Runtime interceptan las llamadas para poder aplicar las distintas extensiones que hemos aplicado. Esto es posible gracias a las capacidades Nativas de .NET

Page 33: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

demo Factoría de Servicios

Page 34: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Configuración

Page 35: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Configuración<?xml version="1.0" encoding="utf-8" ?><configuration> <system.serviceModel> <services> <service name="Microsoft.ServiceModel.Samples.CalculatorService">

<!-- This endpoint is exposed at the base address provided by host: http://localhost/servicemodelsamples/service.svc --> <endpoint address="" binding="wsHttpBinding" contract="Microsoft.ServiceModel.Samples.ICalculator" />

<!-- The mex endpoint is explosed at http://localhost/servicemodelsamples/service.svc/mex --> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> </system.serviceModel>

</configuration>

Las secciones de configuracion nos permiten definir los mismos elementos que desde código.

Este es un ejemplo de una definición de servicio. Esta configuración la recibe un ServiceHost por código.

Page 36: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Configuración

<system.serviceModel>, esta sección contiene a toda la configuración referente a Windows Communication Foundation.

<behaviors>, esta sección define todos los behaviors y endpointbehaviors que se quieren aplicar a un servicio.

<bindings>, esta sección define todos los bindings aplicables a un servicio. Los bindings se aplican en modo Stack.

<client>, esta sección define la configuración de los servicios a los que un cliente se puede conectar.

<comContracts>, esta sección define que COM+ puede exponer WCF y bajo que configuración.

<diagnostics>, esta sección permite habilitar los sistemas de instrumentación de WCF como WMI, contadores, trazas, etc.

<extensions>, nos permite definir extensiones como Behaviors, nuevos modelos de Binding, etc para ser utilizados en nuestros servicios.

<serviceHostingEnvironment> , nos permite configurar caracteristicas del entorno de hosting de los servicios como la compatibilidad ASPNet, memoria para activar el servicio, etc.

Page 37: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

demo

Page 38: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Relación de WCF con BizTalk Server 2006 R2

Page 39: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Proceso CentralizadoBegin

Verify Customer

Decide

Else

ValidReport Error

Check Inventory

Decide

Else

Sufficient

End

Report Backorder

End

Decide

Backorderable

Else

Report Error

EndFulfill

Invoice

End

Receive Order

Operadores Logísticos

Clientes

EntidadesBancarias

Proveedores

SistemaRRHH

CRM

ERP

Otros Sistemas

Proceso

Servicios

Servicios

EDI / VAN

SWIF

T / V

AN

HTTP

XML / SOAP

Oracle

SAP

MSM

Q

SQL Server

Page 40: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Solución conceptual

Proceso

Fuente Destino

Un sist

ema

Otro si

stem

aTr

ansp

or

teTra

nsp

or

teEsq

ue

ma

Esq

ue

ma

Ruta

Ruta

Page 41: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Un ejemplo

Proceso Socio

A

Ad

apta

dor A

S2

ED

I

RutaSAP

Ad

apta

dor

SA

P

IDO

C

Ruta

Socio

B

WCF WS HTTP

XML

Ruta

Page 42: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Motor Principal

Arquitectura de BizTalk Server

Orquestaciones

Gestión de Instancias y Activación

Mecanismo de Suscripción/Publicación - Correlación

MessageBox

Adaptadores de Recepción y Envío

FTP

FILE

POP3

SMTP

MSMQ

WCF

HTTP

SOAP

Productos(SQL, SAP,MOSS, …)

DeTerceros

AMedida

Gestión

Configuración

Administración

Despliegue

Monitorización

Integracióncon Socios

Informes

Procesamiento de Mensajes

Validador(XML)

CodificaciónMIME / SMIME

AS2

EDI

A Medida

Resolución de socios

Ensamblador(Planos, XML)

Desamblador(Planos, XML))

Mensaje

Contexto

ContenidoPrincipal

ContenidoOtras Partes

Mapas

Reglas Negocio

Vocabularios

Políticas

Acciones

Reglas

Hechos

Page 43: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF en BizTalk Server

Expone a BizTalk Server como servicio WCF o como un consumidor (cliente) de servicios construidos en WCFProporciona nuevos escenarios

Transaciones sobre servicios WebSeguridadCodificación MTOM

Construcción sobre nueva pila de servicios Web

Page 44: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Interoperabilidad

WCF-BasicHttpSOAP 1.1 MessagingMTOMWSS SOAP Message Security 1.0WS Metadata Exchange

WCF-WsHttpSOAP 1.2 MessagingWS-Addressing 2005/08WSS SOAP Message Security 1.0/1.1WS Secure Conversation / WS TrustWS Atomic Transactions / WS CoordinationWS Metadata Exchange

Page 45: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Presentación adaptadores de WCF

Completan el puente entre BizTalk Server y .NET 3.0

Uso similar a cualquier otro adaptadorCreación de puertos de salida y localizaciones de entradaSeleccionar el adaptador WCF como transporte Configurar el adaptador para ajustar WCFConfiguración almacenada en SSO

Page 46: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Conjunto de adaptadores WCFNombre del Adaptador

WCF Binding Cuando utilizarlo

WCF-BasicHttp BasicHttpBinding Necesidad de interoperar con servicios básicos de WS-I Basic Profile 1.1

WCF-WSHttp WSHttpBinding Necesidad de interoperar con servicios avanzados que implementen protocolos WS-*

WCF-NetTcp NetTcpBinding Cuando se necesita interactuar de forma eficiente en la máquina con aplicaciones WCF

WCF-NetNamedPipe

NetNamedPipe-Binding Cuando se necesita interactuar de forma eficiente entre máquinas con aplicaciones WCF

WCF-NetMsmq NetMsmqBinding En comunicaciones asíncronas con otras aplicaciones WCF que requieren durar

WCF-Custom Cualquiera Cuando es necesario definir una configuración de enlace (binding) personalizada para un BTS HOST marcado como “In Process”

WCF-CustomIsolated

Cualquiera Cuando es necesario definir una configuración de enlace (binding) personalizada para un BTS HOST marcado como “Isolated”

Page 47: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Arquitectura del adaptador WCF

Áreas claves a entenderContratos genéricos del adaptador WCFArquitectura de envío (Consumo)Arquitectura de recepción (Publicación)Exposición de metadatos de servicioOpciones de seguridad y transaccionesConfiguraciones del adaptador CustomIntegración con orquestaciones

Page 48: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Contratos de servicios genéricos

Los adaptadores de WCF utilizan contratos genéricos

IOneWayAsyncITwoWayAsyncITwoWayAsyncVoidetc.

Permite a los puertos procesar cualquier tipo de mensaje

Operaciones tipadas utilizando: Message, Action=“*”Las operaciones son siempre de doble sentido

Excepto cuando se utilice NetMsmqBinding

Page 49: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

ITwoWayAsyncVoid (Ejemplo)

// used to model one-way ports that don’t use NetMsmqBinding (ACKs)

[ServiceContract( Namespace="http://www.microsoft.com/biztalk/2006/r2/wcf-

adapter")]public interface ITwoWayAsyncVoid{ // Methods [OperationContract(AsyncPattern=true, IsOneWay=false, Action="*", ReplyAction="*")] IAsyncResult BeginTwoWayMethod( Message message, AsyncCallback callback, object state); void EndTwoWayMethod(IAsyncResult result); ...}

Page 50: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Arquitectura de envío

Envía mensajes utilizando el canal de WCFEl canal es dinámicamente creado por el adaptadorUn contrato genérico es utilizadoHay que especificar la acción Solo es compatible con operaciones de doble sentido (two-way)

A no ser que se utilice NetMsmqBinding

Page 51: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Mapeo de la acción

<BtsActionMapping> <Operation Name="SubmitInvoice" Action="http://example.org/SubmitInvoice"/> <Operation Name="CancelInvoice" Action="http://example.org/CancelInvoice"/></BtsActionMapping>

Se puede especificar un mapeo de acción en las propiedades de adaptador de envíoEl valor de la acción se selecciona en base de la propiedad: BTS.Operation

Page 52: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Plantillas de mensaje

<SubmitInvoice xmlns="http://example.org/billing"> <bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></SubmitInvoice>

Se puede también especificar una plantilla de mensaje para mensajes salientes con codificación para el cuerpo (xml, string, base64, hexadecimal)

Page 53: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Arquitectura de recepción

Recibe mensajes utilizando un canal WCFUn solo ServiceHost por cada localización de recepción definida

Basada en BizTalkServiceInstance

Alojada en proceso (servicio de BizTalk: BtsNtSvc.exe) o aislado (IIS)El canal es creado de forma dinámica por el adaptadorUn contrato genérico es utilizadoLa implementación del servicio publica los mensajes recibidos al MessageBoxSolo soporta operaciones de doble sentido

A no ser que se utilice NetMsmqBinding

Page 54: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

BizTalkServiceInstance

[ServiceBehavior( InstanceContextMode=InstanceContextMode.Single, ConcurrencyMode=ConcurrencyMode.Multiple)]internal sealed class BizTalkServiceInstance :

ITwoWayAsync, ITwoWayAsyncVoid, IOneWayAsync ...{ ... // implementation omitted}

Implementación de servicio genérica, responsable de la publicación de los mensajes recibidos en la MessageBox

Page 55: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

BizTalk en acción

transporte

codificador

protocolo

protocolo

Dispatcher

Pila del canal mapa

Adaptador de recepción de WCF

decodificar

desensamblar

validar

resolver al socio

Preprocesado(Pipelines)

Mapas

SOAP

Decidir que parte del mensaje se quiere

enviar

Mensaje

MensajeWCF

Mensaje BizTalk

mapa

mapa

MensajeBizTalk

Localización de recepción

Puerto de recepción

Publicación

BizTalkServiceInstance

SOAP

Body

Element

Body Element

Message Box

Page 56: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Opciones de publicación

Ensobrado (Envelope)Publicar el contenido entero del elemento <envelope> de SOAPUtilización del componente de pipeline XmlDisassembler (con cuidado de con coger también el cuerpo)

Cuerpo (por defecto)Publica el primer elemento del elemento <body> de SOAP

Ruta (Path)Identifica el elemento a través de una expresión Xpath para publicar utilizando solo reenviar (forward-only)

Page 57: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Alojamiento de los adaptadores

In-process hostingPara los adaptadores que no utilicen HTTPPosibilidad de adapatadores HTTP mediante implementación de WCF-Custom

Isolated hostingTodos los adaptadores All HTTP y WCF-CustomIsolated

El ciclo de vida de los servicios es controlado por las herramientas de administración

Page 58: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Asistentes (Wizards)

Asistente de publicaciónPublica un servicio WCF sobre http en el IISPublica metadatos para adaptadores in-proc o out-of-proc adapter en el IIS

Asistente de consumo o usoCrea mensajes y tipos de puertosCrea el equivalente a un proxy en BizTalk

Fichero de enlace (Bindings)Mapeo entre operación y acción

Page 59: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF Service Publishing Wizard

Genera solo los metadata-only de los puntos de acceso (endpoints)

Para servicios alojados en host in-proc

Genera los puntos de acceso de los serviciosPara servicios alojados en el IISProduce todos los artefactos de WCF/IIS

Se dispone de una versión por línea de comando

http://go.microsoft.com/fwlink/?LinkId=101820

Page 60: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Exposing service metadata

Receive locations are inherently untypedHence, exposing metadata doesn’t help

You can provide metadata explicitly via toolUsing the WCF Service Publishing Wizard

Page 61: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Opciones de transacción

Algunos enlaces (bindings) de WCF soportan transacionalidadSiguiendo una transacción en una localización de entrada

Se une a una transacción para publicar el mensaje en la MessageBoxSi el cliente aborta, el mensaje no es publicadoNo es posible en localizaciones de recepción de doble sentido(two-way)

Los puertos de envió también proporcionan transaccionalidad a los servicios

El MessageBox borra una transacción cuando un mensaje es enviado a un servicio externo

Page 62: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Escenarios transaccionales

De un sentido (One way)

SendAdapter

ReceiveAdapter queue

1

ExternalClient

ExternalServer

BizTalk

2

Scope of Transaction

Page 63: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Escenarios transaccionales

Doble sentido (Two way)

SendAdapter

ReceiveAdapter

OROrchestration

queue

queue

1

2

3

ExternalClient

ExternalServer

Scope of Transaction

BizTalk

Page 64: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

WCF en las orquestaciones

Los adaptadores de WCF se integran con las orquestacionesPermiten consumir servicios WCF

Vease el asistente “WCF Service Consuming”Se utiliza mediante el uso de “Add Generated Items”

Posibilita la publicación de orquestaciones como servicios WCF

Utilizar el asistente “WCF Service Publishing”

Page 65: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Propiedades de contexto

Los adaptadores definen una serie de propiedades

Proporcionan acceso a la cabecera y configuración de WCFAccesible tanto desde pipelines como orquestraciones

Nombre Descripción Promocionada?

Action Nombre de la operaciñon SiTo Destinatario (elemento de cabecera de WS-Addressing: To) Si ReplyToAddress Responder a (elemento de cabecera WS-Addressing: ReplyTo) Si

FromAddress Remitente (elemento de cabecera de WS-Addressing: From) Si InboundHeaders Todas las cabeceras recibidas (decifradas) No

OutboundCustomHeaders Todas las cabeceras salientes No

Page 66: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Message marshalling

<Envelope> <Header>

...... </Header> <Body> <A> </A> </Body></Envelope>

<Envelope> <Header>

...... </Header> <Body> <A>

</A> </Body></Envelope>

WCF Message

BTS Message

******

1

3

2

1

2

Property Name

Value

InboundHeaders

Body

***

1

2

3

WCF Message

Page 67: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

demo

Page 68: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

anuncio

Page 69: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Guía de Operaciones de BTS

Con más de 600 páginas esta guía proporciona las mejores prácticas y recomendaciones para gestionar y operar un entorno de BizTalk Server.Se puede encontrar información útil acerca de:

Planificación DespliegueMantenimiento

URL:http://msdn2.microsoft.com/en-us/library/cc296643.aspx

Page 70: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Algunas referenciasWindows Communication Foundation (WCF)

Whitepaper de David Chappell (en inglés) http://www.davidchappell.com/articles/white_papers/Introducing_WCF_in_.NET_Framework_3.5_v1.0.docx

Encaminamiento http://msdn.microsoft.com/msdnmag/issues/07/06/ServiceStation/Default.aspx?loc=es

Seguridad http://msdn.microsoft.com/msdnmag/issues/07/08/Foundations/Default.aspx?topics=/msdnmag/issues/07/08/Foundations&loc=es

Transacciones http://msdn.microsoft.com/msdnmag/issues/07/08/Foundations/Default.aspx?topics=/msdnmag/issues/07/08/Foundations&loc=es

BizTalk Server 2006 R2

Sitio de producto en España http://www.microsoft.com/spain/biztalk Adaptadores de WCF (en inglés) http://msdn2.microsoft.com/en-us/library/bb967002.aspx

Seguridad http://msdn2.microsoft.com/en-us/library/bb226495.aspx

WCF LOB Adapter SDK http://msdn2.microsoft.com/en-us/library/bb798080.aspx

Todo juntoIntegración http://msdn2.microsoft.com/en-us/library/bb973215.aspx

Page 71: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado

Q & A

http://blogs.technet.com/Israelg [email protected]

Gracias

http://blogs.technet.com/PabloJunco [email protected]

Page 72: Your Business, Connected Su Negocio, Conectado Israel Garcia / Pablo Junco App. & Plat. Development Consultants Microsoft Services

Your Business, ConnectedSu Negocio, Conectado