windows communication foundation (ejemplo).pdf

32
Windows Communication Foundation Aroa Solana Ejemplo de lectura

Upload: davidr7

Post on 09-Aug-2015

186 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Windows Communication Foundation (ejemplo).pdf

Windows Communication Foundation

Aroa Solana

Ejem

plo d

e lec

tura

Page 2: Windows Communication Foundation (ejemplo).pdf

Sinopsis: Sinopsis: Este texto se encuentra dedicado a la nue-va versión de Windows Communication Founda-tion dentro de su entorno .NET Framework 3.5.

Se abordan diversos temas relacionados con eldesarrollo de aplicaciones distribuidas y nuevosconceptos: arquitectura cliente/servicio, los enla-ces, la utilización de extremos para la comunica-ción distribuida, etc.

Se requiere conocer los fundamentos de Inter-net/Intranet, estar familiarizado XML, conocer elfuncionamiento del IIS, así como algunos conoci-mientos de programación orientada a objetos.

El lenguaje de programación utilizado a lo lar-go del texto es C#.

Aroa Solana Ruiz es Microsoft CertifiedIT Professional en Database Developer,también Microsoft Certified TechnologySpecialist en SQLServer 2005, .NETFra-mework 3.5,WindowsFormsApplications,SQL Server 2005, al igual que DatabaseDevelopment enSQLServer 2008.Actual-mente ostenta la certificación MCT (Mi-

crosoft Certified Trainer) con la que imparte cursos oficialesdeMicrosoft y trabaja como formadora en Alhambra-Eidos.

Ha impartido formación sobre la tecnología .NET, des-arrollo de aplicacionesWindows,Web, ADO,Distribuidas,WPF, WCF, WWF, Silverlight y UML; también en admi-nistración y desarrollo de bases de datos SQL Server, en2005 y 2008. Además posee experiencia en J2SE y J2EE.Dentro de la gestión de procesos posee la certificación ITILV2 Foundations.

Ejem

plo d

e lec

tura

Page 3: Windows Communication Foundation (ejemplo).pdf

Luarna

Windows Communication Foundation© Aroa Solana Ruiz, 2009© De esta edición: 2009, Luarna Ediciones, S.L.www.luarna.com

Madrid, diciembre de 2009

ISBN: 978-8492684-56-4Versión: 1.0

«Cualquier forma de reproducción, distribución, comunica-ción pública o transformación de esta obra solo puede ser re-alizada con la autorización de sus titulares, salvo excepciónprevista por la ley. Diríjase a CEDRO (Centro Español deDerechos Reprográficos, www.cedro.org) si necesita fotoco-piar o escanear algún fragmento de esta obra».

Ejem

plo d

e lec

tura

Page 4: Windows Communication Foundation (ejemplo).pdf

Windows CommunicationFoundation

Aroa Solana Ruiz

Ejem

plo d

e lec

tura

Page 5: Windows Communication Foundation (ejemplo).pdf

Índice

Índice ........................................................................5Introducción ...........................................................19

Arquitectura WCF................................................20Contratos..............................................................21Datos ....................................................................21Mensaje ................................................................21Servicio.................................................................22Tabla 1.1 ...............................................................24Policy y Binding...................................................24Service Runtime...................................................25Mensajes ...............................................................25Activación y Alojamiento.....................................26Características de WCF.......................................27Transacciones .......................................................27Alojamiento ..........................................................28Resumen...............................................................28

Capítulo 2Conceptos de WCF................................................33

Mensajes ...............................................................34Estructura de un mensaje ....................................34El sobre SOAP.....................................................35

Ejem

plo d

e lec

tura

Page 6: Windows Communication Foundation (ejemplo).pdf

Cabecera SOAP ...................................................36Cuerpo SOAP .....................................................37Programas de Mensajería.....................................41Clientes.................................................................42Servicio.................................................................43Intermediarios ......................................................45Patrones de Mensajería........................................46Simple...................................................................46Dúplex ..................................................................48Petición-Respuesta...............................................49Canales .................................................................50Pila de canales ......................................................51Seguridad..............................................................52Interoperabilidad..................................................52Transportes...........................................................53Servicios ...............................................................54Extremos ..............................................................57Direcciones...........................................................57Enlaces..................................................................58Contratos..............................................................63Comportamientos ................................................65

Capítulo 3Modelo de programación de WCF ........................67

Orientado a Servicios VSOrientado a Objetos.............................68

Modelo de Servicios.............................................70System.ServiceModel...........................................71System.ServiceModel.Channels ..........................72System.Transactions.............................................74ScvUtil.exe ...........................................................75

Ejem

plo d

e lec

tura

Page 7: Windows Communication Foundation (ejemplo).pdf

¿Cómo de útil es?.................................................76Usos Comunes .....................................................77Generación de código..........................................78Exportar Metadatos .............................................80Serialización/ Mensaje .........................................81Avanzada...............................................................81Miscelánea............................................................82Métodos de programación de WCF ...................83Declarativa ...........................................................84Explícita................................................................85Configuración ......................................................86Niveles de programación WCF ..........................88Tipado ..................................................................88No tipado .............................................................89Mensajes ...............................................................89El Proceso de desarrollo......................................90Creando nuestro primer servicio WCF..............91Código del Servicio............................................114Servicio.svc .........................................................115Web.config .........................................................115

Capítulo 4Direcciones ...........................................................117

Direcciones WCF..............................................117Tipos de Direcciones .........................................119Dirección de Extremo .......................................119Dirección Base ...................................................119Dirección MEX .................................................120Formato de Direcciones ....................................121Dirección HTTP...............................................122Dirección HTTPS.............................................123

Ejem

plo d

e lec

tura

Page 8: Windows Communication Foundation (ejemplo).pdf

Dirección TCP ..................................................124Dirección MSMQ..............................................124Dirección de Canalización con Nombre ..........125Dirección IIS......................................................126Programación de Direcciones en WCF............127La clase EndpointAdress ...................................128La propiedad de Identidad ................................129Colección de cabeceras ......................................132Programación de direcciones ............................133Dirección base....................................................133Dirección de Extremo .......................................135Especificar un fichero de configuración............135Especificación en Código ..................................137Dirección relativa...............................................138

Capítulo 5Enlaces ..................................................................140

Entendiendo los enlaces WCF ..........................140Enlaces predefinidos ..........................................142BasicHttpBinding...............................................144Propiedades BasicHttpBinding .........................145WsHttpBinding .................................................148WSDualHttpBinding.........................................152Propiedades WSDualHttpBinding ..................152WSFederationHttpBinding ..............................156Propiedades de WSFederationHttpBinding.....156NetTcpBinding ..................................................159Propiedades WS-ReliableMessaging ................160NetNamedPipeBinding .....................................164Propiedades NetNamedPipeBinding................164NetMsmqBinding ..............................................167

Ejem

plo d

e lec

tura

Page 9: Windows Communication Foundation (ejemplo).pdf

Propiedades NetMsmqBinding .........................168NetPeerTcpBinding ...........................................174Propiedades NetPeerTcpBinding......................174MsmqIntegrationBinding ..................................177Propiedades de MsmqIntegrationBinding ........177Programar Enlaces WCF ..................................181Usando Código ..................................................182Usando el Fichero de Configuración................206Caso Práctico .....................................................209

Capítulo 6Contratos ..............................................................211

Contratos WCF.................................................212Contratos y sus relaciones con el CLR.............213Service Contract ................................................213Atributo [ServiceContract] ................................216CallbackContract ...............................................217ConfigurationName...........................................218Name..................................................................219Namespace .........................................................220ProtectionLevel..................................................221SessionMode ......................................................222Tipos de Servicios..............................................223Typed..................................................................224Typed Messages .................................................225Untyped..............................................................226Atributo [OperationContract] ...........................227Action .................................................................227AsyncPattern ......................................................229IsInitiating ..........................................................230IsOneWay...........................................................232

Ejem

plo d

e lec

tura

Page 10: Windows Communication Foundation (ejemplo).pdf

IsTerminating.....................................................233Name..................................................................234ProtectionLevel..................................................234ReplyAction........................................................236Data Contracts ...................................................236Atributo [DataContract] ....................................237Name..................................................................240Namespace .........................................................241Atributo [DataMember].....................................241EmitDefaultValue ..............................................242IsRequiered ........................................................243Name..................................................................243Order ..................................................................244Atributo [KnownType] .....................................245MethodName.....................................................246Type....................................................................247Message Contracts .............................................247Atributo [MessageContract] .............................248HasProtectionLevel ...........................................249IsWrapped..........................................................250ProtectionLevel..................................................250WrapperName ...................................................251WrapperNamespace...........................................252Atributo [MessageHeader] ...............................252Actor...................................................................253MustUnderstand ................................................254Name..................................................................254Namespace .........................................................255Relay ..................................................................255Atributo [MessageBodyMember] .....................256Name..................................................................257

Ejem

plo d

e lec

tura

Page 11: Windows Communication Foundation (ejemplo).pdf

Order ..................................................................257Atributo [MessageProperty] ..............................258Name..................................................................259Programado contratos WCF.............................260Data Contract ....................................................260Message Contract ..............................................270

Capítulo 7Clientes.................................................................277

Arquitectura del cliente .....................................277Objetos Cliente ..................................................280ICommunicationObject.....................................280IExtensibleObject...............................................282Canales de Cliente .............................................283IClientChannel ..................................................283IContextChannel ...............................................284Factorías de Canales ..........................................285La Clase ChannelFactory .................................286Constructores.....................................................287Propiedades ........................................................287Métodos..............................................................289Método CreateChannel .....................................291Patrones de Comunicación del Cliente ............292One-Way............................................................293Solicitud/Respuesta............................................294Dúplex ................................................................297Servicio...............................................................298Cliente ................................................................301Cliente Dúplex usando DupplexChannelFactory

302Asíncrona............................................................304

Ejem

plo d

e lec

tura

Page 12: Windows Communication Foundation (ejemplo).pdf

Servicio...............................................................304Cliente ................................................................306Crear código de cliente......................................307Generar Código de cliente ................................308Definir Enlaces y Extremos de Cliente.............310Servicios Typed vs Servicios UnTyped .............313Invocar Operaciones de un Servicio Tipado.....314Invocar Operaciones de un Servicio no Tipado315Información de utilidad .....................................316Inicializar Canales interactivamente .................316Duración de la sesión y del canal ......................317Problemas de bloqueo .......................................318Manejo de Excepciones .....................................320Caso Práctico .....................................................321Ejemplo de programación de un Cliente..........321ChannelFactory..................................................321Dúplex ................................................................331

Capítulo 8Servicios ................................................................341

Tipos de Servicios..............................................341Typed..................................................................342Untyped..............................................................344Typed Message...................................................347Contratos de Servicio ........................................348Extremos de Servicio .........................................349A través de Código.............................................350A través del archivo de Configuración..............351Comportamientos de Servicio ...........................353Atributo ServiceBehavior...................................355AddressFilterMode ............................................356

Ejem

plo d

e lec

tura

Page 13: Windows Communication Foundation (ejemplo).pdf

AutomaticSessionShutdown ..............................357ConcurrencyMode.............................................358ConfigurationName...........................................359IgnoreExtensionDataObject..............................360IncludeExceptionDetailInFaults........................361InstanceContextMode........................................362ReleaseServiceInstanceOn-

TransactionComplete.............................363TransactionAutoCompleteOnSessionClose......364TransactionIsolationLevel .................................364TransactionTimeout ..........................................367UseSynchronizedContext ..................................368ValidateMustUnderstand ...................................368Atributo OperationBehavior..............................369AutoDisposeParameters.....................................370Impersonation ....................................................371ReleaseInstanceMode ........................................372TransactionAutoComplete.................................374TransactionScopeRequired................................375Throttling ..........................................................377InstanceContext .................................................379Manejo de Excepciones .....................................380FaultException ...................................................382Atributo FaultContract......................................383Programado un Ejemplo ...................................387

Capítulo 9Transacciones y Sesiones Fiables.........................398

Transacciones .....................................................399Atomicidad .........................................................400Consistencia .......................................................401

Ejem

plo d

e lec

tura

Page 14: Windows Communication Foundation (ejemplo).pdf

Aislamiento.........................................................401Durabilidad ........................................................402Atributos de Transaction en

System.ServiceModel ....................402Atributo ServiceBehavior...................................403Atributo OperationBehavior..............................406Atributo TransactionFlow..................................407Transación WS-Atomic .....................................408Especificar transacciones a través

de la configuración........................409Sesiones Fiables..................................................411Intercambio de Mensajes ...................................411Asegurar los mensajes ........................................416Colas...................................................................422WCF y las Colas ................................................426Buenas prácticas en el uso de Colas ..................438

Capítulo 10Seguridad ..............................................................398

Vista General......................................................442Conceptos...........................................................443Integridad ...........................................................444Confidencialidad ................................................444Autenticación .....................................................444Autorización .......................................................445¿Por qué seguridad WCF? ................................447Transferencia de Seguridad ...............................447Control de Acceso / Autenticación ...................449Miembro ASP.NET y Role Provider................452Administrador de autorizaciones. ......................456Modelo de identidad..........................................458

Ejem

plo d

e lec

tura

Page 15: Windows Communication Foundation (ejemplo).pdf

Auditoría.............................................................461Credenciales .......................................................462Comportamientos de Seguridad y Enlaces .......465Comportamientos de Seguridad........................465Credenciales de Servicio....................................466Credenciales de Cliente.....................................468Autorización de Servicio....................................470Auditoria de Servicio .........................................471Enlaces................................................................472BasicHttpBinding...............................................472WSHttpBinding.................................................473WSDualHttpBinding.........................................477NetTcpBinding ..................................................481NetNamedPipeBinding .....................................481MsmqIntegrationBinding ..................................482NetMsmqBinding ..............................................482WSFederationBinding.......................................483Asegurar Clientes y Servicios ............................484Recomendaciones...............................................488

Capítulo 11Interoperatibilidad e Integración.........................490

Interoperabilidad................................................491Protocolo de soporte para servicios Web..........491WSE (Mejoras de Servicios Web).....................496Servicio Web ......................................................496Cliente WCF ....................................................499Servicios Web ASP.NET...................................504WCF/ASP.NET Compatible con extremos .....505Extremos a través de código..............................506Extremos a través del archivo

Ejem

plo d

e lec

tura

Page 16: Windows Communication Foundation (ejemplo).pdf

de configuración .................................507Integración .........................................................508COM+ ................................................................509Herramienta de configuración del Modelo

de Servicio de COM + .......................510MSMQ ...............................................................514Servicios WCF y Clientes MSMQ ...................515

Capítulo 12Desplegar WCF....................................................518

Instalar Servicios WCF .....................................518Soporte de Sistemas Operativos ........................518Requisitos software ............................................519.NET Framework ..............................................519Internet Information Server ..............................520Microsoft Message Queuing .............................522Instalar el Servicio WCF...................................524IIS .......................................................................525Servicios Windows.............................................527Configuraciones de Servicios WCF..................528Actualización de Servicios .................................529Solución a problemasde instalaciones WCF ...530Comunicación Cliente/Servicio ........................531Comportamiento inesperado de servicios.........532Resumen.............................................................533

Capítulo 13Personalizar WCF ................................................535

La extensión de ServiceHost y la capadel Modelo de Servicio .....................536

Cliente ................................................................536

Ejem

plo d

e lec

tura

Page 17: Windows Communication Foundation (ejemplo).pdf

La Clase ClientRuntime ...................................538La Clase ClientOperation ................................539Dispensador........................................................546La Clase DispatchRuntime ..............................548La Clase DispatchOperation ............................552Comportamientos ..............................................556La extensión de la capa de canal........................557El canal del Cliente............................................559El canal del Servicio...........................................561Desarrollo de canales .........................................562Elegir el patrón de intercambio de mensajes....563Channel Factory y Channel Listener................565Añadir elementos de enlace ...............................566Extender Enlaces ...............................................569Construir Enlaces Personalizados .....................569Modificación de enlaces WCF..........................572

Capítulo 14Gestionar WCF ....................................................575

Trazas..................................................................576Realizar trazas de extremo a extremo................576Servicio de Trazas ..............................................581Actividad ............................................................582Proyecto ............................................................582Editor de configuración del Servicio ................583Configuración ...................................................586Servicios .............................................................586Cliente ................................................................587Enlaces................................................................588Diagnósticos.......................................................589Avanzado ............................................................590

Ejem

plo d

e lec

tura

Page 18: Windows Communication Foundation (ejemplo).pdf

Comportamientos de extremos ........................591Comportamientos de servicios ..........................592Extensiones.........................................................593Tareas..................................................................594Detalles...............................................................596Contador de Rendimiento.................................596

Capítulo 15Alojar Servicios WCF...........................................601

Alojar vs Auto-Alojamiento ...............................602Alojar ..................................................................602Auto-Alojar.........................................................603Rápida comparación...........................................604Opciones de alojamiento ...................................605Alojar en el IIS ...................................................605Alojar en Código Administrado ........................606Ejemplo de alojamiento .....................................609

Apédice ACaso Práctico Capítulo 5...................................625Caso Práctico Capítulo 7...................................630

Ejem

plo d

e lec

tura

Page 19: Windows Communication Foundation (ejemplo).pdf

Introducción

Este libro pretende ofrecer al lector los contenidos nece-sarios, aunque no todos, para poder preparar el examen decertificación deMicrosoft 70-503. Este libro ofrece al lec-tor una inmersión en el mundo de WCF, para que puedaprobar e ir investigando como apoyo en el estudio impres-cindible de esta materia, aún así hay que destacar que lomás importante es la experiencia que se adquiere en el trans-curso del estudio, de la creación propia de ejemplos, etc.

Para poder certificarse como MTCS: Windows Com-munication Foundation Applications, no solo hay que apro-bar el examen 70-503, sino también el 70-536 basado enMicrosoft .NET Framework- Application DevelopmentFoundation.

Después de esta pequeña introducción en las certificacio-nes empecemos a raspar en la superficie del profundo uni-verso que engloba Windows Communication Foundation.

Actualmente las empresas tienen la necesidad de poderinterconectar los procesos, las personas y la información.Por ello uno de los problemas más grandes a los que una

Ejem

plo d

e lec

tura

Page 20: Windows Communication Foundation (ejemplo).pdf

empresa ha de hacer frente es el poder integrar estos com-ponentes IT (aplicaciones, datos y sistemas).

La arquitectura Orientada a Servicios (SOA) proporcio-na una estrategia general de organización de elementos IT,en definitiva, nos brinda unmarco de diseño para la integra-ción de aplicaciones independientes de manera que se pue-da desde la red acceder a sus funcionalidades, las cuales seofrecen como servicios. WCF se basa en esta arquitectura.

Arquitectura WCF

En el corazón de WCF está una arquitectura de capas quesoporta una gran variedad de estilos para el desarrollo de apli-caciones distribuidas. La siguiente imagen ilustra la arqui-tectura de capas de Windows Communication Foundation.

Ilustración 1.1:Arquitectura en Capas de WCF

Ejem

plo d

e lec

tura

Page 21: Windows Communication Foundation (ejemplo).pdf

Esta arquitectura en capas, brinda a los desarrolladoresun nuevo modelo de programación orientado a servicios.

Contratos

Los contratos WCF contienen información relativa a loque un servicio ofrece al cliente y el tipo de informaciónque va a poner a disposición.

Existen tres tipos de contratos: de datos, de mensaje yde servicio.

Datos

Un contrato de datos estipula de manera explícita los da-tos que se intercambiarán con el servicio. El servicio y elcliente no necesitan llegar a un acuerdo sobre los tipos,pero si necesitan llegar a un acuerdo sobre los datos delcontrato. Esto incluye los parámetros y el tipo de retorno.

Mensaje

Un contrato de mensaje proporciona un control adicionalsobre un contrato de datos, en la medida en la que contro-la los mensajes SOAP enviados y recibidos por el servicio.En otras palabras, un contrato de mensaje permite perso-nalizar el tipo de formato de de los parámetros en los men-sajes SOAP.

Ejem

plo d

e lec

tura

Page 22: Windows Communication Foundation (ejemplo).pdf

Lamayoría de las veces un contrato de datos es suficien-te, pero en ocasiones puede que un poco más de controlsea necesario.

Servicio

Un contrato de servicio informa a los clientes, de lo queofrece el servicio y como comunicase con él. Piense en ellocomo una sola declaración, en la que básicamente dice «aquíestán los tipos de datos de mis mensajes, aquí es donde es-toy ubicado, y aquí están los protocolos con los que me co-munico».

Los contratos son definidos por el CLR por medio declases o interfaces. Éstas, al ser utilizadas en los servicios,son convertidas a un formato común para que el serviciopueda ser usado por distintas plataformas con total com-patibilidad.

El Service Contract es convertido en un WSDL queobtiene la descripción de las operaciones ofrecidas por elservicio (según lo definido en el Service Contract).

El Data Contract es convertido en un XML Schemaque contiene la estructura del objeto enviado o solicitadopor el servicio.

El Message Contract es convertido en un mensajeSOAP.

Ejem

plo d

e lec

tura

Page 23: Windows Communication Foundation (ejemplo).pdf

Ilustración 1.2

COMPORTAMIENTO CARACTERÍSTICAS

Capacidad Determina el número de mensajes que seprocesan

Error Especifica que acción se tomará si se pro-duce un error durante el servicio Runtime

Metadatos Controla si los metadatos están o no ex-puestos al mundo exterior

Instanciación Establece el número de instancias de unservicio

Inspección Proporciona al servicio la capacidad deinspeccionar la totalidad o una parte delmensaje

Ejem

plo d

e lec

tura

Page 24: Windows Communication Foundation (ejemplo).pdf

Transacciones Permite operaciones transaccionales, esdecir, si un proceso falla durante la ejecu-ción de un servicio, tener la capacidad depoder deshacerlo

Dispensador Cuando un mensaje se ha procesado porla infraestructura WCF, se determina laforma en que el mensaje está siendo ma-nejado y procesado

Concurrencia Determina como cada uno de los servi-cios, o instancias, manejan hilos. Este com-portamiento ayuda a controlar el núme-ro de hilos que pueden tener acceso a unadeterminada instancia de un servicio

Filtrado Permite filtrar la información contenidade parámetros en la cabecera de los mensajesT

Tabla 1.1

Policy y Binding

Los contratos de política y enlace (Policy y Binding) espe-cifican información importante como la seguridad, el pro-tocolo y otra información, de manera que esto se verificaantes de que empiece con la comunicación.

Ejem

plo d

e lec

tura

Page 25: Windows Communication Foundation (ejemplo).pdf

Service Runtime

El servicio Runtime es la capa que especifica y administralos comportamientos del servicio que ocurren durante latransferencia de información con los clientes.

La tabla 1.1 muestra los diferentes comportamientosque son gestionados por la capa del servicio Runtime.

Mensajes

La capa de mensajería define qué formatos y pautas de in-tercambio de datos pueden ser utilizados por el servicio decomunicación. Las aplicaciones cliente pueden ser desarro-lladas para acceder a esta capa ymanejar los detalles demen-sajería y trabajar directamente con los mensajes y canales.

La siguiente tabla muestra los canales y componentesque forman parte de la capa de mensajería:

COMPONENTES CARACTERÍSTICAS

Canal de seguridad Implementa la especificación de la segu-ridad, estableciendo seguridad en el men-saje

Canal fiable Garantiza la entrega del mensajede mensajería

Codificadores Permiten elegir entre diferentes codifica-dores, para después aplicarlos a mensajes

Ejem

plo d

e lec

tura

Page 26: Windows Communication Foundation (ejemplo).pdf

Canal HTTP Establece que el servicio de entrega demensajes se llevará a cabo a través del pro-tocolo HTTP

Canal TCP Establece que el servicio de entrega demensajes se llevará a cabo a través del pro-tocolo TCP

Canal del flujo Rige los patrones de los mensajes guiadosde transacciones por transacciones

Canalizaciones Permite comunicar procesoscon nombre

Canal MSMQ Canal utilizado por los servicios que inter-actúan con el servicio de colas de mensa-jes MSMQ

Tabla 1.2

Activación y Alojamiento

La capa de activación y alojamiento ofrece diferentes op-ciones en las que un servicio puede ser iniciado, así comoalojado. Los servicios pueden ser alojados en el contextode otra aplicación o pueden ser auto alojados.

La siguiente tabla muestra las opciones de activación yalojamiento proporcionados por esta capa:

Ejem

plo d

e lec

tura

Page 27: Windows Communication Foundation (ejemplo).pdf

OPCIONES CARACTERÍSTICAS

Servicio de Permite a las aplicaciones WCF que seActivación inicien automáticamente cuando se ejecu-de Windows tan en un equipo que tiene activo el servi-

cio de activación de Windows

.EXE WCF permite a los servicios que se eje-cuten como archivos ejecutables (.exe)

Servicios WCF permite a los servicios que se eje-de Windows cuten como servicios de Windows

COM+ WCF permite a los servicios que se eje-cuten como aplicaciones COM+

Tabla 1.3

En resumen, si el alojamiento se realiza sobre IIS, tenemosla posibilidad de registrar nuestros servicios para que la ac-tivación de éstos se produzca automáticamente la primeravez que un cliente accede a ellos. Esto quiere decir que siun mensaje llega a un servicio que no está activo, éste seactivará automáticamente.

CARACTERÍSTICAS DE WCF

Transacciones

Una transacción es una unidad de trabajo. Una transacciónse asegura que todo lo que la compone termine con éxito,si algo fallara, todo se deshace, es decir, todo o nada. Porejemplo, si una transacción contiene tres tareas de trabajo

Ejem

plo d

e lec

tura

Page 28: Windows Communication Foundation (ejemplo).pdf

para llevar a cabo, y durante la ejecución de esta trans-acción una de las tareas falla, entonces fallan las tres. Eléxito de la transacción sólo sucederá si todas las tareasque la componen terminan con éxito. WCF incorporaeste mismo procesamiento de transacciones en su comu-nicación.

Alojamiento

WCF permite alojar servicios que se han alojado en unconjunto de diferentes entornos, tales como servicios deWindows NT,Windows Forms, aplicaciones de consola yservicios de activación de Windows.

El alojamiento de un servicio en IIS añade unos bene-ficios, como el poder manejar la puesta en marcha y la pa-rada de un servicio de manera automática.

Resumen

Windows Communication Foundation es el siguiente pasode Microsoft en la creación de aplicaciones orientadas aservicios y aplicaciones distribuidas.

Las aplicaciones distribuidas se vuelven cada día máscomplejas, y es primordial que nuestros negocios estén co-nectados. Esta globalización informática requiere la inter-acción y la conectividad entre diferentes plataformas e in-contables dispositivos. Windows CommunicationFoundation fue concebido con el objetivo de simplificar eldesarrollo de aplicaciones distribuidas.

Ejem

plo d

e lec

tura

Page 29: Windows Communication Foundation (ejemplo).pdf

Una de sus principales características es que cuenta conun modelo de programación unificado. Es la unificaciónde numerosas capacidades que antes podíamos encontraren distintas tecnologías. Esto nos libra de tener que estarutilizando más de una tecnología para cumplir satisfacto-riamente los requerimientos. De este modo, los desarro-lladores harán una tarea de una única manera.

Las comunicaciones se enriquecen notablemente, ya queWindows Communication Foundation da la libertad al des-arrollador de utilizar múltiples transportes, distintos tiposde formatos de mensajes y diversos patrones de mensajes.

La interoperabilidad es el plato fuerte deWindowsCom-munication Foundation, ya que la comunicación es total-mente independiente de la plataforma. Los servicios utili-zados son sobres de SOAP, cuyo contenido es nada menosque XML.Windows Communication Foundation está ba-sado en la arquitectura deWeb Services y utiliza los están-dares establecidos.

Ilustración 1.3Estructura del Framework 3.0

Ejem

plo d

e lec

tura

Page 30: Windows Communication Foundation (ejemplo).pdf

El transporte es otra de sus cualidades fuertes, ya queéste se define con un protocolo neutral, de transporte neu-tral y formato neutral. Esto quiere decir que los serviciospueden utilizar tanto HTTP como TCP u otro mecanis-mo de transporte. Los desarrolladores tienen la posibili-dad de agregar nuevos proveedores de transporte, y estoes indiferente al servicio.Windows Communication Foun-dation separa el «código» del «transporte», y de esta ma-nera soporta distintos métodos de comunicación, sin re-presentar esto una carga de trabajo extra para eldesarrollador.

En la ilustración 1.3 se muestra la estructura del Frame-work 3.0 donde ya está WCF.

Aunque en la ilustración se muestra el Framework 3.0,actualmente la versión más reciente con la que contamoses el Framework 3.5 que incluye hasta el día de hoy algu-nas características como:

• Nuevas funcionalidades de los compiladores de C#3.0y VB.NET 9.0

• Soporte para árboles de expansión y métodos lambda• Métodos de extensión• Árboles de extensión para representar el código de altonivel en tiempo de ejecución

• Tipos anónimos con inferencia de tipo estático• Language Integrated Query (LINQ) contra diferen-tes orígenes.

Los cuatro componentes «nuevos» que se observan enla ilustración son:Ej

emplo

de

lectu

ra

Page 31: Windows Communication Foundation (ejemplo).pdf

• Windows Presentation Foundation (WPF) (Avalon).Nuevo subsistema de interfaces de usuario basado enXML, gráficos vectoriales que hacen uso de gráficos3D y tecnologías Direct3D.

• Windows Communication Foundation (WCF) (Índi-go). Sistema de mensajería orientado a objetos quepermite a las aplicaciones interoperar de manera lo-cal o remota de la misma forma que los serviciosWeb.

• WindowsWorkflow Foundation (WF). Permite cons-truir flujos de trabajo para automatizar tareas y trans-acciones.

• Windows CradSpace (InfoCard). Componente soft-ware que almacena identidades digitales de personasy ofrece la posibilidad de elegir una identidad para eje-cutar aplicaciones.

Por último, vamos a exponer un ejemplo, para ver quétipos de problemas puede resolver WCF.

Una compañía de alquiler de coches decide crear unanueva aplicación para reservar los coches. Los creadoresde esta aplicación de reserva de coches de alquiler sabenque la lógica empresarial que implementa debe ser accesi-ble por otro software que se ejecute dentro y fuera de lacompañía. De acuerdo con, esto, deciden integrarlo en unsitio orientado a servicios, con la lógica de la aplicación ex-puesta a otro software a través de un conjunto bien deter-minado de servicios. Para implementar estos servicios y asícomunicar con otro software, la nueva aplicación, utiliza-rá WCF.Ej

emplo

de

lectu

ra

Page 32: Windows Communication Foundation (ejemplo).pdf

Ilustración 1.4Ejemplo de aplicación en WCF

Ejem

plo d

e lec

tura