La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Arquitectura de Base de Datos Orientada a Servicios (SODA) en SQL Server 2005 Diego Dagum Arquitecto.NET Microsoft Chile."— Transcripción de la presentación:

1 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 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 Por Qué Servicios En La Base De Datos Qué Hace a Una Base de Datos Orientada a Servicios

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 Listener HTTP (HTTP.SYS) SQL Server Modo Usuario Modo Kernel Puerto 80 Registro Despacho

12 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 TiposAgregacionesProcedimientos Motor SQL T-SQL Windows SO SQL CLR C#, VB.NET, C++.NET, J#, … Contenedor SQLCLR

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

18 Interfaz in-process Integración de CLR Tipos de Conexión Capa de la API (interfaz pública, validación y políticas de alto nivel) Conexión en contexto 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) Protocolo lado cliente (TDS, SQL Server) Conexión regular Transporte lado cliente (TCP, Named pipes, etc) Transp. lado servidor (TCP, Named pipes, etc) Protocolo lado servidor (TDS, SQL Server) Motor de SQL Server 2005 Microsoft.SqlServer.ServerSystem.Data.SqlClient

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 Servicio de Activación de Usuarios Instancia Procesadora 1 Instancia Procesadora 2 U1U2 U3U4U5U6

24 Intermediario de Servicios Caso 1 – Mensajes Independientes Servicio de Activación de Usuarios Instancia Procesadora 1 Instancia Procesadora 2 U2 U3U4U5U6 U1

25 Intermediario de Servicios Caso 1 – Mensajes Independientes Servicio de Activación de Usuarios Instancia Procesadora 1 Instancia Procesadora 2 U3U4U5U6 U1U2

26 Intermediario de Servicios Caso 2 – Mensajes Relacionados Servicio de Reserva de Excursiones Instancia Procesadora 1 Instancia Procesadora 2 E1P1 E2P1P2P2 P3

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

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

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

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

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

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

33 Intermediario de Servicios Nuevos objetos en la base de datos MensajesContratosColasServicios Nuevos comandos T-SQL CREATE / ALTER / DROP MESSAGE TYPE CREATE / ALTER / DROP MESSAGE TYPE CREATE / ALTER / DROP CONTRACT ( ) CREATE / ALTER / DROP QUEUE CREATE / ALTER / DROP QUEUE CREATE / ALTER / DROP SERVICE (contrato) ON QUEUE CREATE / ALTER / DROP SERVICE (contrato) ON QUEUE BEGIN DIALOG CONVERSATION BEGIN DIALOG CONVERSATION SEND ON CONVERSACION MESSAGE TYPE SEND ON CONVERSACION MESSAGE TYPE END DIALOG GET CONVERSATION GROUP … FROM GET CONVERSATION GROUP … FROM RECEIVE … FROM RECEIVE … FROM

34 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 Servicio de Órdenes de Compra Instancia Procesadora 1 Instancia Procesadora 2 Servicio de Tarjeta de Crédito Servicio de Inventario O1O2 O3 O4

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

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

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

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

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

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

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

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

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

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

53 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 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 Despliegue y Escalabilidad

56 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 SQL Server 2005 SQLCLR Capa única SQL Server 2005 Capas múltiples CLR Lógica

57 Despliegue y Escalabilidad Topología de Servicios Ocasionalmente Conectada Usuario de aplicaciones basadas en servicios Servidor Proxy Nodos de Procesamiento de 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 Orientación a Servicios en SQL Server 2005

60 © 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 "Arquitectura de Base de Datos Orientada a Servicios (SODA) en SQL Server 2005 Diego Dagum Arquitecto.NET Microsoft Chile."

Presentaciones similares


Anuncios Google