SQL Server 2005 como servidor de aplicaciones Edgar Sánchez Director Regional de Microsoft.

Slides:



Advertisements
Presentaciones similares
Web Services.
Advertisements

METODOS DE AUTENTICACIÓN
Conceptos fundamentales de ADO.NET
Seguridad en SQL Server 2005 para Desarrolladores.
WSE 2.0 (.NET Web Services Enhancements)
Windows 2003 como Servidor de Aplicaciones Jose Murillo ISV Development Advisor
Algunos tips en Seguridad ASP.NET 2.0
Los objetivos de esta presentación
Lo nuevo en Microsoft Office Project Server 2003 Microsoft Corporation.
Componentes de ASP.NET Leonardo Diez Dolinski Servicios Profesionales Danysoft.
Seguridad en SQL Server 2005
YUKON EN EL HORIZONTE Valeria Rodríguez Z. MVP SQL Server Business Manager Paradigma Software S.R.L.
Implementación de SQL Server 2000 Reporting Services
ADELA TORRES JONATHAN BEJARANO
Código: HOL-WIN36. Core Version ¿Por qué Core Version? Configuración y securización del Servidor Instalación y configuración de roles Instalación y configuración.
Crear y consumir Servicios Web XML
Seguridad en aplicaciones Web con Microsoft ASP.NET
INDUSOFT Software para generación de completas aplicaciones industriales multi-plataforma Se compone de un completo y potente conjunto de herramientas.
AUTORES: Eloy Cantero Salvador López
DIRECT ACCESS.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Lenguajes Servicios Web
Microsoft SQL Server 2008 – SQL Server Integration Services
Servicios Web.
INFOPATH ERIKA SAAVEDRA.
INFOPATH.
ACCESO A BASES DE DATOS ORACLE CON PHP
Introducción a los servicios Web
Curso de Java y Aplicaciones Web
Desarrollando y consumiendo Web Services con Visual FoxPro
Implementación de arquitecturas distribuidas
Seguridad en ASP.NET Daniel Laco
Acceso a datos y paso de datos entre capas
César de la Torre – Programas Técnicos para Partners División de Desarrollo y Plataforma – Microsoft Spain.
Comparación entre la implementación de aplicaciones PHP y ASP.NET 2.0
Montevideo 14 de Diciembre Gustavo Larriera Alejandro Ponicke El nuevo día a día con SQL Server 2005.
Microsoft Office System Recopilando Información y Fomentando la Colaboración a través de Formularios Electrónicos José Alania Valdez Especialista en Tecnologías.
Características Técnicas
Introducción ADO .Net.
Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización Entre plataformas Entre lenguajes.
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
Características Técnicas
Introducción XML y WebServices.
TECNOLOGÍA IDC Internet Database Connector Trinitario Gómez López.
INFOPATH 2010 DANIELA CHEDRAUI.
WSDL & UDDI Taller de Sistemas de Información 1
Módulo 14 Programación para DBA. TEMARIO Programación y DBAProgramación y DBA.NET Framework.NET Framework Arquitectura ADO.NETArquitectura ADO.NET.NET.
Microsoft InfoPath. Creación y publicación de formularios empresariales Dese su aparición en Office 2003, Microsoft InfoPath se ha convertido en una de.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola.
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Alberto Guirao Rico Jesús Barahona Esteve.
Representational State Transfer (REST)
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
/ Teléfono : Web : Build Solutions IT.
Sistema de Administración de Iglesias
JDBC Java Database Connectivity CC52N - Computación para el trabajo grupal Profesor: Nélson Baloian Por: Edgard Pineda.
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
Diseño de Servicios Web Internet Information Server © Copyright 2003 Víctor ROBLES FORCADA
Borland User Group - Guatemala Introducción a WebServices y ejemplos de interoperabilidad entre Win32,.Net y Java Axel Canteo – Banco de Comercio Juan.
Administración de políticas de seguridad. -Seguro por diseño - Seguro por defecto - Seguro en implementación - Seguro en comunicaciones Iniciativa Trustworthy.
FACULTAD: CIENCIAS ECONÓMICAS Y EMPRESARIALES ASIGNATURA: GESTIÓN DE CONTENIDO ELECTRÓNICO TÍTULO: TINFOPATH - VENTAJAS Y USO. AUTORA: MARIA DANIELA TOMALÁ.
Microsoft InfoPath ESTEFANIA FIALLO.
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
GeneXus 9.0: Creando el ERP del Futuro basado en una Arquitectura Orientada a Servicios
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Por: Jorge Aguirre.  Microsoft InfoPath es una aplicación usada para desarrollar formularios de entrada de datos basados en XML.  Su primera publicación,
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Transcripción de la presentación:

SQL Server 2005 como servidor de aplicaciones Edgar Sánchez Director Regional de Microsoft

Lo que veremos Soporte nativo para servicios de Web en SQL Server 2005 Soporte nativo para servicios de Web en SQL Server 2005 Alcance y características Alcance y características Escenarios de uso Escenarios de uso

Prerrequisitos Familiaridad con los conceptos de servicios de Web con XML Familiaridad con los conceptos de servicios de Web con XML Familiaridad con HTTP Familiaridad con HTTP

Agenda La visión La visión Arquitectura Arquitectura Escenarios de aplicación Escenarios de aplicación Detalles – endpoint, solicitud/respuesta Detalles – endpoint, solicitud/respuesta Modelo de programación Modelo de programación Seguridad Seguridad Rendimiento Rendimiento Comparación con SQLXML Comparación con SQLXML Mejores prácticas Mejores prácticas

La visión Proveer un mecanismo basado en estándares abiertos para acceder a SQL Server Proveer un mecanismo basado en estándares abiertos para acceder a SQL Server La meta La meta Acceso ubicuo a datos Acceso ubicuo a datos Interoperabilidad Interoperabilidad Basado en estándares como HTTP, SOAP 1.1 y 1.2, XSD y WSDL 1.1 Basado en estándares como HTTP, SOAP 1.1 y 1.2, XSD y WSDL 1.1 Cumplir con las últimas especificaciones de servicios de Web que resulten aplicables Cumplir con las últimas especificaciones de servicios de Web que resulten aplicables

Protocolos de acceso a SQL Server SQL SERVER TDS/TCPNamedPipesTDS/TCPNamedPipesODBC, OLE DB, ADO.NETODBC, ADO.NET

Protocolos de acceso a SQL Server SQL SERVER TDS/TCPNamedPipesTDS/TCPNamedPipesODBC, OLE DB, ADO.NETODBC, ADO.NET SQL XML IIS IIS

Protocolos de acceso a SQL Server TDS/TCPNamedPipesTDS/TCPNamedPipesODBC, OLE DB, ADO.NETODBC, ADO.NET SQL XML IIS IIS SQL SERVER SOAP/HTTPSOAP/HTTP Unix Client

Requerimientos de plataforma Windows Server 2003, Windows XP SP2 Windows Server 2003, Windows XP SP2 Soporte de Http.Sys en modo kernel Soporte de Http.Sys en modo kernel No se requiere Internet Information Services (IIS) No se requiere Internet Information Services (IIS)

SQL SERVER Diagrama de arquitectura

SQL SERVER Diagrama de arquitectura EndpointEndpoint

SQL SERVER Diagrama de arquitectura EndpointEndpoint Procedimiento almacenado

SQL SERVER Diagrama de arquitectura EndpointEndpoint Procedimiento almacenado Acceso RPC

SQL SERVER Diagrama de arquitectura EndpointEndpoint Procedimiento almacenado Acceso RPC Acceso por lotes

SQL SERVER Diagrama de arquitectura EndpointEndpoint Procedimiento almacenado Acceso RPC Acceso por lotes Solicitud WSDL Generador WSDL

Escenarios de aplicación Aprovechar la inversión en procedimientos almacenados Aprovechar la inversión en procedimientos almacenados Lógica de procedimientos almacenados muy asociada con los datos Lógica de procedimientos almacenados muy asociada con los datos Servicios de búsqueda Servicios de búsqueda Catálogo de productos, directorio de empleados, servicios basados en la ubicación Catálogo de productos, directorio de empleados, servicios basados en la ubicación Servicios de reportes Servicios de reportes Permite también reportes ad-hoc Permite también reportes ad-hoc Escenarios móviles Escenarios móviles Permite que nuevas clases de dispositivos de tamaño pequeño se conecten a SQL Server Permite que nuevas clases de dispositivos de tamaño pequeño se conecten a SQL Server Conexiones no atadas a una sesión, la sesión permanece incluso si la conexión se cae. Permite tener dispositivos conectados esporádicamente. Conexiones no atadas a una sesión, la sesión permanece incluso si la conexión se cae. Permite tener dispositivos conectados esporádicamente.

Escenarios de aplicación (cont.) Uso en ambientes heterogéneos Uso en ambientes heterogéneos Se puede conectar Perl a SQL Server Se puede conectar Perl a SQL Server Se puede usar como una alternativa a JDBC Se puede usar como una alternativa a JDBC Permite Arquitectura Orientada a Servicios Permite Arquitectura Orientada a Servicios Aplicaciones desconectadas Aplicaciones desconectadas Expone servicios de Web en la capa de datos o en la capa intermedia Expone servicios de Web en la capa de datos o en la capa intermedia Servicios asincrónicos son posibles con la integración con SQL Server Service Broker Servicios asincrónicos son posibles con la integración con SQL Server Service Broker

Ejemplo de Endpoint Un endpoint tiene un nombre Un endpoint tiene un nombre Un conjunto de opciones para el transporte (HTTP) – el URL Un conjunto de opciones para el transporte (HTTP) – el URL Un conjunto de opciones para la carga (SOAP) – métodos invocables en ese URL Un conjunto de opciones para la carga (SOAP) – métodos invocables en ese URL create endpoint Demo as HTTP ( as HTTP ( authentication = ( integrated ), authentication = ( integrated ), path = '/sql/demo', ports = ( clear), path = '/sql/demo', ports = ( clear), state = started state = started) for soap ( webmethod webmethod ' ' (name = demodb.dbo.testproc1), (name = demodb.dbo.testproc1), batches = enabled, batches = enabled, wsdl = default wsdl = default)

Endpoints – Modelo de seguridad No hay acceso anónimo No hay acceso anónimo Autenticación – dos niveles Autenticación – dos niveles Transporte HTTP: Basic, Digest, Integrated (NTLM, Kerberos) Transporte HTTP: Basic, Digest, Integrated (NTLM, Kerberos) SQL Server: SQL Auth (WsSecurity Username token ) habilitado cuando LOGIN_TYPE=MIXED SQL Server: SQL Auth (WsSecurity Username token ) habilitado cuando LOGIN_TYPE=MIXED Prevención de envío de credenciales en claro Prevención de envío de credenciales en claro Forzar SSL cuando se usa BASIC o LOGIN_TYPE = MIXED Forzar SSL cuando se usa BASIC o LOGIN_TYPE = MIXED Filtrado de IPs Filtrado de IPs

Solicitud WSDL Describe la aplicaci ó n (servicios) que el endpoint expone Describe la aplicaci ó n (servicios) que el endpoint expone Solicitud del WSDL Solicitud del WSDL : / ?WSDL : / ?WSDL

Crear Endpoint, solicitar WSDL

WSDL - Soporte Generación dinámica Generación dinámica WSDL – Soporte de cajón WSDL – Soporte de cajón Complejo Complejo Descripción de tipos rica para parámetros y resultados usando tipos complejos XSD Descripción de tipos rica para parámetros y resultados usando tipos complejos XSD Simple Simple Descripción mínima Descripción mínima Interoperabilidad incrementada Interoperabilidad incrementada Extensible – usa un procedimiento almacenado personalizado Extensible – usa un procedimiento almacenado personalizado WSDL=sp_name WSDL=sp_name

Solicitud SOAP - Lote SELECT EmployeeID, LoginID, Gender FROM Employee Where ; SELECT EmployeeID, LoginID, Gender FROM Employee Where ;</BatchCommands> <Parameters> 1 1 </SqlParameter> </Parameters></sqlbatch> Equivalente en TDS a la declaración de parámetros invocando a sp_executesql

SOAP- Solicitud RPC <CustomerID>1</CustomerID></GetCustInfo> </soap:Envelope> Es similar a (sobre TDS, en un lote) EXEC demodb.dbo.GetCustInfo EXEC demodb.dbo.GetCustInfo <CustomerID>1</CustomerID></GetCustInfo> </soap:Envelope> Es similar a (sobre TDS, en un lote) EXEC demodb.dbo.GetCustInfo EXEC demodb.dbo.GetCustInfo

Respuestas SOAP Las User Defined Functions son sencillas Las User Defined Functions son sencillas Por ejemplo, un valor de retorno de una nvarchar(100) se mapea a una string, con una longitud máxima de 100 Por ejemplo, un valor de retorno de una nvarchar(100) se mapea a una string, con una longitud máxima de 100 Los procedimientos almacenados son más difíciles Los procedimientos almacenados son más difíciles No hay un esquema fijo para lo que se devuelve. Se mapea para devolver un arreglo de valores. No hay un esquema fijo para lo que se devuelve. Se mapea para devolver un arreglo de valores. El retorno para un lote SQL es el mismo que para un procedimiento almacenado El retorno para un lote SQL es el mismo que para un procedimiento almacenado

Respuesta SOAP ResultStream de ResultStream de SqlRowSet – resultado de SELECT … SqlRowSet – resultado de SELECT … SqlXml – resultado de SELECT.. FOR XML SqlXml – resultado de SELECT.. FOR XML SqlMessage – Mensajes de Error, Warning y Print SqlMessage – Mensajes de Error, Warning y Print SqlRowCount – Filas afectadas SqlRowCount – Filas afectadas SqlResultCode – Código de retorno del SP SqlResultCode – Código de retorno del SP Errores/Fallas Errores/Fallas

Clientes inteligentes Los clientes consumen WSDL para generar código proxy Los clientes consumen WSDL para generar código proxy En Visual Studio®.NET Add Web Reference En Visual Studio®.NET Add Web Reference En línea de comandos: wsdl.exe En línea de comandos: wsdl.exe Por ejemplo… Por ejemplo… object[] SqlBatch(string batchCommands, ref SqlParameter[] parameters); ref SqlParameter[] parameters); string testFunc1(string p1); object[] testProc1();

Formato de resultado y binding del lenguaje FORMAT = ALL_RESULTS FORMAT = ALL_RESULTS Object [] o = myProcedure(params); Object [] o = myProcedure(params); FORMAT = ROWSETS_ONLY FORMAT = ROWSETS_ONLY DataSet ds = myProcedure(myParam); DataSet ds = myProcedure(myParam);

Aplicaciones de cliente – Java, cliente inteligente con Visual Studio 2005

Soporte de sesiones Se debe habilitar sesiones en el endpoint Se debe habilitar sesiones en el endpoint Las sesiones pueden extender conexiones Las sesiones pueden extender conexiones Las solicitudes para conectarse a sesiones son autenticadas Las solicitudes para conectarse a sesiones son autenticadas Las sesiones se inician y terminan a través del header SOAP Las sesiones se inician y terminan a través del header SOAP El timeout de la sesión se puede configurar en el endpoint y en el inicio de la solicitud El timeout de la sesión se puede configurar en el endpoint y en el inicio de la solicitud

Solicitud/Respuesta de sesión <SOAP-ENV:Header xmlns:SOAP- ENV= xmlns:SOAP- ENV= xmlns:sqloptions= rver/2001/12/SOAP/Options> xmlns:sqloptions= rver/2001/12/SOAP/Options> </SOAP-ENV:Header><SOAP-ENV:Header xmlns:SOAP- ENV= xmlns:SOAP- ENV= xmlns:sqloptions= rver/2001/12/SOAP/Options> xmlns:sqloptions= rver/2001/12/SOAP/Options> </SOAP-ENV:Header>

Solicitud/Respuesta de sesión <SOAP-ENV:Header xmlns:SOAP- ENV= xmlns:SOAP- ENV= xmlns:sqloptions= rver/2001/12/SOAP/Options> xmlns:sqloptions= rver/2001/12/SOAP/Options> </SOAP-ENV:Header><SOAP-ENV:Header xmlns:SOAP- ENV= xmlns:SOAP- ENV= xmlns:sqloptions= rver/2001/12/SOAP/Options> xmlns:sqloptions= rver/2001/12/SOAP/Options> </SOAP-ENV:Header> <SOAP-ENV:Header xmlns:SOAP- ENV= xmlns:SOAP- ENV= xmlns:sqloptions= rver/2001/12/SOAP/Options> xmlns:sqloptions= rver/2001/12/SOAP/Options> </SOAP-ENV:Header><SOAP-ENV:Header xmlns:SOAP- ENV= xmlns:SOAP- ENV= xmlns:sqloptions= rver/2001/12/SOAP/Options> xmlns:sqloptions= rver/2001/12/SOAP/Options> </SOAP-ENV:Header>

Soporte de WS-Security Soporte para token de header tipo WsSecurity Username. Usado para SQLAuth. Soporte para token de header tipo WsSecurity Username. Usado para SQLAuth. No soporta Encryption y Signature de la especificación WS-Security. No soporta Encryption y Signature de la especificación WS-Security.

Cabecera WS-Security - SQL Auth <SOAP-ENV:Header> <wsse:Security xmlns:wsse= <wsse:Security xmlns:wsse= " soap.org/ws/2003/06/secext"> " soap.org/ws/2003/06/secext"> sqluser sqluser <wsse:Password Type= <wsse:Password Type= "wsse:PasswordText" >pass-word1 "wsse:PasswordText" >pass-word1 </SOAP-ENV:Header><SOAP-ENV:Header> <wsse:Security xmlns:wsse= <wsse:Security xmlns:wsse= " soap.org/ws/2003/06/secext"> " soap.org/ws/2003/06/secext"> sqluser sqluser <wsse:Password Type= <wsse:Password Type= "wsse:PasswordText" >pass-word1 "wsse:PasswordText" >pass-word1 </SOAP-ENV:Header>

Características de seguridad Seguro por omisión Seguro por omisión ¿Quién puede crear endpoints? ¿Quién puede crear endpoints? Miembros del rol sysadmin Miembros del rol sysadmin Usuarios a los que se ha concedido el permiso CREATE ENDPOINT Usuarios a los que se ha concedido el permiso CREATE ENDPOINT ¿Quién se puede conectar a un endpoint? ¿Quién se puede conectar a un endpoint? Miembros del rol sysadmin, dueño del endpoint, usuarios a los que se ha concedido el permiso CONNECT en el endpoint específico Miembros del rol sysadmin, dueño del endpoint, usuarios a los que se ha concedido el permiso CONNECT en el endpoint específico No hay soporte para que un Anónimo se conecte a los endpoints No hay soporte para que un Anónimo se conecte a los endpoints

Mejores prácticas - Seguridad Instalar detrás de firewall/proxy/DMZ Instalar detrás de firewall/proxy/DMZ No abrir el puerto al Internet No abrir el puerto al Internet Preparar los endpoints para ser accedidos solo por principales que necesitan acceso Preparar los endpoints para ser accedidos solo por principales que necesitan acceso

SQLXML vs. SOAP nativo Tecnologías complementarias Tecnologías complementarias SQLXML ofrece SQLXML ofrece Plantillas (provee vistas actualizables) Plantillas (provee vistas actualizables) Updategrams, Bulkload, Query strings en el URL Updategrams, Bulkload, Query strings en el URL El acceso SOAP ofrece El acceso SOAP ofrece No depende de IIS No depende de IIS ~%40 mejora de rendimiento sobre SQLXML ~%40 mejora de rendimiento sobre SQLXML Soporte total a la ejecución de lotes parametrizados Soporte total a la ejecución de lotes parametrizados WSDL dinámico WSDL dinámico

Mejores Prácticas – Cuando usar / Cuando no usar Usar en ambientes heterogéneos Usar en ambientes heterogéneos Se puede conectar a SQL usando Perl, PHP, … Se puede conectar a SQL usando Perl, PHP, … Se puede usar como una alternativa a Java Database Connectivity (JDBC) Se puede usar como una alternativa a Java Database Connectivity (JDBC) No usar para aplicaciones caracterizadas por acceso en tiempo real altamente concurrente, con transacciones de corta duración No usar para aplicaciones caracterizadas por acceso en tiempo real altamente concurrente, con transacciones de corta duración No usar para escalamiento estilo granja de Web. No es un reemplazo para IIS. No usar para escalamiento estilo granja de Web. No es un reemplazo para IIS.

Pruebas de interoperabilidad WSI-BP WSI-BP Jbuilder 9 Jbuilder 9 Perl Perl Glue Glue Axis 1.1 Axis 1.1 WASP WASP VS.Net (RTM/Everett, Whidbey) VS.Net (RTM/Everett, Whidbey) Soap Toolkit 3.0 Soap Toolkit 3.0

Resumen La visión La visión Arquitectura Arquitectura Escenarios de aplicación Escenarios de aplicación Detalles – endpoint, solicitud/respuesta Detalles – endpoint, solicitud/respuesta Modelo de programación Modelo de programación Seguridad Seguridad Rendimiento Rendimiento Comparación con SQLXML Comparación con SQLXML Mejores prácticas Mejores prácticas

Webcasts en español Futuros: Futuros: atam/video atam/video atam/video atam/video Grabaciones previas: Grabaciones previas: atam/video/webcast.asp atam/video/webcast.asp

¿Preguntas?