SOA en la Práctica: WCF & WSSF
-
Upload
juliocasal -
Category
Technology
-
view
1.695 -
download
7
description
Transcript of 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
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
Arquitectura Orientada a Arquitectura Orientada a ServiciosServicios
EMPLEADOS MÓVILESEMPLEADOS MÓVILES CLIENTESCLIENTES EMPLEADOS MÓVILESEMPLEADOS MÓVILESCLIENTESCLIENTES
La Imperativa de ConectarLa Imperativa de Conectar
¿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
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
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
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
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
¿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
Windows Communication Windows Communication FoundationFoundation
“¿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
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
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
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
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
Soporte al Protocolo WS-*Soporte al Protocolo WS-*
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
WCF: Conceptos WCF: Conceptos FundamentalesFundamentales
Comunicación de ServiciosComunicación de Servicios
ClienteCliente ServicioServicio
MensajeMensaje
MensajeMensaje
Servicio 1Servicio 1 Servicio 2Servicio 2
EndpointsEndpoints
ClienteCliente ServicioServicio
MensajeMensajeEndpointEndpoint EndpointEndpoint
EndpointEndpoint
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é)
MetadataMetadata
ClienteCliente ServicioServicio
MensajeMensajeAABBCC AA BB CC
AA BB CC
MetadataMetadata
BehaviorsBehaviors
ClienteCliente ServicioServicio
MensajeMensajeAABBCC AA BB CC
AA BB CC
BvBv BvBv
BvBv BvBv
MetadataMetadata
RuntimeRuntime
ClienteCliente ServicioServicio
MensajeMensajeAABBCC AA BB CC
AA BB CC
MetadataMetadata
BvBv BvBv
BvBv BvBv
ProxyProxy ServiceHost<T>()ServiceHost<T>()
Bin
din
gB
ind
ing
AddressAddress
ContractContract
¿Cómo afecta WCF a mi código?¿Cómo afecta WCF a mi código?
¡Hola Mundo WCF!¡Hola Mundo WCF!
Web Service Software FactoryWeb Service Software Factory
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
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
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
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
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
Implementando una arquitectura orientada Implementando una arquitectura orientada a serviciosa servicios
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
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