350 likes | 464 Views
Módulo 15. Aplicaciones distribuidas. TEMARIO. Soporte a Bases de Datos Distribuidas SQL 2005 Distributed Services (integrado y mejorado) SQL 2005 Distributed Services Arquitectura Service Broker Notification Services Reporting Services Replication Services.
E N D
Módulo 15 Aplicaciones distribuidas
TEMARIO • Soporte a Bases de Datos Distribuidas • SQL 2005 Distributed Services(integrado y mejorado) • SQL 2005 Distributed Services • Arquitectura • Service Broker • Notification Services • Reporting Services • Replication Services
Soporte a Bases de Datos Distribuidas • Soporte a HTTP Web Services • Service Broker • Servicios de Notificación • Reporting Services • Mejoras a la Replicación • Mejoras a consultas distribuidas
SQL 2005 Distributed Services(integrado y mejorado) Enhanced Distributed Queries OLE DB Tracing, EXECUTE AT, ... Enhanced Replication Oracle Publishing, Peer-to-Peer & More Service Broker Asynchronous Messaging Notification Services Notifications & Alerts Reporting Services Enterprise Reporting Native HTTP SOAP Access Web Services SQL Server 2005
SQL 2005 Distributed Services • Soporte HTTP Nativo • Permite alojar SQL Server Web services sin necesidad de un IIS • El soporte de HTTP en forma nativa permite la publicación de datos SQL como SOAP Web services. • Service Broker • Una nueva y escalable arquitectura que provee soporte a mensajería asincrónica. • Servicios de Notificación • Una plataforma para construir aplicaciones altamente escalables con servicios de notificación.
SQL 2005 Distributed Services • Reporting Services • Una plataforma de servidor que soporta creación, distribución y manejo de reportes. • Mejoras en la replicación • El servicio de replicación ofrece mejoras en el manejo, disponibilidad, programabilidad, escalabilidad y performance. • Mejoras en las Consultas Distribuidas • EXECUTE sobre servidores linkeados, soporte a CONTAINS, BULK provider para OPENROWSET
Arquitectura • Creación de un HTTP Endpoint y Definición de Métodos • URL única para escuchar los pedidos HTTP entrantes • Las solicitudes son procesadas por HTTP.sys y la capa SOAP en SQL Server
Soporte WSDL • Generación dinámica • WSDL – Soporte Out of the Box • Compleja • Descripción de tipos para parámetros y resultados en XSD • Simple • Descripción mínima • Interoperabilidad incrementada • Extensible – uso de stored procedures personalizados • WSDL=sp_name
Seguridad - Best Practices • Implementación a través de firewall/proxy/DMZ • No abrir puertos a internet • Proveer puntos de acceso y permisos solamente a los principals que necesiten tenerlos.
¿Qué es un Service Broker? • Encolado de mensajes asincrónico y garantizado • Plataforma para la construcción de aplicaciones de bases de datos asincrónicas y encoladas • Colas como objetos de DB de primera clase • Manipulación de colas sobre TSQL • Procesamiento de mensajes transaccional • Encolado Distribuido Confiable
Terminología de Service Broker • Service Program • Example, TSQL/CLR stored procedure ó function • Queue • Almacena mensajes que son enviados por los programas en servicio • Message Type • Formato de mensaje -- XML • Contract • Conjunto de nombres de tipos de mensajes • Service • Endpoint que es una colección de service programs, queues, message types and contracts
Terminología de Service Broker • Dialogs • Conversación entre el iniciador y el destino • Routes • Direccion a la cual es enviado el mensaje • Remote Service Bindings • Usuarios de Base de datos asociados a un servicio remoto • Service Instances • Instancias de Service Broker • Denominadas con un Identificador Univoco
Transporte de mensajes • Dialog Protocol • Protocolo End-to-end • Delivery único • Delivery ordenado • Symmetric failure • Autenticación y encriptación • Transport Protocol • Formato de mensaje binario, eficiente • Basado en TCP/IP • Bidireccional, multiplexado, maximo-esfuerzo A D B C
Msg-1 Msg-2 Msg-1 Msg-2 Msg-1 Msg-1 Msg-2 State -A State -A State -A One Atomic Transaction One Atomic Transaction SQL Broker X2 X1 DB write Y2 Y1 DB write Z2 Z1 DB write State -B State -B State -B Send! Transactional Semantics Service Instance State -A
Flujo Transaccional • Comenzar el mensaje transaccional • Recibir uno o mas mensajes desde un grupo de conversación. • Devolver el estado de la conversación desde las tablas de la Service Broker DB. • Procesar el mensaje y hacer modificaciones a los datos, basándose en el mensaje • Enviar algún mensaje – Respuestas a mensajes entrantes o mensajes a otros servicios requeridos para procesar el mensaje actual • Leer y procesar mas mensajes desde el grupo de conversación si esta disponible • Actualizar las tablas de estado de la conversación con el nuevo estado • Commitear la transacción.
¿Qué es Notification Services? • Plataforma para desarrollar y desplegar aplicaciones que generan y envían notificaciones a usuarios • Framework y poderoso Framework para desarrollo • Motor confiable, escalable y de alta performance, que corre aplicaciones de notificación
Notification Services Application • Define la lógica de la aplicación de notificación • Una o mas por instancia • Enteramente definida por un ‘application definition file’ (ADF XML File) • Schemas para Eventos, Suscripciones, Notificaciones • Reglas • Formateadores de Contenido • Proveedores de Eventos • Protocolos Distribuidos
1. Modelizar los Events como rows en una tabla SQL 2. Modelizar las subscriptions como rows en una tabla Definiendo Esquemas y Reglas • 3. Utilizar SQL para escribir las reglas de matcheo • 4. Formatear la notificación usando XSLT
“Compilando” una aplicación NS • Nscontrol.exe create • Lee config. / ADF xml files • Crea databases, tables, views, stored procs… • Nscontrol.exe register(en cada máquina que corre el servicio) • Specify Windows/SQL credentials/encryption key • Instalar un multithreaded Windows service por instancia • Habilitar Nscontrol.exe • Activa EP, GP, DP • Comenzar la instancia
Instancia de Notification Services • Hace posible compartir los suscriptores para dos o mas aplicaciones • Multithreaded Windows Service • Hostea threads para Proveedores de Eventos, Generadores y Distribuidores • Multiples instancias por computadora • Test y producción • La instancia puede ocupar varias computadoras • Definido por un archivo de configuracion XML
Solución a problemas en NS • Windows application event log • nsservice.exe.config • Encender modo verbose • Valor Default: warnings and errors (2) • Nscontrol.exe • Verificar estatus de la instancia de notificación • nscontrol status –n [instanceName] • Enable/Disable components • nscontrol [enable | disable]
Reporting Services • Motor de reportes Server-based • Crear reportes • Tabulados • Matriciales • Gráficos • De formas libres • Pueden contener datos de fuentes relacionales y/o multidimensionales • Reportes publicados en la Web • Provee Servicios, herramientas y APIs
Ciclo de vida de un reporte • Soporte para el total del ciclo de vida de un reporte • Autoría • Administración • Publicación
Ciclo de vida de un reporte AUTHORING MANAGEMENT DELIVERY • Central Report Server database • Managed report execution • Secured reports • Web-based Report Manager or custom • Runtime report rendering • Pull • Report Manager • Custom • Push • Emails • File • Custom • Report Definition Language (RDL) • Any .NET managed data provider • Report Designer or custom
Creación de Reportes • Poderoso lenguaje de definición de reportes en XML • Libres / Tabla / Matriz / Gráfico • Parámetros (Dinámico, Jerárquico) • Ordenado / Filtrado / Agrupamientos / Agregados • Interactividad (Drill-down, Drill-through) • Full VB.NET Expression Language • Arquitectura de ejecución de consultas extensible • SQL Server / Analysis Services • OLE DB / ODBC / Oracle • Diseñador de Reportes • Integrado con Visual Studio .NET 2003 • Definiciones publicas permiten herramientas de terceros
Administración de Reportes • Web Service APIs para administración • Interfaz de usuario Web y Win32 • Funciones de administración de reportes • Report Metadata • Name • Description • Connections • Credentials • Parameters • Programado integrado con SQL Server Agent • Propiedades de ejecución (live, cache or snapshot) • Historial de ejecuciones • Arquitectura de seguridad extensible, basada en roles
Publicación de reportes • Una misma definición de un reporte puede ser renderizada a distintos formatos • Formatos Web (HTML 4, HTML 3.2, HTML w/OWC) • Formatos de Impresion (TIFF, RTF, PDF) • Documentos (Excel, XML, CSV) • Suscripciones y publicaciones personalizadas y definidas por un administrador • Selección de formato de salida por suscripción • La distribución puede referenciar a un reporte renderizado • Arquitectura de proveedor de publicación extensible • E-mail, File System, Custom
Arquitectura de Reporting Services Browser Management Custom App Data Sources (SQL, OLE DB, ODBC, Oracle, Custom) Output Formats (HTML, Excel, PDF, Custom) URL WMI Web Service Report Server Report Processing Rendering Data Retrieval Security Delivery SQL Server Catalog Delivery Targets (E-mail, File share, Custom) Security Services (NT, Passport, Custom)
Replication Services • SQL Server 2005 distribuye datos entre multiples DB • Incrementa la disponibilidad de datos, ofreciendo aplicaciones para escalar • Distribuye el “read workload” entre multiples DB • Sincroniza off-line datos con usuarios móviles • Nuevo modelo peer-to-peer provee una nueva topología • Bases de datos sincronizadas transaccionalmente • “read workload” mayor, resulta en disponibilidad de la base de datos mas elevada
Replication Services • Provee fault tolerance • Replicación utilizando protocolos deinternet (http) y secure internet (https) • Incrementa la disponibilidad de datos a usuarios móviles • Sincronización sobre internet • Oracle Publishing • Replicación de Oracle sobre SQL Server • Disponibilidad de datos sobre fuentes diferentes
Distributed Queries Mejorados • EXECUTE with AT linked_server_name EXEC sp_addlinkedserver ‘London', 'SQL Server' GO EXECUTE ('CREATE TABLE InvoiceTbl (InvoiceID int, Amount money)', ‘MyDB') AT London • CONTAINS or FREETEXT • Utilizar four-part names en predicados CONTAINS o FREETEXT para ejecutar queries contra servidores linkeados • Nuevo SQL Profiler Trace Events para ayudar a analizar y solucionar problemas entre los OLE DB Providers y los Distributed Queries.