La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "SQL Server 2005 como servidor de aplicaciones Edgar Sánchez Director Regional de Microsoft."— Transcripción de la presentación:

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

2 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

3 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

4 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

5 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

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

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

8 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

9 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)

10 SQL SERVER Diagrama de arquitectura

11 SQL SERVER Diagrama de arquitectura EndpointEndpoint

12 SQL SERVER Diagrama de arquitectura EndpointEndpoint Procedimiento almacenado

13 SQL SERVER Diagrama de arquitectura EndpointEndpoint Procedimiento almacenado Acceso RPC

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

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

16 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.

17 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

18 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 'http://logicstudio.net'.'testproc1 'http://logicstudio.net'.'testproc1 (name = demodb.dbo.testproc1), (name = demodb.dbo.testproc1), batches = enabled, batches = enabled, wsdl = default wsdl = default) 33 22 11 11 22 33

19 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

20 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 http:// : / ?WSDL http:// : / ?WSDL http://myserver/sql/demo?wsdl http://myserver/sql/demo?wsdl http://myserver/sql/demo?wsdl

21 Crear Endpoint, solicitar WSDL

22 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 http://myserver/sql/demo?wsdlsimple http://myserver/sql/demo?wsdlsimple Extensible – usa un procedimiento almacenado personalizado Extensible – usa un procedimiento almacenado personalizado WSDL=sp_name WSDL=sp_name

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

24 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

25 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

26 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

27 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();

28 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);

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

30 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

31 Solicitud/Respuesta de sesión <SOAP-ENV:Header xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> </SOAP-ENV:Header><SOAP-ENV:Header xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> </SOAP-ENV:Header>

32 Solicitud/Respuesta de sesión <SOAP-ENV:Header xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> </SOAP-ENV:Header><SOAP-ENV:Header xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> </SOAP-ENV:Header> <SOAP-ENV:Header xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> </SOAP-ENV:Header><SOAP-ENV:Header xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:SOAP- ENV=http://schemas.xmlsoap.org/soap/envelope/ xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> xmlns:sqloptions=http://schemas.microsoft.com/SQLSe rver/2001/12/SOAP/Options> </SOAP-ENV:Header>

33 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.

34 Cabecera WS-Security - SQL Auth <SOAP-ENV:Header> <wsse:Security xmlns:wsse= <wsse:Security xmlns:wsse= "http://schemas.xml soap.org/ws/2003/06/secext"> "http://schemas.xml 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= "http://schemas.xml soap.org/ws/2003/06/secext"> "http://schemas.xml 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>

35 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

36 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

37 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

38 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.

39 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

40 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

41 Webcasts en español Futuros: Futuros: http://www.microsoft.com/spanish/msdn/l atam/video http://www.microsoft.com/spanish/msdn/l atam/video http://www.microsoft.com/spanish/msdn/l atam/video http://www.microsoft.com/spanish/msdn/l atam/video Grabaciones previas: Grabaciones previas: http://www.microsoft.com/spanish/msdn/l atam/video/webcast.asp http://www.microsoft.com/spanish/msdn/l atam/video/webcast.asp

42 ¿Preguntas? edgar.sanchez@logicstudio.net


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

Presentaciones similares


Anuncios Google