La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diego Dagum Arquitecto .NET Microsoft Chile

Presentaciones similares


Presentación del tema: "Diego Dagum Arquitecto .NET Microsoft Chile"— Transcripción de la presentación:

1 Diego Dagum Arquitecto .NET Microsoft Chile
Arquitectura de Base de Datos Orientada a Servicios (SODA) en SQL Server 2005 Diego Dagum Arquitecto .NET Microsoft Chile

2 Introducción Tradicionalmente los datos fueron pasivos, las aplicaciones tenían que pedir por ellos Para ello, había que conectarse a bases de datos a través de bibliotecas específicas Hoy las empresas replantean sus sistemas aislados en una nueva arquitectura empresarial que comparta funcionalidades individuales (servicios) a todo el portfolio de aplicaciones Cómo deben evolucionar las bases de datos para acomodarse a esta nueva realidad?

3 Agenda Servicios en la Base de Datos? SODA en SQL Server 2005
Soporte Nativo a Servicios Web Integración de CLR al Motor de Consultas Intermediario de Servicios (Service Broker) Suscripción a Consultas (Query Notification) Despliegue y Escalabilidad

4 Por Qué Servicios En La Base De Datos Evolución De Los Datos De Aplicaciones
Originalmente cada aplicación determinaba sus propios datos (modelos, tablas, etc) Esto hizo que en muchas organizaciones los datos estén multiplicados por doquier Inconsistencias difíciles de administrar Baja confiabilidad Luego las bases de datos comenzaron a brindar servicios de escala empresarial

5 Por Qué Servicios En La Base De Datos Servicios De Base De Datos A Escala Empresarial
Procedimientos almacenados para concentrar lógica consistente de manipulación de datos Reusables entre varias aplicaciones Desacoplando estructura de tablas y aplicaciones Participación en contextos transaccionales Alta disponibilidad mediante clusterización, redundancia, etc Hoy, el concepto de Arquitectura Orientada a Servicios impone características adicionales

6 Por Qué Servicios En La Base De Datos Arquitectura Orientada a Servicios (SOA)
Bajo acoplamiento: el contrato es lo único que comparten consumidor y proveedor de servicio El servicio detrás del contrato puede ser escalado, evolucionado (reimplementado) independientemente de los consumidores Los contratos definen mensajes de entrada y salida (la lingua franca hoy es XML) Dentro de las fronteras donde el servicio “vive”, los datos pueden estar estructurados diferentemente

7 Por Qué Servicios En La Base De Datos Qué Hace a Una Base de Datos “Orientada a Servicios”
Para actuar como proveedor de servicios debe: Proveer soporte a puntos de entrada Socket vía TCP, HTTP GET/PUT, SOAP, etc Recibir requerimientos en protocolos estándares (XML), además del TDS propietario Contemplar características de escalabilidad como pooling, activación y topología distribuible En esta sesión revisaremos qué aporta SQL Server 2005 al respecto

8 Agenda Servicios en la Base de Datos? SODA en SQL Server 2005
Soporte Nativo a Servicios Web Integración de CLR al Motor de Consultas Intermediario de Servicios (Service Broker) Suscripción a Consultas (Query Notification) Despliegue y Escalabilidad

9 Arquitectura de Base de Datos Orientada a Servicios en SQL 2005
Soporte Nativo a Servicios Web SP y funciones como [WebMethod] Integración de CLR al Motor de Consultas Contenedor para incluir extensiones .NET, lado a lado con T-SQL Intermediario de Servicios (Service Broker) Cola transaccional expuesta como servicio (más que orientada a mensajes) Suscripción a Consultas (Query Notification) La BD notifica cambios a otros procesos

10 Soporte Nativo a Servicios Web Introducción
Para conectarse con una base de datos se requieren piezas que implementen un protocolo de comunicación (conocidas como conectores) En el caso de SQL Server, el protocolo se llama Tabular Data Stream (TDS) Las plataformas implementan una API para desacoplar los conectores específicos del código (ADO.NET, OleDb, JDBC) Para acceder vía un protocolo estándar como WS (caso típico de aplicaciones externas y legacies) hay que Implementar un servicio web accesible vía IIS Este servicio web, debe acceder a la BD vía TDS mediante alguno de los modelos de programación (ADO.NET o JDBC)

11 Soporte Nativo a Servicios Web Definición
Procedimientos almacenados y funciones se pueden exponer como WS Windows Server 2003 incluye listener HTTP a nivel kernel (sin IIS) También Win XP SP2 SQL Server registra porciones de URL, que se ‘atan’ (binding) a WS WSDL se genera automaticamente o se puede personalizar SQL Server Modo Usuario Registro Despacho Modo Kernel Listener HTTP (HTTP.SYS) Puerto 80

12 Soporte Nativo a Servicios Web
demo 1 Soporte Nativo a Servicios Web

13 Soporte Nativo a Servicios Web Beneficios
SOAP es menos acoplado en TDS Clientes con dificultades para acceder vía TDS a la base de datos ahora pueden optar por este estándar No obstante, allí donde TDS esté disponible, sigue siendo más rico y con mejor performance Algunas caracs. de ADO.NET 2.0 sin equivalencia en WS Servicios Web requieren menos configuración (firewalls, etc) que protocolos propietarios Seguridad vía WS-Security, SSL, Kerberos, etc Lo esperable es exponer servicios web hacia afuera de la organización (integración B2B) o a los legacy, dejando TDS para aplicaciones internas (EAI)

14 Agenda Servicios en la Base de Datos? SODA en SQL Server 2005
Soporte Nativo a Servicios Web Integración de CLR al Motor de Consultas Intermediario de Servicios (Service Broker) Suscripción a Consultas (Query Notification) Despliegue y Escalabilidad

15 Integración de CLR Introducción
SP ha resultado ser útil para concentrar lógica intensiva de acceso a datos en la BD Extensiones a T-SQL, no obstante, no contemplan otras características como acceso a otros recursos Sistema de archivos, red, memoria, hilos, procesos, … Tampoco tienen disponibles bibliotecas para operaciones con tipos de datos (expresiones regulares, manejo de cadenas, arreglos, etc) T-SQL implementa un paradigma declarativo, estructurado, sin soporte a cualidades de OO Un intento previo, Extended Stored Procedures, permitió definir procedimientos almacenados en C/C++

16 Integración de CLR Definición
CLR es un entorno de ejecución administrado El contenedor coordina hilos, memoria, concurrencia Extensiones habilitadas Funciones escalares Funciones que devuelven tablas Tipos Agregaciones Procedimientos Motor SQL T-SQL CLR C#, VB.NET, C++.NET, J#, … Contenedor SQLCLR SO SQL Windows

17 Integración de CLR al Motor de Consultas
demo 2 Integración de CLR al Motor de Consultas

18 Integración de CLR Tipos de Conexión
Acceso a datos simétrico En el motor de datos: menos latencia porque se accede in process, pero mayor competencia por CPU Fuera del motor: mayor latencia aunque servidor se enfoca en acceso a datos y a procesar mensajes para SOA Seguridad SAFE: restringido a CLR EXTERNAL_ACCESS: acceso a recursos del SO y de la red pero no unsafe UNSAFE: sin restricciones (como extended stored procedures) Capa de la API (interfaz pública, validación y políticas de alto nivel) Microsoft.SqlServer.Server System.Data.SqlClient Conexión en contexto Conexión regular Protocolo lado cliente (TDS, SQL Server) Transporte lado cliente (TCP, Named pipes, etc) Interfaz in-process Transp. lado servidor (TCP, Named pipes, etc) Protocolo lado servidor (TDS, SQL Server) Motor de SQL Server 2005

19 Integración de CLR Beneficios
Aprovechamiento del modelo de programación .NET Ejecución administrada (GC, verificación de seguridad, etc) OO (herencia, polimorfismo, encapsulamiento, etc) Biblioteca de clases (IO, XML, RegExp, math, etc) Desarrollo integrado en Visual Studio 2005 SQLCLR o T-SQL? T-SQL sigue siendo lo más adecuado para acceso intensivo a datos (SQLCLR se apoya en T-SQL para acceder al motor) SQLCLR es útil para proceso de cómputo intensivo con los datos, una vez que estos han sido accedidos Como WS vs TDS, ambos modelos son complementarios

20 Agenda Servicios en la Base de Datos? SODA en SQL Server 2005
Soporte Nativo a Servicios Web Integración de CLR al Motor de Consultas Intermediario de Servicios (Service Broker) Suscripción a Consultas (Query Notification) Despliegue y Escalabilidad

21 Intermediario de Servicios Introducción
Los servicios pueden estar preparados para consumirse en forma asincrónica Tradicionalmente el desarrollador tenía que asegurar que los mensajes se procesen en forma ordenada En un primer mensaje, la cabecera de una orden de compra, en los siguientes los ítems Evitar duplicidades por retransmisiones No procesar un ítem dos veces Coordinar servicios relacionados que pueden no responder todos a un mismo tiempo Inventario, pago, contabilidad, despacho No mezclar mensajes de consumidores concurrentes

22 Intermediario de Servicios Definición
Implementación de MOM (message-oriented middleware) en la base de datos Ambiente de aplicación distribuida para encolar mensajes a servicios en forma asíncrona, ordenada, unívoca y transaccional Además permite reunir, en grupos conversacionales, diálogos individuales con servicios de granularidad más fina Inventario, Pago, Despacho, etc

23 Intermediario de Servicios Caso 1 – Mensajes Independientes
Instancia Procesadora 1 Instancia Procesadora 2 Servicio de Activación de Usuarios U1 U2 U3 U4 U5 U6

24 Intermediario de Servicios Caso 1 – Mensajes Independientes
Instancia Procesadora 1 Instancia Procesadora 2 U1 Servicio de Activación de Usuarios U2 U3 U4 U5 U6

25 Intermediario de Servicios Caso 1 – Mensajes Independientes
Instancia Procesadora 1 Instancia Procesadora 2 U1 U2 Servicio de Activación de Usuarios U3 U4 U5 U6

26 Intermediario de Servicios Caso 2 – Mensajes Relacionados
Instancia Procesadora 1 Instancia Procesadora 2 Servicio de Reserva de Excursiones E1 P1 E2 P1 P2 P2 P3

27 Intermediario de Servicios Caso 2 – Mensajes Relacionados
Instancia Procesadora 1 Instancia Procesadora 2 E1 Servicio de Reserva de Excursiones P1 E2 P1 P2 P2 P3

28 Intermediario de Servicios Caso 2 – Mensajes Relacionados
Instancia Procesadora 1 Instancia Procesadora 2 E1 E2 Servicio de Reserva de Excursiones P1 P1 P2 P2 P3

29 Intermediario de Servicios Caso 2 – Mensajes Relacionados
Instancia Procesadora 1 Instancia Procesadora 2 E2 Servicio de Reserva de Excursiones P1 P1 P2 P2 P3

30 Intermediario de Servicios Caso 2 – Mensajes Relacionados
Instancia Procesadora 1 Instancia Procesadora 2 P1 E2 Servicio de Reserva de Excursiones P1 P2 P2 P3

31 Intermediario de Servicios Caso 2 – Mensajes Relacionados
Instancia Procesadora 1 Instancia Procesadora 2 E2 Servicio de Reserva de Excursiones P1 P2 P2 P3

32 Intermediario de Servicios Caso 2 – Mensajes Relacionados
Instancia Procesadora 1 Instancia Procesadora 2 P2 E2 Servicio de Reserva de Excursiones P1 P2 P3

33 Intermediario de Servicios
Nuevos objetos en la base de datos Mensajes Contratos Colas Servicios Nuevos comandos T-SQL CREATE / ALTER / DROP MESSAGE TYPE <tipo de mensaje> CREATE / ALTER / DROP CONTRACT <contrato> (<tipo de mensaje>) CREATE / ALTER / DROP QUEUE <cola> CREATE / ALTER / DROP SERVICE <servicio> (contrato) ON QUEUE <cola> BEGIN DIALOG CONVERSATION <conversación> SEND ON CONVERSACION <conversación> MESSAGE TYPE <tipo de mensaje> END DIALOG GET CONVERSATION GROUP … FROM <cola> RECEIVE … FROM <cola>

34 Intermediario de Servicios
demo 3 Intermediario de Servicios

35 Intermediario de Servicios Activación de Lectores de Colas
El framework se encarga de activar lectores en la medida que la cola se va llenando Cada programa lector se ocupa de terminar luego de cierto tiempo ocioso Si la gestión del servicio es externa a la BD, se emiten eventos de activación La aplicación externa deberá monitorear estos eventos para gestionar sus lectores

36 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 Servicio de Órdenes de Compra O1 O2 O3 O4 Servicio de Tarjeta de Crédito Servicio de Inventario

37 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O1 Servicio de Órdenes de Compra O2 O3 O4 Servicio de Tarjeta de Crédito Servicio de Inventario

38 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O1 O2 Servicio de Órdenes de Compra O3 O4 Servicio de Tarjeta de Crédito Servicio de Inventario

39 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O2 Servicio de Órdenes de Compra O3 O4 T1 I1 Servicio de Tarjeta de Crédito Servicio de Inventario

40 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O3 O2 Servicio de Órdenes de Compra O4 I1 T1 Servicio de Tarjeta de Crédito Servicio de Inventario

41 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O3 Servicio de Órdenes de Compra O4 T1 I1 T2 I2 Servicio de Tarjeta de Crédito Servicio de Inventario

42 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O3 I1 Servicio de Órdenes de Compra O4 T1 T2 I2 Servicio de Tarjeta de Crédito Servicio de Inventario

43 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O3 T1 Servicio de Órdenes de Compra O4 T2 I2 Servicio de Tarjeta de Crédito Servicio de Inventario

44 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 Servicio de Órdenes de Compra O4 T2 I2 T3 I3 Servicio de Tarjeta de Crédito Servicio de Inventario

45 Intermediario de Servicios Manejo de Estado de Grupos Conversacionales
Instancia Procesadora 1 Instancia Procesadora 2 O4 T2 Servicio de Órdenes de Compra I2 T3 I3 Servicio de Tarjeta de Crédito Servicio de Inventario

46 Intermediario de Servicios Beneficios
Integridad de datos Mensaje mal procesado vuelve a la cola y no se producen cambios (atomicidad transaccional) Orden y coordinación de mensajes relacionados Bajo acoplamiento Un servicio puede ser un SP, un método .NET, … Rendimiento aceptable por asincronismo Posibilidad de definir timeout a la conversación Activación automática

47 Intermediario de Servicios Ejemplos de Uso
Triggers asincrónicos en sistemas OLTP Commit inmediato mientras el servicio se consume en una transacción separada Sucursales ocasionalmente conectadas Mensaje no distribuido queda en la cola Proceso distribuido a lado servidor Ejemplo de orden de compra (inventario, tarjeta) Consolidación de datos (Call center) Mensaje al servicio de posición global de cliente, para que éste repostée a distintos subsistemas

48 Agenda Servicios en la Base de Datos? SODA en SQL Server 2005
Soporte Nativo a Servicios Web Integración de CLR al Motor de Consultas Intermediario de Servicios (Service Broker) Suscripción a Consultas (Query Notification) Despliegue y Escalabilidad

49 Suscripción a Consultas Introducción
Implementar modelos Productor-Consumidor con una BD no es trivial Un problema típico es tener al Consumidor consultando la BD para determinar que haya registros a consumir Esta consulta consume ciclos de CPU y otros recursos (conector a BD, tráfico de red, etc) A mayor frecuencia, menor performance A menor frecuencia, menor capacidad de reacción

50 Suscripción a Consultas Definición
Un cambio en la BD se produce por los comandos INSERT, UPDATE, DELETE Es posible suscribirse a una consulta, para que dispare una notificación al cambiar su resultado Esta característica utiliza el Intermediario de Servicios (Service Broker) Se puede suscribir un servicio propio u ocupar uno default (QueryNotificationService) Al distribuirse una notificación se elimina su suscripción

51 Suscripción a Consultas Implementación
Dos mecanismos de suscripción SqlDependency y SqlNotificationRequest SqlDependency se cuelga del dispatcher default Sólo hay que especificar un manejador del evento OnChanged Se puede configurar el mecanismo de transporte (HTTP, TCP, etc), un timeout, si la BD va a requerir autentificarse y si se debe encriptar la notificación En ASP.NET 2.0, SqlCacheDependency implementa CacheDependency encapsulando SqlDependency SqlNotificationRequest más potente aunque complejo Implementa tanto la lógica de esperar por notificaciones como la de atenderlas Optimización de evaluación de suscripciones Suscripciones a una misma consulta se evalúan una sola vez

52 Suscripción a Consultas Esquema Conversacional de SqlDependency
SQL Server 2. Registro de la suscripción 3. Cambio en la consulta suscripta 4. Mensaje a la cola del Intermediario de Servicios 1. SqlCommand de suscripción 5. La notificación es enviada 6. Al recibirse interviene OnChangeEventHandler

53 Suscripción a Consultas
demo 4 Suscripción a Consultas

54 Agenda Servicios en la Base de Datos? SODA en SQL Server 2005
Soporte Nativo a Servicios Web Integración de CLR al Motor de Consultas Intermediario de Servicios (Service Broker) Suscripción a Consultas (Query Notification) Despliegue y Escalabilidad

55 Despliegue y Escalabilidad
Los servicios se pueden instanciar a múltiples escalas, en tiempo de despliegue (no de desarrollo) Escala reducida, junto al motor de consultas (DB tier): menor latencia, mayor competencia por CPU Gran escala, en un proceso separado (middle-tier): mayor latencia, procesos dedicados Escalar la BD por clusterización presenta mayor acoplamiento que dividir aplicaciones en SOA

56 Despliegue y Escalabilidad
Estas características de SODA pueden convivir en una instancia única de SQL Server 2005 distribuirse de modo de ejecutar SQLCLR separado del motor de acceso a datos CLR Lógica SQL Server 2005 SQL Server 2005 SQLCLR Capa única Capas múltiples

57 Despliegue y Escalabilidad Topología de Servicios Ocasionalmente Conectada
Servidor Proxy Nodos de Procesamiento de Servicios Usuario de aplicaciones basadas en servicios Internet

58 Resumen En un esquema orientado a servicios, las bases de datos deben evolucionar de su contexto actual (acoplado) a uno más estándar Hemos visto que SQL Server 2005 promueve un esquema abierto, donde Expone funcionalidades como servicios web Enriquece las posibilidades de acceso a datos (T-SQL) con las de cómputo sobre los mismos (SQLCLR) Provée un esquema asíncrono de coordinación de servicios, garantizando orden e idempotencia de mensajes, al tiempo que previene que mensajes relacionados se dispersen Dota a los datos de comportamiento “activo”, liberando a los procesos de preguntar frecuentemente por novedades Estas características redundan en mayor robustez en los desarrollos, mejora en la productividad, menos líneas de código y mayor time-to-market

59 Referencias SQL Server Developer Center
Webcasts de Desarrollo con SQL Server 2005 Orientación a Servicios en SQL Server 2005

60 © 2005 Microsoft Corporation. All rights reserved.
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Descargar ppt "Diego Dagum Arquitecto .NET Microsoft Chile"

Presentaciones similares


Anuncios Google