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

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

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

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

SQL Server 2005 como SQL Server 2005 como servidor de aplicacionesservidor de aplicaciones

Edgar SánchezEdgar SánchezDirector Regional de MicrosoftDirector Regional de Microsoft

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

Lo que veremosLo que veremos

Soporte nativo para servicios de Web Soporte nativo para servicios de Web en SQL Server 2005en SQL Server 2005 Alcance y característicasAlcance y características Escenarios de usoEscenarios de uso

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

PrerrequisitosPrerrequisitos

Familiaridad con los conceptos de Familiaridad con los conceptos de servicios de Web con XMLservicios de Web con XML

Familiaridad con HTTPFamiliaridad con HTTP

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

AgendaAgenda

La visiónLa visión ArquitecturaArquitectura Escenarios de aplicaciónEscenarios de aplicación Detalles – endpoint, solicitud/respuestaDetalles – endpoint, solicitud/respuesta Modelo de programaciónModelo de programación SeguridadSeguridad RendimientoRendimiento Comparación con SQLXMLComparación con SQLXML Mejores prácticasMejores prácticas

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

La visiónLa visión

Proveer un mecanismo basado en Proveer un mecanismo basado en estándares abiertos para acceder a estándares abiertos para acceder a SQL ServerSQL Server

La metaLa meta Acceso ubicuo a datosAcceso ubicuo a datos

InteroperabilidadInteroperabilidad Basado en estándares como HTTP, SOAP Basado en estándares como HTTP, SOAP

1.1 y 1.2, XSD y WSDL 1.11.1 y 1.2, XSD y WSDL 1.1 Cumplir con las últimas especificaciones Cumplir con las últimas especificaciones

de servicios de Web que resulten de servicios de Web que resulten aplicablesaplicables

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

Protocolos de acceso a SQL Protocolos de acceso a SQL ServerServer

SQL SERVERSQL SERVER

TDS/TDS/TCPTCP

NamedNamedPipesPipes

TDS/TDS/TCPTCP

NamedNamedPipesPipes

ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET

ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET

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

Protocolos de acceso a SQL Protocolos de acceso a SQL ServerServer

SQL SERVERSQL SERVER

TDS/TDS/TCPTCP

NamedNamedPipesPipes

TDS/TDS/TCPTCP

NamedNamedPipesPipes

ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET

ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NETSQL XMLSQL XML

IISIISSQL XMLSQL XML

IISIIS

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

Protocolos de acceso a SQL Protocolos de acceso a SQL ServerServer

TDS/TDS/TCPTCP

NamedNamedPipesPipes

TDS/TDS/TCPTCP

NamedNamedPipesPipes

ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET

ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NETSQL XMLSQL XML

IISIISSQL XMLSQL XML

IISIISSQL SERVERSQL SERVER

SOAP/SOAP/HTTPHTTP

SOAP/SOAP/HTTPHTTP

Unix ClientUnix ClientUnix ClientUnix Client

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

Requerimientos de plataformaRequerimientos de plataforma

Windows Server 2003, Windows XP Windows Server 2003, Windows XP SP2SP2 Soporte de Http.Sys en modo kernelSoporte de Http.Sys en modo kernel No se requiere Internet Information No se requiere Internet Information

Services (IIS)Services (IIS)

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

SQL SERVERSQL SERVER

Diagrama de arquitecturaDiagrama de arquitectura

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

SQL SERVERSQL SERVER

Diagrama de arquitecturaDiagrama de arquitectura

EndpointEndpointEndpointEndpoint

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

SQL SERVERSQL SERVER

Diagrama de arquitecturaDiagrama de arquitectura

EndpointEndpointEndpointEndpoint

ProcedimientoProcedimientoalmacenadoalmacenado

ProcedimientoProcedimientoalmacenadoalmacenado

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

SQL SERVERSQL SERVER

Diagrama de arquitecturaDiagrama de arquitectura

EndpointEndpointEndpointEndpoint

ProcedimientoProcedimientoalmacenadoalmacenado

ProcedimientoProcedimientoalmacenadoalmacenado

Acceso RPCAcceso RPC

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

SQL SERVERSQL SERVER

Diagrama de arquitecturaDiagrama de arquitectura

EndpointEndpointEndpointEndpoint

ProcedimientoProcedimientoalmacenadoalmacenado

ProcedimientoProcedimientoalmacenadoalmacenado

Acceso RPCAcceso RPC

Acceso por lotesAcceso por lotes

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

SQL SERVERSQL SERVER

Diagrama de arquitecturaDiagrama de arquitectura

EndpointEndpointEndpointEndpoint

ProcedimientoProcedimientoalmacenadoalmacenado

ProcedimientoProcedimientoalmacenadoalmacenado

Acceso RPCAcceso RPC

Acceso por lotesAcceso por lotes

Solicitud WSDLSolicitud WSDL

GeneradorGeneradorWSDLWSDL

GeneradorGeneradorWSDLWSDL

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

Escenarios de aplicaciónEscenarios de aplicación

Aprovechar la inversión en procedimientos Aprovechar la inversión en procedimientos almacenadosalmacenados Lógica de procedimientos almacenados muy Lógica de procedimientos almacenados muy

asociada con los datosasociada con los datos Servicios de búsquedaServicios de búsqueda

Catálogo de productos, directorio de empleados, Catálogo de productos, directorio de empleados, servicios basados en la ubicaciónservicios basados en la ubicación

Servicios de reportesServicios de reportes Permite también reportes ad-hocPermite también reportes ad-hoc

Escenarios móvilesEscenarios móviles Permite que nuevas clases de dispositivos de Permite que nuevas clases de dispositivos de

tamaño pequeño se conecten a SQL Servertamaño pequeño se conecten a SQL Server Conexiones no atadas a una sesión, la sesión Conexiones no atadas a una sesión, la sesión

permanece incluso si la conexión se cae. Permite permanece incluso si la conexión se cae. Permite tener dispositivos conectados esporádicamente.tener dispositivos conectados esporádicamente.

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

Escenarios de aplicaciónEscenarios de aplicación (cont.)(cont.) Uso en ambientes heterogéneosUso en ambientes heterogéneos

Se puede conectar Perl a SQL ServerSe puede conectar Perl a SQL Server Se puede usar como una alternativa a Se puede usar como una alternativa a

JDBCJDBC Permite Arquitectura Orientada a Permite Arquitectura Orientada a

ServiciosServicios Aplicaciones desconectadasAplicaciones desconectadas Expone servicios de Web en la capa de Expone servicios de Web en la capa de

datos o en la capa intermediadatos o en la capa intermedia Servicios asincrónicos son posibles con Servicios asincrónicos son posibles con

la integración con SQL Server Service la integración con SQL Server Service BrokerBroker

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

Ejemplo de EndpointEjemplo de Endpoint

Un endpoint tiene un Un endpoint tiene un nombrenombre

Un conjunto de Un conjunto de opciones para el opciones para el transportetransporte (HTTP) – el (HTTP) – el URLURL

Un conjunto de Un conjunto de opciones para la carga opciones para la carga (SOAP) – métodos (SOAP) – métodos invocables en ese URLinvocables en ese URL

create endpoint create endpoint DemoDemo as HTTP (as HTTP ( authentication = authentication =

( integrated ),( integrated ), path = path = '/sql/demo','/sql/demo',

ports = ( clear),ports = ( clear), state = startedstate = started))for soap (for soap ( webmethod webmethod

'http://logicstudio.net''http://logicstudio.net'.'testproc1‘.'testproc1‘

(name = (name = demodb.dbo.testproc1),demodb.dbo.testproc1),

batches = enabled,batches = enabled, wsdl = defaultwsdl = default))

3333

2222

1111

1111

2222

3333

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

Endpoints – Modelo de Endpoints – Modelo de seguridadseguridad No hay acceso anónimoNo hay acceso anónimo Autenticación – dos nivelesAutenticación – dos niveles

Transporte HTTP: Basic, Digest, Integrated Transporte HTTP: Basic, Digest, Integrated (NTLM, Kerberos)(NTLM, Kerberos)

SQL Server: SQL Auth (WsSecurity Username SQL Server: SQL Auth (WsSecurity Username token ) habilitado cuando LOGIN_TYPE=MIXEDtoken ) habilitado cuando LOGIN_TYPE=MIXED

Prevención de envío de credenciales en Prevención de envío de credenciales en claroclaro Forzar SSL cuando se usa BASIC o LOGIN_TYPE Forzar SSL cuando se usa BASIC o LOGIN_TYPE

= MIXED= MIXED Filtrado de IPsFiltrado de IPs

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

Solicitud WSDLSolicitud WSDL

Describe la aplicación (servicios) que Describe la aplicación (servicios) que el endpoint exponeel endpoint expone

Solicitud del WSDLSolicitud del WSDL http://<SITE>:<PORT>/<PATH>?WSDLhttp://<SITE>:<PORT>/<PATH>?WSDL http://http://myserver/sql/demo?wsdlmyserver/sql/demo?wsdl

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

Crear Endpoint, solicitar WSDLCrear Endpoint, solicitar WSDL

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

WSDL - SoporteWSDL - Soporte

Generación dinámicaGeneración dinámica WSDL – Soporte de cajónWSDL – Soporte de cajón

ComplejoComplejo Descripción de tipos rica para parámetros y Descripción de tipos rica para parámetros y

resultados usando tipos complejos XSDresultados usando tipos complejos XSD SimpleSimple

Descripción mínimaDescripción mínima

Interoperabilidad incrementadaInteroperabilidad incrementada http://myserver/sql/demo?wsdlsimplehttp://myserver/sql/demo?wsdlsimple

Extensible – usa un procedimiento Extensible – usa un procedimiento almacenado personalizadoalmacenado personalizado

WSDL=sp_nameWSDL=sp_name

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

Solicitud SOAP - LoteSolicitud SOAP - Lote

<sqlbatch <sqlbatch xmlns="http://schemas.microsoft.com/SQLServexmlns="http://schemas.microsoft.com/SQLServer/2001/12/SOAP">r/2001/12/SOAP">

<BatchCommands>SELECT EmployeeID, LoginID, <BatchCommands>SELECT EmployeeID, LoginID, Gender FROM Employee Where EmployeeID=@x  ;Gender FROM Employee Where EmployeeID=@x  ;

</BatchCommands></BatchCommands>  <Parameters><Parameters>        <SqlParameter name="x" sqlDbType="Int" <SqlParameter name="x" sqlDbType="Int"

xmlns="http://schemas.microsoft.com/SQLServexmlns="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlParameter">r/2001/12/SOAP/types/SqlParameter">

                    <Value xsi:type="xsd:string">1</Value><Value xsi:type="xsd:string">1</Value>          </SqlParameter></SqlParameter>  </Parameters></Parameters></sqlbatch></sqlbatch>Equivalente en TDS a la declaración de Equivalente en TDS a la declaración de

parámetros invocando a sp_executesqlparámetros invocando a sp_executesql

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

SOAP- Solicitud RPCSOAP- Solicitud RPC<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?><soap:Envelope <soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" lope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Body><soap:Body> <GetCustInfo <GetCustInfo

xmlns="http://Adventure-Works/Customers/">xmlns="http://Adventure-Works/Customers/"><CustomerID>1</CustomerID><CustomerID>1</CustomerID>

</GetCustInfo></GetCustInfo> </soap:Body></soap:Body></soap:Envelope></soap:Envelope>

Es similar a (sobre TDS, en un lote)Es similar a (sobre TDS, en un lote) EXEC demodb.dbo.GetCustInfoEXEC demodb.dbo.GetCustInfo

<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?><soap:Envelope <soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" lope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Body><soap:Body> <GetCustInfo <GetCustInfo

xmlns="http://Adventure-Works/Customers/">xmlns="http://Adventure-Works/Customers/"><CustomerID>1</CustomerID><CustomerID>1</CustomerID>

</GetCustInfo></GetCustInfo> </soap:Body></soap:Body></soap:Envelope></soap:Envelope>

Es similar a (sobre TDS, en un lote)Es similar a (sobre TDS, en un lote) EXEC demodb.dbo.GetCustInfoEXEC demodb.dbo.GetCustInfo

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

Respuestas SOAPRespuestas SOAP

Las User Defined Functions son Las User Defined Functions son sencillas sencillas Por ejemplo, un valor de retorno de unaPor ejemplo, un valor de retorno de una

nvarchar(100) se mapea a una “string”, nvarchar(100) se mapea a una “string”, con una longitud máxima de 100con una longitud máxima de 100

Los procedimientos almacenados Los procedimientos almacenados son más difícilesson más difíciles No hay un esquema fijo para lo que se No hay un esquema fijo para lo que se

devuelve. Se mapea para devolver un devuelve. Se mapea para devolver un arreglo de valores.arreglo de valores.

El retorno para un lote SQL es el El retorno para un lote SQL es el mismo que para un procedimiento mismo que para un procedimiento almacenadoalmacenado

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

Respuesta SOAPRespuesta SOAP

ResultStream deResultStream de SqlRowSet – resultado de SELECT …SqlRowSet – resultado de SELECT … SqlXml – resultado de SELECT .. FOR XMLSqlXml – resultado de SELECT .. FOR XML SqlMessage – Mensajes de Error, Warning SqlMessage – Mensajes de Error, Warning

y Printy Print SqlRowCount – Filas afectadasSqlRowCount – Filas afectadas SqlResultCode – Código de retorno del SPSqlResultCode – Código de retorno del SP

Errores/FallasErrores/Fallas

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

Clientes inteligentesClientes inteligentes

Los clientes consumen WSDL Los clientes consumen WSDL para generar código proxypara generar código proxy EnEn Visual Studio® .NET “Add Web Visual Studio® .NET “Add Web

Reference”Reference” En línea de comandos: wsdl.exe En línea de comandos: wsdl.exe

Por ejemplo…Por ejemplo…object[] SqlBatch(string batchCommands,object[] SqlBatch(string batchCommands,

ref SqlParameter[] ref SqlParameter[]

parameters);parameters);

string testFunc1(string p1);string testFunc1(string p1);

object[] testProc1();object[] testProc1();

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

Formato de resultado y Formato de resultado y binding del lenguajebinding del lenguaje FORMAT = ALL_RESULTSFORMAT = ALL_RESULTS

Object [] o = Object [] o = myProcedure(params);myProcedure(params);

FORMAT = ROWSETS_ONLYFORMAT = ROWSETS_ONLY DataSet ds = DataSet ds = myProcedure(myParam);myProcedure(myParam);

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

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

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

Soporte de sesionesSoporte de sesiones

Se debe habilitar sesiones en el Se debe habilitar sesiones en el endpointendpoint

Las sesiones pueden extender Las sesiones pueden extender conexionesconexiones

Las solicitudes para conectarse a Las solicitudes para conectarse a sesiones son autenticadassesiones son autenticadas

Las sesiones se inician y terminan a Las sesiones se inician y terminan a través del header SOAPtravés del header SOAP

El timeout de la sesión se puede El timeout de la sesión se puede configurar en el endpoint y en el inicio configurar en el endpoint y en el inicio de la solicitudde la solicitud

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

Solicitud/Respuesta de sesiónSolicitud/Respuesta de sesión<SOAP-ENV:Header<SOAP-ENV:Header   

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”

    xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>

        <!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>

        <sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>

</SOAP-ENV:Header></SOAP-ENV:Header>

<SOAP-ENV:Header<SOAP-ENV:Header   

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”

    xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>

        <!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>

        <sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>

</SOAP-ENV:Header></SOAP-ENV:Header>

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

Solicitud/Respuesta de sesiónSolicitud/Respuesta de sesión<SOAP-ENV:Header<SOAP-ENV:Header   

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”

    xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>

        <!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>

        <sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>

</SOAP-ENV:Header></SOAP-ENV:Header>

<SOAP-ENV:Header<SOAP-ENV:Header   

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”

    xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>

        <!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>

        <sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>

</SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Header<SOAP-ENV:Header   

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”

    xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>

        <!-- response to creating a new session, or <!-- response to creating a new session, or enlisting in an existing session -->enlisting in an existing session -->

        <sqloptions:sqlSession sessionId=” AAAAADreaLE=” <sqloptions:sqlSession sessionId=” AAAAADreaLE=” timeout=”12”/>timeout=”12”/>

</SOAP-ENV:Header></SOAP-ENV:Header>

<SOAP-ENV:Header<SOAP-ENV:Header   

xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”

    xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>

        <!-- response to creating a new session, or <!-- response to creating a new session, or enlisting in an existing session -->enlisting in an existing session -->

        <sqloptions:sqlSession sessionId=” AAAAADreaLE=” <sqloptions:sqlSession sessionId=” AAAAADreaLE=” timeout=”12”/>timeout=”12”/>

</SOAP-ENV:Header></SOAP-ENV:Header>

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

Soporte de WS-SecuritySoporte de WS-Security

Soporte para token de header tipo Soporte para token de header tipo WsSecurity Username. Usado paraWsSecurity Username. Usado para SQLAuth.SQLAuth.

No soporta No soporta Encryption y Signature de Encryption y Signature de la especificación WS-Security.la especificación WS-Security.

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

Cabecera WS-Security - SQL AuthCabecera WS-Security - SQL Auth

<SOAP-ENV:Header><SOAP-ENV:Header>                        <wsse:Security  xmlns:wsse=<wsse:Security  xmlns:wsse=                                               

"http://schemas.xmlsoap.org/ws/2003/06/se"http://schemas.xmlsoap.org/ws/2003/06/secext">cext">

                        <wsse:UsernameToken><wsse:UsernameToken>       

                        <wsse:Username>sqluser</wsse:<wsse:Username>sqluser</wsse:Username>Username>

                        <wsse:Password Type=<wsse:Password Type=                                               

"wsse:PasswordText">pass-word1</wsse:Pass"wsse:PasswordText">pass-word1</wsse:Password>word>

                        </wsse:UsernameToken></wsse:UsernameToken>                        </wsse:Security></wsse:Security></SOAP-ENV:Header></SOAP-ENV:Header>

<SOAP-ENV:Header><SOAP-ENV:Header>                        <wsse:Security  xmlns:wsse=<wsse:Security  xmlns:wsse=                                               

"http://schemas.xmlsoap.org/ws/2003/06/se"http://schemas.xmlsoap.org/ws/2003/06/secext">cext">

                        <wsse:UsernameToken><wsse:UsernameToken>       

                        <wsse:Username>sqluser</wsse:<wsse:Username>sqluser</wsse:Username>Username>

                        <wsse:Password Type=<wsse:Password Type=                                               

"wsse:PasswordText">pass-word1</wsse:Pass"wsse:PasswordText">pass-word1</wsse:Password>word>

                        </wsse:UsernameToken></wsse:UsernameToken>                        </wsse:Security></wsse:Security></SOAP-ENV:Header></SOAP-ENV:Header>

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

Características de seguridadCaracterísticas de seguridad

Seguro por omisiónSeguro por omisión ¿Quién puede crear ¿Quién puede crear endpoints?endpoints?

Miembros del rolMiembros del rol sysadmin sysadmin Usuarios a los que se ha concedido el permisoUsuarios a los que se ha concedido el permiso

CREATE ENDPOINTCREATE ENDPOINT

¿Quién se puede conectar a un ¿Quién se puede conectar a un endpoint?endpoint? Miembros del rolMiembros del rol sysadmin, dueño del endpoint, sysadmin, dueño del endpoint,

usuarios a los que se ha concedido el permiso usuarios a los que se ha concedido el permiso CONNECT en el endpoint específico CONNECT en el endpoint específico

No hay soporte para que un Anónimo se No hay soporte para que un Anónimo se conecte a los econecte a los endpoints ndpoints

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

Mejores prácticas - SeguridadMejores prácticas - Seguridad

Instalar detrás de Instalar detrás de firewall/proxy/DMZfirewall/proxy/DMZ No abrir el puerto al InternetNo abrir el puerto al Internet

Preparar los endpoints para ser Preparar los endpoints para ser accedidos solo por principales que accedidos solo por principales que necesitan accesonecesitan acceso

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

SQLXML vs. SOAP nativoSQLXML vs. SOAP nativo

Tecnologías complementariasTecnologías complementarias SQLXML ofreceSQLXML ofrece

Plantillas (provee vistas actualizables)Plantillas (provee vistas actualizables) Updategrams, Bulkload, Query strings en el URLUpdategrams, Bulkload, Query strings en el URL

El acceso SOAP ofreceEl acceso SOAP ofrece No depende de IISNo depende de IIS ~%40 mejora de rendimiento sobre SQLXML~%40 mejora de rendimiento sobre SQLXML Soporte total a la ejecución de lotes Soporte total a la ejecución de lotes

parametrizadosparametrizados WSDL dinámicoWSDL dinámico

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

Mejores Prácticas – Cuando Mejores Prácticas – Cuando usar / Cuando no usarusar / Cuando no usar

Usar en ambientes heterogéneosUsar 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 Se puede usar como una alternativa a Java

Database Connectivity (JDBC)Database Connectivity (JDBC)

No usar para aplicaciones caracterizadas No usar para aplicaciones caracterizadas por acceso en tiempo real altamente por acceso en tiempo real altamente concurrente, con transacciones de corta concurrente, con transacciones de corta duraciónduración

No usar para escalamiento estilo granja de No usar para escalamiento estilo granja de Web. No es un reemplazo para IIS.Web. No es un reemplazo para IIS.

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

Pruebas de interoperabilidadPruebas de interoperabilidad

WSI-BPWSI-BP Jbuilder 9Jbuilder 9 PerlPerl GlueGlue Axis 1.1Axis 1.1 WASPWASP VS.Net (RTM/Everett, Whidbey)VS.Net (RTM/Everett, Whidbey) Soap Toolkit 3.0Soap Toolkit 3.0

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

ResumenResumen

La visiónLa visión ArquitecturaArquitectura Escenarios de aplicaciónEscenarios de aplicación Detalles – endpoint, solicitud/respuestaDetalles – endpoint, solicitud/respuesta Modelo de programaciónModelo de programación SeguridadSeguridad RendimientoRendimiento Comparación con SQLXMLComparación con SQLXML Mejores prácticasMejores prácticas

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

Webcasts en españolWebcasts en español

Futuros:Futuros: http://www.microsoft.com/spanish/msdn/lahttp://www.microsoft.com/spanish/msdn/la

tam/videotam/video

Grabaciones previas:Grabaciones previas: http://www.microsoft.com/spanish/msdn/http://www.microsoft.com/spanish/msdn/

latam/video/webcast.asplatam/video/webcast.asp

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

¿Preguntas?¿Preguntas?

[email protected]@logicstudio.net