SOA en la Práctica: WCF & WSSF

36
SOA en la Práctica: SOA en la Práctica: Windows Communication Windows Communication Foundation y Web Service Foundation y Web Service Software Factory Software Factory Julio Casal Julio Casal Software Developer Software Developer John Galt Solutions John Galt Solutions [email protected] [email protected] http://msguayaquil.com/ http://msguayaquil.com/ blogs/jcasal blogs/jcasal

description

Demonstrates how to mix WCF and the WCF Software Factory to implement SOA architectures

Transcript of SOA en la Práctica: WCF & WSSF

Page 1: SOA en la Práctica: WCF & WSSF

SOA en la Práctica: SOA en la Práctica: Windows Communication Windows Communication Foundation y Web Service Foundation y Web Service Software FactorySoftware Factory

SOA en la Práctica: SOA en la Práctica: Windows Communication Windows Communication Foundation y Web Service Foundation y Web Service Software FactorySoftware Factory

Julio CasalJulio CasalSoftware DeveloperSoftware DeveloperJohn Galt SolutionsJohn Galt [email protected][email protected]://msguayaquil.com/blogs/http://msguayaquil.com/blogs/jcasaljcasal

Page 2: SOA en la Práctica: WCF & WSSF

AgendaAgendaArquitectura Orientada a Servicios (SOA)Arquitectura Orientada a Servicios (SOA)

¿Qué es?¿Qué es?

¿Para qué sirve?¿Para qué sirve?

Principios fundamentales de SOAPrincipios fundamentales de SOA

Windows Communication FoundationWindows Communication FoundationObjetivosObjetivos

Conceptos fundamentalesConceptos fundamentales

Escribiendo el “Hola Mundo” con WCFEscribiendo el “Hola Mundo” con WCF

Web Service Software FactoryWeb Service Software Factory¿Qué son las fábricas de software?¿Qué son las fábricas de software?

¿Qué es la Web Service Software Factory?¿Qué es la Web Service Software Factory?

Implementando SOA con la Web Service Implementando SOA con la Web Service Software FactorySoftware Factory

Page 3: SOA en la Práctica: WCF & WSSF

Arquitectura Orientada a Arquitectura Orientada a ServiciosServicios

Page 4: SOA en la Práctica: WCF & WSSF

EMPLEADOS MÓVILESEMPLEADOS MÓVILES CLIENTESCLIENTES EMPLEADOS MÓVILESEMPLEADOS MÓVILESCLIENTESCLIENTES

La Imperativa de ConectarLa Imperativa de Conectar

Page 5: SOA en la Práctica: WCF & WSSF

¿Vale la pena aplicar SOA a toda costa?

No es nuevaNo es nueva

Puede y debe ser ser un Puede y debe ser ser un

proceso incrementalproceso incremental

Es un medio, mas no un fin Es un medio, mas no un fin

en sí mismoen sí mismo

Page 6: SOA en la Práctica: WCF & WSSF

Arquitectura Orientada a ServiciosArquitectura Orientada a Servicios

Un enfoque arquitectónico para crear Un enfoque arquitectónico para crear sistemas construidos de servicios sistemas construidos de servicios autónomosautónomos

Integración desde el principio, no al finalIntegración desde el principio, no al final

Un servicio es un programa con el que se Un servicio es un programa con el que se interactúa realizando intercambios de interactúa realizando intercambios de mensajesmensajes

Los servicios son construidos para durarLos servicios son construidos para durarLa disponibilidad y estabilidad son críticosLa disponibilidad y estabilidad son críticos

Un sistema es un conjunto de servicios que Un sistema es un conjunto de servicios que cooperan para realizar una tarea dadacooperan para realizar una tarea dada

Los sistemas son construidos para cambiarLos sistemas son construidos para cambiarDeben adaptarse a nuevos servicios luego de la Deben adaptarse a nuevos servicios luego de la puesta en producciónpuesta en producción

Page 7: SOA en la Práctica: WCF & WSSF

De Objetos a ServiciosDe Objetos a Servicios

PolimorfismoPolimorfismoEncapsulaciónEncapsulaciónHerenciaHerencia

Basado en MensajesBasado en MensajesEsquema+Contrato+PolíticEsquema+Contrato+PolíticaaAmplia InteroperabilidadAmplia Interoperabilidad

1980s1980s

2000s2000s

Ubicación TransparenteUbicación TransparenteAcoplamiento FuerteAcoplamiento FuerteMetadatos en Tiempo de Metadatos en Tiempo de EjecuciónEjecución

1990s1990s

Orientado a ObjetosOrientado a Objetos

Orientado a ServiciosOrientado a Servicios

Orientado a Orientado a ComponentesComponentes

Page 8: SOA en la Práctica: WCF & WSSF

Los servicios y los consumidores son Los servicios y los consumidores son versionados, puestos en producción, versionados, puestos en producción, operados y asegurados operados y asegurados independientemente.independientemente.

Los Servicios Los Servicios son autónomosson autónomos

Los datos nunca incluyen Los datos nunca incluyen comportamiento; comportamiento; Los objetos con datos y comportamiento Los objetos con datos y comportamiento son un fenómeno local.son un fenómeno local.

Compartir Compartir esquema y esquema y

contrato, no contrato, no claseclase

Las capacidades y requerimientos son Las capacidades y requerimientos son representados por un nombre público representados por un nombre público único; Usados para definir si un servicio es único; Usados para definir si un servicio es apropiado.apropiado.

Compatibilidad Compatibilidad basada en basada en

políticapolítica

Los desarrolladores se concentran en Los desarrolladores se concentran en consumir, exponer y definir fachadas consumir, exponer y definir fachadas de servicios expuestas al público.de servicios expuestas al público.

Los límites son Los límites son explícitosexplícitos

Cuatro Principios Clave de la Cuatro Principios Clave de la Orientación a ServiciosOrientación a Servicios

Page 9: SOA en la Práctica: WCF & WSSF

Beneficios de la Orientación a Beneficios de la Orientación a ServiciosServiciosLas soluciones construidas con Orientación a Las soluciones construidas con Orientación a Servicios pueden disfrutar de algunos o todos Servicios pueden disfrutar de algunos o todos estos beneficiosestos beneficios::

Independencia de plataformaIndependencia de plataforma

Actualizaciones incrementalesActualizaciones incrementales

Alta escalabilidadAlta escalabilidad

Independencia de tiempoIndependencia de tiempo

Independencia de lugarIndependencia de lugar

Software altamente reutilizableSoftware altamente reutilizable

Gran longevidadGran longevidad

Page 10: SOA en la Práctica: WCF & WSSF

¿Cómo luce SOA en ejecución?¿Cómo luce SOA en ejecución?Procesamiento de ÓrdenesProcesamiento de Órdenes

Zona de ProcesamientoEmpresarial

Red Perimetral (DMZ)

TiendaWeb

Servicio de Ingreso de Órdenes

Servicio de Procesamiento de Órdenes

Agencia deCrédito

Servicio de Pagos

Bodega

Servicio de Bodega

Distribuidor

Servicio de Entrega

CRM

ERP

• Combinación de métodos de comunicación, mecanismos de seguridad, confiabilidad, transacciones, patrones de mensajería

• Configurado al poner en producción

• Independiente de la Plataforma

• Descentralizado

• Fácilmente escalable

Servicio de Ubicación

Servicio de Administración

Servicio de Seguridades

Page 11: SOA en la Práctica: WCF & WSSF

Windows Communication Windows Communication FoundationFoundation

Page 12: SOA en la Práctica: WCF & WSSF

“¿Qué API debería usar?”

“¿Cómo debo construir sistemas

orientados a servicios?”

“¿Cómo puedo enviar mensajes de forma

segura y confiable?”

“¿Cómo puedo desarrollar

aplicaciones interoperables?”

Lo Que Escuchamos del Lo Que Escuchamos del DesarrolladorDesarrollador

Page 13: SOA en la Práctica: WCF & WSSF

El framework unificadoEl framework unificado

de aplicaciones orientadas a serviciosde aplicaciones orientadas a servicios

para construcción rápidapara construcción rápida

Windows Communication Foundation

Page 14: SOA en la Práctica: WCF & WSSF

Unifica las tecnologías distribuidas de Unifica las tecnologías distribuidas de hoy en díahoy en día

Desarrollo basado en atributosDesarrollo basado en atributos

Integración con Visual Studio 2005Integración con Visual Studio 2005

ProductividadProductividad

Amplio soporte para las Amplio soporte para las especificaciones WS-*especificaciones WS-*

Compatible con las tecnologías Compatible con las tecnologías distribuidas de actuales de Microsoft distribuidas de actuales de Microsoft

InteroperabilidInteroperabilidadad

Permite el desarrollo de servicios Permite el desarrollo de servicios desacopladosdesacoplados

Comunicación basada en Comunicación basada en configuraciónconfiguración

Desarollo Desarollo Orientado a Orientado a

ServiciosServicios

Windows Communication Windows Communication FoundationFoundation

Page 15: SOA en la Práctica: WCF & WSSF

InteropInteropwith otherwith otherplatformsplatforms

ASMX

Attribute- Attribute- BasedBased

ProgrammingProgramming

Enterprise Services

WS-*WS-*ProtocolProtocolSupportSupport

WSE

Message-Message-OrientedOriented

ProgrammingProgramming

System.Messaging

ExtensibilityExtensibilityLocation Location

transparencytransparency

.NET Remoting

Productividad: WCFProductividad: WCFModelo de Programación UnificadoModelo de Programación Unificado

Page 16: SOA en la Práctica: WCF & WSSF

WCF extiende el .NET FrameworkWCF extiende el .NET Framework

Aprovecha todo el poder de Visual Studio Aprovecha todo el poder de Visual Studio 20052005

Intellisense en código y en archivos de Intellisense en código y en archivos de configuraciónconfiguraciónPlantillas de serviciosPlantillas de serviciosDepuraciónDepuraciónGeneración automática de proxies mediante Generación automática de proxies mediante referencias Webreferencias Web

Productividad: WCFProductividad: WCFIntegración con .NET Framework 2.0 y Integración con .NET Framework 2.0 y VS2005VS2005

Page 17: SOA en la Práctica: WCF & WSSF

Soporte al Protocolo WS-*Soporte al Protocolo WS-*

Page 18: SOA en la Práctica: WCF & WSSF

Protección de la InversiónProtección de la Inversión

Co-existencia Co-existencia Side-by-sideSide-by-side con las tecnologías con las tecnologías distribuidas existentesdistribuidas existentes

Comunicación con Comunicación con aplicaciones construidas con aplicaciones construidas con tecnologías existentestecnologías existentes

Fácil actualización del código Fácil actualización del código existente a WCFexistente a WCF

ASMXASMX

ASMXASMX

ASMXASMX ESES WSE3WSE3

Page 19: SOA en la Práctica: WCF & WSSF

WCF: Conceptos WCF: Conceptos FundamentalesFundamentales

Page 20: SOA en la Práctica: WCF & WSSF

Comunicación de ServiciosComunicación de Servicios

ClienteCliente ServicioServicio

MensajeMensaje

MensajeMensaje

Servicio 1Servicio 1 Servicio 2Servicio 2

Page 21: SOA en la Práctica: WCF & WSSF

EndpointsEndpoints

ClienteCliente ServicioServicio

MensajeMensajeEndpointEndpoint EndpointEndpoint

EndpointEndpoint

Page 22: SOA en la Práctica: WCF & WSSF

Address, Binding, ContractAddress, Binding, Contract

ClienteCliente ServicioServicio

MensajeMensajeAABBCC AA BB CC

AA BB CC

AddressAddress BindingBinding ContractContract

(Dónde)(Dónde) (Cómo)(Cómo) (Qué)(Qué)

Page 23: SOA en la Práctica: WCF & WSSF

MetadataMetadata

ClienteCliente ServicioServicio

MensajeMensajeAABBCC AA BB CC

AA BB CC

MetadataMetadata

Page 24: SOA en la Práctica: WCF & WSSF

BehaviorsBehaviors

ClienteCliente ServicioServicio

MensajeMensajeAABBCC AA BB CC

AA BB CC

BvBv BvBv

BvBv BvBv

MetadataMetadata

Page 25: SOA en la Práctica: WCF & WSSF

RuntimeRuntime

ClienteCliente ServicioServicio

MensajeMensajeAABBCC AA BB CC

AA BB CC

MetadataMetadata

BvBv BvBv

BvBv BvBv

ProxyProxy ServiceHost<T>()ServiceHost<T>()

Page 26: SOA en la Práctica: WCF & WSSF

Bin

din

gB

ind

ing

AddressAddress

ContractContract

¿Cómo afecta WCF a mi código?¿Cómo afecta WCF a mi código?

Page 27: SOA en la Práctica: WCF & WSSF

¡Hola Mundo WCF!¡Hola Mundo WCF!

Page 28: SOA en la Práctica: WCF & WSSF

Web Service Software FactoryWeb Service Software Factory

Page 29: SOA en la Práctica: WCF & WSSF

Fábricas de SoftwareFábricas de Software

Plasman la necesidad de hacer la Plasman la necesidad de hacer la transición de el “hacer a mano” hacia la transición de el “hacer a mano” hacia la fabricaciónfabricación

Ambiente configurado para el desarrollo Ambiente configurado para el desarrollo acelerado de un tipo específico de acelerado de un tipo específico de aplicaciónaplicación

Siguiente paso lógico en la evolución de los Siguiente paso lógico en la evolución de los métodos de desarrollo de softwaremétodos de desarrollo de software

Introducen patrones de Introducen patrones de

industrializaciónindustrialización

Page 30: SOA en la Práctica: WCF & WSSF

Componentes de una Fábrica de Componentes de una Fábrica de SoftwareSoftware

Esquema de FabricaciónEsquema de FabricaciónProyectos y código fuenteProyectos y código fuente

Scripts SQLScripts SQL

Lenguajes de Dominio Específico (DSL)Lenguajes de Dominio Específico (DSL)

Plantilla de FábricaPlantilla de FábricaPatronesPatrones

GuíasGuías

PlantillasPlantillas

FrameworksFrameworks

Ambiente de Desarrollo ExtensibleAmbiente de Desarrollo ExtensibleVisual Studio Team SystemVisual Studio Team System

Page 31: SOA en la Práctica: WCF & WSSF

Atacan dominios de problemas específicosAtacan dominios de problemas específicos

Han evolucionado desde guías escritas hacia Han evolucionado desde guías escritas hacia código fuentecódigo fuente

Los clientes solicitan guías de punto a punto para Los clientes solicitan guías de punto a punto para construir ciertos tipos de solucionesconstruir ciertos tipos de soluciones

App BlocksApp Blocks

App Block LibraryApp Block LibraryGuidesGuides

PatternsPatterns

HelpHelp Code SamplesCode Samples

Guías ExistentesGuías Existentes

Page 32: SOA en la Práctica: WCF & WSSF

Software Factory

Implementaciones de Referencia

Narrador

Blocks

How Tos

Hand On Labs

Documentación

Paquetes de GuíasPresentaciones, Videos

Página de Lanzamiento

Comunidad

La Visión de MicrosoftLa Visión de Microsoft

Page 33: SOA en la Práctica: WCF & WSSF

La Web Service Software La Web Service Software FactoryFactory

Guías de Punto a PuntoGuías de Punto a Punto

Que le ayudan a construir serviciosQue le ayudan a construir servicios

Usando prácticas probadas (calidad)Usando prácticas probadas (calidad)

De una forma más consistente De una forma más consistente (predictabilidad)(predictabilidad)

En menor tiempo (productividad)En menor tiempo (productividad)

Alcance:Alcance:Desde el proxy del cliente ó consumidorDesde el proxy del cliente ó consumidor

Hasta la capa de acceso a datosHasta la capa de acceso a datos

Page 34: SOA en la Práctica: WCF & WSSF

Implementando una arquitectura orientada Implementando una arquitectura orientada a serviciosa servicios

Page 35: SOA en la Práctica: WCF & WSSF

ResumenResumen

Las arquitecturas orientadas a servicios son Las arquitecturas orientadas a servicios son un concepto que involucra muchos beneficiosun concepto que involucra muchos beneficios

Aplicar SOA también conlleva grandes retos, Aplicar SOA también conlleva grandes retos, por lo cual el hacerlo debe ser el resultado de por lo cual el hacerlo debe ser el resultado de un profundo análisis y un proceso gradualun profundo análisis y un proceso gradual

WCF se hace cargo de todas las WCF se hace cargo de todas las complejidades de SOA, permitiéndole al complejidades de SOA, permitiéndole al desarrollador concentrarse en el negocio y desarrollador concentrarse en el negocio y funcionalidades de la aplicaciónfuncionalidades de la aplicación

La Web Service Software Factory automatiza La Web Service Software Factory automatiza la construcción de aplicaciones orientadas a la construcción de aplicaciones orientadas a servicios, brindando un ambiente de alta servicios, brindando un ambiente de alta productividad y menor propensión a erroresproductividad y menor propensión a errores

Page 36: SOA en la Práctica: WCF & WSSF

RecursosRecursos.NET Framework 3.0 y el Windows SDKhttp://msdn.microsoft.com/windowsvista/downloads/products/getthebeta/

Web Service Software Factoryhttp://www.gotdotnet.com/codegallery/codegallery.aspx?id=6fde9247-53a8-4879-853d-500cd2d97a83

Videos, Presentaciones, Laboratorios y Webcastshttp://wcf.netfx3.com/content/resources.aspx

LibrosMicrosoft Windows Communication Foundation: Hands-on http://www.samspublishing.com/bookstore/product.asp?isbn=0672328771&rl=1Programming Indigohttp://www.amazon.com/gp/product/0735621519/104-1500335-4931949?v=glance&n=283155

Sitios Webhttp://wcf.netfx3.comhttp://msdn.microsoft.com/winfx/technologies/communication/default.aspxhttp://www.msguayaquil.com

Laboratorios Virtualeshttp://msdn.microsoft.com/virtuallabs/wcf/default.aspx

Blogshttp://wcf.netfx3.com/roller/default.aspx