Windows Communication Foundation (ejemplo)

  • Uploaded by: davidr_7
  • 0
  • 0
  • August 2022
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Windows Communication Foundation (ejemplo) as PDF for free.

More details

  • Words: 3,587
  • Pages: 32
Loading documents preview...
tur a

ec

Windows Communication Foundation

Eje

mp

lo

de l

Aroa Solana

Sinopsis: Sinopsis: Este texto se encuentra dedicado a la nue-

de

lec tur a

va versión de Windows Communication Foundation dentro de su entorno .NET Framework 3.5. Se abordan diversos temas relacionados con el desarrollo de aplicaciones distribuidas y nuevos conceptos: arquitectura cliente/servicio, los enlaces, la utilización de extremos para la comunicación distribuida, etc. Se requiere conocer los fundamentos de Internet/Intranet, estar familiarizado XML, conocer el funcionamiento del IIS, así como algunos conocimientos de programación orientada a objetos. El lenguaje de programación utilizado a lo largo del texto es C#.

Eje mp

lo

Aroa Solana Ruiz es Microsoft Certified IT Professional en Database Developer, también Microsoft Certified Technology Specialist en SQL Server 2005, .NET Framework 3.5, Windows Forms Applications, SQL Server 2005, al igual que Database Development en SQL Server 2008. Actualmente ostenta la certificación MCT (Microsoft Certified Trainer) con la que imparte cursos oficiales de Microsoft y trabaja como formadora en Alhambra-Eidos. Ha impartido formación sobre la tecnología .NET, desarrollo de aplicaciones Windows, Web, ADO, Distribuidas, WPF, WCF, WWF, Silverlight y UML; también en administración y desarrollo de bases de datos SQL Server, en 2005 y 2008. Además posee experiencia en J2SE y J2EE. Dentro de la gestión de procesos posee la certificación ITIL V2 Foundations.

lec tur a de

Luarna

Eje mp

lo

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-4 Versión: 1.0

«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».

lec tur a

Windows Communication Foundation

Eje mp

lo

de

Aroa Solana Ruiz

lec tur a

Índice

Eje mp

lo

de

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

Capítulo 2 Conceptos de WCF ................................................33 Mensajes ...............................................................34 Estructura de un mensaje ....................................34 El sobre SOAP .....................................................35

Eje mp

lo

de

lec tur a

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

Capítulo 3 Modelo de programación de WCF ........................67 Orientado a Servicios VS Orientado a Objetos.............................68 Modelo de Servicios.............................................70 System.ServiceModel...........................................71 System.ServiceModel.Channels ..........................72 System.Transactions.............................................74 ScvUtil.exe ...........................................................75

Eje mp

lo

de

lec tur a

¿Cómo de útil es?.................................................76 Usos Comunes .....................................................77 Generación de código..........................................78 Exportar Metadatos .............................................80 Serialización/ Mensaje .........................................81 Avanzada...............................................................81 Miscelánea ............................................................82 Métodos de programación de WCF ...................83 Declarativa ...........................................................84 Explícita................................................................85 Configuración ......................................................86 Niveles de programación WCF ..........................88 Tipado ..................................................................88 No tipado .............................................................89 Mensajes ...............................................................89 El Proceso de desarrollo......................................90 Creando nuestro primer servicio WCF ..............91 Código del Servicio............................................114 Servicio.svc .........................................................115 Web.config .........................................................115 Capítulo 4 Direcciones ...........................................................117 Direcciones WCF ..............................................117 Tipos de Direcciones .........................................119 Dirección de Extremo .......................................119 Dirección Base ...................................................119 Dirección MEX .................................................120 Formato de Direcciones ....................................121 Dirección HTTP...............................................122 Dirección HTTPS.............................................123

de

lec tur a

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

Eje mp

lo

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

lec tur a

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

Eje mp

lo

de

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

Eje mp

lo

de

lec tur a

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

lec tur a

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

Eje mp

lo

de

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

de

lec tur a

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

Eje mp

lo

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

Eje mp

lo

de

lec tur a

AutomaticSessionShutdown ..............................357 ConcurrencyMode .............................................358 ConfigurationName...........................................359 IgnoreExtensionDataObject..............................360 IncludeExceptionDetailInFaults........................361 InstanceContextMode........................................362 ReleaseServiceInstanceOnTransactionComplete.............................363 TransactionAutoCompleteOnSessionClose......364 TransactionIsolationLevel .................................364 TransactionTimeout ..........................................367 UseSynchronizedContext ..................................368 ValidateMustUnderstand ...................................368 Atributo OperationBehavior..............................369 AutoDisposeParameters.....................................370 Impersonation ....................................................371 ReleaseInstanceMode ........................................372 TransactionAutoComplete.................................374 TransactionScopeRequired................................375 Throttling ..........................................................377 InstanceContext .................................................379 Manejo de Excepciones .....................................380 FaultException ...................................................382 Atributo FaultContract......................................383 Programado un Ejemplo ...................................387

Capítulo 9 Transacciones y Sesiones Fiables.........................398 Transacciones .....................................................399 Atomicidad .........................................................400 Consistencia .......................................................401

de

lec tur a

Aislamiento.........................................................401 Durabilidad ........................................................402 Atributos de Transaction en System.ServiceModel ....................402 Atributo ServiceBehavior...................................403 Atributo OperationBehavior..............................406 Atributo TransactionFlow..................................407 Transación WS-Atomic .....................................408 Especificar transacciones a través de la configuración........................409 Sesiones Fiables..................................................411 Intercambio de Mensajes ...................................411 Asegurar los mensajes ........................................416 Colas...................................................................422 WCF y las Colas ................................................426 Buenas prácticas en el uso de Colas ..................438

Eje mp

lo

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

lo

de

lec tur a

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

Eje mp

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

lec tur a

de configuración .................................507 Integración .........................................................508 COM+ ................................................................509 Herramienta de configuración del Modelo de Servicio de COM + .......................510 MSMQ ...............................................................514 Servicios WCF y Clientes MSMQ ...................515

Eje mp

lo

de

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

Capítulo 13 Personalizar WCF ................................................535 La extensión de ServiceHost y la capa del Modelo de Servicio .....................536 Cliente ................................................................536

de

lec tur a

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

Eje mp

lo

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

lec tur a

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

de

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

Eje mp

lo

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

lec tur a

Introducción

Eje mp

lo

de

Este libro pretende ofrecer al lector los contenidos necesarios, aunque no todos, para poder preparar el examen de certificación de Microsoft 70-503. Este libro ofrece al lector una inmersión en el mundo de WCF, para que pueda probar e ir investigando como apoyo en el estudio imprescindible de esta materia, aún así hay que destacar que lo más importante es la experiencia que se adquiere en el transcurso del estudio, de la creación propia de ejemplos, etc. Para poder certificarse como MTCS: Windows Communication Foundation Applications, no solo hay que aprobar el examen 70-503, sino también el 70-536 basado en Microsoft .NET Framework- Application Development Foundation. Después de esta pequeña introducción en las certificaciones empecemos a raspar en la superficie del profundo universo que engloba Windows Communication Foundation. Actualmente las empresas tienen la necesidad de poder interconectar los procesos, las personas y la información. Por ello uno de los problemas más grandes a los que una

Arquitectura WCF

lec tur a

empresa ha de hacer frente es el poder integrar estos componentes IT (aplicaciones, datos y sistemas). La arquitectura Orientada a Servicios (SOA) proporciona una estrategia general de organización de elementos IT, en definitiva, nos brinda un marco de diseño para la integración de aplicaciones independientes de manera que se pueda desde la red acceder a sus funcionalidades, las cuales se ofrecen como servicios. WCF se basa en esta arquitectura.

Eje mp

lo

de

En el corazón de WCF está una arquitectura de capas que soporta una gran variedad de estilos para el desarrollo de aplicaciones distribuidas. La siguiente imagen ilustra la arquitectura de capas de Windows Communication Foundation.

Ilustración 1.1: Arquitectura en Capas de WCF

lec tur a

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

Datos

de

Los contratos WCF contienen información relativa a lo que un servicio ofrece al cliente y el tipo de información que va a poner a disposición. Existen tres tipos de contratos: de datos, de mensaje y de servicio.

Eje mp

lo

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

Mensaje

Un contrato de mensaje proporciona un control adicional sobre un contrato de datos, en la medida en la que controla los mensajes SOAP enviados y recibidos por el servicio. En otras palabras, un contrato de mensaje permite personalizar el tipo de formato de de los parámetros en los mensajes SOAP.

lec tur a

La mayoría de las veces un contrato de datos es suficiente, pero en ocasiones puede que un poco más de control sea necesario. Servicio

Eje mp

lo

de

Un contrato de servicio informa a los clientes, de lo que ofrece el servicio y como comunicase con él. Piense en ello como una sola declaración, en la que básicamente dice «aquí están los tipos de datos de mis mensajes, aquí es donde estoy ubicado, y aquí están los protocolos con los que me comunico». Los contratos son definidos por el CLR por medio de clases o interfaces. Éstas, al ser utilizadas en los servicios, son convertidas a un formato común para que el servicio pueda ser usado por distintas plataformas con total compatibilidad. El Service Contract es convertido en un WSDL que obtiene la descripción de las operaciones ofrecidas por el servicio (según lo definido en el Service Contract). El Data Contract es convertido en un XML Schema que contiene la estructura del objeto enviado o solicitado por el servicio. El Message Contract es convertido en un mensaje SOAP.

lec tur a Determina el número de mensajes que se procesan

Eje mp

Capacidad

CARACTERÍSTICAS

lo

COMPORTAMIENTO

de

Ilustración 1.2

Error

Especifica que acción se tomará si se produce un error durante el servicio Runtime

Metadatos

Controla si los metadatos están o no expuestos al mundo exterior

Instanciación

Establece el número de instancias de un servicio

Inspección

Proporciona al servicio la capacidad de inspeccionar la totalidad o una parte del mensaje

Permite operaciones transaccionales, es decir, si un proceso falla durante la ejecución de un servicio, tener la capacidad de poder deshacerlo

Dispensador

Cuando un mensaje se ha procesado por la infraestructura WCF, se determina la forma en que el mensaje está siendo manejado y procesado

Concurrencia

Determina como cada uno de los servicios, o instancias, manejan hilos. Este comportamiento ayuda a controlar el número de hilos que pueden tener acceso a una determinada instancia de un servicio

de

Permite filtrar la información contenida en la cabecera de los mensajesT

lo

Filtrado de parámetros

lec tur a

Transacciones

Tabla 1.1

Eje mp

Policy y Binding

Los contratos de política y enlace (Policy y Binding) especifican información importante como la seguridad, el protocolo y otra información, de manera que esto se verifica antes de que empiece con la comunicación.

Service Runtime

lec tur a

El servicio Runtime es la capa que especifica y administra los comportamientos del servicio que ocurren durante la transferencia de información con los clientes. La tabla 1.1 muestra los diferentes comportamientos que son gestionados por la capa del servicio Runtime. Mensajes

Eje mp

lo

de

La capa de mensajería define qué formatos y pautas de intercambio de datos pueden ser utilizados por el servicio de comunicación. Las aplicaciones cliente pueden ser desarrolladas para acceder a esta capa y manejar los detalles de mensajería y trabajar directamente con los mensajes y canales. La siguiente tabla muestra los canales y componentes que forman parte de la capa de mensajería:

COMPONENTES

CARACTERÍSTICAS

Canal de seguridad Implementa la especificación de la seguridad, estableciendo seguridad en el mensaje Canal fiable de mensajería

Garantiza la entrega del mensaje

Codificadores

Permiten elegir entre diferentes codificadores, para después aplicarlos a mensajes

Establece que el servicio de entrega de mensajes se llevará a cabo a través del protocolo HTTP

Canal TCP

Establece que el servicio de entrega de mensajes se llevará a cabo a través del protocolo TCP

Canal del flujo de transacciones

Rige los patrones de los mensajes guiados por transacciones

Canalizaciones con nombre

Permite comunicar procesos

Canal MSMQ

Canal utilizado por los servicios que interactúan con el servicio de colas de mensajes MSMQ Tabla 1.2

lo

de

lec tur a

Canal HTTP

Eje mp

Activación y Alojamiento

La capa de activación y alojamiento ofrece diferentes opciones en las que un servicio puede ser iniciado, así como alojado. Los servicios pueden ser alojados en el contexto de otra aplicación o pueden ser auto alojados. La siguiente tabla muestra las opciones de activación y alojamiento proporcionados por esta capa:

CARACTERÍSTICAS

Servicio de Activación de Windows

Permite a las aplicaciones WCF que se inicien automáticamente cuando se ejecutan en un equipo que tiene activo el servicio de activación de Windows

.EXE

WCF permite a los servicios que se ejecuten como archivos ejecutables (.exe)

Servicios de Windows

WCF permite a los servicios que se ejecuten como servicios de Windows

COM+

WCF permite a los servicios que se ejecuten como aplicaciones COM+

de

lec tur a

OPCIONES

Tabla 1.3

Eje mp

lo

En resumen, si el alojamiento se realiza sobre IIS, tenemos la posibilidad de registrar nuestros servicios para que la activación de éstos se produzca automáticamente la primera vez que un cliente accede a ellos. Esto quiere decir que si un mensaje llega a un servicio que no está activo, éste se activará automáticamente.

CARACTERÍSTICAS DE WCF Transacciones

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

lec tur a

para llevar a cabo, y durante la ejecución de esta transacción una de las tareas falla, entonces fallan las tres. El éxito de la transacción sólo sucederá si todas las tareas que la componen terminan con éxito. WCF incorpora este mismo procesamiento de transacciones en su comunicación. Alojamiento

Eje mp

Resumen

lo

de

WCF permite alojar servicios que se han alojado en un conjunto de diferentes entornos, tales como servicios de Windows NT, Windows Forms, aplicaciones de consola y servicios de activación de Windows. El alojamiento de un servicio en IIS añade unos beneficios, como el poder manejar la puesta en marcha y la parada de un servicio de manera automática.

Windows Communication Foundation es el siguiente paso de Microsoft en la creación de aplicaciones orientadas a servicios y aplicaciones distribuidas. Las aplicaciones distribuidas se vuelven cada día más complejas, y es primordial que nuestros negocios estén conectados. Esta globalización informática requiere la interacción y la conectividad entre diferentes plataformas e incontables dispositivos. Windows Communication Foundation fue concebido con el objetivo de simplificar el desarrollo de aplicaciones distribuidas.

Eje mp

lo

de

lec tur a

Una de sus principales características es que cuenta con un modelo de programación unificado. Es la unificación de numerosas capacidades que antes podíamos encontrar en distintas tecnologías. Esto nos libra de tener que estar utilizando más de una tecnología para cumplir satisfactoriamente los requerimientos. De este modo, los desarrolladores harán una tarea de una única manera. Las comunicaciones se enriquecen notablemente, ya que Windows Communication Foundation da la libertad al desarrollador de utilizar múltiples transportes, distintos tipos de formatos de mensajes y diversos patrones de mensajes. La interoperabilidad es el plato fuerte de Windows Communication Foundation, ya que la comunicación es totalmente independiente de la plataforma. Los servicios utilizados son sobres de SOAP, cuyo contenido es nada menos que XML. Windows Communication Foundation está basado en la arquitectura de Web Services y utiliza los estándares establecidos.

Ilustración 1.3 Estructura del Framework 3.0

de

lec tur a

El transporte es otra de sus cualidades fuertes, ya que éste se define con un protocolo neutral, de transporte neutral y formato neutral. Esto quiere decir que los servicios pueden utilizar tanto HTTP como TCP u otro mecanismo de transporte. Los desarrolladores tienen la posibilidad de agregar nuevos proveedores de transporte, y esto es indiferente al servicio. Windows Communication Foundation separa el «código» del «transporte», y de esta manera soporta distintos métodos de comunicación, sin representar esto una carga de trabajo extra para el desarrollador. En la ilustración 1.3 se muestra la estructura del Framework 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 contamos es el Framework 3.5 que incluye hasta el día de hoy algunas características como:

Eje mp

lo

• Nuevas funcionalidades de los compiladores de C#3.0 y 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 alto nivel en tiempo de ejecución • Tipos anónimos con inferencia de tipo estático • Language Integrated Query (LINQ) contra diferentes orígenes.

Los cuatro componentes «nuevos» que se observan en la ilustración son:

de

lec tur a

• Windows Presentation Foundation (WPF) (Avalon). Nuevo subsistema de interfaces de usuario basado en XML, gráficos vectoriales que hacen uso de gráficos 3D y tecnologías Direct3D. • Windows Communication Foundation (WCF) (Índigo). Sistema de mensajería orientado a objetos que permite a las aplicaciones interoperar de manera local o remota de la misma forma que los servicios Web. • Windows Workflow Foundation (WF). Permite construir flujos de trabajo para automatizar tareas y transacciones. • Windows CradSpace (InfoCard). Componente software que almacena identidades digitales de personas y ofrece la posibilidad de elegir una identidad para ejecutar aplicaciones.

Eje mp

lo

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 una nueva aplicación para reservar los coches. Los creadores de esta aplicación de reserva de coches de alquiler saben que la lógica empresarial que implementa debe ser accesible por otro software que se ejecute dentro y fuera de la compañía. De acuerdo con, esto, deciden integrarlo en un sitio orientado a servicios, con la lógica de la aplicación expuesta a otro software a través de un conjunto bien determinado de servicios. Para implementar estos servicios y así comunicar con otro software, la nueva aplicación, utilizará WCF.

lec tur a de lo

Eje mp

Ilustración 1.4 Ejemplo de aplicación en WCF

Related Documents

Communication
March 2021 0
Windows 10
January 2021 1
Communication
February 2021 1
Communication
March 2021 0
Windows Tweeks
January 2021 1
Programare Windows
January 2021 0