Vous êtes sur la page 1sur 32

tur

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 versin 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 utilizacin de extremos para la comunicacin distribuida, etc.
Se requiere conocer los fundamentos de Internet/Intranet, estar familiarizado XML, conocer el
funcionamiento del IIS, as como algunos conocimientos de programacin orientada a objetos.
El lenguaje de programacin utilizado a lo largo del texto es C#.

Eje
mp

lo

Aroa Solana Ruiz es Microsoft Certified


IT Professional en Database Developer,
tambin 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 certificacin MCT (Microsoft Certified Trainer) con la que imparte cursos oficiales
de Microsoft y trabaja como formadora en Alhambra-Eidos.
Ha impartido formacin sobre la tecnologa .NET, desarrollo de aplicaciones Windows, Web, ADO, Distribuidas,
WPF, WCF, WWF, Silverlight y UML; tambin en administracin y desarrollo de bases de datos SQL Server, en
2005 y 2008. Adems posee experiencia en J2SE y J2EE.
Dentro de la gestin de procesos posee la certificacin ITIL
V2 Foundations.

lec
tur
a
de

Luarna

Eje
mp

lo

Windows Communication Foundation


Aroa Solana Ruiz, 2009
De esta edicin: 2009, Luarna Ediciones, S.L.
www.luarna.com
Madrid, diciembre de 2009
ISBN: 978-8492684-56-4
Versin: 1.0

Cualquier forma de reproduccin, distribucin, comunicacin pblica o transformacin de esta obra solo puede ser realizada con la autorizacin de sus titulares, salvo excepcin
prevista por la ley. Dirjase a CEDRO (Centro Espaol de
Derechos Reprogrficos, www.cedro.org) si necesita fotocopiar o escanear algn 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
Introduccin ...........................................................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
Activacin y Alojamiento.....................................26
Caractersticas de WCF.......................................27
Transacciones .......................................................27
Alojamiento ..........................................................28
Resumen ...............................................................28

Captulo 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 Mensajera.....................................41
Clientes.................................................................42
Servicio .................................................................43
Intermediarios ......................................................45
Patrones de Mensajera........................................46
Simple...................................................................46
Dplex ..................................................................48
Peticin-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

Captulo 3
Modelo de programacin 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

Cmo de til es?.................................................76


Usos Comunes .....................................................77
Generacin de cdigo..........................................78
Exportar Metadatos .............................................80
Serializacin/ Mensaje .........................................81
Avanzada...............................................................81
Miscelnea ............................................................82
Mtodos de programacin de WCF ...................83
Declarativa ...........................................................84
Explcita................................................................85
Configuracin ......................................................86
Niveles de programacin WCF ..........................88
Tipado ..................................................................88
No tipado .............................................................89
Mensajes ...............................................................89
El Proceso de desarrollo......................................90
Creando nuestro primer servicio WCF ..............91
Cdigo del Servicio............................................114
Servicio.svc .........................................................115
Web.config .........................................................115
Captulo 4
Direcciones ...........................................................117
Direcciones WCF ..............................................117
Tipos de Direcciones .........................................119
Direccin de Extremo .......................................119
Direccin Base ...................................................119
Direccin MEX .................................................120
Formato de Direcciones ....................................121
Direccin HTTP...............................................122
Direccin HTTPS.............................................123

de

lec
tur
a

Direccin TCP ..................................................124


Direccin MSMQ..............................................124
Direccin de Canalizacin con Nombre ..........125
Direccin IIS......................................................126
Programacin de Direcciones en WCF............127
La clase EndpointAdress ...................................128
La propiedad de Identidad ................................129
Coleccin de cabeceras ......................................132
Programacin de direcciones ............................133
Direccin base....................................................133
Direccin de Extremo .......................................135
Especificar un fichero de configuracin............135
Especificacin en Cdigo ..................................137
Direccin relativa...............................................138

Eje
mp

lo

Captulo 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 Cdigo ..................................................182
Usando el Fichero de Configuracin................206
Caso Prctico .....................................................209

Eje
mp

lo

de

Captulo 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

Captulo 7
Clientes.................................................................277
Arquitectura del cliente .....................................277
Objetos Cliente ..................................................280
ICommunicationObject.....................................280
IExtensibleObject...............................................282
Canales de Cliente .............................................283
IClientChannel ..................................................283
IContextChannel ...............................................284
Factoras de Canales ..........................................285
La Clase ChannelFactory .................................286
Constructores.....................................................287
Propiedades ........................................................287
Mtodos..............................................................289
Mtodo CreateChannel .....................................291
Patrones de Comunicacin del Cliente ............292
One-Way ............................................................293
Solicitud/Respuesta............................................294
Dplex ................................................................297
Servicio ...............................................................298
Cliente ................................................................301
Cliente Dplex usando DupplexChannelFactory
302
Asncrona............................................................304

de

lec
tur
a

Servicio ...............................................................304
Cliente ................................................................306
Crear cdigo de cliente......................................307
Generar Cdigo 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
Informacin de utilidad .....................................316
Inicializar Canales interactivamente .................316
Duracin de la sesin y del canal ......................317
Problemas de bloqueo .......................................318
Manejo de Excepciones .....................................320
Caso Prctico .....................................................321
Ejemplo de programacin de un Cliente..........321
ChannelFactory..................................................321
Dplex ................................................................331

Eje
mp

lo

Captulo 8
Servicios ................................................................341
Tipos de Servicios..............................................341
Typed..................................................................342
Untyped..............................................................344
Typed Message...................................................347
Contratos de Servicio ........................................348
Extremos de Servicio .........................................349
A travs de Cdigo.............................................350
A travs del archivo de Configuracin ..............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

Captulo 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
Transacin WS-Atomic .....................................408
Especificar transacciones a travs
de la configuracin........................409
Sesiones Fiables..................................................411
Intercambio de Mensajes ...................................411
Asegurar los mensajes ........................................416
Colas...................................................................422
WCF y las Colas ................................................426
Buenas prcticas en el uso de Colas ..................438

Eje
mp

lo

Captulo 10
Seguridad ..............................................................398
Vista General......................................................442
Conceptos...........................................................443
Integridad ...........................................................444
Confidencialidad ................................................444
Autenticacin .....................................................444
Autorizacin .......................................................445
Por qu seguridad WCF? ................................447
Transferencia de Seguridad ...............................447
Control de Acceso / Autenticacin ...................449
Miembro ASP.NET y Role Provider................452
Administrador de autorizaciones.......................456
Modelo de identidad..........................................458

lo

de

lec
tur
a

Auditora.............................................................461
Credenciales .......................................................462
Comportamientos de Seguridad y Enlaces .......465
Comportamientos de Seguridad........................465
Credenciales de Servicio....................................466
Credenciales de Cliente.....................................468
Autorizacin 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

Captulo 11
Interoperatibilidad e Integracin.........................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 travs de cdigo ..............................506
Extremos a travs del archivo

lec
tur
a

de configuracin .................................507
Integracin .........................................................508
COM+ ................................................................509
Herramienta de configuracin del Modelo
de Servicio de COM + .......................510
MSMQ ...............................................................514
Servicios WCF y Clientes MSMQ ...................515

Eje
mp

lo

de

Captulo 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
Actualizacin de Servicios .................................529
Solucin a problemasde instalaciones WCF ...530
Comunicacin Cliente/Servicio ........................531
Comportamiento inesperado de servicios.........532
Resumen .............................................................533

Captulo 13
Personalizar WCF ................................................535
La extensin 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 extensin de la capa de canal........................557
El canal del Cliente............................................559
El canal del Servicio...........................................561
Desarrollo de canales .........................................562
Elegir el patrn de intercambio de mensajes....563
Channel Factory y Channel Listener................565
Aadir elementos de enlace ...............................566
Extender Enlaces ...............................................569
Construir Enlaces Personalizados .....................569
Modificacin de enlaces WCF ..........................572

Eje
mp

lo

Captulo 14
Gestionar WCF ....................................................575
Trazas..................................................................576
Realizar trazas de extremo a extremo................576
Servicio de Trazas ..............................................581
Actividad ............................................................582
Proyecto ............................................................582
Editor de configuracin del Servicio ................583
Configuracin ...................................................586
Servicios .............................................................586
Cliente ................................................................587
Enlaces................................................................588
Diagnsticos.......................................................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

Captulo 15
Alojar Servicios WCF ...........................................601
Alojar vs Auto-Alojamiento ...............................602
Alojar ..................................................................602
Auto-Alojar.........................................................603
Rpida comparacin...........................................604
Opciones de alojamiento ...................................605
Alojar en el IIS ...................................................605
Alojar en Cdigo Administrado ........................606
Ejemplo de alojamiento .....................................609

Eje
mp

lo

Apdice A
Caso Prctico Captulo 5...................................625
Caso Prctico Captulo 7...................................630

lec
tur
a

Introduccin

Eje
mp

lo

de

Este libro pretende ofrecer al lector los contenidos necesarios, aunque no todos, para poder preparar el examen de
certificacin de Microsoft 70-503. Este libro ofrece al lector una inmersin en el mundo de WCF, para que pueda
probar e ir investigando como apoyo en el estudio imprescindible de esta materia, an as hay que destacar que lo
ms importante es la experiencia que se adquiere en el transcurso del estudio, de la creacin propia de ejemplos, etc.
Para poder certificarse como MTCS: Windows Communication Foundation Applications, no solo hay que aprobar el examen 70-503, sino tambin el 70-536 basado en
Microsoft .NET Framework- Application Development
Foundation.
Despus de esta pequea introduccin 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 informacin.
Por ello uno de los problemas ms 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 organizacin de elementos IT,
en definitiva, nos brinda un marco de diseo para la integracin 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 corazn 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.

Ilustracin 1.1:
Arquitectura en Capas de WCF

lec
tur
a

Esta arquitectura en capas, brinda a los desarrolladores


un nuevo modelo de programacin orientado a servicios.
Contratos

Datos

de

Los contratos WCF contienen informacin relativa a lo


que un servicio ofrece al cliente y el tipo de informacin
que va a poner a disposicin.
Existen tres tipos de contratos: de datos, de mensaje y
de servicio.

Eje
mp

lo

Un contrato de datos estipula de manera explcita los datos que se intercambiarn 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 parmetros 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 parmetros en los mensajes SOAP.

lec
tur
a

La mayora de las veces un contrato de datos es suficiente, pero en ocasiones puede que un poco ms 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 declaracin, en la que bsicamente dice aqu
estn los tipos de datos de mis mensajes, aqu es donde estoy ubicado, y aqu estn 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 comn para que el servicio
pueda ser usado por distintas plataformas con total compatibilidad.
El Service Contract es convertido en un WSDL que
obtiene la descripcin de las operaciones ofrecidas por el
servicio (segn 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 nmero de mensajes que se
procesan

Eje
mp

Capacidad

CARACTERSTICAS

lo

COMPORTAMIENTO

de

Ilustracin 1.2

Error

Especifica que accin se tomar si se produce un error durante el servicio Runtime

Metadatos

Controla si los metadatos estn o no expuestos al mundo exterior

Instanciacin

Establece el nmero de instancias de un


servicio

Inspeccin

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 ejecucin 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 nmero de hilos que pueden tener acceso a una
determinada instancia de un servicio

de

Permite filtrar la informacin contenida


en la cabecera de los mensajesT

lo

Filtrado
de parmetros

lec
tur
a

Transacciones

Tabla 1.1

Eje
mp

Policy y Binding

Los contratos de poltica y enlace (Policy y Binding) especifican informacin importante como la seguridad, el protocolo y otra informacin, de manera que esto se verifica
antes de que empiece con la comunicacin.

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 informacin 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 mensajera define qu formatos y pautas de intercambio de datos pueden ser utilizados por el servicio de
comunicacin. Las aplicaciones cliente pueden ser desarrolladas para acceder a esta capa y manejar los detalles de mensajera y trabajar directamente con los mensajes y canales.
La siguiente tabla muestra los canales y componentes
que forman parte de la capa de mensajera:

COMPONENTES

CARACTERSTICAS

Canal de seguridad Implementa la especificacin de la seguridad, estableciendo seguridad en el mensaje


Canal fiable
de mensajera

Garantiza la entrega del mensaje

Codificadores

Permiten elegir entre diferentes codificadores, para despus aplicarlos a mensajes

Establece que el servicio de entrega de


mensajes se llevar a cabo a travs del protocolo HTTP

Canal TCP

Establece que el servicio de entrega de


mensajes se llevar a cabo a travs 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 interactan con el servicio de colas de mensajes MSMQ
Tabla 1.2

lo

de

lec
tur
a

Canal HTTP

Eje
mp

Activacin y Alojamiento

La capa de activacin 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 aplicacin o pueden ser auto alojados.
La siguiente tabla muestra las opciones de activacin y
alojamiento proporcionados por esta capa:

CARACTERSTICAS

Servicio de
Activacin
de Windows

Permite a las aplicaciones WCF que se


inicien automticamente cuando se ejecutan en un equipo que tiene activo el servicio de activacin 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 activacin de stos se produzca automticamente 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 automticamente.

CARACTERSTICAS DE WCF
Transacciones

Una transaccin es una unidad de trabajo. Una transaccin


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 transaccin contiene tres tareas de trabajo

lec
tur
a

para llevar a cabo, y durante la ejecucin de esta transaccin una de las tareas falla, entonces fallan las tres. El
xito de la transaccin slo suceder si todas las tareas
que la componen terminan con xito. WCF incorpora
este mismo procesamiento de transacciones en su comunicacin.
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 activacin de Windows.
El alojamiento de un servicio en IIS aade unos beneficios, como el poder manejar la puesta en marcha y la parada de un servicio de manera automtica.

Windows Communication Foundation es el siguiente paso


de Microsoft en la creacin de aplicaciones orientadas a
servicios y aplicaciones distribuidas.
Las aplicaciones distribuidas se vuelven cada da ms
complejas, y es primordial que nuestros negocios estn conectados. Esta globalizacin informtica requiere la interaccin 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 caractersticas es que cuenta con


un modelo de programacin unificado. Es la unificacin
de numerosas capacidades que antes podamos encontrar
en distintas tecnologas. Esto nos libra de tener que estar
utilizando ms de una tecnologa para cumplir satisfactoriamente los requerimientos. De este modo, los desarrolladores harn una tarea de una nica manera.
Las comunicaciones se enriquecen notablemente, ya que
Windows Communication Foundation da la libertad al desarrollador de utilizar mltiples 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 comunicacin 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 estndares establecidos.

Ilustracin 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 cdigo del transporte, y de esta manera soporta distintos mtodos de comunicacin, sin representar esto una carga de trabajo extra para el
desarrollador.
En la ilustracin 1.3 se muestra la estructura del Framework 3.0 donde ya est WCF.
Aunque en la ilustracin se muestra el Framework 3.0,
actualmente la versin ms reciente con la que contamos
es el Framework 3.5 que incluye hasta el da de hoy algunas caractersticas como:

Eje
mp

lo

Nuevas funcionalidades de los compiladores de C#3.0


y VB.NET 9.0
Soporte para rboles de expansin y mtodos lambda
Mtodos de extensin
rboles de extensin para representar el cdigo de alto
nivel en tiempo de ejecucin
Tipos annimos con inferencia de tipo esttico
Language Integrated Query (LINQ) contra diferentes orgenes.

Los cuatro componentes nuevos que se observan en


la ilustracin son:

de

lec
tur
a

Windows Presentation Foundation (WPF) (Avalon).


Nuevo subsistema de interfaces de usuario basado en
XML, grficos vectoriales que hacen uso de grficos
3D y tecnologas Direct3D.
Windows Communication Foundation (WCF) (ndigo). Sistema de mensajera 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 compaa de alquiler de coches decide crear una
nueva aplicacin para reservar los coches. Los creadores
de esta aplicacin de reserva de coches de alquiler saben
que la lgica empresarial que implementa debe ser accesible por otro software que se ejecute dentro y fuera de la
compaa. De acuerdo con, esto, deciden integrarlo en un
sitio orientado a servicios, con la lgica de la aplicacin expuesta a otro software a travs de un conjunto bien determinado de servicios. Para implementar estos servicios y as
comunicar con otro software, la nueva aplicacin, utilizar WCF.

lec
tur
a
de
lo

Eje
mp

Ilustracin 1.4
Ejemplo de aplicacin en WCF

Vous aimerez peut-être aussi